├── .github ├── FUNDING.yml └── workflows │ ├── phpunit.yml │ ├── psalm.yml │ └── release-on-milestone-closed.yml.disabled ├── CHANGELOG.md ├── composer.json ├── composer.lock ├── psalm.xml └── src ├── DoctrineMessageRepository.php ├── MysqlDoctrineMessageRepository.php └── PostgresDoctrineMessageRepository.php /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [frankdejonge] 2 | -------------------------------------------------------------------------------- /.github/workflows/phpunit.yml: -------------------------------------------------------------------------------- 1 | name: "PHPUnit tests" 2 | 3 | on: 4 | pull_request: 5 | push: 6 | 7 | jobs: 8 | phpunit: 9 | name: "PHPUnit tests" 10 | 11 | runs-on: ${{ matrix.operating-system }} 12 | 13 | strategy: 14 | matrix: 15 | dependencies: 16 | - "lowest" 17 | - "highest" 18 | - "locked" 19 | php-version: 20 | - "7.3" 21 | - "7.4" 22 | - "8.0" 23 | operating-system: 24 | - "ubuntu-latest" 25 | include: 26 | - php-version: "8.0" 27 | dependencies: "highest" 28 | operating-system: "ubuntu-latest" 29 | 30 | # https://docs.github.com/en/free-pro-team@latest/actions/guides/creating-postgresql-service-containers 31 | services: 32 | pgsql: 33 | image: 'postgres:13' 34 | env: 35 | POSTGRES_DB: 'domain_messages' 36 | POSTGRES_USER: 'username' 37 | POSTGRES_PASSWORD: 'password' 38 | ports: 39 | - '5432:5432' 40 | options: >- 41 | --health-cmd pg_isready 42 | --health-interval 10s 43 | --health-timeout 5s 44 | --health-retries 5 45 | mysql: 46 | image: 'mysql:5.7' 47 | env: 48 | MYSQL_ROOT_PASSWORD: 'root_password' 49 | MYSQL_DATABASE: 'domain_messages' 50 | MYSQL_USER: 'username' 51 | MYSQL_PASSWORD: 'password' 52 | MYSQL_ROOT_HOST: '%' 53 | ports: 54 | - '3306:3306' 55 | options: >- 56 | --health-cmd="mysqladmin ping" 57 | --health-interval=10s 58 | --health-timeout=5s 59 | --health-retries=3 60 | 61 | steps: 62 | - name: "Checkout" 63 | uses: "actions/checkout@v2" 64 | 65 | - name: "Install PHP" 66 | uses: "shivammathur/setup-php@v2" 67 | with: 68 | coverage: "pcov" 69 | php-version: "${{ matrix.php-version }}" 70 | ini-values: memory_limit=-1 71 | tools: composer:v2, cs2pr 72 | 73 | - name: "Cache dependencies" 74 | uses: "actions/cache@v2" 75 | with: 76 | path: | 77 | ~/.composer/cache 78 | vendor 79 | key: "php-${{ matrix.php-version }}-${{ matrix.dependencies }}" 80 | restore-keys: "php-${{ matrix.php-version }}-${{ matrix.dependencies }}" 81 | 82 | - name: "Install lowest dependencies" 83 | if: ${{ matrix.dependencies == 'lowest' }} 84 | run: "composer update --prefer-lowest --no-interaction --no-progress --no-suggest --ignore-platform-req=php" 85 | 86 | - name: "Install highest dependencies" 87 | if: ${{ matrix.dependencies == 'highest' }} 88 | run: "composer update --no-interaction --no-progress --no-suggest --ignore-platform-req=php" 89 | 90 | - name: "Install locked dependencies" 91 | if: ${{ matrix.dependencies == 'locked' }} 92 | run: "composer install --no-interaction --no-progress --no-suggest --ignore-platform-req=php" 93 | 94 | - name: "Configure databases" 95 | run: | 96 | php tests/wait-for-connection.php pgsql 97 | php tests/wait-for-connection.php mysql 98 | php tests/setup-mysql-schema.php 99 | php tests/setup-postgres-schema.php 100 | 101 | - name: "Tests" 102 | run: "vendor/bin/phpunit" 103 | -------------------------------------------------------------------------------- /.github/workflows/psalm.yml: -------------------------------------------------------------------------------- 1 | name: "Static Analysis by Psalm" 2 | 3 | on: 4 | pull_request: 5 | push: 6 | 7 | jobs: 8 | static-analysis-psalm: 9 | name: "Static Analysis by Psalm" 10 | 11 | runs-on: ${{ matrix.operating-system }} 12 | 13 | strategy: 14 | matrix: 15 | dependencies: 16 | - "locked" 17 | php-version: 18 | - "8.0" 19 | operating-system: 20 | - "ubuntu-latest" 21 | 22 | steps: 23 | - name: "Checkout" 24 | uses: "actions/checkout@v2" 25 | 26 | - name: "Install PHP" 27 | uses: "shivammathur/setup-php@v2" 28 | with: 29 | coverage: "pcov" 30 | php-version: "${{ matrix.php-version }}" 31 | ini-values: memory_limit=-1 32 | tools: composer:v2, cs2pr 33 | 34 | - name: "Cache dependencies" 35 | uses: "actions/cache@v2" 36 | with: 37 | path: | 38 | ~/.composer/cache 39 | vendor 40 | key: "php-${{ matrix.php-version }}-${{ matrix.dependencies }}" 41 | restore-keys: "php-${{ matrix.php-version }}-${{ matrix.dependencies }}" 42 | 43 | - name: "Install lowest dependencies" 44 | if: ${{ matrix.dependencies == 'lowest' }} 45 | run: "composer update --prefer-lowest --no-interaction --no-progress --no-suggest" 46 | 47 | - name: "Install highest dependencies" 48 | if: ${{ matrix.dependencies == 'highest' }} 49 | run: "composer update --no-interaction --no-progress --no-suggest" 50 | 51 | - name: "Install locked dependencies" 52 | if: ${{ matrix.dependencies == 'locked' }} 53 | run: "composer install --no-interaction --no-progress --no-suggest" 54 | 55 | - name: "psalm" 56 | run: "vendor/bin/psalm --output-format=github --shepherd --stats" 57 | -------------------------------------------------------------------------------- /.github/workflows/release-on-milestone-closed.yml.disabled: -------------------------------------------------------------------------------- 1 | # https://help.github.com/en/categories/automating-your-workflow-with-github-actions 2 | 3 | name: "Automatic Releases" 4 | 5 | on: 6 | milestone: 7 | types: 8 | - "closed" 9 | 10 | jobs: 11 | release: 12 | name: "GIT tag, release & create merge-up PR" 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - name: "Checkout" 17 | uses: "actions/checkout@v2" 18 | 19 | - name: "Release" 20 | uses: "laminas/automatic-releases@v1" 21 | with: 22 | command-name: "laminas:automatic-releases:release" 23 | env: 24 | "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} 25 | "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} 26 | "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} 27 | "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} 28 | 29 | - name: "Create Merge-Up Pull Request" 30 | uses: "laminas/automatic-releases@v1" 31 | with: 32 | command-name: "laminas:automatic-releases:create-merge-up-pull-request" 33 | env: 34 | "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} 35 | "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} 36 | "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} 37 | "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} 38 | 39 | - name: "Create and/or Switch to new Release Branch" 40 | uses: "laminas/automatic-releases@v1" 41 | with: 42 | command-name: "laminas:automatic-releases:switch-default-branch-to-next-minor" 43 | env: 44 | "GITHUB_TOKEN": ${{ secrets.ORGANIZATION_ADMIN_TOKEN }} 45 | "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} 46 | "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} 47 | "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} 48 | 49 | - name: "Bump Changelog Version On Originating Release Branch" 50 | uses: "laminas/automatic-releases@v1" 51 | with: 52 | command-name: "laminas:automatic-releases:bump-changelog" 53 | env: 54 | "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} 55 | "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} 56 | "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} 57 | "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} 58 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | This changelog follows [the Keep a Changelog standard](https://keepachangelog.com). 4 | 5 | 6 | ## [Unreleased](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.8.3...master) 7 | 8 | 9 | ## [0.8.3 (2021-01-14)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.8.2...0.8.3) 10 | 11 | ### Changed 12 | - Upgraded minimum PHP version ([#11](https://github.com/EventSaucePHP/DoctrineMessageRepository/pull/11)) 13 | 14 | ### Fixed 15 | - Type error related to Doctrine ([#10](https://github.com/EventSaucePHP/DoctrineMessageRepository/pull/10)) 16 | 17 | 18 | ## [0.8.2 (2020-10-02)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.8.1...0.8.2) 19 | 20 | ### Fixed 21 | - Retrieving additional events for a snapshot is now limited by the aggregate root ID ([#7](https://github.com/EventSaucePHP/DoctrineMessageRepository/pull/7)) 22 | 23 | 24 | ## [0.8.1 (2020-05-01)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.8.0...0.8.1) 25 | 26 | ### Changed 27 | - Update dependencies ([#6](https://github.com/EventSaucePHP/DoctrineMessageRepository/pull/6)) 28 | 29 | 30 | ## [0.8.0 (2019-12-21)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.7.0...0.8.0) 31 | 32 | ### Changed 33 | - Update to EventSauce 0.8.0 ([43f89f1](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/43f89f12dbe837539af33a4103e9b673c599a594)) 34 | 35 | 36 | ## [0.7.0 (2019-10-04)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.6.0...0.7.0) 37 | 38 | ### Changed 39 | - Update to EventSauce 0.7.0 ([3cda407](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/3cda407fb7abcf411957428456bab70cf5be9fc1)) 40 | - Always use a aggregate_root_id ([bca871f](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/bca871fd28a79f923a2c6084596f1bba5a3610cb)) 41 | - Require json extension ([6981868](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/6981868cc4c3f6a3ea7f3fae5cecb0513bc17d44)) 42 | - Added aggregate_root_version ([14495cd](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/14495cd8e3a878b5d3ab12c92cd3914d8ef182b7)) 43 | - Return last version ([569383a](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/569383ac66d37715a0b2efd5cd4215aa98f9ae98)) 44 | 45 | ### Fixed 46 | - Aggregate root ID should not be nullable ([a26f03e](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/a26f03efa03c889783e380082bcfe70dfdf79978)) 47 | - Fixed implementation ([c1aeec7](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/c1aeec72e39d0bd7189df8d689f8cf357aa8242a)) 48 | 49 | 50 | ## [0.6.0 (2019-08-15)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.5.1...0.6.0) 51 | 52 | ### Changed 53 | - Update to EventSauce 0.6.0 ([cdebd6a](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/cdebd6ab81278d8d94008f71cae496f8403621d7)) 54 | 55 | 56 | ## [0.5.1 (2019-04-11)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.5.0...0.5.1) 57 | 58 | ### Fixed 59 | - Allow json encode options to be configured ([2922a6f](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/2922a6f772923cc85c5b99663c4f49d4478b4db7)) 60 | 61 | 62 | ## [0.5.0 (2019-01-06)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.4.0...0.5.0) 63 | 64 | ### Changed 65 | - Update to EventSauce 0.5.0 ([d6abf73](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/d6abf73658b7c5fc73a615f59d44bb5ba54b1f22)) 66 | 67 | 68 | ## [0.4.0 (2018-07-11)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.3.0...0.4.0) 69 | 70 | ### Changed 71 | - Update to EventSauce 0.4.0 ([ad011ab](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/ad011ab1525e76627c8866d34957f81c53578340)) 72 | - Make time_of_recording more precise on postgres ([6256256](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/6256256f7a288a8e52e0331db4b04ae44fb56a7a)))) 73 | - Be better at mysql ([20628ef](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/20628ef65c0c069f82a77f152e852ed5f1790131)) 74 | - Use JSON field type ([2674812](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/2674812ef03d19c62babd38dafb09500a9a936e8)) 75 | 76 | 77 | ## [0.3.0 (2018-03-23)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.2.0...0.3.0) 78 | 79 | ### Changed 80 | - Update to EventSauce 0.3.0 ([1b7a5b6](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/1b7a5b6631eee751d43db0773f00ed560f1a017c)) 81 | 82 | 83 | ## [0.2.0 (2018-03-13)](https://github.com/EventSaucePHP/DoctrineMessageRepository/compare/0.1.0...0.2.0) 84 | 85 | ### Changed 86 | - Just use one class ([10e9c29](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/10e9c29ae809293910cf31ef55f94320a64119c3)) 87 | - Update to EventSauce 0.2.0 ([4b502de](https://github.com/EventSaucePHP/DoctrineMessageRepository/commit/4b502de6c9513f24566c2088b5c02c19f8591dab)) 88 | 89 | 90 | ## 0.1.0 (2018-03-07) 91 | 92 | Initial release. 93 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eventsauce/doctrine-message-repository", 3 | "type": "library", 4 | "description": "Doctrine Message Repository for EventSauce", 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Frank de Jonge", 9 | "email": "info@frenky.net" 10 | } 11 | ], 12 | "require": { 13 | "php": "^7.3.0 || ^8.0.0", 14 | "ext-json": "*", 15 | "doctrine/dbal": "^2.12.1", 16 | "eventsauce/eventsauce": "^0.7.0 || ^0.8.0", 17 | "ramsey/uuid": "^3.6 || ^4.0" 18 | }, 19 | "require-dev": { 20 | "phpunit/phpunit": "^8.5 || ^9", 21 | "vimeo/psalm": "^4.4" 22 | }, 23 | "autoload": { 24 | "psr-4": { 25 | "EventSauce\\DoctrineMessageRepository\\": "src/" 26 | } 27 | }, 28 | "autoload-dev": { 29 | "psr-4": { 30 | "EventSauce\\DoctrineMessageRepository\\Tests\\": "tests" 31 | } 32 | }, 33 | "config": { 34 | "platform": { 35 | "php": "7.3.0" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "b6904e065b8eec694b46dd945b3630f6", 8 | "packages": [ 9 | { 10 | "name": "brick/math", 11 | "version": "0.9.1", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/brick/math.git", 15 | "reference": "283a40c901101e66de7061bd359252c013dcc43c" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/brick/math/zipball/283a40c901101e66de7061bd359252c013dcc43c", 20 | "reference": "283a40c901101e66de7061bd359252c013dcc43c", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "ext-json": "*", 25 | "php": "^7.1|^8.0" 26 | }, 27 | "require-dev": { 28 | "php-coveralls/php-coveralls": "^2.2", 29 | "phpunit/phpunit": "^7.5.15|^8.5", 30 | "vimeo/psalm": "^3.5" 31 | }, 32 | "type": "library", 33 | "autoload": { 34 | "psr-4": { 35 | "Brick\\Math\\": "src/" 36 | } 37 | }, 38 | "notification-url": "https://packagist.org/downloads/", 39 | "license": [ 40 | "MIT" 41 | ], 42 | "description": "Arbitrary-precision arithmetic library", 43 | "keywords": [ 44 | "Arbitrary-precision", 45 | "BigInteger", 46 | "BigRational", 47 | "arithmetic", 48 | "bigdecimal", 49 | "bignum", 50 | "brick", 51 | "math" 52 | ], 53 | "support": { 54 | "issues": "https://github.com/brick/math/issues", 55 | "source": "https://github.com/brick/math/tree/master" 56 | }, 57 | "funding": [ 58 | { 59 | "url": "https://tidelift.com/funding/github/packagist/brick/math", 60 | "type": "tidelift" 61 | } 62 | ], 63 | "time": "2020-08-18T23:57:15+00:00" 64 | }, 65 | { 66 | "name": "doctrine/cache", 67 | "version": "1.10.2", 68 | "source": { 69 | "type": "git", 70 | "url": "https://github.com/doctrine/cache.git", 71 | "reference": "13e3381b25847283a91948d04640543941309727" 72 | }, 73 | "dist": { 74 | "type": "zip", 75 | "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727", 76 | "reference": "13e3381b25847283a91948d04640543941309727", 77 | "shasum": "" 78 | }, 79 | "require": { 80 | "php": "~7.1 || ^8.0" 81 | }, 82 | "conflict": { 83 | "doctrine/common": ">2.2,<2.4" 84 | }, 85 | "require-dev": { 86 | "alcaeus/mongo-php-adapter": "^1.1", 87 | "doctrine/coding-standard": "^6.0", 88 | "mongodb/mongodb": "^1.1", 89 | "phpunit/phpunit": "^7.0", 90 | "predis/predis": "~1.0" 91 | }, 92 | "suggest": { 93 | "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" 94 | }, 95 | "type": "library", 96 | "extra": { 97 | "branch-alias": { 98 | "dev-master": "1.9.x-dev" 99 | } 100 | }, 101 | "autoload": { 102 | "psr-4": { 103 | "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" 104 | } 105 | }, 106 | "notification-url": "https://packagist.org/downloads/", 107 | "license": [ 108 | "MIT" 109 | ], 110 | "authors": [ 111 | { 112 | "name": "Guilherme Blanco", 113 | "email": "guilhermeblanco@gmail.com" 114 | }, 115 | { 116 | "name": "Roman Borschel", 117 | "email": "roman@code-factory.org" 118 | }, 119 | { 120 | "name": "Benjamin Eberlei", 121 | "email": "kontakt@beberlei.de" 122 | }, 123 | { 124 | "name": "Jonathan Wage", 125 | "email": "jonwage@gmail.com" 126 | }, 127 | { 128 | "name": "Johannes Schmitt", 129 | "email": "schmittjoh@gmail.com" 130 | } 131 | ], 132 | "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", 133 | "homepage": "https://www.doctrine-project.org/projects/cache.html", 134 | "keywords": [ 135 | "abstraction", 136 | "apcu", 137 | "cache", 138 | "caching", 139 | "couchdb", 140 | "memcached", 141 | "php", 142 | "redis", 143 | "xcache" 144 | ], 145 | "support": { 146 | "issues": "https://github.com/doctrine/cache/issues", 147 | "source": "https://github.com/doctrine/cache/tree/1.10.x" 148 | }, 149 | "funding": [ 150 | { 151 | "url": "https://www.doctrine-project.org/sponsorship.html", 152 | "type": "custom" 153 | }, 154 | { 155 | "url": "https://www.patreon.com/phpdoctrine", 156 | "type": "patreon" 157 | }, 158 | { 159 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", 160 | "type": "tidelift" 161 | } 162 | ], 163 | "time": "2020-07-07T18:54:01+00:00" 164 | }, 165 | { 166 | "name": "doctrine/dbal", 167 | "version": "2.12.1", 168 | "source": { 169 | "type": "git", 170 | "url": "https://github.com/doctrine/dbal.git", 171 | "reference": "adce7a954a1c2f14f85e94aed90c8489af204086" 172 | }, 173 | "dist": { 174 | "type": "zip", 175 | "url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086", 176 | "reference": "adce7a954a1c2f14f85e94aed90c8489af204086", 177 | "shasum": "" 178 | }, 179 | "require": { 180 | "doctrine/cache": "^1.0", 181 | "doctrine/event-manager": "^1.0", 182 | "ext-pdo": "*", 183 | "php": "^7.3 || ^8" 184 | }, 185 | "require-dev": { 186 | "doctrine/coding-standard": "^8.1", 187 | "jetbrains/phpstorm-stubs": "^2019.1", 188 | "phpstan/phpstan": "^0.12.40", 189 | "phpunit/phpunit": "^9.4", 190 | "psalm/plugin-phpunit": "^0.10.0", 191 | "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", 192 | "vimeo/psalm": "^3.17.2" 193 | }, 194 | "suggest": { 195 | "symfony/console": "For helpful console commands such as SQL execution and import of files." 196 | }, 197 | "bin": [ 198 | "bin/doctrine-dbal" 199 | ], 200 | "type": "library", 201 | "extra": { 202 | "branch-alias": { 203 | "dev-master": "4.0.x-dev" 204 | } 205 | }, 206 | "autoload": { 207 | "psr-4": { 208 | "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" 209 | } 210 | }, 211 | "notification-url": "https://packagist.org/downloads/", 212 | "license": [ 213 | "MIT" 214 | ], 215 | "authors": [ 216 | { 217 | "name": "Guilherme Blanco", 218 | "email": "guilhermeblanco@gmail.com" 219 | }, 220 | { 221 | "name": "Roman Borschel", 222 | "email": "roman@code-factory.org" 223 | }, 224 | { 225 | "name": "Benjamin Eberlei", 226 | "email": "kontakt@beberlei.de" 227 | }, 228 | { 229 | "name": "Jonathan Wage", 230 | "email": "jonwage@gmail.com" 231 | } 232 | ], 233 | "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", 234 | "homepage": "https://www.doctrine-project.org/projects/dbal.html", 235 | "keywords": [ 236 | "abstraction", 237 | "database", 238 | "db2", 239 | "dbal", 240 | "mariadb", 241 | "mssql", 242 | "mysql", 243 | "oci8", 244 | "oracle", 245 | "pdo", 246 | "pgsql", 247 | "postgresql", 248 | "queryobject", 249 | "sasql", 250 | "sql", 251 | "sqlanywhere", 252 | "sqlite", 253 | "sqlserver", 254 | "sqlsrv" 255 | ], 256 | "support": { 257 | "issues": "https://github.com/doctrine/dbal/issues", 258 | "source": "https://github.com/doctrine/dbal/tree/2.12.1" 259 | }, 260 | "funding": [ 261 | { 262 | "url": "https://www.doctrine-project.org/sponsorship.html", 263 | "type": "custom" 264 | }, 265 | { 266 | "url": "https://www.patreon.com/phpdoctrine", 267 | "type": "patreon" 268 | }, 269 | { 270 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", 271 | "type": "tidelift" 272 | } 273 | ], 274 | "time": "2020-11-14T20:26:58+00:00" 275 | }, 276 | { 277 | "name": "doctrine/event-manager", 278 | "version": "1.1.1", 279 | "source": { 280 | "type": "git", 281 | "url": "https://github.com/doctrine/event-manager.git", 282 | "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" 283 | }, 284 | "dist": { 285 | "type": "zip", 286 | "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", 287 | "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", 288 | "shasum": "" 289 | }, 290 | "require": { 291 | "php": "^7.1 || ^8.0" 292 | }, 293 | "conflict": { 294 | "doctrine/common": "<2.9@dev" 295 | }, 296 | "require-dev": { 297 | "doctrine/coding-standard": "^6.0", 298 | "phpunit/phpunit": "^7.0" 299 | }, 300 | "type": "library", 301 | "extra": { 302 | "branch-alias": { 303 | "dev-master": "1.0.x-dev" 304 | } 305 | }, 306 | "autoload": { 307 | "psr-4": { 308 | "Doctrine\\Common\\": "lib/Doctrine/Common" 309 | } 310 | }, 311 | "notification-url": "https://packagist.org/downloads/", 312 | "license": [ 313 | "MIT" 314 | ], 315 | "authors": [ 316 | { 317 | "name": "Guilherme Blanco", 318 | "email": "guilhermeblanco@gmail.com" 319 | }, 320 | { 321 | "name": "Roman Borschel", 322 | "email": "roman@code-factory.org" 323 | }, 324 | { 325 | "name": "Benjamin Eberlei", 326 | "email": "kontakt@beberlei.de" 327 | }, 328 | { 329 | "name": "Jonathan Wage", 330 | "email": "jonwage@gmail.com" 331 | }, 332 | { 333 | "name": "Johannes Schmitt", 334 | "email": "schmittjoh@gmail.com" 335 | }, 336 | { 337 | "name": "Marco Pivetta", 338 | "email": "ocramius@gmail.com" 339 | } 340 | ], 341 | "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", 342 | "homepage": "https://www.doctrine-project.org/projects/event-manager.html", 343 | "keywords": [ 344 | "event", 345 | "event dispatcher", 346 | "event manager", 347 | "event system", 348 | "events" 349 | ], 350 | "support": { 351 | "issues": "https://github.com/doctrine/event-manager/issues", 352 | "source": "https://github.com/doctrine/event-manager/tree/1.1.x" 353 | }, 354 | "funding": [ 355 | { 356 | "url": "https://www.doctrine-project.org/sponsorship.html", 357 | "type": "custom" 358 | }, 359 | { 360 | "url": "https://www.patreon.com/phpdoctrine", 361 | "type": "patreon" 362 | }, 363 | { 364 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", 365 | "type": "tidelift" 366 | } 367 | ], 368 | "time": "2020-05-29T18:28:51+00:00" 369 | }, 370 | { 371 | "name": "eventsauce/eventsauce", 372 | "version": "0.8.2", 373 | "source": { 374 | "type": "git", 375 | "url": "https://github.com/EventSaucePHP/EventSauce.git", 376 | "reference": "3c413662af7e37c7a2ca4fd2b1cfe9365a7b6dae" 377 | }, 378 | "dist": { 379 | "type": "zip", 380 | "url": "https://api.github.com/repos/EventSaucePHP/EventSauce/zipball/3c413662af7e37c7a2ca4fd2b1cfe9365a7b6dae", 381 | "reference": "3c413662af7e37c7a2ca4fd2b1cfe9365a7b6dae", 382 | "shasum": "" 383 | }, 384 | "require": { 385 | "php": "^7.2|^8.0", 386 | "ramsey/uuid": "^3|^4", 387 | "symfony/yaml": "^3.2|^4.0|^5.0" 388 | }, 389 | "require-dev": { 390 | "friendsofphp/php-cs-fixer": "^2.15", 391 | "phpstan/phpstan": "^0.11.16|^0.12.52", 392 | "phpunit/phpunit": "^7.0|^8.0|^9.3" 393 | }, 394 | "type": "library", 395 | "autoload": { 396 | "psr-4": { 397 | "EventSauce\\EventSourcing\\": "src/" 398 | } 399 | }, 400 | "notification-url": "https://packagist.org/downloads/", 401 | "license": [ 402 | "MIT" 403 | ], 404 | "authors": [ 405 | { 406 | "name": "Frank de Jonge", 407 | "email": "info@frenky.net" 408 | } 409 | ], 410 | "description": "Event sourcing library.", 411 | "support": { 412 | "issues": "https://github.com/EventSaucePHP/EventSauce/issues", 413 | "source": "https://github.com/EventSaucePHP/EventSauce/tree/0.8.2" 414 | }, 415 | "funding": [ 416 | { 417 | "url": "https://github.com/frankdejonge", 418 | "type": "github" 419 | } 420 | ], 421 | "time": "2020-11-01T15:25:34+00:00" 422 | }, 423 | { 424 | "name": "ramsey/collection", 425 | "version": "1.1.1", 426 | "source": { 427 | "type": "git", 428 | "url": "https://github.com/ramsey/collection.git", 429 | "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1" 430 | }, 431 | "dist": { 432 | "type": "zip", 433 | "url": "https://api.github.com/repos/ramsey/collection/zipball/24d93aefb2cd786b7edd9f45b554aea20b28b9b1", 434 | "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1", 435 | "shasum": "" 436 | }, 437 | "require": { 438 | "php": "^7.2 || ^8" 439 | }, 440 | "require-dev": { 441 | "captainhook/captainhook": "^5.3", 442 | "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", 443 | "ergebnis/composer-normalize": "^2.6", 444 | "fzaninotto/faker": "^1.5", 445 | "hamcrest/hamcrest-php": "^2", 446 | "jangregor/phpstan-prophecy": "^0.6", 447 | "mockery/mockery": "^1.3", 448 | "phpstan/extension-installer": "^1", 449 | "phpstan/phpstan": "^0.12.32", 450 | "phpstan/phpstan-mockery": "^0.12.5", 451 | "phpstan/phpstan-phpunit": "^0.12.11", 452 | "phpunit/phpunit": "^8.5", 453 | "psy/psysh": "^0.10.4", 454 | "slevomat/coding-standard": "^6.3", 455 | "squizlabs/php_codesniffer": "^3.5", 456 | "vimeo/psalm": "^3.12.2" 457 | }, 458 | "type": "library", 459 | "autoload": { 460 | "psr-4": { 461 | "Ramsey\\Collection\\": "src/" 462 | } 463 | }, 464 | "notification-url": "https://packagist.org/downloads/", 465 | "license": [ 466 | "MIT" 467 | ], 468 | "authors": [ 469 | { 470 | "name": "Ben Ramsey", 471 | "email": "ben@benramsey.com", 472 | "homepage": "https://benramsey.com" 473 | } 474 | ], 475 | "description": "A PHP 7.2+ library for representing and manipulating collections.", 476 | "keywords": [ 477 | "array", 478 | "collection", 479 | "hash", 480 | "map", 481 | "queue", 482 | "set" 483 | ], 484 | "support": { 485 | "issues": "https://github.com/ramsey/collection/issues", 486 | "source": "https://github.com/ramsey/collection/tree/1.1.1" 487 | }, 488 | "funding": [ 489 | { 490 | "url": "https://github.com/ramsey", 491 | "type": "github" 492 | } 493 | ], 494 | "time": "2020-09-10T20:58:17+00:00" 495 | }, 496 | { 497 | "name": "ramsey/uuid", 498 | "version": "4.1.1", 499 | "source": { 500 | "type": "git", 501 | "url": "https://github.com/ramsey/uuid.git", 502 | "reference": "cd4032040a750077205918c86049aa0f43d22947" 503 | }, 504 | "dist": { 505 | "type": "zip", 506 | "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", 507 | "reference": "cd4032040a750077205918c86049aa0f43d22947", 508 | "shasum": "" 509 | }, 510 | "require": { 511 | "brick/math": "^0.8 || ^0.9", 512 | "ext-json": "*", 513 | "php": "^7.2 || ^8", 514 | "ramsey/collection": "^1.0", 515 | "symfony/polyfill-ctype": "^1.8" 516 | }, 517 | "replace": { 518 | "rhumsaa/uuid": "self.version" 519 | }, 520 | "require-dev": { 521 | "codeception/aspect-mock": "^3", 522 | "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", 523 | "doctrine/annotations": "^1.8", 524 | "goaop/framework": "^2", 525 | "mockery/mockery": "^1.3", 526 | "moontoast/math": "^1.1", 527 | "paragonie/random-lib": "^2", 528 | "php-mock/php-mock-mockery": "^1.3", 529 | "php-mock/php-mock-phpunit": "^2.5", 530 | "php-parallel-lint/php-parallel-lint": "^1.1", 531 | "phpbench/phpbench": "^0.17.1", 532 | "phpstan/extension-installer": "^1.0", 533 | "phpstan/phpstan": "^0.12", 534 | "phpstan/phpstan-mockery": "^0.12", 535 | "phpstan/phpstan-phpunit": "^0.12", 536 | "phpunit/phpunit": "^8.5", 537 | "psy/psysh": "^0.10.0", 538 | "slevomat/coding-standard": "^6.0", 539 | "squizlabs/php_codesniffer": "^3.5", 540 | "vimeo/psalm": "3.9.4" 541 | }, 542 | "suggest": { 543 | "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", 544 | "ext-ctype": "Enables faster processing of character classification using ctype functions.", 545 | "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", 546 | "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", 547 | "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", 548 | "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." 549 | }, 550 | "type": "library", 551 | "extra": { 552 | "branch-alias": { 553 | "dev-master": "4.x-dev" 554 | } 555 | }, 556 | "autoload": { 557 | "psr-4": { 558 | "Ramsey\\Uuid\\": "src/" 559 | }, 560 | "files": [ 561 | "src/functions.php" 562 | ] 563 | }, 564 | "notification-url": "https://packagist.org/downloads/", 565 | "license": [ 566 | "MIT" 567 | ], 568 | "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", 569 | "homepage": "https://github.com/ramsey/uuid", 570 | "keywords": [ 571 | "guid", 572 | "identifier", 573 | "uuid" 574 | ], 575 | "support": { 576 | "issues": "https://github.com/ramsey/uuid/issues", 577 | "rss": "https://github.com/ramsey/uuid/releases.atom", 578 | "source": "https://github.com/ramsey/uuid" 579 | }, 580 | "funding": [ 581 | { 582 | "url": "https://github.com/ramsey", 583 | "type": "github" 584 | } 585 | ], 586 | "time": "2020-08-18T17:17:46+00:00" 587 | }, 588 | { 589 | "name": "symfony/deprecation-contracts", 590 | "version": "v2.2.0", 591 | "source": { 592 | "type": "git", 593 | "url": "https://github.com/symfony/deprecation-contracts.git", 594 | "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" 595 | }, 596 | "dist": { 597 | "type": "zip", 598 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", 599 | "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", 600 | "shasum": "" 601 | }, 602 | "require": { 603 | "php": ">=7.1" 604 | }, 605 | "type": "library", 606 | "extra": { 607 | "branch-alias": { 608 | "dev-master": "2.2-dev" 609 | }, 610 | "thanks": { 611 | "name": "symfony/contracts", 612 | "url": "https://github.com/symfony/contracts" 613 | } 614 | }, 615 | "autoload": { 616 | "files": [ 617 | "function.php" 618 | ] 619 | }, 620 | "notification-url": "https://packagist.org/downloads/", 621 | "license": [ 622 | "MIT" 623 | ], 624 | "authors": [ 625 | { 626 | "name": "Nicolas Grekas", 627 | "email": "p@tchwork.com" 628 | }, 629 | { 630 | "name": "Symfony Community", 631 | "homepage": "https://symfony.com/contributors" 632 | } 633 | ], 634 | "description": "A generic function and convention to trigger deprecation notices", 635 | "homepage": "https://symfony.com", 636 | "support": { 637 | "source": "https://github.com/symfony/deprecation-contracts/tree/master" 638 | }, 639 | "funding": [ 640 | { 641 | "url": "https://symfony.com/sponsor", 642 | "type": "custom" 643 | }, 644 | { 645 | "url": "https://github.com/fabpot", 646 | "type": "github" 647 | }, 648 | { 649 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 650 | "type": "tidelift" 651 | } 652 | ], 653 | "time": "2020-09-07T11:33:47+00:00" 654 | }, 655 | { 656 | "name": "symfony/polyfill-ctype", 657 | "version": "v1.22.0", 658 | "source": { 659 | "type": "git", 660 | "url": "https://github.com/symfony/polyfill-ctype.git", 661 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" 662 | }, 663 | "dist": { 664 | "type": "zip", 665 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", 666 | "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", 667 | "shasum": "" 668 | }, 669 | "require": { 670 | "php": ">=7.1" 671 | }, 672 | "suggest": { 673 | "ext-ctype": "For best performance" 674 | }, 675 | "type": "library", 676 | "extra": { 677 | "branch-alias": { 678 | "dev-main": "1.22-dev" 679 | }, 680 | "thanks": { 681 | "name": "symfony/polyfill", 682 | "url": "https://github.com/symfony/polyfill" 683 | } 684 | }, 685 | "autoload": { 686 | "psr-4": { 687 | "Symfony\\Polyfill\\Ctype\\": "" 688 | }, 689 | "files": [ 690 | "bootstrap.php" 691 | ] 692 | }, 693 | "notification-url": "https://packagist.org/downloads/", 694 | "license": [ 695 | "MIT" 696 | ], 697 | "authors": [ 698 | { 699 | "name": "Gert de Pagter", 700 | "email": "BackEndTea@gmail.com" 701 | }, 702 | { 703 | "name": "Symfony Community", 704 | "homepage": "https://symfony.com/contributors" 705 | } 706 | ], 707 | "description": "Symfony polyfill for ctype functions", 708 | "homepage": "https://symfony.com", 709 | "keywords": [ 710 | "compatibility", 711 | "ctype", 712 | "polyfill", 713 | "portable" 714 | ], 715 | "support": { 716 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" 717 | }, 718 | "funding": [ 719 | { 720 | "url": "https://symfony.com/sponsor", 721 | "type": "custom" 722 | }, 723 | { 724 | "url": "https://github.com/fabpot", 725 | "type": "github" 726 | }, 727 | { 728 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 729 | "type": "tidelift" 730 | } 731 | ], 732 | "time": "2021-01-07T16:49:33+00:00" 733 | }, 734 | { 735 | "name": "symfony/yaml", 736 | "version": "v5.2.1", 737 | "source": { 738 | "type": "git", 739 | "url": "https://github.com/symfony/yaml.git", 740 | "reference": "290ea5e03b8cf9b42c783163123f54441fb06939" 741 | }, 742 | "dist": { 743 | "type": "zip", 744 | "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939", 745 | "reference": "290ea5e03b8cf9b42c783163123f54441fb06939", 746 | "shasum": "" 747 | }, 748 | "require": { 749 | "php": ">=7.2.5", 750 | "symfony/deprecation-contracts": "^2.1", 751 | "symfony/polyfill-ctype": "~1.8" 752 | }, 753 | "conflict": { 754 | "symfony/console": "<4.4" 755 | }, 756 | "require-dev": { 757 | "symfony/console": "^4.4|^5.0" 758 | }, 759 | "suggest": { 760 | "symfony/console": "For validating YAML files using the lint command" 761 | }, 762 | "bin": [ 763 | "Resources/bin/yaml-lint" 764 | ], 765 | "type": "library", 766 | "autoload": { 767 | "psr-4": { 768 | "Symfony\\Component\\Yaml\\": "" 769 | }, 770 | "exclude-from-classmap": [ 771 | "/Tests/" 772 | ] 773 | }, 774 | "notification-url": "https://packagist.org/downloads/", 775 | "license": [ 776 | "MIT" 777 | ], 778 | "authors": [ 779 | { 780 | "name": "Fabien Potencier", 781 | "email": "fabien@symfony.com" 782 | }, 783 | { 784 | "name": "Symfony Community", 785 | "homepage": "https://symfony.com/contributors" 786 | } 787 | ], 788 | "description": "Symfony Yaml Component", 789 | "homepage": "https://symfony.com", 790 | "support": { 791 | "source": "https://github.com/symfony/yaml/tree/v5.2.1" 792 | }, 793 | "funding": [ 794 | { 795 | "url": "https://symfony.com/sponsor", 796 | "type": "custom" 797 | }, 798 | { 799 | "url": "https://github.com/fabpot", 800 | "type": "github" 801 | }, 802 | { 803 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 804 | "type": "tidelift" 805 | } 806 | ], 807 | "time": "2020-12-08T17:02:38+00:00" 808 | } 809 | ], 810 | "packages-dev": [ 811 | { 812 | "name": "amphp/amp", 813 | "version": "v2.5.2", 814 | "source": { 815 | "type": "git", 816 | "url": "https://github.com/amphp/amp.git", 817 | "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" 818 | }, 819 | "dist": { 820 | "type": "zip", 821 | "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", 822 | "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", 823 | "shasum": "" 824 | }, 825 | "require": { 826 | "php": ">=7" 827 | }, 828 | "require-dev": { 829 | "amphp/php-cs-fixer-config": "dev-master", 830 | "amphp/phpunit-util": "^1", 831 | "ext-json": "*", 832 | "jetbrains/phpstorm-stubs": "^2019.3", 833 | "phpunit/phpunit": "^6.0.9 | ^7", 834 | "psalm/phar": "^3.11@dev", 835 | "react/promise": "^2" 836 | }, 837 | "type": "library", 838 | "extra": { 839 | "branch-alias": { 840 | "dev-master": "2.x-dev" 841 | } 842 | }, 843 | "autoload": { 844 | "psr-4": { 845 | "Amp\\": "lib" 846 | }, 847 | "files": [ 848 | "lib/functions.php", 849 | "lib/Internal/functions.php" 850 | ] 851 | }, 852 | "notification-url": "https://packagist.org/downloads/", 853 | "license": [ 854 | "MIT" 855 | ], 856 | "authors": [ 857 | { 858 | "name": "Daniel Lowrey", 859 | "email": "rdlowrey@php.net" 860 | }, 861 | { 862 | "name": "Aaron Piotrowski", 863 | "email": "aaron@trowski.com" 864 | }, 865 | { 866 | "name": "Bob Weinand", 867 | "email": "bobwei9@hotmail.com" 868 | }, 869 | { 870 | "name": "Niklas Keller", 871 | "email": "me@kelunik.com" 872 | } 873 | ], 874 | "description": "A non-blocking concurrency framework for PHP applications.", 875 | "homepage": "http://amphp.org/amp", 876 | "keywords": [ 877 | "async", 878 | "asynchronous", 879 | "awaitable", 880 | "concurrency", 881 | "event", 882 | "event-loop", 883 | "future", 884 | "non-blocking", 885 | "promise" 886 | ], 887 | "support": { 888 | "irc": "irc://irc.freenode.org/amphp", 889 | "issues": "https://github.com/amphp/amp/issues", 890 | "source": "https://github.com/amphp/amp/tree/v2.5.2" 891 | }, 892 | "funding": [ 893 | { 894 | "url": "https://github.com/amphp", 895 | "type": "github" 896 | } 897 | ], 898 | "time": "2021-01-10T17:06:37+00:00" 899 | }, 900 | { 901 | "name": "amphp/byte-stream", 902 | "version": "v1.8.0", 903 | "source": { 904 | "type": "git", 905 | "url": "https://github.com/amphp/byte-stream.git", 906 | "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" 907 | }, 908 | "dist": { 909 | "type": "zip", 910 | "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", 911 | "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", 912 | "shasum": "" 913 | }, 914 | "require": { 915 | "amphp/amp": "^2", 916 | "php": ">=7.1" 917 | }, 918 | "require-dev": { 919 | "amphp/php-cs-fixer-config": "dev-master", 920 | "amphp/phpunit-util": "^1.4", 921 | "friendsofphp/php-cs-fixer": "^2.3", 922 | "jetbrains/phpstorm-stubs": "^2019.3", 923 | "phpunit/phpunit": "^6 || ^7 || ^8", 924 | "psalm/phar": "^3.11.4" 925 | }, 926 | "type": "library", 927 | "extra": { 928 | "branch-alias": { 929 | "dev-master": "1.x-dev" 930 | } 931 | }, 932 | "autoload": { 933 | "psr-4": { 934 | "Amp\\ByteStream\\": "lib" 935 | }, 936 | "files": [ 937 | "lib/functions.php" 938 | ] 939 | }, 940 | "notification-url": "https://packagist.org/downloads/", 941 | "license": [ 942 | "MIT" 943 | ], 944 | "authors": [ 945 | { 946 | "name": "Aaron Piotrowski", 947 | "email": "aaron@trowski.com" 948 | }, 949 | { 950 | "name": "Niklas Keller", 951 | "email": "me@kelunik.com" 952 | } 953 | ], 954 | "description": "A stream abstraction to make working with non-blocking I/O simple.", 955 | "homepage": "http://amphp.org/byte-stream", 956 | "keywords": [ 957 | "amp", 958 | "amphp", 959 | "async", 960 | "io", 961 | "non-blocking", 962 | "stream" 963 | ], 964 | "support": { 965 | "irc": "irc://irc.freenode.org/amphp", 966 | "issues": "https://github.com/amphp/byte-stream/issues", 967 | "source": "https://github.com/amphp/byte-stream/tree/master" 968 | }, 969 | "time": "2020-06-29T18:35:05+00:00" 970 | }, 971 | { 972 | "name": "composer/package-versions-deprecated", 973 | "version": "1.11.99.1", 974 | "source": { 975 | "type": "git", 976 | "url": "https://github.com/composer/package-versions-deprecated.git", 977 | "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" 978 | }, 979 | "dist": { 980 | "type": "zip", 981 | "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", 982 | "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", 983 | "shasum": "" 984 | }, 985 | "require": { 986 | "composer-plugin-api": "^1.1.0 || ^2.0", 987 | "php": "^7 || ^8" 988 | }, 989 | "replace": { 990 | "ocramius/package-versions": "1.11.99" 991 | }, 992 | "require-dev": { 993 | "composer/composer": "^1.9.3 || ^2.0@dev", 994 | "ext-zip": "^1.13", 995 | "phpunit/phpunit": "^6.5 || ^7" 996 | }, 997 | "type": "composer-plugin", 998 | "extra": { 999 | "class": "PackageVersions\\Installer", 1000 | "branch-alias": { 1001 | "dev-master": "1.x-dev" 1002 | } 1003 | }, 1004 | "autoload": { 1005 | "psr-4": { 1006 | "PackageVersions\\": "src/PackageVersions" 1007 | } 1008 | }, 1009 | "notification-url": "https://packagist.org/downloads/", 1010 | "license": [ 1011 | "MIT" 1012 | ], 1013 | "authors": [ 1014 | { 1015 | "name": "Marco Pivetta", 1016 | "email": "ocramius@gmail.com" 1017 | }, 1018 | { 1019 | "name": "Jordi Boggiano", 1020 | "email": "j.boggiano@seld.be" 1021 | } 1022 | ], 1023 | "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", 1024 | "support": { 1025 | "issues": "https://github.com/composer/package-versions-deprecated/issues", 1026 | "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" 1027 | }, 1028 | "funding": [ 1029 | { 1030 | "url": "https://packagist.com", 1031 | "type": "custom" 1032 | }, 1033 | { 1034 | "url": "https://github.com/composer", 1035 | "type": "github" 1036 | }, 1037 | { 1038 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 1039 | "type": "tidelift" 1040 | } 1041 | ], 1042 | "time": "2020-11-11T10:22:58+00:00" 1043 | }, 1044 | { 1045 | "name": "composer/semver", 1046 | "version": "3.2.4", 1047 | "source": { 1048 | "type": "git", 1049 | "url": "https://github.com/composer/semver.git", 1050 | "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" 1051 | }, 1052 | "dist": { 1053 | "type": "zip", 1054 | "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", 1055 | "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", 1056 | "shasum": "" 1057 | }, 1058 | "require": { 1059 | "php": "^5.3.2 || ^7.0 || ^8.0" 1060 | }, 1061 | "require-dev": { 1062 | "phpstan/phpstan": "^0.12.54", 1063 | "symfony/phpunit-bridge": "^4.2 || ^5" 1064 | }, 1065 | "type": "library", 1066 | "extra": { 1067 | "branch-alias": { 1068 | "dev-main": "3.x-dev" 1069 | } 1070 | }, 1071 | "autoload": { 1072 | "psr-4": { 1073 | "Composer\\Semver\\": "src" 1074 | } 1075 | }, 1076 | "notification-url": "https://packagist.org/downloads/", 1077 | "license": [ 1078 | "MIT" 1079 | ], 1080 | "authors": [ 1081 | { 1082 | "name": "Nils Adermann", 1083 | "email": "naderman@naderman.de", 1084 | "homepage": "http://www.naderman.de" 1085 | }, 1086 | { 1087 | "name": "Jordi Boggiano", 1088 | "email": "j.boggiano@seld.be", 1089 | "homepage": "http://seld.be" 1090 | }, 1091 | { 1092 | "name": "Rob Bast", 1093 | "email": "rob.bast@gmail.com", 1094 | "homepage": "http://robbast.nl" 1095 | } 1096 | ], 1097 | "description": "Semver library that offers utilities, version constraint parsing and validation.", 1098 | "keywords": [ 1099 | "semantic", 1100 | "semver", 1101 | "validation", 1102 | "versioning" 1103 | ], 1104 | "support": { 1105 | "irc": "irc://irc.freenode.org/composer", 1106 | "issues": "https://github.com/composer/semver/issues", 1107 | "source": "https://github.com/composer/semver/tree/3.2.4" 1108 | }, 1109 | "funding": [ 1110 | { 1111 | "url": "https://packagist.com", 1112 | "type": "custom" 1113 | }, 1114 | { 1115 | "url": "https://github.com/composer", 1116 | "type": "github" 1117 | }, 1118 | { 1119 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 1120 | "type": "tidelift" 1121 | } 1122 | ], 1123 | "time": "2020-11-13T08:59:24+00:00" 1124 | }, 1125 | { 1126 | "name": "composer/xdebug-handler", 1127 | "version": "1.4.5", 1128 | "source": { 1129 | "type": "git", 1130 | "url": "https://github.com/composer/xdebug-handler.git", 1131 | "reference": "f28d44c286812c714741478d968104c5e604a1d4" 1132 | }, 1133 | "dist": { 1134 | "type": "zip", 1135 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", 1136 | "reference": "f28d44c286812c714741478d968104c5e604a1d4", 1137 | "shasum": "" 1138 | }, 1139 | "require": { 1140 | "php": "^5.3.2 || ^7.0 || ^8.0", 1141 | "psr/log": "^1.0" 1142 | }, 1143 | "require-dev": { 1144 | "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" 1145 | }, 1146 | "type": "library", 1147 | "autoload": { 1148 | "psr-4": { 1149 | "Composer\\XdebugHandler\\": "src" 1150 | } 1151 | }, 1152 | "notification-url": "https://packagist.org/downloads/", 1153 | "license": [ 1154 | "MIT" 1155 | ], 1156 | "authors": [ 1157 | { 1158 | "name": "John Stevenson", 1159 | "email": "john-stevenson@blueyonder.co.uk" 1160 | } 1161 | ], 1162 | "description": "Restarts a process without Xdebug.", 1163 | "keywords": [ 1164 | "Xdebug", 1165 | "performance" 1166 | ], 1167 | "support": { 1168 | "irc": "irc://irc.freenode.org/composer", 1169 | "issues": "https://github.com/composer/xdebug-handler/issues", 1170 | "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" 1171 | }, 1172 | "funding": [ 1173 | { 1174 | "url": "https://packagist.com", 1175 | "type": "custom" 1176 | }, 1177 | { 1178 | "url": "https://github.com/composer", 1179 | "type": "github" 1180 | }, 1181 | { 1182 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 1183 | "type": "tidelift" 1184 | } 1185 | ], 1186 | "time": "2020-11-13T08:04:11+00:00" 1187 | }, 1188 | { 1189 | "name": "dnoegel/php-xdg-base-dir", 1190 | "version": "v0.1.1", 1191 | "source": { 1192 | "type": "git", 1193 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git", 1194 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" 1195 | }, 1196 | "dist": { 1197 | "type": "zip", 1198 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 1199 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", 1200 | "shasum": "" 1201 | }, 1202 | "require": { 1203 | "php": ">=5.3.2" 1204 | }, 1205 | "require-dev": { 1206 | "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" 1207 | }, 1208 | "type": "library", 1209 | "autoload": { 1210 | "psr-4": { 1211 | "XdgBaseDir\\": "src/" 1212 | } 1213 | }, 1214 | "notification-url": "https://packagist.org/downloads/", 1215 | "license": [ 1216 | "MIT" 1217 | ], 1218 | "description": "implementation of xdg base directory specification for php", 1219 | "support": { 1220 | "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", 1221 | "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" 1222 | }, 1223 | "time": "2019-12-04T15:06:13+00:00" 1224 | }, 1225 | { 1226 | "name": "doctrine/instantiator", 1227 | "version": "1.4.0", 1228 | "source": { 1229 | "type": "git", 1230 | "url": "https://github.com/doctrine/instantiator.git", 1231 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" 1232 | }, 1233 | "dist": { 1234 | "type": "zip", 1235 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", 1236 | "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", 1237 | "shasum": "" 1238 | }, 1239 | "require": { 1240 | "php": "^7.1 || ^8.0" 1241 | }, 1242 | "require-dev": { 1243 | "doctrine/coding-standard": "^8.0", 1244 | "ext-pdo": "*", 1245 | "ext-phar": "*", 1246 | "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", 1247 | "phpstan/phpstan": "^0.12", 1248 | "phpstan/phpstan-phpunit": "^0.12", 1249 | "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" 1250 | }, 1251 | "type": "library", 1252 | "autoload": { 1253 | "psr-4": { 1254 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 1255 | } 1256 | }, 1257 | "notification-url": "https://packagist.org/downloads/", 1258 | "license": [ 1259 | "MIT" 1260 | ], 1261 | "authors": [ 1262 | { 1263 | "name": "Marco Pivetta", 1264 | "email": "ocramius@gmail.com", 1265 | "homepage": "https://ocramius.github.io/" 1266 | } 1267 | ], 1268 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 1269 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html", 1270 | "keywords": [ 1271 | "constructor", 1272 | "instantiate" 1273 | ], 1274 | "support": { 1275 | "issues": "https://github.com/doctrine/instantiator/issues", 1276 | "source": "https://github.com/doctrine/instantiator/tree/1.4.0" 1277 | }, 1278 | "funding": [ 1279 | { 1280 | "url": "https://www.doctrine-project.org/sponsorship.html", 1281 | "type": "custom" 1282 | }, 1283 | { 1284 | "url": "https://www.patreon.com/phpdoctrine", 1285 | "type": "patreon" 1286 | }, 1287 | { 1288 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", 1289 | "type": "tidelift" 1290 | } 1291 | ], 1292 | "time": "2020-11-10T18:47:58+00:00" 1293 | }, 1294 | { 1295 | "name": "felixfbecker/advanced-json-rpc", 1296 | "version": "v3.2.0", 1297 | "source": { 1298 | "type": "git", 1299 | "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", 1300 | "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" 1301 | }, 1302 | "dist": { 1303 | "type": "zip", 1304 | "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", 1305 | "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", 1306 | "shasum": "" 1307 | }, 1308 | "require": { 1309 | "netresearch/jsonmapper": "^1.0 || ^2.0", 1310 | "php": "^7.1 || ^8.0", 1311 | "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" 1312 | }, 1313 | "require-dev": { 1314 | "phpunit/phpunit": "^7.0 || ^8.0" 1315 | }, 1316 | "type": "library", 1317 | "autoload": { 1318 | "psr-4": { 1319 | "AdvancedJsonRpc\\": "lib/" 1320 | } 1321 | }, 1322 | "notification-url": "https://packagist.org/downloads/", 1323 | "license": [ 1324 | "ISC" 1325 | ], 1326 | "authors": [ 1327 | { 1328 | "name": "Felix Becker", 1329 | "email": "felix.b@outlook.com" 1330 | } 1331 | ], 1332 | "description": "A more advanced JSONRPC implementation", 1333 | "support": { 1334 | "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", 1335 | "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" 1336 | }, 1337 | "time": "2021-01-10T17:48:47+00:00" 1338 | }, 1339 | { 1340 | "name": "felixfbecker/language-server-protocol", 1341 | "version": "v1.5.0", 1342 | "source": { 1343 | "type": "git", 1344 | "url": "https://github.com/felixfbecker/php-language-server-protocol.git", 1345 | "reference": "85e83cacd2ed573238678c6875f8f0d7ec699541" 1346 | }, 1347 | "dist": { 1348 | "type": "zip", 1349 | "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/85e83cacd2ed573238678c6875f8f0d7ec699541", 1350 | "reference": "85e83cacd2ed573238678c6875f8f0d7ec699541", 1351 | "shasum": "" 1352 | }, 1353 | "require": { 1354 | "php": ">=7.1" 1355 | }, 1356 | "require-dev": { 1357 | "phpstan/phpstan": "*", 1358 | "squizlabs/php_codesniffer": "^3.1", 1359 | "vimeo/psalm": "^4.0" 1360 | }, 1361 | "type": "library", 1362 | "extra": { 1363 | "branch-alias": { 1364 | "dev-master": "1.x-dev" 1365 | } 1366 | }, 1367 | "autoload": { 1368 | "psr-4": { 1369 | "LanguageServerProtocol\\": "src/" 1370 | } 1371 | }, 1372 | "notification-url": "https://packagist.org/downloads/", 1373 | "license": [ 1374 | "ISC" 1375 | ], 1376 | "authors": [ 1377 | { 1378 | "name": "Felix Becker", 1379 | "email": "felix.b@outlook.com" 1380 | } 1381 | ], 1382 | "description": "PHP classes for the Language Server Protocol", 1383 | "keywords": [ 1384 | "language", 1385 | "microsoft", 1386 | "php", 1387 | "server" 1388 | ], 1389 | "support": { 1390 | "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", 1391 | "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.0" 1392 | }, 1393 | "time": "2020-10-23T13:55:30+00:00" 1394 | }, 1395 | { 1396 | "name": "myclabs/deep-copy", 1397 | "version": "1.10.2", 1398 | "source": { 1399 | "type": "git", 1400 | "url": "https://github.com/myclabs/DeepCopy.git", 1401 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" 1402 | }, 1403 | "dist": { 1404 | "type": "zip", 1405 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", 1406 | "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", 1407 | "shasum": "" 1408 | }, 1409 | "require": { 1410 | "php": "^7.1 || ^8.0" 1411 | }, 1412 | "replace": { 1413 | "myclabs/deep-copy": "self.version" 1414 | }, 1415 | "require-dev": { 1416 | "doctrine/collections": "^1.0", 1417 | "doctrine/common": "^2.6", 1418 | "phpunit/phpunit": "^7.1" 1419 | }, 1420 | "type": "library", 1421 | "autoload": { 1422 | "psr-4": { 1423 | "DeepCopy\\": "src/DeepCopy/" 1424 | }, 1425 | "files": [ 1426 | "src/DeepCopy/deep_copy.php" 1427 | ] 1428 | }, 1429 | "notification-url": "https://packagist.org/downloads/", 1430 | "license": [ 1431 | "MIT" 1432 | ], 1433 | "description": "Create deep copies (clones) of your objects", 1434 | "keywords": [ 1435 | "clone", 1436 | "copy", 1437 | "duplicate", 1438 | "object", 1439 | "object graph" 1440 | ], 1441 | "support": { 1442 | "issues": "https://github.com/myclabs/DeepCopy/issues", 1443 | "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" 1444 | }, 1445 | "funding": [ 1446 | { 1447 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", 1448 | "type": "tidelift" 1449 | } 1450 | ], 1451 | "time": "2020-11-13T09:40:50+00:00" 1452 | }, 1453 | { 1454 | "name": "netresearch/jsonmapper", 1455 | "version": "v2.1.0", 1456 | "source": { 1457 | "type": "git", 1458 | "url": "https://github.com/cweiske/jsonmapper.git", 1459 | "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" 1460 | }, 1461 | "dist": { 1462 | "type": "zip", 1463 | "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", 1464 | "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", 1465 | "shasum": "" 1466 | }, 1467 | "require": { 1468 | "ext-json": "*", 1469 | "ext-pcre": "*", 1470 | "ext-reflection": "*", 1471 | "ext-spl": "*", 1472 | "php": ">=5.6" 1473 | }, 1474 | "require-dev": { 1475 | "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", 1476 | "squizlabs/php_codesniffer": "~3.5" 1477 | }, 1478 | "type": "library", 1479 | "autoload": { 1480 | "psr-0": { 1481 | "JsonMapper": "src/" 1482 | } 1483 | }, 1484 | "notification-url": "https://packagist.org/downloads/", 1485 | "license": [ 1486 | "OSL-3.0" 1487 | ], 1488 | "authors": [ 1489 | { 1490 | "name": "Christian Weiske", 1491 | "email": "cweiske@cweiske.de", 1492 | "homepage": "http://github.com/cweiske/jsonmapper/", 1493 | "role": "Developer" 1494 | } 1495 | ], 1496 | "description": "Map nested JSON structures onto PHP classes", 1497 | "support": { 1498 | "email": "cweiske@cweiske.de", 1499 | "issues": "https://github.com/cweiske/jsonmapper/issues", 1500 | "source": "https://github.com/cweiske/jsonmapper/tree/master" 1501 | }, 1502 | "time": "2020-04-16T18:48:43+00:00" 1503 | }, 1504 | { 1505 | "name": "nikic/php-parser", 1506 | "version": "v4.10.4", 1507 | "source": { 1508 | "type": "git", 1509 | "url": "https://github.com/nikic/PHP-Parser.git", 1510 | "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" 1511 | }, 1512 | "dist": { 1513 | "type": "zip", 1514 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", 1515 | "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", 1516 | "shasum": "" 1517 | }, 1518 | "require": { 1519 | "ext-tokenizer": "*", 1520 | "php": ">=7.0" 1521 | }, 1522 | "require-dev": { 1523 | "ircmaxell/php-yacc": "^0.0.7", 1524 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" 1525 | }, 1526 | "bin": [ 1527 | "bin/php-parse" 1528 | ], 1529 | "type": "library", 1530 | "extra": { 1531 | "branch-alias": { 1532 | "dev-master": "4.9-dev" 1533 | } 1534 | }, 1535 | "autoload": { 1536 | "psr-4": { 1537 | "PhpParser\\": "lib/PhpParser" 1538 | } 1539 | }, 1540 | "notification-url": "https://packagist.org/downloads/", 1541 | "license": [ 1542 | "BSD-3-Clause" 1543 | ], 1544 | "authors": [ 1545 | { 1546 | "name": "Nikita Popov" 1547 | } 1548 | ], 1549 | "description": "A PHP parser written in PHP", 1550 | "keywords": [ 1551 | "parser", 1552 | "php" 1553 | ], 1554 | "support": { 1555 | "issues": "https://github.com/nikic/PHP-Parser/issues", 1556 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" 1557 | }, 1558 | "time": "2020-12-20T10:01:03+00:00" 1559 | }, 1560 | { 1561 | "name": "openlss/lib-array2xml", 1562 | "version": "1.0.0", 1563 | "source": { 1564 | "type": "git", 1565 | "url": "https://github.com/nullivex/lib-array2xml.git", 1566 | "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" 1567 | }, 1568 | "dist": { 1569 | "type": "zip", 1570 | "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", 1571 | "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", 1572 | "shasum": "" 1573 | }, 1574 | "require": { 1575 | "php": ">=5.3.2" 1576 | }, 1577 | "type": "library", 1578 | "autoload": { 1579 | "psr-0": { 1580 | "LSS": "" 1581 | } 1582 | }, 1583 | "notification-url": "https://packagist.org/downloads/", 1584 | "license": [ 1585 | "Apache-2.0" 1586 | ], 1587 | "authors": [ 1588 | { 1589 | "name": "Bryan Tong", 1590 | "email": "bryan@nullivex.com", 1591 | "homepage": "https://www.nullivex.com" 1592 | }, 1593 | { 1594 | "name": "Tony Butler", 1595 | "email": "spudz76@gmail.com", 1596 | "homepage": "https://www.nullivex.com" 1597 | } 1598 | ], 1599 | "description": "Array2XML conversion library credit to lalit.org", 1600 | "homepage": "https://www.nullivex.com", 1601 | "keywords": [ 1602 | "array", 1603 | "array conversion", 1604 | "xml", 1605 | "xml conversion" 1606 | ], 1607 | "support": { 1608 | "issues": "https://github.com/nullivex/lib-array2xml/issues", 1609 | "source": "https://github.com/nullivex/lib-array2xml/tree/master" 1610 | }, 1611 | "time": "2019-03-29T20:06:56+00:00" 1612 | }, 1613 | { 1614 | "name": "phar-io/manifest", 1615 | "version": "2.0.1", 1616 | "source": { 1617 | "type": "git", 1618 | "url": "https://github.com/phar-io/manifest.git", 1619 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" 1620 | }, 1621 | "dist": { 1622 | "type": "zip", 1623 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 1624 | "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", 1625 | "shasum": "" 1626 | }, 1627 | "require": { 1628 | "ext-dom": "*", 1629 | "ext-phar": "*", 1630 | "ext-xmlwriter": "*", 1631 | "phar-io/version": "^3.0.1", 1632 | "php": "^7.2 || ^8.0" 1633 | }, 1634 | "type": "library", 1635 | "extra": { 1636 | "branch-alias": { 1637 | "dev-master": "2.0.x-dev" 1638 | } 1639 | }, 1640 | "autoload": { 1641 | "classmap": [ 1642 | "src/" 1643 | ] 1644 | }, 1645 | "notification-url": "https://packagist.org/downloads/", 1646 | "license": [ 1647 | "BSD-3-Clause" 1648 | ], 1649 | "authors": [ 1650 | { 1651 | "name": "Arne Blankerts", 1652 | "email": "arne@blankerts.de", 1653 | "role": "Developer" 1654 | }, 1655 | { 1656 | "name": "Sebastian Heuer", 1657 | "email": "sebastian@phpeople.de", 1658 | "role": "Developer" 1659 | }, 1660 | { 1661 | "name": "Sebastian Bergmann", 1662 | "email": "sebastian@phpunit.de", 1663 | "role": "Developer" 1664 | } 1665 | ], 1666 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", 1667 | "support": { 1668 | "issues": "https://github.com/phar-io/manifest/issues", 1669 | "source": "https://github.com/phar-io/manifest/tree/master" 1670 | }, 1671 | "time": "2020-06-27T14:33:11+00:00" 1672 | }, 1673 | { 1674 | "name": "phar-io/version", 1675 | "version": "3.0.4", 1676 | "source": { 1677 | "type": "git", 1678 | "url": "https://github.com/phar-io/version.git", 1679 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" 1680 | }, 1681 | "dist": { 1682 | "type": "zip", 1683 | "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", 1684 | "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", 1685 | "shasum": "" 1686 | }, 1687 | "require": { 1688 | "php": "^7.2 || ^8.0" 1689 | }, 1690 | "type": "library", 1691 | "autoload": { 1692 | "classmap": [ 1693 | "src/" 1694 | ] 1695 | }, 1696 | "notification-url": "https://packagist.org/downloads/", 1697 | "license": [ 1698 | "BSD-3-Clause" 1699 | ], 1700 | "authors": [ 1701 | { 1702 | "name": "Arne Blankerts", 1703 | "email": "arne@blankerts.de", 1704 | "role": "Developer" 1705 | }, 1706 | { 1707 | "name": "Sebastian Heuer", 1708 | "email": "sebastian@phpeople.de", 1709 | "role": "Developer" 1710 | }, 1711 | { 1712 | "name": "Sebastian Bergmann", 1713 | "email": "sebastian@phpunit.de", 1714 | "role": "Developer" 1715 | } 1716 | ], 1717 | "description": "Library for handling version information and constraints", 1718 | "support": { 1719 | "issues": "https://github.com/phar-io/version/issues", 1720 | "source": "https://github.com/phar-io/version/tree/3.0.4" 1721 | }, 1722 | "time": "2020-12-13T23:18:30+00:00" 1723 | }, 1724 | { 1725 | "name": "phpdocumentor/reflection-common", 1726 | "version": "2.2.0", 1727 | "source": { 1728 | "type": "git", 1729 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 1730 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" 1731 | }, 1732 | "dist": { 1733 | "type": "zip", 1734 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1735 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", 1736 | "shasum": "" 1737 | }, 1738 | "require": { 1739 | "php": "^7.2 || ^8.0" 1740 | }, 1741 | "type": "library", 1742 | "extra": { 1743 | "branch-alias": { 1744 | "dev-2.x": "2.x-dev" 1745 | } 1746 | }, 1747 | "autoload": { 1748 | "psr-4": { 1749 | "phpDocumentor\\Reflection\\": "src/" 1750 | } 1751 | }, 1752 | "notification-url": "https://packagist.org/downloads/", 1753 | "license": [ 1754 | "MIT" 1755 | ], 1756 | "authors": [ 1757 | { 1758 | "name": "Jaap van Otterdijk", 1759 | "email": "opensource@ijaap.nl" 1760 | } 1761 | ], 1762 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 1763 | "homepage": "http://www.phpdoc.org", 1764 | "keywords": [ 1765 | "FQSEN", 1766 | "phpDocumentor", 1767 | "phpdoc", 1768 | "reflection", 1769 | "static analysis" 1770 | ], 1771 | "support": { 1772 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", 1773 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" 1774 | }, 1775 | "time": "2020-06-27T09:03:43+00:00" 1776 | }, 1777 | { 1778 | "name": "phpdocumentor/reflection-docblock", 1779 | "version": "5.2.2", 1780 | "source": { 1781 | "type": "git", 1782 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1783 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" 1784 | }, 1785 | "dist": { 1786 | "type": "zip", 1787 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", 1788 | "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", 1789 | "shasum": "" 1790 | }, 1791 | "require": { 1792 | "ext-filter": "*", 1793 | "php": "^7.2 || ^8.0", 1794 | "phpdocumentor/reflection-common": "^2.2", 1795 | "phpdocumentor/type-resolver": "^1.3", 1796 | "webmozart/assert": "^1.9.1" 1797 | }, 1798 | "require-dev": { 1799 | "mockery/mockery": "~1.3.2" 1800 | }, 1801 | "type": "library", 1802 | "extra": { 1803 | "branch-alias": { 1804 | "dev-master": "5.x-dev" 1805 | } 1806 | }, 1807 | "autoload": { 1808 | "psr-4": { 1809 | "phpDocumentor\\Reflection\\": "src" 1810 | } 1811 | }, 1812 | "notification-url": "https://packagist.org/downloads/", 1813 | "license": [ 1814 | "MIT" 1815 | ], 1816 | "authors": [ 1817 | { 1818 | "name": "Mike van Riel", 1819 | "email": "me@mikevanriel.com" 1820 | }, 1821 | { 1822 | "name": "Jaap van Otterdijk", 1823 | "email": "account@ijaap.nl" 1824 | } 1825 | ], 1826 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1827 | "support": { 1828 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", 1829 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" 1830 | }, 1831 | "time": "2020-09-03T19:13:55+00:00" 1832 | }, 1833 | { 1834 | "name": "phpdocumentor/type-resolver", 1835 | "version": "1.4.0", 1836 | "source": { 1837 | "type": "git", 1838 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 1839 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" 1840 | }, 1841 | "dist": { 1842 | "type": "zip", 1843 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 1844 | "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", 1845 | "shasum": "" 1846 | }, 1847 | "require": { 1848 | "php": "^7.2 || ^8.0", 1849 | "phpdocumentor/reflection-common": "^2.0" 1850 | }, 1851 | "require-dev": { 1852 | "ext-tokenizer": "*" 1853 | }, 1854 | "type": "library", 1855 | "extra": { 1856 | "branch-alias": { 1857 | "dev-1.x": "1.x-dev" 1858 | } 1859 | }, 1860 | "autoload": { 1861 | "psr-4": { 1862 | "phpDocumentor\\Reflection\\": "src" 1863 | } 1864 | }, 1865 | "notification-url": "https://packagist.org/downloads/", 1866 | "license": [ 1867 | "MIT" 1868 | ], 1869 | "authors": [ 1870 | { 1871 | "name": "Mike van Riel", 1872 | "email": "me@mikevanriel.com" 1873 | } 1874 | ], 1875 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", 1876 | "support": { 1877 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues", 1878 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" 1879 | }, 1880 | "time": "2020-09-17T18:55:26+00:00" 1881 | }, 1882 | { 1883 | "name": "phpspec/prophecy", 1884 | "version": "1.12.2", 1885 | "source": { 1886 | "type": "git", 1887 | "url": "https://github.com/phpspec/prophecy.git", 1888 | "reference": "245710e971a030f42e08f4912863805570f23d39" 1889 | }, 1890 | "dist": { 1891 | "type": "zip", 1892 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", 1893 | "reference": "245710e971a030f42e08f4912863805570f23d39", 1894 | "shasum": "" 1895 | }, 1896 | "require": { 1897 | "doctrine/instantiator": "^1.2", 1898 | "php": "^7.2 || ~8.0, <8.1", 1899 | "phpdocumentor/reflection-docblock": "^5.2", 1900 | "sebastian/comparator": "^3.0 || ^4.0", 1901 | "sebastian/recursion-context": "^3.0 || ^4.0" 1902 | }, 1903 | "require-dev": { 1904 | "phpspec/phpspec": "^6.0", 1905 | "phpunit/phpunit": "^8.0 || ^9.0" 1906 | }, 1907 | "type": "library", 1908 | "extra": { 1909 | "branch-alias": { 1910 | "dev-master": "1.11.x-dev" 1911 | } 1912 | }, 1913 | "autoload": { 1914 | "psr-4": { 1915 | "Prophecy\\": "src/Prophecy" 1916 | } 1917 | }, 1918 | "notification-url": "https://packagist.org/downloads/", 1919 | "license": [ 1920 | "MIT" 1921 | ], 1922 | "authors": [ 1923 | { 1924 | "name": "Konstantin Kudryashov", 1925 | "email": "ever.zet@gmail.com", 1926 | "homepage": "http://everzet.com" 1927 | }, 1928 | { 1929 | "name": "Marcello Duarte", 1930 | "email": "marcello.duarte@gmail.com" 1931 | } 1932 | ], 1933 | "description": "Highly opinionated mocking framework for PHP 5.3+", 1934 | "homepage": "https://github.com/phpspec/prophecy", 1935 | "keywords": [ 1936 | "Double", 1937 | "Dummy", 1938 | "fake", 1939 | "mock", 1940 | "spy", 1941 | "stub" 1942 | ], 1943 | "support": { 1944 | "issues": "https://github.com/phpspec/prophecy/issues", 1945 | "source": "https://github.com/phpspec/prophecy/tree/1.12.2" 1946 | }, 1947 | "time": "2020-12-19T10:15:11+00:00" 1948 | }, 1949 | { 1950 | "name": "phpunit/php-code-coverage", 1951 | "version": "9.2.5", 1952 | "source": { 1953 | "type": "git", 1954 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1955 | "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" 1956 | }, 1957 | "dist": { 1958 | "type": "zip", 1959 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", 1960 | "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", 1961 | "shasum": "" 1962 | }, 1963 | "require": { 1964 | "ext-dom": "*", 1965 | "ext-libxml": "*", 1966 | "ext-xmlwriter": "*", 1967 | "nikic/php-parser": "^4.10.2", 1968 | "php": ">=7.3", 1969 | "phpunit/php-file-iterator": "^3.0.3", 1970 | "phpunit/php-text-template": "^2.0.2", 1971 | "sebastian/code-unit-reverse-lookup": "^2.0.2", 1972 | "sebastian/complexity": "^2.0", 1973 | "sebastian/environment": "^5.1.2", 1974 | "sebastian/lines-of-code": "^1.0.3", 1975 | "sebastian/version": "^3.0.1", 1976 | "theseer/tokenizer": "^1.2.0" 1977 | }, 1978 | "require-dev": { 1979 | "phpunit/phpunit": "^9.3" 1980 | }, 1981 | "suggest": { 1982 | "ext-pcov": "*", 1983 | "ext-xdebug": "*" 1984 | }, 1985 | "type": "library", 1986 | "extra": { 1987 | "branch-alias": { 1988 | "dev-master": "9.2-dev" 1989 | } 1990 | }, 1991 | "autoload": { 1992 | "classmap": [ 1993 | "src/" 1994 | ] 1995 | }, 1996 | "notification-url": "https://packagist.org/downloads/", 1997 | "license": [ 1998 | "BSD-3-Clause" 1999 | ], 2000 | "authors": [ 2001 | { 2002 | "name": "Sebastian Bergmann", 2003 | "email": "sebastian@phpunit.de", 2004 | "role": "lead" 2005 | } 2006 | ], 2007 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 2008 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 2009 | "keywords": [ 2010 | "coverage", 2011 | "testing", 2012 | "xunit" 2013 | ], 2014 | "support": { 2015 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", 2016 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" 2017 | }, 2018 | "funding": [ 2019 | { 2020 | "url": "https://github.com/sebastianbergmann", 2021 | "type": "github" 2022 | } 2023 | ], 2024 | "time": "2020-11-28T06:44:49+00:00" 2025 | }, 2026 | { 2027 | "name": "phpunit/php-file-iterator", 2028 | "version": "3.0.5", 2029 | "source": { 2030 | "type": "git", 2031 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 2032 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" 2033 | }, 2034 | "dist": { 2035 | "type": "zip", 2036 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", 2037 | "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", 2038 | "shasum": "" 2039 | }, 2040 | "require": { 2041 | "php": ">=7.3" 2042 | }, 2043 | "require-dev": { 2044 | "phpunit/phpunit": "^9.3" 2045 | }, 2046 | "type": "library", 2047 | "extra": { 2048 | "branch-alias": { 2049 | "dev-master": "3.0-dev" 2050 | } 2051 | }, 2052 | "autoload": { 2053 | "classmap": [ 2054 | "src/" 2055 | ] 2056 | }, 2057 | "notification-url": "https://packagist.org/downloads/", 2058 | "license": [ 2059 | "BSD-3-Clause" 2060 | ], 2061 | "authors": [ 2062 | { 2063 | "name": "Sebastian Bergmann", 2064 | "email": "sebastian@phpunit.de", 2065 | "role": "lead" 2066 | } 2067 | ], 2068 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 2069 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 2070 | "keywords": [ 2071 | "filesystem", 2072 | "iterator" 2073 | ], 2074 | "support": { 2075 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", 2076 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" 2077 | }, 2078 | "funding": [ 2079 | { 2080 | "url": "https://github.com/sebastianbergmann", 2081 | "type": "github" 2082 | } 2083 | ], 2084 | "time": "2020-09-28T05:57:25+00:00" 2085 | }, 2086 | { 2087 | "name": "phpunit/php-invoker", 2088 | "version": "3.1.1", 2089 | "source": { 2090 | "type": "git", 2091 | "url": "https://github.com/sebastianbergmann/php-invoker.git", 2092 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" 2093 | }, 2094 | "dist": { 2095 | "type": "zip", 2096 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 2097 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", 2098 | "shasum": "" 2099 | }, 2100 | "require": { 2101 | "php": ">=7.3" 2102 | }, 2103 | "require-dev": { 2104 | "ext-pcntl": "*", 2105 | "phpunit/phpunit": "^9.3" 2106 | }, 2107 | "suggest": { 2108 | "ext-pcntl": "*" 2109 | }, 2110 | "type": "library", 2111 | "extra": { 2112 | "branch-alias": { 2113 | "dev-master": "3.1-dev" 2114 | } 2115 | }, 2116 | "autoload": { 2117 | "classmap": [ 2118 | "src/" 2119 | ] 2120 | }, 2121 | "notification-url": "https://packagist.org/downloads/", 2122 | "license": [ 2123 | "BSD-3-Clause" 2124 | ], 2125 | "authors": [ 2126 | { 2127 | "name": "Sebastian Bergmann", 2128 | "email": "sebastian@phpunit.de", 2129 | "role": "lead" 2130 | } 2131 | ], 2132 | "description": "Invoke callables with a timeout", 2133 | "homepage": "https://github.com/sebastianbergmann/php-invoker/", 2134 | "keywords": [ 2135 | "process" 2136 | ], 2137 | "support": { 2138 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues", 2139 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" 2140 | }, 2141 | "funding": [ 2142 | { 2143 | "url": "https://github.com/sebastianbergmann", 2144 | "type": "github" 2145 | } 2146 | ], 2147 | "time": "2020-09-28T05:58:55+00:00" 2148 | }, 2149 | { 2150 | "name": "phpunit/php-text-template", 2151 | "version": "2.0.4", 2152 | "source": { 2153 | "type": "git", 2154 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 2155 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" 2156 | }, 2157 | "dist": { 2158 | "type": "zip", 2159 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 2160 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", 2161 | "shasum": "" 2162 | }, 2163 | "require": { 2164 | "php": ">=7.3" 2165 | }, 2166 | "require-dev": { 2167 | "phpunit/phpunit": "^9.3" 2168 | }, 2169 | "type": "library", 2170 | "extra": { 2171 | "branch-alias": { 2172 | "dev-master": "2.0-dev" 2173 | } 2174 | }, 2175 | "autoload": { 2176 | "classmap": [ 2177 | "src/" 2178 | ] 2179 | }, 2180 | "notification-url": "https://packagist.org/downloads/", 2181 | "license": [ 2182 | "BSD-3-Clause" 2183 | ], 2184 | "authors": [ 2185 | { 2186 | "name": "Sebastian Bergmann", 2187 | "email": "sebastian@phpunit.de", 2188 | "role": "lead" 2189 | } 2190 | ], 2191 | "description": "Simple template engine.", 2192 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 2193 | "keywords": [ 2194 | "template" 2195 | ], 2196 | "support": { 2197 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues", 2198 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" 2199 | }, 2200 | "funding": [ 2201 | { 2202 | "url": "https://github.com/sebastianbergmann", 2203 | "type": "github" 2204 | } 2205 | ], 2206 | "time": "2020-10-26T05:33:50+00:00" 2207 | }, 2208 | { 2209 | "name": "phpunit/php-timer", 2210 | "version": "5.0.3", 2211 | "source": { 2212 | "type": "git", 2213 | "url": "https://github.com/sebastianbergmann/php-timer.git", 2214 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" 2215 | }, 2216 | "dist": { 2217 | "type": "zip", 2218 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 2219 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", 2220 | "shasum": "" 2221 | }, 2222 | "require": { 2223 | "php": ">=7.3" 2224 | }, 2225 | "require-dev": { 2226 | "phpunit/phpunit": "^9.3" 2227 | }, 2228 | "type": "library", 2229 | "extra": { 2230 | "branch-alias": { 2231 | "dev-master": "5.0-dev" 2232 | } 2233 | }, 2234 | "autoload": { 2235 | "classmap": [ 2236 | "src/" 2237 | ] 2238 | }, 2239 | "notification-url": "https://packagist.org/downloads/", 2240 | "license": [ 2241 | "BSD-3-Clause" 2242 | ], 2243 | "authors": [ 2244 | { 2245 | "name": "Sebastian Bergmann", 2246 | "email": "sebastian@phpunit.de", 2247 | "role": "lead" 2248 | } 2249 | ], 2250 | "description": "Utility class for timing", 2251 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 2252 | "keywords": [ 2253 | "timer" 2254 | ], 2255 | "support": { 2256 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 2257 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" 2258 | }, 2259 | "funding": [ 2260 | { 2261 | "url": "https://github.com/sebastianbergmann", 2262 | "type": "github" 2263 | } 2264 | ], 2265 | "time": "2020-10-26T13:16:10+00:00" 2266 | }, 2267 | { 2268 | "name": "phpunit/phpunit", 2269 | "version": "9.5.0", 2270 | "source": { 2271 | "type": "git", 2272 | "url": "https://github.com/sebastianbergmann/phpunit.git", 2273 | "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe" 2274 | }, 2275 | "dist": { 2276 | "type": "zip", 2277 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", 2278 | "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", 2279 | "shasum": "" 2280 | }, 2281 | "require": { 2282 | "doctrine/instantiator": "^1.3.1", 2283 | "ext-dom": "*", 2284 | "ext-json": "*", 2285 | "ext-libxml": "*", 2286 | "ext-mbstring": "*", 2287 | "ext-xml": "*", 2288 | "ext-xmlwriter": "*", 2289 | "myclabs/deep-copy": "^1.10.1", 2290 | "phar-io/manifest": "^2.0.1", 2291 | "phar-io/version": "^3.0.2", 2292 | "php": ">=7.3", 2293 | "phpspec/prophecy": "^1.12.1", 2294 | "phpunit/php-code-coverage": "^9.2.3", 2295 | "phpunit/php-file-iterator": "^3.0.5", 2296 | "phpunit/php-invoker": "^3.1.1", 2297 | "phpunit/php-text-template": "^2.0.3", 2298 | "phpunit/php-timer": "^5.0.2", 2299 | "sebastian/cli-parser": "^1.0.1", 2300 | "sebastian/code-unit": "^1.0.6", 2301 | "sebastian/comparator": "^4.0.5", 2302 | "sebastian/diff": "^4.0.3", 2303 | "sebastian/environment": "^5.1.3", 2304 | "sebastian/exporter": "^4.0.3", 2305 | "sebastian/global-state": "^5.0.1", 2306 | "sebastian/object-enumerator": "^4.0.3", 2307 | "sebastian/resource-operations": "^3.0.3", 2308 | "sebastian/type": "^2.3", 2309 | "sebastian/version": "^3.0.2" 2310 | }, 2311 | "require-dev": { 2312 | "ext-pdo": "*", 2313 | "phpspec/prophecy-phpunit": "^2.0.1" 2314 | }, 2315 | "suggest": { 2316 | "ext-soap": "*", 2317 | "ext-xdebug": "*" 2318 | }, 2319 | "bin": [ 2320 | "phpunit" 2321 | ], 2322 | "type": "library", 2323 | "extra": { 2324 | "branch-alias": { 2325 | "dev-master": "9.5-dev" 2326 | } 2327 | }, 2328 | "autoload": { 2329 | "classmap": [ 2330 | "src/" 2331 | ], 2332 | "files": [ 2333 | "src/Framework/Assert/Functions.php" 2334 | ] 2335 | }, 2336 | "notification-url": "https://packagist.org/downloads/", 2337 | "license": [ 2338 | "BSD-3-Clause" 2339 | ], 2340 | "authors": [ 2341 | { 2342 | "name": "Sebastian Bergmann", 2343 | "email": "sebastian@phpunit.de", 2344 | "role": "lead" 2345 | } 2346 | ], 2347 | "description": "The PHP Unit Testing framework.", 2348 | "homepage": "https://phpunit.de/", 2349 | "keywords": [ 2350 | "phpunit", 2351 | "testing", 2352 | "xunit" 2353 | ], 2354 | "support": { 2355 | "issues": "https://github.com/sebastianbergmann/phpunit/issues", 2356 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0" 2357 | }, 2358 | "funding": [ 2359 | { 2360 | "url": "https://phpunit.de/donate.html", 2361 | "type": "custom" 2362 | }, 2363 | { 2364 | "url": "https://github.com/sebastianbergmann", 2365 | "type": "github" 2366 | } 2367 | ], 2368 | "time": "2020-12-04T05:05:53+00:00" 2369 | }, 2370 | { 2371 | "name": "psr/container", 2372 | "version": "1.0.0", 2373 | "source": { 2374 | "type": "git", 2375 | "url": "https://github.com/php-fig/container.git", 2376 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" 2377 | }, 2378 | "dist": { 2379 | "type": "zip", 2380 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2381 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", 2382 | "shasum": "" 2383 | }, 2384 | "require": { 2385 | "php": ">=5.3.0" 2386 | }, 2387 | "type": "library", 2388 | "extra": { 2389 | "branch-alias": { 2390 | "dev-master": "1.0.x-dev" 2391 | } 2392 | }, 2393 | "autoload": { 2394 | "psr-4": { 2395 | "Psr\\Container\\": "src/" 2396 | } 2397 | }, 2398 | "notification-url": "https://packagist.org/downloads/", 2399 | "license": [ 2400 | "MIT" 2401 | ], 2402 | "authors": [ 2403 | { 2404 | "name": "PHP-FIG", 2405 | "homepage": "http://www.php-fig.org/" 2406 | } 2407 | ], 2408 | "description": "Common Container Interface (PHP FIG PSR-11)", 2409 | "homepage": "https://github.com/php-fig/container", 2410 | "keywords": [ 2411 | "PSR-11", 2412 | "container", 2413 | "container-interface", 2414 | "container-interop", 2415 | "psr" 2416 | ], 2417 | "support": { 2418 | "issues": "https://github.com/php-fig/container/issues", 2419 | "source": "https://github.com/php-fig/container/tree/master" 2420 | }, 2421 | "time": "2017-02-14T16:28:37+00:00" 2422 | }, 2423 | { 2424 | "name": "psr/log", 2425 | "version": "1.1.3", 2426 | "source": { 2427 | "type": "git", 2428 | "url": "https://github.com/php-fig/log.git", 2429 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" 2430 | }, 2431 | "dist": { 2432 | "type": "zip", 2433 | "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", 2434 | "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", 2435 | "shasum": "" 2436 | }, 2437 | "require": { 2438 | "php": ">=5.3.0" 2439 | }, 2440 | "type": "library", 2441 | "extra": { 2442 | "branch-alias": { 2443 | "dev-master": "1.1.x-dev" 2444 | } 2445 | }, 2446 | "autoload": { 2447 | "psr-4": { 2448 | "Psr\\Log\\": "Psr/Log/" 2449 | } 2450 | }, 2451 | "notification-url": "https://packagist.org/downloads/", 2452 | "license": [ 2453 | "MIT" 2454 | ], 2455 | "authors": [ 2456 | { 2457 | "name": "PHP-FIG", 2458 | "homepage": "http://www.php-fig.org/" 2459 | } 2460 | ], 2461 | "description": "Common interface for logging libraries", 2462 | "homepage": "https://github.com/php-fig/log", 2463 | "keywords": [ 2464 | "log", 2465 | "psr", 2466 | "psr-3" 2467 | ], 2468 | "support": { 2469 | "source": "https://github.com/php-fig/log/tree/1.1.3" 2470 | }, 2471 | "time": "2020-03-23T09:12:05+00:00" 2472 | }, 2473 | { 2474 | "name": "sebastian/cli-parser", 2475 | "version": "1.0.1", 2476 | "source": { 2477 | "type": "git", 2478 | "url": "https://github.com/sebastianbergmann/cli-parser.git", 2479 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" 2480 | }, 2481 | "dist": { 2482 | "type": "zip", 2483 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", 2484 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", 2485 | "shasum": "" 2486 | }, 2487 | "require": { 2488 | "php": ">=7.3" 2489 | }, 2490 | "require-dev": { 2491 | "phpunit/phpunit": "^9.3" 2492 | }, 2493 | "type": "library", 2494 | "extra": { 2495 | "branch-alias": { 2496 | "dev-master": "1.0-dev" 2497 | } 2498 | }, 2499 | "autoload": { 2500 | "classmap": [ 2501 | "src/" 2502 | ] 2503 | }, 2504 | "notification-url": "https://packagist.org/downloads/", 2505 | "license": [ 2506 | "BSD-3-Clause" 2507 | ], 2508 | "authors": [ 2509 | { 2510 | "name": "Sebastian Bergmann", 2511 | "email": "sebastian@phpunit.de", 2512 | "role": "lead" 2513 | } 2514 | ], 2515 | "description": "Library for parsing CLI options", 2516 | "homepage": "https://github.com/sebastianbergmann/cli-parser", 2517 | "support": { 2518 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues", 2519 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" 2520 | }, 2521 | "funding": [ 2522 | { 2523 | "url": "https://github.com/sebastianbergmann", 2524 | "type": "github" 2525 | } 2526 | ], 2527 | "time": "2020-09-28T06:08:49+00:00" 2528 | }, 2529 | { 2530 | "name": "sebastian/code-unit", 2531 | "version": "1.0.8", 2532 | "source": { 2533 | "type": "git", 2534 | "url": "https://github.com/sebastianbergmann/code-unit.git", 2535 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" 2536 | }, 2537 | "dist": { 2538 | "type": "zip", 2539 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", 2540 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", 2541 | "shasum": "" 2542 | }, 2543 | "require": { 2544 | "php": ">=7.3" 2545 | }, 2546 | "require-dev": { 2547 | "phpunit/phpunit": "^9.3" 2548 | }, 2549 | "type": "library", 2550 | "extra": { 2551 | "branch-alias": { 2552 | "dev-master": "1.0-dev" 2553 | } 2554 | }, 2555 | "autoload": { 2556 | "classmap": [ 2557 | "src/" 2558 | ] 2559 | }, 2560 | "notification-url": "https://packagist.org/downloads/", 2561 | "license": [ 2562 | "BSD-3-Clause" 2563 | ], 2564 | "authors": [ 2565 | { 2566 | "name": "Sebastian Bergmann", 2567 | "email": "sebastian@phpunit.de", 2568 | "role": "lead" 2569 | } 2570 | ], 2571 | "description": "Collection of value objects that represent the PHP code units", 2572 | "homepage": "https://github.com/sebastianbergmann/code-unit", 2573 | "support": { 2574 | "issues": "https://github.com/sebastianbergmann/code-unit/issues", 2575 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" 2576 | }, 2577 | "funding": [ 2578 | { 2579 | "url": "https://github.com/sebastianbergmann", 2580 | "type": "github" 2581 | } 2582 | ], 2583 | "time": "2020-10-26T13:08:54+00:00" 2584 | }, 2585 | { 2586 | "name": "sebastian/code-unit-reverse-lookup", 2587 | "version": "2.0.3", 2588 | "source": { 2589 | "type": "git", 2590 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 2591 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" 2592 | }, 2593 | "dist": { 2594 | "type": "zip", 2595 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 2596 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", 2597 | "shasum": "" 2598 | }, 2599 | "require": { 2600 | "php": ">=7.3" 2601 | }, 2602 | "require-dev": { 2603 | "phpunit/phpunit": "^9.3" 2604 | }, 2605 | "type": "library", 2606 | "extra": { 2607 | "branch-alias": { 2608 | "dev-master": "2.0-dev" 2609 | } 2610 | }, 2611 | "autoload": { 2612 | "classmap": [ 2613 | "src/" 2614 | ] 2615 | }, 2616 | "notification-url": "https://packagist.org/downloads/", 2617 | "license": [ 2618 | "BSD-3-Clause" 2619 | ], 2620 | "authors": [ 2621 | { 2622 | "name": "Sebastian Bergmann", 2623 | "email": "sebastian@phpunit.de" 2624 | } 2625 | ], 2626 | "description": "Looks up which function or method a line of code belongs to", 2627 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 2628 | "support": { 2629 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", 2630 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" 2631 | }, 2632 | "funding": [ 2633 | { 2634 | "url": "https://github.com/sebastianbergmann", 2635 | "type": "github" 2636 | } 2637 | ], 2638 | "time": "2020-09-28T05:30:19+00:00" 2639 | }, 2640 | { 2641 | "name": "sebastian/comparator", 2642 | "version": "4.0.6", 2643 | "source": { 2644 | "type": "git", 2645 | "url": "https://github.com/sebastianbergmann/comparator.git", 2646 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382" 2647 | }, 2648 | "dist": { 2649 | "type": "zip", 2650 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", 2651 | "reference": "55f4261989e546dc112258c7a75935a81a7ce382", 2652 | "shasum": "" 2653 | }, 2654 | "require": { 2655 | "php": ">=7.3", 2656 | "sebastian/diff": "^4.0", 2657 | "sebastian/exporter": "^4.0" 2658 | }, 2659 | "require-dev": { 2660 | "phpunit/phpunit": "^9.3" 2661 | }, 2662 | "type": "library", 2663 | "extra": { 2664 | "branch-alias": { 2665 | "dev-master": "4.0-dev" 2666 | } 2667 | }, 2668 | "autoload": { 2669 | "classmap": [ 2670 | "src/" 2671 | ] 2672 | }, 2673 | "notification-url": "https://packagist.org/downloads/", 2674 | "license": [ 2675 | "BSD-3-Clause" 2676 | ], 2677 | "authors": [ 2678 | { 2679 | "name": "Sebastian Bergmann", 2680 | "email": "sebastian@phpunit.de" 2681 | }, 2682 | { 2683 | "name": "Jeff Welch", 2684 | "email": "whatthejeff@gmail.com" 2685 | }, 2686 | { 2687 | "name": "Volker Dusch", 2688 | "email": "github@wallbash.com" 2689 | }, 2690 | { 2691 | "name": "Bernhard Schussek", 2692 | "email": "bschussek@2bepublished.at" 2693 | } 2694 | ], 2695 | "description": "Provides the functionality to compare PHP values for equality", 2696 | "homepage": "https://github.com/sebastianbergmann/comparator", 2697 | "keywords": [ 2698 | "comparator", 2699 | "compare", 2700 | "equality" 2701 | ], 2702 | "support": { 2703 | "issues": "https://github.com/sebastianbergmann/comparator/issues", 2704 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" 2705 | }, 2706 | "funding": [ 2707 | { 2708 | "url": "https://github.com/sebastianbergmann", 2709 | "type": "github" 2710 | } 2711 | ], 2712 | "time": "2020-10-26T15:49:45+00:00" 2713 | }, 2714 | { 2715 | "name": "sebastian/complexity", 2716 | "version": "2.0.2", 2717 | "source": { 2718 | "type": "git", 2719 | "url": "https://github.com/sebastianbergmann/complexity.git", 2720 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" 2721 | }, 2722 | "dist": { 2723 | "type": "zip", 2724 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", 2725 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", 2726 | "shasum": "" 2727 | }, 2728 | "require": { 2729 | "nikic/php-parser": "^4.7", 2730 | "php": ">=7.3" 2731 | }, 2732 | "require-dev": { 2733 | "phpunit/phpunit": "^9.3" 2734 | }, 2735 | "type": "library", 2736 | "extra": { 2737 | "branch-alias": { 2738 | "dev-master": "2.0-dev" 2739 | } 2740 | }, 2741 | "autoload": { 2742 | "classmap": [ 2743 | "src/" 2744 | ] 2745 | }, 2746 | "notification-url": "https://packagist.org/downloads/", 2747 | "license": [ 2748 | "BSD-3-Clause" 2749 | ], 2750 | "authors": [ 2751 | { 2752 | "name": "Sebastian Bergmann", 2753 | "email": "sebastian@phpunit.de", 2754 | "role": "lead" 2755 | } 2756 | ], 2757 | "description": "Library for calculating the complexity of PHP code units", 2758 | "homepage": "https://github.com/sebastianbergmann/complexity", 2759 | "support": { 2760 | "issues": "https://github.com/sebastianbergmann/complexity/issues", 2761 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" 2762 | }, 2763 | "funding": [ 2764 | { 2765 | "url": "https://github.com/sebastianbergmann", 2766 | "type": "github" 2767 | } 2768 | ], 2769 | "time": "2020-10-26T15:52:27+00:00" 2770 | }, 2771 | { 2772 | "name": "sebastian/diff", 2773 | "version": "4.0.4", 2774 | "source": { 2775 | "type": "git", 2776 | "url": "https://github.com/sebastianbergmann/diff.git", 2777 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" 2778 | }, 2779 | "dist": { 2780 | "type": "zip", 2781 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", 2782 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", 2783 | "shasum": "" 2784 | }, 2785 | "require": { 2786 | "php": ">=7.3" 2787 | }, 2788 | "require-dev": { 2789 | "phpunit/phpunit": "^9.3", 2790 | "symfony/process": "^4.2 || ^5" 2791 | }, 2792 | "type": "library", 2793 | "extra": { 2794 | "branch-alias": { 2795 | "dev-master": "4.0-dev" 2796 | } 2797 | }, 2798 | "autoload": { 2799 | "classmap": [ 2800 | "src/" 2801 | ] 2802 | }, 2803 | "notification-url": "https://packagist.org/downloads/", 2804 | "license": [ 2805 | "BSD-3-Clause" 2806 | ], 2807 | "authors": [ 2808 | { 2809 | "name": "Sebastian Bergmann", 2810 | "email": "sebastian@phpunit.de" 2811 | }, 2812 | { 2813 | "name": "Kore Nordmann", 2814 | "email": "mail@kore-nordmann.de" 2815 | } 2816 | ], 2817 | "description": "Diff implementation", 2818 | "homepage": "https://github.com/sebastianbergmann/diff", 2819 | "keywords": [ 2820 | "diff", 2821 | "udiff", 2822 | "unidiff", 2823 | "unified diff" 2824 | ], 2825 | "support": { 2826 | "issues": "https://github.com/sebastianbergmann/diff/issues", 2827 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" 2828 | }, 2829 | "funding": [ 2830 | { 2831 | "url": "https://github.com/sebastianbergmann", 2832 | "type": "github" 2833 | } 2834 | ], 2835 | "time": "2020-10-26T13:10:38+00:00" 2836 | }, 2837 | { 2838 | "name": "sebastian/environment", 2839 | "version": "5.1.3", 2840 | "source": { 2841 | "type": "git", 2842 | "url": "https://github.com/sebastianbergmann/environment.git", 2843 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac" 2844 | }, 2845 | "dist": { 2846 | "type": "zip", 2847 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", 2848 | "reference": "388b6ced16caa751030f6a69e588299fa09200ac", 2849 | "shasum": "" 2850 | }, 2851 | "require": { 2852 | "php": ">=7.3" 2853 | }, 2854 | "require-dev": { 2855 | "phpunit/phpunit": "^9.3" 2856 | }, 2857 | "suggest": { 2858 | "ext-posix": "*" 2859 | }, 2860 | "type": "library", 2861 | "extra": { 2862 | "branch-alias": { 2863 | "dev-master": "5.1-dev" 2864 | } 2865 | }, 2866 | "autoload": { 2867 | "classmap": [ 2868 | "src/" 2869 | ] 2870 | }, 2871 | "notification-url": "https://packagist.org/downloads/", 2872 | "license": [ 2873 | "BSD-3-Clause" 2874 | ], 2875 | "authors": [ 2876 | { 2877 | "name": "Sebastian Bergmann", 2878 | "email": "sebastian@phpunit.de" 2879 | } 2880 | ], 2881 | "description": "Provides functionality to handle HHVM/PHP environments", 2882 | "homepage": "http://www.github.com/sebastianbergmann/environment", 2883 | "keywords": [ 2884 | "Xdebug", 2885 | "environment", 2886 | "hhvm" 2887 | ], 2888 | "support": { 2889 | "issues": "https://github.com/sebastianbergmann/environment/issues", 2890 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" 2891 | }, 2892 | "funding": [ 2893 | { 2894 | "url": "https://github.com/sebastianbergmann", 2895 | "type": "github" 2896 | } 2897 | ], 2898 | "time": "2020-09-28T05:52:38+00:00" 2899 | }, 2900 | { 2901 | "name": "sebastian/exporter", 2902 | "version": "4.0.3", 2903 | "source": { 2904 | "type": "git", 2905 | "url": "https://github.com/sebastianbergmann/exporter.git", 2906 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" 2907 | }, 2908 | "dist": { 2909 | "type": "zip", 2910 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", 2911 | "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", 2912 | "shasum": "" 2913 | }, 2914 | "require": { 2915 | "php": ">=7.3", 2916 | "sebastian/recursion-context": "^4.0" 2917 | }, 2918 | "require-dev": { 2919 | "ext-mbstring": "*", 2920 | "phpunit/phpunit": "^9.3" 2921 | }, 2922 | "type": "library", 2923 | "extra": { 2924 | "branch-alias": { 2925 | "dev-master": "4.0-dev" 2926 | } 2927 | }, 2928 | "autoload": { 2929 | "classmap": [ 2930 | "src/" 2931 | ] 2932 | }, 2933 | "notification-url": "https://packagist.org/downloads/", 2934 | "license": [ 2935 | "BSD-3-Clause" 2936 | ], 2937 | "authors": [ 2938 | { 2939 | "name": "Sebastian Bergmann", 2940 | "email": "sebastian@phpunit.de" 2941 | }, 2942 | { 2943 | "name": "Jeff Welch", 2944 | "email": "whatthejeff@gmail.com" 2945 | }, 2946 | { 2947 | "name": "Volker Dusch", 2948 | "email": "github@wallbash.com" 2949 | }, 2950 | { 2951 | "name": "Adam Harvey", 2952 | "email": "aharvey@php.net" 2953 | }, 2954 | { 2955 | "name": "Bernhard Schussek", 2956 | "email": "bschussek@gmail.com" 2957 | } 2958 | ], 2959 | "description": "Provides the functionality to export PHP variables for visualization", 2960 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 2961 | "keywords": [ 2962 | "export", 2963 | "exporter" 2964 | ], 2965 | "support": { 2966 | "issues": "https://github.com/sebastianbergmann/exporter/issues", 2967 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" 2968 | }, 2969 | "funding": [ 2970 | { 2971 | "url": "https://github.com/sebastianbergmann", 2972 | "type": "github" 2973 | } 2974 | ], 2975 | "time": "2020-09-28T05:24:23+00:00" 2976 | }, 2977 | { 2978 | "name": "sebastian/global-state", 2979 | "version": "5.0.2", 2980 | "source": { 2981 | "type": "git", 2982 | "url": "https://github.com/sebastianbergmann/global-state.git", 2983 | "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" 2984 | }, 2985 | "dist": { 2986 | "type": "zip", 2987 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", 2988 | "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", 2989 | "shasum": "" 2990 | }, 2991 | "require": { 2992 | "php": ">=7.3", 2993 | "sebastian/object-reflector": "^2.0", 2994 | "sebastian/recursion-context": "^4.0" 2995 | }, 2996 | "require-dev": { 2997 | "ext-dom": "*", 2998 | "phpunit/phpunit": "^9.3" 2999 | }, 3000 | "suggest": { 3001 | "ext-uopz": "*" 3002 | }, 3003 | "type": "library", 3004 | "extra": { 3005 | "branch-alias": { 3006 | "dev-master": "5.0-dev" 3007 | } 3008 | }, 3009 | "autoload": { 3010 | "classmap": [ 3011 | "src/" 3012 | ] 3013 | }, 3014 | "notification-url": "https://packagist.org/downloads/", 3015 | "license": [ 3016 | "BSD-3-Clause" 3017 | ], 3018 | "authors": [ 3019 | { 3020 | "name": "Sebastian Bergmann", 3021 | "email": "sebastian@phpunit.de" 3022 | } 3023 | ], 3024 | "description": "Snapshotting of global state", 3025 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 3026 | "keywords": [ 3027 | "global state" 3028 | ], 3029 | "support": { 3030 | "issues": "https://github.com/sebastianbergmann/global-state/issues", 3031 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" 3032 | }, 3033 | "funding": [ 3034 | { 3035 | "url": "https://github.com/sebastianbergmann", 3036 | "type": "github" 3037 | } 3038 | ], 3039 | "time": "2020-10-26T15:55:19+00:00" 3040 | }, 3041 | { 3042 | "name": "sebastian/lines-of-code", 3043 | "version": "1.0.3", 3044 | "source": { 3045 | "type": "git", 3046 | "url": "https://github.com/sebastianbergmann/lines-of-code.git", 3047 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" 3048 | }, 3049 | "dist": { 3050 | "type": "zip", 3051 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", 3052 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", 3053 | "shasum": "" 3054 | }, 3055 | "require": { 3056 | "nikic/php-parser": "^4.6", 3057 | "php": ">=7.3" 3058 | }, 3059 | "require-dev": { 3060 | "phpunit/phpunit": "^9.3" 3061 | }, 3062 | "type": "library", 3063 | "extra": { 3064 | "branch-alias": { 3065 | "dev-master": "1.0-dev" 3066 | } 3067 | }, 3068 | "autoload": { 3069 | "classmap": [ 3070 | "src/" 3071 | ] 3072 | }, 3073 | "notification-url": "https://packagist.org/downloads/", 3074 | "license": [ 3075 | "BSD-3-Clause" 3076 | ], 3077 | "authors": [ 3078 | { 3079 | "name": "Sebastian Bergmann", 3080 | "email": "sebastian@phpunit.de", 3081 | "role": "lead" 3082 | } 3083 | ], 3084 | "description": "Library for counting the lines of code in PHP source code", 3085 | "homepage": "https://github.com/sebastianbergmann/lines-of-code", 3086 | "support": { 3087 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", 3088 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" 3089 | }, 3090 | "funding": [ 3091 | { 3092 | "url": "https://github.com/sebastianbergmann", 3093 | "type": "github" 3094 | } 3095 | ], 3096 | "time": "2020-11-28T06:42:11+00:00" 3097 | }, 3098 | { 3099 | "name": "sebastian/object-enumerator", 3100 | "version": "4.0.4", 3101 | "source": { 3102 | "type": "git", 3103 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 3104 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" 3105 | }, 3106 | "dist": { 3107 | "type": "zip", 3108 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", 3109 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", 3110 | "shasum": "" 3111 | }, 3112 | "require": { 3113 | "php": ">=7.3", 3114 | "sebastian/object-reflector": "^2.0", 3115 | "sebastian/recursion-context": "^4.0" 3116 | }, 3117 | "require-dev": { 3118 | "phpunit/phpunit": "^9.3" 3119 | }, 3120 | "type": "library", 3121 | "extra": { 3122 | "branch-alias": { 3123 | "dev-master": "4.0-dev" 3124 | } 3125 | }, 3126 | "autoload": { 3127 | "classmap": [ 3128 | "src/" 3129 | ] 3130 | }, 3131 | "notification-url": "https://packagist.org/downloads/", 3132 | "license": [ 3133 | "BSD-3-Clause" 3134 | ], 3135 | "authors": [ 3136 | { 3137 | "name": "Sebastian Bergmann", 3138 | "email": "sebastian@phpunit.de" 3139 | } 3140 | ], 3141 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 3142 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 3143 | "support": { 3144 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", 3145 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" 3146 | }, 3147 | "funding": [ 3148 | { 3149 | "url": "https://github.com/sebastianbergmann", 3150 | "type": "github" 3151 | } 3152 | ], 3153 | "time": "2020-10-26T13:12:34+00:00" 3154 | }, 3155 | { 3156 | "name": "sebastian/object-reflector", 3157 | "version": "2.0.4", 3158 | "source": { 3159 | "type": "git", 3160 | "url": "https://github.com/sebastianbergmann/object-reflector.git", 3161 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" 3162 | }, 3163 | "dist": { 3164 | "type": "zip", 3165 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 3166 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", 3167 | "shasum": "" 3168 | }, 3169 | "require": { 3170 | "php": ">=7.3" 3171 | }, 3172 | "require-dev": { 3173 | "phpunit/phpunit": "^9.3" 3174 | }, 3175 | "type": "library", 3176 | "extra": { 3177 | "branch-alias": { 3178 | "dev-master": "2.0-dev" 3179 | } 3180 | }, 3181 | "autoload": { 3182 | "classmap": [ 3183 | "src/" 3184 | ] 3185 | }, 3186 | "notification-url": "https://packagist.org/downloads/", 3187 | "license": [ 3188 | "BSD-3-Clause" 3189 | ], 3190 | "authors": [ 3191 | { 3192 | "name": "Sebastian Bergmann", 3193 | "email": "sebastian@phpunit.de" 3194 | } 3195 | ], 3196 | "description": "Allows reflection of object attributes, including inherited and non-public ones", 3197 | "homepage": "https://github.com/sebastianbergmann/object-reflector/", 3198 | "support": { 3199 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues", 3200 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" 3201 | }, 3202 | "funding": [ 3203 | { 3204 | "url": "https://github.com/sebastianbergmann", 3205 | "type": "github" 3206 | } 3207 | ], 3208 | "time": "2020-10-26T13:14:26+00:00" 3209 | }, 3210 | { 3211 | "name": "sebastian/recursion-context", 3212 | "version": "4.0.4", 3213 | "source": { 3214 | "type": "git", 3215 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 3216 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" 3217 | }, 3218 | "dist": { 3219 | "type": "zip", 3220 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", 3221 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", 3222 | "shasum": "" 3223 | }, 3224 | "require": { 3225 | "php": ">=7.3" 3226 | }, 3227 | "require-dev": { 3228 | "phpunit/phpunit": "^9.3" 3229 | }, 3230 | "type": "library", 3231 | "extra": { 3232 | "branch-alias": { 3233 | "dev-master": "4.0-dev" 3234 | } 3235 | }, 3236 | "autoload": { 3237 | "classmap": [ 3238 | "src/" 3239 | ] 3240 | }, 3241 | "notification-url": "https://packagist.org/downloads/", 3242 | "license": [ 3243 | "BSD-3-Clause" 3244 | ], 3245 | "authors": [ 3246 | { 3247 | "name": "Sebastian Bergmann", 3248 | "email": "sebastian@phpunit.de" 3249 | }, 3250 | { 3251 | "name": "Jeff Welch", 3252 | "email": "whatthejeff@gmail.com" 3253 | }, 3254 | { 3255 | "name": "Adam Harvey", 3256 | "email": "aharvey@php.net" 3257 | } 3258 | ], 3259 | "description": "Provides functionality to recursively process PHP variables", 3260 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 3261 | "support": { 3262 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues", 3263 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" 3264 | }, 3265 | "funding": [ 3266 | { 3267 | "url": "https://github.com/sebastianbergmann", 3268 | "type": "github" 3269 | } 3270 | ], 3271 | "time": "2020-10-26T13:17:30+00:00" 3272 | }, 3273 | { 3274 | "name": "sebastian/resource-operations", 3275 | "version": "3.0.3", 3276 | "source": { 3277 | "type": "git", 3278 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 3279 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" 3280 | }, 3281 | "dist": { 3282 | "type": "zip", 3283 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 3284 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", 3285 | "shasum": "" 3286 | }, 3287 | "require": { 3288 | "php": ">=7.3" 3289 | }, 3290 | "require-dev": { 3291 | "phpunit/phpunit": "^9.0" 3292 | }, 3293 | "type": "library", 3294 | "extra": { 3295 | "branch-alias": { 3296 | "dev-master": "3.0-dev" 3297 | } 3298 | }, 3299 | "autoload": { 3300 | "classmap": [ 3301 | "src/" 3302 | ] 3303 | }, 3304 | "notification-url": "https://packagist.org/downloads/", 3305 | "license": [ 3306 | "BSD-3-Clause" 3307 | ], 3308 | "authors": [ 3309 | { 3310 | "name": "Sebastian Bergmann", 3311 | "email": "sebastian@phpunit.de" 3312 | } 3313 | ], 3314 | "description": "Provides a list of PHP built-in functions that operate on resources", 3315 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 3316 | "support": { 3317 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues", 3318 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" 3319 | }, 3320 | "funding": [ 3321 | { 3322 | "url": "https://github.com/sebastianbergmann", 3323 | "type": "github" 3324 | } 3325 | ], 3326 | "time": "2020-09-28T06:45:17+00:00" 3327 | }, 3328 | { 3329 | "name": "sebastian/type", 3330 | "version": "2.3.1", 3331 | "source": { 3332 | "type": "git", 3333 | "url": "https://github.com/sebastianbergmann/type.git", 3334 | "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" 3335 | }, 3336 | "dist": { 3337 | "type": "zip", 3338 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", 3339 | "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", 3340 | "shasum": "" 3341 | }, 3342 | "require": { 3343 | "php": ">=7.3" 3344 | }, 3345 | "require-dev": { 3346 | "phpunit/phpunit": "^9.3" 3347 | }, 3348 | "type": "library", 3349 | "extra": { 3350 | "branch-alias": { 3351 | "dev-master": "2.3-dev" 3352 | } 3353 | }, 3354 | "autoload": { 3355 | "classmap": [ 3356 | "src/" 3357 | ] 3358 | }, 3359 | "notification-url": "https://packagist.org/downloads/", 3360 | "license": [ 3361 | "BSD-3-Clause" 3362 | ], 3363 | "authors": [ 3364 | { 3365 | "name": "Sebastian Bergmann", 3366 | "email": "sebastian@phpunit.de", 3367 | "role": "lead" 3368 | } 3369 | ], 3370 | "description": "Collection of value objects that represent the types of the PHP type system", 3371 | "homepage": "https://github.com/sebastianbergmann/type", 3372 | "support": { 3373 | "issues": "https://github.com/sebastianbergmann/type/issues", 3374 | "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" 3375 | }, 3376 | "funding": [ 3377 | { 3378 | "url": "https://github.com/sebastianbergmann", 3379 | "type": "github" 3380 | } 3381 | ], 3382 | "time": "2020-10-26T13:18:59+00:00" 3383 | }, 3384 | { 3385 | "name": "sebastian/version", 3386 | "version": "3.0.2", 3387 | "source": { 3388 | "type": "git", 3389 | "url": "https://github.com/sebastianbergmann/version.git", 3390 | "reference": "c6c1022351a901512170118436c764e473f6de8c" 3391 | }, 3392 | "dist": { 3393 | "type": "zip", 3394 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", 3395 | "reference": "c6c1022351a901512170118436c764e473f6de8c", 3396 | "shasum": "" 3397 | }, 3398 | "require": { 3399 | "php": ">=7.3" 3400 | }, 3401 | "type": "library", 3402 | "extra": { 3403 | "branch-alias": { 3404 | "dev-master": "3.0-dev" 3405 | } 3406 | }, 3407 | "autoload": { 3408 | "classmap": [ 3409 | "src/" 3410 | ] 3411 | }, 3412 | "notification-url": "https://packagist.org/downloads/", 3413 | "license": [ 3414 | "BSD-3-Clause" 3415 | ], 3416 | "authors": [ 3417 | { 3418 | "name": "Sebastian Bergmann", 3419 | "email": "sebastian@phpunit.de", 3420 | "role": "lead" 3421 | } 3422 | ], 3423 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 3424 | "homepage": "https://github.com/sebastianbergmann/version", 3425 | "support": { 3426 | "issues": "https://github.com/sebastianbergmann/version/issues", 3427 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" 3428 | }, 3429 | "funding": [ 3430 | { 3431 | "url": "https://github.com/sebastianbergmann", 3432 | "type": "github" 3433 | } 3434 | ], 3435 | "time": "2020-09-28T06:39:44+00:00" 3436 | }, 3437 | { 3438 | "name": "symfony/console", 3439 | "version": "v5.2.1", 3440 | "source": { 3441 | "type": "git", 3442 | "url": "https://github.com/symfony/console.git", 3443 | "reference": "47c02526c532fb381374dab26df05e7313978976" 3444 | }, 3445 | "dist": { 3446 | "type": "zip", 3447 | "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", 3448 | "reference": "47c02526c532fb381374dab26df05e7313978976", 3449 | "shasum": "" 3450 | }, 3451 | "require": { 3452 | "php": ">=7.2.5", 3453 | "symfony/polyfill-mbstring": "~1.0", 3454 | "symfony/polyfill-php73": "^1.8", 3455 | "symfony/polyfill-php80": "^1.15", 3456 | "symfony/service-contracts": "^1.1|^2", 3457 | "symfony/string": "^5.1" 3458 | }, 3459 | "conflict": { 3460 | "symfony/dependency-injection": "<4.4", 3461 | "symfony/dotenv": "<5.1", 3462 | "symfony/event-dispatcher": "<4.4", 3463 | "symfony/lock": "<4.4", 3464 | "symfony/process": "<4.4" 3465 | }, 3466 | "provide": { 3467 | "psr/log-implementation": "1.0" 3468 | }, 3469 | "require-dev": { 3470 | "psr/log": "~1.0", 3471 | "symfony/config": "^4.4|^5.0", 3472 | "symfony/dependency-injection": "^4.4|^5.0", 3473 | "symfony/event-dispatcher": "^4.4|^5.0", 3474 | "symfony/lock": "^4.4|^5.0", 3475 | "symfony/process": "^4.4|^5.0", 3476 | "symfony/var-dumper": "^4.4|^5.0" 3477 | }, 3478 | "suggest": { 3479 | "psr/log": "For using the console logger", 3480 | "symfony/event-dispatcher": "", 3481 | "symfony/lock": "", 3482 | "symfony/process": "" 3483 | }, 3484 | "type": "library", 3485 | "autoload": { 3486 | "psr-4": { 3487 | "Symfony\\Component\\Console\\": "" 3488 | }, 3489 | "exclude-from-classmap": [ 3490 | "/Tests/" 3491 | ] 3492 | }, 3493 | "notification-url": "https://packagist.org/downloads/", 3494 | "license": [ 3495 | "MIT" 3496 | ], 3497 | "authors": [ 3498 | { 3499 | "name": "Fabien Potencier", 3500 | "email": "fabien@symfony.com" 3501 | }, 3502 | { 3503 | "name": "Symfony Community", 3504 | "homepage": "https://symfony.com/contributors" 3505 | } 3506 | ], 3507 | "description": "Symfony Console Component", 3508 | "homepage": "https://symfony.com", 3509 | "keywords": [ 3510 | "cli", 3511 | "command line", 3512 | "console", 3513 | "terminal" 3514 | ], 3515 | "support": { 3516 | "source": "https://github.com/symfony/console/tree/v5.2.1" 3517 | }, 3518 | "funding": [ 3519 | { 3520 | "url": "https://symfony.com/sponsor", 3521 | "type": "custom" 3522 | }, 3523 | { 3524 | "url": "https://github.com/fabpot", 3525 | "type": "github" 3526 | }, 3527 | { 3528 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3529 | "type": "tidelift" 3530 | } 3531 | ], 3532 | "time": "2020-12-18T08:03:05+00:00" 3533 | }, 3534 | { 3535 | "name": "symfony/polyfill-intl-grapheme", 3536 | "version": "v1.22.0", 3537 | "source": { 3538 | "type": "git", 3539 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 3540 | "reference": "267a9adeb8ecb8071040a740930e077cdfb987af" 3541 | }, 3542 | "dist": { 3543 | "type": "zip", 3544 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af", 3545 | "reference": "267a9adeb8ecb8071040a740930e077cdfb987af", 3546 | "shasum": "" 3547 | }, 3548 | "require": { 3549 | "php": ">=7.1" 3550 | }, 3551 | "suggest": { 3552 | "ext-intl": "For best performance" 3553 | }, 3554 | "type": "library", 3555 | "extra": { 3556 | "branch-alias": { 3557 | "dev-main": "1.22-dev" 3558 | }, 3559 | "thanks": { 3560 | "name": "symfony/polyfill", 3561 | "url": "https://github.com/symfony/polyfill" 3562 | } 3563 | }, 3564 | "autoload": { 3565 | "psr-4": { 3566 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 3567 | }, 3568 | "files": [ 3569 | "bootstrap.php" 3570 | ] 3571 | }, 3572 | "notification-url": "https://packagist.org/downloads/", 3573 | "license": [ 3574 | "MIT" 3575 | ], 3576 | "authors": [ 3577 | { 3578 | "name": "Nicolas Grekas", 3579 | "email": "p@tchwork.com" 3580 | }, 3581 | { 3582 | "name": "Symfony Community", 3583 | "homepage": "https://symfony.com/contributors" 3584 | } 3585 | ], 3586 | "description": "Symfony polyfill for intl's grapheme_* functions", 3587 | "homepage": "https://symfony.com", 3588 | "keywords": [ 3589 | "compatibility", 3590 | "grapheme", 3591 | "intl", 3592 | "polyfill", 3593 | "portable", 3594 | "shim" 3595 | ], 3596 | "support": { 3597 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0" 3598 | }, 3599 | "funding": [ 3600 | { 3601 | "url": "https://symfony.com/sponsor", 3602 | "type": "custom" 3603 | }, 3604 | { 3605 | "url": "https://github.com/fabpot", 3606 | "type": "github" 3607 | }, 3608 | { 3609 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3610 | "type": "tidelift" 3611 | } 3612 | ], 3613 | "time": "2021-01-07T16:49:33+00:00" 3614 | }, 3615 | { 3616 | "name": "symfony/polyfill-intl-normalizer", 3617 | "version": "v1.22.0", 3618 | "source": { 3619 | "type": "git", 3620 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 3621 | "reference": "6e971c891537eb617a00bb07a43d182a6915faba" 3622 | }, 3623 | "dist": { 3624 | "type": "zip", 3625 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", 3626 | "reference": "6e971c891537eb617a00bb07a43d182a6915faba", 3627 | "shasum": "" 3628 | }, 3629 | "require": { 3630 | "php": ">=7.1" 3631 | }, 3632 | "suggest": { 3633 | "ext-intl": "For best performance" 3634 | }, 3635 | "type": "library", 3636 | "extra": { 3637 | "branch-alias": { 3638 | "dev-main": "1.22-dev" 3639 | }, 3640 | "thanks": { 3641 | "name": "symfony/polyfill", 3642 | "url": "https://github.com/symfony/polyfill" 3643 | } 3644 | }, 3645 | "autoload": { 3646 | "psr-4": { 3647 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 3648 | }, 3649 | "files": [ 3650 | "bootstrap.php" 3651 | ], 3652 | "classmap": [ 3653 | "Resources/stubs" 3654 | ] 3655 | }, 3656 | "notification-url": "https://packagist.org/downloads/", 3657 | "license": [ 3658 | "MIT" 3659 | ], 3660 | "authors": [ 3661 | { 3662 | "name": "Nicolas Grekas", 3663 | "email": "p@tchwork.com" 3664 | }, 3665 | { 3666 | "name": "Symfony Community", 3667 | "homepage": "https://symfony.com/contributors" 3668 | } 3669 | ], 3670 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 3671 | "homepage": "https://symfony.com", 3672 | "keywords": [ 3673 | "compatibility", 3674 | "intl", 3675 | "normalizer", 3676 | "polyfill", 3677 | "portable", 3678 | "shim" 3679 | ], 3680 | "support": { 3681 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0" 3682 | }, 3683 | "funding": [ 3684 | { 3685 | "url": "https://symfony.com/sponsor", 3686 | "type": "custom" 3687 | }, 3688 | { 3689 | "url": "https://github.com/fabpot", 3690 | "type": "github" 3691 | }, 3692 | { 3693 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3694 | "type": "tidelift" 3695 | } 3696 | ], 3697 | "time": "2021-01-07T17:09:11+00:00" 3698 | }, 3699 | { 3700 | "name": "symfony/polyfill-mbstring", 3701 | "version": "v1.22.0", 3702 | "source": { 3703 | "type": "git", 3704 | "url": "https://github.com/symfony/polyfill-mbstring.git", 3705 | "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" 3706 | }, 3707 | "dist": { 3708 | "type": "zip", 3709 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", 3710 | "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", 3711 | "shasum": "" 3712 | }, 3713 | "require": { 3714 | "php": ">=7.1" 3715 | }, 3716 | "suggest": { 3717 | "ext-mbstring": "For best performance" 3718 | }, 3719 | "type": "library", 3720 | "extra": { 3721 | "branch-alias": { 3722 | "dev-main": "1.22-dev" 3723 | }, 3724 | "thanks": { 3725 | "name": "symfony/polyfill", 3726 | "url": "https://github.com/symfony/polyfill" 3727 | } 3728 | }, 3729 | "autoload": { 3730 | "psr-4": { 3731 | "Symfony\\Polyfill\\Mbstring\\": "" 3732 | }, 3733 | "files": [ 3734 | "bootstrap.php" 3735 | ] 3736 | }, 3737 | "notification-url": "https://packagist.org/downloads/", 3738 | "license": [ 3739 | "MIT" 3740 | ], 3741 | "authors": [ 3742 | { 3743 | "name": "Nicolas Grekas", 3744 | "email": "p@tchwork.com" 3745 | }, 3746 | { 3747 | "name": "Symfony Community", 3748 | "homepage": "https://symfony.com/contributors" 3749 | } 3750 | ], 3751 | "description": "Symfony polyfill for the Mbstring extension", 3752 | "homepage": "https://symfony.com", 3753 | "keywords": [ 3754 | "compatibility", 3755 | "mbstring", 3756 | "polyfill", 3757 | "portable", 3758 | "shim" 3759 | ], 3760 | "support": { 3761 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" 3762 | }, 3763 | "funding": [ 3764 | { 3765 | "url": "https://symfony.com/sponsor", 3766 | "type": "custom" 3767 | }, 3768 | { 3769 | "url": "https://github.com/fabpot", 3770 | "type": "github" 3771 | }, 3772 | { 3773 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3774 | "type": "tidelift" 3775 | } 3776 | ], 3777 | "time": "2021-01-07T16:49:33+00:00" 3778 | }, 3779 | { 3780 | "name": "symfony/polyfill-php73", 3781 | "version": "v1.22.0", 3782 | "source": { 3783 | "type": "git", 3784 | "url": "https://github.com/symfony/polyfill-php73.git", 3785 | "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" 3786 | }, 3787 | "dist": { 3788 | "type": "zip", 3789 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", 3790 | "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", 3791 | "shasum": "" 3792 | }, 3793 | "require": { 3794 | "php": ">=7.1" 3795 | }, 3796 | "type": "library", 3797 | "extra": { 3798 | "branch-alias": { 3799 | "dev-main": "1.22-dev" 3800 | }, 3801 | "thanks": { 3802 | "name": "symfony/polyfill", 3803 | "url": "https://github.com/symfony/polyfill" 3804 | } 3805 | }, 3806 | "autoload": { 3807 | "psr-4": { 3808 | "Symfony\\Polyfill\\Php73\\": "" 3809 | }, 3810 | "files": [ 3811 | "bootstrap.php" 3812 | ], 3813 | "classmap": [ 3814 | "Resources/stubs" 3815 | ] 3816 | }, 3817 | "notification-url": "https://packagist.org/downloads/", 3818 | "license": [ 3819 | "MIT" 3820 | ], 3821 | "authors": [ 3822 | { 3823 | "name": "Nicolas Grekas", 3824 | "email": "p@tchwork.com" 3825 | }, 3826 | { 3827 | "name": "Symfony Community", 3828 | "homepage": "https://symfony.com/contributors" 3829 | } 3830 | ], 3831 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", 3832 | "homepage": "https://symfony.com", 3833 | "keywords": [ 3834 | "compatibility", 3835 | "polyfill", 3836 | "portable", 3837 | "shim" 3838 | ], 3839 | "support": { 3840 | "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0" 3841 | }, 3842 | "funding": [ 3843 | { 3844 | "url": "https://symfony.com/sponsor", 3845 | "type": "custom" 3846 | }, 3847 | { 3848 | "url": "https://github.com/fabpot", 3849 | "type": "github" 3850 | }, 3851 | { 3852 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3853 | "type": "tidelift" 3854 | } 3855 | ], 3856 | "time": "2021-01-07T16:49:33+00:00" 3857 | }, 3858 | { 3859 | "name": "symfony/polyfill-php80", 3860 | "version": "v1.22.0", 3861 | "source": { 3862 | "type": "git", 3863 | "url": "https://github.com/symfony/polyfill-php80.git", 3864 | "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" 3865 | }, 3866 | "dist": { 3867 | "type": "zip", 3868 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", 3869 | "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", 3870 | "shasum": "" 3871 | }, 3872 | "require": { 3873 | "php": ">=7.1" 3874 | }, 3875 | "type": "library", 3876 | "extra": { 3877 | "branch-alias": { 3878 | "dev-main": "1.22-dev" 3879 | }, 3880 | "thanks": { 3881 | "name": "symfony/polyfill", 3882 | "url": "https://github.com/symfony/polyfill" 3883 | } 3884 | }, 3885 | "autoload": { 3886 | "psr-4": { 3887 | "Symfony\\Polyfill\\Php80\\": "" 3888 | }, 3889 | "files": [ 3890 | "bootstrap.php" 3891 | ], 3892 | "classmap": [ 3893 | "Resources/stubs" 3894 | ] 3895 | }, 3896 | "notification-url": "https://packagist.org/downloads/", 3897 | "license": [ 3898 | "MIT" 3899 | ], 3900 | "authors": [ 3901 | { 3902 | "name": "Ion Bazan", 3903 | "email": "ion.bazan@gmail.com" 3904 | }, 3905 | { 3906 | "name": "Nicolas Grekas", 3907 | "email": "p@tchwork.com" 3908 | }, 3909 | { 3910 | "name": "Symfony Community", 3911 | "homepage": "https://symfony.com/contributors" 3912 | } 3913 | ], 3914 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 3915 | "homepage": "https://symfony.com", 3916 | "keywords": [ 3917 | "compatibility", 3918 | "polyfill", 3919 | "portable", 3920 | "shim" 3921 | ], 3922 | "support": { 3923 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" 3924 | }, 3925 | "funding": [ 3926 | { 3927 | "url": "https://symfony.com/sponsor", 3928 | "type": "custom" 3929 | }, 3930 | { 3931 | "url": "https://github.com/fabpot", 3932 | "type": "github" 3933 | }, 3934 | { 3935 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 3936 | "type": "tidelift" 3937 | } 3938 | ], 3939 | "time": "2021-01-07T16:49:33+00:00" 3940 | }, 3941 | { 3942 | "name": "symfony/service-contracts", 3943 | "version": "v2.2.0", 3944 | "source": { 3945 | "type": "git", 3946 | "url": "https://github.com/symfony/service-contracts.git", 3947 | "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" 3948 | }, 3949 | "dist": { 3950 | "type": "zip", 3951 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", 3952 | "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", 3953 | "shasum": "" 3954 | }, 3955 | "require": { 3956 | "php": ">=7.2.5", 3957 | "psr/container": "^1.0" 3958 | }, 3959 | "suggest": { 3960 | "symfony/service-implementation": "" 3961 | }, 3962 | "type": "library", 3963 | "extra": { 3964 | "branch-alias": { 3965 | "dev-master": "2.2-dev" 3966 | }, 3967 | "thanks": { 3968 | "name": "symfony/contracts", 3969 | "url": "https://github.com/symfony/contracts" 3970 | } 3971 | }, 3972 | "autoload": { 3973 | "psr-4": { 3974 | "Symfony\\Contracts\\Service\\": "" 3975 | } 3976 | }, 3977 | "notification-url": "https://packagist.org/downloads/", 3978 | "license": [ 3979 | "MIT" 3980 | ], 3981 | "authors": [ 3982 | { 3983 | "name": "Nicolas Grekas", 3984 | "email": "p@tchwork.com" 3985 | }, 3986 | { 3987 | "name": "Symfony Community", 3988 | "homepage": "https://symfony.com/contributors" 3989 | } 3990 | ], 3991 | "description": "Generic abstractions related to writing services", 3992 | "homepage": "https://symfony.com", 3993 | "keywords": [ 3994 | "abstractions", 3995 | "contracts", 3996 | "decoupling", 3997 | "interfaces", 3998 | "interoperability", 3999 | "standards" 4000 | ], 4001 | "support": { 4002 | "source": "https://github.com/symfony/service-contracts/tree/master" 4003 | }, 4004 | "funding": [ 4005 | { 4006 | "url": "https://symfony.com/sponsor", 4007 | "type": "custom" 4008 | }, 4009 | { 4010 | "url": "https://github.com/fabpot", 4011 | "type": "github" 4012 | }, 4013 | { 4014 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4015 | "type": "tidelift" 4016 | } 4017 | ], 4018 | "time": "2020-09-07T11:33:47+00:00" 4019 | }, 4020 | { 4021 | "name": "symfony/string", 4022 | "version": "v5.2.1", 4023 | "source": { 4024 | "type": "git", 4025 | "url": "https://github.com/symfony/string.git", 4026 | "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" 4027 | }, 4028 | "dist": { 4029 | "type": "zip", 4030 | "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", 4031 | "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", 4032 | "shasum": "" 4033 | }, 4034 | "require": { 4035 | "php": ">=7.2.5", 4036 | "symfony/polyfill-ctype": "~1.8", 4037 | "symfony/polyfill-intl-grapheme": "~1.0", 4038 | "symfony/polyfill-intl-normalizer": "~1.0", 4039 | "symfony/polyfill-mbstring": "~1.0", 4040 | "symfony/polyfill-php80": "~1.15" 4041 | }, 4042 | "require-dev": { 4043 | "symfony/error-handler": "^4.4|^5.0", 4044 | "symfony/http-client": "^4.4|^5.0", 4045 | "symfony/translation-contracts": "^1.1|^2", 4046 | "symfony/var-exporter": "^4.4|^5.0" 4047 | }, 4048 | "type": "library", 4049 | "autoload": { 4050 | "psr-4": { 4051 | "Symfony\\Component\\String\\": "" 4052 | }, 4053 | "files": [ 4054 | "Resources/functions.php" 4055 | ], 4056 | "exclude-from-classmap": [ 4057 | "/Tests/" 4058 | ] 4059 | }, 4060 | "notification-url": "https://packagist.org/downloads/", 4061 | "license": [ 4062 | "MIT" 4063 | ], 4064 | "authors": [ 4065 | { 4066 | "name": "Nicolas Grekas", 4067 | "email": "p@tchwork.com" 4068 | }, 4069 | { 4070 | "name": "Symfony Community", 4071 | "homepage": "https://symfony.com/contributors" 4072 | } 4073 | ], 4074 | "description": "Symfony String component", 4075 | "homepage": "https://symfony.com", 4076 | "keywords": [ 4077 | "grapheme", 4078 | "i18n", 4079 | "string", 4080 | "unicode", 4081 | "utf-8", 4082 | "utf8" 4083 | ], 4084 | "support": { 4085 | "source": "https://github.com/symfony/string/tree/v5.2.1" 4086 | }, 4087 | "funding": [ 4088 | { 4089 | "url": "https://symfony.com/sponsor", 4090 | "type": "custom" 4091 | }, 4092 | { 4093 | "url": "https://github.com/fabpot", 4094 | "type": "github" 4095 | }, 4096 | { 4097 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 4098 | "type": "tidelift" 4099 | } 4100 | ], 4101 | "time": "2020-12-05T07:33:16+00:00" 4102 | }, 4103 | { 4104 | "name": "theseer/tokenizer", 4105 | "version": "1.2.0", 4106 | "source": { 4107 | "type": "git", 4108 | "url": "https://github.com/theseer/tokenizer.git", 4109 | "reference": "75a63c33a8577608444246075ea0af0d052e452a" 4110 | }, 4111 | "dist": { 4112 | "type": "zip", 4113 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", 4114 | "reference": "75a63c33a8577608444246075ea0af0d052e452a", 4115 | "shasum": "" 4116 | }, 4117 | "require": { 4118 | "ext-dom": "*", 4119 | "ext-tokenizer": "*", 4120 | "ext-xmlwriter": "*", 4121 | "php": "^7.2 || ^8.0" 4122 | }, 4123 | "type": "library", 4124 | "autoload": { 4125 | "classmap": [ 4126 | "src/" 4127 | ] 4128 | }, 4129 | "notification-url": "https://packagist.org/downloads/", 4130 | "license": [ 4131 | "BSD-3-Clause" 4132 | ], 4133 | "authors": [ 4134 | { 4135 | "name": "Arne Blankerts", 4136 | "email": "arne@blankerts.de", 4137 | "role": "Developer" 4138 | } 4139 | ], 4140 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", 4141 | "support": { 4142 | "issues": "https://github.com/theseer/tokenizer/issues", 4143 | "source": "https://github.com/theseer/tokenizer/tree/master" 4144 | }, 4145 | "funding": [ 4146 | { 4147 | "url": "https://github.com/theseer", 4148 | "type": "github" 4149 | } 4150 | ], 4151 | "time": "2020-07-12T23:59:07+00:00" 4152 | }, 4153 | { 4154 | "name": "vimeo/psalm", 4155 | "version": "4.4.0", 4156 | "source": { 4157 | "type": "git", 4158 | "url": "https://github.com/vimeo/psalm.git", 4159 | "reference": "ef4afd72bca50a0aff61599d3e433c9ee64287ac" 4160 | }, 4161 | "dist": { 4162 | "type": "zip", 4163 | "url": "https://api.github.com/repos/vimeo/psalm/zipball/ef4afd72bca50a0aff61599d3e433c9ee64287ac", 4164 | "reference": "ef4afd72bca50a0aff61599d3e433c9ee64287ac", 4165 | "shasum": "" 4166 | }, 4167 | "require": { 4168 | "amphp/amp": "^2.1", 4169 | "amphp/byte-stream": "^1.5", 4170 | "composer/package-versions-deprecated": "^1.8.0", 4171 | "composer/semver": "^1.4 || ^2.0 || ^3.0", 4172 | "composer/xdebug-handler": "^1.1", 4173 | "dnoegel/php-xdg-base-dir": "^0.1.1", 4174 | "ext-dom": "*", 4175 | "ext-json": "*", 4176 | "ext-libxml": "*", 4177 | "ext-mbstring": "*", 4178 | "ext-simplexml": "*", 4179 | "ext-tokenizer": "*", 4180 | "felixfbecker/advanced-json-rpc": "^3.0.3", 4181 | "felixfbecker/language-server-protocol": "^1.4", 4182 | "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", 4183 | "nikic/php-parser": "^4.10.1", 4184 | "openlss/lib-array2xml": "^1.0", 4185 | "php": "^7.1|^8", 4186 | "sebastian/diff": "^3.0 || ^4.0", 4187 | "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", 4188 | "webmozart/path-util": "^2.3" 4189 | }, 4190 | "provide": { 4191 | "psalm/psalm": "self.version" 4192 | }, 4193 | "require-dev": { 4194 | "amphp/amp": "^2.4.2", 4195 | "bamarni/composer-bin-plugin": "^1.2", 4196 | "brianium/paratest": "^4.0||^6.0", 4197 | "ext-curl": "*", 4198 | "phpdocumentor/reflection-docblock": "^5", 4199 | "phpmyadmin/sql-parser": "5.1.0||dev-master", 4200 | "phpspec/prophecy": ">=1.9.0", 4201 | "phpunit/phpunit": "^9.0", 4202 | "psalm/plugin-phpunit": "^0.13", 4203 | "slevomat/coding-standard": "^6.3.11", 4204 | "squizlabs/php_codesniffer": "^3.5", 4205 | "symfony/process": "^4.3", 4206 | "weirdan/prophecy-shim": "^1.0 || ^2.0" 4207 | }, 4208 | "suggest": { 4209 | "ext-igbinary": "^2.0.5" 4210 | }, 4211 | "bin": [ 4212 | "psalm", 4213 | "psalm-language-server", 4214 | "psalm-plugin", 4215 | "psalm-refactor", 4216 | "psalter" 4217 | ], 4218 | "type": "library", 4219 | "extra": { 4220 | "branch-alias": { 4221 | "dev-master": "4.x-dev", 4222 | "dev-3.x": "3.x-dev", 4223 | "dev-2.x": "2.x-dev", 4224 | "dev-1.x": "1.x-dev" 4225 | } 4226 | }, 4227 | "autoload": { 4228 | "psr-4": { 4229 | "Psalm\\": "src/Psalm/" 4230 | }, 4231 | "files": [ 4232 | "src/functions.php", 4233 | "src/spl_object_id.php" 4234 | ] 4235 | }, 4236 | "notification-url": "https://packagist.org/downloads/", 4237 | "license": [ 4238 | "MIT" 4239 | ], 4240 | "authors": [ 4241 | { 4242 | "name": "Matthew Brown" 4243 | } 4244 | ], 4245 | "description": "A static analysis tool for finding errors in PHP applications", 4246 | "keywords": [ 4247 | "code", 4248 | "inspection", 4249 | "php" 4250 | ], 4251 | "support": { 4252 | "issues": "https://github.com/vimeo/psalm/issues", 4253 | "source": "https://github.com/vimeo/psalm/tree/4.4.0" 4254 | }, 4255 | "time": "2021-01-13T23:10:59+00:00" 4256 | }, 4257 | { 4258 | "name": "webmozart/assert", 4259 | "version": "1.9.1", 4260 | "source": { 4261 | "type": "git", 4262 | "url": "https://github.com/webmozart/assert.git", 4263 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" 4264 | }, 4265 | "dist": { 4266 | "type": "zip", 4267 | "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", 4268 | "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", 4269 | "shasum": "" 4270 | }, 4271 | "require": { 4272 | "php": "^5.3.3 || ^7.0 || ^8.0", 4273 | "symfony/polyfill-ctype": "^1.8" 4274 | }, 4275 | "conflict": { 4276 | "phpstan/phpstan": "<0.12.20", 4277 | "vimeo/psalm": "<3.9.1" 4278 | }, 4279 | "require-dev": { 4280 | "phpunit/phpunit": "^4.8.36 || ^7.5.13" 4281 | }, 4282 | "type": "library", 4283 | "autoload": { 4284 | "psr-4": { 4285 | "Webmozart\\Assert\\": "src/" 4286 | } 4287 | }, 4288 | "notification-url": "https://packagist.org/downloads/", 4289 | "license": [ 4290 | "MIT" 4291 | ], 4292 | "authors": [ 4293 | { 4294 | "name": "Bernhard Schussek", 4295 | "email": "bschussek@gmail.com" 4296 | } 4297 | ], 4298 | "description": "Assertions to validate method input/output with nice error messages.", 4299 | "keywords": [ 4300 | "assert", 4301 | "check", 4302 | "validate" 4303 | ], 4304 | "support": { 4305 | "issues": "https://github.com/webmozart/assert/issues", 4306 | "source": "https://github.com/webmozart/assert/tree/master" 4307 | }, 4308 | "time": "2020-07-08T17:02:28+00:00" 4309 | }, 4310 | { 4311 | "name": "webmozart/path-util", 4312 | "version": "2.3.0", 4313 | "source": { 4314 | "type": "git", 4315 | "url": "https://github.com/webmozart/path-util.git", 4316 | "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" 4317 | }, 4318 | "dist": { 4319 | "type": "zip", 4320 | "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", 4321 | "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", 4322 | "shasum": "" 4323 | }, 4324 | "require": { 4325 | "php": ">=5.3.3", 4326 | "webmozart/assert": "~1.0" 4327 | }, 4328 | "require-dev": { 4329 | "phpunit/phpunit": "^4.6", 4330 | "sebastian/version": "^1.0.1" 4331 | }, 4332 | "type": "library", 4333 | "extra": { 4334 | "branch-alias": { 4335 | "dev-master": "2.3-dev" 4336 | } 4337 | }, 4338 | "autoload": { 4339 | "psr-4": { 4340 | "Webmozart\\PathUtil\\": "src/" 4341 | } 4342 | }, 4343 | "notification-url": "https://packagist.org/downloads/", 4344 | "license": [ 4345 | "MIT" 4346 | ], 4347 | "authors": [ 4348 | { 4349 | "name": "Bernhard Schussek", 4350 | "email": "bschussek@gmail.com" 4351 | } 4352 | ], 4353 | "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", 4354 | "support": { 4355 | "issues": "https://github.com/webmozart/path-util/issues", 4356 | "source": "https://github.com/webmozart/path-util/tree/2.3.0" 4357 | }, 4358 | "time": "2015-12-17T08:42:14+00:00" 4359 | } 4360 | ], 4361 | "aliases": [], 4362 | "minimum-stability": "stable", 4363 | "stability-flags": [], 4364 | "prefer-stable": false, 4365 | "prefer-lowest": false, 4366 | "platform": { 4367 | "php": "^7.2 || ^8.0", 4368 | "ext-json": "*" 4369 | }, 4370 | "platform-dev": [], 4371 | "platform-overrides": { 4372 | "php": "7.3.0" 4373 | }, 4374 | "plugin-api-version": "2.0.0" 4375 | } 4376 | -------------------------------------------------------------------------------- /psalm.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/DoctrineMessageRepository.php: -------------------------------------------------------------------------------- 1 | connection = $connection; 44 | $this->serializer = $serializer; 45 | $this->tableName = $tableName; 46 | $this->jsonEncodeOptions = $jsonEncodeOptions; 47 | } 48 | 49 | public function persist(Message ... $messages): void 50 | { 51 | if (count($messages) === 0) { 52 | return; 53 | } 54 | 55 | $sql = $this->baseSql($this->tableName); 56 | $params = []; 57 | $values = []; 58 | 59 | foreach ($messages as $index => $message) { 60 | $payload = $this->serializer->serializeMessage($message); 61 | $eventIdColumn = 'event_id_' . $index; 62 | $aggregateRootIdColumn = 'aggregate_root_id_' . $index; 63 | $eventTypeColumn = 'event_type_' . $index; 64 | $aggregateRootVersionColumn = 'aggregate_root_version_' . $index; 65 | $timeOfRecordingColumn = 'time_of_recording_' . $index; 66 | $payloadColumn = 'payload_' . $index; 67 | $values[] = "(:{$eventIdColumn}, :{$eventTypeColumn}, :{$aggregateRootIdColumn}, :{$aggregateRootVersionColumn}, :{$timeOfRecordingColumn}, :{$payloadColumn})"; 68 | $params[$aggregateRootVersionColumn] = $payload['headers'][Header::AGGREGATE_ROOT_VERSION] ?? 0; 69 | $params[$timeOfRecordingColumn] = $payload['headers'][Header::TIME_OF_RECORDING]; 70 | $params[$eventIdColumn] = $payload['headers'][Header::EVENT_ID] = $payload['headers'][Header::EVENT_ID] ?? Uuid::uuid4()->toString(); 71 | $params[$payloadColumn] = json_encode($payload, $this->jsonEncodeOptions); 72 | $params[$eventTypeColumn] = $payload['headers'][Header::EVENT_TYPE] ?? null; 73 | $params[$aggregateRootIdColumn] = $payload['headers'][Header::AGGREGATE_ROOT_ID] ?? null; 74 | } 75 | 76 | $sql .= implode(', ', $values); 77 | $this->connection->beginTransaction(); 78 | $this->connection->prepare($sql)->execute($params); 79 | $this->connection->commit(); 80 | } 81 | 82 | protected function baseSql(string $tableName): string 83 | { 84 | return "INSERT INTO {$tableName} (event_id, event_type, aggregate_root_id, aggregate_root_version, time_of_recording, payload) VALUES "; 85 | } 86 | 87 | /** @psalm-return Generator */ 88 | public function retrieveAll(AggregateRootId $id): Generator 89 | { 90 | $stm = $this->connection->createQueryBuilder() 91 | ->select('payload') 92 | ->from($this->tableName) 93 | ->where('aggregate_root_id = :aggregate_root_id') 94 | ->orderBy('aggregate_root_version', 'ASC') 95 | ->setParameter('aggregate_root_id', $id->toString()) 96 | ->execute(); 97 | 98 | assert(! is_int($stm)); 99 | 100 | return $this->yieldMessagesForResult($stm); 101 | } 102 | 103 | /** @psalm-return Generator */ 104 | public function retrieveEverything(): Generator 105 | { 106 | $stm = $this->connection->createQueryBuilder() 107 | ->select('payload') 108 | ->from($this->tableName) 109 | ->orderBy('time_of_recording', 'ASC') 110 | ->execute(); 111 | 112 | assert(! is_int($stm)); 113 | 114 | return $this->yieldMessagesForResult($stm); 115 | } 116 | 117 | /** @psalm-return Generator */ 118 | public function retrieveAllAfterVersion(AggregateRootId $id, int $aggregateRootVersion): Generator 119 | { 120 | $stm = $this->connection->createQueryBuilder() 121 | ->select('payload') 122 | ->from($this->tableName) 123 | ->where('aggregate_root_id = :aggregate_root_id') 124 | ->andWhere('aggregate_root_version > :aggregate_root_version') 125 | ->orderBy('aggregate_root_version', 'ASC') 126 | ->setParameter('aggregate_root_id', $id->toString()) 127 | ->setParameter('aggregate_root_version', $aggregateRootVersion) 128 | ->execute(); 129 | 130 | assert(! is_int($stm)); 131 | 132 | return $this->yieldMessagesForResult($stm); 133 | } 134 | 135 | /** 136 | * @param Statement|ResultStatement $stm 137 | * @return Generator 138 | * 139 | * @psalm-return Generator 140 | */ 141 | private function yieldMessagesForResult($stm) 142 | { 143 | /** @psalm-suppress DeprecatedMethod remove fetchColumn call when bumping to `doctrine/dbal:^3.0` */ 144 | while ($payload = $stm->fetchColumn()) { 145 | $messages = $this->serializer->unserializePayload(json_decode($payload, true)); 146 | 147 | foreach ($messages as $message) { 148 | assert($message instanceof Message); 149 | 150 | yield $message; 151 | } 152 | } 153 | 154 | return isset($message) 155 | ? $message->header(Header::AGGREGATE_ROOT_VERSION) ?: 0 156 | : 0; 157 | } 158 | } 159 | -------------------------------------------------------------------------------- /src/MysqlDoctrineMessageRepository.php: -------------------------------------------------------------------------------- 1 |