diff --git a/composer.json b/composer.json index c6040bc..8cdb377 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,9 @@ "badfarm/zanzara": "^0.9.1", "twig/twig": "^3.2", "twig/extra-bundle": "^3.7", - "twig/intl-extra": "^3.10" + "twig/intl-extra": "^3.10", + "nyholm/psr7": "^1.8", + "react/filesystem": "^0.1.2" }, "suggest": { "mirzaev/files": "Easy working with files", @@ -52,5 +54,11 @@ }, "scripts": { "pre-update-cmd": "./install.sh" + }, + "config": { + "allow-plugins": { + "php-http/discovery": true, + "wyrihaximus/composer-update-bin-autoload-path": true + } } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..b19865c --- /dev/null +++ b/composer.lock @@ -0,0 +1,5673 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "330a5fd85753f4fb8d74b9564bae298d", + "packages": [ + { + "name": "badfarm/zanzara", + "version": "0.9.1", + "source": { + "type": "git", + "url": "https://github.com/badfarm/zanzara.git", + "reference": "de4f3df9006d7e7cce0c15033dceafbad9348576" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/badfarm/zanzara/zipball/de4f3df9006d7e7cce0c15033dceafbad9348576", + "reference": "de4f3df9006d7e7cce0c15033dceafbad9348576", + "shasum": "" + }, + "require": { + "clue/http-proxy-react": "^1.8", + "ext-json": "*", + "ext-readline": "*", + "netresearch/jsonmapper": "^4.1", + "opis/closure": "^3.6", + "php": ">=7.4", + "php-di/php-di": "^6.4", + "php-http/multipart-stream-builder": "^1.2", + "psr/container": "^1.1", + "psr/log": "^1.1", + "react/cache": "^1.2", + "react/event-loop": "^1.3", + "react/http": "^1.8" + }, + "require-dev": { + "monolog/monolog": "^2.9", + "phpunit/phpunit": "^9.6", + "symfony/dotenv": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Zanzara\\": "src/Zanzara" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michele Righetti" + }, + { + "name": "Mattia Corradi" + } + ], + "description": "Asynchronous PHP Telegram Bot Framework", + "keywords": [ + "async", + "bot", + "php", + "reactphp", + "telegram" + ], + "support": { + "issues": "https://github.com/badfarm/zanzara/issues", + "source": "https://github.com/badfarm/zanzara/tree/0.9.1" + }, + "time": "2023-04-25T18:44:20+00:00" + }, + { + "name": "cakephp/core", + "version": "4.6.3", + "source": { + "type": "git", + "url": "https://github.com/cakephp/core.git", + "reference": "c2f4dff110d41e475d1041f2abe236f1c62d0cd0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/core/zipball/c2f4dff110d41e475d1041f2abe236f1c62d0cd0", + "reference": "c2f4dff110d41e475d1041f2abe236f1c62d0cd0", + "shasum": "" + }, + "require": { + "cakephp/utility": "^4.0", + "php": ">=7.4.0" + }, + "provide": { + "psr/container-implementation": "^1.0 || ^2.0" + }, + "suggest": { + "cakephp/cache": "To use Configure::store() and restore().", + "cakephp/event": "To use PluginApplicationInterface or plugin applications.", + "league/container": "To use Container and ServiceProvider classes" + }, + "type": "library", + "autoload": { + "files": [ + "functions.php" + ], + "psr-4": { + "Cake\\Core\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/core/graphs/contributors" + } + ], + "description": "CakePHP Framework Core classes", + "homepage": "https://cakephp.org", + "keywords": [ + "cakephp", + "core", + "framework" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/cakephp/issues", + "source": "https://github.com/cakephp/core" + }, + "time": "2023-10-21T13:30:46+00:00" + }, + { + "name": "cakephp/utility", + "version": "4.6.3", + "source": { + "type": "git", + "url": "https://github.com/cakephp/utility.git", + "reference": "708929115e5b400e1b5b76d8120ca2e51e2de199" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/utility/zipball/708929115e5b400e1b5b76d8120ca2e51e2de199", + "reference": "708929115e5b400e1b5b76d8120ca2e51e2de199", + "shasum": "" + }, + "require": { + "cakephp/core": "^4.0", + "php": ">=7.4.0" + }, + "suggest": { + "ext-intl": "To use Text::transliterate() or Text::slug()", + "lib-ICU": "To use Text::transliterate() or Text::slug()" + }, + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Cake\\Utility\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/utility/graphs/contributors" + } + ], + "description": "CakePHP Utility classes such as Inflector, String, Hash, and Security", + "homepage": "https://cakephp.org", + "keywords": [ + "cakephp", + "hash", + "inflector", + "security", + "string", + "utility" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/cakephp/issues", + "source": "https://github.com/cakephp/utility" + }, + "time": "2024-06-23T00:11:14+00:00" + }, + { + "name": "clue/http-proxy-react", + "version": "v1.9.0", + "source": { + "type": "git", + "url": "https://github.com/clue/reactphp-http-proxy.git", + "reference": "f3b02835273036a9370ac1c144b55df8e2b98430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/reactphp-http-proxy/zipball/f3b02835273036a9370ac1c144b55df8e2b98430", + "reference": "f3b02835273036a9370ac1c144b55df8e2b98430", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/promise": "^3 || ^2.1 || ^1.2.1", + "react/socket": "^1.12", + "ringcentral/psr7": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4 || ^3 || ^2", + "react/event-loop": "^1.2", + "react/http": "^1.5", + "react/promise-timer": "^1.10" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\HttpProxy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "Async HTTP proxy connector, tunnel any TCP/IP-based protocol through an HTTP CONNECT proxy server, built on top of ReactPHP", + "homepage": "https://github.com/clue/reactphp-http-proxy", + "keywords": [ + "async", + "connect", + "http", + "proxy", + "reactphp" + ], + "support": { + "issues": "https://github.com/clue/reactphp-http-proxy/issues", + "source": "https://github.com/clue/reactphp-http-proxy/tree/v1.9.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2024-04-10T14:46:11+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.1.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2025-08-10T19:31:58+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/23da848e1a2308728fe5fdddabf4be17ff9720c7", + "reference": "23da848e1a2308728fe5fdddabf4be17ff9720c7", + "shasum": "" + }, + "require": { + "php": "^8.4" + }, + "require-dev": { + "doctrine/coding-standard": "^14", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5.58" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.1.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2026-01-05T06:47:08+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^9 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Evenement\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" + }, + "time": "2023-08-08T05:53:35+00:00" + }, + { + "name": "fig/http-message-util", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "time": "2020-11-24T22:02:12+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.7", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "nesbot/carbon": "^2.61|^3.0", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2024-11-14T18:34:49+00:00" + }, + { + "name": "mirzaev/baza", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/baza", + "reference": "22fe7f894fb78d16b3c0394e2f0555b1905252e4" + }, + "require": { + "php": "^8.4" + }, + "suggest": { + "mirzaev/record": "Active Record pattern" + }, + "type": "database", + "autoload": { + "psr-4": { + "mirzaev\\baza\\": "mirzaev/baza/system/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Programmer" + } + ], + "description": "Lightweight binary database by pure PHP", + "homepage": "https://git.svoboda.works/mirzaev/baza", + "keywords": [ + "Plain", + "binary", + "lightweight" + ], + "support": { + "email": "arsen@mirzaev.sexy", + "issues": "https://git.svoboda.works/mirzaev/baza/issues", + "wiki": "https://git.svoboda.works/mirzaev/baza/wiki" + }, + "time": "2025-11-03T19:10:57+00:00" + }, + { + "name": "mirzaev/currencies", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/currencies", + "reference": "6a4b83b5320d2def6690f2e845c0e7262d5fc0d6" + }, + "require": { + "mirzaev/languages": "^1.0", + "php": "^8.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "mirzaev\\currencies\\": "mirzaev/currencies/system" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Creator" + } + ], + "description": "Library for easy currencies support", + "homepage": "https://git.svoboda.works/mirzaev/currencies", + "keywords": [ + "currencies" + ], + "support": { + "issues": "https://git.svoboda.works/mirzaev/currencies/issues" + }, + "time": "2025-11-25T18:12:19+00:00" + }, + { + "name": "mirzaev/languages", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/languages", + "reference": "c6e28f25ea1bf42f4f8a201c2919c02fef59a284" + }, + "require": { + "php": "^8.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "mirzaev\\languages\\": "mirzaev/languages/system" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Creator" + } + ], + "description": "Library for easy languages support", + "homepage": "https://git.svoboda.works/mirzaev/languages", + "keywords": [ + "languages" + ], + "support": { + "issues": "https://git.svoboda.works/mirzaev/languages/issues" + }, + "time": "2025-10-21T18:34:30+00:00" + }, + { + "name": "mirzaev/minimal", + "version": "3.8.7", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/minimal", + "reference": "393f37577d0f5cf9b2931f15b68bf8d42e5b3563" + }, + "require": { + "php": "~8.4" + }, + "suggest": { + "mirzaev/baza": "Baza database", + "mirzaev/currencies": "Easy currencies integration", + "mirzaev/files": "Easy working with files", + "mirzaev/languages": "Easy languages integration", + "mirzaev/pot": "Template for projects" + }, + "type": "framework", + "autoload": { + "psr-4": { + "mirzaev\\minimal\\": "mirzaev/minimal/system" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Creator" + } + ], + "description": "The best code-to-utility framework", + "homepage": "https://git.svoboda.works/mirzaev/minimal", + "keywords": [ + "framework", + "lightweight", + "mvc" + ], + "support": { + "docs": "https://git.svoboda.works/mirzaev/minimal/wiki", + "issues": "https://git.svoboda.works/mirzaev/minimal/issues" + }, + "time": "2025-12-02T15:58:04+00:00" + }, + { + "name": "mirzaev/record", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/record", + "reference": "14c2629fb34b1ca1a852712069687dff69050786" + }, + "require": { + "mirzaev/baza": "^3.4", + "php": "^8.4", + "svoboda/time": "^1.0" + }, + "type": "pattern", + "autoload": { + "psr-4": { + "mirzaev\\record\\": "mirzaev/record/system" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Creator" + } + ], + "description": "Active Record pattern for Baza", + "homepage": "https://git.svoboda.works/mirzaev/record", + "keywords": [ + "baza" + ], + "support": { + "issues": "https://git.svoboda.works/mirzaev/record/issues", + "wiki": "https://git.svoboda.works/mirzaev/record/wiki" + }, + "time": "2025-11-03T19:07:01+00:00" + }, + { + "name": "mirzaev/unmarkdown", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://git.svoboda.works/mirzaev/unmarkdown", + "reference": "ae97b9e4644dc591965694570277cdafdc46247d" + }, + "require": { + "php": "^8.4" + }, + "type": "library", + "autoload": { + "files": [ + "mirzaev/unmarkdown/system/unmarkdown.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Creator" + } + ], + "description": "Library for escaping all markdown symbols", + "homepage": "https://git.svoboda.works/mirzaev/unmarkdown", + "keywords": [ + "escaping", + "markdown" + ], + "support": { + "issues": "https://git.svoboda.works/mirzaev/unmarkdown/issues" + }, + "time": "2025-11-09T11:37:20+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v4.5.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" + }, + "time": "2024-09-08T10:13:13+00:00" + }, + { + "name": "nyholm/psr7", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7.git", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0", + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "php-http/message-factory": "^1.0", + "php-http/psr7-integration-tests": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "symfony/error-handler": "^4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "https://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7/issues", + "source": "https://github.com/Nyholm/psr7/tree/1.8.2" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-09-09T07:06:30+00:00" + }, + { + "name": "opis/closure", + "version": "3.7.0", + "source": { + "type": "git", + "url": "https://github.com/opis/closure.git", + "reference": "b1a22a6be71c1263f3ca6e68f00b3fd4d394abc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/closure/zipball/b1a22a6be71c1263f3ca6e68f00b3fd4d394abc4", + "reference": "b1a22a6be71c1263f3ca6e68f00b3fd4d394abc4", + "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": { + "files": [ + "functions.php" + ], + "psr-4": { + "Opis\\Closure\\": "src/" + } + }, + "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.7.0" + }, + "time": "2025-07-08T20:30:08+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "php-di/invoker", + "version": "2.3.7", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/Invoker.git", + "reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/3c1ddfdef181431fbc4be83378f6d036d59e81e1", + "reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "psr/container": "^1.0|^2.0" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "mnapoli/hard-mode": "~0.3.0", + "phpunit/phpunit": "^9.0 || ^10 || ^11 || ^12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Invoker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Generic and extensible callable invoker", + "homepage": "https://github.com/PHP-DI/Invoker", + "keywords": [ + "callable", + "dependency", + "dependency-injection", + "injection", + "invoke", + "invoker" + ], + "support": { + "issues": "https://github.com/PHP-DI/Invoker/issues", + "source": "https://github.com/PHP-DI/Invoker/tree/2.3.7" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + } + ], + "time": "2025-08-30T10:22:22+00:00" + }, + { + "name": "php-di/php-di", + "version": "6.4.0", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/PHP-DI.git", + "reference": "ae0f1b3b03d8b29dff81747063cbfd6276246cc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/ae0f1b3b03d8b29dff81747063cbfd6276246cc4", + "reference": "ae0f1b3b03d8b29dff81747063cbfd6276246cc4", + "shasum": "" + }, + "require": { + "laravel/serializable-closure": "^1.0", + "php": ">=7.4.0", + "php-di/invoker": "^2.0", + "php-di/phpdoc-reader": "^2.0.1", + "psr/container": "^1.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "require-dev": { + "doctrine/annotations": "~1.10", + "friendsofphp/php-cs-fixer": "^2.4", + "mnapoli/phpunit-easymock": "^1.2", + "ocramius/proxy-manager": "^2.11.2", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "doctrine/annotations": "Install it if you want to use annotations (version ~1.2)", + "ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~2.0)" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "DI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The dependency injection container for humans", + "homepage": "https://php-di.org/", + "keywords": [ + "PSR-11", + "container", + "container-interop", + "dependency injection", + "di", + "ioc", + "psr11" + ], + "support": { + "issues": "https://github.com/PHP-DI/PHP-DI/issues", + "source": "https://github.com/PHP-DI/PHP-DI/tree/6.4.0" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/php-di/php-di", + "type": "tidelift" + } + ], + "time": "2022-04-09T16:46:38+00:00" + }, + { + "name": "php-di/phpdoc-reader", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/PHP-DI/PhpDocReader.git", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c", + "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "mnapoli/hard-mode": "~0.3.0", + "phpunit/phpunit": "^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpDocReader\\": "src/PhpDocReader" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)", + "keywords": [ + "phpdoc", + "reflection" + ], + "support": { + "issues": "https://github.com/PHP-DI/PhpDocReader/issues", + "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1" + }, + "time": "2020-10-12T12:39:22+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.20.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + }, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.20.0" + }, + "time": "2024-10-02T11:20:13+00:00" + }, + { + "name": "php-http/multipart-stream-builder", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/php-http/multipart-stream-builder.git", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/discovery": "^1.15", + "psr/http-factory-implementation": "^1.0" + }, + "require-dev": { + "nyholm/psr7": "^1.0", + "php-http/message": "^1.5", + "php-http/message-factory": "^1.0.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Message\\MultipartStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + } + ], + "description": "A builder class that help you create a multipart stream", + "homepage": "http://php-http.org", + "keywords": [ + "factory", + "http", + "message", + "multipart stream", + "stream" + ], + "support": { + "issues": "https://github.com/php-http/multipart-stream-builder/issues", + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2" + }, + "time": "2024-09-04T13:22:54+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.7", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/970f0e71945556422ee4570ccbabaedc3cf04ad3", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.2", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/socket": "^1.16", + "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/child-process/issues", + "source": "https://github.com/reactphp/child-process/tree/v0.6.7" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-12-23T15:25:20+00:00" + }, + { + "name": "react/dns", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", + "keywords": [ + "async", + "dns", + "dns-resolver", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.14.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-18T19:34:28+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.6.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-17T20:46:25+00:00" + }, + { + "name": "react/filesystem", + "version": "v0.1.2", + "source": { + "type": "git", + "url": "https://github.com/reactphp/filesystem.git", + "reference": "766cdef9ba806367114f0c5ba36ea2a6eec8ccd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/filesystem/zipball/766cdef9ba806367114f0c5ba36ea2a6eec8ccd2", + "reference": "766cdef9ba806367114f0c5ba36ea2a6eec8ccd2", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0", + "php": ">=5.4.0", + "react/event-loop": "^1.0 || ^0.5 || ^0.4", + "react/promise": "~2.2", + "react/promise-stream": "^1.1", + "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4", + "wyrihaximus/react-child-process-pool": "^1.3" + }, + "require-dev": { + "clue/block-react": "^1.1", + "phpunit/phpunit": "^6.0 || ^5.0 || ^4.8" + }, + "suggest": { + "ext-eio": "^1.2" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Filesystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "Asynchronous filesystem abstraction.", + "keywords": [ + "asynchronous", + "eio", + "filesystem" + ], + "support": { + "issues": "https://github.com/reactphp/filesystem/issues", + "source": "https://github.com/reactphp/filesystem/tree/master" + }, + "time": "2018-10-22T12:10:29+00:00" + }, + { + "name": "react/http", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/http.git", + "reference": "8db02de41dcca82037367f67a2d4be365b1c4db9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/http/zipball/8db02de41dcca82037367f67a2d4be365b1c4db9", + "reference": "8db02de41dcca82037367f67a2d4be365b1c4db9", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "fig/http-message-util": "^1.1", + "php": ">=5.3.0", + "psr/http-message": "^1.0", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.3 || ^1.2.1", + "react/socket": "^1.16", + "react/stream": "^1.4" + }, + "require-dev": { + "clue/http-proxy-react": "^1.8", + "clue/reactphp-ssh-proxy": "^1.4", + "clue/socks-react": "^1.4", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.2 || ^3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven, streaming HTTP client and server implementation for ReactPHP", + "keywords": [ + "async", + "client", + "event-driven", + "http", + "http client", + "http server", + "https", + "psr-7", + "reactphp", + "server", + "streaming" + ], + "support": { + "issues": "https://github.com/reactphp/http/issues", + "source": "https://github.com/reactphp/http/tree/v1.11.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-11-20T15:24:08+00:00" + }, + { + "name": "react/promise", + "version": "v2.11.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/1a8460931ea36dc5c76838fec5734d55c88c6831", + "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "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", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v2.11.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-16T16:16:50+00:00" + }, + { + "name": "react/promise-stream", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise-stream.git", + "reference": "5c7ec3450f558deb779742e33967d837e2db7871" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise-stream/zipball/5c7ec3450f558deb779742e33967d837e2db7871", + "reference": "5c7ec3450f558deb779742e33967d837e2db7871", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/promise": "^3 || ^2.1 || ^1.2", + "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4.6" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "The missing link between Promise-land and Stream-land for ReactPHP", + "homepage": "https://github.com/reactphp/promise-stream", + "keywords": [ + "Buffer", + "async", + "promise", + "reactphp", + "stream", + "unwrap" + ], + "support": { + "issues": "https://github.com/reactphp/promise-stream/issues", + "source": "https://github.com/reactphp/promise-stream/tree/v1.7.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-12-13T11:32:02+00:00" + }, + { + "name": "react/promise-timer", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise-timer.git", + "reference": "4f70306ed66b8b44768941ca7f142092600fafc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/4f70306ed66b8b44768941ca7f142092600fafc1", + "reference": "4f70306ed66b8b44768941ca7f142092600fafc1", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7.0 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\Timer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.", + "homepage": "https://github.com/reactphp/promise-timer", + "keywords": [ + "async", + "event-loop", + "promise", + "reactphp", + "timeout", + "timer" + ], + "support": { + "issues": "https://github.com/reactphp/promise-timer/issues", + "source": "https://github.com/reactphp/promise-timer/tree/v1.11.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-04T14:27:45+00:00" + }, + { + "name": "react/socket", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/socket.git", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.13", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3.3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Socket\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", + "keywords": [ + "Connection", + "Socket", + "async", + "reactphp", + "stream" + ], + "support": { + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.17.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-19T20:47:34+00:00" + }, + { + "name": "react/stream", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "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": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "support": { + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.4.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-11T12:45:25+00:00" + }, + { + "name": "ringcentral/psr7", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ringcentral/psr7.git", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ringcentral/psr7/zipball/360faaec4b563958b673fb52bbe94e37f14bc686", + "reference": "360faaec4b563958b673fb52bbe94e37f14bc686", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "psr/http-message": "~1.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "RingCentral\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "PSR-7 message implementation", + "keywords": [ + "http", + "message", + "stream", + "uri" + ], + "support": { + "source": "https://github.com/ringcentral/psr7/tree/master" + }, + "time": "2018-05-29T20:21:04+00:00" + }, + { + "name": "svoboda/time", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://git.svoboda.works/svoboda/time", + "reference": "0764960606d56a9f0865ebb07671d30a7d232b6a" + }, + "require": { + "php": "^8.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "svoboda\\time\\": "svoboda/time/system" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "WTFPL" + ], + "authors": [ + { + "name": "Arsen Mirzaev Tatyano-Muradovich", + "email": "arsen@mirzaev.sexy", + "homepage": "https://mirzaev.sexy", + "role": "Programmer" + } + ], + "description": "Time since Svoboda was created", + "homepage": "https://git.svoboda.works/svoboda/time", + "time": "2025-02-02T11:04:25+00:00" + }, + { + "name": "symfony/cache", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f", + "reference": "ef8c7dbfe613d2773d0b5e68b2ef2db72c8b025f", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "psr/cache": "^2.0|^3.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^3.6", + "symfony/service-contracts": "^2.5|^3", + "symfony/var-exporter": "^7.4|^8.0" + }, + "conflict": { + "doctrine/dbal": "<4.3", + "ext-redis": "<6.1", + "ext-relay": "<0.12.1" + }, + "provide": { + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/dbal": "^4.3", + "predis/predis": "^1.1|^2.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "classmap": [ + "Traits/ValueWrapper.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-28T10:45:32+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/cache": "^3.0" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v3.6.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": "2025-03-13T15:25:07+00:00" + }, + { + "name": "symfony/config", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "58063686fd7b8e676f14b5a4808cb85265c5216e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/58063686fd7b8e676f14b5a4808cb85265c5216e", + "reference": "58063686fd7b8e676f14b5a4808cb85265c5216e", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^7.4|^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/service-contracts": "<2.5" + }, + "require-dev": { + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-23T14:52:06+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8db0d4c1dd4c533a29210c68074999ba45ad6d3e", + "reference": "8db0d4c1dd4c533a29210c68074999ba45ad6d3e", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^3.6", + "symfony/var-exporter": "^7.4|^8.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "symfony/config": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-23T14:52:06+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.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": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v8.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "d77ec7dda0c274178745d152e82baf7ea827fd73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d77ec7dda0c274178745d152e82baf7ea827fd73", + "reference": "d77ec7dda0c274178745d152e82baf7ea827fd73", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "psr/log": "^1|^2|^3", + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^7.4|^8.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5" + }, + "require-dev": { + "symfony/console": "^7.4|^8.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v8.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-05T14:36:47+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v8.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "573f95783a2ec6e38752979db139f09fec033f03" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03", + "reference": "573f95783a2ec6e38752979db139f09fec033f03", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/security-http": "<7.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-10-30T14:17:19+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.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": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v8.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d937d400b980523dc9ee946bb69972b5e619058d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d", + "reference": "d937d400b980523dc9ee946bb69972b5e619058d", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v8.0.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-01T09:13:36+00:00" + }, + { + "name": "symfony/finder", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/dd3a2953570a283a2ba4e17063bb98c734cf5b12", + "reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "symfony/filesystem": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-23T14:52:06+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/738a92519fbc3ac37192b28052574bf2d1e8f63a", + "reference": "738a92519fbc3ac37192b28052574bf2d1e8f63a", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "ext-xml": "*", + "php": ">=8.4", + "symfony/cache": "^7.4|^8.0", + "symfony/config": "^7.4.3|^8.0.3", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/filesystem": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", + "symfony/routing": "^7.4|^8.0" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<7.4", + "symfony/form": "<7.4", + "symfony/json-streamer": "<7.4", + "symfony/messenger": "<7.4", + "symfony/security-csrf": "<7.4", + "symfony/serializer": "<7.4", + "symfony/translation": "<7.4", + "symfony/webhook": "<7.4", + "symfony/workflow": "<7.4" + }, + "require-dev": { + "doctrine/persistence": "^1.3|^2|^3", + "dragonmantank/cron-expression": "^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", + "seld/jsonlint": "^1.10", + "symfony/asset": "^7.4|^8.0", + "symfony/asset-mapper": "^7.4|^8.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/dotenv": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/html-sanitizer": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/json-streamer": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/mailer": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/notifier": "^7.4|^8.0", + "symfony/object-mapper": "^7.4|^8.0", + "symfony/polyfill-intl-icu": "^1.0", + "symfony/process": "^7.4|^8.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/scheduler": "^7.4|^8.0", + "symfony/security-bundle": "^7.4|^8.0", + "symfony/semaphore": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/string": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/twig-bundle": "^7.4|^8.0", + "symfony/type-info": "^7.4.1|^8.0.1", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/webhook": "^7.4|^8.0", + "symfony/workflow": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-23T14:52:06+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/514ec3aa7982f296b0ad0825f75b6be5779ae9e7", + "reference": "514ec3aa7982f296b0ad0825f75b6be5779ae9e7", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.1" + }, + "conflict": { + "doctrine/dbal": "<4.3" + }, + "require-dev": { + "doctrine/dbal": "^4.3", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/rate-limiter": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-23T14:52:06+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9", + "reference": "e6dfb348eb1dd4df14c39e6dc7e283bab4199fd9", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^7.4|^8.0", + "symfony/event-dispatcher": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/flex": "<2.10", + "symfony/http-client-contracts": "<2.5", + "symfony/translation-contracts": "<2.5", + "twig/twig": "<3.21" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^7.4|^8.0", + "symfony/clock": "^7.4|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/css-selector": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/dom-crawler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^7.4|^8.0", + "symfony/property-access": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0", + "symfony/var-exporter": "^7.4|^8.0", + "twig/twig": "^3.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-31T09:29:34+00:00" + }, + { + "name": "symfony/intl", + "version": "v8.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/f9eca217ae8f2be0b3ad80723d6a3b518b90cd66", + "reference": "f9eca217ae8f2be0b3ad80723d6a3b518b90cd66", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "conflict": { + "symfony/string": "<7.4" + }, + "require-dev": { + "symfony/filesystem": "^7.4|^8.0", + "symfony/var-exporter": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "exclude-from-classmap": [ + "/Tests/", + "/Resources/data/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides access to the localization data of the ICU library", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "support": { + "source": "https://github.com/symfony/intl/tree/v8.0.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-01T09:13:36+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php85\\": "" + }, + "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.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-23T16:12:55+00:00" + }, + { + "name": "symfony/routing", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/3827ac6e03dcd86e430fb6ae6056acf5b51aece3", + "reference": "3827ac6e03dcd86e430fb6ae6056acf5b51aece3", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-19T10:01:18+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T11:30:57+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T13:41:35+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2a2978a44127bae9aaee0ed5319954eb492d81c3", + "reference": "2a2978a44127bae9aaee0ed5319954eb492d81c3", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/translation-contracts": "^2.5|^3", + "twig/twig": "^3.21" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^7.4|^8.0", + "symfony/asset-mapper": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/emoji": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/form": "^7.4.1|^8.0.1", + "symfony/html-sanitizer": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/polyfill-intl-icu": "^1.0", + "symfony/property-info": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^7.4|^8.0", + "symfony/security-csrf": "^7.4|^8.0", + "symfony/security-http": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/workflow": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0", + "twig/cssinliner-extra": "^3", + "twig/inky-extra": "^3", + "twig/markdown-extra": "^3" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Twig with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bridge/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-16T08:10:18+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f", + "reference": "58c54c97af6a3fdb7ea9a3931ea1c4b8bd282b2f", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "php": ">=8.4", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/twig-bridge": "^7.4|^8.0" + }, + "require-dev": { + "symfony/asset": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", + "symfony/form": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/routing": "^7.4|^8.0", + "symfony/runtime": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/translation": "^7.4|^8.0", + "symfony/web-link": "^7.4|^8.0", + "symfony/yaml": "^7.4|^8.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of Twig into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bundle/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-19T10:01:18+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v8.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "3bc368228532ad538cc216768caa8968be95a8d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3bc368228532ad538cc216768caa8968be95a8d6", + "reference": "3bc368228532ad538cc216768caa8968be95a8d6", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/console": "<7.4", + "symfony/error-handler": "<7.4" + }, + "require-dev": { + "symfony/console": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "twig/twig": "^3.12" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v8.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-18T11:23:51+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v8.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "7345f46c251f2eb27c7b3ebdb5bb076b3ffcae04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/7345f46c251f2eb27c7b3ebdb5bb076b3ffcae04", + "reference": "7345f46c251f2eb27c7b3ebdb5bb076b3ffcae04", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "symfony/property-access": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v8.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-05T18:53:00+00:00" + }, + { + "name": "thecodingmachine/safe", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.2", + "thecodingmachine/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "files": [ + "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", + "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", + "deprecated/mssql.php", + "deprecated/stats.php", + "deprecated/strings.php", + "lib/special_cases.php", + "deprecated/mysqli.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0" + }, + "time": "2023-04-05T11:54:14+00:00" + }, + { + "name": "tivie/php-os-detector", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/tivie/php-os-detector.git", + "reference": "9461dcd85c00e03842264f2fc8ccdc8d46867321" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tivie/php-os-detector/zipball/9461dcd85c00e03842264f2fc8ccdc8d46867321", + "reference": "9461dcd85c00e03842264f2fc8ccdc8d46867321", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.3.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Tivie\\OS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "APACHE 2.0" + ], + "authors": [ + { + "name": "Estevão Soares dos Santos", + "email": "estevao@soares-dos-santos.com" + } + ], + "description": "A small utility library that detects the OS the server is running on", + "homepage": "http://tivie.github.com/php-os-detector/", + "keywords": [ + "detection", + "detector", + "identification", + "operating system", + "os", + "os detection" + ], + "support": { + "issues": "https://github.com/tivie/php-os-detector/issues", + "source": "https://github.com/tivie/php-os-detector/tree/master" + }, + "time": "2017-10-21T03:33:59+00:00" + }, + { + "name": "twig/extra-bundle", + "version": "v3.22.2", + "source": { + "type": "git", + "url": "https://github.com/twigphp/twig-extra-bundle.git", + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", + "shasum": "" + }, + "require": { + "php": ">=8.1.0", + "symfony/framework-bundle": "^5.4|^6.4|^7.0|^8.0", + "symfony/twig-bundle": "^5.4|^6.4|^7.0|^8.0", + "twig/twig": "^3.2|^4.0" + }, + "require-dev": { + "league/commonmark": "^2.7", + "symfony/phpunit-bridge": "^6.4|^7.0", + "twig/cache-extra": "^3.0", + "twig/cssinliner-extra": "^3.0", + "twig/html-extra": "^3.0", + "twig/inky-extra": "^3.0", + "twig/intl-extra": "^3.0", + "twig/markdown-extra": "^3.0", + "twig/string-extra": "^3.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Twig\\Extra\\TwigExtraBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Symfony bundle for extra Twig extensions", + "homepage": "https://twig.symfony.com", + "keywords": [ + "bundle", + "extra", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.2" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2025-12-05T08:51:53+00:00" + }, + { + "name": "twig/intl-extra", + "version": "v3.22.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/intl-extra.git", + "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", + "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", + "shasum": "" + }, + "require": { + "php": ">=8.1.0", + "symfony/intl": "^5.4|^6.4|^7.0|^8.0", + "twig/twig": "^3.13|^4.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twig\\Extra\\Intl\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Twig extension for Intl", + "homepage": "https://twig.symfony.com", + "keywords": [ + "intl", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/intl-extra/tree/v3.22.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2025-11-02T11:00:49+00:00" + }, + { + "name": "twig/twig", + "version": "v3.22.2", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2", + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2", + "shasum": "" + }, + "require": { + "php": ">=8.1.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.22.2" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2025-12-14T11:28:47+00:00" + }, + { + "name": "wyrihaximus/composer-update-bin-autoload-path", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-composer-update-bin-autoload-path.git", + "reference": "33413e3af4f4d7ab4de3653a706aed57f51e84af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-composer-update-bin-autoload-path/zipball/33413e3af4f4d7ab4de3653a706aed57f51e84af", + "reference": "33413e3af4f4d7ab4de3653a706aed57f51e84af", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2", + "php": "^8 || ^7.4" + }, + "require-dev": { + "wyrihaximus/test-utilities": "^3" + }, + "type": "composer-plugin", + "extra": { + "class": "WyriHaximus\\Composer\\BinAutoloadPathUpdater", + "unused": [ + "php" + ] + }, + "autoload": { + "psr-4": { + "WyriHaximus\\Composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "🏰 Composer plugin that fills a bin file with the absolute composer autoload path", + "support": { + "issues": "https://github.com/WyriHaximus/php-composer-update-bin-autoload-path/issues", + "source": "https://github.com/WyriHaximus/php-composer-update-bin-autoload-path/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2021-03-14T20:55:38+00:00" + }, + { + "name": "wyrihaximus/constants", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-constants.git", + "reference": "32ceffdd881593c7fa24d8fcbf9deb58687484cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-constants/zipball/32ceffdd881593c7fa24d8fcbf9deb58687484cb", + "reference": "32ceffdd881593c7fa24d8fcbf9deb58687484cb", + "shasum": "" + }, + "require": { + "php": "^8 || ^7 || ^5.3" + }, + "type": "library", + "autoload": { + "files": [ + "src/Boolean/constants_include.php", + "src/ComposerAutoloader/constants_include.php", + "src/HTTPStatusCodes/constants_include.php", + "src/Numeric/constants_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com", + "homepage": "https://www.wyrihaximus.net/" + } + ], + "description": "Collection of constants for PHP", + "support": { + "issues": "https://github.com/WyriHaximus/php-constants/issues", + "source": "https://github.com/WyriHaximus/php-constants/tree/1.6.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2020-11-28T12:04:43+00:00" + }, + { + "name": "wyrihaximus/cpu-core-detector", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-cpu-core-detector.git", + "reference": "287aa2730d8d3a8f581004bb7b95fab1b4e5708f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-cpu-core-detector/zipball/287aa2730d8d3a8f581004bb7b95fab1b4e5708f", + "reference": "287aa2730d8d3a8f581004bb7b95fab1b4e5708f", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8", + "react/child-process": "^0.5 || ^0.4 || ^0.6", + "react/event-loop": "^1.1", + "react/promise": "^2.8", + "tivie/php-os-detector": "^1.0", + "wyrihaximus/react-child-process-promise": "^2 || ^3", + "wyrihaximus/ticking-promise": "^1.5 || ^2" + }, + "require-dev": { + "wyrihaximus/async-test-utilities": "^3.3", + "wyrihaximus/test-utilities": "^3" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\CpuCoreDetector\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "Detect how many CPU cores are available", + "support": { + "issues": "https://github.com/WyriHaximus/php-cpu-core-detector/issues", + "source": "https://github.com/WyriHaximus/php-cpu-core-detector/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2021-03-08T07:46:18+00:00" + }, + { + "name": "wyrihaximus/file-descriptors", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-file-descriptors.git", + "reference": "de9c3dceecfab88c3f73aa6c9ea5372e7f635d7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-file-descriptors/zipball/de9c3dceecfab88c3f73aa6c9ea5372e7f635d7a", + "reference": "de9c3dceecfab88c3f73aa6c9ea5372e7f635d7a", + "shasum": "" + }, + "require": { + "php": "^8 || ^7.4", + "thecodingmachine/safe": "^2 || ^1", + "tivie/php-os-detector": "^1.1" + }, + "require-dev": { + "wyrihaximus/iterator-or-array-to-array": "^1.1", + "wyrihaximus/test-utilities": "^3.3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "WyriHaximus\\FileDescriptors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "List open file descriptors for the current process cross platform", + "support": { + "issues": "https://github.com/WyriHaximus/php-file-descriptors/issues", + "source": "https://github.com/WyriHaximus/php-file-descriptors/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2024-01-22T13:34:53+00:00" + }, + { + "name": "wyrihaximus/json-throwable", + "version": "4.2.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-json-throwable.git", + "reference": "91c35387bc347dd6fcf37e8baf2588f464a76018" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-json-throwable/zipball/91c35387bc347dd6fcf37e8baf2588f464a76018", + "reference": "91c35387bc347dd6fcf37e8baf2588f464a76018", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5 || ^2.0.0", + "php": "^8 || ^7.4", + "thecodingmachine/safe": "^1.3.3 || ^2.0.0", + "wyrihaximus/json-utilities": "^1.3.1" + }, + "require-dev": { + "wyrihaximus/test-utilities": "^3.3.1 || ^6.0.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "📠 JSON encode and decode throwables and exceptions", + "support": { + "issues": "https://github.com/WyriHaximus/php-json-throwable/issues", + "source": "https://github.com/WyriHaximus/php-json-throwable/tree/4.2.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2024-05-09T13:10:29+00:00" + }, + { + "name": "wyrihaximus/json-utilities", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/php-json-utilities.git", + "reference": "53d2f2ee1d7cacb7c7bcd0d1cc2c8483aa0df4b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/php-json-utilities/zipball/53d2f2ee1d7cacb7c7bcd0d1cc2c8483aa0df4b8", + "reference": "53d2f2ee1d7cacb7c7bcd0d1cc2c8483aa0df4b8", + "shasum": "" + }, + "require": { + "php": "^8.4" + }, + "require-dev": { + "wyrihaximus/makefiles": "^0.6", + "wyrihaximus/test-utilities": "^8.1.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "Utilities for php-json-* packages", + "support": { + "issues": "https://github.com/WyriHaximus/php-json-utilities/issues", + "source": "https://github.com/WyriHaximus/php-json-utilities/tree/1.4.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2025-09-06T21:58:30+00:00" + }, + { + "name": "wyrihaximus/react-child-process-messenger", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/reactphp-child-process-messenger.git", + "reference": "6323e43a4dcf926de22b6a269a88402564650f12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-messenger/zipball/6323e43a4dcf926de22b6a269a88402564650f12", + "reference": "6323e43a4dcf926de22b6a269a88402564650f12", + "shasum": "" + }, + "require": { + "cakephp/utility": "^4.2.4", + "doctrine/inflector": "^2.0.3", + "evenement/evenement": "^3.0.1", + "ext-hash": "^8 || ^7.4", + "ext-json": "^8 || ^7.4", + "paragonie/random_compat": "^9.0 || ^2.0", + "php": "^8 || ^7.4", + "react/child-process": "^0.6.2", + "react/event-loop": "^1.1.1", + "react/promise": "^2.8", + "react/promise-stream": "^1.2", + "react/promise-timer": "^1.6", + "react/socket": "^1.6", + "thecodingmachine/safe": "^1.3.3 || ^2.0 || ^3.0", + "wyrihaximus/composer-update-bin-autoload-path": "^1.1.1", + "wyrihaximus/constants": "^1.6", + "wyrihaximus/file-descriptors": "^1.1", + "wyrihaximus/json-throwable": "^4.1", + "wyrihaximus/ticking-promise": "^2 || ^3" + }, + "require-dev": { + "wyrihaximus/async-test-utilities": "^3.4.18" + }, + "type": "library", + "extra": { + "unused": [ + "php", + "react/promise-stream" + ], + "wyrihaximus": { + "bin-autoload-path-update": [ + "bin/child-process" + ] + } + }, + "autoload": { + "psr-4": { + "WyriHaximus\\React\\ChildProcess\\Messenger\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com", + "homepage": "http://wyrihaximus.net/" + } + ], + "description": "Messenger decorator for react/child-process", + "support": { + "issues": "https://github.com/WyriHaximus/reactphp-child-process-messenger/issues", + "source": "https://github.com/WyriHaximus/reactphp-child-process-messenger/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2025-04-01T10:46:39+00:00" + }, + { + "name": "wyrihaximus/react-child-process-pool", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/reactphp-child-process-pool.git", + "reference": "1ad9bc8c00e2dbebdd9559f57175b6f8eb86ce27" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-pool/zipball/1ad9bc8c00e2dbebdd9559f57175b6f8eb86ce27", + "reference": "1ad9bc8c00e2dbebdd9559f57175b6f8eb86ce27", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0", + "php": "^8.0 || ^7.0 || ^5.4", + "react/event-loop": "^1.1", + "wyrihaximus/cpu-core-detector": "^2 || ^1.0.2", + "wyrihaximus/file-descriptors": "^2 || ^1.0 || ^0.1", + "wyrihaximus/react-child-process-messenger": "^4 || ^3 || ^2.10.1", + "wyrihaximus/ticking-promise": "^2 || ^1.5" + }, + "require-dev": { + "clue/block-react": "^1.3", + "phake/phake": "^2.2.1", + "phpunit/phpunit": "^4.8.35||^5.0||^9.5", + "squizlabs/php_codesniffer": "^3.3.2", + "vectorface/dunit": "~2.0" + }, + "suggest": { + "wyrihaximus/react-child-process-pool-redis-queue": "Redis RPC queue" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\React\\ChildProcess\\Pool\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + } + ], + "description": "Pool wyrihaximus/react-child-process-messenger processes", + "support": { + "issues": "https://github.com/WyriHaximus/reactphp-child-process-pool/issues", + "source": "https://github.com/WyriHaximus/reactphp-child-process-pool/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2023-03-19T21:56:02+00:00" + }, + { + "name": "wyrihaximus/react-child-process-promise", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/reactphp-child-process-promise.git", + "reference": "4eb763563dc382dd03b46f9fab0fd1993af68316" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-promise/zipball/4eb763563dc382dd03b46f9fab0fd1993af68316", + "reference": "4eb763563dc382dd03b46f9fab0fd1993af68316", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0", + "react/child-process": "^0.6 || ^0.5 || ^0.4", + "react/promise": "^2.7", + "wyrihaximus/ticking-promise": "^1.5.2|^2.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0||^9.0", + "sebastian/comparator": "^1.2.4||^4.0", + "squizlabs/php_codesniffer": "^3.3.2", + "vectorface/dunit": "^2.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\React\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com", + "homepage": "http://wyrihaximus.net/" + } + ], + "description": "Wrapping ticks into a promise", + "support": { + "issues": "https://github.com/WyriHaximus/reactphp-child-process-promise/issues", + "source": "https://github.com/WyriHaximus/reactphp-child-process-promise/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2020-12-04T15:47:08+00:00" + }, + { + "name": "wyrihaximus/ticking-promise", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/WyriHaximus/TickingPromise.git", + "reference": "d3903d4bebe8e3c5b11464c0bb81802cdeeb3751" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WyriHaximus/TickingPromise/zipball/d3903d4bebe8e3c5b11464c0bb81802cdeeb3751", + "reference": "d3903d4bebe8e3c5b11464c0bb81802cdeeb3751", + "shasum": "" + }, + "require": { + "php": "^8 || ^7.4", + "react/event-loop": "^1.0", + "react/promise": "^2.8" + }, + "require-dev": { + "wyrihaximus/async-test-utilities": "^3" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "WyriHaximus\\React\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com", + "homepage": "http://wyrihaximus.net/" + } + ], + "description": "Wrapping ticks into a promise", + "support": { + "issues": "https://github.com/WyriHaximus/TickingPromise/issues", + "source": "https://github.com/WyriHaximus/TickingPromise/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + } + ], + "time": "2020-11-25T12:43:21+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^8.5" + }, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} diff --git a/author/project/system/controllers/core.php b/garden/campanula/system/controllers/core.php similarity index 100% rename from author/project/system/controllers/core.php rename to garden/campanula/system/controllers/core.php diff --git a/author/project/system/controllers/index.php b/garden/campanula/system/controllers/index.php similarity index 100% rename from author/project/system/controllers/index.php rename to garden/campanula/system/controllers/index.php diff --git a/author/project/system/databases/.gitignore b/garden/campanula/system/databases/.gitignore similarity index 100% rename from author/project/system/databases/.gitignore rename to garden/campanula/system/databases/.gitignore diff --git a/author/project/system/databases/scripts/account.php b/garden/campanula/system/databases/scripts/account.php similarity index 100% rename from author/project/system/databases/scripts/account.php rename to garden/campanula/system/databases/scripts/account.php diff --git a/author/project/system/localizations/english.php b/garden/campanula/system/localizations/english.php similarity index 100% rename from author/project/system/localizations/english.php rename to garden/campanula/system/localizations/english.php diff --git a/author/project/system/localizations/russian.php b/garden/campanula/system/localizations/russian.php similarity index 100% rename from author/project/system/localizations/russian.php rename to garden/campanula/system/localizations/russian.php diff --git a/author/project/system/models/account.php b/garden/campanula/system/models/account.php similarity index 90% rename from author/project/system/models/account.php rename to garden/campanula/system/models/account.php index 3a6b0c0..3d9dff6 100644 --- a/author/project/system/models/account.php +++ b/garden/campanula/system/models/account.php @@ -7,11 +7,7 @@ namespace garden\campanula\models; // Files of the project use garden\campanula\models\core, garden\campanula\models\authorizations, - garden\campanula\models\chat, - garden\campanula\models\settings, - garden\campanula\models\tariff, - garden\campanula\models\code, - garden\campanula\models\enumerations\tariff as tariff_type; + garden\campanula\models\settings; // The library for languages support use mirzaev\languages\language; @@ -84,6 +80,7 @@ final class account extends core implements record_interface new column('language', type::string, ['length' => 2]), new column('robot', type::char), /* new column('', type::), */ + new column('active', type::char), new column('updated', type::integer_unsigned), new column('created', type::integer_unsigned) ) @@ -115,8 +112,7 @@ final class account extends core implements record_interface if ( $account->domain !== (string) $telegram->getUsername() || $account->name_first !== (string) $telegram->getFirstName() || - $account->name_second !== (string) $telegram->getLastName() || - $account->language !== (string) $telegram->getLanguageCode() + $account->name_second !== (string) $telegram->getLastName() ) { // The telegram account was updated @@ -128,7 +124,6 @@ final class account extends core implements record_interface $record->domain = (string) $telegram->getUsername(); $record->name_first = (string) $telegram->getFirstName(); $record->name_second = (string) $telegram->getLastName(); - $record->language = (string) $telegram->getLanguageCode(); $record->updated = svoboda::timestamp(); }, amount: 1 @@ -211,7 +206,7 @@ final class account extends core implements record_interface $record = $this->write( telegram_identifier: (int) $telegram->getId(), name_first: (string) $telegram->getFirstName(), - name_last: (string) $telegram->getLastName(), + name_second: (string) $telegram->getLastName(), domain: (string) $telegram->getUsername(), language: (string) $telegram->getLanguageCode(), robot: (bool) $telegram->isBot() @@ -232,18 +227,6 @@ final class account extends core implements record_interface // Creating the account settings $settings->write(account: $record->identifier); - // Initializing the chat model - $chat = new chat(); - - // Creating the account chat - $record->chat = $chat->write(account: $record->identifier, network: NETWORK_DEFAULT); - - // Initializing the tariff model - $tariff = new tariff(); - - // Creating the tariff record - $record->tariff = $tariff->write(account: $record->identifier, invoice: 0, active: 1, type: TARIFF_DEFAULT ?? tariff_type::free); - // Writing the record into the database $record = $this->database->read( filter: fn(record $_record) => $_record->identifier === $record->identifier, @@ -264,10 +247,11 @@ final class account extends core implements record_interface * * @param int $telegram_identifier The telegram account identifier * @param string $name_first - * @param string $name_last + * @param string $name_second * @param string $domain * @param language|string $language * @param bool $robot Is a robot? + * @param bool $active Is the record active? * * @return record|false The record, if created */ @@ -275,9 +259,10 @@ final class account extends core implements record_interface int $telegram_identifier, string $domain = '', string $name_first = '', - string $name_last = '', + string $name_second = '', language|string $language = LANGUAGE_DEFAULT ?? language::en, bool $robot = false, + bool $active = true, ): record|false { // Initializing the record $record = $this->database->record( @@ -285,10 +270,11 @@ final class account extends core implements record_interface (int) $telegram_identifier, $domain, $name_first, - $name_last, + $name_second, $language instanceof language ? $language->name : (string) $language, (int) $robot, /* */ + (int) $active, svoboda::timestamp(), svoboda::timestamp() ); @@ -309,6 +295,8 @@ final class account extends core implements record_interface { // Serializing the record parameters $this->record->language = $this->record->language->name; + $this->record->robot = (int) $this->record->robot; + $this->record->active = (int) $this->record->active; // Exit (success) return $this; @@ -323,6 +311,8 @@ final class account extends core implements record_interface { // Deserializing the record parameters $this->record->language = language::{$this->record->language} ?? LANGUAGE_DEFAULT ?? language::en; + $this->record->robot = (bool) $this->record->robot; + $this->record->active = (bool) $this->record->active; // Exit (success) return $this; @@ -360,7 +350,7 @@ final class account extends core implements record_interface */ public function settings(): ?settings { - // Search for the account settings + // Search for the account settings $settings = new settings()->read(filter: fn(record $record) => $record->active === 1 && $record->account === $this->identifier); if ($settings instanceof settings) { @@ -374,4 +364,3 @@ final class account extends core implements record_interface return null; } } - diff --git a/author/project/system/models/authorizations.php b/garden/campanula/system/models/authorizations.php similarity index 64% rename from author/project/system/models/authorizations.php rename to garden/campanula/system/models/authorizations.php index 4a3c032..38e5888 100644 --- a/author/project/system/models/authorizations.php +++ b/garden/campanula/system/models/authorizations.php @@ -71,9 +71,9 @@ final class authorizations extends core implements record_interface new column('account', type::long_long_unsigned), new column('system', type::char), new column('settings', type::char), - new column('chat', type::char), /* new column('', type::char), */ new column('system_settings', type::char), + new column('active', type::char), new column('updated', type::integer_unsigned), new column('created', type::integer_unsigned) ) @@ -87,25 +87,27 @@ final class authorizations extends core implements record_interface * Write * * @param int $account The account identifier - * @param int $system - * @param int $settings - * @param int $system_settings + * @param bool $system + * @param bool $settings + * @param bool $system_settings + * @param bool $active Is the record active? * * @return int|false The record identifier, if created */ public function write( int $account, - int $system = 1, - int $settings = 1, - int $system_settings = 0, - ): int|false - { + bool $system = true, + bool $settings = true, + bool $system_settings = false, + bool $active = true, + ): int|false { $record = $this->database->record( $this->database->count() + 1, $account, - $system, - $settings, - $system_settings, + (int) $system, + (int) $settings, + (int) $system_settings, + (int) $active, svoboda::timestamp(), svoboda::timestamp() ); @@ -116,5 +118,38 @@ final class authorizations extends core implements record_interface // Exit (success) return $created ? $record->identifier : false; } -} + /** + * Serialize + * + * @return self The instance from which the method was called (fluent interface) + */ + public function serialize(): self + { + // Serializing the record parameters + $this->record->system = (int) $this->record->system; + $this->record->settings = (int) $this->record->settings; + $this->record->system_settings = (int) $this->record->system_settings; + $this->record->active = (int) $this->record->active; + + // Exit (success) + return $this; + } + + /** + * Deserialize + * + * @return self The instance from which the method was called (fluent interface) + */ + public function deserialize(): self + { + // Deserializing the record parameters + $this->record->system = (bool) $this->record->system; + $this->record->settings = (bool) $this->record->settings; + $this->record->system_settings = (bool) $this->record->system_settings; + $this->record->active = (bool) $this->record->active; + + // Exit (success) + return $this; + } +} diff --git a/author/project/system/models/core.php b/garden/campanula/system/models/core.php similarity index 100% rename from author/project/system/models/core.php rename to garden/campanula/system/models/core.php diff --git a/author/project/system/models/settings.php b/garden/campanula/system/models/settings.php similarity index 72% rename from author/project/system/models/settings.php rename to garden/campanula/system/models/settings.php index ab9d32f..320adfc 100644 --- a/author/project/system/models/settings.php +++ b/garden/campanula/system/models/settings.php @@ -5,10 +5,7 @@ declare(strict_types=1); namespace garden\campanula\models; // Files of the project -use garden\campanula\models\core, - garden\campanula\models\tariff, - garden\campanula\models\enumerations\tariff as tariff_type, - garden\campanula\models\enumerations\acquiring as acquiring; +use garden\campanula\models\core; // Baza database use mirzaev\baza\database, @@ -70,6 +67,7 @@ final class settings extends core implements record_interface new column('identifier', type::long_long_unsigned), new column('account', type::long_long_unsigned), /* new column('', type::), */ + new column('active', type::char), new column('updated', type::integer_unsigned), new column('created', type::integer_unsigned) ) @@ -82,16 +80,19 @@ final class settings extends core implements record_interface /** * Write * - * @param int $account The account identifier (0 for disable) + * @param int $account The account identifier + * @param int $active Is the record active? * * @return int|false The record identifier, if created */ public function write( - int $account = 0, + int $account, + bool $active = true, ): int|false { $record = $this->database->record( $this->database->count() + 1, $account, + (int) $active, svoboda::timestamp(), svoboda::timestamp() ); @@ -102,5 +103,32 @@ final class settings extends core implements record_interface // Exit (success) return $created ? $record->identifier : false; } -} + /** + * Serialize + * + * @return self The instance from which the method was called (fluent interface) + */ + public function serialize(): self + { + // Serializing the record parameters + $this->record->active = (int) $this->record->active; + + // Exit (success) + return $this; + } + + /** + * Deserialize + * + * @return self The instance from which the method was called (fluent interface) + */ + public function deserialize(): self + { + // Deserializing the record parameters + $this->record->active = (bool) $this->record->active; + + // Exit (success) + return $this; + } +} diff --git a/author/project/system/models/telegram/commands.php b/garden/campanula/system/models/telegram/commands.php similarity index 89% rename from author/project/system/models/telegram/commands.php rename to garden/campanula/system/models/telegram/commands.php index bbae4f9..f61cb96 100644 --- a/author/project/system/models/telegram/commands.php +++ b/garden/campanula/system/models/telegram/commands.php @@ -8,7 +8,6 @@ namespace garden\campanula\models\telegram; use garden\campanula\models\core, garden\campanula\models\account, garden\campanula\models\settings, - garden\campanula\models\telegram\settings as telegram_settings, garden\campanula\models\telegram\processes\language\select as process_language_select; // Library for languages support @@ -77,47 +76,11 @@ final class commands extends core // Initializing the title $title = '📋 *' . $localization['menu_title'] . '*'; - - // Initializing accounts - /* $accounts_message = '*' . $localization['menu_accounts'] . ':* ' . ((new account)->database->count() ?? 0); */ - - // Initializing the account tariff - $tariff = $account->tariff(); - - // Declaring the tariff button - $tariff_button = []; - - if ($tariff instanceof tariff) { - // Initialized the account tariff - - // Initializing the tariff button - $tariff_button = [ - 'text' => '🔐 ' . $tariff->type->label($language) . ' (' . $tariff->used . '/' . $tariff->tokens . ')', - 'callback_data' => 'tariffs' - ]; - } else { - - // Initialized the account tariff - - // Initializing the tariff button - $tariff_button = [ - 'text' => '⚠️ ' . $localization['menu_tariff_empty'], - 'callback_data' => 'tariffs' - ]; - } - - // Initializing the account chat - $chat = $account->chat(); - - // Initializing the chto text - $howto = $localization['menu_howto']; - + // Sending the message $context->sendMessage( << [ diff --git a/author/project/system/models/telegram/middlewares.php b/garden/campanula/system/models/telegram/middlewares.php similarity index 100% rename from author/project/system/models/telegram/middlewares.php rename to garden/campanula/system/models/telegram/middlewares.php diff --git a/author/project/system/models/telegram/processes/language/select.php b/garden/campanula/system/models/telegram/processes/language/select.php similarity index 100% rename from author/project/system/models/telegram/processes/language/select.php rename to garden/campanula/system/models/telegram/processes/language/select.php diff --git a/author/project/system/public/css/fonts/dejavu.css b/garden/campanula/system/public/css/fonts/dejavu.css similarity index 100% rename from author/project/system/public/css/fonts/dejavu.css rename to garden/campanula/system/public/css/fonts/dejavu.css diff --git a/author/project/system/public/css/fonts/fira.css b/garden/campanula/system/public/css/fonts/fira.css similarity index 100% rename from author/project/system/public/css/fonts/fira.css rename to garden/campanula/system/public/css/fonts/fira.css diff --git a/author/project/system/public/css/fonts/hack.css b/garden/campanula/system/public/css/fonts/hack.css similarity index 100% rename from author/project/system/public/css/fonts/hack.css rename to garden/campanula/system/public/css/fonts/hack.css diff --git a/author/project/system/public/fonts/commissioner.ttf b/garden/campanula/system/public/fonts/commissioner.ttf similarity index 100% rename from author/project/system/public/fonts/commissioner.ttf rename to garden/campanula/system/public/fonts/commissioner.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-Bold.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-BoldOblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-ExtraLight.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans-Oblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSans.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSans.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSans.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Bold.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-BoldOblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed-Oblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansCondensed.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-Bold.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-BoldOblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono-Oblique.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSansMono.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-Bold.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-BoldItalic.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif-Italic.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerif.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerif.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerif.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Bold.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-BoldItalic.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed-Italic.ttf diff --git a/author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf b/garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf similarity index 100% rename from author/project/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf rename to garden/campanula/system/public/fonts/dejavu/DejaVuLGCSerifCondensed.ttf diff --git a/author/project/system/public/fonts/fira/FiraMono-Bold.woff b/garden/campanula/system/public/fonts/fira/FiraMono-Bold.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Bold.woff rename to garden/campanula/system/public/fonts/fira/FiraMono-Bold.woff diff --git a/author/project/system/public/fonts/fira/FiraMono-Bold.woff2 b/garden/campanula/system/public/fonts/fira/FiraMono-Bold.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Bold.woff2 rename to garden/campanula/system/public/fonts/fira/FiraMono-Bold.woff2 diff --git a/author/project/system/public/fonts/fira/FiraMono-Medium.woff b/garden/campanula/system/public/fonts/fira/FiraMono-Medium.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Medium.woff rename to garden/campanula/system/public/fonts/fira/FiraMono-Medium.woff diff --git a/author/project/system/public/fonts/fira/FiraMono-Medium.woff2 b/garden/campanula/system/public/fonts/fira/FiraMono-Medium.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Medium.woff2 rename to garden/campanula/system/public/fonts/fira/FiraMono-Medium.woff2 diff --git a/author/project/system/public/fonts/fira/FiraMono-Regular.woff b/garden/campanula/system/public/fonts/fira/FiraMono-Regular.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Regular.woff rename to garden/campanula/system/public/fonts/fira/FiraMono-Regular.woff diff --git a/author/project/system/public/fonts/fira/FiraMono-Regular.woff2 b/garden/campanula/system/public/fonts/fira/FiraMono-Regular.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraMono-Regular.woff2 rename to garden/campanula/system/public/fonts/fira/FiraMono-Regular.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Bold.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Bold.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Bold.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Bold.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Bold.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Bold.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Bold.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Bold.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-BoldItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-BoldItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-BoldItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-BoldItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-BoldItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-BoldItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-BoldItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-BoldItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Book.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Book.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Book.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Book.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Book.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Book.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Book.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Book.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-BookItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-BookItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-BookItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-BookItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-BookItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-BookItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-BookItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-BookItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Eight.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Eight.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Eight.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Eight.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Eight.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Eight.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Eight.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Eight.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-EightItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-EightItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-EightItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-EightItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-EightItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-EightItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-EightItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-EightItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraBold.woff b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraBold.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraBold.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraBold.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraBold.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraBold.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraBold.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraBold.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraBoldItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraLight.woff b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraLight.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraLight.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraLight.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraLight.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraLight.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraLight.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraLight.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-ExtraLightItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Four.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Four.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Four.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Four.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Four.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Four.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Four.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Four.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-FourItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-FourItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-FourItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-FourItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-FourItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-FourItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-FourItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-FourItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Hair.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Hair.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Hair.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Hair.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Hair.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Hair.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Hair.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Hair.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-HairItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-HairItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-HairItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-HairItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-HairItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-HairItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-HairItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-HairItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Heavy.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Heavy.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Heavy.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Heavy.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Heavy.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Heavy.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Heavy.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Heavy.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-HeavyItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-HeavyItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-HeavyItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-HeavyItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-HeavyItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Italic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Italic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Italic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Italic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Italic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Italic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Italic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Italic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Light.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Light.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Light.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Light.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Light.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Light.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Light.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Light.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-LightItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-LightItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-LightItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-LightItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-LightItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-LightItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-LightItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-LightItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Medium.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Medium.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Medium.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Medium.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Medium.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Medium.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Medium.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Medium.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-MediumItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-MediumItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-MediumItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-MediumItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-MediumItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-MediumItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-MediumItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-MediumItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Regular.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Regular.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Regular.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Regular.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Regular.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Regular.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Regular.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Regular.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-SemiBold.woff b/garden/campanula/system/public/fonts/fira/FiraSans-SemiBold.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-SemiBold.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-SemiBold.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-SemiBold.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-SemiBold.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-SemiBold.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-SemiBold.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-SemiBoldItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Thin.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Thin.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Thin.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Thin.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Thin.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Thin.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Thin.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Thin.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-ThinItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-ThinItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ThinItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-ThinItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-ThinItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-ThinItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-ThinItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-ThinItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Two.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Two.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Two.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Two.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Two.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Two.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Two.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Two.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-TwoItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-TwoItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-TwoItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-TwoItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-TwoItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-TwoItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-TwoItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-TwoItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-Ultra.woff b/garden/campanula/system/public/fonts/fira/FiraSans-Ultra.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Ultra.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-Ultra.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-Ultra.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-Ultra.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-Ultra.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-Ultra.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-UltraItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-UltraItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraItalic.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraLight.woff b/garden/campanula/system/public/fonts/fira/FiraSans-UltraLight.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraLight.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraLight.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraLight.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-UltraLight.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraLight.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraLight.woff2 diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraLightItalic.woff b/garden/campanula/system/public/fonts/fira/FiraSans-UltraLightItalic.woff similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraLightItalic.woff rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraLightItalic.woff diff --git a/author/project/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 b/garden/campanula/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 similarity index 100% rename from author/project/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 rename to garden/campanula/system/public/fonts/fira/FiraSans-UltraLightItalic.woff2 diff --git a/author/project/system/public/fonts/hack/hack-bold-subset.woff b/garden/campanula/system/public/fonts/hack/hack-bold-subset.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-bold-subset.woff rename to garden/campanula/system/public/fonts/hack/hack-bold-subset.woff diff --git a/author/project/system/public/fonts/hack/hack-bold-subset.woff2 b/garden/campanula/system/public/fonts/hack/hack-bold-subset.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-bold-subset.woff2 rename to garden/campanula/system/public/fonts/hack/hack-bold-subset.woff2 diff --git a/author/project/system/public/fonts/hack/hack-bold.woff b/garden/campanula/system/public/fonts/hack/hack-bold.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-bold.woff rename to garden/campanula/system/public/fonts/hack/hack-bold.woff diff --git a/author/project/system/public/fonts/hack/hack-bold.woff2 b/garden/campanula/system/public/fonts/hack/hack-bold.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-bold.woff2 rename to garden/campanula/system/public/fonts/hack/hack-bold.woff2 diff --git a/author/project/system/public/fonts/hack/hack-bolditalic-subset.woff b/garden/campanula/system/public/fonts/hack/hack-bolditalic-subset.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-bolditalic-subset.woff rename to garden/campanula/system/public/fonts/hack/hack-bolditalic-subset.woff diff --git a/author/project/system/public/fonts/hack/hack-bolditalic-subset.woff2 b/garden/campanula/system/public/fonts/hack/hack-bolditalic-subset.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-bolditalic-subset.woff2 rename to garden/campanula/system/public/fonts/hack/hack-bolditalic-subset.woff2 diff --git a/author/project/system/public/fonts/hack/hack-bolditalic.woff b/garden/campanula/system/public/fonts/hack/hack-bolditalic.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-bolditalic.woff rename to garden/campanula/system/public/fonts/hack/hack-bolditalic.woff diff --git a/author/project/system/public/fonts/hack/hack-bolditalic.woff2 b/garden/campanula/system/public/fonts/hack/hack-bolditalic.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-bolditalic.woff2 rename to garden/campanula/system/public/fonts/hack/hack-bolditalic.woff2 diff --git a/author/project/system/public/fonts/hack/hack-italic-subset.woff b/garden/campanula/system/public/fonts/hack/hack-italic-subset.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-italic-subset.woff rename to garden/campanula/system/public/fonts/hack/hack-italic-subset.woff diff --git a/author/project/system/public/fonts/hack/hack-italic-subset.woff2 b/garden/campanula/system/public/fonts/hack/hack-italic-subset.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-italic-subset.woff2 rename to garden/campanula/system/public/fonts/hack/hack-italic-subset.woff2 diff --git a/author/project/system/public/fonts/hack/hack-italic.woff b/garden/campanula/system/public/fonts/hack/hack-italic.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-italic.woff rename to garden/campanula/system/public/fonts/hack/hack-italic.woff diff --git a/author/project/system/public/fonts/hack/hack-italic.woff2 b/garden/campanula/system/public/fonts/hack/hack-italic.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-italic.woff2 rename to garden/campanula/system/public/fonts/hack/hack-italic.woff2 diff --git a/author/project/system/public/fonts/hack/hack-regular-subset.woff b/garden/campanula/system/public/fonts/hack/hack-regular-subset.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-regular-subset.woff rename to garden/campanula/system/public/fonts/hack/hack-regular-subset.woff diff --git a/author/project/system/public/fonts/hack/hack-regular-subset.woff2 b/garden/campanula/system/public/fonts/hack/hack-regular-subset.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-regular-subset.woff2 rename to garden/campanula/system/public/fonts/hack/hack-regular-subset.woff2 diff --git a/author/project/system/public/fonts/hack/hack-regular.woff b/garden/campanula/system/public/fonts/hack/hack-regular.woff similarity index 100% rename from author/project/system/public/fonts/hack/hack-regular.woff rename to garden/campanula/system/public/fonts/hack/hack-regular.woff diff --git a/author/project/system/public/fonts/hack/hack-regular.woff2 b/garden/campanula/system/public/fonts/hack/hack-regular.woff2 similarity index 100% rename from author/project/system/public/fonts/hack/hack-regular.woff2 rename to garden/campanula/system/public/fonts/hack/hack-regular.woff2 diff --git a/author/project/system/public/index.php b/garden/campanula/system/public/index.php similarity index 100% rename from author/project/system/public/index.php rename to garden/campanula/system/public/index.php diff --git a/author/project/system/public/telegram.php b/garden/campanula/system/public/telegram.php similarity index 84% rename from author/project/system/public/telegram.php rename to garden/campanula/system/public/telegram.php index d4873e3..3f1537f 100644 --- a/author/project/system/public/telegram.php +++ b/garden/campanula/system/public/telegram.php @@ -8,15 +8,7 @@ namespace garden\campanula; use garden\campanula\models\account, garden\campanula\models\telegram\middlewares, garden\campanula\models\telegram\commands, - garden\campanula\models\telegram\buttons, - garden\campanula\models\telegram\chat, - garden\campanula\models\telegram\account as telegram_account, - garden\campanula\models\telegram\settings, - garden\campanula\models\telegram\network, - garden\campanula\models\telegram\tariff, - garden\campanula\models\acquirings\yookassa, - garden\campanula\models\enumerations\tariff as tariff_type, - garden\campanula\models\telegram\processes\settings\chat\memory\messages as processes_settings_chat_memory_messages; + garden\campanula\models\telegram\settings; // Library for languages support use mirzaev\languages\language; @@ -81,7 +73,6 @@ $robot->middleware([middlewares::class, 'account']); $robot->middleware([middlewares::class, 'language']); $robot->middleware([middlewares::class, 'localization']); $robot->middleware([middlewares::class, 'authorizations']); -$robot->middleware([middlewares::class, 'welcome']); // Initializing the robot commands handlers $robot->onCommand('start', [commands::class, 'start']); diff --git a/author/project/system/public/themes/default/css/aside.css b/garden/campanula/system/public/themes/default/css/aside.css similarity index 100% rename from author/project/system/public/themes/default/css/aside.css rename to garden/campanula/system/public/themes/default/css/aside.css diff --git a/author/project/system/public/themes/default/css/colorscheme.css b/garden/campanula/system/public/themes/default/css/colorscheme.css similarity index 100% rename from author/project/system/public/themes/default/css/colorscheme.css rename to garden/campanula/system/public/themes/default/css/colorscheme.css diff --git a/author/project/system/public/themes/default/css/fonts.css b/garden/campanula/system/public/themes/default/css/fonts.css similarity index 100% rename from author/project/system/public/themes/default/css/fonts.css rename to garden/campanula/system/public/themes/default/css/fonts.css diff --git a/author/project/system/public/themes/default/css/footer.css b/garden/campanula/system/public/themes/default/css/footer.css similarity index 100% rename from author/project/system/public/themes/default/css/footer.css rename to garden/campanula/system/public/themes/default/css/footer.css diff --git a/author/project/system/public/themes/default/css/header.css b/garden/campanula/system/public/themes/default/css/header.css similarity index 100% rename from author/project/system/public/themes/default/css/header.css rename to garden/campanula/system/public/themes/default/css/header.css diff --git a/author/project/system/public/themes/default/css/main.css b/garden/campanula/system/public/themes/default/css/main.css similarity index 100% rename from author/project/system/public/themes/default/css/main.css rename to garden/campanula/system/public/themes/default/css/main.css diff --git a/author/project/system/public/themes/default/css/system.css b/garden/campanula/system/public/themes/default/css/system.css similarity index 100% rename from author/project/system/public/themes/default/css/system.css rename to garden/campanula/system/public/themes/default/css/system.css diff --git a/author/project/system/settings/.gitignore b/garden/campanula/system/settings/.gitignore similarity index 100% rename from author/project/system/settings/.gitignore rename to garden/campanula/system/settings/.gitignore diff --git a/author/project/system/settings/system.php.sample b/garden/campanula/system/settings/system.php.sample similarity index 87% rename from author/project/system/settings/system.php.sample rename to garden/campanula/system/settings/system.php.sample index 549fb63..dd17b32 100644 --- a/author/project/system/settings/system.php.sample +++ b/garden/campanula/system/settings/system.php.sample @@ -9,5 +9,7 @@ require ROOT . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; define('PROJECT_NAME', ''); define('PROJECT_DOMAIN', ''); +define('LANGUAGE_DEFAULT', language::ru); + // Initializing default theme for the views templater define('THEME', 'default'); diff --git a/author/project/system/settings/telegram.php.sample b/garden/campanula/system/settings/telegram.php.sample similarity index 100% rename from author/project/system/settings/telegram.php.sample rename to garden/campanula/system/settings/telegram.php.sample diff --git a/author/project/system/storage/images/mushroom.jpg b/garden/campanula/system/storage/images/mushroom.jpg similarity index 100% rename from author/project/system/storage/images/mushroom.jpg rename to garden/campanula/system/storage/images/mushroom.jpg diff --git a/author/project/system/views/templater.php b/garden/campanula/system/views/templater.php similarity index 100% rename from author/project/system/views/templater.php rename to garden/campanula/system/views/templater.php diff --git a/author/project/system/views/themes/default/aside.html b/garden/campanula/system/views/themes/default/aside.html similarity index 100% rename from author/project/system/views/themes/default/aside.html rename to garden/campanula/system/views/themes/default/aside.html diff --git a/author/project/system/views/themes/default/core.html b/garden/campanula/system/views/themes/default/core.html similarity index 100% rename from author/project/system/views/themes/default/core.html rename to garden/campanula/system/views/themes/default/core.html diff --git a/author/project/system/views/themes/default/footer.html b/garden/campanula/system/views/themes/default/footer.html similarity index 100% rename from author/project/system/views/themes/default/footer.html rename to garden/campanula/system/views/themes/default/footer.html diff --git a/author/project/system/views/themes/default/head.html b/garden/campanula/system/views/themes/default/head.html similarity index 100% rename from author/project/system/views/themes/default/head.html rename to garden/campanula/system/views/themes/default/head.html diff --git a/author/project/system/views/themes/default/header.html b/garden/campanula/system/views/themes/default/header.html similarity index 100% rename from author/project/system/views/themes/default/header.html rename to garden/campanula/system/views/themes/default/header.html diff --git a/author/project/system/views/themes/default/index.html b/garden/campanula/system/views/themes/default/index.html similarity index 100% rename from author/project/system/views/themes/default/index.html rename to garden/campanula/system/views/themes/default/index.html diff --git a/author/project/system/views/themes/default/js.html b/garden/campanula/system/views/themes/default/js.html similarity index 100% rename from author/project/system/views/themes/default/js.html rename to garden/campanula/system/views/themes/default/js.html diff --git a/install.sh b/install.sh old mode 100644 new mode 100755