├── .editorconfig
├── .gitignore
├── .php-cs-fixer.php
├── LICENCE.md
├── Makefile
├── README.md
├── composer.json
├── composer.lock
├── docker-compose.yml
├── docker
├── nginx
│ ├── Dockerfile
│ └── conf.d
│ │ └── default.conf
├── php-cli
│ └── Dockerfile
└── php-fpm
│ └── Dockerfile
├── phpunit.xml
├── psalm.xml
├── public
└── index.php
├── src
├── App
│ └── detectLang.php
└── Framework
│ └── .gitkeep
├── tests
├── App
│ └── DetectLangTest.php
└── Framework
│ └── .gitkeep
└── var
└── .gitignore
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.php]
13 | tab_width = 4
14 | indent_size = 4
15 |
16 | [*.html]
17 | tab_width = 4
18 | indent_size = 4
19 |
20 | [*.xml]
21 | tab_width = 4
22 | indent_size = 4
23 |
24 | [*.json]
25 | tab_width = 4
26 | indent_size = 4
27 |
28 | [*.yml]
29 | tab_width = 4
30 | indent_size = 4
31 |
32 | [Makefile]
33 | indent_style = tab
34 | tab_width = 4
35 | indent_size = 4
36 |
37 | [*.md]
38 | trim_trailing_whitespace = false
39 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor/
2 |
--------------------------------------------------------------------------------
/.php-cs-fixer.php:
--------------------------------------------------------------------------------
1 | setCacheFile(__DIR__ . '/var/php_cs.cache')
8 | ->setFinder(
9 | PhpCsFixer\Finder::create()
10 | ->in([
11 | __DIR__ . '/public',
12 | __DIR__ . '/src',
13 | __DIR__ . '/tests',
14 | ])
15 | ->append([
16 | __FILE__,
17 | ])
18 | )
19 | ->setRules([
20 | '@PER' => true,
21 | '@PER:risky' => true,
22 | '@PHP81Migration' => true,
23 | '@PHP80Migration:risky' => true,
24 | '@PHPUnit84Migration:risky' => true,
25 |
26 | 'no_unused_imports' => true,
27 | 'ordered_imports' => ['imports_order' => ['class', 'function', 'const']],
28 |
29 | 'no_superfluous_phpdoc_tags' => ['remove_inheritdoc' => true],
30 |
31 | 'phpdoc_types_order' => ['null_adjustment' => 'always_last'],
32 |
33 | 'strict_comparison' => true,
34 | 'strict_param' => true,
35 |
36 | 'binary_operator_spaces' => true,
37 |
38 | 'multiline_whitespace_before_semicolons' => ['strategy' => 'no_multi_line'],
39 |
40 | 'no_superfluous_elseif' => true,
41 | 'no_useless_else' => true,
42 | 'no_useless_return' => true,
43 |
44 | 'php_unit_internal_class' => true,
45 | 'php_unit_construct' => true,
46 | 'php_unit_fqcn_annotation' => true,
47 | 'php_unit_set_up_tear_down_visibility' => true,
48 | 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
49 |
50 | 'final_class' => true,
51 | 'final_public_method_for_abstract_class' => true,
52 | 'self_static_accessor' => true,
53 |
54 | 'static_lambda' => true,
55 |
56 | 'global_namespace_import' => true,
57 | ]);
58 |
--------------------------------------------------------------------------------
/LICENCE.md:
--------------------------------------------------------------------------------
1 | # BSD 3-Clause License
2 |
3 | Copyright (c) 2021, DeworkerPro. All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | 1. Redistributions of source code must retain the above copyright notice, this
9 | list of conditions and the following disclaimer.
10 |
11 | 2. Redistributions in binary form must reproduce the above copyright notice,
12 | this list of conditions and the following disclaimer in the documentation
13 | and/or other materials provided with the distribution.
14 |
15 | 3. Neither the name of the copyright holder nor the names of its
16 | contributors may be used to endorse or promote products derived from
17 | this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | init: docker-down-clear docker-pull docker-build-pull docker-up app-init
2 | down: docker-down-clear
3 | check: lint analyze test
4 |
5 | docker-up:
6 | docker-compose up -d
7 |
8 | docker-down-clear:
9 | docker-compose down -v --remove-orphans
10 |
11 | docker-pull:
12 | docker-compose pull
13 |
14 | docker-build-pull:
15 | docker-compose build --pull
16 |
17 | app-init: composer-install
18 |
19 | composer-install:
20 | docker-compose run --rm php-cli composer install
21 |
22 | composer-update:
23 | docker-compose run --rm php-cli composer update
24 |
25 | lint:
26 | docker-compose run --rm php-cli composer php-cs-fixer fix -- --dry-run --diff
27 |
28 | cs-fix:
29 | docker-compose run --rm php-cli composer php-cs-fixer fix
30 |
31 | analyze:
32 | docker-compose run --rm php-cli composer psalm -- --no-diff
33 |
34 | test:
35 | docker-compose run --rm php-cli composer test
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Demo PHP HTTP Framework
2 |
3 | Source code for https://deworker.pro/edu/series/http-framework
4 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "deworkerpro/demo-php-http-framework",
3 | "description": "Source code for our workshop",
4 | "type": "project",
5 | "license": "BSD-3-Clause",
6 | "config": {
7 | "sort-packages": true
8 | },
9 | "require": {
10 | "php": "^8.1",
11 | "laminas/laminas-diactoros": "^2.24",
12 | "laminas/laminas-httphandlerrunner": "^2.5",
13 | "psr/http-factory": "^1.0",
14 | "psr/http-message": "^1.0"
15 | },
16 | "require-dev": {
17 | "friendsofphp/php-cs-fixer": "^3.8",
18 | "phpunit/phpunit": "^9.5",
19 | "psalm/plugin-phpunit": "^0.18.4",
20 | "vimeo/psalm": "^5.4"
21 | },
22 | "autoload": {
23 | "files": [
24 | "src/App/detectLang.php"
25 | ],
26 | "psr-4": {
27 | "App\\": "src/App/",
28 | "Framework\\": "src/Framework/"
29 | }
30 | },
31 | "autoload-dev": {
32 | "psr-4": {
33 | "Test\\App\\": "tests/App/",
34 | "Test\\Framework\\": "tests/Framework/"
35 | }
36 | },
37 | "scripts": {
38 | "php-cs-fixer": "php-cs-fixer --config=.php-cs-fixer.php --allow-risky=yes",
39 | "psalm": "psalm --config=psalm.xml",
40 | "test": "phpunit --colors=always"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/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": "6a682c0b3fa181c4218759a6f11fab91",
8 | "packages": [
9 | {
10 | "name": "laminas/laminas-diactoros",
11 | "version": "2.24.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/laminas/laminas-diactoros.git",
15 | "reference": "6028af6c3b5ced4d063a680d2483cce67578b902"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6028af6c3b5ced4d063a680d2483cce67578b902",
20 | "reference": "6028af6c3b5ced4d063a680d2483cce67578b902",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": "~8.0.0 || ~8.1.0 || ~8.2.0",
25 | "psr/http-factory": "^1.0",
26 | "psr/http-message": "^1.0"
27 | },
28 | "conflict": {
29 | "zendframework/zend-diactoros": "*"
30 | },
31 | "provide": {
32 | "psr/http-factory-implementation": "1.0",
33 | "psr/http-message-implementation": "1.0"
34 | },
35 | "require-dev": {
36 | "ext-curl": "*",
37 | "ext-dom": "*",
38 | "ext-gd": "*",
39 | "ext-libxml": "*",
40 | "http-interop/http-factory-tests": "^0.9.0",
41 | "laminas/laminas-coding-standard": "^2.4.0",
42 | "php-http/psr7-integration-tests": "^1.2",
43 | "phpunit/phpunit": "^9.5.27",
44 | "psalm/plugin-phpunit": "^0.18.4",
45 | "vimeo/psalm": "^5.4"
46 | },
47 | "type": "library",
48 | "extra": {
49 | "laminas": {
50 | "config-provider": "Laminas\\Diactoros\\ConfigProvider",
51 | "module": "Laminas\\Diactoros"
52 | }
53 | },
54 | "autoload": {
55 | "files": [
56 | "src/functions/create_uploaded_file.php",
57 | "src/functions/marshal_headers_from_sapi.php",
58 | "src/functions/marshal_method_from_sapi.php",
59 | "src/functions/marshal_protocol_version_from_sapi.php",
60 | "src/functions/marshal_uri_from_sapi.php",
61 | "src/functions/normalize_server.php",
62 | "src/functions/normalize_uploaded_files.php",
63 | "src/functions/parse_cookie_header.php",
64 | "src/functions/create_uploaded_file.legacy.php",
65 | "src/functions/marshal_headers_from_sapi.legacy.php",
66 | "src/functions/marshal_method_from_sapi.legacy.php",
67 | "src/functions/marshal_protocol_version_from_sapi.legacy.php",
68 | "src/functions/marshal_uri_from_sapi.legacy.php",
69 | "src/functions/normalize_server.legacy.php",
70 | "src/functions/normalize_uploaded_files.legacy.php",
71 | "src/functions/parse_cookie_header.legacy.php"
72 | ],
73 | "psr-4": {
74 | "Laminas\\Diactoros\\": "src/"
75 | }
76 | },
77 | "notification-url": "https://packagist.org/downloads/",
78 | "license": [
79 | "BSD-3-Clause"
80 | ],
81 | "description": "PSR HTTP Message implementations",
82 | "homepage": "https://laminas.dev",
83 | "keywords": [
84 | "http",
85 | "laminas",
86 | "psr",
87 | "psr-17",
88 | "psr-7"
89 | ],
90 | "support": {
91 | "chat": "https://laminas.dev/chat",
92 | "docs": "https://docs.laminas.dev/laminas-diactoros/",
93 | "forum": "https://discourse.laminas.dev",
94 | "issues": "https://github.com/laminas/laminas-diactoros/issues",
95 | "rss": "https://github.com/laminas/laminas-diactoros/releases.atom",
96 | "source": "https://github.com/laminas/laminas-diactoros"
97 | },
98 | "funding": [
99 | {
100 | "url": "https://funding.communitybridge.org/projects/laminas-project",
101 | "type": "community_bridge"
102 | }
103 | ],
104 | "time": "2022-12-20T12:22:40+00:00"
105 | },
106 | {
107 | "name": "laminas/laminas-httphandlerrunner",
108 | "version": "2.5.0",
109 | "source": {
110 | "type": "git",
111 | "url": "https://github.com/laminas/laminas-httphandlerrunner.git",
112 | "reference": "7a47834aaad7852816d2ec4fdbb0492163b039ae"
113 | },
114 | "dist": {
115 | "type": "zip",
116 | "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/7a47834aaad7852816d2ec4fdbb0492163b039ae",
117 | "reference": "7a47834aaad7852816d2ec4fdbb0492163b039ae",
118 | "shasum": ""
119 | },
120 | "require": {
121 | "php": "~8.0.0 || ~8.1.0 || ~8.2.0",
122 | "psr/http-message": "^1.0",
123 | "psr/http-message-implementation": "^1.0",
124 | "psr/http-server-handler": "^1.0"
125 | },
126 | "require-dev": {
127 | "laminas/laminas-coding-standard": "~2.4.0",
128 | "laminas/laminas-diactoros": "^2.18",
129 | "phpunit/phpunit": "^9.5.26",
130 | "psalm/plugin-phpunit": "^0.18.0",
131 | "vimeo/psalm": "^5.0.0"
132 | },
133 | "type": "library",
134 | "extra": {
135 | "laminas": {
136 | "config-provider": "Laminas\\HttpHandlerRunner\\ConfigProvider"
137 | }
138 | },
139 | "autoload": {
140 | "psr-4": {
141 | "Laminas\\HttpHandlerRunner\\": "src/"
142 | }
143 | },
144 | "notification-url": "https://packagist.org/downloads/",
145 | "license": [
146 | "BSD-3-Clause"
147 | ],
148 | "description": "Execute PSR-15 RequestHandlerInterface instances and emit responses they generate.",
149 | "homepage": "https://laminas.dev",
150 | "keywords": [
151 | "components",
152 | "laminas",
153 | "mezzio",
154 | "psr-15",
155 | "psr-7"
156 | ],
157 | "support": {
158 | "chat": "https://laminas.dev/chat",
159 | "docs": "https://docs.laminas.dev/laminas-httphandlerrunner/",
160 | "forum": "https://discourse.laminas.dev",
161 | "issues": "https://github.com/laminas/laminas-httphandlerrunner/issues",
162 | "rss": "https://github.com/laminas/laminas-httphandlerrunner/releases.atom",
163 | "source": "https://github.com/laminas/laminas-httphandlerrunner"
164 | },
165 | "funding": [
166 | {
167 | "url": "https://funding.communitybridge.org/projects/laminas-project",
168 | "type": "community_bridge"
169 | }
170 | ],
171 | "time": "2023-01-05T21:54:03+00:00"
172 | },
173 | {
174 | "name": "psr/http-factory",
175 | "version": "1.0.1",
176 | "source": {
177 | "type": "git",
178 | "url": "https://github.com/php-fig/http-factory.git",
179 | "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
180 | },
181 | "dist": {
182 | "type": "zip",
183 | "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
184 | "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
185 | "shasum": ""
186 | },
187 | "require": {
188 | "php": ">=7.0.0",
189 | "psr/http-message": "^1.0"
190 | },
191 | "type": "library",
192 | "extra": {
193 | "branch-alias": {
194 | "dev-master": "1.0.x-dev"
195 | }
196 | },
197 | "autoload": {
198 | "psr-4": {
199 | "Psr\\Http\\Message\\": "src/"
200 | }
201 | },
202 | "notification-url": "https://packagist.org/downloads/",
203 | "license": [
204 | "MIT"
205 | ],
206 | "authors": [
207 | {
208 | "name": "PHP-FIG",
209 | "homepage": "http://www.php-fig.org/"
210 | }
211 | ],
212 | "description": "Common interfaces for PSR-7 HTTP message factories",
213 | "keywords": [
214 | "factory",
215 | "http",
216 | "message",
217 | "psr",
218 | "psr-17",
219 | "psr-7",
220 | "request",
221 | "response"
222 | ],
223 | "support": {
224 | "source": "https://github.com/php-fig/http-factory/tree/master"
225 | },
226 | "time": "2019-04-30T12:38:16+00:00"
227 | },
228 | {
229 | "name": "psr/http-message",
230 | "version": "1.0.1",
231 | "source": {
232 | "type": "git",
233 | "url": "https://github.com/php-fig/http-message.git",
234 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
235 | },
236 | "dist": {
237 | "type": "zip",
238 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
239 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
240 | "shasum": ""
241 | },
242 | "require": {
243 | "php": ">=5.3.0"
244 | },
245 | "type": "library",
246 | "extra": {
247 | "branch-alias": {
248 | "dev-master": "1.0.x-dev"
249 | }
250 | },
251 | "autoload": {
252 | "psr-4": {
253 | "Psr\\Http\\Message\\": "src/"
254 | }
255 | },
256 | "notification-url": "https://packagist.org/downloads/",
257 | "license": [
258 | "MIT"
259 | ],
260 | "authors": [
261 | {
262 | "name": "PHP-FIG",
263 | "homepage": "http://www.php-fig.org/"
264 | }
265 | ],
266 | "description": "Common interface for HTTP messages",
267 | "homepage": "https://github.com/php-fig/http-message",
268 | "keywords": [
269 | "http",
270 | "http-message",
271 | "psr",
272 | "psr-7",
273 | "request",
274 | "response"
275 | ],
276 | "support": {
277 | "source": "https://github.com/php-fig/http-message/tree/master"
278 | },
279 | "time": "2016-08-06T14:39:51+00:00"
280 | },
281 | {
282 | "name": "psr/http-server-handler",
283 | "version": "1.0.1",
284 | "source": {
285 | "type": "git",
286 | "url": "https://github.com/php-fig/http-server-handler.git",
287 | "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7"
288 | },
289 | "dist": {
290 | "type": "zip",
291 | "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
292 | "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
293 | "shasum": ""
294 | },
295 | "require": {
296 | "php": ">=7.0",
297 | "psr/http-message": "^1.0"
298 | },
299 | "type": "library",
300 | "extra": {
301 | "branch-alias": {
302 | "dev-master": "1.0.x-dev"
303 | }
304 | },
305 | "autoload": {
306 | "psr-4": {
307 | "Psr\\Http\\Server\\": "src/"
308 | }
309 | },
310 | "notification-url": "https://packagist.org/downloads/",
311 | "license": [
312 | "MIT"
313 | ],
314 | "authors": [
315 | {
316 | "name": "PHP-FIG",
317 | "homepage": "http://www.php-fig.org/"
318 | }
319 | ],
320 | "description": "Common interface for HTTP server-side request handler",
321 | "keywords": [
322 | "handler",
323 | "http",
324 | "http-interop",
325 | "psr",
326 | "psr-15",
327 | "psr-7",
328 | "request",
329 | "response",
330 | "server"
331 | ],
332 | "support": {
333 | "issues": "https://github.com/php-fig/http-server-handler/issues",
334 | "source": "https://github.com/php-fig/http-server-handler/tree/master"
335 | },
336 | "time": "2018-10-30T16:46:14+00:00"
337 | }
338 | ],
339 | "packages-dev": [
340 | {
341 | "name": "amphp/amp",
342 | "version": "v2.6.2",
343 | "source": {
344 | "type": "git",
345 | "url": "https://github.com/amphp/amp.git",
346 | "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb"
347 | },
348 | "dist": {
349 | "type": "zip",
350 | "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
351 | "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb",
352 | "shasum": ""
353 | },
354 | "require": {
355 | "php": ">=7.1"
356 | },
357 | "require-dev": {
358 | "amphp/php-cs-fixer-config": "dev-master",
359 | "amphp/phpunit-util": "^1",
360 | "ext-json": "*",
361 | "jetbrains/phpstorm-stubs": "^2019.3",
362 | "phpunit/phpunit": "^7 | ^8 | ^9",
363 | "psalm/phar": "^3.11@dev",
364 | "react/promise": "^2"
365 | },
366 | "type": "library",
367 | "extra": {
368 | "branch-alias": {
369 | "dev-master": "2.x-dev"
370 | }
371 | },
372 | "autoload": {
373 | "files": [
374 | "lib/functions.php",
375 | "lib/Internal/functions.php"
376 | ],
377 | "psr-4": {
378 | "Amp\\": "lib"
379 | }
380 | },
381 | "notification-url": "https://packagist.org/downloads/",
382 | "license": [
383 | "MIT"
384 | ],
385 | "authors": [
386 | {
387 | "name": "Daniel Lowrey",
388 | "email": "rdlowrey@php.net"
389 | },
390 | {
391 | "name": "Aaron Piotrowski",
392 | "email": "aaron@trowski.com"
393 | },
394 | {
395 | "name": "Bob Weinand",
396 | "email": "bobwei9@hotmail.com"
397 | },
398 | {
399 | "name": "Niklas Keller",
400 | "email": "me@kelunik.com"
401 | }
402 | ],
403 | "description": "A non-blocking concurrency framework for PHP applications.",
404 | "homepage": "https://amphp.org/amp",
405 | "keywords": [
406 | "async",
407 | "asynchronous",
408 | "awaitable",
409 | "concurrency",
410 | "event",
411 | "event-loop",
412 | "future",
413 | "non-blocking",
414 | "promise"
415 | ],
416 | "support": {
417 | "irc": "irc://irc.freenode.org/amphp",
418 | "issues": "https://github.com/amphp/amp/issues",
419 | "source": "https://github.com/amphp/amp/tree/v2.6.2"
420 | },
421 | "funding": [
422 | {
423 | "url": "https://github.com/amphp",
424 | "type": "github"
425 | }
426 | ],
427 | "time": "2022-02-20T17:52:18+00:00"
428 | },
429 | {
430 | "name": "amphp/byte-stream",
431 | "version": "v1.8.1",
432 | "source": {
433 | "type": "git",
434 | "url": "https://github.com/amphp/byte-stream.git",
435 | "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd"
436 | },
437 | "dist": {
438 | "type": "zip",
439 | "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd",
440 | "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd",
441 | "shasum": ""
442 | },
443 | "require": {
444 | "amphp/amp": "^2",
445 | "php": ">=7.1"
446 | },
447 | "require-dev": {
448 | "amphp/php-cs-fixer-config": "dev-master",
449 | "amphp/phpunit-util": "^1.4",
450 | "friendsofphp/php-cs-fixer": "^2.3",
451 | "jetbrains/phpstorm-stubs": "^2019.3",
452 | "phpunit/phpunit": "^6 || ^7 || ^8",
453 | "psalm/phar": "^3.11.4"
454 | },
455 | "type": "library",
456 | "extra": {
457 | "branch-alias": {
458 | "dev-master": "1.x-dev"
459 | }
460 | },
461 | "autoload": {
462 | "files": [
463 | "lib/functions.php"
464 | ],
465 | "psr-4": {
466 | "Amp\\ByteStream\\": "lib"
467 | }
468 | },
469 | "notification-url": "https://packagist.org/downloads/",
470 | "license": [
471 | "MIT"
472 | ],
473 | "authors": [
474 | {
475 | "name": "Aaron Piotrowski",
476 | "email": "aaron@trowski.com"
477 | },
478 | {
479 | "name": "Niklas Keller",
480 | "email": "me@kelunik.com"
481 | }
482 | ],
483 | "description": "A stream abstraction to make working with non-blocking I/O simple.",
484 | "homepage": "http://amphp.org/byte-stream",
485 | "keywords": [
486 | "amp",
487 | "amphp",
488 | "async",
489 | "io",
490 | "non-blocking",
491 | "stream"
492 | ],
493 | "support": {
494 | "irc": "irc://irc.freenode.org/amphp",
495 | "issues": "https://github.com/amphp/byte-stream/issues",
496 | "source": "https://github.com/amphp/byte-stream/tree/v1.8.1"
497 | },
498 | "funding": [
499 | {
500 | "url": "https://github.com/amphp",
501 | "type": "github"
502 | }
503 | ],
504 | "time": "2021-03-30T17:13:30+00:00"
505 | },
506 | {
507 | "name": "composer/package-versions-deprecated",
508 | "version": "1.11.99.5",
509 | "source": {
510 | "type": "git",
511 | "url": "https://github.com/composer/package-versions-deprecated.git",
512 | "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
513 | },
514 | "dist": {
515 | "type": "zip",
516 | "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
517 | "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
518 | "shasum": ""
519 | },
520 | "require": {
521 | "composer-plugin-api": "^1.1.0 || ^2.0",
522 | "php": "^7 || ^8"
523 | },
524 | "replace": {
525 | "ocramius/package-versions": "1.11.99"
526 | },
527 | "require-dev": {
528 | "composer/composer": "^1.9.3 || ^2.0@dev",
529 | "ext-zip": "^1.13",
530 | "phpunit/phpunit": "^6.5 || ^7"
531 | },
532 | "type": "composer-plugin",
533 | "extra": {
534 | "class": "PackageVersions\\Installer",
535 | "branch-alias": {
536 | "dev-master": "1.x-dev"
537 | }
538 | },
539 | "autoload": {
540 | "psr-4": {
541 | "PackageVersions\\": "src/PackageVersions"
542 | }
543 | },
544 | "notification-url": "https://packagist.org/downloads/",
545 | "license": [
546 | "MIT"
547 | ],
548 | "authors": [
549 | {
550 | "name": "Marco Pivetta",
551 | "email": "ocramius@gmail.com"
552 | },
553 | {
554 | "name": "Jordi Boggiano",
555 | "email": "j.boggiano@seld.be"
556 | }
557 | ],
558 | "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
559 | "support": {
560 | "issues": "https://github.com/composer/package-versions-deprecated/issues",
561 | "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
562 | },
563 | "funding": [
564 | {
565 | "url": "https://packagist.com",
566 | "type": "custom"
567 | },
568 | {
569 | "url": "https://github.com/composer",
570 | "type": "github"
571 | },
572 | {
573 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
574 | "type": "tidelift"
575 | }
576 | ],
577 | "time": "2022-01-17T14:14:24+00:00"
578 | },
579 | {
580 | "name": "composer/pcre",
581 | "version": "3.1.0",
582 | "source": {
583 | "type": "git",
584 | "url": "https://github.com/composer/pcre.git",
585 | "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
586 | },
587 | "dist": {
588 | "type": "zip",
589 | "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
590 | "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
591 | "shasum": ""
592 | },
593 | "require": {
594 | "php": "^7.4 || ^8.0"
595 | },
596 | "require-dev": {
597 | "phpstan/phpstan": "^1.3",
598 | "phpstan/phpstan-strict-rules": "^1.1",
599 | "symfony/phpunit-bridge": "^5"
600 | },
601 | "type": "library",
602 | "extra": {
603 | "branch-alias": {
604 | "dev-main": "3.x-dev"
605 | }
606 | },
607 | "autoload": {
608 | "psr-4": {
609 | "Composer\\Pcre\\": "src"
610 | }
611 | },
612 | "notification-url": "https://packagist.org/downloads/",
613 | "license": [
614 | "MIT"
615 | ],
616 | "authors": [
617 | {
618 | "name": "Jordi Boggiano",
619 | "email": "j.boggiano@seld.be",
620 | "homepage": "http://seld.be"
621 | }
622 | ],
623 | "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
624 | "keywords": [
625 | "PCRE",
626 | "preg",
627 | "regex",
628 | "regular expression"
629 | ],
630 | "support": {
631 | "issues": "https://github.com/composer/pcre/issues",
632 | "source": "https://github.com/composer/pcre/tree/3.1.0"
633 | },
634 | "funding": [
635 | {
636 | "url": "https://packagist.com",
637 | "type": "custom"
638 | },
639 | {
640 | "url": "https://github.com/composer",
641 | "type": "github"
642 | },
643 | {
644 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
645 | "type": "tidelift"
646 | }
647 | ],
648 | "time": "2022-11-17T09:50:14+00:00"
649 | },
650 | {
651 | "name": "composer/semver",
652 | "version": "3.3.2",
653 | "source": {
654 | "type": "git",
655 | "url": "https://github.com/composer/semver.git",
656 | "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
657 | },
658 | "dist": {
659 | "type": "zip",
660 | "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
661 | "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
662 | "shasum": ""
663 | },
664 | "require": {
665 | "php": "^5.3.2 || ^7.0 || ^8.0"
666 | },
667 | "require-dev": {
668 | "phpstan/phpstan": "^1.4",
669 | "symfony/phpunit-bridge": "^4.2 || ^5"
670 | },
671 | "type": "library",
672 | "extra": {
673 | "branch-alias": {
674 | "dev-main": "3.x-dev"
675 | }
676 | },
677 | "autoload": {
678 | "psr-4": {
679 | "Composer\\Semver\\": "src"
680 | }
681 | },
682 | "notification-url": "https://packagist.org/downloads/",
683 | "license": [
684 | "MIT"
685 | ],
686 | "authors": [
687 | {
688 | "name": "Nils Adermann",
689 | "email": "naderman@naderman.de",
690 | "homepage": "http://www.naderman.de"
691 | },
692 | {
693 | "name": "Jordi Boggiano",
694 | "email": "j.boggiano@seld.be",
695 | "homepage": "http://seld.be"
696 | },
697 | {
698 | "name": "Rob Bast",
699 | "email": "rob.bast@gmail.com",
700 | "homepage": "http://robbast.nl"
701 | }
702 | ],
703 | "description": "Semver library that offers utilities, version constraint parsing and validation.",
704 | "keywords": [
705 | "semantic",
706 | "semver",
707 | "validation",
708 | "versioning"
709 | ],
710 | "support": {
711 | "irc": "irc://irc.freenode.org/composer",
712 | "issues": "https://github.com/composer/semver/issues",
713 | "source": "https://github.com/composer/semver/tree/3.3.2"
714 | },
715 | "funding": [
716 | {
717 | "url": "https://packagist.com",
718 | "type": "custom"
719 | },
720 | {
721 | "url": "https://github.com/composer",
722 | "type": "github"
723 | },
724 | {
725 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
726 | "type": "tidelift"
727 | }
728 | ],
729 | "time": "2022-04-01T19:23:25+00:00"
730 | },
731 | {
732 | "name": "composer/xdebug-handler",
733 | "version": "3.0.3",
734 | "source": {
735 | "type": "git",
736 | "url": "https://github.com/composer/xdebug-handler.git",
737 | "reference": "ced299686f41dce890debac69273b47ffe98a40c"
738 | },
739 | "dist": {
740 | "type": "zip",
741 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
742 | "reference": "ced299686f41dce890debac69273b47ffe98a40c",
743 | "shasum": ""
744 | },
745 | "require": {
746 | "composer/pcre": "^1 || ^2 || ^3",
747 | "php": "^7.2.5 || ^8.0",
748 | "psr/log": "^1 || ^2 || ^3"
749 | },
750 | "require-dev": {
751 | "phpstan/phpstan": "^1.0",
752 | "phpstan/phpstan-strict-rules": "^1.1",
753 | "symfony/phpunit-bridge": "^6.0"
754 | },
755 | "type": "library",
756 | "autoload": {
757 | "psr-4": {
758 | "Composer\\XdebugHandler\\": "src"
759 | }
760 | },
761 | "notification-url": "https://packagist.org/downloads/",
762 | "license": [
763 | "MIT"
764 | ],
765 | "authors": [
766 | {
767 | "name": "John Stevenson",
768 | "email": "john-stevenson@blueyonder.co.uk"
769 | }
770 | ],
771 | "description": "Restarts a process without Xdebug.",
772 | "keywords": [
773 | "Xdebug",
774 | "performance"
775 | ],
776 | "support": {
777 | "irc": "irc://irc.freenode.org/composer",
778 | "issues": "https://github.com/composer/xdebug-handler/issues",
779 | "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
780 | },
781 | "funding": [
782 | {
783 | "url": "https://packagist.com",
784 | "type": "custom"
785 | },
786 | {
787 | "url": "https://github.com/composer",
788 | "type": "github"
789 | },
790 | {
791 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
792 | "type": "tidelift"
793 | }
794 | ],
795 | "time": "2022-02-25T21:32:43+00:00"
796 | },
797 | {
798 | "name": "dnoegel/php-xdg-base-dir",
799 | "version": "v0.1.1",
800 | "source": {
801 | "type": "git",
802 | "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
803 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
804 | },
805 | "dist": {
806 | "type": "zip",
807 | "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
808 | "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
809 | "shasum": ""
810 | },
811 | "require": {
812 | "php": ">=5.3.2"
813 | },
814 | "require-dev": {
815 | "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
816 | },
817 | "type": "library",
818 | "autoload": {
819 | "psr-4": {
820 | "XdgBaseDir\\": "src/"
821 | }
822 | },
823 | "notification-url": "https://packagist.org/downloads/",
824 | "license": [
825 | "MIT"
826 | ],
827 | "description": "implementation of xdg base directory specification for php",
828 | "support": {
829 | "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues",
830 | "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1"
831 | },
832 | "time": "2019-12-04T15:06:13+00:00"
833 | },
834 | {
835 | "name": "doctrine/annotations",
836 | "version": "1.14.2",
837 | "source": {
838 | "type": "git",
839 | "url": "https://github.com/doctrine/annotations.git",
840 | "reference": "ad785217c1e9555a7d6c6c8c9f406395a5e2882b"
841 | },
842 | "dist": {
843 | "type": "zip",
844 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/ad785217c1e9555a7d6c6c8c9f406395a5e2882b",
845 | "reference": "ad785217c1e9555a7d6c6c8c9f406395a5e2882b",
846 | "shasum": ""
847 | },
848 | "require": {
849 | "doctrine/lexer": "^1 || ^2",
850 | "ext-tokenizer": "*",
851 | "php": "^7.1 || ^8.0",
852 | "psr/cache": "^1 || ^2 || ^3"
853 | },
854 | "require-dev": {
855 | "doctrine/cache": "^1.11 || ^2.0",
856 | "doctrine/coding-standard": "^9 || ^10",
857 | "phpstan/phpstan": "~1.4.10 || ^1.8.0",
858 | "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
859 | "symfony/cache": "^4.4 || ^5.4 || ^6",
860 | "vimeo/psalm": "^4.10"
861 | },
862 | "suggest": {
863 | "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
864 | },
865 | "type": "library",
866 | "autoload": {
867 | "psr-4": {
868 | "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
869 | }
870 | },
871 | "notification-url": "https://packagist.org/downloads/",
872 | "license": [
873 | "MIT"
874 | ],
875 | "authors": [
876 | {
877 | "name": "Guilherme Blanco",
878 | "email": "guilhermeblanco@gmail.com"
879 | },
880 | {
881 | "name": "Roman Borschel",
882 | "email": "roman@code-factory.org"
883 | },
884 | {
885 | "name": "Benjamin Eberlei",
886 | "email": "kontakt@beberlei.de"
887 | },
888 | {
889 | "name": "Jonathan Wage",
890 | "email": "jonwage@gmail.com"
891 | },
892 | {
893 | "name": "Johannes Schmitt",
894 | "email": "schmittjoh@gmail.com"
895 | }
896 | ],
897 | "description": "Docblock Annotations Parser",
898 | "homepage": "https://www.doctrine-project.org/projects/annotations.html",
899 | "keywords": [
900 | "annotations",
901 | "docblock",
902 | "parser"
903 | ],
904 | "support": {
905 | "issues": "https://github.com/doctrine/annotations/issues",
906 | "source": "https://github.com/doctrine/annotations/tree/1.14.2"
907 | },
908 | "time": "2022-12-15T06:48:22+00:00"
909 | },
910 | {
911 | "name": "doctrine/deprecations",
912 | "version": "v1.0.0",
913 | "source": {
914 | "type": "git",
915 | "url": "https://github.com/doctrine/deprecations.git",
916 | "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
917 | },
918 | "dist": {
919 | "type": "zip",
920 | "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
921 | "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
922 | "shasum": ""
923 | },
924 | "require": {
925 | "php": "^7.1|^8.0"
926 | },
927 | "require-dev": {
928 | "doctrine/coding-standard": "^9",
929 | "phpunit/phpunit": "^7.5|^8.5|^9.5",
930 | "psr/log": "^1|^2|^3"
931 | },
932 | "suggest": {
933 | "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
934 | },
935 | "type": "library",
936 | "autoload": {
937 | "psr-4": {
938 | "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
939 | }
940 | },
941 | "notification-url": "https://packagist.org/downloads/",
942 | "license": [
943 | "MIT"
944 | ],
945 | "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
946 | "homepage": "https://www.doctrine-project.org/",
947 | "support": {
948 | "issues": "https://github.com/doctrine/deprecations/issues",
949 | "source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
950 | },
951 | "time": "2022-05-02T15:47:09+00:00"
952 | },
953 | {
954 | "name": "doctrine/instantiator",
955 | "version": "2.0.0",
956 | "source": {
957 | "type": "git",
958 | "url": "https://github.com/doctrine/instantiator.git",
959 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
960 | },
961 | "dist": {
962 | "type": "zip",
963 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
964 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
965 | "shasum": ""
966 | },
967 | "require": {
968 | "php": "^8.1"
969 | },
970 | "require-dev": {
971 | "doctrine/coding-standard": "^11",
972 | "ext-pdo": "*",
973 | "ext-phar": "*",
974 | "phpbench/phpbench": "^1.2",
975 | "phpstan/phpstan": "^1.9.4",
976 | "phpstan/phpstan-phpunit": "^1.3",
977 | "phpunit/phpunit": "^9.5.27",
978 | "vimeo/psalm": "^5.4"
979 | },
980 | "type": "library",
981 | "autoload": {
982 | "psr-4": {
983 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
984 | }
985 | },
986 | "notification-url": "https://packagist.org/downloads/",
987 | "license": [
988 | "MIT"
989 | ],
990 | "authors": [
991 | {
992 | "name": "Marco Pivetta",
993 | "email": "ocramius@gmail.com",
994 | "homepage": "https://ocramius.github.io/"
995 | }
996 | ],
997 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
998 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
999 | "keywords": [
1000 | "constructor",
1001 | "instantiate"
1002 | ],
1003 | "support": {
1004 | "issues": "https://github.com/doctrine/instantiator/issues",
1005 | "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
1006 | },
1007 | "funding": [
1008 | {
1009 | "url": "https://www.doctrine-project.org/sponsorship.html",
1010 | "type": "custom"
1011 | },
1012 | {
1013 | "url": "https://www.patreon.com/phpdoctrine",
1014 | "type": "patreon"
1015 | },
1016 | {
1017 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
1018 | "type": "tidelift"
1019 | }
1020 | ],
1021 | "time": "2022-12-30T00:23:10+00:00"
1022 | },
1023 | {
1024 | "name": "doctrine/lexer",
1025 | "version": "2.1.0",
1026 | "source": {
1027 | "type": "git",
1028 | "url": "https://github.com/doctrine/lexer.git",
1029 | "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
1030 | },
1031 | "dist": {
1032 | "type": "zip",
1033 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
1034 | "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
1035 | "shasum": ""
1036 | },
1037 | "require": {
1038 | "doctrine/deprecations": "^1.0",
1039 | "php": "^7.1 || ^8.0"
1040 | },
1041 | "require-dev": {
1042 | "doctrine/coding-standard": "^9 || ^10",
1043 | "phpstan/phpstan": "^1.3",
1044 | "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
1045 | "psalm/plugin-phpunit": "^0.18.3",
1046 | "vimeo/psalm": "^4.11 || ^5.0"
1047 | },
1048 | "type": "library",
1049 | "autoload": {
1050 | "psr-4": {
1051 | "Doctrine\\Common\\Lexer\\": "src"
1052 | }
1053 | },
1054 | "notification-url": "https://packagist.org/downloads/",
1055 | "license": [
1056 | "MIT"
1057 | ],
1058 | "authors": [
1059 | {
1060 | "name": "Guilherme Blanco",
1061 | "email": "guilhermeblanco@gmail.com"
1062 | },
1063 | {
1064 | "name": "Roman Borschel",
1065 | "email": "roman@code-factory.org"
1066 | },
1067 | {
1068 | "name": "Johannes Schmitt",
1069 | "email": "schmittjoh@gmail.com"
1070 | }
1071 | ],
1072 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
1073 | "homepage": "https://www.doctrine-project.org/projects/lexer.html",
1074 | "keywords": [
1075 | "annotations",
1076 | "docblock",
1077 | "lexer",
1078 | "parser",
1079 | "php"
1080 | ],
1081 | "support": {
1082 | "issues": "https://github.com/doctrine/lexer/issues",
1083 | "source": "https://github.com/doctrine/lexer/tree/2.1.0"
1084 | },
1085 | "funding": [
1086 | {
1087 | "url": "https://www.doctrine-project.org/sponsorship.html",
1088 | "type": "custom"
1089 | },
1090 | {
1091 | "url": "https://www.patreon.com/phpdoctrine",
1092 | "type": "patreon"
1093 | },
1094 | {
1095 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
1096 | "type": "tidelift"
1097 | }
1098 | ],
1099 | "time": "2022-12-14T08:49:07+00:00"
1100 | },
1101 | {
1102 | "name": "felixfbecker/advanced-json-rpc",
1103 | "version": "v3.2.1",
1104 | "source": {
1105 | "type": "git",
1106 | "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
1107 | "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
1108 | },
1109 | "dist": {
1110 | "type": "zip",
1111 | "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
1112 | "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
1113 | "shasum": ""
1114 | },
1115 | "require": {
1116 | "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
1117 | "php": "^7.1 || ^8.0",
1118 | "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
1119 | },
1120 | "require-dev": {
1121 | "phpunit/phpunit": "^7.0 || ^8.0"
1122 | },
1123 | "type": "library",
1124 | "autoload": {
1125 | "psr-4": {
1126 | "AdvancedJsonRpc\\": "lib/"
1127 | }
1128 | },
1129 | "notification-url": "https://packagist.org/downloads/",
1130 | "license": [
1131 | "ISC"
1132 | ],
1133 | "authors": [
1134 | {
1135 | "name": "Felix Becker",
1136 | "email": "felix.b@outlook.com"
1137 | }
1138 | ],
1139 | "description": "A more advanced JSONRPC implementation",
1140 | "support": {
1141 | "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
1142 | "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
1143 | },
1144 | "time": "2021-06-11T22:34:44+00:00"
1145 | },
1146 | {
1147 | "name": "felixfbecker/language-server-protocol",
1148 | "version": "v1.5.2",
1149 | "source": {
1150 | "type": "git",
1151 | "url": "https://github.com/felixfbecker/php-language-server-protocol.git",
1152 | "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
1153 | },
1154 | "dist": {
1155 | "type": "zip",
1156 | "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
1157 | "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
1158 | "shasum": ""
1159 | },
1160 | "require": {
1161 | "php": ">=7.1"
1162 | },
1163 | "require-dev": {
1164 | "phpstan/phpstan": "*",
1165 | "squizlabs/php_codesniffer": "^3.1",
1166 | "vimeo/psalm": "^4.0"
1167 | },
1168 | "type": "library",
1169 | "extra": {
1170 | "branch-alias": {
1171 | "dev-master": "1.x-dev"
1172 | }
1173 | },
1174 | "autoload": {
1175 | "psr-4": {
1176 | "LanguageServerProtocol\\": "src/"
1177 | }
1178 | },
1179 | "notification-url": "https://packagist.org/downloads/",
1180 | "license": [
1181 | "ISC"
1182 | ],
1183 | "authors": [
1184 | {
1185 | "name": "Felix Becker",
1186 | "email": "felix.b@outlook.com"
1187 | }
1188 | ],
1189 | "description": "PHP classes for the Language Server Protocol",
1190 | "keywords": [
1191 | "language",
1192 | "microsoft",
1193 | "php",
1194 | "server"
1195 | ],
1196 | "support": {
1197 | "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
1198 | "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
1199 | },
1200 | "time": "2022-03-02T22:36:06+00:00"
1201 | },
1202 | {
1203 | "name": "fidry/cpu-core-counter",
1204 | "version": "0.4.1",
1205 | "source": {
1206 | "type": "git",
1207 | "url": "https://github.com/theofidry/cpu-core-counter.git",
1208 | "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2"
1209 | },
1210 | "dist": {
1211 | "type": "zip",
1212 | "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/79261cc280aded96d098e1b0e0ba0c4881b432c2",
1213 | "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2",
1214 | "shasum": ""
1215 | },
1216 | "require": {
1217 | "php": "^7.2 || ^8.0"
1218 | },
1219 | "require-dev": {
1220 | "fidry/makefile": "^0.2.0",
1221 | "phpstan/extension-installer": "^1.2.0",
1222 | "phpstan/phpstan": "^1.9.2",
1223 | "phpstan/phpstan-deprecation-rules": "^1.0.0",
1224 | "phpstan/phpstan-phpunit": "^1.2.2",
1225 | "phpstan/phpstan-strict-rules": "^1.4.4",
1226 | "phpunit/phpunit": "^9.5.26 || ^8.5.31",
1227 | "theofidry/php-cs-fixer-config": "^1.0",
1228 | "webmozarts/strict-phpunit": "^7.5"
1229 | },
1230 | "type": "library",
1231 | "autoload": {
1232 | "psr-4": {
1233 | "Fidry\\CpuCoreCounter\\": "src/"
1234 | }
1235 | },
1236 | "notification-url": "https://packagist.org/downloads/",
1237 | "license": [
1238 | "MIT"
1239 | ],
1240 | "authors": [
1241 | {
1242 | "name": "Théo FIDRY",
1243 | "email": "theo.fidry@gmail.com"
1244 | }
1245 | ],
1246 | "description": "Tiny utility to get the number of CPU cores.",
1247 | "keywords": [
1248 | "CPU",
1249 | "core"
1250 | ],
1251 | "support": {
1252 | "issues": "https://github.com/theofidry/cpu-core-counter/issues",
1253 | "source": "https://github.com/theofidry/cpu-core-counter/tree/0.4.1"
1254 | },
1255 | "funding": [
1256 | {
1257 | "url": "https://github.com/theofidry",
1258 | "type": "github"
1259 | }
1260 | ],
1261 | "time": "2022-12-16T22:01:02+00:00"
1262 | },
1263 | {
1264 | "name": "friendsofphp/php-cs-fixer",
1265 | "version": "v3.13.2",
1266 | "source": {
1267 | "type": "git",
1268 | "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
1269 | "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496"
1270 | },
1271 | "dist": {
1272 | "type": "zip",
1273 | "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/3952f08a81bd3b1b15e11c3de0b6bf037faa8496",
1274 | "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496",
1275 | "shasum": ""
1276 | },
1277 | "require": {
1278 | "composer/semver": "^3.2",
1279 | "composer/xdebug-handler": "^3.0.3",
1280 | "doctrine/annotations": "^1.13",
1281 | "ext-json": "*",
1282 | "ext-tokenizer": "*",
1283 | "php": "^7.4 || ^8.0",
1284 | "sebastian/diff": "^4.0",
1285 | "symfony/console": "^5.4 || ^6.0",
1286 | "symfony/event-dispatcher": "^5.4 || ^6.0",
1287 | "symfony/filesystem": "^5.4 || ^6.0",
1288 | "symfony/finder": "^5.4 || ^6.0",
1289 | "symfony/options-resolver": "^5.4 || ^6.0",
1290 | "symfony/polyfill-mbstring": "^1.23",
1291 | "symfony/polyfill-php80": "^1.25",
1292 | "symfony/polyfill-php81": "^1.25",
1293 | "symfony/process": "^5.4 || ^6.0",
1294 | "symfony/stopwatch": "^5.4 || ^6.0"
1295 | },
1296 | "require-dev": {
1297 | "justinrainbow/json-schema": "^5.2",
1298 | "keradus/cli-executor": "^2.0",
1299 | "mikey179/vfsstream": "^1.6.10",
1300 | "php-coveralls/php-coveralls": "^2.5.2",
1301 | "php-cs-fixer/accessible-object": "^1.1",
1302 | "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
1303 | "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
1304 | "phpspec/prophecy": "^1.15",
1305 | "phpspec/prophecy-phpunit": "^2.0",
1306 | "phpunit/phpunit": "^9.5",
1307 | "phpunitgoodpractices/polyfill": "^1.6",
1308 | "phpunitgoodpractices/traits": "^1.9.2",
1309 | "symfony/phpunit-bridge": "^6.0",
1310 | "symfony/yaml": "^5.4 || ^6.0"
1311 | },
1312 | "suggest": {
1313 | "ext-dom": "For handling output formats in XML",
1314 | "ext-mbstring": "For handling non-UTF8 characters."
1315 | },
1316 | "bin": [
1317 | "php-cs-fixer"
1318 | ],
1319 | "type": "application",
1320 | "autoload": {
1321 | "psr-4": {
1322 | "PhpCsFixer\\": "src/"
1323 | }
1324 | },
1325 | "notification-url": "https://packagist.org/downloads/",
1326 | "license": [
1327 | "MIT"
1328 | ],
1329 | "authors": [
1330 | {
1331 | "name": "Fabien Potencier",
1332 | "email": "fabien@symfony.com"
1333 | },
1334 | {
1335 | "name": "Dariusz Rumiński",
1336 | "email": "dariusz.ruminski@gmail.com"
1337 | }
1338 | ],
1339 | "description": "A tool to automatically fix PHP code style",
1340 | "support": {
1341 | "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
1342 | "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.13.2"
1343 | },
1344 | "funding": [
1345 | {
1346 | "url": "https://github.com/keradus",
1347 | "type": "github"
1348 | }
1349 | ],
1350 | "time": "2023-01-02T23:53:50+00:00"
1351 | },
1352 | {
1353 | "name": "myclabs/deep-copy",
1354 | "version": "1.11.0",
1355 | "source": {
1356 | "type": "git",
1357 | "url": "https://github.com/myclabs/DeepCopy.git",
1358 | "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
1359 | },
1360 | "dist": {
1361 | "type": "zip",
1362 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
1363 | "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
1364 | "shasum": ""
1365 | },
1366 | "require": {
1367 | "php": "^7.1 || ^8.0"
1368 | },
1369 | "conflict": {
1370 | "doctrine/collections": "<1.6.8",
1371 | "doctrine/common": "<2.13.3 || >=3,<3.2.2"
1372 | },
1373 | "require-dev": {
1374 | "doctrine/collections": "^1.6.8",
1375 | "doctrine/common": "^2.13.3 || ^3.2.2",
1376 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
1377 | },
1378 | "type": "library",
1379 | "autoload": {
1380 | "files": [
1381 | "src/DeepCopy/deep_copy.php"
1382 | ],
1383 | "psr-4": {
1384 | "DeepCopy\\": "src/DeepCopy/"
1385 | }
1386 | },
1387 | "notification-url": "https://packagist.org/downloads/",
1388 | "license": [
1389 | "MIT"
1390 | ],
1391 | "description": "Create deep copies (clones) of your objects",
1392 | "keywords": [
1393 | "clone",
1394 | "copy",
1395 | "duplicate",
1396 | "object",
1397 | "object graph"
1398 | ],
1399 | "support": {
1400 | "issues": "https://github.com/myclabs/DeepCopy/issues",
1401 | "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
1402 | },
1403 | "funding": [
1404 | {
1405 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
1406 | "type": "tidelift"
1407 | }
1408 | ],
1409 | "time": "2022-03-03T13:19:32+00:00"
1410 | },
1411 | {
1412 | "name": "netresearch/jsonmapper",
1413 | "version": "v4.1.0",
1414 | "source": {
1415 | "type": "git",
1416 | "url": "https://github.com/cweiske/jsonmapper.git",
1417 | "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f"
1418 | },
1419 | "dist": {
1420 | "type": "zip",
1421 | "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/cfa81ea1d35294d64adb9c68aa4cb9e92400e53f",
1422 | "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f",
1423 | "shasum": ""
1424 | },
1425 | "require": {
1426 | "ext-json": "*",
1427 | "ext-pcre": "*",
1428 | "ext-reflection": "*",
1429 | "ext-spl": "*",
1430 | "php": ">=7.1"
1431 | },
1432 | "require-dev": {
1433 | "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
1434 | "squizlabs/php_codesniffer": "~3.5"
1435 | },
1436 | "type": "library",
1437 | "autoload": {
1438 | "psr-0": {
1439 | "JsonMapper": "src/"
1440 | }
1441 | },
1442 | "notification-url": "https://packagist.org/downloads/",
1443 | "license": [
1444 | "OSL-3.0"
1445 | ],
1446 | "authors": [
1447 | {
1448 | "name": "Christian Weiske",
1449 | "email": "cweiske@cweiske.de",
1450 | "homepage": "http://github.com/cweiske/jsonmapper/",
1451 | "role": "Developer"
1452 | }
1453 | ],
1454 | "description": "Map nested JSON structures onto PHP classes",
1455 | "support": {
1456 | "email": "cweiske@cweiske.de",
1457 | "issues": "https://github.com/cweiske/jsonmapper/issues",
1458 | "source": "https://github.com/cweiske/jsonmapper/tree/v4.1.0"
1459 | },
1460 | "time": "2022-12-08T20:46:14+00:00"
1461 | },
1462 | {
1463 | "name": "nikic/php-parser",
1464 | "version": "v4.15.3",
1465 | "source": {
1466 | "type": "git",
1467 | "url": "https://github.com/nikic/PHP-Parser.git",
1468 | "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
1469 | },
1470 | "dist": {
1471 | "type": "zip",
1472 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
1473 | "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
1474 | "shasum": ""
1475 | },
1476 | "require": {
1477 | "ext-tokenizer": "*",
1478 | "php": ">=7.0"
1479 | },
1480 | "require-dev": {
1481 | "ircmaxell/php-yacc": "^0.0.7",
1482 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
1483 | },
1484 | "bin": [
1485 | "bin/php-parse"
1486 | ],
1487 | "type": "library",
1488 | "extra": {
1489 | "branch-alias": {
1490 | "dev-master": "4.9-dev"
1491 | }
1492 | },
1493 | "autoload": {
1494 | "psr-4": {
1495 | "PhpParser\\": "lib/PhpParser"
1496 | }
1497 | },
1498 | "notification-url": "https://packagist.org/downloads/",
1499 | "license": [
1500 | "BSD-3-Clause"
1501 | ],
1502 | "authors": [
1503 | {
1504 | "name": "Nikita Popov"
1505 | }
1506 | ],
1507 | "description": "A PHP parser written in PHP",
1508 | "keywords": [
1509 | "parser",
1510 | "php"
1511 | ],
1512 | "support": {
1513 | "issues": "https://github.com/nikic/PHP-Parser/issues",
1514 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
1515 | },
1516 | "time": "2023-01-16T22:05:37+00:00"
1517 | },
1518 | {
1519 | "name": "phar-io/manifest",
1520 | "version": "2.0.3",
1521 | "source": {
1522 | "type": "git",
1523 | "url": "https://github.com/phar-io/manifest.git",
1524 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
1525 | },
1526 | "dist": {
1527 | "type": "zip",
1528 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
1529 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
1530 | "shasum": ""
1531 | },
1532 | "require": {
1533 | "ext-dom": "*",
1534 | "ext-phar": "*",
1535 | "ext-xmlwriter": "*",
1536 | "phar-io/version": "^3.0.1",
1537 | "php": "^7.2 || ^8.0"
1538 | },
1539 | "type": "library",
1540 | "extra": {
1541 | "branch-alias": {
1542 | "dev-master": "2.0.x-dev"
1543 | }
1544 | },
1545 | "autoload": {
1546 | "classmap": [
1547 | "src/"
1548 | ]
1549 | },
1550 | "notification-url": "https://packagist.org/downloads/",
1551 | "license": [
1552 | "BSD-3-Clause"
1553 | ],
1554 | "authors": [
1555 | {
1556 | "name": "Arne Blankerts",
1557 | "email": "arne@blankerts.de",
1558 | "role": "Developer"
1559 | },
1560 | {
1561 | "name": "Sebastian Heuer",
1562 | "email": "sebastian@phpeople.de",
1563 | "role": "Developer"
1564 | },
1565 | {
1566 | "name": "Sebastian Bergmann",
1567 | "email": "sebastian@phpunit.de",
1568 | "role": "Developer"
1569 | }
1570 | ],
1571 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
1572 | "support": {
1573 | "issues": "https://github.com/phar-io/manifest/issues",
1574 | "source": "https://github.com/phar-io/manifest/tree/2.0.3"
1575 | },
1576 | "time": "2021-07-20T11:28:43+00:00"
1577 | },
1578 | {
1579 | "name": "phar-io/version",
1580 | "version": "3.2.1",
1581 | "source": {
1582 | "type": "git",
1583 | "url": "https://github.com/phar-io/version.git",
1584 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
1585 | },
1586 | "dist": {
1587 | "type": "zip",
1588 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1589 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1590 | "shasum": ""
1591 | },
1592 | "require": {
1593 | "php": "^7.2 || ^8.0"
1594 | },
1595 | "type": "library",
1596 | "autoload": {
1597 | "classmap": [
1598 | "src/"
1599 | ]
1600 | },
1601 | "notification-url": "https://packagist.org/downloads/",
1602 | "license": [
1603 | "BSD-3-Clause"
1604 | ],
1605 | "authors": [
1606 | {
1607 | "name": "Arne Blankerts",
1608 | "email": "arne@blankerts.de",
1609 | "role": "Developer"
1610 | },
1611 | {
1612 | "name": "Sebastian Heuer",
1613 | "email": "sebastian@phpeople.de",
1614 | "role": "Developer"
1615 | },
1616 | {
1617 | "name": "Sebastian Bergmann",
1618 | "email": "sebastian@phpunit.de",
1619 | "role": "Developer"
1620 | }
1621 | ],
1622 | "description": "Library for handling version information and constraints",
1623 | "support": {
1624 | "issues": "https://github.com/phar-io/version/issues",
1625 | "source": "https://github.com/phar-io/version/tree/3.2.1"
1626 | },
1627 | "time": "2022-02-21T01:04:05+00:00"
1628 | },
1629 | {
1630 | "name": "phpdocumentor/reflection-common",
1631 | "version": "2.2.0",
1632 | "source": {
1633 | "type": "git",
1634 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
1635 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
1636 | },
1637 | "dist": {
1638 | "type": "zip",
1639 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
1640 | "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
1641 | "shasum": ""
1642 | },
1643 | "require": {
1644 | "php": "^7.2 || ^8.0"
1645 | },
1646 | "type": "library",
1647 | "extra": {
1648 | "branch-alias": {
1649 | "dev-2.x": "2.x-dev"
1650 | }
1651 | },
1652 | "autoload": {
1653 | "psr-4": {
1654 | "phpDocumentor\\Reflection\\": "src/"
1655 | }
1656 | },
1657 | "notification-url": "https://packagist.org/downloads/",
1658 | "license": [
1659 | "MIT"
1660 | ],
1661 | "authors": [
1662 | {
1663 | "name": "Jaap van Otterdijk",
1664 | "email": "opensource@ijaap.nl"
1665 | }
1666 | ],
1667 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
1668 | "homepage": "http://www.phpdoc.org",
1669 | "keywords": [
1670 | "FQSEN",
1671 | "phpDocumentor",
1672 | "phpdoc",
1673 | "reflection",
1674 | "static analysis"
1675 | ],
1676 | "support": {
1677 | "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
1678 | "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
1679 | },
1680 | "time": "2020-06-27T09:03:43+00:00"
1681 | },
1682 | {
1683 | "name": "phpdocumentor/reflection-docblock",
1684 | "version": "5.3.0",
1685 | "source": {
1686 | "type": "git",
1687 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1688 | "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
1689 | },
1690 | "dist": {
1691 | "type": "zip",
1692 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
1693 | "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
1694 | "shasum": ""
1695 | },
1696 | "require": {
1697 | "ext-filter": "*",
1698 | "php": "^7.2 || ^8.0",
1699 | "phpdocumentor/reflection-common": "^2.2",
1700 | "phpdocumentor/type-resolver": "^1.3",
1701 | "webmozart/assert": "^1.9.1"
1702 | },
1703 | "require-dev": {
1704 | "mockery/mockery": "~1.3.2",
1705 | "psalm/phar": "^4.8"
1706 | },
1707 | "type": "library",
1708 | "extra": {
1709 | "branch-alias": {
1710 | "dev-master": "5.x-dev"
1711 | }
1712 | },
1713 | "autoload": {
1714 | "psr-4": {
1715 | "phpDocumentor\\Reflection\\": "src"
1716 | }
1717 | },
1718 | "notification-url": "https://packagist.org/downloads/",
1719 | "license": [
1720 | "MIT"
1721 | ],
1722 | "authors": [
1723 | {
1724 | "name": "Mike van Riel",
1725 | "email": "me@mikevanriel.com"
1726 | },
1727 | {
1728 | "name": "Jaap van Otterdijk",
1729 | "email": "account@ijaap.nl"
1730 | }
1731 | ],
1732 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1733 | "support": {
1734 | "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
1735 | "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
1736 | },
1737 | "time": "2021-10-19T17:43:47+00:00"
1738 | },
1739 | {
1740 | "name": "phpdocumentor/type-resolver",
1741 | "version": "1.6.2",
1742 | "source": {
1743 | "type": "git",
1744 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
1745 | "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d"
1746 | },
1747 | "dist": {
1748 | "type": "zip",
1749 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
1750 | "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d",
1751 | "shasum": ""
1752 | },
1753 | "require": {
1754 | "php": "^7.4 || ^8.0",
1755 | "phpdocumentor/reflection-common": "^2.0"
1756 | },
1757 | "require-dev": {
1758 | "ext-tokenizer": "*",
1759 | "phpstan/extension-installer": "^1.1",
1760 | "phpstan/phpstan": "^1.8",
1761 | "phpstan/phpstan-phpunit": "^1.1",
1762 | "phpunit/phpunit": "^9.5",
1763 | "rector/rector": "^0.13.9",
1764 | "vimeo/psalm": "^4.25"
1765 | },
1766 | "type": "library",
1767 | "extra": {
1768 | "branch-alias": {
1769 | "dev-1.x": "1.x-dev"
1770 | }
1771 | },
1772 | "autoload": {
1773 | "psr-4": {
1774 | "phpDocumentor\\Reflection\\": "src"
1775 | }
1776 | },
1777 | "notification-url": "https://packagist.org/downloads/",
1778 | "license": [
1779 | "MIT"
1780 | ],
1781 | "authors": [
1782 | {
1783 | "name": "Mike van Riel",
1784 | "email": "me@mikevanriel.com"
1785 | }
1786 | ],
1787 | "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
1788 | "support": {
1789 | "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
1790 | "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2"
1791 | },
1792 | "time": "2022-10-14T12:47:21+00:00"
1793 | },
1794 | {
1795 | "name": "phpunit/php-code-coverage",
1796 | "version": "9.2.24",
1797 | "source": {
1798 | "type": "git",
1799 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1800 | "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed"
1801 | },
1802 | "dist": {
1803 | "type": "zip",
1804 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed",
1805 | "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed",
1806 | "shasum": ""
1807 | },
1808 | "require": {
1809 | "ext-dom": "*",
1810 | "ext-libxml": "*",
1811 | "ext-xmlwriter": "*",
1812 | "nikic/php-parser": "^4.14",
1813 | "php": ">=7.3",
1814 | "phpunit/php-file-iterator": "^3.0.3",
1815 | "phpunit/php-text-template": "^2.0.2",
1816 | "sebastian/code-unit-reverse-lookup": "^2.0.2",
1817 | "sebastian/complexity": "^2.0",
1818 | "sebastian/environment": "^5.1.2",
1819 | "sebastian/lines-of-code": "^1.0.3",
1820 | "sebastian/version": "^3.0.1",
1821 | "theseer/tokenizer": "^1.2.0"
1822 | },
1823 | "require-dev": {
1824 | "phpunit/phpunit": "^9.3"
1825 | },
1826 | "suggest": {
1827 | "ext-pcov": "*",
1828 | "ext-xdebug": "*"
1829 | },
1830 | "type": "library",
1831 | "extra": {
1832 | "branch-alias": {
1833 | "dev-master": "9.2-dev"
1834 | }
1835 | },
1836 | "autoload": {
1837 | "classmap": [
1838 | "src/"
1839 | ]
1840 | },
1841 | "notification-url": "https://packagist.org/downloads/",
1842 | "license": [
1843 | "BSD-3-Clause"
1844 | ],
1845 | "authors": [
1846 | {
1847 | "name": "Sebastian Bergmann",
1848 | "email": "sebastian@phpunit.de",
1849 | "role": "lead"
1850 | }
1851 | ],
1852 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1853 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1854 | "keywords": [
1855 | "coverage",
1856 | "testing",
1857 | "xunit"
1858 | ],
1859 | "support": {
1860 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
1861 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24"
1862 | },
1863 | "funding": [
1864 | {
1865 | "url": "https://github.com/sebastianbergmann",
1866 | "type": "github"
1867 | }
1868 | ],
1869 | "time": "2023-01-26T08:26:55+00:00"
1870 | },
1871 | {
1872 | "name": "phpunit/php-file-iterator",
1873 | "version": "3.0.6",
1874 | "source": {
1875 | "type": "git",
1876 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1877 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
1878 | },
1879 | "dist": {
1880 | "type": "zip",
1881 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
1882 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
1883 | "shasum": ""
1884 | },
1885 | "require": {
1886 | "php": ">=7.3"
1887 | },
1888 | "require-dev": {
1889 | "phpunit/phpunit": "^9.3"
1890 | },
1891 | "type": "library",
1892 | "extra": {
1893 | "branch-alias": {
1894 | "dev-master": "3.0-dev"
1895 | }
1896 | },
1897 | "autoload": {
1898 | "classmap": [
1899 | "src/"
1900 | ]
1901 | },
1902 | "notification-url": "https://packagist.org/downloads/",
1903 | "license": [
1904 | "BSD-3-Clause"
1905 | ],
1906 | "authors": [
1907 | {
1908 | "name": "Sebastian Bergmann",
1909 | "email": "sebastian@phpunit.de",
1910 | "role": "lead"
1911 | }
1912 | ],
1913 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1914 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1915 | "keywords": [
1916 | "filesystem",
1917 | "iterator"
1918 | ],
1919 | "support": {
1920 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
1921 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
1922 | },
1923 | "funding": [
1924 | {
1925 | "url": "https://github.com/sebastianbergmann",
1926 | "type": "github"
1927 | }
1928 | ],
1929 | "time": "2021-12-02T12:48:52+00:00"
1930 | },
1931 | {
1932 | "name": "phpunit/php-invoker",
1933 | "version": "3.1.1",
1934 | "source": {
1935 | "type": "git",
1936 | "url": "https://github.com/sebastianbergmann/php-invoker.git",
1937 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
1938 | },
1939 | "dist": {
1940 | "type": "zip",
1941 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
1942 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
1943 | "shasum": ""
1944 | },
1945 | "require": {
1946 | "php": ">=7.3"
1947 | },
1948 | "require-dev": {
1949 | "ext-pcntl": "*",
1950 | "phpunit/phpunit": "^9.3"
1951 | },
1952 | "suggest": {
1953 | "ext-pcntl": "*"
1954 | },
1955 | "type": "library",
1956 | "extra": {
1957 | "branch-alias": {
1958 | "dev-master": "3.1-dev"
1959 | }
1960 | },
1961 | "autoload": {
1962 | "classmap": [
1963 | "src/"
1964 | ]
1965 | },
1966 | "notification-url": "https://packagist.org/downloads/",
1967 | "license": [
1968 | "BSD-3-Clause"
1969 | ],
1970 | "authors": [
1971 | {
1972 | "name": "Sebastian Bergmann",
1973 | "email": "sebastian@phpunit.de",
1974 | "role": "lead"
1975 | }
1976 | ],
1977 | "description": "Invoke callables with a timeout",
1978 | "homepage": "https://github.com/sebastianbergmann/php-invoker/",
1979 | "keywords": [
1980 | "process"
1981 | ],
1982 | "support": {
1983 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
1984 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
1985 | },
1986 | "funding": [
1987 | {
1988 | "url": "https://github.com/sebastianbergmann",
1989 | "type": "github"
1990 | }
1991 | ],
1992 | "time": "2020-09-28T05:58:55+00:00"
1993 | },
1994 | {
1995 | "name": "phpunit/php-text-template",
1996 | "version": "2.0.4",
1997 | "source": {
1998 | "type": "git",
1999 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
2000 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
2001 | },
2002 | "dist": {
2003 | "type": "zip",
2004 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
2005 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
2006 | "shasum": ""
2007 | },
2008 | "require": {
2009 | "php": ">=7.3"
2010 | },
2011 | "require-dev": {
2012 | "phpunit/phpunit": "^9.3"
2013 | },
2014 | "type": "library",
2015 | "extra": {
2016 | "branch-alias": {
2017 | "dev-master": "2.0-dev"
2018 | }
2019 | },
2020 | "autoload": {
2021 | "classmap": [
2022 | "src/"
2023 | ]
2024 | },
2025 | "notification-url": "https://packagist.org/downloads/",
2026 | "license": [
2027 | "BSD-3-Clause"
2028 | ],
2029 | "authors": [
2030 | {
2031 | "name": "Sebastian Bergmann",
2032 | "email": "sebastian@phpunit.de",
2033 | "role": "lead"
2034 | }
2035 | ],
2036 | "description": "Simple template engine.",
2037 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
2038 | "keywords": [
2039 | "template"
2040 | ],
2041 | "support": {
2042 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
2043 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
2044 | },
2045 | "funding": [
2046 | {
2047 | "url": "https://github.com/sebastianbergmann",
2048 | "type": "github"
2049 | }
2050 | ],
2051 | "time": "2020-10-26T05:33:50+00:00"
2052 | },
2053 | {
2054 | "name": "phpunit/php-timer",
2055 | "version": "5.0.3",
2056 | "source": {
2057 | "type": "git",
2058 | "url": "https://github.com/sebastianbergmann/php-timer.git",
2059 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
2060 | },
2061 | "dist": {
2062 | "type": "zip",
2063 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
2064 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
2065 | "shasum": ""
2066 | },
2067 | "require": {
2068 | "php": ">=7.3"
2069 | },
2070 | "require-dev": {
2071 | "phpunit/phpunit": "^9.3"
2072 | },
2073 | "type": "library",
2074 | "extra": {
2075 | "branch-alias": {
2076 | "dev-master": "5.0-dev"
2077 | }
2078 | },
2079 | "autoload": {
2080 | "classmap": [
2081 | "src/"
2082 | ]
2083 | },
2084 | "notification-url": "https://packagist.org/downloads/",
2085 | "license": [
2086 | "BSD-3-Clause"
2087 | ],
2088 | "authors": [
2089 | {
2090 | "name": "Sebastian Bergmann",
2091 | "email": "sebastian@phpunit.de",
2092 | "role": "lead"
2093 | }
2094 | ],
2095 | "description": "Utility class for timing",
2096 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
2097 | "keywords": [
2098 | "timer"
2099 | ],
2100 | "support": {
2101 | "issues": "https://github.com/sebastianbergmann/php-timer/issues",
2102 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
2103 | },
2104 | "funding": [
2105 | {
2106 | "url": "https://github.com/sebastianbergmann",
2107 | "type": "github"
2108 | }
2109 | ],
2110 | "time": "2020-10-26T13:16:10+00:00"
2111 | },
2112 | {
2113 | "name": "phpunit/phpunit",
2114 | "version": "9.5.28",
2115 | "source": {
2116 | "type": "git",
2117 | "url": "https://github.com/sebastianbergmann/phpunit.git",
2118 | "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e"
2119 | },
2120 | "dist": {
2121 | "type": "zip",
2122 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/954ca3113a03bf780d22f07bf055d883ee04b65e",
2123 | "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e",
2124 | "shasum": ""
2125 | },
2126 | "require": {
2127 | "doctrine/instantiator": "^1.3.1 || ^2",
2128 | "ext-dom": "*",
2129 | "ext-json": "*",
2130 | "ext-libxml": "*",
2131 | "ext-mbstring": "*",
2132 | "ext-xml": "*",
2133 | "ext-xmlwriter": "*",
2134 | "myclabs/deep-copy": "^1.10.1",
2135 | "phar-io/manifest": "^2.0.3",
2136 | "phar-io/version": "^3.0.2",
2137 | "php": ">=7.3",
2138 | "phpunit/php-code-coverage": "^9.2.13",
2139 | "phpunit/php-file-iterator": "^3.0.5",
2140 | "phpunit/php-invoker": "^3.1.1",
2141 | "phpunit/php-text-template": "^2.0.3",
2142 | "phpunit/php-timer": "^5.0.2",
2143 | "sebastian/cli-parser": "^1.0.1",
2144 | "sebastian/code-unit": "^1.0.6",
2145 | "sebastian/comparator": "^4.0.8",
2146 | "sebastian/diff": "^4.0.3",
2147 | "sebastian/environment": "^5.1.3",
2148 | "sebastian/exporter": "^4.0.5",
2149 | "sebastian/global-state": "^5.0.1",
2150 | "sebastian/object-enumerator": "^4.0.3",
2151 | "sebastian/resource-operations": "^3.0.3",
2152 | "sebastian/type": "^3.2",
2153 | "sebastian/version": "^3.0.2"
2154 | },
2155 | "suggest": {
2156 | "ext-soap": "*",
2157 | "ext-xdebug": "*"
2158 | },
2159 | "bin": [
2160 | "phpunit"
2161 | ],
2162 | "type": "library",
2163 | "extra": {
2164 | "branch-alias": {
2165 | "dev-master": "9.5-dev"
2166 | }
2167 | },
2168 | "autoload": {
2169 | "files": [
2170 | "src/Framework/Assert/Functions.php"
2171 | ],
2172 | "classmap": [
2173 | "src/"
2174 | ]
2175 | },
2176 | "notification-url": "https://packagist.org/downloads/",
2177 | "license": [
2178 | "BSD-3-Clause"
2179 | ],
2180 | "authors": [
2181 | {
2182 | "name": "Sebastian Bergmann",
2183 | "email": "sebastian@phpunit.de",
2184 | "role": "lead"
2185 | }
2186 | ],
2187 | "description": "The PHP Unit Testing framework.",
2188 | "homepage": "https://phpunit.de/",
2189 | "keywords": [
2190 | "phpunit",
2191 | "testing",
2192 | "xunit"
2193 | ],
2194 | "support": {
2195 | "issues": "https://github.com/sebastianbergmann/phpunit/issues",
2196 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.28"
2197 | },
2198 | "funding": [
2199 | {
2200 | "url": "https://phpunit.de/sponsors.html",
2201 | "type": "custom"
2202 | },
2203 | {
2204 | "url": "https://github.com/sebastianbergmann",
2205 | "type": "github"
2206 | },
2207 | {
2208 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
2209 | "type": "tidelift"
2210 | }
2211 | ],
2212 | "time": "2023-01-14T12:32:24+00:00"
2213 | },
2214 | {
2215 | "name": "psalm/plugin-phpunit",
2216 | "version": "0.18.4",
2217 | "source": {
2218 | "type": "git",
2219 | "url": "https://github.com/psalm/psalm-plugin-phpunit.git",
2220 | "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc"
2221 | },
2222 | "dist": {
2223 | "type": "zip",
2224 | "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc",
2225 | "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc",
2226 | "shasum": ""
2227 | },
2228 | "require": {
2229 | "composer/package-versions-deprecated": "^1.10",
2230 | "composer/semver": "^1.4 || ^2.0 || ^3.0",
2231 | "ext-simplexml": "*",
2232 | "php": "^7.1 || ^8.0",
2233 | "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0"
2234 | },
2235 | "conflict": {
2236 | "phpunit/phpunit": "<7.5"
2237 | },
2238 | "require-dev": {
2239 | "codeception/codeception": "^4.0.3",
2240 | "php": "^7.3 || ^8.0",
2241 | "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0",
2242 | "squizlabs/php_codesniffer": "^3.3.1",
2243 | "weirdan/codeception-psalm-module": "^0.11.0",
2244 | "weirdan/prophecy-shim": "^1.0 || ^2.0"
2245 | },
2246 | "type": "psalm-plugin",
2247 | "extra": {
2248 | "psalm": {
2249 | "pluginClass": "Psalm\\PhpUnitPlugin\\Plugin"
2250 | }
2251 | },
2252 | "autoload": {
2253 | "psr-4": {
2254 | "Psalm\\PhpUnitPlugin\\": "src"
2255 | }
2256 | },
2257 | "notification-url": "https://packagist.org/downloads/",
2258 | "license": [
2259 | "MIT"
2260 | ],
2261 | "authors": [
2262 | {
2263 | "name": "Matt Brown",
2264 | "email": "github@muglug.com"
2265 | }
2266 | ],
2267 | "description": "Psalm plugin for PHPUnit",
2268 | "support": {
2269 | "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues",
2270 | "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4"
2271 | },
2272 | "time": "2022-12-03T07:47:07+00:00"
2273 | },
2274 | {
2275 | "name": "psr/cache",
2276 | "version": "3.0.0",
2277 | "source": {
2278 | "type": "git",
2279 | "url": "https://github.com/php-fig/cache.git",
2280 | "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
2281 | },
2282 | "dist": {
2283 | "type": "zip",
2284 | "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
2285 | "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
2286 | "shasum": ""
2287 | },
2288 | "require": {
2289 | "php": ">=8.0.0"
2290 | },
2291 | "type": "library",
2292 | "extra": {
2293 | "branch-alias": {
2294 | "dev-master": "1.0.x-dev"
2295 | }
2296 | },
2297 | "autoload": {
2298 | "psr-4": {
2299 | "Psr\\Cache\\": "src/"
2300 | }
2301 | },
2302 | "notification-url": "https://packagist.org/downloads/",
2303 | "license": [
2304 | "MIT"
2305 | ],
2306 | "authors": [
2307 | {
2308 | "name": "PHP-FIG",
2309 | "homepage": "https://www.php-fig.org/"
2310 | }
2311 | ],
2312 | "description": "Common interface for caching libraries",
2313 | "keywords": [
2314 | "cache",
2315 | "psr",
2316 | "psr-6"
2317 | ],
2318 | "support": {
2319 | "source": "https://github.com/php-fig/cache/tree/3.0.0"
2320 | },
2321 | "time": "2021-02-03T23:26:27+00:00"
2322 | },
2323 | {
2324 | "name": "psr/container",
2325 | "version": "2.0.2",
2326 | "source": {
2327 | "type": "git",
2328 | "url": "https://github.com/php-fig/container.git",
2329 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
2330 | },
2331 | "dist": {
2332 | "type": "zip",
2333 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
2334 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
2335 | "shasum": ""
2336 | },
2337 | "require": {
2338 | "php": ">=7.4.0"
2339 | },
2340 | "type": "library",
2341 | "extra": {
2342 | "branch-alias": {
2343 | "dev-master": "2.0.x-dev"
2344 | }
2345 | },
2346 | "autoload": {
2347 | "psr-4": {
2348 | "Psr\\Container\\": "src/"
2349 | }
2350 | },
2351 | "notification-url": "https://packagist.org/downloads/",
2352 | "license": [
2353 | "MIT"
2354 | ],
2355 | "authors": [
2356 | {
2357 | "name": "PHP-FIG",
2358 | "homepage": "https://www.php-fig.org/"
2359 | }
2360 | ],
2361 | "description": "Common Container Interface (PHP FIG PSR-11)",
2362 | "homepage": "https://github.com/php-fig/container",
2363 | "keywords": [
2364 | "PSR-11",
2365 | "container",
2366 | "container-interface",
2367 | "container-interop",
2368 | "psr"
2369 | ],
2370 | "support": {
2371 | "issues": "https://github.com/php-fig/container/issues",
2372 | "source": "https://github.com/php-fig/container/tree/2.0.2"
2373 | },
2374 | "time": "2021-11-05T16:47:00+00:00"
2375 | },
2376 | {
2377 | "name": "psr/event-dispatcher",
2378 | "version": "1.0.0",
2379 | "source": {
2380 | "type": "git",
2381 | "url": "https://github.com/php-fig/event-dispatcher.git",
2382 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
2383 | },
2384 | "dist": {
2385 | "type": "zip",
2386 | "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
2387 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
2388 | "shasum": ""
2389 | },
2390 | "require": {
2391 | "php": ">=7.2.0"
2392 | },
2393 | "type": "library",
2394 | "extra": {
2395 | "branch-alias": {
2396 | "dev-master": "1.0.x-dev"
2397 | }
2398 | },
2399 | "autoload": {
2400 | "psr-4": {
2401 | "Psr\\EventDispatcher\\": "src/"
2402 | }
2403 | },
2404 | "notification-url": "https://packagist.org/downloads/",
2405 | "license": [
2406 | "MIT"
2407 | ],
2408 | "authors": [
2409 | {
2410 | "name": "PHP-FIG",
2411 | "homepage": "http://www.php-fig.org/"
2412 | }
2413 | ],
2414 | "description": "Standard interfaces for event handling.",
2415 | "keywords": [
2416 | "events",
2417 | "psr",
2418 | "psr-14"
2419 | ],
2420 | "support": {
2421 | "issues": "https://github.com/php-fig/event-dispatcher/issues",
2422 | "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
2423 | },
2424 | "time": "2019-01-08T18:20:26+00:00"
2425 | },
2426 | {
2427 | "name": "psr/log",
2428 | "version": "3.0.0",
2429 | "source": {
2430 | "type": "git",
2431 | "url": "https://github.com/php-fig/log.git",
2432 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
2433 | },
2434 | "dist": {
2435 | "type": "zip",
2436 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
2437 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
2438 | "shasum": ""
2439 | },
2440 | "require": {
2441 | "php": ">=8.0.0"
2442 | },
2443 | "type": "library",
2444 | "extra": {
2445 | "branch-alias": {
2446 | "dev-master": "3.x-dev"
2447 | }
2448 | },
2449 | "autoload": {
2450 | "psr-4": {
2451 | "Psr\\Log\\": "src"
2452 | }
2453 | },
2454 | "notification-url": "https://packagist.org/downloads/",
2455 | "license": [
2456 | "MIT"
2457 | ],
2458 | "authors": [
2459 | {
2460 | "name": "PHP-FIG",
2461 | "homepage": "https://www.php-fig.org/"
2462 | }
2463 | ],
2464 | "description": "Common interface for logging libraries",
2465 | "homepage": "https://github.com/php-fig/log",
2466 | "keywords": [
2467 | "log",
2468 | "psr",
2469 | "psr-3"
2470 | ],
2471 | "support": {
2472 | "source": "https://github.com/php-fig/log/tree/3.0.0"
2473 | },
2474 | "time": "2021-07-14T16:46:02+00:00"
2475 | },
2476 | {
2477 | "name": "sebastian/cli-parser",
2478 | "version": "1.0.1",
2479 | "source": {
2480 | "type": "git",
2481 | "url": "https://github.com/sebastianbergmann/cli-parser.git",
2482 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
2483 | },
2484 | "dist": {
2485 | "type": "zip",
2486 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
2487 | "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
2488 | "shasum": ""
2489 | },
2490 | "require": {
2491 | "php": ">=7.3"
2492 | },
2493 | "require-dev": {
2494 | "phpunit/phpunit": "^9.3"
2495 | },
2496 | "type": "library",
2497 | "extra": {
2498 | "branch-alias": {
2499 | "dev-master": "1.0-dev"
2500 | }
2501 | },
2502 | "autoload": {
2503 | "classmap": [
2504 | "src/"
2505 | ]
2506 | },
2507 | "notification-url": "https://packagist.org/downloads/",
2508 | "license": [
2509 | "BSD-3-Clause"
2510 | ],
2511 | "authors": [
2512 | {
2513 | "name": "Sebastian Bergmann",
2514 | "email": "sebastian@phpunit.de",
2515 | "role": "lead"
2516 | }
2517 | ],
2518 | "description": "Library for parsing CLI options",
2519 | "homepage": "https://github.com/sebastianbergmann/cli-parser",
2520 | "support": {
2521 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
2522 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
2523 | },
2524 | "funding": [
2525 | {
2526 | "url": "https://github.com/sebastianbergmann",
2527 | "type": "github"
2528 | }
2529 | ],
2530 | "time": "2020-09-28T06:08:49+00:00"
2531 | },
2532 | {
2533 | "name": "sebastian/code-unit",
2534 | "version": "1.0.8",
2535 | "source": {
2536 | "type": "git",
2537 | "url": "https://github.com/sebastianbergmann/code-unit.git",
2538 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
2539 | },
2540 | "dist": {
2541 | "type": "zip",
2542 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
2543 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
2544 | "shasum": ""
2545 | },
2546 | "require": {
2547 | "php": ">=7.3"
2548 | },
2549 | "require-dev": {
2550 | "phpunit/phpunit": "^9.3"
2551 | },
2552 | "type": "library",
2553 | "extra": {
2554 | "branch-alias": {
2555 | "dev-master": "1.0-dev"
2556 | }
2557 | },
2558 | "autoload": {
2559 | "classmap": [
2560 | "src/"
2561 | ]
2562 | },
2563 | "notification-url": "https://packagist.org/downloads/",
2564 | "license": [
2565 | "BSD-3-Clause"
2566 | ],
2567 | "authors": [
2568 | {
2569 | "name": "Sebastian Bergmann",
2570 | "email": "sebastian@phpunit.de",
2571 | "role": "lead"
2572 | }
2573 | ],
2574 | "description": "Collection of value objects that represent the PHP code units",
2575 | "homepage": "https://github.com/sebastianbergmann/code-unit",
2576 | "support": {
2577 | "issues": "https://github.com/sebastianbergmann/code-unit/issues",
2578 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
2579 | },
2580 | "funding": [
2581 | {
2582 | "url": "https://github.com/sebastianbergmann",
2583 | "type": "github"
2584 | }
2585 | ],
2586 | "time": "2020-10-26T13:08:54+00:00"
2587 | },
2588 | {
2589 | "name": "sebastian/code-unit-reverse-lookup",
2590 | "version": "2.0.3",
2591 | "source": {
2592 | "type": "git",
2593 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
2594 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
2595 | },
2596 | "dist": {
2597 | "type": "zip",
2598 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
2599 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
2600 | "shasum": ""
2601 | },
2602 | "require": {
2603 | "php": ">=7.3"
2604 | },
2605 | "require-dev": {
2606 | "phpunit/phpunit": "^9.3"
2607 | },
2608 | "type": "library",
2609 | "extra": {
2610 | "branch-alias": {
2611 | "dev-master": "2.0-dev"
2612 | }
2613 | },
2614 | "autoload": {
2615 | "classmap": [
2616 | "src/"
2617 | ]
2618 | },
2619 | "notification-url": "https://packagist.org/downloads/",
2620 | "license": [
2621 | "BSD-3-Clause"
2622 | ],
2623 | "authors": [
2624 | {
2625 | "name": "Sebastian Bergmann",
2626 | "email": "sebastian@phpunit.de"
2627 | }
2628 | ],
2629 | "description": "Looks up which function or method a line of code belongs to",
2630 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
2631 | "support": {
2632 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
2633 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
2634 | },
2635 | "funding": [
2636 | {
2637 | "url": "https://github.com/sebastianbergmann",
2638 | "type": "github"
2639 | }
2640 | ],
2641 | "time": "2020-09-28T05:30:19+00:00"
2642 | },
2643 | {
2644 | "name": "sebastian/comparator",
2645 | "version": "4.0.8",
2646 | "source": {
2647 | "type": "git",
2648 | "url": "https://github.com/sebastianbergmann/comparator.git",
2649 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
2650 | },
2651 | "dist": {
2652 | "type": "zip",
2653 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
2654 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
2655 | "shasum": ""
2656 | },
2657 | "require": {
2658 | "php": ">=7.3",
2659 | "sebastian/diff": "^4.0",
2660 | "sebastian/exporter": "^4.0"
2661 | },
2662 | "require-dev": {
2663 | "phpunit/phpunit": "^9.3"
2664 | },
2665 | "type": "library",
2666 | "extra": {
2667 | "branch-alias": {
2668 | "dev-master": "4.0-dev"
2669 | }
2670 | },
2671 | "autoload": {
2672 | "classmap": [
2673 | "src/"
2674 | ]
2675 | },
2676 | "notification-url": "https://packagist.org/downloads/",
2677 | "license": [
2678 | "BSD-3-Clause"
2679 | ],
2680 | "authors": [
2681 | {
2682 | "name": "Sebastian Bergmann",
2683 | "email": "sebastian@phpunit.de"
2684 | },
2685 | {
2686 | "name": "Jeff Welch",
2687 | "email": "whatthejeff@gmail.com"
2688 | },
2689 | {
2690 | "name": "Volker Dusch",
2691 | "email": "github@wallbash.com"
2692 | },
2693 | {
2694 | "name": "Bernhard Schussek",
2695 | "email": "bschussek@2bepublished.at"
2696 | }
2697 | ],
2698 | "description": "Provides the functionality to compare PHP values for equality",
2699 | "homepage": "https://github.com/sebastianbergmann/comparator",
2700 | "keywords": [
2701 | "comparator",
2702 | "compare",
2703 | "equality"
2704 | ],
2705 | "support": {
2706 | "issues": "https://github.com/sebastianbergmann/comparator/issues",
2707 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
2708 | },
2709 | "funding": [
2710 | {
2711 | "url": "https://github.com/sebastianbergmann",
2712 | "type": "github"
2713 | }
2714 | ],
2715 | "time": "2022-09-14T12:41:17+00:00"
2716 | },
2717 | {
2718 | "name": "sebastian/complexity",
2719 | "version": "2.0.2",
2720 | "source": {
2721 | "type": "git",
2722 | "url": "https://github.com/sebastianbergmann/complexity.git",
2723 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
2724 | },
2725 | "dist": {
2726 | "type": "zip",
2727 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
2728 | "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
2729 | "shasum": ""
2730 | },
2731 | "require": {
2732 | "nikic/php-parser": "^4.7",
2733 | "php": ">=7.3"
2734 | },
2735 | "require-dev": {
2736 | "phpunit/phpunit": "^9.3"
2737 | },
2738 | "type": "library",
2739 | "extra": {
2740 | "branch-alias": {
2741 | "dev-master": "2.0-dev"
2742 | }
2743 | },
2744 | "autoload": {
2745 | "classmap": [
2746 | "src/"
2747 | ]
2748 | },
2749 | "notification-url": "https://packagist.org/downloads/",
2750 | "license": [
2751 | "BSD-3-Clause"
2752 | ],
2753 | "authors": [
2754 | {
2755 | "name": "Sebastian Bergmann",
2756 | "email": "sebastian@phpunit.de",
2757 | "role": "lead"
2758 | }
2759 | ],
2760 | "description": "Library for calculating the complexity of PHP code units",
2761 | "homepage": "https://github.com/sebastianbergmann/complexity",
2762 | "support": {
2763 | "issues": "https://github.com/sebastianbergmann/complexity/issues",
2764 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
2765 | },
2766 | "funding": [
2767 | {
2768 | "url": "https://github.com/sebastianbergmann",
2769 | "type": "github"
2770 | }
2771 | ],
2772 | "time": "2020-10-26T15:52:27+00:00"
2773 | },
2774 | {
2775 | "name": "sebastian/diff",
2776 | "version": "4.0.4",
2777 | "source": {
2778 | "type": "git",
2779 | "url": "https://github.com/sebastianbergmann/diff.git",
2780 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
2781 | },
2782 | "dist": {
2783 | "type": "zip",
2784 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
2785 | "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
2786 | "shasum": ""
2787 | },
2788 | "require": {
2789 | "php": ">=7.3"
2790 | },
2791 | "require-dev": {
2792 | "phpunit/phpunit": "^9.3",
2793 | "symfony/process": "^4.2 || ^5"
2794 | },
2795 | "type": "library",
2796 | "extra": {
2797 | "branch-alias": {
2798 | "dev-master": "4.0-dev"
2799 | }
2800 | },
2801 | "autoload": {
2802 | "classmap": [
2803 | "src/"
2804 | ]
2805 | },
2806 | "notification-url": "https://packagist.org/downloads/",
2807 | "license": [
2808 | "BSD-3-Clause"
2809 | ],
2810 | "authors": [
2811 | {
2812 | "name": "Sebastian Bergmann",
2813 | "email": "sebastian@phpunit.de"
2814 | },
2815 | {
2816 | "name": "Kore Nordmann",
2817 | "email": "mail@kore-nordmann.de"
2818 | }
2819 | ],
2820 | "description": "Diff implementation",
2821 | "homepage": "https://github.com/sebastianbergmann/diff",
2822 | "keywords": [
2823 | "diff",
2824 | "udiff",
2825 | "unidiff",
2826 | "unified diff"
2827 | ],
2828 | "support": {
2829 | "issues": "https://github.com/sebastianbergmann/diff/issues",
2830 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
2831 | },
2832 | "funding": [
2833 | {
2834 | "url": "https://github.com/sebastianbergmann",
2835 | "type": "github"
2836 | }
2837 | ],
2838 | "time": "2020-10-26T13:10:38+00:00"
2839 | },
2840 | {
2841 | "name": "sebastian/environment",
2842 | "version": "5.1.4",
2843 | "source": {
2844 | "type": "git",
2845 | "url": "https://github.com/sebastianbergmann/environment.git",
2846 | "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
2847 | },
2848 | "dist": {
2849 | "type": "zip",
2850 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
2851 | "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
2852 | "shasum": ""
2853 | },
2854 | "require": {
2855 | "php": ">=7.3"
2856 | },
2857 | "require-dev": {
2858 | "phpunit/phpunit": "^9.3"
2859 | },
2860 | "suggest": {
2861 | "ext-posix": "*"
2862 | },
2863 | "type": "library",
2864 | "extra": {
2865 | "branch-alias": {
2866 | "dev-master": "5.1-dev"
2867 | }
2868 | },
2869 | "autoload": {
2870 | "classmap": [
2871 | "src/"
2872 | ]
2873 | },
2874 | "notification-url": "https://packagist.org/downloads/",
2875 | "license": [
2876 | "BSD-3-Clause"
2877 | ],
2878 | "authors": [
2879 | {
2880 | "name": "Sebastian Bergmann",
2881 | "email": "sebastian@phpunit.de"
2882 | }
2883 | ],
2884 | "description": "Provides functionality to handle HHVM/PHP environments",
2885 | "homepage": "http://www.github.com/sebastianbergmann/environment",
2886 | "keywords": [
2887 | "Xdebug",
2888 | "environment",
2889 | "hhvm"
2890 | ],
2891 | "support": {
2892 | "issues": "https://github.com/sebastianbergmann/environment/issues",
2893 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
2894 | },
2895 | "funding": [
2896 | {
2897 | "url": "https://github.com/sebastianbergmann",
2898 | "type": "github"
2899 | }
2900 | ],
2901 | "time": "2022-04-03T09:37:03+00:00"
2902 | },
2903 | {
2904 | "name": "sebastian/exporter",
2905 | "version": "4.0.5",
2906 | "source": {
2907 | "type": "git",
2908 | "url": "https://github.com/sebastianbergmann/exporter.git",
2909 | "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
2910 | },
2911 | "dist": {
2912 | "type": "zip",
2913 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
2914 | "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
2915 | "shasum": ""
2916 | },
2917 | "require": {
2918 | "php": ">=7.3",
2919 | "sebastian/recursion-context": "^4.0"
2920 | },
2921 | "require-dev": {
2922 | "ext-mbstring": "*",
2923 | "phpunit/phpunit": "^9.3"
2924 | },
2925 | "type": "library",
2926 | "extra": {
2927 | "branch-alias": {
2928 | "dev-master": "4.0-dev"
2929 | }
2930 | },
2931 | "autoload": {
2932 | "classmap": [
2933 | "src/"
2934 | ]
2935 | },
2936 | "notification-url": "https://packagist.org/downloads/",
2937 | "license": [
2938 | "BSD-3-Clause"
2939 | ],
2940 | "authors": [
2941 | {
2942 | "name": "Sebastian Bergmann",
2943 | "email": "sebastian@phpunit.de"
2944 | },
2945 | {
2946 | "name": "Jeff Welch",
2947 | "email": "whatthejeff@gmail.com"
2948 | },
2949 | {
2950 | "name": "Volker Dusch",
2951 | "email": "github@wallbash.com"
2952 | },
2953 | {
2954 | "name": "Adam Harvey",
2955 | "email": "aharvey@php.net"
2956 | },
2957 | {
2958 | "name": "Bernhard Schussek",
2959 | "email": "bschussek@gmail.com"
2960 | }
2961 | ],
2962 | "description": "Provides the functionality to export PHP variables for visualization",
2963 | "homepage": "https://www.github.com/sebastianbergmann/exporter",
2964 | "keywords": [
2965 | "export",
2966 | "exporter"
2967 | ],
2968 | "support": {
2969 | "issues": "https://github.com/sebastianbergmann/exporter/issues",
2970 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
2971 | },
2972 | "funding": [
2973 | {
2974 | "url": "https://github.com/sebastianbergmann",
2975 | "type": "github"
2976 | }
2977 | ],
2978 | "time": "2022-09-14T06:03:37+00:00"
2979 | },
2980 | {
2981 | "name": "sebastian/global-state",
2982 | "version": "5.0.5",
2983 | "source": {
2984 | "type": "git",
2985 | "url": "https://github.com/sebastianbergmann/global-state.git",
2986 | "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
2987 | },
2988 | "dist": {
2989 | "type": "zip",
2990 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
2991 | "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
2992 | "shasum": ""
2993 | },
2994 | "require": {
2995 | "php": ">=7.3",
2996 | "sebastian/object-reflector": "^2.0",
2997 | "sebastian/recursion-context": "^4.0"
2998 | },
2999 | "require-dev": {
3000 | "ext-dom": "*",
3001 | "phpunit/phpunit": "^9.3"
3002 | },
3003 | "suggest": {
3004 | "ext-uopz": "*"
3005 | },
3006 | "type": "library",
3007 | "extra": {
3008 | "branch-alias": {
3009 | "dev-master": "5.0-dev"
3010 | }
3011 | },
3012 | "autoload": {
3013 | "classmap": [
3014 | "src/"
3015 | ]
3016 | },
3017 | "notification-url": "https://packagist.org/downloads/",
3018 | "license": [
3019 | "BSD-3-Clause"
3020 | ],
3021 | "authors": [
3022 | {
3023 | "name": "Sebastian Bergmann",
3024 | "email": "sebastian@phpunit.de"
3025 | }
3026 | ],
3027 | "description": "Snapshotting of global state",
3028 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
3029 | "keywords": [
3030 | "global state"
3031 | ],
3032 | "support": {
3033 | "issues": "https://github.com/sebastianbergmann/global-state/issues",
3034 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
3035 | },
3036 | "funding": [
3037 | {
3038 | "url": "https://github.com/sebastianbergmann",
3039 | "type": "github"
3040 | }
3041 | ],
3042 | "time": "2022-02-14T08:28:10+00:00"
3043 | },
3044 | {
3045 | "name": "sebastian/lines-of-code",
3046 | "version": "1.0.3",
3047 | "source": {
3048 | "type": "git",
3049 | "url": "https://github.com/sebastianbergmann/lines-of-code.git",
3050 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
3051 | },
3052 | "dist": {
3053 | "type": "zip",
3054 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
3055 | "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
3056 | "shasum": ""
3057 | },
3058 | "require": {
3059 | "nikic/php-parser": "^4.6",
3060 | "php": ">=7.3"
3061 | },
3062 | "require-dev": {
3063 | "phpunit/phpunit": "^9.3"
3064 | },
3065 | "type": "library",
3066 | "extra": {
3067 | "branch-alias": {
3068 | "dev-master": "1.0-dev"
3069 | }
3070 | },
3071 | "autoload": {
3072 | "classmap": [
3073 | "src/"
3074 | ]
3075 | },
3076 | "notification-url": "https://packagist.org/downloads/",
3077 | "license": [
3078 | "BSD-3-Clause"
3079 | ],
3080 | "authors": [
3081 | {
3082 | "name": "Sebastian Bergmann",
3083 | "email": "sebastian@phpunit.de",
3084 | "role": "lead"
3085 | }
3086 | ],
3087 | "description": "Library for counting the lines of code in PHP source code",
3088 | "homepage": "https://github.com/sebastianbergmann/lines-of-code",
3089 | "support": {
3090 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
3091 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
3092 | },
3093 | "funding": [
3094 | {
3095 | "url": "https://github.com/sebastianbergmann",
3096 | "type": "github"
3097 | }
3098 | ],
3099 | "time": "2020-11-28T06:42:11+00:00"
3100 | },
3101 | {
3102 | "name": "sebastian/object-enumerator",
3103 | "version": "4.0.4",
3104 | "source": {
3105 | "type": "git",
3106 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
3107 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
3108 | },
3109 | "dist": {
3110 | "type": "zip",
3111 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
3112 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
3113 | "shasum": ""
3114 | },
3115 | "require": {
3116 | "php": ">=7.3",
3117 | "sebastian/object-reflector": "^2.0",
3118 | "sebastian/recursion-context": "^4.0"
3119 | },
3120 | "require-dev": {
3121 | "phpunit/phpunit": "^9.3"
3122 | },
3123 | "type": "library",
3124 | "extra": {
3125 | "branch-alias": {
3126 | "dev-master": "4.0-dev"
3127 | }
3128 | },
3129 | "autoload": {
3130 | "classmap": [
3131 | "src/"
3132 | ]
3133 | },
3134 | "notification-url": "https://packagist.org/downloads/",
3135 | "license": [
3136 | "BSD-3-Clause"
3137 | ],
3138 | "authors": [
3139 | {
3140 | "name": "Sebastian Bergmann",
3141 | "email": "sebastian@phpunit.de"
3142 | }
3143 | ],
3144 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
3145 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
3146 | "support": {
3147 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
3148 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
3149 | },
3150 | "funding": [
3151 | {
3152 | "url": "https://github.com/sebastianbergmann",
3153 | "type": "github"
3154 | }
3155 | ],
3156 | "time": "2020-10-26T13:12:34+00:00"
3157 | },
3158 | {
3159 | "name": "sebastian/object-reflector",
3160 | "version": "2.0.4",
3161 | "source": {
3162 | "type": "git",
3163 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
3164 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
3165 | },
3166 | "dist": {
3167 | "type": "zip",
3168 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
3169 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
3170 | "shasum": ""
3171 | },
3172 | "require": {
3173 | "php": ">=7.3"
3174 | },
3175 | "require-dev": {
3176 | "phpunit/phpunit": "^9.3"
3177 | },
3178 | "type": "library",
3179 | "extra": {
3180 | "branch-alias": {
3181 | "dev-master": "2.0-dev"
3182 | }
3183 | },
3184 | "autoload": {
3185 | "classmap": [
3186 | "src/"
3187 | ]
3188 | },
3189 | "notification-url": "https://packagist.org/downloads/",
3190 | "license": [
3191 | "BSD-3-Clause"
3192 | ],
3193 | "authors": [
3194 | {
3195 | "name": "Sebastian Bergmann",
3196 | "email": "sebastian@phpunit.de"
3197 | }
3198 | ],
3199 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
3200 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
3201 | "support": {
3202 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
3203 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
3204 | },
3205 | "funding": [
3206 | {
3207 | "url": "https://github.com/sebastianbergmann",
3208 | "type": "github"
3209 | }
3210 | ],
3211 | "time": "2020-10-26T13:14:26+00:00"
3212 | },
3213 | {
3214 | "name": "sebastian/recursion-context",
3215 | "version": "4.0.4",
3216 | "source": {
3217 | "type": "git",
3218 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
3219 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
3220 | },
3221 | "dist": {
3222 | "type": "zip",
3223 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
3224 | "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
3225 | "shasum": ""
3226 | },
3227 | "require": {
3228 | "php": ">=7.3"
3229 | },
3230 | "require-dev": {
3231 | "phpunit/phpunit": "^9.3"
3232 | },
3233 | "type": "library",
3234 | "extra": {
3235 | "branch-alias": {
3236 | "dev-master": "4.0-dev"
3237 | }
3238 | },
3239 | "autoload": {
3240 | "classmap": [
3241 | "src/"
3242 | ]
3243 | },
3244 | "notification-url": "https://packagist.org/downloads/",
3245 | "license": [
3246 | "BSD-3-Clause"
3247 | ],
3248 | "authors": [
3249 | {
3250 | "name": "Sebastian Bergmann",
3251 | "email": "sebastian@phpunit.de"
3252 | },
3253 | {
3254 | "name": "Jeff Welch",
3255 | "email": "whatthejeff@gmail.com"
3256 | },
3257 | {
3258 | "name": "Adam Harvey",
3259 | "email": "aharvey@php.net"
3260 | }
3261 | ],
3262 | "description": "Provides functionality to recursively process PHP variables",
3263 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
3264 | "support": {
3265 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
3266 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
3267 | },
3268 | "funding": [
3269 | {
3270 | "url": "https://github.com/sebastianbergmann",
3271 | "type": "github"
3272 | }
3273 | ],
3274 | "time": "2020-10-26T13:17:30+00:00"
3275 | },
3276 | {
3277 | "name": "sebastian/resource-operations",
3278 | "version": "3.0.3",
3279 | "source": {
3280 | "type": "git",
3281 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
3282 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
3283 | },
3284 | "dist": {
3285 | "type": "zip",
3286 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
3287 | "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
3288 | "shasum": ""
3289 | },
3290 | "require": {
3291 | "php": ">=7.3"
3292 | },
3293 | "require-dev": {
3294 | "phpunit/phpunit": "^9.0"
3295 | },
3296 | "type": "library",
3297 | "extra": {
3298 | "branch-alias": {
3299 | "dev-master": "3.0-dev"
3300 | }
3301 | },
3302 | "autoload": {
3303 | "classmap": [
3304 | "src/"
3305 | ]
3306 | },
3307 | "notification-url": "https://packagist.org/downloads/",
3308 | "license": [
3309 | "BSD-3-Clause"
3310 | ],
3311 | "authors": [
3312 | {
3313 | "name": "Sebastian Bergmann",
3314 | "email": "sebastian@phpunit.de"
3315 | }
3316 | ],
3317 | "description": "Provides a list of PHP built-in functions that operate on resources",
3318 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
3319 | "support": {
3320 | "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
3321 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
3322 | },
3323 | "funding": [
3324 | {
3325 | "url": "https://github.com/sebastianbergmann",
3326 | "type": "github"
3327 | }
3328 | ],
3329 | "time": "2020-09-28T06:45:17+00:00"
3330 | },
3331 | {
3332 | "name": "sebastian/type",
3333 | "version": "3.2.0",
3334 | "source": {
3335 | "type": "git",
3336 | "url": "https://github.com/sebastianbergmann/type.git",
3337 | "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
3338 | },
3339 | "dist": {
3340 | "type": "zip",
3341 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
3342 | "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
3343 | "shasum": ""
3344 | },
3345 | "require": {
3346 | "php": ">=7.3"
3347 | },
3348 | "require-dev": {
3349 | "phpunit/phpunit": "^9.5"
3350 | },
3351 | "type": "library",
3352 | "extra": {
3353 | "branch-alias": {
3354 | "dev-master": "3.2-dev"
3355 | }
3356 | },
3357 | "autoload": {
3358 | "classmap": [
3359 | "src/"
3360 | ]
3361 | },
3362 | "notification-url": "https://packagist.org/downloads/",
3363 | "license": [
3364 | "BSD-3-Clause"
3365 | ],
3366 | "authors": [
3367 | {
3368 | "name": "Sebastian Bergmann",
3369 | "email": "sebastian@phpunit.de",
3370 | "role": "lead"
3371 | }
3372 | ],
3373 | "description": "Collection of value objects that represent the types of the PHP type system",
3374 | "homepage": "https://github.com/sebastianbergmann/type",
3375 | "support": {
3376 | "issues": "https://github.com/sebastianbergmann/type/issues",
3377 | "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
3378 | },
3379 | "funding": [
3380 | {
3381 | "url": "https://github.com/sebastianbergmann",
3382 | "type": "github"
3383 | }
3384 | ],
3385 | "time": "2022-09-12T14:47:03+00:00"
3386 | },
3387 | {
3388 | "name": "sebastian/version",
3389 | "version": "3.0.2",
3390 | "source": {
3391 | "type": "git",
3392 | "url": "https://github.com/sebastianbergmann/version.git",
3393 | "reference": "c6c1022351a901512170118436c764e473f6de8c"
3394 | },
3395 | "dist": {
3396 | "type": "zip",
3397 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
3398 | "reference": "c6c1022351a901512170118436c764e473f6de8c",
3399 | "shasum": ""
3400 | },
3401 | "require": {
3402 | "php": ">=7.3"
3403 | },
3404 | "type": "library",
3405 | "extra": {
3406 | "branch-alias": {
3407 | "dev-master": "3.0-dev"
3408 | }
3409 | },
3410 | "autoload": {
3411 | "classmap": [
3412 | "src/"
3413 | ]
3414 | },
3415 | "notification-url": "https://packagist.org/downloads/",
3416 | "license": [
3417 | "BSD-3-Clause"
3418 | ],
3419 | "authors": [
3420 | {
3421 | "name": "Sebastian Bergmann",
3422 | "email": "sebastian@phpunit.de",
3423 | "role": "lead"
3424 | }
3425 | ],
3426 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
3427 | "homepage": "https://github.com/sebastianbergmann/version",
3428 | "support": {
3429 | "issues": "https://github.com/sebastianbergmann/version/issues",
3430 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
3431 | },
3432 | "funding": [
3433 | {
3434 | "url": "https://github.com/sebastianbergmann",
3435 | "type": "github"
3436 | }
3437 | ],
3438 | "time": "2020-09-28T06:39:44+00:00"
3439 | },
3440 | {
3441 | "name": "spatie/array-to-xml",
3442 | "version": "2.17.1",
3443 | "source": {
3444 | "type": "git",
3445 | "url": "https://github.com/spatie/array-to-xml.git",
3446 | "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46"
3447 | },
3448 | "dist": {
3449 | "type": "zip",
3450 | "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/5cbec9c6ab17e320c58a259f0cebe88bde4a7c46",
3451 | "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46",
3452 | "shasum": ""
3453 | },
3454 | "require": {
3455 | "ext-dom": "*",
3456 | "php": "^7.4|^8.0"
3457 | },
3458 | "require-dev": {
3459 | "mockery/mockery": "^1.2",
3460 | "pestphp/pest": "^1.21",
3461 | "phpunit/phpunit": "^9.0",
3462 | "spatie/pest-plugin-snapshots": "^1.1"
3463 | },
3464 | "type": "library",
3465 | "autoload": {
3466 | "psr-4": {
3467 | "Spatie\\ArrayToXml\\": "src"
3468 | }
3469 | },
3470 | "notification-url": "https://packagist.org/downloads/",
3471 | "license": [
3472 | "MIT"
3473 | ],
3474 | "authors": [
3475 | {
3476 | "name": "Freek Van der Herten",
3477 | "email": "freek@spatie.be",
3478 | "homepage": "https://freek.dev",
3479 | "role": "Developer"
3480 | }
3481 | ],
3482 | "description": "Convert an array to xml",
3483 | "homepage": "https://github.com/spatie/array-to-xml",
3484 | "keywords": [
3485 | "array",
3486 | "convert",
3487 | "xml"
3488 | ],
3489 | "support": {
3490 | "source": "https://github.com/spatie/array-to-xml/tree/2.17.1"
3491 | },
3492 | "funding": [
3493 | {
3494 | "url": "https://spatie.be/open-source/support-us",
3495 | "type": "custom"
3496 | },
3497 | {
3498 | "url": "https://github.com/spatie",
3499 | "type": "github"
3500 | }
3501 | ],
3502 | "time": "2022-12-26T08:22:07+00:00"
3503 | },
3504 | {
3505 | "name": "symfony/console",
3506 | "version": "v6.2.5",
3507 | "source": {
3508 | "type": "git",
3509 | "url": "https://github.com/symfony/console.git",
3510 | "reference": "3e294254f2191762c1d137aed4b94e966965e985"
3511 | },
3512 | "dist": {
3513 | "type": "zip",
3514 | "url": "https://api.github.com/repos/symfony/console/zipball/3e294254f2191762c1d137aed4b94e966965e985",
3515 | "reference": "3e294254f2191762c1d137aed4b94e966965e985",
3516 | "shasum": ""
3517 | },
3518 | "require": {
3519 | "php": ">=8.1",
3520 | "symfony/deprecation-contracts": "^2.1|^3",
3521 | "symfony/polyfill-mbstring": "~1.0",
3522 | "symfony/service-contracts": "^1.1|^2|^3",
3523 | "symfony/string": "^5.4|^6.0"
3524 | },
3525 | "conflict": {
3526 | "symfony/dependency-injection": "<5.4",
3527 | "symfony/dotenv": "<5.4",
3528 | "symfony/event-dispatcher": "<5.4",
3529 | "symfony/lock": "<5.4",
3530 | "symfony/process": "<5.4"
3531 | },
3532 | "provide": {
3533 | "psr/log-implementation": "1.0|2.0|3.0"
3534 | },
3535 | "require-dev": {
3536 | "psr/log": "^1|^2|^3",
3537 | "symfony/config": "^5.4|^6.0",
3538 | "symfony/dependency-injection": "^5.4|^6.0",
3539 | "symfony/event-dispatcher": "^5.4|^6.0",
3540 | "symfony/lock": "^5.4|^6.0",
3541 | "symfony/process": "^5.4|^6.0",
3542 | "symfony/var-dumper": "^5.4|^6.0"
3543 | },
3544 | "suggest": {
3545 | "psr/log": "For using the console logger",
3546 | "symfony/event-dispatcher": "",
3547 | "symfony/lock": "",
3548 | "symfony/process": ""
3549 | },
3550 | "type": "library",
3551 | "autoload": {
3552 | "psr-4": {
3553 | "Symfony\\Component\\Console\\": ""
3554 | },
3555 | "exclude-from-classmap": [
3556 | "/Tests/"
3557 | ]
3558 | },
3559 | "notification-url": "https://packagist.org/downloads/",
3560 | "license": [
3561 | "MIT"
3562 | ],
3563 | "authors": [
3564 | {
3565 | "name": "Fabien Potencier",
3566 | "email": "fabien@symfony.com"
3567 | },
3568 | {
3569 | "name": "Symfony Community",
3570 | "homepage": "https://symfony.com/contributors"
3571 | }
3572 | ],
3573 | "description": "Eases the creation of beautiful and testable command line interfaces",
3574 | "homepage": "https://symfony.com",
3575 | "keywords": [
3576 | "cli",
3577 | "command line",
3578 | "console",
3579 | "terminal"
3580 | ],
3581 | "support": {
3582 | "source": "https://github.com/symfony/console/tree/v6.2.5"
3583 | },
3584 | "funding": [
3585 | {
3586 | "url": "https://symfony.com/sponsor",
3587 | "type": "custom"
3588 | },
3589 | {
3590 | "url": "https://github.com/fabpot",
3591 | "type": "github"
3592 | },
3593 | {
3594 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3595 | "type": "tidelift"
3596 | }
3597 | ],
3598 | "time": "2023-01-01T08:38:09+00:00"
3599 | },
3600 | {
3601 | "name": "symfony/deprecation-contracts",
3602 | "version": "v3.2.0",
3603 | "source": {
3604 | "type": "git",
3605 | "url": "https://github.com/symfony/deprecation-contracts.git",
3606 | "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
3607 | },
3608 | "dist": {
3609 | "type": "zip",
3610 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
3611 | "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
3612 | "shasum": ""
3613 | },
3614 | "require": {
3615 | "php": ">=8.1"
3616 | },
3617 | "type": "library",
3618 | "extra": {
3619 | "branch-alias": {
3620 | "dev-main": "3.3-dev"
3621 | },
3622 | "thanks": {
3623 | "name": "symfony/contracts",
3624 | "url": "https://github.com/symfony/contracts"
3625 | }
3626 | },
3627 | "autoload": {
3628 | "files": [
3629 | "function.php"
3630 | ]
3631 | },
3632 | "notification-url": "https://packagist.org/downloads/",
3633 | "license": [
3634 | "MIT"
3635 | ],
3636 | "authors": [
3637 | {
3638 | "name": "Nicolas Grekas",
3639 | "email": "p@tchwork.com"
3640 | },
3641 | {
3642 | "name": "Symfony Community",
3643 | "homepage": "https://symfony.com/contributors"
3644 | }
3645 | ],
3646 | "description": "A generic function and convention to trigger deprecation notices",
3647 | "homepage": "https://symfony.com",
3648 | "support": {
3649 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
3650 | },
3651 | "funding": [
3652 | {
3653 | "url": "https://symfony.com/sponsor",
3654 | "type": "custom"
3655 | },
3656 | {
3657 | "url": "https://github.com/fabpot",
3658 | "type": "github"
3659 | },
3660 | {
3661 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3662 | "type": "tidelift"
3663 | }
3664 | ],
3665 | "time": "2022-11-25T10:21:52+00:00"
3666 | },
3667 | {
3668 | "name": "symfony/event-dispatcher",
3669 | "version": "v6.2.5",
3670 | "source": {
3671 | "type": "git",
3672 | "url": "https://github.com/symfony/event-dispatcher.git",
3673 | "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68"
3674 | },
3675 | "dist": {
3676 | "type": "zip",
3677 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68",
3678 | "reference": "f02d108b5e9fd4a6245aa73a9d2df2ec060c3e68",
3679 | "shasum": ""
3680 | },
3681 | "require": {
3682 | "php": ">=8.1",
3683 | "symfony/event-dispatcher-contracts": "^2|^3"
3684 | },
3685 | "conflict": {
3686 | "symfony/dependency-injection": "<5.4"
3687 | },
3688 | "provide": {
3689 | "psr/event-dispatcher-implementation": "1.0",
3690 | "symfony/event-dispatcher-implementation": "2.0|3.0"
3691 | },
3692 | "require-dev": {
3693 | "psr/log": "^1|^2|^3",
3694 | "symfony/config": "^5.4|^6.0",
3695 | "symfony/dependency-injection": "^5.4|^6.0",
3696 | "symfony/error-handler": "^5.4|^6.0",
3697 | "symfony/expression-language": "^5.4|^6.0",
3698 | "symfony/http-foundation": "^5.4|^6.0",
3699 | "symfony/service-contracts": "^1.1|^2|^3",
3700 | "symfony/stopwatch": "^5.4|^6.0"
3701 | },
3702 | "suggest": {
3703 | "symfony/dependency-injection": "",
3704 | "symfony/http-kernel": ""
3705 | },
3706 | "type": "library",
3707 | "autoload": {
3708 | "psr-4": {
3709 | "Symfony\\Component\\EventDispatcher\\": ""
3710 | },
3711 | "exclude-from-classmap": [
3712 | "/Tests/"
3713 | ]
3714 | },
3715 | "notification-url": "https://packagist.org/downloads/",
3716 | "license": [
3717 | "MIT"
3718 | ],
3719 | "authors": [
3720 | {
3721 | "name": "Fabien Potencier",
3722 | "email": "fabien@symfony.com"
3723 | },
3724 | {
3725 | "name": "Symfony Community",
3726 | "homepage": "https://symfony.com/contributors"
3727 | }
3728 | ],
3729 | "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
3730 | "homepage": "https://symfony.com",
3731 | "support": {
3732 | "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.5"
3733 | },
3734 | "funding": [
3735 | {
3736 | "url": "https://symfony.com/sponsor",
3737 | "type": "custom"
3738 | },
3739 | {
3740 | "url": "https://github.com/fabpot",
3741 | "type": "github"
3742 | },
3743 | {
3744 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3745 | "type": "tidelift"
3746 | }
3747 | ],
3748 | "time": "2023-01-01T08:38:09+00:00"
3749 | },
3750 | {
3751 | "name": "symfony/event-dispatcher-contracts",
3752 | "version": "v3.2.0",
3753 | "source": {
3754 | "type": "git",
3755 | "url": "https://github.com/symfony/event-dispatcher-contracts.git",
3756 | "reference": "0782b0b52a737a05b4383d0df35a474303cabdae"
3757 | },
3758 | "dist": {
3759 | "type": "zip",
3760 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae",
3761 | "reference": "0782b0b52a737a05b4383d0df35a474303cabdae",
3762 | "shasum": ""
3763 | },
3764 | "require": {
3765 | "php": ">=8.1",
3766 | "psr/event-dispatcher": "^1"
3767 | },
3768 | "suggest": {
3769 | "symfony/event-dispatcher-implementation": ""
3770 | },
3771 | "type": "library",
3772 | "extra": {
3773 | "branch-alias": {
3774 | "dev-main": "3.3-dev"
3775 | },
3776 | "thanks": {
3777 | "name": "symfony/contracts",
3778 | "url": "https://github.com/symfony/contracts"
3779 | }
3780 | },
3781 | "autoload": {
3782 | "psr-4": {
3783 | "Symfony\\Contracts\\EventDispatcher\\": ""
3784 | }
3785 | },
3786 | "notification-url": "https://packagist.org/downloads/",
3787 | "license": [
3788 | "MIT"
3789 | ],
3790 | "authors": [
3791 | {
3792 | "name": "Nicolas Grekas",
3793 | "email": "p@tchwork.com"
3794 | },
3795 | {
3796 | "name": "Symfony Community",
3797 | "homepage": "https://symfony.com/contributors"
3798 | }
3799 | ],
3800 | "description": "Generic abstractions related to dispatching event",
3801 | "homepage": "https://symfony.com",
3802 | "keywords": [
3803 | "abstractions",
3804 | "contracts",
3805 | "decoupling",
3806 | "interfaces",
3807 | "interoperability",
3808 | "standards"
3809 | ],
3810 | "support": {
3811 | "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0"
3812 | },
3813 | "funding": [
3814 | {
3815 | "url": "https://symfony.com/sponsor",
3816 | "type": "custom"
3817 | },
3818 | {
3819 | "url": "https://github.com/fabpot",
3820 | "type": "github"
3821 | },
3822 | {
3823 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3824 | "type": "tidelift"
3825 | }
3826 | ],
3827 | "time": "2022-11-25T10:21:52+00:00"
3828 | },
3829 | {
3830 | "name": "symfony/filesystem",
3831 | "version": "v6.2.5",
3832 | "source": {
3833 | "type": "git",
3834 | "url": "https://github.com/symfony/filesystem.git",
3835 | "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593"
3836 | },
3837 | "dist": {
3838 | "type": "zip",
3839 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593",
3840 | "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593",
3841 | "shasum": ""
3842 | },
3843 | "require": {
3844 | "php": ">=8.1",
3845 | "symfony/polyfill-ctype": "~1.8",
3846 | "symfony/polyfill-mbstring": "~1.8"
3847 | },
3848 | "type": "library",
3849 | "autoload": {
3850 | "psr-4": {
3851 | "Symfony\\Component\\Filesystem\\": ""
3852 | },
3853 | "exclude-from-classmap": [
3854 | "/Tests/"
3855 | ]
3856 | },
3857 | "notification-url": "https://packagist.org/downloads/",
3858 | "license": [
3859 | "MIT"
3860 | ],
3861 | "authors": [
3862 | {
3863 | "name": "Fabien Potencier",
3864 | "email": "fabien@symfony.com"
3865 | },
3866 | {
3867 | "name": "Symfony Community",
3868 | "homepage": "https://symfony.com/contributors"
3869 | }
3870 | ],
3871 | "description": "Provides basic utilities for the filesystem",
3872 | "homepage": "https://symfony.com",
3873 | "support": {
3874 | "source": "https://github.com/symfony/filesystem/tree/v6.2.5"
3875 | },
3876 | "funding": [
3877 | {
3878 | "url": "https://symfony.com/sponsor",
3879 | "type": "custom"
3880 | },
3881 | {
3882 | "url": "https://github.com/fabpot",
3883 | "type": "github"
3884 | },
3885 | {
3886 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3887 | "type": "tidelift"
3888 | }
3889 | ],
3890 | "time": "2023-01-20T17:45:48+00:00"
3891 | },
3892 | {
3893 | "name": "symfony/finder",
3894 | "version": "v6.2.5",
3895 | "source": {
3896 | "type": "git",
3897 | "url": "https://github.com/symfony/finder.git",
3898 | "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c"
3899 | },
3900 | "dist": {
3901 | "type": "zip",
3902 | "url": "https://api.github.com/repos/symfony/finder/zipball/c90dc446976a612e3312a97a6ec0069ab0c2099c",
3903 | "reference": "c90dc446976a612e3312a97a6ec0069ab0c2099c",
3904 | "shasum": ""
3905 | },
3906 | "require": {
3907 | "php": ">=8.1"
3908 | },
3909 | "require-dev": {
3910 | "symfony/filesystem": "^6.0"
3911 | },
3912 | "type": "library",
3913 | "autoload": {
3914 | "psr-4": {
3915 | "Symfony\\Component\\Finder\\": ""
3916 | },
3917 | "exclude-from-classmap": [
3918 | "/Tests/"
3919 | ]
3920 | },
3921 | "notification-url": "https://packagist.org/downloads/",
3922 | "license": [
3923 | "MIT"
3924 | ],
3925 | "authors": [
3926 | {
3927 | "name": "Fabien Potencier",
3928 | "email": "fabien@symfony.com"
3929 | },
3930 | {
3931 | "name": "Symfony Community",
3932 | "homepage": "https://symfony.com/contributors"
3933 | }
3934 | ],
3935 | "description": "Finds files and directories via an intuitive fluent interface",
3936 | "homepage": "https://symfony.com",
3937 | "support": {
3938 | "source": "https://github.com/symfony/finder/tree/v6.2.5"
3939 | },
3940 | "funding": [
3941 | {
3942 | "url": "https://symfony.com/sponsor",
3943 | "type": "custom"
3944 | },
3945 | {
3946 | "url": "https://github.com/fabpot",
3947 | "type": "github"
3948 | },
3949 | {
3950 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3951 | "type": "tidelift"
3952 | }
3953 | ],
3954 | "time": "2023-01-20T17:45:48+00:00"
3955 | },
3956 | {
3957 | "name": "symfony/options-resolver",
3958 | "version": "v6.2.5",
3959 | "source": {
3960 | "type": "git",
3961 | "url": "https://github.com/symfony/options-resolver.git",
3962 | "reference": "e8324d44f5af99ec2ccec849934a242f64458f86"
3963 | },
3964 | "dist": {
3965 | "type": "zip",
3966 | "url": "https://api.github.com/repos/symfony/options-resolver/zipball/e8324d44f5af99ec2ccec849934a242f64458f86",
3967 | "reference": "e8324d44f5af99ec2ccec849934a242f64458f86",
3968 | "shasum": ""
3969 | },
3970 | "require": {
3971 | "php": ">=8.1",
3972 | "symfony/deprecation-contracts": "^2.1|^3"
3973 | },
3974 | "type": "library",
3975 | "autoload": {
3976 | "psr-4": {
3977 | "Symfony\\Component\\OptionsResolver\\": ""
3978 | },
3979 | "exclude-from-classmap": [
3980 | "/Tests/"
3981 | ]
3982 | },
3983 | "notification-url": "https://packagist.org/downloads/",
3984 | "license": [
3985 | "MIT"
3986 | ],
3987 | "authors": [
3988 | {
3989 | "name": "Fabien Potencier",
3990 | "email": "fabien@symfony.com"
3991 | },
3992 | {
3993 | "name": "Symfony Community",
3994 | "homepage": "https://symfony.com/contributors"
3995 | }
3996 | ],
3997 | "description": "Provides an improved replacement for the array_replace PHP function",
3998 | "homepage": "https://symfony.com",
3999 | "keywords": [
4000 | "config",
4001 | "configuration",
4002 | "options"
4003 | ],
4004 | "support": {
4005 | "source": "https://github.com/symfony/options-resolver/tree/v6.2.5"
4006 | },
4007 | "funding": [
4008 | {
4009 | "url": "https://symfony.com/sponsor",
4010 | "type": "custom"
4011 | },
4012 | {
4013 | "url": "https://github.com/fabpot",
4014 | "type": "github"
4015 | },
4016 | {
4017 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4018 | "type": "tidelift"
4019 | }
4020 | ],
4021 | "time": "2023-01-01T08:38:09+00:00"
4022 | },
4023 | {
4024 | "name": "symfony/polyfill-ctype",
4025 | "version": "v1.27.0",
4026 | "source": {
4027 | "type": "git",
4028 | "url": "https://github.com/symfony/polyfill-ctype.git",
4029 | "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
4030 | },
4031 | "dist": {
4032 | "type": "zip",
4033 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
4034 | "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
4035 | "shasum": ""
4036 | },
4037 | "require": {
4038 | "php": ">=7.1"
4039 | },
4040 | "provide": {
4041 | "ext-ctype": "*"
4042 | },
4043 | "suggest": {
4044 | "ext-ctype": "For best performance"
4045 | },
4046 | "type": "library",
4047 | "extra": {
4048 | "branch-alias": {
4049 | "dev-main": "1.27-dev"
4050 | },
4051 | "thanks": {
4052 | "name": "symfony/polyfill",
4053 | "url": "https://github.com/symfony/polyfill"
4054 | }
4055 | },
4056 | "autoload": {
4057 | "files": [
4058 | "bootstrap.php"
4059 | ],
4060 | "psr-4": {
4061 | "Symfony\\Polyfill\\Ctype\\": ""
4062 | }
4063 | },
4064 | "notification-url": "https://packagist.org/downloads/",
4065 | "license": [
4066 | "MIT"
4067 | ],
4068 | "authors": [
4069 | {
4070 | "name": "Gert de Pagter",
4071 | "email": "BackEndTea@gmail.com"
4072 | },
4073 | {
4074 | "name": "Symfony Community",
4075 | "homepage": "https://symfony.com/contributors"
4076 | }
4077 | ],
4078 | "description": "Symfony polyfill for ctype functions",
4079 | "homepage": "https://symfony.com",
4080 | "keywords": [
4081 | "compatibility",
4082 | "ctype",
4083 | "polyfill",
4084 | "portable"
4085 | ],
4086 | "support": {
4087 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
4088 | },
4089 | "funding": [
4090 | {
4091 | "url": "https://symfony.com/sponsor",
4092 | "type": "custom"
4093 | },
4094 | {
4095 | "url": "https://github.com/fabpot",
4096 | "type": "github"
4097 | },
4098 | {
4099 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4100 | "type": "tidelift"
4101 | }
4102 | ],
4103 | "time": "2022-11-03T14:55:06+00:00"
4104 | },
4105 | {
4106 | "name": "symfony/polyfill-intl-grapheme",
4107 | "version": "v1.27.0",
4108 | "source": {
4109 | "type": "git",
4110 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
4111 | "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
4112 | },
4113 | "dist": {
4114 | "type": "zip",
4115 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
4116 | "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
4117 | "shasum": ""
4118 | },
4119 | "require": {
4120 | "php": ">=7.1"
4121 | },
4122 | "suggest": {
4123 | "ext-intl": "For best performance"
4124 | },
4125 | "type": "library",
4126 | "extra": {
4127 | "branch-alias": {
4128 | "dev-main": "1.27-dev"
4129 | },
4130 | "thanks": {
4131 | "name": "symfony/polyfill",
4132 | "url": "https://github.com/symfony/polyfill"
4133 | }
4134 | },
4135 | "autoload": {
4136 | "files": [
4137 | "bootstrap.php"
4138 | ],
4139 | "psr-4": {
4140 | "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
4141 | }
4142 | },
4143 | "notification-url": "https://packagist.org/downloads/",
4144 | "license": [
4145 | "MIT"
4146 | ],
4147 | "authors": [
4148 | {
4149 | "name": "Nicolas Grekas",
4150 | "email": "p@tchwork.com"
4151 | },
4152 | {
4153 | "name": "Symfony Community",
4154 | "homepage": "https://symfony.com/contributors"
4155 | }
4156 | ],
4157 | "description": "Symfony polyfill for intl's grapheme_* functions",
4158 | "homepage": "https://symfony.com",
4159 | "keywords": [
4160 | "compatibility",
4161 | "grapheme",
4162 | "intl",
4163 | "polyfill",
4164 | "portable",
4165 | "shim"
4166 | ],
4167 | "support": {
4168 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
4169 | },
4170 | "funding": [
4171 | {
4172 | "url": "https://symfony.com/sponsor",
4173 | "type": "custom"
4174 | },
4175 | {
4176 | "url": "https://github.com/fabpot",
4177 | "type": "github"
4178 | },
4179 | {
4180 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4181 | "type": "tidelift"
4182 | }
4183 | ],
4184 | "time": "2022-11-03T14:55:06+00:00"
4185 | },
4186 | {
4187 | "name": "symfony/polyfill-intl-normalizer",
4188 | "version": "v1.27.0",
4189 | "source": {
4190 | "type": "git",
4191 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
4192 | "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
4193 | },
4194 | "dist": {
4195 | "type": "zip",
4196 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
4197 | "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
4198 | "shasum": ""
4199 | },
4200 | "require": {
4201 | "php": ">=7.1"
4202 | },
4203 | "suggest": {
4204 | "ext-intl": "For best performance"
4205 | },
4206 | "type": "library",
4207 | "extra": {
4208 | "branch-alias": {
4209 | "dev-main": "1.27-dev"
4210 | },
4211 | "thanks": {
4212 | "name": "symfony/polyfill",
4213 | "url": "https://github.com/symfony/polyfill"
4214 | }
4215 | },
4216 | "autoload": {
4217 | "files": [
4218 | "bootstrap.php"
4219 | ],
4220 | "psr-4": {
4221 | "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
4222 | },
4223 | "classmap": [
4224 | "Resources/stubs"
4225 | ]
4226 | },
4227 | "notification-url": "https://packagist.org/downloads/",
4228 | "license": [
4229 | "MIT"
4230 | ],
4231 | "authors": [
4232 | {
4233 | "name": "Nicolas Grekas",
4234 | "email": "p@tchwork.com"
4235 | },
4236 | {
4237 | "name": "Symfony Community",
4238 | "homepage": "https://symfony.com/contributors"
4239 | }
4240 | ],
4241 | "description": "Symfony polyfill for intl's Normalizer class and related functions",
4242 | "homepage": "https://symfony.com",
4243 | "keywords": [
4244 | "compatibility",
4245 | "intl",
4246 | "normalizer",
4247 | "polyfill",
4248 | "portable",
4249 | "shim"
4250 | ],
4251 | "support": {
4252 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
4253 | },
4254 | "funding": [
4255 | {
4256 | "url": "https://symfony.com/sponsor",
4257 | "type": "custom"
4258 | },
4259 | {
4260 | "url": "https://github.com/fabpot",
4261 | "type": "github"
4262 | },
4263 | {
4264 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4265 | "type": "tidelift"
4266 | }
4267 | ],
4268 | "time": "2022-11-03T14:55:06+00:00"
4269 | },
4270 | {
4271 | "name": "symfony/polyfill-mbstring",
4272 | "version": "v1.27.0",
4273 | "source": {
4274 | "type": "git",
4275 | "url": "https://github.com/symfony/polyfill-mbstring.git",
4276 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
4277 | },
4278 | "dist": {
4279 | "type": "zip",
4280 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
4281 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
4282 | "shasum": ""
4283 | },
4284 | "require": {
4285 | "php": ">=7.1"
4286 | },
4287 | "provide": {
4288 | "ext-mbstring": "*"
4289 | },
4290 | "suggest": {
4291 | "ext-mbstring": "For best performance"
4292 | },
4293 | "type": "library",
4294 | "extra": {
4295 | "branch-alias": {
4296 | "dev-main": "1.27-dev"
4297 | },
4298 | "thanks": {
4299 | "name": "symfony/polyfill",
4300 | "url": "https://github.com/symfony/polyfill"
4301 | }
4302 | },
4303 | "autoload": {
4304 | "files": [
4305 | "bootstrap.php"
4306 | ],
4307 | "psr-4": {
4308 | "Symfony\\Polyfill\\Mbstring\\": ""
4309 | }
4310 | },
4311 | "notification-url": "https://packagist.org/downloads/",
4312 | "license": [
4313 | "MIT"
4314 | ],
4315 | "authors": [
4316 | {
4317 | "name": "Nicolas Grekas",
4318 | "email": "p@tchwork.com"
4319 | },
4320 | {
4321 | "name": "Symfony Community",
4322 | "homepage": "https://symfony.com/contributors"
4323 | }
4324 | ],
4325 | "description": "Symfony polyfill for the Mbstring extension",
4326 | "homepage": "https://symfony.com",
4327 | "keywords": [
4328 | "compatibility",
4329 | "mbstring",
4330 | "polyfill",
4331 | "portable",
4332 | "shim"
4333 | ],
4334 | "support": {
4335 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
4336 | },
4337 | "funding": [
4338 | {
4339 | "url": "https://symfony.com/sponsor",
4340 | "type": "custom"
4341 | },
4342 | {
4343 | "url": "https://github.com/fabpot",
4344 | "type": "github"
4345 | },
4346 | {
4347 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4348 | "type": "tidelift"
4349 | }
4350 | ],
4351 | "time": "2022-11-03T14:55:06+00:00"
4352 | },
4353 | {
4354 | "name": "symfony/polyfill-php80",
4355 | "version": "v1.27.0",
4356 | "source": {
4357 | "type": "git",
4358 | "url": "https://github.com/symfony/polyfill-php80.git",
4359 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
4360 | },
4361 | "dist": {
4362 | "type": "zip",
4363 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
4364 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
4365 | "shasum": ""
4366 | },
4367 | "require": {
4368 | "php": ">=7.1"
4369 | },
4370 | "type": "library",
4371 | "extra": {
4372 | "branch-alias": {
4373 | "dev-main": "1.27-dev"
4374 | },
4375 | "thanks": {
4376 | "name": "symfony/polyfill",
4377 | "url": "https://github.com/symfony/polyfill"
4378 | }
4379 | },
4380 | "autoload": {
4381 | "files": [
4382 | "bootstrap.php"
4383 | ],
4384 | "psr-4": {
4385 | "Symfony\\Polyfill\\Php80\\": ""
4386 | },
4387 | "classmap": [
4388 | "Resources/stubs"
4389 | ]
4390 | },
4391 | "notification-url": "https://packagist.org/downloads/",
4392 | "license": [
4393 | "MIT"
4394 | ],
4395 | "authors": [
4396 | {
4397 | "name": "Ion Bazan",
4398 | "email": "ion.bazan@gmail.com"
4399 | },
4400 | {
4401 | "name": "Nicolas Grekas",
4402 | "email": "p@tchwork.com"
4403 | },
4404 | {
4405 | "name": "Symfony Community",
4406 | "homepage": "https://symfony.com/contributors"
4407 | }
4408 | ],
4409 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
4410 | "homepage": "https://symfony.com",
4411 | "keywords": [
4412 | "compatibility",
4413 | "polyfill",
4414 | "portable",
4415 | "shim"
4416 | ],
4417 | "support": {
4418 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
4419 | },
4420 | "funding": [
4421 | {
4422 | "url": "https://symfony.com/sponsor",
4423 | "type": "custom"
4424 | },
4425 | {
4426 | "url": "https://github.com/fabpot",
4427 | "type": "github"
4428 | },
4429 | {
4430 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4431 | "type": "tidelift"
4432 | }
4433 | ],
4434 | "time": "2022-11-03T14:55:06+00:00"
4435 | },
4436 | {
4437 | "name": "symfony/polyfill-php81",
4438 | "version": "v1.27.0",
4439 | "source": {
4440 | "type": "git",
4441 | "url": "https://github.com/symfony/polyfill-php81.git",
4442 | "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a"
4443 | },
4444 | "dist": {
4445 | "type": "zip",
4446 | "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a",
4447 | "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a",
4448 | "shasum": ""
4449 | },
4450 | "require": {
4451 | "php": ">=7.1"
4452 | },
4453 | "type": "library",
4454 | "extra": {
4455 | "branch-alias": {
4456 | "dev-main": "1.27-dev"
4457 | },
4458 | "thanks": {
4459 | "name": "symfony/polyfill",
4460 | "url": "https://github.com/symfony/polyfill"
4461 | }
4462 | },
4463 | "autoload": {
4464 | "files": [
4465 | "bootstrap.php"
4466 | ],
4467 | "psr-4": {
4468 | "Symfony\\Polyfill\\Php81\\": ""
4469 | },
4470 | "classmap": [
4471 | "Resources/stubs"
4472 | ]
4473 | },
4474 | "notification-url": "https://packagist.org/downloads/",
4475 | "license": [
4476 | "MIT"
4477 | ],
4478 | "authors": [
4479 | {
4480 | "name": "Nicolas Grekas",
4481 | "email": "p@tchwork.com"
4482 | },
4483 | {
4484 | "name": "Symfony Community",
4485 | "homepage": "https://symfony.com/contributors"
4486 | }
4487 | ],
4488 | "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
4489 | "homepage": "https://symfony.com",
4490 | "keywords": [
4491 | "compatibility",
4492 | "polyfill",
4493 | "portable",
4494 | "shim"
4495 | ],
4496 | "support": {
4497 | "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0"
4498 | },
4499 | "funding": [
4500 | {
4501 | "url": "https://symfony.com/sponsor",
4502 | "type": "custom"
4503 | },
4504 | {
4505 | "url": "https://github.com/fabpot",
4506 | "type": "github"
4507 | },
4508 | {
4509 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4510 | "type": "tidelift"
4511 | }
4512 | ],
4513 | "time": "2022-11-03T14:55:06+00:00"
4514 | },
4515 | {
4516 | "name": "symfony/process",
4517 | "version": "v6.2.5",
4518 | "source": {
4519 | "type": "git",
4520 | "url": "https://github.com/symfony/process.git",
4521 | "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7"
4522 | },
4523 | "dist": {
4524 | "type": "zip",
4525 | "url": "https://api.github.com/repos/symfony/process/zipball/9ead139f63dfa38c4e4a9049cc64a8b2748c83b7",
4526 | "reference": "9ead139f63dfa38c4e4a9049cc64a8b2748c83b7",
4527 | "shasum": ""
4528 | },
4529 | "require": {
4530 | "php": ">=8.1"
4531 | },
4532 | "type": "library",
4533 | "autoload": {
4534 | "psr-4": {
4535 | "Symfony\\Component\\Process\\": ""
4536 | },
4537 | "exclude-from-classmap": [
4538 | "/Tests/"
4539 | ]
4540 | },
4541 | "notification-url": "https://packagist.org/downloads/",
4542 | "license": [
4543 | "MIT"
4544 | ],
4545 | "authors": [
4546 | {
4547 | "name": "Fabien Potencier",
4548 | "email": "fabien@symfony.com"
4549 | },
4550 | {
4551 | "name": "Symfony Community",
4552 | "homepage": "https://symfony.com/contributors"
4553 | }
4554 | ],
4555 | "description": "Executes commands in sub-processes",
4556 | "homepage": "https://symfony.com",
4557 | "support": {
4558 | "source": "https://github.com/symfony/process/tree/v6.2.5"
4559 | },
4560 | "funding": [
4561 | {
4562 | "url": "https://symfony.com/sponsor",
4563 | "type": "custom"
4564 | },
4565 | {
4566 | "url": "https://github.com/fabpot",
4567 | "type": "github"
4568 | },
4569 | {
4570 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4571 | "type": "tidelift"
4572 | }
4573 | ],
4574 | "time": "2023-01-01T08:38:09+00:00"
4575 | },
4576 | {
4577 | "name": "symfony/service-contracts",
4578 | "version": "v3.2.0",
4579 | "source": {
4580 | "type": "git",
4581 | "url": "https://github.com/symfony/service-contracts.git",
4582 | "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75"
4583 | },
4584 | "dist": {
4585 | "type": "zip",
4586 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75",
4587 | "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75",
4588 | "shasum": ""
4589 | },
4590 | "require": {
4591 | "php": ">=8.1",
4592 | "psr/container": "^2.0"
4593 | },
4594 | "conflict": {
4595 | "ext-psr": "<1.1|>=2"
4596 | },
4597 | "suggest": {
4598 | "symfony/service-implementation": ""
4599 | },
4600 | "type": "library",
4601 | "extra": {
4602 | "branch-alias": {
4603 | "dev-main": "3.3-dev"
4604 | },
4605 | "thanks": {
4606 | "name": "symfony/contracts",
4607 | "url": "https://github.com/symfony/contracts"
4608 | }
4609 | },
4610 | "autoload": {
4611 | "psr-4": {
4612 | "Symfony\\Contracts\\Service\\": ""
4613 | },
4614 | "exclude-from-classmap": [
4615 | "/Test/"
4616 | ]
4617 | },
4618 | "notification-url": "https://packagist.org/downloads/",
4619 | "license": [
4620 | "MIT"
4621 | ],
4622 | "authors": [
4623 | {
4624 | "name": "Nicolas Grekas",
4625 | "email": "p@tchwork.com"
4626 | },
4627 | {
4628 | "name": "Symfony Community",
4629 | "homepage": "https://symfony.com/contributors"
4630 | }
4631 | ],
4632 | "description": "Generic abstractions related to writing services",
4633 | "homepage": "https://symfony.com",
4634 | "keywords": [
4635 | "abstractions",
4636 | "contracts",
4637 | "decoupling",
4638 | "interfaces",
4639 | "interoperability",
4640 | "standards"
4641 | ],
4642 | "support": {
4643 | "source": "https://github.com/symfony/service-contracts/tree/v3.2.0"
4644 | },
4645 | "funding": [
4646 | {
4647 | "url": "https://symfony.com/sponsor",
4648 | "type": "custom"
4649 | },
4650 | {
4651 | "url": "https://github.com/fabpot",
4652 | "type": "github"
4653 | },
4654 | {
4655 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4656 | "type": "tidelift"
4657 | }
4658 | ],
4659 | "time": "2022-11-25T10:21:52+00:00"
4660 | },
4661 | {
4662 | "name": "symfony/stopwatch",
4663 | "version": "v6.2.5",
4664 | "source": {
4665 | "type": "git",
4666 | "url": "https://github.com/symfony/stopwatch.git",
4667 | "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6"
4668 | },
4669 | "dist": {
4670 | "type": "zip",
4671 | "url": "https://api.github.com/repos/symfony/stopwatch/zipball/00b6ac156aacffc53487c930e0ab14587a6607f6",
4672 | "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6",
4673 | "shasum": ""
4674 | },
4675 | "require": {
4676 | "php": ">=8.1",
4677 | "symfony/service-contracts": "^1|^2|^3"
4678 | },
4679 | "type": "library",
4680 | "autoload": {
4681 | "psr-4": {
4682 | "Symfony\\Component\\Stopwatch\\": ""
4683 | },
4684 | "exclude-from-classmap": [
4685 | "/Tests/"
4686 | ]
4687 | },
4688 | "notification-url": "https://packagist.org/downloads/",
4689 | "license": [
4690 | "MIT"
4691 | ],
4692 | "authors": [
4693 | {
4694 | "name": "Fabien Potencier",
4695 | "email": "fabien@symfony.com"
4696 | },
4697 | {
4698 | "name": "Symfony Community",
4699 | "homepage": "https://symfony.com/contributors"
4700 | }
4701 | ],
4702 | "description": "Provides a way to profile code",
4703 | "homepage": "https://symfony.com",
4704 | "support": {
4705 | "source": "https://github.com/symfony/stopwatch/tree/v6.2.5"
4706 | },
4707 | "funding": [
4708 | {
4709 | "url": "https://symfony.com/sponsor",
4710 | "type": "custom"
4711 | },
4712 | {
4713 | "url": "https://github.com/fabpot",
4714 | "type": "github"
4715 | },
4716 | {
4717 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4718 | "type": "tidelift"
4719 | }
4720 | ],
4721 | "time": "2023-01-01T08:36:55+00:00"
4722 | },
4723 | {
4724 | "name": "symfony/string",
4725 | "version": "v6.2.5",
4726 | "source": {
4727 | "type": "git",
4728 | "url": "https://github.com/symfony/string.git",
4729 | "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0"
4730 | },
4731 | "dist": {
4732 | "type": "zip",
4733 | "url": "https://api.github.com/repos/symfony/string/zipball/b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0",
4734 | "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0",
4735 | "shasum": ""
4736 | },
4737 | "require": {
4738 | "php": ">=8.1",
4739 | "symfony/polyfill-ctype": "~1.8",
4740 | "symfony/polyfill-intl-grapheme": "~1.0",
4741 | "symfony/polyfill-intl-normalizer": "~1.0",
4742 | "symfony/polyfill-mbstring": "~1.0"
4743 | },
4744 | "conflict": {
4745 | "symfony/translation-contracts": "<2.0"
4746 | },
4747 | "require-dev": {
4748 | "symfony/error-handler": "^5.4|^6.0",
4749 | "symfony/http-client": "^5.4|^6.0",
4750 | "symfony/intl": "^6.2",
4751 | "symfony/translation-contracts": "^2.0|^3.0",
4752 | "symfony/var-exporter": "^5.4|^6.0"
4753 | },
4754 | "type": "library",
4755 | "autoload": {
4756 | "files": [
4757 | "Resources/functions.php"
4758 | ],
4759 | "psr-4": {
4760 | "Symfony\\Component\\String\\": ""
4761 | },
4762 | "exclude-from-classmap": [
4763 | "/Tests/"
4764 | ]
4765 | },
4766 | "notification-url": "https://packagist.org/downloads/",
4767 | "license": [
4768 | "MIT"
4769 | ],
4770 | "authors": [
4771 | {
4772 | "name": "Nicolas Grekas",
4773 | "email": "p@tchwork.com"
4774 | },
4775 | {
4776 | "name": "Symfony Community",
4777 | "homepage": "https://symfony.com/contributors"
4778 | }
4779 | ],
4780 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
4781 | "homepage": "https://symfony.com",
4782 | "keywords": [
4783 | "grapheme",
4784 | "i18n",
4785 | "string",
4786 | "unicode",
4787 | "utf-8",
4788 | "utf8"
4789 | ],
4790 | "support": {
4791 | "source": "https://github.com/symfony/string/tree/v6.2.5"
4792 | },
4793 | "funding": [
4794 | {
4795 | "url": "https://symfony.com/sponsor",
4796 | "type": "custom"
4797 | },
4798 | {
4799 | "url": "https://github.com/fabpot",
4800 | "type": "github"
4801 | },
4802 | {
4803 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4804 | "type": "tidelift"
4805 | }
4806 | ],
4807 | "time": "2023-01-01T08:38:09+00:00"
4808 | },
4809 | {
4810 | "name": "theseer/tokenizer",
4811 | "version": "1.2.1",
4812 | "source": {
4813 | "type": "git",
4814 | "url": "https://github.com/theseer/tokenizer.git",
4815 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
4816 | },
4817 | "dist": {
4818 | "type": "zip",
4819 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
4820 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
4821 | "shasum": ""
4822 | },
4823 | "require": {
4824 | "ext-dom": "*",
4825 | "ext-tokenizer": "*",
4826 | "ext-xmlwriter": "*",
4827 | "php": "^7.2 || ^8.0"
4828 | },
4829 | "type": "library",
4830 | "autoload": {
4831 | "classmap": [
4832 | "src/"
4833 | ]
4834 | },
4835 | "notification-url": "https://packagist.org/downloads/",
4836 | "license": [
4837 | "BSD-3-Clause"
4838 | ],
4839 | "authors": [
4840 | {
4841 | "name": "Arne Blankerts",
4842 | "email": "arne@blankerts.de",
4843 | "role": "Developer"
4844 | }
4845 | ],
4846 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
4847 | "support": {
4848 | "issues": "https://github.com/theseer/tokenizer/issues",
4849 | "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
4850 | },
4851 | "funding": [
4852 | {
4853 | "url": "https://github.com/theseer",
4854 | "type": "github"
4855 | }
4856 | ],
4857 | "time": "2021-07-28T10:34:58+00:00"
4858 | },
4859 | {
4860 | "name": "vimeo/psalm",
4861 | "version": "5.6.0",
4862 | "source": {
4863 | "type": "git",
4864 | "url": "https://github.com/vimeo/psalm.git",
4865 | "reference": "e784128902dfe01d489c4123d69918a9f3c1eac5"
4866 | },
4867 | "dist": {
4868 | "type": "zip",
4869 | "url": "https://api.github.com/repos/vimeo/psalm/zipball/e784128902dfe01d489c4123d69918a9f3c1eac5",
4870 | "reference": "e784128902dfe01d489c4123d69918a9f3c1eac5",
4871 | "shasum": ""
4872 | },
4873 | "require": {
4874 | "amphp/amp": "^2.4.2",
4875 | "amphp/byte-stream": "^1.5",
4876 | "composer/package-versions-deprecated": "^1.10.0",
4877 | "composer/semver": "^1.4 || ^2.0 || ^3.0",
4878 | "composer/xdebug-handler": "^2.0 || ^3.0",
4879 | "dnoegel/php-xdg-base-dir": "^0.1.1",
4880 | "ext-ctype": "*",
4881 | "ext-dom": "*",
4882 | "ext-json": "*",
4883 | "ext-libxml": "*",
4884 | "ext-mbstring": "*",
4885 | "ext-simplexml": "*",
4886 | "ext-tokenizer": "*",
4887 | "felixfbecker/advanced-json-rpc": "^3.1",
4888 | "felixfbecker/language-server-protocol": "^1.5.2",
4889 | "fidry/cpu-core-counter": "^0.4.0",
4890 | "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
4891 | "nikic/php-parser": "^4.13",
4892 | "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0",
4893 | "sebastian/diff": "^4.0 || ^5.0",
4894 | "spatie/array-to-xml": "^2.17.0",
4895 | "symfony/console": "^4.1.6 || ^5.0 || ^6.0",
4896 | "symfony/filesystem": "^5.4 || ^6.0"
4897 | },
4898 | "provide": {
4899 | "psalm/psalm": "self.version"
4900 | },
4901 | "require-dev": {
4902 | "bamarni/composer-bin-plugin": "^1.4",
4903 | "brianium/paratest": "^6.0",
4904 | "ext-curl": "*",
4905 | "mockery/mockery": "^1.5",
4906 | "nunomaduro/mock-final-classes": "^1.1",
4907 | "php-parallel-lint/php-parallel-lint": "^1.2",
4908 | "phpstan/phpdoc-parser": "^1.6",
4909 | "phpunit/phpunit": "^9.5",
4910 | "psalm/plugin-mockery": "^1.1",
4911 | "psalm/plugin-phpunit": "^0.18",
4912 | "slevomat/coding-standard": "^8.4",
4913 | "squizlabs/php_codesniffer": "^3.6",
4914 | "symfony/process": "^4.4 || ^5.0 || ^6.0"
4915 | },
4916 | "suggest": {
4917 | "ext-curl": "In order to send data to shepherd",
4918 | "ext-igbinary": "^2.0.5 is required, used to serialize caching data"
4919 | },
4920 | "bin": [
4921 | "psalm",
4922 | "psalm-language-server",
4923 | "psalm-plugin",
4924 | "psalm-refactor",
4925 | "psalter"
4926 | ],
4927 | "type": "library",
4928 | "extra": {
4929 | "branch-alias": {
4930 | "dev-master": "5.x-dev",
4931 | "dev-4.x": "4.x-dev",
4932 | "dev-3.x": "3.x-dev",
4933 | "dev-2.x": "2.x-dev",
4934 | "dev-1.x": "1.x-dev"
4935 | }
4936 | },
4937 | "autoload": {
4938 | "psr-4": {
4939 | "Psalm\\": "src/Psalm/"
4940 | }
4941 | },
4942 | "notification-url": "https://packagist.org/downloads/",
4943 | "license": [
4944 | "MIT"
4945 | ],
4946 | "authors": [
4947 | {
4948 | "name": "Matthew Brown"
4949 | }
4950 | ],
4951 | "description": "A static analysis tool for finding errors in PHP applications",
4952 | "keywords": [
4953 | "code",
4954 | "inspection",
4955 | "php"
4956 | ],
4957 | "support": {
4958 | "issues": "https://github.com/vimeo/psalm/issues",
4959 | "source": "https://github.com/vimeo/psalm/tree/5.6.0"
4960 | },
4961 | "time": "2023-01-23T20:32:47+00:00"
4962 | },
4963 | {
4964 | "name": "webmozart/assert",
4965 | "version": "1.11.0",
4966 | "source": {
4967 | "type": "git",
4968 | "url": "https://github.com/webmozarts/assert.git",
4969 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
4970 | },
4971 | "dist": {
4972 | "type": "zip",
4973 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
4974 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
4975 | "shasum": ""
4976 | },
4977 | "require": {
4978 | "ext-ctype": "*",
4979 | "php": "^7.2 || ^8.0"
4980 | },
4981 | "conflict": {
4982 | "phpstan/phpstan": "<0.12.20",
4983 | "vimeo/psalm": "<4.6.1 || 4.6.2"
4984 | },
4985 | "require-dev": {
4986 | "phpunit/phpunit": "^8.5.13"
4987 | },
4988 | "type": "library",
4989 | "extra": {
4990 | "branch-alias": {
4991 | "dev-master": "1.10-dev"
4992 | }
4993 | },
4994 | "autoload": {
4995 | "psr-4": {
4996 | "Webmozart\\Assert\\": "src/"
4997 | }
4998 | },
4999 | "notification-url": "https://packagist.org/downloads/",
5000 | "license": [
5001 | "MIT"
5002 | ],
5003 | "authors": [
5004 | {
5005 | "name": "Bernhard Schussek",
5006 | "email": "bschussek@gmail.com"
5007 | }
5008 | ],
5009 | "description": "Assertions to validate method input/output with nice error messages.",
5010 | "keywords": [
5011 | "assert",
5012 | "check",
5013 | "validate"
5014 | ],
5015 | "support": {
5016 | "issues": "https://github.com/webmozarts/assert/issues",
5017 | "source": "https://github.com/webmozarts/assert/tree/1.11.0"
5018 | },
5019 | "time": "2022-06-03T18:03:27+00:00"
5020 | }
5021 | ],
5022 | "aliases": [],
5023 | "minimum-stability": "stable",
5024 | "stability-flags": [],
5025 | "prefer-stable": false,
5026 | "prefer-lowest": false,
5027 | "platform": {
5028 | "php": "^8.1"
5029 | },
5030 | "platform-dev": [],
5031 | "plugin-api-version": "2.3.0"
5032 | }
5033 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3.9"
2 | services:
3 | nginx:
4 | build:
5 | context: docker/nginx
6 | ports:
7 | - "80:80"
8 | volumes:
9 | - ./:/app
10 | depends_on:
11 | - php-fpm
12 |
13 | php-fpm:
14 | build:
15 | context: docker/php-fpm
16 | volumes:
17 | - ./:/app
18 |
19 | php-cli:
20 | build:
21 | context: docker/php-cli
22 | volumes:
23 | - ./:/app
24 |
--------------------------------------------------------------------------------
/docker/nginx/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM nginx:1.21-alpine
2 |
3 | COPY ./conf.d /etc/nginx/conf.d
4 |
5 | WORKDIR /app
6 |
--------------------------------------------------------------------------------
/docker/nginx/conf.d/default.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80;
3 | server_name localhost;
4 | charset utf-8;
5 | index index.php;
6 |
7 | root /app/public;
8 |
9 | location / {
10 | try_files $uri /index.php?$args;
11 | }
12 |
13 | location ~ \.php$ {
14 | fastcgi_pass php-fpm:9000;
15 | fastcgi_index index.php;
16 | include fastcgi_params;
17 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
18 | fastcgi_param SCRIPT_NAME $fastcgi_script_name;
19 | fastcgi_param PATH_INFO $fastcgi_path_info;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/docker/php-cli/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:8.1-cli-alpine
2 |
3 | RUN mv $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
4 |
5 | RUN addgroup -g 1000 app && adduser -u 1000 -G app -s /bin/sh -D app
6 |
7 | COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
8 |
9 | WORKDIR /app
10 |
11 | USER app
12 |
--------------------------------------------------------------------------------
/docker/php-fpm/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:8.1-fpm-alpine
2 |
3 | RUN mv $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
4 |
5 | WORKDIR /app
6 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 | tests
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/psalm.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 | getQueryParams()['name'] ?? 'Guest';
24 |
25 | if (!is_string($name)) {
26 | return new EmptyResponse(400);
27 | }
28 |
29 | $lang = detectLang($request, 'en');
30 |
31 | return new TextResponse('Hello, ' . $name . '! Your lang is ' . $lang);
32 | }
33 |
34 | ### Grabbing
35 |
36 | $request = ServerRequestFactory::fromGlobals();
37 |
38 | ### Preprocessing
39 |
40 | if (str_starts_with($request->getHeaderLine('Content-Type'), 'application/x-www-form-urlencoded')) {
41 | parse_str((string)$request->getBody(), $data);
42 | $request = $request->withParsedBody($data);
43 | }
44 |
45 | ### Running
46 |
47 | $response = home($request);
48 |
49 | ### Postprocessing
50 |
51 | $response = $response->withHeader('X-Frame-Options', 'DENY');
52 |
53 | ### Sending
54 |
55 | $emitter = new SapiStreamEmitter();
56 | $emitter->emit($response);
57 |
--------------------------------------------------------------------------------
/src/App/detectLang.php:
--------------------------------------------------------------------------------
1 | getQueryParams()['lang']) && is_string($request->getQueryParams()['lang'])) {
12 | return (string)$request->getQueryParams()['lang'];
13 | }
14 |
15 | if (!empty($request->getCookieParams()['lang'])) {
16 | return (string)$request->getCookieParams()['lang'];
17 | }
18 |
19 | if ($request->hasHeader('Accept-Language')) {
20 | return substr($request->getHeaderLine('Accept-Language'), 0, 2);
21 | }
22 |
23 | return $default;
24 | }
25 |
--------------------------------------------------------------------------------
/src/Framework/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/deworkerpro/demo-php-http-framework/61719684a18aeb0e5fe6629d85c6cff0b832d323/src/Framework/.gitkeep
--------------------------------------------------------------------------------
/tests/App/DetectLangTest.php:
--------------------------------------------------------------------------------
1 | createServerRequest('GET', '/');
20 |
21 | $lang = detectLang($request, 'en');
22 |
23 | self::assertEquals('en', $lang);
24 | }
25 |
26 | public function testQueryParam(): void
27 | {
28 | $request = (new ServerRequestFactory())->createServerRequest('GET', '/')
29 | ->withQueryParams(['lang' => 'de'])
30 | ->withCookieParams(['lang' => 'pt'])
31 | ->withHeader('Accept-Language', ['ru-ru', 'ru;q=0.8', 'en;q=0.4']);
32 |
33 | $lang = detectLang($request, 'en');
34 |
35 | self::assertEquals('de', $lang);
36 | }
37 |
38 | public function testCookie(): void
39 | {
40 | $request = (new ServerRequestFactory())->createServerRequest('GET', '/')
41 | ->withCookieParams(['lang' => 'pt'])
42 | ->withHeader('Accept-Language', ['ru-ru', 'ru;q=0.8', 'en;q=0.4']);
43 |
44 | $lang = detectLang($request, 'en');
45 |
46 | self::assertEquals('pt', $lang);
47 | }
48 |
49 | public function testHeader(): void
50 | {
51 | $request = (new ServerRequestFactory())->createServerRequest('GET', '/')
52 | ->withHeader('Accept-Language', ['ru-ru', 'ru;q=0.8', 'en;q=0.4']);
53 |
54 | $lang = detectLang($request, 'en');
55 |
56 | self::assertEquals('ru', $lang);
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/tests/Framework/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/deworkerpro/demo-php-http-framework/61719684a18aeb0e5fe6629d85c6cff0b832d323/tests/Framework/.gitkeep
--------------------------------------------------------------------------------
/var/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------