├── .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 |