Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for doctrine/dbal 4 version #436

Conversation

alexander-schranz
Copy link
Contributor

@alexander-schranz alexander-schranz commented Jan 26, 2024

This adds a CI run against @dev which we should I think have to get earlier when a dependency would break us.

Also it adds doctrine/dbal: ^4 to check what we require todo there so we can keep eventually BC breaks in mind for this jackaleop-doctrine-dbal 2.0 release.

TODO

  • Fix ArrayParameterType
  • Fix getForUpdateSql
  • TypeError: Doctrine\DBAL\Platforms\AbstractPlatform::modifyLimitQuery(): Argument #3 ($offset) must be of type int, null given, called in /Users/alexanderschranz/Documents/Projects/jackalope-doctrine-dbal/src/Jackalope/Transport/DoctrineDBAL/Query/QOMWalker.php on line 1
  • PHPUnit\Framework\MockObject\IncompatibleReturnValueException: Method createSchemaConfig may not return value of type NULL, its declared return type is "Doctrine\DBAL\Schema\SchemaConfig"
  • PHPUnit\Framework\MockObject\MethodCannotBeConfiguredException: Trying to configure method "getSchemaManager" which cannot be configured because it does not exist, has not been specified, is final, or is static
  • Doctrine\DBAL\Schema\Exception\IndexAlreadyExists: An index with name "" was already defined on table "phpcr_nodes".
  • TypeError: Doctrine\DBAL\Schema\Table::addForeignKeyConstraint(): Argument #1 ($foreignTableName) must be of type string, Doctrine\DBAL\Schema\Table given, called in /Users/alexanderschranz/Documents/Projects/jackalope-doctrine-dbal/src/Jackalope/Transport/DoctrineDBAL/RepositorySchema.php on line
  • Doctrine\DBAL\Exception\InvalidColumnType\ColumnLengthRequired: Doctrine\DBAL\Platforms\MySQLPlatform requires the length of a VARCHAR column to be specified
  • Symfony\Component\Cache\Exception\InvalidArgumentException: Cache key "workspace:_default" contains reserved characters "{}()/\@:". happens on PHP 8.1, Symfony 6.4, see composer.lock below
  • Failed asserting that exception of type "PHPCR\RepositoryException" matches expected exception "PHPCR\ReferentialIntegrityException". Message was: "Error inside the transport layer: An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'" at I'm not sure but I think we should maybe for utf8mb4 for mysql DBAL 4 MySQL COLLATION 'utf8_bin' is not valid for CHARACTER SET 'utf8mb4'" at doctrine/dbal#6281
  • utf8 is not longer mysql default charset in doctrine/dbal 4. there is not longer a charset forced instead the default one used. Which ends in mysql 5.7 in latin1 and 8.0 in utf8mb4 but we not know about it so we currently accidently define utf8_bin instead of utf8mb4_bin as charset.
composer.lock
{
   "_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": "749190d2a0282b348d744cf1a987234a",
   "packages": [
       {
           "name": "doctrine/dbal",
           "version": "4.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/doctrine/dbal.git",
               "reference": "d2aed19fdc7e945455fd864dd7df6245fce3222f"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/doctrine/dbal/zipball/d2aed19fdc7e945455fd864dd7df6245fce3222f",
               "reference": "d2aed19fdc7e945455fd864dd7df6245fce3222f",
               "shasum": ""
           },
           "require": {
               "doctrine/deprecations": "^0.5.3|^1",
               "php": "^8.1",
               "psr/cache": "^1|^2|^3",
               "psr/log": "^1|^2|^3"
           },
           "require-dev": {
               "doctrine/coding-standard": "12.0.0",
               "fig/log-test": "^1",
               "jetbrains/phpstorm-stubs": "2023.2",
               "phpstan/phpstan": "1.10.56",
               "phpstan/phpstan-phpunit": "1.3.15",
               "phpstan/phpstan-strict-rules": "^1.5",
               "phpunit/phpunit": "10.5.9",
               "psalm/plugin-phpunit": "0.18.4",
               "slevomat/coding-standard": "8.13.1",
               "squizlabs/php_codesniffer": "3.8.1",
               "symfony/cache": "^6.3.8|^7.0",
               "symfony/console": "^5.4|^6.3|^7.0",
               "vimeo/psalm": "5.16.0"
           },
           "suggest": {
               "symfony/console": "For helpful console commands such as SQL execution and import of files."
           },
           "type": "library",
           "autoload": {
               "psr-4": {
                   "Doctrine\\DBAL\\": "src"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Guilherme Blanco",
                   "email": "[email protected]"
               },
               {
                   "name": "Roman Borschel",
                   "email": "[email protected]"
               },
               {
                   "name": "Benjamin Eberlei",
                   "email": "[email protected]"
               },
               {
                   "name": "Jonathan Wage",
                   "email": "[email protected]"
               }
           ],
           "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
           "homepage": "https://www.doctrine-project.org/projects/dbal.html",
           "keywords": [
               "abstraction",
               "database",
               "db2",
               "dbal",
               "mariadb",
               "mssql",
               "mysql",
               "oci8",
               "oracle",
               "pdo",
               "pgsql",
               "postgresql",
               "queryobject",
               "sasql",
               "sql",
               "sqlite",
               "sqlserver",
               "sqlsrv"
           ],
           "support": {
               "issues": "https://github.com/doctrine/dbal/issues",
               "source": "https://github.com/doctrine/dbal/tree/4.0.x"
           },
           "funding": [
               {
                   "url": "https://www.doctrine-project.org/sponsorship.html",
                   "type": "custom"
               },
               {
                   "url": "https://www.patreon.com/phpdoctrine",
                   "type": "patreon"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-25T22:31:17+00:00"
       },
       {
           "name": "doctrine/deprecations",
           "version": "1.1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/doctrine/deprecations.git",
               "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
               "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
               "shasum": ""
           },
           "require": {
               "php": "^7.1 || ^8.0"
           },
           "require-dev": {
               "doctrine/coding-standard": "^9",
               "phpstan/phpstan": "1.4.10 || 1.10.15",
               "phpstan/phpstan-phpunit": "^1.0",
               "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
               "psalm/plugin-phpunit": "0.18.4",
               "psr/log": "^1 || ^2 || ^3",
               "vimeo/psalm": "4.30.0 || 5.12.0"
           },
           "suggest": {
               "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
           },
           "default-branch": true,
           "type": "library",
           "autoload": {
               "psr-4": {
                   "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
           "homepage": "https://www.doctrine-project.org/",
           "support": {
               "issues": "https://github.com/doctrine/deprecations/issues",
               "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
           },
           "time": "2023-09-27T20:04:15+00:00"
       },
       {
           "name": "jackalope/jackalope",
           "version": "2.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/jackalope/jackalope.git",
               "reference": "734b4f56dc0ac23d1f3560d08c27bd16519de7c6"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/jackalope/jackalope/zipball/734b4f56dc0ac23d1f3560d08c27bd16519de7c6",
               "reference": "734b4f56dc0ac23d1f3560d08c27bd16519de7c6",
               "shasum": ""
           },
           "require": {
               "ext-dom": "*",
               "ext-xml": "*",
               "jackalope/jackalope-transport": "*",
               "php": "^8.0",
               "phpcr/phpcr": "~2.1.0,>=2.1.0-beta12",
               "phpcr/phpcr-utils": "^1.8.0 || ^2.0"
           },
           "provide": {
               "phpcr/phpcr-implementation": "2.1.0"
           },
           "require-dev": {
               "phpunit/phpunit": "^9"
           },
           "default-branch": true,
           "type": "library",
           "autoload": {
               "psr-0": {
                   "Jackalope\\": "src/"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT",
               "Apache-2.0"
           ],
           "authors": [
               {
                   "name": "Jackalope Community",
                   "homepage": "https://github.com/jackalope/jackalope/contributors"
               }
           ],
           "description": "Jackalope PHPCR library",
           "homepage": "http://jackalope.github.io",
           "keywords": [
               "phpcr"
           ],
           "support": {
               "issues": "https://github.com/jackalope/jackalope/issues",
               "source": "https://github.com/jackalope/jackalope/tree/2.0.0-RC1"
           },
           "time": "2023-12-02T10:26:38+00:00"
       },
       {
           "name": "phpcr/phpcr",
           "version": "2.1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/phpcr/phpcr.git",
               "reference": "b978854942f2874c91bd885ab5403633061494bd"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phpcr/phpcr/zipball/b978854942f2874c91bd885ab5403633061494bd",
               "reference": "b978854942f2874c91bd885ab5403633061494bd",
               "shasum": ""
           },
           "require": {
               "php": "^5.6 || ^7.0 || ^8.0"
           },
           "require-dev": {
               "phpunit/phpunit": "^5.7 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0"
           },
           "default-branch": true,
           "type": "library",
           "autoload": {
               "psr-0": {
                   "PHPCR": "src"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT",
               "Apache-2.0"
           ],
           "authors": [
               {
                   "name": "David Buchmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Karsten Dambekalns",
                   "email": "[email protected]"
               },
               {
                   "name": "Lukas Kahwe Smith",
                   "email": "[email protected]"
               }
           ],
           "description": "PHP Content Repository interfaces",
           "homepage": "http://phpcr.github.io",
           "keywords": [
               "contentrepository",
               "phpcr"
           ],
           "support": {
               "issues": "https://github.com/phpcr/phpcr/issues",
               "source": "https://github.com/phpcr/phpcr/tree/2.1.x"
           },
           "time": "2024-01-06T10:56:17+00:00"
       },
       {
           "name": "phpcr/phpcr-utils",
           "version": "2.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/phpcr/phpcr-utils.git",
               "reference": "df25fdac31473867577d3a5544c775fcbd1d6fee"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phpcr/phpcr-utils/zipball/df25fdac31473867577d3a5544c775fcbd1d6fee",
               "reference": "df25fdac31473867577d3a5544c775fcbd1d6fee",
               "shasum": ""
           },
           "require": {
               "php": "^8.0",
               "phpcr/phpcr": "~2.1.0",
               "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
           },
           "conflict": {
               "jackalope/jackalope-jackrabbit": "<1.2.1"
           },
           "require-dev": {
               "friendsofphp/php-cs-fixer": "^3.40",
               "phpstan/phpstan": "^1.9",
               "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0",
               "ramsey/uuid": "^3.5"
           },
           "suggest": {
               "ramsey/uuid": "A library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID)."
           },
           "default-branch": true,
           "bin": [
               "bin/phpcr"
           ],
           "type": "library",
           "autoload": {
               "psr-0": {
                   "PHPCR\\Util": "src"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT",
               "Apache-2.0"
           ],
           "authors": [
               {
                   "name": "David Buchmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Daniel Barsotti",
                   "email": "[email protected]"
               },
               {
                   "name": "Nacho Martín",
                   "email": "[email protected]"
               },
               {
                   "name": "Lukas Kahwe Smith",
                   "email": "[email protected]"
               }
           ],
           "description": "PHP Content Repository implementation independant utilities",
           "homepage": "http://phpcr.github.io",
           "keywords": [
               "cli",
               "contentrepository",
               "phpcr"
           ],
           "support": {
               "issues": "https://github.com/phpcr/phpcr-utils/issues",
               "source": "https://github.com/phpcr/phpcr-utils/tree/2.0.1"
           },
           "time": "2024-01-12T13:50:45+00:00"
       },
       {
           "name": "psr/cache",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/php-fig/cache.git",
               "reference": "0a7c67d0d1c8167b342eb74339d6f961663826ce"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/php-fig/cache/zipball/0a7c67d0d1c8167b342eb74339d6f961663826ce",
               "reference": "0a7c67d0d1c8167b342eb74339d6f961663826ce",
               "shasum": ""
           },
           "require": {
               "php": ">=8.0.0"
           },
           "suggest": {
               "fig/cache-util": "Provides some useful PSR-6 utilities"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.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/master"
           },
           "time": "2021-02-24T03:25:37+00:00"
       },
       {
           "name": "psr/container",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/php-fig/container.git",
               "reference": "707984727bd5b2b670e59559d3ed2500240cf875"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/php-fig/container/zipball/707984727bd5b2b670e59559d3ed2500240cf875",
               "reference": "707984727bd5b2b670e59559d3ed2500240cf875",
               "shasum": ""
           },
           "require": {
               "php": ">=7.4.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0.x-dev"
               }
           },
           "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"
           },
           "time": "2023-09-22T11:11:30+00:00"
       },
       {
           "name": "psr/log",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/php-fig/log.git",
               "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
               "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
               "shasum": ""
           },
           "require": {
               "php": ">=8.0.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.x-dev"
               }
           },
           "autoload": {
               "psr-4": {
                   "Psr\\Log\\": "src"
               }
           },
           "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/3.0.0"
           },
           "time": "2021-07-14T16:46:02+00:00"
       },
       {
           "name": "psr/simple-cache",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/php-fig/simple-cache.git",
               "reference": "2d280c2aaa23a120f35d55cfde8581954a8e77fa"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/2d280c2aaa23a120f35d55cfde8581954a8e77fa",
               "reference": "2d280c2aaa23a120f35d55cfde8581954a8e77fa",
               "shasum": ""
           },
           "require": {
               "php": ">=8.0.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.0.x-dev"
               }
           },
           "autoload": {
               "psr-4": {
                   "Psr\\SimpleCache\\": "src/"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "PHP-FIG",
                   "homepage": "https://www.php-fig.org/"
               }
           ],
           "description": "Common interfaces for simple caching",
           "keywords": [
               "cache",
               "caching",
               "psr",
               "psr-16",
               "simple-cache"
           ],
           "support": {
               "source": "https://github.com/php-fig/simple-cache/tree/master"
           },
           "time": "2022-04-08T16:41:45+00:00"
       },
       {
           "name": "symfony/console",
           "version": "6.4.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/console.git",
               "reference": "3068eac30b068a01c0cd66185c669920e7101579"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/console/zipball/3068eac30b068a01c0cd66185c669920e7101579",
               "reference": "3068eac30b068a01c0cd66185c669920e7101579",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "symfony/deprecation-contracts": "^2.5|^3",
               "symfony/polyfill-mbstring": "~1.0",
               "symfony/service-contracts": "^2.5|^3",
               "symfony/string": "^5.4|^6.0|^7.0"
           },
           "conflict": {
               "symfony/dependency-injection": "<5.4",
               "symfony/dotenv": "<5.4",
               "symfony/event-dispatcher": "<5.4",
               "symfony/lock": "<5.4",
               "symfony/process": "<5.4"
           },
           "provide": {
               "psr/log-implementation": "1.0|2.0|3.0"
           },
           "require-dev": {
               "psr/log": "^1|^2|^3",
               "symfony/config": "^5.4|^6.0|^7.0",
               "symfony/dependency-injection": "^5.4|^6.0|^7.0",
               "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
               "symfony/http-foundation": "^6.4|^7.0",
               "symfony/http-kernel": "^6.4|^7.0",
               "symfony/lock": "^5.4|^6.0|^7.0",
               "symfony/messenger": "^5.4|^6.0|^7.0",
               "symfony/process": "^5.4|^6.0|^7.0",
               "symfony/stopwatch": "^5.4|^6.0|^7.0",
               "symfony/var-dumper": "^5.4|^6.0|^7.0"
           },
           "type": "library",
           "autoload": {
               "psr-4": {
                   "Symfony\\Component\\Console\\": ""
               },
               "exclude-from-classmap": [
                   "/Tests/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Fabien Potencier",
                   "email": "[email protected]"
               },
               {
                   "name": "Symfony Community",
                   "homepage": "https://symfony.com/contributors"
               }
           ],
           "description": "Eases the creation of beautiful and testable command line interfaces",
           "homepage": "https://symfony.com",
           "keywords": [
               "cli",
               "command-line",
               "console",
               "terminal"
           ],
           "support": {
               "source": "https://github.com/symfony/console/tree/6.4"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-23T13:36:40+00:00"
       },
       {
           "name": "symfony/deprecation-contracts",
           "version": "dev-main",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/deprecation-contracts.git",
               "reference": "2c438b99bb2753c1628c1e6f523991edea5b03a4"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/2c438b99bb2753c1628c1e6f523991edea5b03a4",
               "reference": "2c438b99bb2753c1628c1e6f523991edea5b03a4",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "3.5-dev"
               },
               "thanks": {
                   "name": "symfony/contracts",
                   "url": "https://github.com/symfony/contracts"
               }
           },
           "autoload": {
               "files": [
                   "function.php"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "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/main"
           },
           "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-01-02T14:07:37+00:00"
       },
       {
           "name": "symfony/polyfill-ctype",
           "version": "1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/polyfill-ctype.git",
               "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
               "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
               "shasum": ""
           },
           "require": {
               "php": ">=7.1"
           },
           "provide": {
               "ext-ctype": "*"
           },
           "suggest": {
               "ext-ctype": "For best performance"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "1.28-dev"
               },
               "thanks": {
                   "name": "symfony/polyfill",
                   "url": "https://github.com/symfony/polyfill"
               }
           },
           "autoload": {
               "files": [
                   "bootstrap.php"
               ],
               "psr-4": {
                   "Symfony\\Polyfill\\Ctype\\": ""
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Gert de Pagter",
                   "email": "[email protected]"
               },
               {
                   "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.28.0"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2023-01-26T09:26:14+00:00"
       },
       {
           "name": "symfony/polyfill-intl-grapheme",
           "version": "1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
               "reference": "875e90aeea2777b6f135677f618529449334a612"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
               "reference": "875e90aeea2777b6f135677f618529449334a612",
               "shasum": ""
           },
           "require": {
               "php": ">=7.1"
           },
           "suggest": {
               "ext-intl": "For best performance"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "1.28-dev"
               },
               "thanks": {
                   "name": "symfony/polyfill",
                   "url": "https://github.com/symfony/polyfill"
               }
           },
           "autoload": {
               "files": [
                   "bootstrap.php"
               ],
               "psr-4": {
                   "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "name": "Symfony Community",
                   "homepage": "https://symfony.com/contributors"
               }
           ],
           "description": "Symfony polyfill for intl's grapheme_* functions",
           "homepage": "https://symfony.com",
           "keywords": [
               "compatibility",
               "grapheme",
               "intl",
               "polyfill",
               "portable",
               "shim"
           ],
           "support": {
               "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2023-01-26T09:26:14+00:00"
       },
       {
           "name": "symfony/polyfill-intl-normalizer",
           "version": "1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
               "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
               "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
               "shasum": ""
           },
           "require": {
               "php": ">=7.1"
           },
           "suggest": {
               "ext-intl": "For best performance"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "1.28-dev"
               },
               "thanks": {
                   "name": "symfony/polyfill",
                   "url": "https://github.com/symfony/polyfill"
               }
           },
           "autoload": {
               "files": [
                   "bootstrap.php"
               ],
               "psr-4": {
                   "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
               },
               "classmap": [
                   "Resources/stubs"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "name": "Symfony Community",
                   "homepage": "https://symfony.com/contributors"
               }
           ],
           "description": "Symfony polyfill for intl's Normalizer class and related functions",
           "homepage": "https://symfony.com",
           "keywords": [
               "compatibility",
               "intl",
               "normalizer",
               "polyfill",
               "portable",
               "shim"
           ],
           "support": {
               "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2023-01-26T09:26:14+00:00"
       },
       {
           "name": "symfony/polyfill-mbstring",
           "version": "1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/polyfill-mbstring.git",
               "reference": "42292d99c55abe617799667f454222c54c60e229"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
               "reference": "42292d99c55abe617799667f454222c54c60e229",
               "shasum": ""
           },
           "require": {
               "php": ">=7.1"
           },
           "provide": {
               "ext-mbstring": "*"
           },
           "suggest": {
               "ext-mbstring": "For best performance"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "1.28-dev"
               },
               "thanks": {
                   "name": "symfony/polyfill",
                   "url": "https://github.com/symfony/polyfill"
               }
           },
           "autoload": {
               "files": [
                   "bootstrap.php"
               ],
               "psr-4": {
                   "Symfony\\Polyfill\\Mbstring\\": ""
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "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.28.0"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2023-07-28T09:04:16+00:00"
       },
       {
           "name": "symfony/service-contracts",
           "version": "dev-main",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/service-contracts.git",
               "reference": "cea2eccfcd27ac3deb252bd67f78b9b8ffc4da84"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/service-contracts/zipball/cea2eccfcd27ac3deb252bd67f78b9b8ffc4da84",
               "reference": "cea2eccfcd27ac3deb252bd67f78b9b8ffc4da84",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "psr/container": "^1.1|^2.0"
           },
           "conflict": {
               "ext-psr": "<1.1|>=2"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "3.5-dev"
               },
               "thanks": {
                   "name": "symfony/contracts",
                   "url": "https://github.com/symfony/contracts"
               }
           },
           "autoload": {
               "psr-4": {
                   "Symfony\\Contracts\\Service\\": ""
               },
               "exclude-from-classmap": [
                   "/Test/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "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/main"
           },
           "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-01-02T14:07:37+00:00"
       },
       {
           "name": "symfony/string",
           "version": "6.4.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/string.git",
               "reference": "6901a54f38d633f1d81604002ce43bc3706616f4"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/string/zipball/6901a54f38d633f1d81604002ce43bc3706616f4",
               "reference": "6901a54f38d633f1d81604002ce43bc3706616f4",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "symfony/polyfill-ctype": "~1.8",
               "symfony/polyfill-intl-grapheme": "~1.0",
               "symfony/polyfill-intl-normalizer": "~1.0",
               "symfony/polyfill-mbstring": "~1.0"
           },
           "conflict": {
               "symfony/translation-contracts": "<2.5"
           },
           "require-dev": {
               "symfony/error-handler": "^5.4|^6.0|^7.0",
               "symfony/http-client": "^5.4|^6.0|^7.0",
               "symfony/intl": "^6.2|^7.0",
               "symfony/translation-contracts": "^2.5|^3.0",
               "symfony/var-exporter": "^5.4|^6.0|^7.0"
           },
           "type": "library",
           "autoload": {
               "files": [
                   "Resources/functions.php"
               ],
               "psr-4": {
                   "Symfony\\Component\\String\\": ""
               },
               "exclude-from-classmap": [
                   "/Tests/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "name": "Symfony Community",
                   "homepage": "https://symfony.com/contributors"
               }
           ],
           "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
           "homepage": "https://symfony.com",
           "keywords": [
               "grapheme",
               "i18n",
               "string",
               "unicode",
               "utf-8",
               "utf8"
           ],
           "support": {
               "source": "https://github.com/symfony/string/tree/6.4"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-23T14:51:35+00:00"
       }
   ],
   "packages-dev": [
       {
           "name": "doctrine/instantiator",
           "version": "2.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/doctrine/instantiator.git",
               "reference": "6c0ee619435c5d4f3bc515ab1514cf4cf1006c6e"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/doctrine/instantiator/zipball/6c0ee619435c5d4f3bc515ab1514cf4cf1006c6e",
               "reference": "6c0ee619435c5d4f3bc515ab1514cf4cf1006c6e",
               "shasum": ""
           },
           "require": {
               "php": "^8.1"
           },
           "require-dev": {
               "doctrine/coding-standard": "^12",
               "ext-pdo": "*",
               "ext-phar": "*",
               "phpbench/phpbench": "^1.2",
               "phpstan/phpstan": "^1.9.4",
               "phpstan/phpstan-phpunit": "^1.3",
               "phpunit/phpunit": "^10.5",
               "vimeo/psalm": "^5.4"
           },
           "default-branch": true,
           "type": "library",
           "autoload": {
               "psr-4": {
                   "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Marco Pivetta",
                   "email": "[email protected]",
                   "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.0.x"
           },
           "funding": [
               {
                   "url": "https://www.doctrine-project.org/sponsorship.html",
                   "type": "custom"
               },
               {
                   "url": "https://www.patreon.com/phpdoctrine",
                   "type": "patreon"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
                   "type": "tidelift"
               }
           ],
           "time": "2023-12-09T14:19:21+00:00"
       },
       {
           "name": "myclabs/deep-copy",
           "version": "1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/myclabs/DeepCopy.git",
               "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/202aaf6b7c2e1e0a622b0298e9f3f537e4d84018",
               "reference": "202aaf6b7c2e1e0a622b0298e9f3f537e4d84018",
               "shasum": ""
           },
           "require": {
               "php": "^7.1 || ^8.0"
           },
           "conflict": {
               "doctrine/collections": "<1.6.8",
               "doctrine/common": "<2.13.3 || >=3 <3.2.2"
           },
           "require-dev": {
               "doctrine/collections": "^1.6.8",
               "doctrine/common": "^2.13.3 || ^3.2.2",
               "phpspec/prophecy": "^1.10",
               "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
           },
           "default-branch": true,
           "type": "library",
           "autoload": {
               "files": [
                   "src/DeepCopy/deep_copy.php"
               ],
               "psr-4": {
                   "DeepCopy\\": "src/DeepCopy/"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "description": "Create deep copies (clones) of your objects",
           "keywords": [
               "clone",
               "copy",
               "duplicate",
               "object",
               "object graph"
           ],
           "support": {
               "issues": "https://github.com/myclabs/DeepCopy/issues",
               "source": "https://github.com/myclabs/DeepCopy/tree/1.x"
           },
           "funding": [
               {
                   "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
                   "type": "tidelift"
               }
           ],
           "time": "2023-11-01T08:01:43+00:00"
       },
       {
           "name": "nikic/php-parser",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/nikic/PHP-Parser.git",
               "reference": "ce019e9ad711e31ee87c2c4c72e538b5240970c3"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/ce019e9ad711e31ee87c2c4c72e538b5240970c3",
               "reference": "ce019e9ad711e31ee87c2c4c72e538b5240970c3",
               "shasum": ""
           },
           "require": {
               "ext-ctype": "*",
               "ext-json": "*",
               "ext-tokenizer": "*",
               "php": ">=7.4"
           },
           "require-dev": {
               "ircmaxell/php-yacc": "^0.0.7",
               "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
           },
           "default-branch": true,
           "bin": [
               "bin/php-parse"
           ],
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "5.0-dev"
               }
           },
           "autoload": {
               "psr-4": {
                   "PhpParser\\": "lib/PhpParser"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Nikita Popov"
               }
           ],
           "description": "A PHP parser written in PHP",
           "keywords": [
               "parser",
               "php"
           ],
           "support": {
               "issues": "https://github.com/nikic/PHP-Parser/issues",
               "source": "https://github.com/nikic/PHP-Parser/tree/master"
           },
           "time": "2024-01-14T09:02:54+00:00"
       },
       {
           "name": "phar-io/manifest",
           "version": "dev-master",
           "source": {
               "type": "git",
               "url": "https://github.com/phar-io/manifest.git",
               "reference": "67729272c564ab9f953c81f48db44e8b1cb1e1c3"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phar-io/manifest/zipball/67729272c564ab9f953c81f48db44e8b1cb1e1c3",
               "reference": "67729272c564ab9f953c81f48db44e8b1cb1e1c3",
               "shasum": ""
           },
           "require": {
               "ext-dom": "*",
               "ext-libxml": "*",
               "ext-phar": "*",
               "ext-xmlwriter": "*",
               "phar-io/version": "^3.0.1",
               "php": "^7.3 || ^8.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0.x-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Arne Blankerts",
                   "email": "[email protected]",
                   "role": "Developer"
               },
               {
                   "name": "Sebastian Heuer",
                   "email": "[email protected]",
                   "role": "Developer"
               },
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "Developer"
               }
           ],
           "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
           "support": {
               "issues": "https://github.com/phar-io/manifest/issues",
               "source": "https://github.com/phar-io/manifest/tree/master"
           },
           "funding": [
               {
                   "url": "https://github.com/theseer",
                   "type": "github"
               }
           ],
           "time": "2023-06-01T14:19:47+00:00"
       },
       {
           "name": "phar-io/version",
           "version": "3.2.1",
           "source": {
               "type": "git",
               "url": "https://github.com/phar-io/version.git",
               "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
               "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
               "shasum": ""
           },
           "require": {
               "php": "^7.2 || ^8.0"
           },
           "type": "library",
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Arne Blankerts",
                   "email": "[email protected]",
                   "role": "Developer"
               },
               {
                   "name": "Sebastian Heuer",
                   "email": "[email protected]",
                   "role": "Developer"
               },
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "Developer"
               }
           ],
           "description": "Library for handling version information and constraints",
           "support": {
               "issues": "https://github.com/phar-io/version/issues",
               "source": "https://github.com/phar-io/version/tree/3.2.1"
           },
           "time": "2022-02-21T01:04:05+00:00"
       },
       {
           "name": "phpcr/phpcr-api-tests",
           "version": "2.1.25",
           "source": {
               "type": "git",
               "url": "https://github.com/phpcr/phpcr-api-tests.git",
               "reference": "f22ed0e882debf1c98da52a2b9262ec6dc8b459c"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phpcr/phpcr-api-tests/zipball/f22ed0e882debf1c98da52a2b9262ec6dc8b459c",
               "reference": "f22ed0e882debf1c98da52a2b9262ec6dc8b459c",
               "shasum": ""
           },
           "require": {
               "php": "^7.1 || ^8.0",
               "phpcr/phpcr-implementation": "2.1.*",
               "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0 || ^10.0"
           },
           "type": "testsuite",
           "autoload": {
               "psr-4": {
                   "PHPCR\\Test\\": "inc/",
                   "PHPCR\\Tests\\": "tests/"
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT",
               "Apache-2.0"
           ],
           "authors": [
               {
                   "name": "David Buchmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Daniel Barsotti",
                   "email": "[email protected]"
               },
               {
                   "name": "Roland Schilter",
                   "email": "[email protected]"
               },
               {
                   "name": "Lukas Kahwe Smith",
                   "email": "[email protected]"
               }
           ],
           "description": "PHP Content Repository compliance test suite",
           "homepage": "http://phpcr.github.io",
           "keywords": [
               "contentrepository",
               "phpcr",
               "testing"
           ],
           "support": {
               "issues": "https://github.com/phpcr/phpcr-api-tests/issues",
               "source": "https://github.com/phpcr/phpcr-api-tests/tree/2.1.25"
           },
           "time": "2023-12-02T10:21:03+00:00"
       },
       {
           "name": "phpstan/phpstan",
           "version": "1.10.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/phpstan/phpstan.git",
               "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e",
               "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e",
               "shasum": ""
           },
           "require": {
               "php": "^7.2|^8.0"
           },
           "conflict": {
               "phpstan/phpstan-shim": "*"
           },
           "bin": [
               "phpstan",
               "phpstan.phar"
           ],
           "type": "library",
           "autoload": {
               "files": [
                   "bootstrap.php"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "description": "PHPStan - PHP Static Analysis Tool",
           "keywords": [
               "dev",
               "static analysis"
           ],
           "support": {
               "docs": "https://phpstan.org/user-guide/getting-started",
               "forum": "https://github.com/phpstan/phpstan/discussions",
               "issues": "https://github.com/phpstan/phpstan/issues",
               "security": "https://github.com/phpstan/phpstan/security/policy",
               "source": "https://github.com/phpstan/phpstan-src"
           },
           "funding": [
               {
                   "url": "https://github.com/ondrejmirtes",
                   "type": "github"
               },
               {
                   "url": "https://github.com/phpstan",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-24T11:51:34+00:00"
       },
       {
           "name": "phpunit/php-code-coverage",
           "version": "9.2.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
               "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089",
               "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089",
               "shasum": ""
           },
           "require": {
               "ext-dom": "*",
               "ext-libxml": "*",
               "ext-xmlwriter": "*",
               "nikic/php-parser": "^4.18 || ^5.0",
               "php": ">=7.3",
               "phpunit/php-file-iterator": "^3.0.3",
               "phpunit/php-text-template": "^2.0.2",
               "sebastian/code-unit-reverse-lookup": "^2.0.2",
               "sebastian/complexity": "^2.0",
               "sebastian/environment": "^5.1.2",
               "sebastian/lines-of-code": "^1.0.3",
               "sebastian/version": "^3.0.1",
               "theseer/tokenizer": "^1.2.0"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "suggest": {
               "ext-pcov": "PHP extension that provides line coverage",
               "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "9.2-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
           "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
           "keywords": [
               "coverage",
               "testing",
               "xunit"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
               "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
               "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-12-22T06:47:57+00:00"
       },
       {
           "name": "phpunit/php-file-iterator",
           "version": "3.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
               "reference": "38b24367e1b340aa78b96d7cab042942d917bb84"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/38b24367e1b340aa78b96d7cab042942d917bb84",
               "reference": "38b24367e1b340aa78b96d7cab042942d917bb84",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "FilterIterator implementation that filters files based on a list of suffixes.",
           "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
           "keywords": [
               "filesystem",
               "iterator"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
               "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2022-02-11T16:23:04+00:00"
       },
       {
           "name": "phpunit/php-invoker",
           "version": "3.1.1",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/php-invoker.git",
               "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
               "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "ext-pcntl": "*",
               "phpunit/phpunit": "^9.3"
           },
           "suggest": {
               "ext-pcntl": "*"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.1-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Invoke callables with a timeout",
           "homepage": "https://github.com/sebastianbergmann/php-invoker/",
           "keywords": [
               "process"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
               "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-09-28T05:58:55+00:00"
       },
       {
           "name": "phpunit/php-text-template",
           "version": "2.0.4",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/php-text-template.git",
               "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
               "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Simple template engine.",
           "homepage": "https://github.com/sebastianbergmann/php-text-template/",
           "keywords": [
               "template"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
               "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-10-26T05:33:50+00:00"
       },
       {
           "name": "phpunit/php-timer",
           "version": "5.0.3",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/php-timer.git",
               "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
               "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "5.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Utility class for timing",
           "homepage": "https://github.com/sebastianbergmann/php-timer/",
           "keywords": [
               "timer"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/php-timer/issues",
               "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-10-26T13:16:10+00:00"
       },
       {
           "name": "phpunit/phpunit",
           "version": "9.6.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/phpunit.git",
               "reference": "c2f616898ae8868e4d68643ad39ea34b30a860c8"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c2f616898ae8868e4d68643ad39ea34b30a860c8",
               "reference": "c2f616898ae8868e4d68643ad39ea34b30a860c8",
               "shasum": ""
           },
           "require": {
               "doctrine/instantiator": "^1.3.1 || ^2",
               "ext-dom": "*",
               "ext-json": "*",
               "ext-libxml": "*",
               "ext-mbstring": "*",
               "ext-xml": "*",
               "ext-xmlwriter": "*",
               "myclabs/deep-copy": "^1.10.1",
               "phar-io/manifest": "^2.0.3",
               "phar-io/version": "^3.0.2",
               "php": ">=7.3",
               "phpunit/php-code-coverage": "^9.2.28",
               "phpunit/php-file-iterator": "^3.0.5",
               "phpunit/php-invoker": "^3.1.1",
               "phpunit/php-text-template": "^2.0.3",
               "phpunit/php-timer": "^5.0.2",
               "sebastian/cli-parser": "^1.0.1",
               "sebastian/code-unit": "^1.0.6",
               "sebastian/comparator": "^4.0.8",
               "sebastian/diff": "^4.0.3",
               "sebastian/environment": "^5.1.3",
               "sebastian/exporter": "^4.0.5",
               "sebastian/global-state": "^5.0.1",
               "sebastian/object-enumerator": "^4.0.3",
               "sebastian/resource-operations": "^3.0.3",
               "sebastian/type": "^3.2",
               "sebastian/version": "^3.0.2"
           },
           "suggest": {
               "ext-soap": "To be able to generate mocks based on WSDL files",
               "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
           },
           "bin": [
               "phpunit"
           ],
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "9.6-dev"
               }
           },
           "autoload": {
               "files": [
                   "src/Framework/Assert/Functions.php"
               ],
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "The PHP Unit Testing framework.",
           "homepage": "https://phpunit.de/",
           "keywords": [
               "phpunit",
               "testing",
               "xunit"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/phpunit/issues",
               "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
               "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6"
           },
           "funding": [
               {
                   "url": "https://phpunit.de/sponsors.html",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-24T14:41:56+00:00"
       },
       {
           "name": "sebastian/cli-parser",
           "version": "1.0.1",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/cli-parser.git",
               "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
               "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "1.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Library for parsing CLI options",
           "homepage": "https://github.com/sebastianbergmann/cli-parser",
           "support": {
               "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
               "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-09-28T06:08:49+00:00"
       },
       {
           "name": "sebastian/code-unit",
           "version": "1.0.8",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/code-unit.git",
               "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
               "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "1.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Collection of value objects that represent the PHP code units",
           "homepage": "https://github.com/sebastianbergmann/code-unit",
           "support": {
               "issues": "https://github.com/sebastianbergmann/code-unit/issues",
               "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-10-26T13:08:54+00:00"
       },
       {
           "name": "sebastian/code-unit-reverse-lookup",
           "version": "2.0.3",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
               "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
               "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Looks up which function or method a line of code belongs to",
           "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
           "support": {
               "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
               "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-09-28T05:30:19+00:00"
       },
       {
           "name": "sebastian/comparator",
           "version": "4.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/comparator.git",
               "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/b247957a1c8dc81a671770f74b479c0a78a818f1",
               "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3",
               "sebastian/diff": "^4.0",
               "sebastian/exporter": "^4.0"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "4.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Jeff Welch",
                   "email": "[email protected]"
               },
               {
                   "name": "Volker Dusch",
                   "email": "[email protected]"
               },
               {
                   "name": "Bernhard Schussek",
                   "email": "[email protected]"
               }
           ],
           "description": "Provides the functionality to compare PHP values for equality",
           "homepage": "https://github.com/sebastianbergmann/comparator",
           "keywords": [
               "comparator",
               "compare",
               "equality"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/comparator/issues",
               "source": "https://github.com/sebastianbergmann/comparator/tree/4.0"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2022-09-14T12:46:14+00:00"
       },
       {
           "name": "sebastian/complexity",
           "version": "2.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/complexity.git",
               "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
               "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
               "shasum": ""
           },
           "require": {
               "nikic/php-parser": "^4.18 || ^5.0",
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Library for calculating the complexity of PHP code units",
           "homepage": "https://github.com/sebastianbergmann/complexity",
           "support": {
               "issues": "https://github.com/sebastianbergmann/complexity/issues",
               "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-12-22T06:19:30+00:00"
       },
       {
           "name": "sebastian/diff",
           "version": "4.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/diff.git",
               "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
               "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3",
               "symfony/process": "^4.2 || ^5"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "4.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Kore Nordmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Diff implementation",
           "homepage": "https://github.com/sebastianbergmann/diff",
           "keywords": [
               "diff",
               "udiff",
               "unidiff",
               "unified diff"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/diff/issues",
               "source": "https://github.com/sebastianbergmann/diff/tree/4.0"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-05-07T05:35:17+00:00"
       },
       {
           "name": "sebastian/environment",
           "version": "5.1.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/environment.git",
               "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
               "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "suggest": {
               "ext-posix": "*"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "5.1-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Provides functionality to handle HHVM/PHP environments",
           "homepage": "http://www.github.com/sebastianbergmann/environment",
           "keywords": [
               "Xdebug",
               "environment",
               "hhvm"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/environment/issues",
               "source": "https://github.com/sebastianbergmann/environment/tree/5.1"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-02-03T06:03:51+00:00"
       },
       {
           "name": "sebastian/exporter",
           "version": "4.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/exporter.git",
               "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
               "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3",
               "sebastian/recursion-context": "^4.0"
           },
           "require-dev": {
               "ext-mbstring": "*",
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "4.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Jeff Welch",
                   "email": "[email protected]"
               },
               {
                   "name": "Volker Dusch",
                   "email": "[email protected]"
               },
               {
                   "name": "Adam Harvey",
                   "email": "[email protected]"
               },
               {
                   "name": "Bernhard Schussek",
                   "email": "[email protected]"
               }
           ],
           "description": "Provides the functionality to export PHP variables for visualization",
           "homepage": "https://www.github.com/sebastianbergmann/exporter",
           "keywords": [
               "export",
               "exporter"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/exporter/issues",
               "source": "https://github.com/sebastianbergmann/exporter/tree/4.0"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2022-09-14T06:03:37+00:00"
       },
       {
           "name": "sebastian/global-state",
           "version": "5.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/global-state.git",
               "reference": "bde739e7565280bda77be70044ac1047bc007e34"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
               "reference": "bde739e7565280bda77be70044ac1047bc007e34",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3",
               "sebastian/object-reflector": "^2.0",
               "sebastian/recursion-context": "^4.0"
           },
           "require-dev": {
               "ext-dom": "*",
               "phpunit/phpunit": "^9.3"
           },
           "suggest": {
               "ext-uopz": "*"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "5.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Snapshotting of global state",
           "homepage": "http://www.github.com/sebastianbergmann/global-state",
           "keywords": [
               "global state"
           ],
           "support": {
               "issues": "https://github.com/sebastianbergmann/global-state/issues",
               "source": "https://github.com/sebastianbergmann/global-state/tree/5.0"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-08-02T09:26:13+00:00"
       },
       {
           "name": "sebastian/lines-of-code",
           "version": "1.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/lines-of-code.git",
               "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
               "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
               "shasum": ""
           },
           "require": {
               "nikic/php-parser": "^4.18 || ^5.0",
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "1.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Library for counting the lines of code in PHP source code",
           "homepage": "https://github.com/sebastianbergmann/lines-of-code",
           "support": {
               "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
               "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-12-22T06:20:34+00:00"
       },
       {
           "name": "sebastian/object-enumerator",
           "version": "4.0.4",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/object-enumerator.git",
               "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
               "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3",
               "sebastian/object-reflector": "^2.0",
               "sebastian/recursion-context": "^4.0"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "4.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Traverses array structures and object graphs to enumerate all referenced objects",
           "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
           "support": {
               "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
               "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-10-26T13:12:34+00:00"
       },
       {
           "name": "sebastian/object-reflector",
           "version": "2.0.4",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/object-reflector.git",
               "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
               "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "2.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Allows reflection of object attributes, including inherited and non-public ones",
           "homepage": "https://github.com/sebastianbergmann/object-reflector/",
           "support": {
               "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
               "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-10-26T13:14:26+00:00"
       },
       {
           "name": "sebastian/recursion-context",
           "version": "4.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/recursion-context.git",
               "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
               "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "4.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               },
               {
                   "name": "Jeff Welch",
                   "email": "[email protected]"
               },
               {
                   "name": "Adam Harvey",
                   "email": "[email protected]"
               }
           ],
           "description": "Provides functionality to recursively process PHP variables",
           "homepage": "https://github.com/sebastianbergmann/recursion-context",
           "support": {
               "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
               "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-02-03T06:07:39+00:00"
       },
       {
           "name": "sebastian/resource-operations",
           "version": "dev-main",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/resource-operations.git",
               "reference": "20bdda85c7c585ab265c0c37ec052a019bae29c4"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/20bdda85c7c585ab265c0c37ec052a019bae29c4",
               "reference": "20bdda85c7c585ab265c0c37ec052a019bae29c4",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "3.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]"
               }
           ],
           "description": "Provides a list of PHP built-in functions that operate on resources",
           "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
           "support": {
               "source": "https://github.com/sebastianbergmann/resource-operations/tree/main"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-03-25T08:11:39+00:00"
       },
       {
           "name": "sebastian/type",
           "version": "3.2.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/type.git",
               "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
               "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "require-dev": {
               "phpunit/phpunit": "^9.5"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.2-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Collection of value objects that represent the types of the PHP type system",
           "homepage": "https://github.com/sebastianbergmann/type",
           "support": {
               "issues": "https://github.com/sebastianbergmann/type/issues",
               "source": "https://github.com/sebastianbergmann/type/tree/3.2"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2023-02-03T06:13:03+00:00"
       },
       {
           "name": "sebastian/version",
           "version": "3.0.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/sebastianbergmann/version.git",
               "reference": "c6c1022351a901512170118436c764e473f6de8c"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
               "reference": "c6c1022351a901512170118436c764e473f6de8c",
               "shasum": ""
           },
           "require": {
               "php": ">=7.3"
           },
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-master": "3.0-dev"
               }
           },
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Sebastian Bergmann",
                   "email": "[email protected]",
                   "role": "lead"
               }
           ],
           "description": "Library that helps with managing the version number of Git-hosted PHP projects",
           "homepage": "https://github.com/sebastianbergmann/version",
           "support": {
               "issues": "https://github.com/sebastianbergmann/version/issues",
               "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
           },
           "funding": [
               {
                   "url": "https://github.com/sebastianbergmann",
                   "type": "github"
               }
           ],
           "time": "2020-09-28T06:39:44+00:00"
       },
       {
           "name": "symfony/cache",
           "version": "6.4.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/cache.git",
               "reference": "49f8cdee544a621a621cd21b6cda32a38926d310"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/cache/zipball/49f8cdee544a621a621cd21b6cda32a38926d310",
               "reference": "49f8cdee544a621a621cd21b6cda32a38926d310",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "psr/cache": "^2.0|^3.0",
               "psr/log": "^1.1|^2|^3",
               "symfony/cache-contracts": "^2.5|^3",
               "symfony/service-contracts": "^2.5|^3",
               "symfony/var-exporter": "^6.3.6|^7.0"
           },
           "conflict": {
               "doctrine/dbal": "<2.13.1",
               "symfony/dependency-injection": "<5.4",
               "symfony/http-kernel": "<5.4",
               "symfony/var-dumper": "<5.4"
           },
           "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": "^2.13.1|^3|^4",
               "predis/predis": "^1.1|^2.0",
               "psr/simple-cache": "^1.0|^2.0|^3.0",
               "symfony/config": "^5.4|^6.0|^7.0",
               "symfony/dependency-injection": "^5.4|^6.0|^7.0",
               "symfony/filesystem": "^5.4|^6.0|^7.0",
               "symfony/http-kernel": "^5.4|^6.0|^7.0",
               "symfony/messenger": "^5.4|^6.0|^7.0",
               "symfony/var-dumper": "^5.4|^6.0|^7.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": "[email protected]"
               },
               {
                   "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/6.4"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-23T14:51:35+00:00"
       },
       {
           "name": "symfony/cache-contracts",
           "version": "dev-main",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/cache-contracts.git",
               "reference": "b0393e376d6137fe2abf9e0e89cf74f4e91b5790"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/b0393e376d6137fe2abf9e0e89cf74f4e91b5790",
               "reference": "b0393e376d6137fe2abf9e0e89cf74f4e91b5790",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "psr/cache": "^3.0"
           },
           "default-branch": true,
           "type": "library",
           "extra": {
               "branch-alias": {
                   "dev-main": "3.5-dev"
               },
               "thanks": {
                   "name": "symfony/contracts",
                   "url": "https://github.com/symfony/contracts"
               }
           },
           "autoload": {
               "psr-4": {
                   "Symfony\\Contracts\\Cache\\": ""
               }
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "MIT"
           ],
           "authors": [
               {
                   "name": "Nicolas Grekas",
                   "email": "[email protected]"
               },
               {
                   "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/main"
           },
           "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-01-02T14:07:37+00:00"
       },
       {
           "name": "symfony/var-exporter",
           "version": "6.4.x-dev",
           "source": {
               "type": "git",
               "url": "https://github.com/symfony/var-exporter.git",
               "reference": "a8c12b5448a5ac685347f5eeb2abf6a571ec16b8"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/symfony/var-exporter/zipball/a8c12b5448a5ac685347f5eeb2abf6a571ec16b8",
               "reference": "a8c12b5448a5ac685347f5eeb2abf6a571ec16b8",
               "shasum": ""
           },
           "require": {
               "php": ">=8.1",
               "symfony/deprecation-contracts": "^2.5|^3"
           },
           "require-dev": {
               "symfony/var-dumper": "^5.4|^6.0|^7.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": "[email protected]"
               },
               {
                   "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/6.4"
           },
           "funding": [
               {
                   "url": "https://symfony.com/sponsor",
                   "type": "custom"
               },
               {
                   "url": "https://github.com/fabpot",
                   "type": "github"
               },
               {
                   "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
                   "type": "tidelift"
               }
           ],
           "time": "2024-01-23T14:51:35+00:00"
       },
       {
           "name": "theseer/tokenizer",
           "version": "1.2.2",
           "source": {
               "type": "git",
               "url": "https://github.com/theseer/tokenizer.git",
               "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
           },
           "dist": {
               "type": "zip",
               "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
               "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
               "shasum": ""
           },
           "require": {
               "ext-dom": "*",
               "ext-tokenizer": "*",
               "ext-xmlwriter": "*",
               "php": "^7.2 || ^8.0"
           },
           "type": "library",
           "autoload": {
               "classmap": [
                   "src/"
               ]
           },
           "notification-url": "https://packagist.org/downloads/",
           "license": [
               "BSD-3-Clause"
           ],
           "authors": [
               {
                   "name": "Arne Blankerts",
                   "email": "[email protected]",
                   "role": "Developer"
               }
           ],
           "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
           "support": {
               "issues": "https://github.com/theseer/tokenizer/issues",
               "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
           },
           "funding": [
               {
                   "url": "https://github.com/theseer",
                   "type": "github"
               }
           ],
           "time": "2023-11-20T00:12:19+00:00"
       }
   ],
   "aliases": [],
   "minimum-stability": "dev",
   "stability-flags": {
       "phpstan/phpstan": 20
   },
   "prefer-stable": false,
   "prefer-lowest": false,
   "platform": {
       "php": "^8.0",
       "ext-dom": "*",
       "ext-pdo": "*",
       "ext-xml": "*"
   },
   "platform-dev": {
       "ext-json": "*",
       "ext-libxml": "*",
       "ext-simplexml": "*"
   },
   "plugin-api-version": "2.6.0"
}

@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from 654aeb5 to 3e2fec6 Compare January 26, 2024 12:23
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from 3e2fec6 to 4802f08 Compare January 26, 2024 12:24
@alexander-schranz alexander-schranz marked this pull request as draft January 26, 2024 12:28
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from d190e38 to f697ecd Compare January 26, 2024 12:44
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from f83858f to 331ee89 Compare January 26, 2024 13:05
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from 28bf37b to dceea0e Compare January 26, 2024 13:12
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from 8c8e3f5 to 54692bb Compare January 26, 2024 13:55
@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from c16c7a0 to 9deb0a5 Compare January 26, 2024 14:00
Comment on lines +1684 to +1691
$forUpdateSql = ' FOR UPDATE'; // https://github.com/doctrine/dbal/blob/79ea9d6eda8e8e8705f2db58439e9934d8c769da/src/Platforms/AbstractPlatform.php#L1776
if ($this->getConnection()->getDatabasePlatform() instanceof SqlitePlatform) {
$forUpdateSql = ''; // https://github.com/doctrine/dbal/blob/79ea9d6eda8e8e8705f2db58439e9934d8c769da/src/Platforms/SqlitePlatform.php#L753
} elseif ($this->getConnection()->getDatabasePlatform() instanceof SQLServerPlatform) {
$forUpdateSql = ''; // https://github.com/doctrine/dbal/blob/79ea9d6eda8e8e8705f2db58439e9934d8c769da/src/Platforms/SQLServerPlatform.php#L1625
}

$query = 'SELECT path, id FROM phpcr_nodes WHERE path LIKE ? OR path = ? AND workspace_name = ? '.$forUpdateSql;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you tried leveraging the query builder for adding lock hints?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not familiar with that. @dbu how would you change this part?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i am also not familiar with the dbal query builder. did doctrine drop the getForUpdateSQL method? does the changelog not explain what to do instead?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alexander-schranz alexander-schranz force-pushed the enhancement/test-against-dev-stability branch from 1fd59eb to 607ff5d Compare January 26, 2024 14:44
@dbu
Copy link
Member

dbu commented Jan 30, 2024

thanks for the work! good progress already!

oh no mysql and its encoding mess :( can we be more explicit about encoding to not rely on defaults? but we would need to avoid messing up with existing legacy setups, which can be tricky. as this is 2.x we could do a BC break to require an explicit encoding configuration with mysql.

i am worried about the deprecation warning spammed over the test output, we seem to use the ObjectManager in a weird way.

@alexander-schranz
Copy link
Contributor Author

Yeah mysql encoding part is very stricky as we don't know what is correct encoding for our case sensitive field now. I also did not yet found out why dbal skipping set a default charset in the new version. Maybe @derrabus know more here. I'm also not familiar enough with the code.

The current getParams we use to get the charset is already marked as @internal, but think also it was when we implemented the handling.

@alexander-schranz
Copy link
Contributor Author

I did rethink about the charset issue as it looks like symfony already defines for most connections already the charset.

https://github.com/symfony/recipes/blob/ca74983cffe05433f8fef460c72250662acb695b/doctrine/doctrine-bundle/2.10/manifest.json#L14-L16

We could maybe go the way throw a error if no charset instead fallback to utf8 here:

$charset = $params['charset'] ?? 'utf8';

Just with some friendly error message jackalope-doctrine-dbal requires a defined charset definition, please configure it in your dbal connection via charset option.

@dbu
Copy link
Member

dbu commented Feb 8, 2024

that is indeed an idea, yeah. we should validate in the setup already - afaik the dbal connection is injected to the client with the params already in it, but we could check the params there. that would provide a better stack trace than doing it in the middle of everything.

and we also need to update the documentation and examples, also for the bundle configuration.

@dbu
Copy link
Member

dbu commented Feb 16, 2024

wrapped up in #439 😅

@dbu dbu closed this Feb 16, 2024
@alexander-schranz alexander-schranz deleted the enhancement/test-against-dev-stability branch February 16, 2024 21:01
@alexander-schranz
Copy link
Contributor Author

@dbu Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants