├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── composer.json
├── composer.lock
├── phpcs.xml
├── phpunit.xml
├── src
├── ThemeInstaller.php
└── ThemeInstallerPlugin.php
└── tests
└── ThemeInstallerTest.php
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
3 | vendor/
4 | *.cache
5 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | Contributions are **welcome**. We accept contributions via Pull Requests on [Github](https://github.com/hexadog/laravel-theme-installer).
4 |
5 | When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
6 |
7 | Please note we have a code of conduct, please follow it in all your interactions with the project.
8 |
9 | ## Pull Request Process
10 |
11 | 1. **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - Check the code style with ``$ composer check-style`` and fix it with ``$ composer fix-style``.
12 | 2. **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
13 | variables, exposed ports, useful file locations and container parameters.
14 | 3. **Consider our release cycle** - We try to follow the [SemVer v2.0.0](http://semver.org/) versioning scheme.
15 | 4. **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.
16 |
17 | **Happy coding**!
18 |
19 | ## Code of Conduct
20 |
21 | ### Our Pledge
22 |
23 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
24 |
25 | ### Our Standards
26 |
27 | Examples of behavior that contributes to creating a positive environment
28 | include:
29 |
30 | * Using welcoming and inclusive language
31 | * Being respectful of differing viewpoints and experiences
32 | * Gracefully accepting constructive criticism
33 | * Focusing on what is best for the community
34 | * Showing empathy towards other community members
35 |
36 | Examples of unacceptable behavior by participants include:
37 |
38 | * The use of sexualized language or imagery and unwelcome sexual attention or
39 | advances
40 | * Trolling, insulting/derogatory comments, and personal or political attacks
41 | * Public or private harassment
42 | * Publishing others' private information, such as a physical or electronic
43 | address, without explicit permission
44 | * Other conduct which could reasonably be considered inappropriate in a
45 | professional setting
46 |
47 | ### Our Responsibilities
48 |
49 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
50 |
51 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
52 |
53 | ### Scope
54 |
55 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
56 |
57 | ### Enforcement
58 |
59 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at `gaetan@hexadog.com`. All
60 | complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
61 | Further details of specific enforcement policies may be posted separately.
62 |
63 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
64 |
65 | ### Attribution
66 |
67 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
68 |
69 | [homepage]: http://contributor-covenant.org
70 | [version]: http://contributor-covenant.org/version/1/4/
71 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 hexadog
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Laravel Theme Installer
2 | [](//packagist.org/packages/hexadog/laravel-theme-installer) [](//packagist.org/packages/hexadog/laravel-theme-installer) [](//packagist.org/packages/hexadog/laravel-theme-installer)
3 |
4 |
5 | This package is a fork of [Laravel Module Installer](https://github.com/joshbrw/laravel-module-installer) to work with Theme packages.
6 | It allows installation of standalone Theme package into the `themes/` directory instead of `vendor/`.
7 |
8 | For example if your Theme package name is `hexadog/admin-theme` then the package will be installed into `themes/hexadog/admin` directory.
9 |
10 | You can specify an alternate directory by including a `theme-dir` in the extra data in your composer.json file:
11 |
12 | "extra": {
13 | "theme-dir": "custom"
14 | }
15 |
16 | ## Installation
17 |
18 | 1. Ensure you have the `type` set to `laravel-theme` in your theme's `composer.json`
19 | 2. Require this package: `composer require hexadog/laravel-theme-installer`
20 | 3. Require your bespoke theme using Composer
21 |
22 | ## Notes
23 |
24 | When working on a theme that is version controlled within an app that is also version controlled, you have to commit and push from inside the Theme directory and then `composer update` within the app itself to ensure that the latest version of your theme (dependant upon constraint) is specified in your composer.lock file.
25 |
26 | ## Related projects
27 | - [Laravel Themes Manager](https://github.com/hexadog/laravel-themes-manager): Develop multi-themes Laravel application with ease.
28 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hexadog/laravel-theme-installer",
3 | "type": "composer-plugin",
4 | "license": "MIT",
5 | "support": {
6 | "issues": "https://github.com/hexadog/laravel-theme-installer/issues",
7 | "source": "https://github.com/hexadog/laravel-theme-installer"
8 | },
9 | "authors": [
10 | {
11 | "name": "Gaetan",
12 | "email": "gaetan@hexadog.com"
13 | }
14 | ],
15 | "autoload": {
16 | "psr-0": {
17 | "Hexadog\\LaravelThemeInstaller\\": "src/"
18 | },
19 | "psr-4": {
20 | "Hexadog\\LaravelThemeInstaller\\": "src"
21 | }
22 | },
23 | "extra": {
24 | "class": "Hexadog\\LaravelThemeInstaller\\ThemeInstallerPlugin"
25 | },
26 | "require-dev": {
27 | "composer/composer": "^1.3|^2.7.7",
28 | "mockery/mockery": "^1.4",
29 | "phpunit/phpunit": "^7.0|^8.0|^9.0"
30 | },
31 | "require": {
32 | "composer-plugin-api": "^1.1|^2.0",
33 | "php": "^7.3|^8.0"
34 | },
35 | "scripts": {
36 | "test": "vendor/bin/phpunit",
37 | "test:windows": "vendor\\bin\\phpunit",
38 | "check-style": "vendor/bin/phpcs --extensions=php ./src",
39 | "fix-style": "vendor/bin/phpcbf --extensions=php ./src"
40 | }
41 | }
--------------------------------------------------------------------------------
/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": "c3b828132c4ae1e951b5a39ea391fb8d",
8 | "packages": [],
9 | "packages-dev": [
10 | {
11 | "name": "composer/ca-bundle",
12 | "version": "1.5.1",
13 | "source": {
14 | "type": "git",
15 | "url": "https://github.com/composer/ca-bundle.git",
16 | "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a"
17 | },
18 | "dist": {
19 | "type": "zip",
20 | "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a",
21 | "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a",
22 | "shasum": ""
23 | },
24 | "require": {
25 | "ext-openssl": "*",
26 | "ext-pcre": "*",
27 | "php": "^7.2 || ^8.0"
28 | },
29 | "require-dev": {
30 | "phpstan/phpstan": "^1.10",
31 | "psr/log": "^1.0 || ^2.0 || ^3.0",
32 | "symfony/phpunit-bridge": "^4.2 || ^5",
33 | "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0"
34 | },
35 | "type": "library",
36 | "extra": {
37 | "branch-alias": {
38 | "dev-main": "1.x-dev"
39 | }
40 | },
41 | "autoload": {
42 | "psr-4": {
43 | "Composer\\CaBundle\\": "src"
44 | }
45 | },
46 | "notification-url": "https://packagist.org/downloads/",
47 | "license": [
48 | "MIT"
49 | ],
50 | "authors": [
51 | {
52 | "name": "Jordi Boggiano",
53 | "email": "j.boggiano@seld.be",
54 | "homepage": "http://seld.be"
55 | }
56 | ],
57 | "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
58 | "keywords": [
59 | "cabundle",
60 | "cacert",
61 | "certificate",
62 | "ssl",
63 | "tls"
64 | ],
65 | "support": {
66 | "irc": "irc://irc.freenode.org/composer",
67 | "issues": "https://github.com/composer/ca-bundle/issues",
68 | "source": "https://github.com/composer/ca-bundle/tree/1.5.1"
69 | },
70 | "funding": [
71 | {
72 | "url": "https://packagist.com",
73 | "type": "custom"
74 | },
75 | {
76 | "url": "https://github.com/composer",
77 | "type": "github"
78 | },
79 | {
80 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
81 | "type": "tidelift"
82 | }
83 | ],
84 | "time": "2024-07-08T15:28:20+00:00"
85 | },
86 | {
87 | "name": "composer/class-map-generator",
88 | "version": "1.3.4",
89 | "source": {
90 | "type": "git",
91 | "url": "https://github.com/composer/class-map-generator.git",
92 | "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3"
93 | },
94 | "dist": {
95 | "type": "zip",
96 | "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3",
97 | "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3",
98 | "shasum": ""
99 | },
100 | "require": {
101 | "composer/pcre": "^2.1 || ^3.1",
102 | "php": "^7.2 || ^8.0",
103 | "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
104 | },
105 | "require-dev": {
106 | "phpstan/phpstan": "^1.6",
107 | "phpstan/phpstan-deprecation-rules": "^1",
108 | "phpstan/phpstan-phpunit": "^1",
109 | "phpstan/phpstan-strict-rules": "^1.1",
110 | "symfony/filesystem": "^5.4 || ^6",
111 | "symfony/phpunit-bridge": "^5"
112 | },
113 | "type": "library",
114 | "extra": {
115 | "branch-alias": {
116 | "dev-main": "1.x-dev"
117 | }
118 | },
119 | "autoload": {
120 | "psr-4": {
121 | "Composer\\ClassMapGenerator\\": "src"
122 | }
123 | },
124 | "notification-url": "https://packagist.org/downloads/",
125 | "license": [
126 | "MIT"
127 | ],
128 | "authors": [
129 | {
130 | "name": "Jordi Boggiano",
131 | "email": "j.boggiano@seld.be",
132 | "homepage": "https://seld.be"
133 | }
134 | ],
135 | "description": "Utilities to scan PHP code and generate class maps.",
136 | "keywords": [
137 | "classmap"
138 | ],
139 | "support": {
140 | "issues": "https://github.com/composer/class-map-generator/issues",
141 | "source": "https://github.com/composer/class-map-generator/tree/1.3.4"
142 | },
143 | "funding": [
144 | {
145 | "url": "https://packagist.com",
146 | "type": "custom"
147 | },
148 | {
149 | "url": "https://github.com/composer",
150 | "type": "github"
151 | },
152 | {
153 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
154 | "type": "tidelift"
155 | }
156 | ],
157 | "time": "2024-06-12T14:13:04+00:00"
158 | },
159 | {
160 | "name": "composer/composer",
161 | "version": "2.7.7",
162 | "source": {
163 | "type": "git",
164 | "url": "https://github.com/composer/composer.git",
165 | "reference": "291942978f39435cf904d33739f98d7d4eca7b23"
166 | },
167 | "dist": {
168 | "type": "zip",
169 | "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23",
170 | "reference": "291942978f39435cf904d33739f98d7d4eca7b23",
171 | "shasum": ""
172 | },
173 | "require": {
174 | "composer/ca-bundle": "^1.0",
175 | "composer/class-map-generator": "^1.3.3",
176 | "composer/metadata-minifier": "^1.0",
177 | "composer/pcre": "^2.1 || ^3.1",
178 | "composer/semver": "^3.3",
179 | "composer/spdx-licenses": "^1.5.7",
180 | "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
181 | "justinrainbow/json-schema": "^5.2.11",
182 | "php": "^7.2.5 || ^8.0",
183 | "psr/log": "^1.0 || ^2.0 || ^3.0",
184 | "react/promise": "^2.8 || ^3",
185 | "seld/jsonlint": "^1.4",
186 | "seld/phar-utils": "^1.2",
187 | "seld/signal-handler": "^2.0",
188 | "symfony/console": "^5.4.11 || ^6.0.11 || ^7",
189 | "symfony/filesystem": "^5.4 || ^6.0 || ^7",
190 | "symfony/finder": "^5.4 || ^6.0 || ^7",
191 | "symfony/polyfill-php73": "^1.24",
192 | "symfony/polyfill-php80": "^1.24",
193 | "symfony/polyfill-php81": "^1.24",
194 | "symfony/process": "^5.4 || ^6.0 || ^7"
195 | },
196 | "require-dev": {
197 | "phpstan/phpstan": "^1.11.0",
198 | "phpstan/phpstan-deprecation-rules": "^1.2.0",
199 | "phpstan/phpstan-phpunit": "^1.4.0",
200 | "phpstan/phpstan-strict-rules": "^1.6.0",
201 | "phpstan/phpstan-symfony": "^1.4.0",
202 | "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1"
203 | },
204 | "suggest": {
205 | "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
206 | "ext-zip": "Enabling the zip extension allows you to unzip archives",
207 | "ext-zlib": "Allow gzip compression of HTTP requests"
208 | },
209 | "bin": [
210 | "bin/composer"
211 | ],
212 | "type": "library",
213 | "extra": {
214 | "branch-alias": {
215 | "dev-main": "2.7-dev"
216 | },
217 | "phpstan": {
218 | "includes": [
219 | "phpstan/rules.neon"
220 | ]
221 | }
222 | },
223 | "autoload": {
224 | "psr-4": {
225 | "Composer\\": "src/Composer/"
226 | }
227 | },
228 | "notification-url": "https://packagist.org/downloads/",
229 | "license": [
230 | "MIT"
231 | ],
232 | "authors": [
233 | {
234 | "name": "Nils Adermann",
235 | "email": "naderman@naderman.de",
236 | "homepage": "https://www.naderman.de"
237 | },
238 | {
239 | "name": "Jordi Boggiano",
240 | "email": "j.boggiano@seld.be",
241 | "homepage": "https://seld.be"
242 | }
243 | ],
244 | "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.",
245 | "homepage": "https://getcomposer.org/",
246 | "keywords": [
247 | "autoload",
248 | "dependency",
249 | "package"
250 | ],
251 | "support": {
252 | "irc": "ircs://irc.libera.chat:6697/composer",
253 | "issues": "https://github.com/composer/composer/issues",
254 | "security": "https://github.com/composer/composer/security/policy",
255 | "source": "https://github.com/composer/composer/tree/2.7.7"
256 | },
257 | "funding": [
258 | {
259 | "url": "https://packagist.com",
260 | "type": "custom"
261 | },
262 | {
263 | "url": "https://github.com/composer",
264 | "type": "github"
265 | },
266 | {
267 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
268 | "type": "tidelift"
269 | }
270 | ],
271 | "time": "2024-06-10T20:11:12+00:00"
272 | },
273 | {
274 | "name": "composer/metadata-minifier",
275 | "version": "1.0.0",
276 | "source": {
277 | "type": "git",
278 | "url": "https://github.com/composer/metadata-minifier.git",
279 | "reference": "c549d23829536f0d0e984aaabbf02af91f443207"
280 | },
281 | "dist": {
282 | "type": "zip",
283 | "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
284 | "reference": "c549d23829536f0d0e984aaabbf02af91f443207",
285 | "shasum": ""
286 | },
287 | "require": {
288 | "php": "^5.3.2 || ^7.0 || ^8.0"
289 | },
290 | "require-dev": {
291 | "composer/composer": "^2",
292 | "phpstan/phpstan": "^0.12.55",
293 | "symfony/phpunit-bridge": "^4.2 || ^5"
294 | },
295 | "type": "library",
296 | "extra": {
297 | "branch-alias": {
298 | "dev-main": "1.x-dev"
299 | }
300 | },
301 | "autoload": {
302 | "psr-4": {
303 | "Composer\\MetadataMinifier\\": "src"
304 | }
305 | },
306 | "notification-url": "https://packagist.org/downloads/",
307 | "license": [
308 | "MIT"
309 | ],
310 | "authors": [
311 | {
312 | "name": "Jordi Boggiano",
313 | "email": "j.boggiano@seld.be",
314 | "homepage": "http://seld.be"
315 | }
316 | ],
317 | "description": "Small utility library that handles metadata minification and expansion.",
318 | "keywords": [
319 | "composer",
320 | "compression"
321 | ],
322 | "support": {
323 | "issues": "https://github.com/composer/metadata-minifier/issues",
324 | "source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
325 | },
326 | "funding": [
327 | {
328 | "url": "https://packagist.com",
329 | "type": "custom"
330 | },
331 | {
332 | "url": "https://github.com/composer",
333 | "type": "github"
334 | },
335 | {
336 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
337 | "type": "tidelift"
338 | }
339 | ],
340 | "time": "2021-04-07T13:37:33+00:00"
341 | },
342 | {
343 | "name": "composer/pcre",
344 | "version": "3.2.0",
345 | "source": {
346 | "type": "git",
347 | "url": "https://github.com/composer/pcre.git",
348 | "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90"
349 | },
350 | "dist": {
351 | "type": "zip",
352 | "url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
353 | "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
354 | "shasum": ""
355 | },
356 | "require": {
357 | "php": "^7.4 || ^8.0"
358 | },
359 | "conflict": {
360 | "phpstan/phpstan": "<1.11.8"
361 | },
362 | "require-dev": {
363 | "phpstan/phpstan": "^1.11.8",
364 | "phpstan/phpstan-strict-rules": "^1.1",
365 | "phpunit/phpunit": "^8 || ^9"
366 | },
367 | "type": "library",
368 | "extra": {
369 | "branch-alias": {
370 | "dev-main": "3.x-dev"
371 | },
372 | "phpstan": {
373 | "includes": [
374 | "extension.neon"
375 | ]
376 | }
377 | },
378 | "autoload": {
379 | "psr-4": {
380 | "Composer\\Pcre\\": "src"
381 | }
382 | },
383 | "notification-url": "https://packagist.org/downloads/",
384 | "license": [
385 | "MIT"
386 | ],
387 | "authors": [
388 | {
389 | "name": "Jordi Boggiano",
390 | "email": "j.boggiano@seld.be",
391 | "homepage": "http://seld.be"
392 | }
393 | ],
394 | "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
395 | "keywords": [
396 | "PCRE",
397 | "preg",
398 | "regex",
399 | "regular expression"
400 | ],
401 | "support": {
402 | "issues": "https://github.com/composer/pcre/issues",
403 | "source": "https://github.com/composer/pcre/tree/3.2.0"
404 | },
405 | "funding": [
406 | {
407 | "url": "https://packagist.com",
408 | "type": "custom"
409 | },
410 | {
411 | "url": "https://github.com/composer",
412 | "type": "github"
413 | },
414 | {
415 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
416 | "type": "tidelift"
417 | }
418 | ],
419 | "time": "2024-07-25T09:36:02+00:00"
420 | },
421 | {
422 | "name": "composer/semver",
423 | "version": "3.4.2",
424 | "source": {
425 | "type": "git",
426 | "url": "https://github.com/composer/semver.git",
427 | "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6"
428 | },
429 | "dist": {
430 | "type": "zip",
431 | "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6",
432 | "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6",
433 | "shasum": ""
434 | },
435 | "require": {
436 | "php": "^5.3.2 || ^7.0 || ^8.0"
437 | },
438 | "require-dev": {
439 | "phpstan/phpstan": "^1.4",
440 | "symfony/phpunit-bridge": "^4.2 || ^5"
441 | },
442 | "type": "library",
443 | "extra": {
444 | "branch-alias": {
445 | "dev-main": "3.x-dev"
446 | }
447 | },
448 | "autoload": {
449 | "psr-4": {
450 | "Composer\\Semver\\": "src"
451 | }
452 | },
453 | "notification-url": "https://packagist.org/downloads/",
454 | "license": [
455 | "MIT"
456 | ],
457 | "authors": [
458 | {
459 | "name": "Nils Adermann",
460 | "email": "naderman@naderman.de",
461 | "homepage": "http://www.naderman.de"
462 | },
463 | {
464 | "name": "Jordi Boggiano",
465 | "email": "j.boggiano@seld.be",
466 | "homepage": "http://seld.be"
467 | },
468 | {
469 | "name": "Rob Bast",
470 | "email": "rob.bast@gmail.com",
471 | "homepage": "http://robbast.nl"
472 | }
473 | ],
474 | "description": "Semver library that offers utilities, version constraint parsing and validation.",
475 | "keywords": [
476 | "semantic",
477 | "semver",
478 | "validation",
479 | "versioning"
480 | ],
481 | "support": {
482 | "irc": "ircs://irc.libera.chat:6697/composer",
483 | "issues": "https://github.com/composer/semver/issues",
484 | "source": "https://github.com/composer/semver/tree/3.4.2"
485 | },
486 | "funding": [
487 | {
488 | "url": "https://packagist.com",
489 | "type": "custom"
490 | },
491 | {
492 | "url": "https://github.com/composer",
493 | "type": "github"
494 | },
495 | {
496 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
497 | "type": "tidelift"
498 | }
499 | ],
500 | "time": "2024-07-12T11:35:52+00:00"
501 | },
502 | {
503 | "name": "composer/spdx-licenses",
504 | "version": "1.5.8",
505 | "source": {
506 | "type": "git",
507 | "url": "https://github.com/composer/spdx-licenses.git",
508 | "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
509 | },
510 | "dist": {
511 | "type": "zip",
512 | "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
513 | "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
514 | "shasum": ""
515 | },
516 | "require": {
517 | "php": "^5.3.2 || ^7.0 || ^8.0"
518 | },
519 | "require-dev": {
520 | "phpstan/phpstan": "^0.12.55",
521 | "symfony/phpunit-bridge": "^4.2 || ^5"
522 | },
523 | "type": "library",
524 | "extra": {
525 | "branch-alias": {
526 | "dev-main": "1.x-dev"
527 | }
528 | },
529 | "autoload": {
530 | "psr-4": {
531 | "Composer\\Spdx\\": "src"
532 | }
533 | },
534 | "notification-url": "https://packagist.org/downloads/",
535 | "license": [
536 | "MIT"
537 | ],
538 | "authors": [
539 | {
540 | "name": "Nils Adermann",
541 | "email": "naderman@naderman.de",
542 | "homepage": "http://www.naderman.de"
543 | },
544 | {
545 | "name": "Jordi Boggiano",
546 | "email": "j.boggiano@seld.be",
547 | "homepage": "http://seld.be"
548 | },
549 | {
550 | "name": "Rob Bast",
551 | "email": "rob.bast@gmail.com",
552 | "homepage": "http://robbast.nl"
553 | }
554 | ],
555 | "description": "SPDX licenses list and validation library.",
556 | "keywords": [
557 | "license",
558 | "spdx",
559 | "validator"
560 | ],
561 | "support": {
562 | "irc": "ircs://irc.libera.chat:6697/composer",
563 | "issues": "https://github.com/composer/spdx-licenses/issues",
564 | "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
565 | },
566 | "funding": [
567 | {
568 | "url": "https://packagist.com",
569 | "type": "custom"
570 | },
571 | {
572 | "url": "https://github.com/composer",
573 | "type": "github"
574 | },
575 | {
576 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
577 | "type": "tidelift"
578 | }
579 | ],
580 | "time": "2023-11-20T07:44:33+00:00"
581 | },
582 | {
583 | "name": "composer/xdebug-handler",
584 | "version": "3.0.5",
585 | "source": {
586 | "type": "git",
587 | "url": "https://github.com/composer/xdebug-handler.git",
588 | "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
589 | },
590 | "dist": {
591 | "type": "zip",
592 | "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
593 | "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
594 | "shasum": ""
595 | },
596 | "require": {
597 | "composer/pcre": "^1 || ^2 || ^3",
598 | "php": "^7.2.5 || ^8.0",
599 | "psr/log": "^1 || ^2 || ^3"
600 | },
601 | "require-dev": {
602 | "phpstan/phpstan": "^1.0",
603 | "phpstan/phpstan-strict-rules": "^1.1",
604 | "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
605 | },
606 | "type": "library",
607 | "autoload": {
608 | "psr-4": {
609 | "Composer\\XdebugHandler\\": "src"
610 | }
611 | },
612 | "notification-url": "https://packagist.org/downloads/",
613 | "license": [
614 | "MIT"
615 | ],
616 | "authors": [
617 | {
618 | "name": "John Stevenson",
619 | "email": "john-stevenson@blueyonder.co.uk"
620 | }
621 | ],
622 | "description": "Restarts a process without Xdebug.",
623 | "keywords": [
624 | "Xdebug",
625 | "performance"
626 | ],
627 | "support": {
628 | "irc": "ircs://irc.libera.chat:6697/composer",
629 | "issues": "https://github.com/composer/xdebug-handler/issues",
630 | "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
631 | },
632 | "funding": [
633 | {
634 | "url": "https://packagist.com",
635 | "type": "custom"
636 | },
637 | {
638 | "url": "https://github.com/composer",
639 | "type": "github"
640 | },
641 | {
642 | "url": "https://tidelift.com/funding/github/packagist/composer/composer",
643 | "type": "tidelift"
644 | }
645 | ],
646 | "time": "2024-05-06T16:37:16+00:00"
647 | },
648 | {
649 | "name": "doctrine/instantiator",
650 | "version": "2.0.0",
651 | "source": {
652 | "type": "git",
653 | "url": "https://github.com/doctrine/instantiator.git",
654 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
655 | },
656 | "dist": {
657 | "type": "zip",
658 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
659 | "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
660 | "shasum": ""
661 | },
662 | "require": {
663 | "php": "^8.1"
664 | },
665 | "require-dev": {
666 | "doctrine/coding-standard": "^11",
667 | "ext-pdo": "*",
668 | "ext-phar": "*",
669 | "phpbench/phpbench": "^1.2",
670 | "phpstan/phpstan": "^1.9.4",
671 | "phpstan/phpstan-phpunit": "^1.3",
672 | "phpunit/phpunit": "^9.5.27",
673 | "vimeo/psalm": "^5.4"
674 | },
675 | "type": "library",
676 | "autoload": {
677 | "psr-4": {
678 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
679 | }
680 | },
681 | "notification-url": "https://packagist.org/downloads/",
682 | "license": [
683 | "MIT"
684 | ],
685 | "authors": [
686 | {
687 | "name": "Marco Pivetta",
688 | "email": "ocramius@gmail.com",
689 | "homepage": "https://ocramius.github.io/"
690 | }
691 | ],
692 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
693 | "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
694 | "keywords": [
695 | "constructor",
696 | "instantiate"
697 | ],
698 | "support": {
699 | "issues": "https://github.com/doctrine/instantiator/issues",
700 | "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
701 | },
702 | "funding": [
703 | {
704 | "url": "https://www.doctrine-project.org/sponsorship.html",
705 | "type": "custom"
706 | },
707 | {
708 | "url": "https://www.patreon.com/phpdoctrine",
709 | "type": "patreon"
710 | },
711 | {
712 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
713 | "type": "tidelift"
714 | }
715 | ],
716 | "time": "2022-12-30T00:23:10+00:00"
717 | },
718 | {
719 | "name": "hamcrest/hamcrest-php",
720 | "version": "v2.0.1",
721 | "source": {
722 | "type": "git",
723 | "url": "https://github.com/hamcrest/hamcrest-php.git",
724 | "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
725 | },
726 | "dist": {
727 | "type": "zip",
728 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
729 | "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
730 | "shasum": ""
731 | },
732 | "require": {
733 | "php": "^5.3|^7.0|^8.0"
734 | },
735 | "replace": {
736 | "cordoval/hamcrest-php": "*",
737 | "davedevelopment/hamcrest-php": "*",
738 | "kodova/hamcrest-php": "*"
739 | },
740 | "require-dev": {
741 | "phpunit/php-file-iterator": "^1.4 || ^2.0",
742 | "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
743 | },
744 | "type": "library",
745 | "extra": {
746 | "branch-alias": {
747 | "dev-master": "2.1-dev"
748 | }
749 | },
750 | "autoload": {
751 | "classmap": [
752 | "hamcrest"
753 | ]
754 | },
755 | "notification-url": "https://packagist.org/downloads/",
756 | "license": [
757 | "BSD-3-Clause"
758 | ],
759 | "description": "This is the PHP port of Hamcrest Matchers",
760 | "keywords": [
761 | "test"
762 | ],
763 | "support": {
764 | "issues": "https://github.com/hamcrest/hamcrest-php/issues",
765 | "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
766 | },
767 | "time": "2020-07-09T08:09:16+00:00"
768 | },
769 | {
770 | "name": "justinrainbow/json-schema",
771 | "version": "5.3.0",
772 | "source": {
773 | "type": "git",
774 | "url": "https://github.com/jsonrainbow/json-schema.git",
775 | "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
776 | },
777 | "dist": {
778 | "type": "zip",
779 | "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
780 | "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
781 | "shasum": ""
782 | },
783 | "require": {
784 | "php": ">=7.1"
785 | },
786 | "require-dev": {
787 | "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
788 | "json-schema/json-schema-test-suite": "1.2.0",
789 | "phpunit/phpunit": "^4.8.35"
790 | },
791 | "bin": [
792 | "bin/validate-json"
793 | ],
794 | "type": "library",
795 | "autoload": {
796 | "psr-4": {
797 | "JsonSchema\\": "src/JsonSchema/"
798 | }
799 | },
800 | "notification-url": "https://packagist.org/downloads/",
801 | "license": [
802 | "MIT"
803 | ],
804 | "authors": [
805 | {
806 | "name": "Bruno Prieto Reis",
807 | "email": "bruno.p.reis@gmail.com"
808 | },
809 | {
810 | "name": "Justin Rainbow",
811 | "email": "justin.rainbow@gmail.com"
812 | },
813 | {
814 | "name": "Igor Wiedler",
815 | "email": "igor@wiedler.ch"
816 | },
817 | {
818 | "name": "Robert Schönthal",
819 | "email": "seroscho@googlemail.com"
820 | }
821 | ],
822 | "description": "A library to validate a json schema.",
823 | "homepage": "https://github.com/justinrainbow/json-schema",
824 | "keywords": [
825 | "json",
826 | "schema"
827 | ],
828 | "support": {
829 | "issues": "https://github.com/jsonrainbow/json-schema/issues",
830 | "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
831 | },
832 | "time": "2024-07-06T21:00:26+00:00"
833 | },
834 | {
835 | "name": "mockery/mockery",
836 | "version": "1.6.12",
837 | "source": {
838 | "type": "git",
839 | "url": "https://github.com/mockery/mockery.git",
840 | "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
841 | },
842 | "dist": {
843 | "type": "zip",
844 | "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
845 | "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
846 | "shasum": ""
847 | },
848 | "require": {
849 | "hamcrest/hamcrest-php": "^2.0.1",
850 | "lib-pcre": ">=7.0",
851 | "php": ">=7.3"
852 | },
853 | "conflict": {
854 | "phpunit/phpunit": "<8.0"
855 | },
856 | "require-dev": {
857 | "phpunit/phpunit": "^8.5 || ^9.6.17",
858 | "symplify/easy-coding-standard": "^12.1.14"
859 | },
860 | "type": "library",
861 | "autoload": {
862 | "files": [
863 | "library/helpers.php",
864 | "library/Mockery.php"
865 | ],
866 | "psr-4": {
867 | "Mockery\\": "library/Mockery"
868 | }
869 | },
870 | "notification-url": "https://packagist.org/downloads/",
871 | "license": [
872 | "BSD-3-Clause"
873 | ],
874 | "authors": [
875 | {
876 | "name": "Pádraic Brady",
877 | "email": "padraic.brady@gmail.com",
878 | "homepage": "https://github.com/padraic",
879 | "role": "Author"
880 | },
881 | {
882 | "name": "Dave Marshall",
883 | "email": "dave.marshall@atstsolutions.co.uk",
884 | "homepage": "https://davedevelopment.co.uk",
885 | "role": "Developer"
886 | },
887 | {
888 | "name": "Nathanael Esayeas",
889 | "email": "nathanael.esayeas@protonmail.com",
890 | "homepage": "https://github.com/ghostwriter",
891 | "role": "Lead Developer"
892 | }
893 | ],
894 | "description": "Mockery is a simple yet flexible PHP mock object framework",
895 | "homepage": "https://github.com/mockery/mockery",
896 | "keywords": [
897 | "BDD",
898 | "TDD",
899 | "library",
900 | "mock",
901 | "mock objects",
902 | "mockery",
903 | "stub",
904 | "test",
905 | "test double",
906 | "testing"
907 | ],
908 | "support": {
909 | "docs": "https://docs.mockery.io/",
910 | "issues": "https://github.com/mockery/mockery/issues",
911 | "rss": "https://github.com/mockery/mockery/releases.atom",
912 | "security": "https://github.com/mockery/mockery/security/advisories",
913 | "source": "https://github.com/mockery/mockery"
914 | },
915 | "time": "2024-05-16T03:13:13+00:00"
916 | },
917 | {
918 | "name": "myclabs/deep-copy",
919 | "version": "1.12.0",
920 | "source": {
921 | "type": "git",
922 | "url": "https://github.com/myclabs/DeepCopy.git",
923 | "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
924 | },
925 | "dist": {
926 | "type": "zip",
927 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
928 | "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
929 | "shasum": ""
930 | },
931 | "require": {
932 | "php": "^7.1 || ^8.0"
933 | },
934 | "conflict": {
935 | "doctrine/collections": "<1.6.8",
936 | "doctrine/common": "<2.13.3 || >=3 <3.2.2"
937 | },
938 | "require-dev": {
939 | "doctrine/collections": "^1.6.8",
940 | "doctrine/common": "^2.13.3 || ^3.2.2",
941 | "phpspec/prophecy": "^1.10",
942 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
943 | },
944 | "type": "library",
945 | "autoload": {
946 | "files": [
947 | "src/DeepCopy/deep_copy.php"
948 | ],
949 | "psr-4": {
950 | "DeepCopy\\": "src/DeepCopy/"
951 | }
952 | },
953 | "notification-url": "https://packagist.org/downloads/",
954 | "license": [
955 | "MIT"
956 | ],
957 | "description": "Create deep copies (clones) of your objects",
958 | "keywords": [
959 | "clone",
960 | "copy",
961 | "duplicate",
962 | "object",
963 | "object graph"
964 | ],
965 | "support": {
966 | "issues": "https://github.com/myclabs/DeepCopy/issues",
967 | "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
968 | },
969 | "funding": [
970 | {
971 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
972 | "type": "tidelift"
973 | }
974 | ],
975 | "time": "2024-06-12T14:39:25+00:00"
976 | },
977 | {
978 | "name": "nikic/php-parser",
979 | "version": "v5.1.0",
980 | "source": {
981 | "type": "git",
982 | "url": "https://github.com/nikic/PHP-Parser.git",
983 | "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1"
984 | },
985 | "dist": {
986 | "type": "zip",
987 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1",
988 | "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1",
989 | "shasum": ""
990 | },
991 | "require": {
992 | "ext-ctype": "*",
993 | "ext-json": "*",
994 | "ext-tokenizer": "*",
995 | "php": ">=7.4"
996 | },
997 | "require-dev": {
998 | "ircmaxell/php-yacc": "^0.0.7",
999 | "phpunit/phpunit": "^9.0"
1000 | },
1001 | "bin": [
1002 | "bin/php-parse"
1003 | ],
1004 | "type": "library",
1005 | "extra": {
1006 | "branch-alias": {
1007 | "dev-master": "5.0-dev"
1008 | }
1009 | },
1010 | "autoload": {
1011 | "psr-4": {
1012 | "PhpParser\\": "lib/PhpParser"
1013 | }
1014 | },
1015 | "notification-url": "https://packagist.org/downloads/",
1016 | "license": [
1017 | "BSD-3-Clause"
1018 | ],
1019 | "authors": [
1020 | {
1021 | "name": "Nikita Popov"
1022 | }
1023 | ],
1024 | "description": "A PHP parser written in PHP",
1025 | "keywords": [
1026 | "parser",
1027 | "php"
1028 | ],
1029 | "support": {
1030 | "issues": "https://github.com/nikic/PHP-Parser/issues",
1031 | "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0"
1032 | },
1033 | "time": "2024-07-01T20:03:41+00:00"
1034 | },
1035 | {
1036 | "name": "phar-io/manifest",
1037 | "version": "2.0.4",
1038 | "source": {
1039 | "type": "git",
1040 | "url": "https://github.com/phar-io/manifest.git",
1041 | "reference": "54750ef60c58e43759730615a392c31c80e23176"
1042 | },
1043 | "dist": {
1044 | "type": "zip",
1045 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
1046 | "reference": "54750ef60c58e43759730615a392c31c80e23176",
1047 | "shasum": ""
1048 | },
1049 | "require": {
1050 | "ext-dom": "*",
1051 | "ext-libxml": "*",
1052 | "ext-phar": "*",
1053 | "ext-xmlwriter": "*",
1054 | "phar-io/version": "^3.0.1",
1055 | "php": "^7.2 || ^8.0"
1056 | },
1057 | "type": "library",
1058 | "extra": {
1059 | "branch-alias": {
1060 | "dev-master": "2.0.x-dev"
1061 | }
1062 | },
1063 | "autoload": {
1064 | "classmap": [
1065 | "src/"
1066 | ]
1067 | },
1068 | "notification-url": "https://packagist.org/downloads/",
1069 | "license": [
1070 | "BSD-3-Clause"
1071 | ],
1072 | "authors": [
1073 | {
1074 | "name": "Arne Blankerts",
1075 | "email": "arne@blankerts.de",
1076 | "role": "Developer"
1077 | },
1078 | {
1079 | "name": "Sebastian Heuer",
1080 | "email": "sebastian@phpeople.de",
1081 | "role": "Developer"
1082 | },
1083 | {
1084 | "name": "Sebastian Bergmann",
1085 | "email": "sebastian@phpunit.de",
1086 | "role": "Developer"
1087 | }
1088 | ],
1089 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
1090 | "support": {
1091 | "issues": "https://github.com/phar-io/manifest/issues",
1092 | "source": "https://github.com/phar-io/manifest/tree/2.0.4"
1093 | },
1094 | "funding": [
1095 | {
1096 | "url": "https://github.com/theseer",
1097 | "type": "github"
1098 | }
1099 | ],
1100 | "time": "2024-03-03T12:33:53+00:00"
1101 | },
1102 | {
1103 | "name": "phar-io/version",
1104 | "version": "3.2.1",
1105 | "source": {
1106 | "type": "git",
1107 | "url": "https://github.com/phar-io/version.git",
1108 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
1109 | },
1110 | "dist": {
1111 | "type": "zip",
1112 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1113 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1114 | "shasum": ""
1115 | },
1116 | "require": {
1117 | "php": "^7.2 || ^8.0"
1118 | },
1119 | "type": "library",
1120 | "autoload": {
1121 | "classmap": [
1122 | "src/"
1123 | ]
1124 | },
1125 | "notification-url": "https://packagist.org/downloads/",
1126 | "license": [
1127 | "BSD-3-Clause"
1128 | ],
1129 | "authors": [
1130 | {
1131 | "name": "Arne Blankerts",
1132 | "email": "arne@blankerts.de",
1133 | "role": "Developer"
1134 | },
1135 | {
1136 | "name": "Sebastian Heuer",
1137 | "email": "sebastian@phpeople.de",
1138 | "role": "Developer"
1139 | },
1140 | {
1141 | "name": "Sebastian Bergmann",
1142 | "email": "sebastian@phpunit.de",
1143 | "role": "Developer"
1144 | }
1145 | ],
1146 | "description": "Library for handling version information and constraints",
1147 | "support": {
1148 | "issues": "https://github.com/phar-io/version/issues",
1149 | "source": "https://github.com/phar-io/version/tree/3.2.1"
1150 | },
1151 | "time": "2022-02-21T01:04:05+00:00"
1152 | },
1153 | {
1154 | "name": "phpunit/php-code-coverage",
1155 | "version": "9.2.31",
1156 | "source": {
1157 | "type": "git",
1158 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1159 | "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965"
1160 | },
1161 | "dist": {
1162 | "type": "zip",
1163 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965",
1164 | "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965",
1165 | "shasum": ""
1166 | },
1167 | "require": {
1168 | "ext-dom": "*",
1169 | "ext-libxml": "*",
1170 | "ext-xmlwriter": "*",
1171 | "nikic/php-parser": "^4.18 || ^5.0",
1172 | "php": ">=7.3",
1173 | "phpunit/php-file-iterator": "^3.0.3",
1174 | "phpunit/php-text-template": "^2.0.2",
1175 | "sebastian/code-unit-reverse-lookup": "^2.0.2",
1176 | "sebastian/complexity": "^2.0",
1177 | "sebastian/environment": "^5.1.2",
1178 | "sebastian/lines-of-code": "^1.0.3",
1179 | "sebastian/version": "^3.0.1",
1180 | "theseer/tokenizer": "^1.2.0"
1181 | },
1182 | "require-dev": {
1183 | "phpunit/phpunit": "^9.3"
1184 | },
1185 | "suggest": {
1186 | "ext-pcov": "PHP extension that provides line coverage",
1187 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
1188 | },
1189 | "type": "library",
1190 | "extra": {
1191 | "branch-alias": {
1192 | "dev-master": "9.2-dev"
1193 | }
1194 | },
1195 | "autoload": {
1196 | "classmap": [
1197 | "src/"
1198 | ]
1199 | },
1200 | "notification-url": "https://packagist.org/downloads/",
1201 | "license": [
1202 | "BSD-3-Clause"
1203 | ],
1204 | "authors": [
1205 | {
1206 | "name": "Sebastian Bergmann",
1207 | "email": "sebastian@phpunit.de",
1208 | "role": "lead"
1209 | }
1210 | ],
1211 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1212 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1213 | "keywords": [
1214 | "coverage",
1215 | "testing",
1216 | "xunit"
1217 | ],
1218 | "support": {
1219 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
1220 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
1221 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31"
1222 | },
1223 | "funding": [
1224 | {
1225 | "url": "https://github.com/sebastianbergmann",
1226 | "type": "github"
1227 | }
1228 | ],
1229 | "time": "2024-03-02T06:37:42+00:00"
1230 | },
1231 | {
1232 | "name": "phpunit/php-file-iterator",
1233 | "version": "3.0.6",
1234 | "source": {
1235 | "type": "git",
1236 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1237 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
1238 | },
1239 | "dist": {
1240 | "type": "zip",
1241 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
1242 | "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
1243 | "shasum": ""
1244 | },
1245 | "require": {
1246 | "php": ">=7.3"
1247 | },
1248 | "require-dev": {
1249 | "phpunit/phpunit": "^9.3"
1250 | },
1251 | "type": "library",
1252 | "extra": {
1253 | "branch-alias": {
1254 | "dev-master": "3.0-dev"
1255 | }
1256 | },
1257 | "autoload": {
1258 | "classmap": [
1259 | "src/"
1260 | ]
1261 | },
1262 | "notification-url": "https://packagist.org/downloads/",
1263 | "license": [
1264 | "BSD-3-Clause"
1265 | ],
1266 | "authors": [
1267 | {
1268 | "name": "Sebastian Bergmann",
1269 | "email": "sebastian@phpunit.de",
1270 | "role": "lead"
1271 | }
1272 | ],
1273 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1274 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1275 | "keywords": [
1276 | "filesystem",
1277 | "iterator"
1278 | ],
1279 | "support": {
1280 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
1281 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
1282 | },
1283 | "funding": [
1284 | {
1285 | "url": "https://github.com/sebastianbergmann",
1286 | "type": "github"
1287 | }
1288 | ],
1289 | "time": "2021-12-02T12:48:52+00:00"
1290 | },
1291 | {
1292 | "name": "phpunit/php-invoker",
1293 | "version": "3.1.1",
1294 | "source": {
1295 | "type": "git",
1296 | "url": "https://github.com/sebastianbergmann/php-invoker.git",
1297 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
1298 | },
1299 | "dist": {
1300 | "type": "zip",
1301 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
1302 | "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
1303 | "shasum": ""
1304 | },
1305 | "require": {
1306 | "php": ">=7.3"
1307 | },
1308 | "require-dev": {
1309 | "ext-pcntl": "*",
1310 | "phpunit/phpunit": "^9.3"
1311 | },
1312 | "suggest": {
1313 | "ext-pcntl": "*"
1314 | },
1315 | "type": "library",
1316 | "extra": {
1317 | "branch-alias": {
1318 | "dev-master": "3.1-dev"
1319 | }
1320 | },
1321 | "autoload": {
1322 | "classmap": [
1323 | "src/"
1324 | ]
1325 | },
1326 | "notification-url": "https://packagist.org/downloads/",
1327 | "license": [
1328 | "BSD-3-Clause"
1329 | ],
1330 | "authors": [
1331 | {
1332 | "name": "Sebastian Bergmann",
1333 | "email": "sebastian@phpunit.de",
1334 | "role": "lead"
1335 | }
1336 | ],
1337 | "description": "Invoke callables with a timeout",
1338 | "homepage": "https://github.com/sebastianbergmann/php-invoker/",
1339 | "keywords": [
1340 | "process"
1341 | ],
1342 | "support": {
1343 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
1344 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
1345 | },
1346 | "funding": [
1347 | {
1348 | "url": "https://github.com/sebastianbergmann",
1349 | "type": "github"
1350 | }
1351 | ],
1352 | "time": "2020-09-28T05:58:55+00:00"
1353 | },
1354 | {
1355 | "name": "phpunit/php-text-template",
1356 | "version": "2.0.4",
1357 | "source": {
1358 | "type": "git",
1359 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
1360 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
1361 | },
1362 | "dist": {
1363 | "type": "zip",
1364 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
1365 | "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
1366 | "shasum": ""
1367 | },
1368 | "require": {
1369 | "php": ">=7.3"
1370 | },
1371 | "require-dev": {
1372 | "phpunit/phpunit": "^9.3"
1373 | },
1374 | "type": "library",
1375 | "extra": {
1376 | "branch-alias": {
1377 | "dev-master": "2.0-dev"
1378 | }
1379 | },
1380 | "autoload": {
1381 | "classmap": [
1382 | "src/"
1383 | ]
1384 | },
1385 | "notification-url": "https://packagist.org/downloads/",
1386 | "license": [
1387 | "BSD-3-Clause"
1388 | ],
1389 | "authors": [
1390 | {
1391 | "name": "Sebastian Bergmann",
1392 | "email": "sebastian@phpunit.de",
1393 | "role": "lead"
1394 | }
1395 | ],
1396 | "description": "Simple template engine.",
1397 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1398 | "keywords": [
1399 | "template"
1400 | ],
1401 | "support": {
1402 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
1403 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
1404 | },
1405 | "funding": [
1406 | {
1407 | "url": "https://github.com/sebastianbergmann",
1408 | "type": "github"
1409 | }
1410 | ],
1411 | "time": "2020-10-26T05:33:50+00:00"
1412 | },
1413 | {
1414 | "name": "phpunit/php-timer",
1415 | "version": "5.0.3",
1416 | "source": {
1417 | "type": "git",
1418 | "url": "https://github.com/sebastianbergmann/php-timer.git",
1419 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
1420 | },
1421 | "dist": {
1422 | "type": "zip",
1423 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
1424 | "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
1425 | "shasum": ""
1426 | },
1427 | "require": {
1428 | "php": ">=7.3"
1429 | },
1430 | "require-dev": {
1431 | "phpunit/phpunit": "^9.3"
1432 | },
1433 | "type": "library",
1434 | "extra": {
1435 | "branch-alias": {
1436 | "dev-master": "5.0-dev"
1437 | }
1438 | },
1439 | "autoload": {
1440 | "classmap": [
1441 | "src/"
1442 | ]
1443 | },
1444 | "notification-url": "https://packagist.org/downloads/",
1445 | "license": [
1446 | "BSD-3-Clause"
1447 | ],
1448 | "authors": [
1449 | {
1450 | "name": "Sebastian Bergmann",
1451 | "email": "sebastian@phpunit.de",
1452 | "role": "lead"
1453 | }
1454 | ],
1455 | "description": "Utility class for timing",
1456 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
1457 | "keywords": [
1458 | "timer"
1459 | ],
1460 | "support": {
1461 | "issues": "https://github.com/sebastianbergmann/php-timer/issues",
1462 | "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
1463 | },
1464 | "funding": [
1465 | {
1466 | "url": "https://github.com/sebastianbergmann",
1467 | "type": "github"
1468 | }
1469 | ],
1470 | "time": "2020-10-26T13:16:10+00:00"
1471 | },
1472 | {
1473 | "name": "phpunit/phpunit",
1474 | "version": "9.6.20",
1475 | "source": {
1476 | "type": "git",
1477 | "url": "https://github.com/sebastianbergmann/phpunit.git",
1478 | "reference": "49d7820565836236411f5dc002d16dd689cde42f"
1479 | },
1480 | "dist": {
1481 | "type": "zip",
1482 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f",
1483 | "reference": "49d7820565836236411f5dc002d16dd689cde42f",
1484 | "shasum": ""
1485 | },
1486 | "require": {
1487 | "doctrine/instantiator": "^1.5.0 || ^2",
1488 | "ext-dom": "*",
1489 | "ext-json": "*",
1490 | "ext-libxml": "*",
1491 | "ext-mbstring": "*",
1492 | "ext-xml": "*",
1493 | "ext-xmlwriter": "*",
1494 | "myclabs/deep-copy": "^1.12.0",
1495 | "phar-io/manifest": "^2.0.4",
1496 | "phar-io/version": "^3.2.1",
1497 | "php": ">=7.3",
1498 | "phpunit/php-code-coverage": "^9.2.31",
1499 | "phpunit/php-file-iterator": "^3.0.6",
1500 | "phpunit/php-invoker": "^3.1.1",
1501 | "phpunit/php-text-template": "^2.0.4",
1502 | "phpunit/php-timer": "^5.0.3",
1503 | "sebastian/cli-parser": "^1.0.2",
1504 | "sebastian/code-unit": "^1.0.8",
1505 | "sebastian/comparator": "^4.0.8",
1506 | "sebastian/diff": "^4.0.6",
1507 | "sebastian/environment": "^5.1.5",
1508 | "sebastian/exporter": "^4.0.6",
1509 | "sebastian/global-state": "^5.0.7",
1510 | "sebastian/object-enumerator": "^4.0.4",
1511 | "sebastian/resource-operations": "^3.0.4",
1512 | "sebastian/type": "^3.2.1",
1513 | "sebastian/version": "^3.0.2"
1514 | },
1515 | "suggest": {
1516 | "ext-soap": "To be able to generate mocks based on WSDL files",
1517 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
1518 | },
1519 | "bin": [
1520 | "phpunit"
1521 | ],
1522 | "type": "library",
1523 | "extra": {
1524 | "branch-alias": {
1525 | "dev-master": "9.6-dev"
1526 | }
1527 | },
1528 | "autoload": {
1529 | "files": [
1530 | "src/Framework/Assert/Functions.php"
1531 | ],
1532 | "classmap": [
1533 | "src/"
1534 | ]
1535 | },
1536 | "notification-url": "https://packagist.org/downloads/",
1537 | "license": [
1538 | "BSD-3-Clause"
1539 | ],
1540 | "authors": [
1541 | {
1542 | "name": "Sebastian Bergmann",
1543 | "email": "sebastian@phpunit.de",
1544 | "role": "lead"
1545 | }
1546 | ],
1547 | "description": "The PHP Unit Testing framework.",
1548 | "homepage": "https://phpunit.de/",
1549 | "keywords": [
1550 | "phpunit",
1551 | "testing",
1552 | "xunit"
1553 | ],
1554 | "support": {
1555 | "issues": "https://github.com/sebastianbergmann/phpunit/issues",
1556 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
1557 | "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20"
1558 | },
1559 | "funding": [
1560 | {
1561 | "url": "https://phpunit.de/sponsors.html",
1562 | "type": "custom"
1563 | },
1564 | {
1565 | "url": "https://github.com/sebastianbergmann",
1566 | "type": "github"
1567 | },
1568 | {
1569 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
1570 | "type": "tidelift"
1571 | }
1572 | ],
1573 | "time": "2024-07-10T11:45:39+00:00"
1574 | },
1575 | {
1576 | "name": "psr/container",
1577 | "version": "2.0.2",
1578 | "source": {
1579 | "type": "git",
1580 | "url": "https://github.com/php-fig/container.git",
1581 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
1582 | },
1583 | "dist": {
1584 | "type": "zip",
1585 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1586 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1587 | "shasum": ""
1588 | },
1589 | "require": {
1590 | "php": ">=7.4.0"
1591 | },
1592 | "type": "library",
1593 | "extra": {
1594 | "branch-alias": {
1595 | "dev-master": "2.0.x-dev"
1596 | }
1597 | },
1598 | "autoload": {
1599 | "psr-4": {
1600 | "Psr\\Container\\": "src/"
1601 | }
1602 | },
1603 | "notification-url": "https://packagist.org/downloads/",
1604 | "license": [
1605 | "MIT"
1606 | ],
1607 | "authors": [
1608 | {
1609 | "name": "PHP-FIG",
1610 | "homepage": "https://www.php-fig.org/"
1611 | }
1612 | ],
1613 | "description": "Common Container Interface (PHP FIG PSR-11)",
1614 | "homepage": "https://github.com/php-fig/container",
1615 | "keywords": [
1616 | "PSR-11",
1617 | "container",
1618 | "container-interface",
1619 | "container-interop",
1620 | "psr"
1621 | ],
1622 | "support": {
1623 | "issues": "https://github.com/php-fig/container/issues",
1624 | "source": "https://github.com/php-fig/container/tree/2.0.2"
1625 | },
1626 | "time": "2021-11-05T16:47:00+00:00"
1627 | },
1628 | {
1629 | "name": "psr/log",
1630 | "version": "3.0.0",
1631 | "source": {
1632 | "type": "git",
1633 | "url": "https://github.com/php-fig/log.git",
1634 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
1635 | },
1636 | "dist": {
1637 | "type": "zip",
1638 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
1639 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
1640 | "shasum": ""
1641 | },
1642 | "require": {
1643 | "php": ">=8.0.0"
1644 | },
1645 | "type": "library",
1646 | "extra": {
1647 | "branch-alias": {
1648 | "dev-master": "3.x-dev"
1649 | }
1650 | },
1651 | "autoload": {
1652 | "psr-4": {
1653 | "Psr\\Log\\": "src"
1654 | }
1655 | },
1656 | "notification-url": "https://packagist.org/downloads/",
1657 | "license": [
1658 | "MIT"
1659 | ],
1660 | "authors": [
1661 | {
1662 | "name": "PHP-FIG",
1663 | "homepage": "https://www.php-fig.org/"
1664 | }
1665 | ],
1666 | "description": "Common interface for logging libraries",
1667 | "homepage": "https://github.com/php-fig/log",
1668 | "keywords": [
1669 | "log",
1670 | "psr",
1671 | "psr-3"
1672 | ],
1673 | "support": {
1674 | "source": "https://github.com/php-fig/log/tree/3.0.0"
1675 | },
1676 | "time": "2021-07-14T16:46:02+00:00"
1677 | },
1678 | {
1679 | "name": "react/promise",
1680 | "version": "v3.2.0",
1681 | "source": {
1682 | "type": "git",
1683 | "url": "https://github.com/reactphp/promise.git",
1684 | "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
1685 | },
1686 | "dist": {
1687 | "type": "zip",
1688 | "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
1689 | "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
1690 | "shasum": ""
1691 | },
1692 | "require": {
1693 | "php": ">=7.1.0"
1694 | },
1695 | "require-dev": {
1696 | "phpstan/phpstan": "1.10.39 || 1.4.10",
1697 | "phpunit/phpunit": "^9.6 || ^7.5"
1698 | },
1699 | "type": "library",
1700 | "autoload": {
1701 | "files": [
1702 | "src/functions_include.php"
1703 | ],
1704 | "psr-4": {
1705 | "React\\Promise\\": "src/"
1706 | }
1707 | },
1708 | "notification-url": "https://packagist.org/downloads/",
1709 | "license": [
1710 | "MIT"
1711 | ],
1712 | "authors": [
1713 | {
1714 | "name": "Jan Sorgalla",
1715 | "email": "jsorgalla@gmail.com",
1716 | "homepage": "https://sorgalla.com/"
1717 | },
1718 | {
1719 | "name": "Christian Lück",
1720 | "email": "christian@clue.engineering",
1721 | "homepage": "https://clue.engineering/"
1722 | },
1723 | {
1724 | "name": "Cees-Jan Kiewiet",
1725 | "email": "reactphp@ceesjankiewiet.nl",
1726 | "homepage": "https://wyrihaximus.net/"
1727 | },
1728 | {
1729 | "name": "Chris Boden",
1730 | "email": "cboden@gmail.com",
1731 | "homepage": "https://cboden.dev/"
1732 | }
1733 | ],
1734 | "description": "A lightweight implementation of CommonJS Promises/A for PHP",
1735 | "keywords": [
1736 | "promise",
1737 | "promises"
1738 | ],
1739 | "support": {
1740 | "issues": "https://github.com/reactphp/promise/issues",
1741 | "source": "https://github.com/reactphp/promise/tree/v3.2.0"
1742 | },
1743 | "funding": [
1744 | {
1745 | "url": "https://opencollective.com/reactphp",
1746 | "type": "open_collective"
1747 | }
1748 | ],
1749 | "time": "2024-05-24T10:39:05+00:00"
1750 | },
1751 | {
1752 | "name": "sebastian/cli-parser",
1753 | "version": "1.0.2",
1754 | "source": {
1755 | "type": "git",
1756 | "url": "https://github.com/sebastianbergmann/cli-parser.git",
1757 | "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
1758 | },
1759 | "dist": {
1760 | "type": "zip",
1761 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
1762 | "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
1763 | "shasum": ""
1764 | },
1765 | "require": {
1766 | "php": ">=7.3"
1767 | },
1768 | "require-dev": {
1769 | "phpunit/phpunit": "^9.3"
1770 | },
1771 | "type": "library",
1772 | "extra": {
1773 | "branch-alias": {
1774 | "dev-master": "1.0-dev"
1775 | }
1776 | },
1777 | "autoload": {
1778 | "classmap": [
1779 | "src/"
1780 | ]
1781 | },
1782 | "notification-url": "https://packagist.org/downloads/",
1783 | "license": [
1784 | "BSD-3-Clause"
1785 | ],
1786 | "authors": [
1787 | {
1788 | "name": "Sebastian Bergmann",
1789 | "email": "sebastian@phpunit.de",
1790 | "role": "lead"
1791 | }
1792 | ],
1793 | "description": "Library for parsing CLI options",
1794 | "homepage": "https://github.com/sebastianbergmann/cli-parser",
1795 | "support": {
1796 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
1797 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
1798 | },
1799 | "funding": [
1800 | {
1801 | "url": "https://github.com/sebastianbergmann",
1802 | "type": "github"
1803 | }
1804 | ],
1805 | "time": "2024-03-02T06:27:43+00:00"
1806 | },
1807 | {
1808 | "name": "sebastian/code-unit",
1809 | "version": "1.0.8",
1810 | "source": {
1811 | "type": "git",
1812 | "url": "https://github.com/sebastianbergmann/code-unit.git",
1813 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
1814 | },
1815 | "dist": {
1816 | "type": "zip",
1817 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
1818 | "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
1819 | "shasum": ""
1820 | },
1821 | "require": {
1822 | "php": ">=7.3"
1823 | },
1824 | "require-dev": {
1825 | "phpunit/phpunit": "^9.3"
1826 | },
1827 | "type": "library",
1828 | "extra": {
1829 | "branch-alias": {
1830 | "dev-master": "1.0-dev"
1831 | }
1832 | },
1833 | "autoload": {
1834 | "classmap": [
1835 | "src/"
1836 | ]
1837 | },
1838 | "notification-url": "https://packagist.org/downloads/",
1839 | "license": [
1840 | "BSD-3-Clause"
1841 | ],
1842 | "authors": [
1843 | {
1844 | "name": "Sebastian Bergmann",
1845 | "email": "sebastian@phpunit.de",
1846 | "role": "lead"
1847 | }
1848 | ],
1849 | "description": "Collection of value objects that represent the PHP code units",
1850 | "homepage": "https://github.com/sebastianbergmann/code-unit",
1851 | "support": {
1852 | "issues": "https://github.com/sebastianbergmann/code-unit/issues",
1853 | "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
1854 | },
1855 | "funding": [
1856 | {
1857 | "url": "https://github.com/sebastianbergmann",
1858 | "type": "github"
1859 | }
1860 | ],
1861 | "time": "2020-10-26T13:08:54+00:00"
1862 | },
1863 | {
1864 | "name": "sebastian/code-unit-reverse-lookup",
1865 | "version": "2.0.3",
1866 | "source": {
1867 | "type": "git",
1868 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1869 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
1870 | },
1871 | "dist": {
1872 | "type": "zip",
1873 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
1874 | "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
1875 | "shasum": ""
1876 | },
1877 | "require": {
1878 | "php": ">=7.3"
1879 | },
1880 | "require-dev": {
1881 | "phpunit/phpunit": "^9.3"
1882 | },
1883 | "type": "library",
1884 | "extra": {
1885 | "branch-alias": {
1886 | "dev-master": "2.0-dev"
1887 | }
1888 | },
1889 | "autoload": {
1890 | "classmap": [
1891 | "src/"
1892 | ]
1893 | },
1894 | "notification-url": "https://packagist.org/downloads/",
1895 | "license": [
1896 | "BSD-3-Clause"
1897 | ],
1898 | "authors": [
1899 | {
1900 | "name": "Sebastian Bergmann",
1901 | "email": "sebastian@phpunit.de"
1902 | }
1903 | ],
1904 | "description": "Looks up which function or method a line of code belongs to",
1905 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1906 | "support": {
1907 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
1908 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
1909 | },
1910 | "funding": [
1911 | {
1912 | "url": "https://github.com/sebastianbergmann",
1913 | "type": "github"
1914 | }
1915 | ],
1916 | "time": "2020-09-28T05:30:19+00:00"
1917 | },
1918 | {
1919 | "name": "sebastian/comparator",
1920 | "version": "4.0.8",
1921 | "source": {
1922 | "type": "git",
1923 | "url": "https://github.com/sebastianbergmann/comparator.git",
1924 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
1925 | },
1926 | "dist": {
1927 | "type": "zip",
1928 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
1929 | "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
1930 | "shasum": ""
1931 | },
1932 | "require": {
1933 | "php": ">=7.3",
1934 | "sebastian/diff": "^4.0",
1935 | "sebastian/exporter": "^4.0"
1936 | },
1937 | "require-dev": {
1938 | "phpunit/phpunit": "^9.3"
1939 | },
1940 | "type": "library",
1941 | "extra": {
1942 | "branch-alias": {
1943 | "dev-master": "4.0-dev"
1944 | }
1945 | },
1946 | "autoload": {
1947 | "classmap": [
1948 | "src/"
1949 | ]
1950 | },
1951 | "notification-url": "https://packagist.org/downloads/",
1952 | "license": [
1953 | "BSD-3-Clause"
1954 | ],
1955 | "authors": [
1956 | {
1957 | "name": "Sebastian Bergmann",
1958 | "email": "sebastian@phpunit.de"
1959 | },
1960 | {
1961 | "name": "Jeff Welch",
1962 | "email": "whatthejeff@gmail.com"
1963 | },
1964 | {
1965 | "name": "Volker Dusch",
1966 | "email": "github@wallbash.com"
1967 | },
1968 | {
1969 | "name": "Bernhard Schussek",
1970 | "email": "bschussek@2bepublished.at"
1971 | }
1972 | ],
1973 | "description": "Provides the functionality to compare PHP values for equality",
1974 | "homepage": "https://github.com/sebastianbergmann/comparator",
1975 | "keywords": [
1976 | "comparator",
1977 | "compare",
1978 | "equality"
1979 | ],
1980 | "support": {
1981 | "issues": "https://github.com/sebastianbergmann/comparator/issues",
1982 | "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
1983 | },
1984 | "funding": [
1985 | {
1986 | "url": "https://github.com/sebastianbergmann",
1987 | "type": "github"
1988 | }
1989 | ],
1990 | "time": "2022-09-14T12:41:17+00:00"
1991 | },
1992 | {
1993 | "name": "sebastian/complexity",
1994 | "version": "2.0.3",
1995 | "source": {
1996 | "type": "git",
1997 | "url": "https://github.com/sebastianbergmann/complexity.git",
1998 | "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
1999 | },
2000 | "dist": {
2001 | "type": "zip",
2002 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
2003 | "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
2004 | "shasum": ""
2005 | },
2006 | "require": {
2007 | "nikic/php-parser": "^4.18 || ^5.0",
2008 | "php": ">=7.3"
2009 | },
2010 | "require-dev": {
2011 | "phpunit/phpunit": "^9.3"
2012 | },
2013 | "type": "library",
2014 | "extra": {
2015 | "branch-alias": {
2016 | "dev-master": "2.0-dev"
2017 | }
2018 | },
2019 | "autoload": {
2020 | "classmap": [
2021 | "src/"
2022 | ]
2023 | },
2024 | "notification-url": "https://packagist.org/downloads/",
2025 | "license": [
2026 | "BSD-3-Clause"
2027 | ],
2028 | "authors": [
2029 | {
2030 | "name": "Sebastian Bergmann",
2031 | "email": "sebastian@phpunit.de",
2032 | "role": "lead"
2033 | }
2034 | ],
2035 | "description": "Library for calculating the complexity of PHP code units",
2036 | "homepage": "https://github.com/sebastianbergmann/complexity",
2037 | "support": {
2038 | "issues": "https://github.com/sebastianbergmann/complexity/issues",
2039 | "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
2040 | },
2041 | "funding": [
2042 | {
2043 | "url": "https://github.com/sebastianbergmann",
2044 | "type": "github"
2045 | }
2046 | ],
2047 | "time": "2023-12-22T06:19:30+00:00"
2048 | },
2049 | {
2050 | "name": "sebastian/diff",
2051 | "version": "4.0.6",
2052 | "source": {
2053 | "type": "git",
2054 | "url": "https://github.com/sebastianbergmann/diff.git",
2055 | "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
2056 | },
2057 | "dist": {
2058 | "type": "zip",
2059 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
2060 | "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
2061 | "shasum": ""
2062 | },
2063 | "require": {
2064 | "php": ">=7.3"
2065 | },
2066 | "require-dev": {
2067 | "phpunit/phpunit": "^9.3",
2068 | "symfony/process": "^4.2 || ^5"
2069 | },
2070 | "type": "library",
2071 | "extra": {
2072 | "branch-alias": {
2073 | "dev-master": "4.0-dev"
2074 | }
2075 | },
2076 | "autoload": {
2077 | "classmap": [
2078 | "src/"
2079 | ]
2080 | },
2081 | "notification-url": "https://packagist.org/downloads/",
2082 | "license": [
2083 | "BSD-3-Clause"
2084 | ],
2085 | "authors": [
2086 | {
2087 | "name": "Sebastian Bergmann",
2088 | "email": "sebastian@phpunit.de"
2089 | },
2090 | {
2091 | "name": "Kore Nordmann",
2092 | "email": "mail@kore-nordmann.de"
2093 | }
2094 | ],
2095 | "description": "Diff implementation",
2096 | "homepage": "https://github.com/sebastianbergmann/diff",
2097 | "keywords": [
2098 | "diff",
2099 | "udiff",
2100 | "unidiff",
2101 | "unified diff"
2102 | ],
2103 | "support": {
2104 | "issues": "https://github.com/sebastianbergmann/diff/issues",
2105 | "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
2106 | },
2107 | "funding": [
2108 | {
2109 | "url": "https://github.com/sebastianbergmann",
2110 | "type": "github"
2111 | }
2112 | ],
2113 | "time": "2024-03-02T06:30:58+00:00"
2114 | },
2115 | {
2116 | "name": "sebastian/environment",
2117 | "version": "5.1.5",
2118 | "source": {
2119 | "type": "git",
2120 | "url": "https://github.com/sebastianbergmann/environment.git",
2121 | "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
2122 | },
2123 | "dist": {
2124 | "type": "zip",
2125 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
2126 | "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
2127 | "shasum": ""
2128 | },
2129 | "require": {
2130 | "php": ">=7.3"
2131 | },
2132 | "require-dev": {
2133 | "phpunit/phpunit": "^9.3"
2134 | },
2135 | "suggest": {
2136 | "ext-posix": "*"
2137 | },
2138 | "type": "library",
2139 | "extra": {
2140 | "branch-alias": {
2141 | "dev-master": "5.1-dev"
2142 | }
2143 | },
2144 | "autoload": {
2145 | "classmap": [
2146 | "src/"
2147 | ]
2148 | },
2149 | "notification-url": "https://packagist.org/downloads/",
2150 | "license": [
2151 | "BSD-3-Clause"
2152 | ],
2153 | "authors": [
2154 | {
2155 | "name": "Sebastian Bergmann",
2156 | "email": "sebastian@phpunit.de"
2157 | }
2158 | ],
2159 | "description": "Provides functionality to handle HHVM/PHP environments",
2160 | "homepage": "http://www.github.com/sebastianbergmann/environment",
2161 | "keywords": [
2162 | "Xdebug",
2163 | "environment",
2164 | "hhvm"
2165 | ],
2166 | "support": {
2167 | "issues": "https://github.com/sebastianbergmann/environment/issues",
2168 | "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
2169 | },
2170 | "funding": [
2171 | {
2172 | "url": "https://github.com/sebastianbergmann",
2173 | "type": "github"
2174 | }
2175 | ],
2176 | "time": "2023-02-03T06:03:51+00:00"
2177 | },
2178 | {
2179 | "name": "sebastian/exporter",
2180 | "version": "4.0.6",
2181 | "source": {
2182 | "type": "git",
2183 | "url": "https://github.com/sebastianbergmann/exporter.git",
2184 | "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
2185 | },
2186 | "dist": {
2187 | "type": "zip",
2188 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
2189 | "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
2190 | "shasum": ""
2191 | },
2192 | "require": {
2193 | "php": ">=7.3",
2194 | "sebastian/recursion-context": "^4.0"
2195 | },
2196 | "require-dev": {
2197 | "ext-mbstring": "*",
2198 | "phpunit/phpunit": "^9.3"
2199 | },
2200 | "type": "library",
2201 | "extra": {
2202 | "branch-alias": {
2203 | "dev-master": "4.0-dev"
2204 | }
2205 | },
2206 | "autoload": {
2207 | "classmap": [
2208 | "src/"
2209 | ]
2210 | },
2211 | "notification-url": "https://packagist.org/downloads/",
2212 | "license": [
2213 | "BSD-3-Clause"
2214 | ],
2215 | "authors": [
2216 | {
2217 | "name": "Sebastian Bergmann",
2218 | "email": "sebastian@phpunit.de"
2219 | },
2220 | {
2221 | "name": "Jeff Welch",
2222 | "email": "whatthejeff@gmail.com"
2223 | },
2224 | {
2225 | "name": "Volker Dusch",
2226 | "email": "github@wallbash.com"
2227 | },
2228 | {
2229 | "name": "Adam Harvey",
2230 | "email": "aharvey@php.net"
2231 | },
2232 | {
2233 | "name": "Bernhard Schussek",
2234 | "email": "bschussek@gmail.com"
2235 | }
2236 | ],
2237 | "description": "Provides the functionality to export PHP variables for visualization",
2238 | "homepage": "https://www.github.com/sebastianbergmann/exporter",
2239 | "keywords": [
2240 | "export",
2241 | "exporter"
2242 | ],
2243 | "support": {
2244 | "issues": "https://github.com/sebastianbergmann/exporter/issues",
2245 | "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
2246 | },
2247 | "funding": [
2248 | {
2249 | "url": "https://github.com/sebastianbergmann",
2250 | "type": "github"
2251 | }
2252 | ],
2253 | "time": "2024-03-02T06:33:00+00:00"
2254 | },
2255 | {
2256 | "name": "sebastian/global-state",
2257 | "version": "5.0.7",
2258 | "source": {
2259 | "type": "git",
2260 | "url": "https://github.com/sebastianbergmann/global-state.git",
2261 | "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
2262 | },
2263 | "dist": {
2264 | "type": "zip",
2265 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
2266 | "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
2267 | "shasum": ""
2268 | },
2269 | "require": {
2270 | "php": ">=7.3",
2271 | "sebastian/object-reflector": "^2.0",
2272 | "sebastian/recursion-context": "^4.0"
2273 | },
2274 | "require-dev": {
2275 | "ext-dom": "*",
2276 | "phpunit/phpunit": "^9.3"
2277 | },
2278 | "suggest": {
2279 | "ext-uopz": "*"
2280 | },
2281 | "type": "library",
2282 | "extra": {
2283 | "branch-alias": {
2284 | "dev-master": "5.0-dev"
2285 | }
2286 | },
2287 | "autoload": {
2288 | "classmap": [
2289 | "src/"
2290 | ]
2291 | },
2292 | "notification-url": "https://packagist.org/downloads/",
2293 | "license": [
2294 | "BSD-3-Clause"
2295 | ],
2296 | "authors": [
2297 | {
2298 | "name": "Sebastian Bergmann",
2299 | "email": "sebastian@phpunit.de"
2300 | }
2301 | ],
2302 | "description": "Snapshotting of global state",
2303 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
2304 | "keywords": [
2305 | "global state"
2306 | ],
2307 | "support": {
2308 | "issues": "https://github.com/sebastianbergmann/global-state/issues",
2309 | "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
2310 | },
2311 | "funding": [
2312 | {
2313 | "url": "https://github.com/sebastianbergmann",
2314 | "type": "github"
2315 | }
2316 | ],
2317 | "time": "2024-03-02T06:35:11+00:00"
2318 | },
2319 | {
2320 | "name": "sebastian/lines-of-code",
2321 | "version": "1.0.4",
2322 | "source": {
2323 | "type": "git",
2324 | "url": "https://github.com/sebastianbergmann/lines-of-code.git",
2325 | "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
2326 | },
2327 | "dist": {
2328 | "type": "zip",
2329 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
2330 | "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
2331 | "shasum": ""
2332 | },
2333 | "require": {
2334 | "nikic/php-parser": "^4.18 || ^5.0",
2335 | "php": ">=7.3"
2336 | },
2337 | "require-dev": {
2338 | "phpunit/phpunit": "^9.3"
2339 | },
2340 | "type": "library",
2341 | "extra": {
2342 | "branch-alias": {
2343 | "dev-master": "1.0-dev"
2344 | }
2345 | },
2346 | "autoload": {
2347 | "classmap": [
2348 | "src/"
2349 | ]
2350 | },
2351 | "notification-url": "https://packagist.org/downloads/",
2352 | "license": [
2353 | "BSD-3-Clause"
2354 | ],
2355 | "authors": [
2356 | {
2357 | "name": "Sebastian Bergmann",
2358 | "email": "sebastian@phpunit.de",
2359 | "role": "lead"
2360 | }
2361 | ],
2362 | "description": "Library for counting the lines of code in PHP source code",
2363 | "homepage": "https://github.com/sebastianbergmann/lines-of-code",
2364 | "support": {
2365 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
2366 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
2367 | },
2368 | "funding": [
2369 | {
2370 | "url": "https://github.com/sebastianbergmann",
2371 | "type": "github"
2372 | }
2373 | ],
2374 | "time": "2023-12-22T06:20:34+00:00"
2375 | },
2376 | {
2377 | "name": "sebastian/object-enumerator",
2378 | "version": "4.0.4",
2379 | "source": {
2380 | "type": "git",
2381 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
2382 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
2383 | },
2384 | "dist": {
2385 | "type": "zip",
2386 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
2387 | "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
2388 | "shasum": ""
2389 | },
2390 | "require": {
2391 | "php": ">=7.3",
2392 | "sebastian/object-reflector": "^2.0",
2393 | "sebastian/recursion-context": "^4.0"
2394 | },
2395 | "require-dev": {
2396 | "phpunit/phpunit": "^9.3"
2397 | },
2398 | "type": "library",
2399 | "extra": {
2400 | "branch-alias": {
2401 | "dev-master": "4.0-dev"
2402 | }
2403 | },
2404 | "autoload": {
2405 | "classmap": [
2406 | "src/"
2407 | ]
2408 | },
2409 | "notification-url": "https://packagist.org/downloads/",
2410 | "license": [
2411 | "BSD-3-Clause"
2412 | ],
2413 | "authors": [
2414 | {
2415 | "name": "Sebastian Bergmann",
2416 | "email": "sebastian@phpunit.de"
2417 | }
2418 | ],
2419 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
2420 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
2421 | "support": {
2422 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
2423 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
2424 | },
2425 | "funding": [
2426 | {
2427 | "url": "https://github.com/sebastianbergmann",
2428 | "type": "github"
2429 | }
2430 | ],
2431 | "time": "2020-10-26T13:12:34+00:00"
2432 | },
2433 | {
2434 | "name": "sebastian/object-reflector",
2435 | "version": "2.0.4",
2436 | "source": {
2437 | "type": "git",
2438 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
2439 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
2440 | },
2441 | "dist": {
2442 | "type": "zip",
2443 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
2444 | "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
2445 | "shasum": ""
2446 | },
2447 | "require": {
2448 | "php": ">=7.3"
2449 | },
2450 | "require-dev": {
2451 | "phpunit/phpunit": "^9.3"
2452 | },
2453 | "type": "library",
2454 | "extra": {
2455 | "branch-alias": {
2456 | "dev-master": "2.0-dev"
2457 | }
2458 | },
2459 | "autoload": {
2460 | "classmap": [
2461 | "src/"
2462 | ]
2463 | },
2464 | "notification-url": "https://packagist.org/downloads/",
2465 | "license": [
2466 | "BSD-3-Clause"
2467 | ],
2468 | "authors": [
2469 | {
2470 | "name": "Sebastian Bergmann",
2471 | "email": "sebastian@phpunit.de"
2472 | }
2473 | ],
2474 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
2475 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
2476 | "support": {
2477 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
2478 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
2479 | },
2480 | "funding": [
2481 | {
2482 | "url": "https://github.com/sebastianbergmann",
2483 | "type": "github"
2484 | }
2485 | ],
2486 | "time": "2020-10-26T13:14:26+00:00"
2487 | },
2488 | {
2489 | "name": "sebastian/recursion-context",
2490 | "version": "4.0.5",
2491 | "source": {
2492 | "type": "git",
2493 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
2494 | "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
2495 | },
2496 | "dist": {
2497 | "type": "zip",
2498 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
2499 | "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
2500 | "shasum": ""
2501 | },
2502 | "require": {
2503 | "php": ">=7.3"
2504 | },
2505 | "require-dev": {
2506 | "phpunit/phpunit": "^9.3"
2507 | },
2508 | "type": "library",
2509 | "extra": {
2510 | "branch-alias": {
2511 | "dev-master": "4.0-dev"
2512 | }
2513 | },
2514 | "autoload": {
2515 | "classmap": [
2516 | "src/"
2517 | ]
2518 | },
2519 | "notification-url": "https://packagist.org/downloads/",
2520 | "license": [
2521 | "BSD-3-Clause"
2522 | ],
2523 | "authors": [
2524 | {
2525 | "name": "Sebastian Bergmann",
2526 | "email": "sebastian@phpunit.de"
2527 | },
2528 | {
2529 | "name": "Jeff Welch",
2530 | "email": "whatthejeff@gmail.com"
2531 | },
2532 | {
2533 | "name": "Adam Harvey",
2534 | "email": "aharvey@php.net"
2535 | }
2536 | ],
2537 | "description": "Provides functionality to recursively process PHP variables",
2538 | "homepage": "https://github.com/sebastianbergmann/recursion-context",
2539 | "support": {
2540 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
2541 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
2542 | },
2543 | "funding": [
2544 | {
2545 | "url": "https://github.com/sebastianbergmann",
2546 | "type": "github"
2547 | }
2548 | ],
2549 | "time": "2023-02-03T06:07:39+00:00"
2550 | },
2551 | {
2552 | "name": "sebastian/resource-operations",
2553 | "version": "3.0.4",
2554 | "source": {
2555 | "type": "git",
2556 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
2557 | "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
2558 | },
2559 | "dist": {
2560 | "type": "zip",
2561 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
2562 | "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
2563 | "shasum": ""
2564 | },
2565 | "require": {
2566 | "php": ">=7.3"
2567 | },
2568 | "require-dev": {
2569 | "phpunit/phpunit": "^9.0"
2570 | },
2571 | "type": "library",
2572 | "extra": {
2573 | "branch-alias": {
2574 | "dev-main": "3.0-dev"
2575 | }
2576 | },
2577 | "autoload": {
2578 | "classmap": [
2579 | "src/"
2580 | ]
2581 | },
2582 | "notification-url": "https://packagist.org/downloads/",
2583 | "license": [
2584 | "BSD-3-Clause"
2585 | ],
2586 | "authors": [
2587 | {
2588 | "name": "Sebastian Bergmann",
2589 | "email": "sebastian@phpunit.de"
2590 | }
2591 | ],
2592 | "description": "Provides a list of PHP built-in functions that operate on resources",
2593 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2594 | "support": {
2595 | "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
2596 | },
2597 | "funding": [
2598 | {
2599 | "url": "https://github.com/sebastianbergmann",
2600 | "type": "github"
2601 | }
2602 | ],
2603 | "time": "2024-03-14T16:00:52+00:00"
2604 | },
2605 | {
2606 | "name": "sebastian/type",
2607 | "version": "3.2.1",
2608 | "source": {
2609 | "type": "git",
2610 | "url": "https://github.com/sebastianbergmann/type.git",
2611 | "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
2612 | },
2613 | "dist": {
2614 | "type": "zip",
2615 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
2616 | "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
2617 | "shasum": ""
2618 | },
2619 | "require": {
2620 | "php": ">=7.3"
2621 | },
2622 | "require-dev": {
2623 | "phpunit/phpunit": "^9.5"
2624 | },
2625 | "type": "library",
2626 | "extra": {
2627 | "branch-alias": {
2628 | "dev-master": "3.2-dev"
2629 | }
2630 | },
2631 | "autoload": {
2632 | "classmap": [
2633 | "src/"
2634 | ]
2635 | },
2636 | "notification-url": "https://packagist.org/downloads/",
2637 | "license": [
2638 | "BSD-3-Clause"
2639 | ],
2640 | "authors": [
2641 | {
2642 | "name": "Sebastian Bergmann",
2643 | "email": "sebastian@phpunit.de",
2644 | "role": "lead"
2645 | }
2646 | ],
2647 | "description": "Collection of value objects that represent the types of the PHP type system",
2648 | "homepage": "https://github.com/sebastianbergmann/type",
2649 | "support": {
2650 | "issues": "https://github.com/sebastianbergmann/type/issues",
2651 | "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
2652 | },
2653 | "funding": [
2654 | {
2655 | "url": "https://github.com/sebastianbergmann",
2656 | "type": "github"
2657 | }
2658 | ],
2659 | "time": "2023-02-03T06:13:03+00:00"
2660 | },
2661 | {
2662 | "name": "sebastian/version",
2663 | "version": "3.0.2",
2664 | "source": {
2665 | "type": "git",
2666 | "url": "https://github.com/sebastianbergmann/version.git",
2667 | "reference": "c6c1022351a901512170118436c764e473f6de8c"
2668 | },
2669 | "dist": {
2670 | "type": "zip",
2671 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
2672 | "reference": "c6c1022351a901512170118436c764e473f6de8c",
2673 | "shasum": ""
2674 | },
2675 | "require": {
2676 | "php": ">=7.3"
2677 | },
2678 | "type": "library",
2679 | "extra": {
2680 | "branch-alias": {
2681 | "dev-master": "3.0-dev"
2682 | }
2683 | },
2684 | "autoload": {
2685 | "classmap": [
2686 | "src/"
2687 | ]
2688 | },
2689 | "notification-url": "https://packagist.org/downloads/",
2690 | "license": [
2691 | "BSD-3-Clause"
2692 | ],
2693 | "authors": [
2694 | {
2695 | "name": "Sebastian Bergmann",
2696 | "email": "sebastian@phpunit.de",
2697 | "role": "lead"
2698 | }
2699 | ],
2700 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2701 | "homepage": "https://github.com/sebastianbergmann/version",
2702 | "support": {
2703 | "issues": "https://github.com/sebastianbergmann/version/issues",
2704 | "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
2705 | },
2706 | "funding": [
2707 | {
2708 | "url": "https://github.com/sebastianbergmann",
2709 | "type": "github"
2710 | }
2711 | ],
2712 | "time": "2020-09-28T06:39:44+00:00"
2713 | },
2714 | {
2715 | "name": "seld/jsonlint",
2716 | "version": "1.11.0",
2717 | "source": {
2718 | "type": "git",
2719 | "url": "https://github.com/Seldaek/jsonlint.git",
2720 | "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2"
2721 | },
2722 | "dist": {
2723 | "type": "zip",
2724 | "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2",
2725 | "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2",
2726 | "shasum": ""
2727 | },
2728 | "require": {
2729 | "php": "^5.3 || ^7.0 || ^8.0"
2730 | },
2731 | "require-dev": {
2732 | "phpstan/phpstan": "^1.11",
2733 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
2734 | },
2735 | "bin": [
2736 | "bin/jsonlint"
2737 | ],
2738 | "type": "library",
2739 | "autoload": {
2740 | "psr-4": {
2741 | "Seld\\JsonLint\\": "src/Seld/JsonLint/"
2742 | }
2743 | },
2744 | "notification-url": "https://packagist.org/downloads/",
2745 | "license": [
2746 | "MIT"
2747 | ],
2748 | "authors": [
2749 | {
2750 | "name": "Jordi Boggiano",
2751 | "email": "j.boggiano@seld.be",
2752 | "homepage": "https://seld.be"
2753 | }
2754 | ],
2755 | "description": "JSON Linter",
2756 | "keywords": [
2757 | "json",
2758 | "linter",
2759 | "parser",
2760 | "validator"
2761 | ],
2762 | "support": {
2763 | "issues": "https://github.com/Seldaek/jsonlint/issues",
2764 | "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0"
2765 | },
2766 | "funding": [
2767 | {
2768 | "url": "https://github.com/Seldaek",
2769 | "type": "github"
2770 | },
2771 | {
2772 | "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
2773 | "type": "tidelift"
2774 | }
2775 | ],
2776 | "time": "2024-07-11T14:55:45+00:00"
2777 | },
2778 | {
2779 | "name": "seld/phar-utils",
2780 | "version": "1.2.1",
2781 | "source": {
2782 | "type": "git",
2783 | "url": "https://github.com/Seldaek/phar-utils.git",
2784 | "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
2785 | },
2786 | "dist": {
2787 | "type": "zip",
2788 | "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
2789 | "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
2790 | "shasum": ""
2791 | },
2792 | "require": {
2793 | "php": ">=5.3"
2794 | },
2795 | "type": "library",
2796 | "extra": {
2797 | "branch-alias": {
2798 | "dev-master": "1.x-dev"
2799 | }
2800 | },
2801 | "autoload": {
2802 | "psr-4": {
2803 | "Seld\\PharUtils\\": "src/"
2804 | }
2805 | },
2806 | "notification-url": "https://packagist.org/downloads/",
2807 | "license": [
2808 | "MIT"
2809 | ],
2810 | "authors": [
2811 | {
2812 | "name": "Jordi Boggiano",
2813 | "email": "j.boggiano@seld.be"
2814 | }
2815 | ],
2816 | "description": "PHAR file format utilities, for when PHP phars you up",
2817 | "keywords": [
2818 | "phar"
2819 | ],
2820 | "support": {
2821 | "issues": "https://github.com/Seldaek/phar-utils/issues",
2822 | "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
2823 | },
2824 | "time": "2022-08-31T10:31:18+00:00"
2825 | },
2826 | {
2827 | "name": "seld/signal-handler",
2828 | "version": "2.0.2",
2829 | "source": {
2830 | "type": "git",
2831 | "url": "https://github.com/Seldaek/signal-handler.git",
2832 | "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
2833 | },
2834 | "dist": {
2835 | "type": "zip",
2836 | "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
2837 | "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
2838 | "shasum": ""
2839 | },
2840 | "require": {
2841 | "php": ">=7.2.0"
2842 | },
2843 | "require-dev": {
2844 | "phpstan/phpstan": "^1",
2845 | "phpstan/phpstan-deprecation-rules": "^1.0",
2846 | "phpstan/phpstan-phpunit": "^1",
2847 | "phpstan/phpstan-strict-rules": "^1.3",
2848 | "phpunit/phpunit": "^7.5.20 || ^8.5.23",
2849 | "psr/log": "^1 || ^2 || ^3"
2850 | },
2851 | "type": "library",
2852 | "extra": {
2853 | "branch-alias": {
2854 | "dev-main": "2.x-dev"
2855 | }
2856 | },
2857 | "autoload": {
2858 | "psr-4": {
2859 | "Seld\\Signal\\": "src/"
2860 | }
2861 | },
2862 | "notification-url": "https://packagist.org/downloads/",
2863 | "license": [
2864 | "MIT"
2865 | ],
2866 | "authors": [
2867 | {
2868 | "name": "Jordi Boggiano",
2869 | "email": "j.boggiano@seld.be",
2870 | "homepage": "http://seld.be"
2871 | }
2872 | ],
2873 | "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
2874 | "keywords": [
2875 | "posix",
2876 | "sigint",
2877 | "signal",
2878 | "sigterm",
2879 | "unix"
2880 | ],
2881 | "support": {
2882 | "issues": "https://github.com/Seldaek/signal-handler/issues",
2883 | "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
2884 | },
2885 | "time": "2023-09-03T09:24:00+00:00"
2886 | },
2887 | {
2888 | "name": "symfony/console",
2889 | "version": "v7.1.3",
2890 | "source": {
2891 | "type": "git",
2892 | "url": "https://github.com/symfony/console.git",
2893 | "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9"
2894 | },
2895 | "dist": {
2896 | "type": "zip",
2897 | "url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
2898 | "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
2899 | "shasum": ""
2900 | },
2901 | "require": {
2902 | "php": ">=8.2",
2903 | "symfony/polyfill-mbstring": "~1.0",
2904 | "symfony/service-contracts": "^2.5|^3",
2905 | "symfony/string": "^6.4|^7.0"
2906 | },
2907 | "conflict": {
2908 | "symfony/dependency-injection": "<6.4",
2909 | "symfony/dotenv": "<6.4",
2910 | "symfony/event-dispatcher": "<6.4",
2911 | "symfony/lock": "<6.4",
2912 | "symfony/process": "<6.4"
2913 | },
2914 | "provide": {
2915 | "psr/log-implementation": "1.0|2.0|3.0"
2916 | },
2917 | "require-dev": {
2918 | "psr/log": "^1|^2|^3",
2919 | "symfony/config": "^6.4|^7.0",
2920 | "symfony/dependency-injection": "^6.4|^7.0",
2921 | "symfony/event-dispatcher": "^6.4|^7.0",
2922 | "symfony/http-foundation": "^6.4|^7.0",
2923 | "symfony/http-kernel": "^6.4|^7.0",
2924 | "symfony/lock": "^6.4|^7.0",
2925 | "symfony/messenger": "^6.4|^7.0",
2926 | "symfony/process": "^6.4|^7.0",
2927 | "symfony/stopwatch": "^6.4|^7.0",
2928 | "symfony/var-dumper": "^6.4|^7.0"
2929 | },
2930 | "type": "library",
2931 | "autoload": {
2932 | "psr-4": {
2933 | "Symfony\\Component\\Console\\": ""
2934 | },
2935 | "exclude-from-classmap": [
2936 | "/Tests/"
2937 | ]
2938 | },
2939 | "notification-url": "https://packagist.org/downloads/",
2940 | "license": [
2941 | "MIT"
2942 | ],
2943 | "authors": [
2944 | {
2945 | "name": "Fabien Potencier",
2946 | "email": "fabien@symfony.com"
2947 | },
2948 | {
2949 | "name": "Symfony Community",
2950 | "homepage": "https://symfony.com/contributors"
2951 | }
2952 | ],
2953 | "description": "Eases the creation of beautiful and testable command line interfaces",
2954 | "homepage": "https://symfony.com",
2955 | "keywords": [
2956 | "cli",
2957 | "command-line",
2958 | "console",
2959 | "terminal"
2960 | ],
2961 | "support": {
2962 | "source": "https://github.com/symfony/console/tree/v7.1.3"
2963 | },
2964 | "funding": [
2965 | {
2966 | "url": "https://symfony.com/sponsor",
2967 | "type": "custom"
2968 | },
2969 | {
2970 | "url": "https://github.com/fabpot",
2971 | "type": "github"
2972 | },
2973 | {
2974 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2975 | "type": "tidelift"
2976 | }
2977 | ],
2978 | "time": "2024-07-26T12:41:01+00:00"
2979 | },
2980 | {
2981 | "name": "symfony/deprecation-contracts",
2982 | "version": "v3.5.0",
2983 | "source": {
2984 | "type": "git",
2985 | "url": "https://github.com/symfony/deprecation-contracts.git",
2986 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
2987 | },
2988 | "dist": {
2989 | "type": "zip",
2990 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
2991 | "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
2992 | "shasum": ""
2993 | },
2994 | "require": {
2995 | "php": ">=8.1"
2996 | },
2997 | "type": "library",
2998 | "extra": {
2999 | "branch-alias": {
3000 | "dev-main": "3.5-dev"
3001 | },
3002 | "thanks": {
3003 | "name": "symfony/contracts",
3004 | "url": "https://github.com/symfony/contracts"
3005 | }
3006 | },
3007 | "autoload": {
3008 | "files": [
3009 | "function.php"
3010 | ]
3011 | },
3012 | "notification-url": "https://packagist.org/downloads/",
3013 | "license": [
3014 | "MIT"
3015 | ],
3016 | "authors": [
3017 | {
3018 | "name": "Nicolas Grekas",
3019 | "email": "p@tchwork.com"
3020 | },
3021 | {
3022 | "name": "Symfony Community",
3023 | "homepage": "https://symfony.com/contributors"
3024 | }
3025 | ],
3026 | "description": "A generic function and convention to trigger deprecation notices",
3027 | "homepage": "https://symfony.com",
3028 | "support": {
3029 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
3030 | },
3031 | "funding": [
3032 | {
3033 | "url": "https://symfony.com/sponsor",
3034 | "type": "custom"
3035 | },
3036 | {
3037 | "url": "https://github.com/fabpot",
3038 | "type": "github"
3039 | },
3040 | {
3041 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3042 | "type": "tidelift"
3043 | }
3044 | ],
3045 | "time": "2024-04-18T09:32:20+00:00"
3046 | },
3047 | {
3048 | "name": "symfony/filesystem",
3049 | "version": "v7.1.2",
3050 | "source": {
3051 | "type": "git",
3052 | "url": "https://github.com/symfony/filesystem.git",
3053 | "reference": "92a91985250c251de9b947a14bb2c9390b1a562c"
3054 | },
3055 | "dist": {
3056 | "type": "zip",
3057 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c",
3058 | "reference": "92a91985250c251de9b947a14bb2c9390b1a562c",
3059 | "shasum": ""
3060 | },
3061 | "require": {
3062 | "php": ">=8.2",
3063 | "symfony/polyfill-ctype": "~1.8",
3064 | "symfony/polyfill-mbstring": "~1.8"
3065 | },
3066 | "require-dev": {
3067 | "symfony/process": "^6.4|^7.0"
3068 | },
3069 | "type": "library",
3070 | "autoload": {
3071 | "psr-4": {
3072 | "Symfony\\Component\\Filesystem\\": ""
3073 | },
3074 | "exclude-from-classmap": [
3075 | "/Tests/"
3076 | ]
3077 | },
3078 | "notification-url": "https://packagist.org/downloads/",
3079 | "license": [
3080 | "MIT"
3081 | ],
3082 | "authors": [
3083 | {
3084 | "name": "Fabien Potencier",
3085 | "email": "fabien@symfony.com"
3086 | },
3087 | {
3088 | "name": "Symfony Community",
3089 | "homepage": "https://symfony.com/contributors"
3090 | }
3091 | ],
3092 | "description": "Provides basic utilities for the filesystem",
3093 | "homepage": "https://symfony.com",
3094 | "support": {
3095 | "source": "https://github.com/symfony/filesystem/tree/v7.1.2"
3096 | },
3097 | "funding": [
3098 | {
3099 | "url": "https://symfony.com/sponsor",
3100 | "type": "custom"
3101 | },
3102 | {
3103 | "url": "https://github.com/fabpot",
3104 | "type": "github"
3105 | },
3106 | {
3107 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3108 | "type": "tidelift"
3109 | }
3110 | ],
3111 | "time": "2024-06-28T10:03:55+00:00"
3112 | },
3113 | {
3114 | "name": "symfony/finder",
3115 | "version": "v7.1.3",
3116 | "source": {
3117 | "type": "git",
3118 | "url": "https://github.com/symfony/finder.git",
3119 | "reference": "717c6329886f32dc65e27461f80f2a465412fdca"
3120 | },
3121 | "dist": {
3122 | "type": "zip",
3123 | "url": "https://api.github.com/repos/symfony/finder/zipball/717c6329886f32dc65e27461f80f2a465412fdca",
3124 | "reference": "717c6329886f32dc65e27461f80f2a465412fdca",
3125 | "shasum": ""
3126 | },
3127 | "require": {
3128 | "php": ">=8.2"
3129 | },
3130 | "require-dev": {
3131 | "symfony/filesystem": "^6.4|^7.0"
3132 | },
3133 | "type": "library",
3134 | "autoload": {
3135 | "psr-4": {
3136 | "Symfony\\Component\\Finder\\": ""
3137 | },
3138 | "exclude-from-classmap": [
3139 | "/Tests/"
3140 | ]
3141 | },
3142 | "notification-url": "https://packagist.org/downloads/",
3143 | "license": [
3144 | "MIT"
3145 | ],
3146 | "authors": [
3147 | {
3148 | "name": "Fabien Potencier",
3149 | "email": "fabien@symfony.com"
3150 | },
3151 | {
3152 | "name": "Symfony Community",
3153 | "homepage": "https://symfony.com/contributors"
3154 | }
3155 | ],
3156 | "description": "Finds files and directories via an intuitive fluent interface",
3157 | "homepage": "https://symfony.com",
3158 | "support": {
3159 | "source": "https://github.com/symfony/finder/tree/v7.1.3"
3160 | },
3161 | "funding": [
3162 | {
3163 | "url": "https://symfony.com/sponsor",
3164 | "type": "custom"
3165 | },
3166 | {
3167 | "url": "https://github.com/fabpot",
3168 | "type": "github"
3169 | },
3170 | {
3171 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3172 | "type": "tidelift"
3173 | }
3174 | ],
3175 | "time": "2024-07-24T07:08:44+00:00"
3176 | },
3177 | {
3178 | "name": "symfony/polyfill-ctype",
3179 | "version": "v1.30.0",
3180 | "source": {
3181 | "type": "git",
3182 | "url": "https://github.com/symfony/polyfill-ctype.git",
3183 | "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
3184 | },
3185 | "dist": {
3186 | "type": "zip",
3187 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
3188 | "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
3189 | "shasum": ""
3190 | },
3191 | "require": {
3192 | "php": ">=7.1"
3193 | },
3194 | "provide": {
3195 | "ext-ctype": "*"
3196 | },
3197 | "suggest": {
3198 | "ext-ctype": "For best performance"
3199 | },
3200 | "type": "library",
3201 | "extra": {
3202 | "thanks": {
3203 | "name": "symfony/polyfill",
3204 | "url": "https://github.com/symfony/polyfill"
3205 | }
3206 | },
3207 | "autoload": {
3208 | "files": [
3209 | "bootstrap.php"
3210 | ],
3211 | "psr-4": {
3212 | "Symfony\\Polyfill\\Ctype\\": ""
3213 | }
3214 | },
3215 | "notification-url": "https://packagist.org/downloads/",
3216 | "license": [
3217 | "MIT"
3218 | ],
3219 | "authors": [
3220 | {
3221 | "name": "Gert de Pagter",
3222 | "email": "BackEndTea@gmail.com"
3223 | },
3224 | {
3225 | "name": "Symfony Community",
3226 | "homepage": "https://symfony.com/contributors"
3227 | }
3228 | ],
3229 | "description": "Symfony polyfill for ctype functions",
3230 | "homepage": "https://symfony.com",
3231 | "keywords": [
3232 | "compatibility",
3233 | "ctype",
3234 | "polyfill",
3235 | "portable"
3236 | ],
3237 | "support": {
3238 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
3239 | },
3240 | "funding": [
3241 | {
3242 | "url": "https://symfony.com/sponsor",
3243 | "type": "custom"
3244 | },
3245 | {
3246 | "url": "https://github.com/fabpot",
3247 | "type": "github"
3248 | },
3249 | {
3250 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3251 | "type": "tidelift"
3252 | }
3253 | ],
3254 | "time": "2024-05-31T15:07:36+00:00"
3255 | },
3256 | {
3257 | "name": "symfony/polyfill-intl-grapheme",
3258 | "version": "v1.30.0",
3259 | "source": {
3260 | "type": "git",
3261 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
3262 | "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
3263 | },
3264 | "dist": {
3265 | "type": "zip",
3266 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
3267 | "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
3268 | "shasum": ""
3269 | },
3270 | "require": {
3271 | "php": ">=7.1"
3272 | },
3273 | "suggest": {
3274 | "ext-intl": "For best performance"
3275 | },
3276 | "type": "library",
3277 | "extra": {
3278 | "thanks": {
3279 | "name": "symfony/polyfill",
3280 | "url": "https://github.com/symfony/polyfill"
3281 | }
3282 | },
3283 | "autoload": {
3284 | "files": [
3285 | "bootstrap.php"
3286 | ],
3287 | "psr-4": {
3288 | "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
3289 | }
3290 | },
3291 | "notification-url": "https://packagist.org/downloads/",
3292 | "license": [
3293 | "MIT"
3294 | ],
3295 | "authors": [
3296 | {
3297 | "name": "Nicolas Grekas",
3298 | "email": "p@tchwork.com"
3299 | },
3300 | {
3301 | "name": "Symfony Community",
3302 | "homepage": "https://symfony.com/contributors"
3303 | }
3304 | ],
3305 | "description": "Symfony polyfill for intl's grapheme_* functions",
3306 | "homepage": "https://symfony.com",
3307 | "keywords": [
3308 | "compatibility",
3309 | "grapheme",
3310 | "intl",
3311 | "polyfill",
3312 | "portable",
3313 | "shim"
3314 | ],
3315 | "support": {
3316 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
3317 | },
3318 | "funding": [
3319 | {
3320 | "url": "https://symfony.com/sponsor",
3321 | "type": "custom"
3322 | },
3323 | {
3324 | "url": "https://github.com/fabpot",
3325 | "type": "github"
3326 | },
3327 | {
3328 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3329 | "type": "tidelift"
3330 | }
3331 | ],
3332 | "time": "2024-05-31T15:07:36+00:00"
3333 | },
3334 | {
3335 | "name": "symfony/polyfill-intl-normalizer",
3336 | "version": "v1.30.0",
3337 | "source": {
3338 | "type": "git",
3339 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
3340 | "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
3341 | },
3342 | "dist": {
3343 | "type": "zip",
3344 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
3345 | "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
3346 | "shasum": ""
3347 | },
3348 | "require": {
3349 | "php": ">=7.1"
3350 | },
3351 | "suggest": {
3352 | "ext-intl": "For best performance"
3353 | },
3354 | "type": "library",
3355 | "extra": {
3356 | "thanks": {
3357 | "name": "symfony/polyfill",
3358 | "url": "https://github.com/symfony/polyfill"
3359 | }
3360 | },
3361 | "autoload": {
3362 | "files": [
3363 | "bootstrap.php"
3364 | ],
3365 | "psr-4": {
3366 | "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
3367 | },
3368 | "classmap": [
3369 | "Resources/stubs"
3370 | ]
3371 | },
3372 | "notification-url": "https://packagist.org/downloads/",
3373 | "license": [
3374 | "MIT"
3375 | ],
3376 | "authors": [
3377 | {
3378 | "name": "Nicolas Grekas",
3379 | "email": "p@tchwork.com"
3380 | },
3381 | {
3382 | "name": "Symfony Community",
3383 | "homepage": "https://symfony.com/contributors"
3384 | }
3385 | ],
3386 | "description": "Symfony polyfill for intl's Normalizer class and related functions",
3387 | "homepage": "https://symfony.com",
3388 | "keywords": [
3389 | "compatibility",
3390 | "intl",
3391 | "normalizer",
3392 | "polyfill",
3393 | "portable",
3394 | "shim"
3395 | ],
3396 | "support": {
3397 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
3398 | },
3399 | "funding": [
3400 | {
3401 | "url": "https://symfony.com/sponsor",
3402 | "type": "custom"
3403 | },
3404 | {
3405 | "url": "https://github.com/fabpot",
3406 | "type": "github"
3407 | },
3408 | {
3409 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3410 | "type": "tidelift"
3411 | }
3412 | ],
3413 | "time": "2024-05-31T15:07:36+00:00"
3414 | },
3415 | {
3416 | "name": "symfony/polyfill-mbstring",
3417 | "version": "v1.30.0",
3418 | "source": {
3419 | "type": "git",
3420 | "url": "https://github.com/symfony/polyfill-mbstring.git",
3421 | "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
3422 | },
3423 | "dist": {
3424 | "type": "zip",
3425 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
3426 | "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
3427 | "shasum": ""
3428 | },
3429 | "require": {
3430 | "php": ">=7.1"
3431 | },
3432 | "provide": {
3433 | "ext-mbstring": "*"
3434 | },
3435 | "suggest": {
3436 | "ext-mbstring": "For best performance"
3437 | },
3438 | "type": "library",
3439 | "extra": {
3440 | "thanks": {
3441 | "name": "symfony/polyfill",
3442 | "url": "https://github.com/symfony/polyfill"
3443 | }
3444 | },
3445 | "autoload": {
3446 | "files": [
3447 | "bootstrap.php"
3448 | ],
3449 | "psr-4": {
3450 | "Symfony\\Polyfill\\Mbstring\\": ""
3451 | }
3452 | },
3453 | "notification-url": "https://packagist.org/downloads/",
3454 | "license": [
3455 | "MIT"
3456 | ],
3457 | "authors": [
3458 | {
3459 | "name": "Nicolas Grekas",
3460 | "email": "p@tchwork.com"
3461 | },
3462 | {
3463 | "name": "Symfony Community",
3464 | "homepage": "https://symfony.com/contributors"
3465 | }
3466 | ],
3467 | "description": "Symfony polyfill for the Mbstring extension",
3468 | "homepage": "https://symfony.com",
3469 | "keywords": [
3470 | "compatibility",
3471 | "mbstring",
3472 | "polyfill",
3473 | "portable",
3474 | "shim"
3475 | ],
3476 | "support": {
3477 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
3478 | },
3479 | "funding": [
3480 | {
3481 | "url": "https://symfony.com/sponsor",
3482 | "type": "custom"
3483 | },
3484 | {
3485 | "url": "https://github.com/fabpot",
3486 | "type": "github"
3487 | },
3488 | {
3489 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3490 | "type": "tidelift"
3491 | }
3492 | ],
3493 | "time": "2024-06-19T12:30:46+00:00"
3494 | },
3495 | {
3496 | "name": "symfony/polyfill-php73",
3497 | "version": "v1.30.0",
3498 | "source": {
3499 | "type": "git",
3500 | "url": "https://github.com/symfony/polyfill-php73.git",
3501 | "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1"
3502 | },
3503 | "dist": {
3504 | "type": "zip",
3505 | "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1",
3506 | "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1",
3507 | "shasum": ""
3508 | },
3509 | "require": {
3510 | "php": ">=7.1"
3511 | },
3512 | "type": "library",
3513 | "extra": {
3514 | "thanks": {
3515 | "name": "symfony/polyfill",
3516 | "url": "https://github.com/symfony/polyfill"
3517 | }
3518 | },
3519 | "autoload": {
3520 | "files": [
3521 | "bootstrap.php"
3522 | ],
3523 | "psr-4": {
3524 | "Symfony\\Polyfill\\Php73\\": ""
3525 | },
3526 | "classmap": [
3527 | "Resources/stubs"
3528 | ]
3529 | },
3530 | "notification-url": "https://packagist.org/downloads/",
3531 | "license": [
3532 | "MIT"
3533 | ],
3534 | "authors": [
3535 | {
3536 | "name": "Nicolas Grekas",
3537 | "email": "p@tchwork.com"
3538 | },
3539 | {
3540 | "name": "Symfony Community",
3541 | "homepage": "https://symfony.com/contributors"
3542 | }
3543 | ],
3544 | "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
3545 | "homepage": "https://symfony.com",
3546 | "keywords": [
3547 | "compatibility",
3548 | "polyfill",
3549 | "portable",
3550 | "shim"
3551 | ],
3552 | "support": {
3553 | "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0"
3554 | },
3555 | "funding": [
3556 | {
3557 | "url": "https://symfony.com/sponsor",
3558 | "type": "custom"
3559 | },
3560 | {
3561 | "url": "https://github.com/fabpot",
3562 | "type": "github"
3563 | },
3564 | {
3565 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3566 | "type": "tidelift"
3567 | }
3568 | ],
3569 | "time": "2024-05-31T15:07:36+00:00"
3570 | },
3571 | {
3572 | "name": "symfony/polyfill-php80",
3573 | "version": "v1.30.0",
3574 | "source": {
3575 | "type": "git",
3576 | "url": "https://github.com/symfony/polyfill-php80.git",
3577 | "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
3578 | },
3579 | "dist": {
3580 | "type": "zip",
3581 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
3582 | "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
3583 | "shasum": ""
3584 | },
3585 | "require": {
3586 | "php": ">=7.1"
3587 | },
3588 | "type": "library",
3589 | "extra": {
3590 | "thanks": {
3591 | "name": "symfony/polyfill",
3592 | "url": "https://github.com/symfony/polyfill"
3593 | }
3594 | },
3595 | "autoload": {
3596 | "files": [
3597 | "bootstrap.php"
3598 | ],
3599 | "psr-4": {
3600 | "Symfony\\Polyfill\\Php80\\": ""
3601 | },
3602 | "classmap": [
3603 | "Resources/stubs"
3604 | ]
3605 | },
3606 | "notification-url": "https://packagist.org/downloads/",
3607 | "license": [
3608 | "MIT"
3609 | ],
3610 | "authors": [
3611 | {
3612 | "name": "Ion Bazan",
3613 | "email": "ion.bazan@gmail.com"
3614 | },
3615 | {
3616 | "name": "Nicolas Grekas",
3617 | "email": "p@tchwork.com"
3618 | },
3619 | {
3620 | "name": "Symfony Community",
3621 | "homepage": "https://symfony.com/contributors"
3622 | }
3623 | ],
3624 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
3625 | "homepage": "https://symfony.com",
3626 | "keywords": [
3627 | "compatibility",
3628 | "polyfill",
3629 | "portable",
3630 | "shim"
3631 | ],
3632 | "support": {
3633 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
3634 | },
3635 | "funding": [
3636 | {
3637 | "url": "https://symfony.com/sponsor",
3638 | "type": "custom"
3639 | },
3640 | {
3641 | "url": "https://github.com/fabpot",
3642 | "type": "github"
3643 | },
3644 | {
3645 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3646 | "type": "tidelift"
3647 | }
3648 | ],
3649 | "time": "2024-05-31T15:07:36+00:00"
3650 | },
3651 | {
3652 | "name": "symfony/polyfill-php81",
3653 | "version": "v1.30.0",
3654 | "source": {
3655 | "type": "git",
3656 | "url": "https://github.com/symfony/polyfill-php81.git",
3657 | "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
3658 | },
3659 | "dist": {
3660 | "type": "zip",
3661 | "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
3662 | "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
3663 | "shasum": ""
3664 | },
3665 | "require": {
3666 | "php": ">=7.1"
3667 | },
3668 | "type": "library",
3669 | "extra": {
3670 | "thanks": {
3671 | "name": "symfony/polyfill",
3672 | "url": "https://github.com/symfony/polyfill"
3673 | }
3674 | },
3675 | "autoload": {
3676 | "files": [
3677 | "bootstrap.php"
3678 | ],
3679 | "psr-4": {
3680 | "Symfony\\Polyfill\\Php81\\": ""
3681 | },
3682 | "classmap": [
3683 | "Resources/stubs"
3684 | ]
3685 | },
3686 | "notification-url": "https://packagist.org/downloads/",
3687 | "license": [
3688 | "MIT"
3689 | ],
3690 | "authors": [
3691 | {
3692 | "name": "Nicolas Grekas",
3693 | "email": "p@tchwork.com"
3694 | },
3695 | {
3696 | "name": "Symfony Community",
3697 | "homepage": "https://symfony.com/contributors"
3698 | }
3699 | ],
3700 | "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
3701 | "homepage": "https://symfony.com",
3702 | "keywords": [
3703 | "compatibility",
3704 | "polyfill",
3705 | "portable",
3706 | "shim"
3707 | ],
3708 | "support": {
3709 | "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0"
3710 | },
3711 | "funding": [
3712 | {
3713 | "url": "https://symfony.com/sponsor",
3714 | "type": "custom"
3715 | },
3716 | {
3717 | "url": "https://github.com/fabpot",
3718 | "type": "github"
3719 | },
3720 | {
3721 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3722 | "type": "tidelift"
3723 | }
3724 | ],
3725 | "time": "2024-06-19T12:30:46+00:00"
3726 | },
3727 | {
3728 | "name": "symfony/process",
3729 | "version": "v7.1.3",
3730 | "source": {
3731 | "type": "git",
3732 | "url": "https://github.com/symfony/process.git",
3733 | "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca"
3734 | },
3735 | "dist": {
3736 | "type": "zip",
3737 | "url": "https://api.github.com/repos/symfony/process/zipball/7f2f542c668ad6c313dc4a5e9c3321f733197eca",
3738 | "reference": "7f2f542c668ad6c313dc4a5e9c3321f733197eca",
3739 | "shasum": ""
3740 | },
3741 | "require": {
3742 | "php": ">=8.2"
3743 | },
3744 | "type": "library",
3745 | "autoload": {
3746 | "psr-4": {
3747 | "Symfony\\Component\\Process\\": ""
3748 | },
3749 | "exclude-from-classmap": [
3750 | "/Tests/"
3751 | ]
3752 | },
3753 | "notification-url": "https://packagist.org/downloads/",
3754 | "license": [
3755 | "MIT"
3756 | ],
3757 | "authors": [
3758 | {
3759 | "name": "Fabien Potencier",
3760 | "email": "fabien@symfony.com"
3761 | },
3762 | {
3763 | "name": "Symfony Community",
3764 | "homepage": "https://symfony.com/contributors"
3765 | }
3766 | ],
3767 | "description": "Executes commands in sub-processes",
3768 | "homepage": "https://symfony.com",
3769 | "support": {
3770 | "source": "https://github.com/symfony/process/tree/v7.1.3"
3771 | },
3772 | "funding": [
3773 | {
3774 | "url": "https://symfony.com/sponsor",
3775 | "type": "custom"
3776 | },
3777 | {
3778 | "url": "https://github.com/fabpot",
3779 | "type": "github"
3780 | },
3781 | {
3782 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3783 | "type": "tidelift"
3784 | }
3785 | ],
3786 | "time": "2024-07-26T12:44:47+00:00"
3787 | },
3788 | {
3789 | "name": "symfony/service-contracts",
3790 | "version": "v3.5.0",
3791 | "source": {
3792 | "type": "git",
3793 | "url": "https://github.com/symfony/service-contracts.git",
3794 | "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
3795 | },
3796 | "dist": {
3797 | "type": "zip",
3798 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
3799 | "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
3800 | "shasum": ""
3801 | },
3802 | "require": {
3803 | "php": ">=8.1",
3804 | "psr/container": "^1.1|^2.0",
3805 | "symfony/deprecation-contracts": "^2.5|^3"
3806 | },
3807 | "conflict": {
3808 | "ext-psr": "<1.1|>=2"
3809 | },
3810 | "type": "library",
3811 | "extra": {
3812 | "branch-alias": {
3813 | "dev-main": "3.5-dev"
3814 | },
3815 | "thanks": {
3816 | "name": "symfony/contracts",
3817 | "url": "https://github.com/symfony/contracts"
3818 | }
3819 | },
3820 | "autoload": {
3821 | "psr-4": {
3822 | "Symfony\\Contracts\\Service\\": ""
3823 | },
3824 | "exclude-from-classmap": [
3825 | "/Test/"
3826 | ]
3827 | },
3828 | "notification-url": "https://packagist.org/downloads/",
3829 | "license": [
3830 | "MIT"
3831 | ],
3832 | "authors": [
3833 | {
3834 | "name": "Nicolas Grekas",
3835 | "email": "p@tchwork.com"
3836 | },
3837 | {
3838 | "name": "Symfony Community",
3839 | "homepage": "https://symfony.com/contributors"
3840 | }
3841 | ],
3842 | "description": "Generic abstractions related to writing services",
3843 | "homepage": "https://symfony.com",
3844 | "keywords": [
3845 | "abstractions",
3846 | "contracts",
3847 | "decoupling",
3848 | "interfaces",
3849 | "interoperability",
3850 | "standards"
3851 | ],
3852 | "support": {
3853 | "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
3854 | },
3855 | "funding": [
3856 | {
3857 | "url": "https://symfony.com/sponsor",
3858 | "type": "custom"
3859 | },
3860 | {
3861 | "url": "https://github.com/fabpot",
3862 | "type": "github"
3863 | },
3864 | {
3865 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3866 | "type": "tidelift"
3867 | }
3868 | ],
3869 | "time": "2024-04-18T09:32:20+00:00"
3870 | },
3871 | {
3872 | "name": "symfony/string",
3873 | "version": "v7.1.3",
3874 | "source": {
3875 | "type": "git",
3876 | "url": "https://github.com/symfony/string.git",
3877 | "reference": "ea272a882be7f20cad58d5d78c215001617b7f07"
3878 | },
3879 | "dist": {
3880 | "type": "zip",
3881 | "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07",
3882 | "reference": "ea272a882be7f20cad58d5d78c215001617b7f07",
3883 | "shasum": ""
3884 | },
3885 | "require": {
3886 | "php": ">=8.2",
3887 | "symfony/polyfill-ctype": "~1.8",
3888 | "symfony/polyfill-intl-grapheme": "~1.0",
3889 | "symfony/polyfill-intl-normalizer": "~1.0",
3890 | "symfony/polyfill-mbstring": "~1.0"
3891 | },
3892 | "conflict": {
3893 | "symfony/translation-contracts": "<2.5"
3894 | },
3895 | "require-dev": {
3896 | "symfony/emoji": "^7.1",
3897 | "symfony/error-handler": "^6.4|^7.0",
3898 | "symfony/http-client": "^6.4|^7.0",
3899 | "symfony/intl": "^6.4|^7.0",
3900 | "symfony/translation-contracts": "^2.5|^3.0",
3901 | "symfony/var-exporter": "^6.4|^7.0"
3902 | },
3903 | "type": "library",
3904 | "autoload": {
3905 | "files": [
3906 | "Resources/functions.php"
3907 | ],
3908 | "psr-4": {
3909 | "Symfony\\Component\\String\\": ""
3910 | },
3911 | "exclude-from-classmap": [
3912 | "/Tests/"
3913 | ]
3914 | },
3915 | "notification-url": "https://packagist.org/downloads/",
3916 | "license": [
3917 | "MIT"
3918 | ],
3919 | "authors": [
3920 | {
3921 | "name": "Nicolas Grekas",
3922 | "email": "p@tchwork.com"
3923 | },
3924 | {
3925 | "name": "Symfony Community",
3926 | "homepage": "https://symfony.com/contributors"
3927 | }
3928 | ],
3929 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
3930 | "homepage": "https://symfony.com",
3931 | "keywords": [
3932 | "grapheme",
3933 | "i18n",
3934 | "string",
3935 | "unicode",
3936 | "utf-8",
3937 | "utf8"
3938 | ],
3939 | "support": {
3940 | "source": "https://github.com/symfony/string/tree/v7.1.3"
3941 | },
3942 | "funding": [
3943 | {
3944 | "url": "https://symfony.com/sponsor",
3945 | "type": "custom"
3946 | },
3947 | {
3948 | "url": "https://github.com/fabpot",
3949 | "type": "github"
3950 | },
3951 | {
3952 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3953 | "type": "tidelift"
3954 | }
3955 | ],
3956 | "time": "2024-07-22T10:25:37+00:00"
3957 | },
3958 | {
3959 | "name": "theseer/tokenizer",
3960 | "version": "1.2.3",
3961 | "source": {
3962 | "type": "git",
3963 | "url": "https://github.com/theseer/tokenizer.git",
3964 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
3965 | },
3966 | "dist": {
3967 | "type": "zip",
3968 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
3969 | "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
3970 | "shasum": ""
3971 | },
3972 | "require": {
3973 | "ext-dom": "*",
3974 | "ext-tokenizer": "*",
3975 | "ext-xmlwriter": "*",
3976 | "php": "^7.2 || ^8.0"
3977 | },
3978 | "type": "library",
3979 | "autoload": {
3980 | "classmap": [
3981 | "src/"
3982 | ]
3983 | },
3984 | "notification-url": "https://packagist.org/downloads/",
3985 | "license": [
3986 | "BSD-3-Clause"
3987 | ],
3988 | "authors": [
3989 | {
3990 | "name": "Arne Blankerts",
3991 | "email": "arne@blankerts.de",
3992 | "role": "Developer"
3993 | }
3994 | ],
3995 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
3996 | "support": {
3997 | "issues": "https://github.com/theseer/tokenizer/issues",
3998 | "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
3999 | },
4000 | "funding": [
4001 | {
4002 | "url": "https://github.com/theseer",
4003 | "type": "github"
4004 | }
4005 | ],
4006 | "time": "2024-03-03T12:36:25+00:00"
4007 | }
4008 | ],
4009 | "aliases": [],
4010 | "minimum-stability": "stable",
4011 | "stability-flags": [],
4012 | "prefer-stable": false,
4013 | "prefer-lowest": false,
4014 | "platform": {
4015 | "composer-plugin-api": "^1.1|^2.0",
4016 | "php": "^7.3|^8.0"
4017 | },
4018 | "platform-dev": [],
4019 | "plugin-api-version": "2.6.0"
4020 | }
4021 |
--------------------------------------------------------------------------------
/phpcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | The PSR-2 coding standard.
4 |
5 |
6 |
7 |
8 |
9 | vendor
10 | resources
11 | database/
12 | storage/
13 | node_modules/
14 |
--------------------------------------------------------------------------------
/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | tests
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/ThemeInstaller.php:
--------------------------------------------------------------------------------
1 | getBaseInstallationPath() . DIRECTORY_SEPARATOR . $this->getThemeName($package);
24 | }
25 |
26 | /**
27 | * Get the base path that the module should be installed into.
28 | * Defaults to Modules/ and can be overridden in the module's composer.json.
29 | * @return string
30 | */
31 | protected function getBaseInstallationPath()
32 | {
33 | if ($this->composer && $this->composer->getPackage()) {
34 | $extra = $this->composer->getPackage()->getExtra();
35 |
36 | if (array_key_exists('theme-dir', $extra)) {
37 | return $extra['theme-dir'];
38 | }
39 | }
40 |
41 | return 'themes';
42 | }
43 |
44 | /**
45 | * Get the theme name
46 | * "something" => "something"
47 | * "vendor-name/something" => "something"
48 | * "vendor-name/something-theme" => "something"
49 | * @param PackageInterface $package
50 | * @return string
51 | * @throws \Exception
52 | */
53 | protected function getThemeName(PackageInterface $package)
54 | {
55 | return str_replace('-theme', '', str_replace('theme-', '', $package->getPrettyName()));
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/ThemeInstallerPlugin.php:
--------------------------------------------------------------------------------
1 | getInstallationManager()->addInstaller($installer);
19 | }
20 |
21 | /**
22 | * {@inheritdoc}
23 | */
24 | public function deactivate(Composer $composer, IOInterface $io)
25 | {
26 | //
27 | }
28 |
29 | /**
30 | * {@inheritdoc}
31 | */
32 | public function uninstall(Composer $composer, IOInterface $io)
33 | {
34 | //
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/tests/ThemeInstallerTest.php:
--------------------------------------------------------------------------------
1 | io = Mockery::mock(IOInterface::class);
20 | $this->composer = Mockery::mock(Composer::class);
21 | $this->composer->allows([
22 | 'getPackage' => $this->composer,
23 | 'getDownloadManager' => $this->composer,
24 | 'getConfig' => $this->composer,
25 | 'get' => $this->composer,
26 | ])->shouldReceive('getExtra')->byDefault();
27 |
28 | $this->test = new ThemeInstaller(
29 | $this->io, $this->composer
30 | );
31 | }
32 |
33 | /**
34 | * @test
35 | *
36 | * Your package composer.json file must include:
37 | *
38 | * "type": "laravel-theme",
39 | */
40 | public function it_supports_laravel_theme_type_only()
41 | {
42 | $this->assertFalse($this->test->supports('theme'));
43 | $this->assertTrue($this->test->supports('laravel-theme'));
44 | }
45 |
46 | /**
47 | * @test
48 | */
49 | public function it_supports_vendor_not_included()
50 | {
51 | $mock = $this->getMockPackage('name');
52 |
53 | $this->assertEquals('themes/name', $this->test->getInstallPath($mock));
54 | }
55 |
56 | /**
57 | * @test
58 | */
59 | public function it_returns_themes_folder_by_default()
60 | {
61 | $mock = $this->getMockPackage('vendor/name-theme');
62 | $this->assertEquals('themes/vendor/name', $this->test->getInstallPath($mock));
63 | }
64 |
65 | /**
66 | * @test
67 | */
68 | public function it_can_use_compound_theme_names()
69 | {
70 | $mock = $this->getMockPackage('vendor/compound-name-theme');
71 |
72 | $this->assertEquals('themes/vendor/compound-name', $this->test->getInstallPath($mock));
73 | }
74 |
75 | /**
76 | * @test
77 | *
78 | * You can optionally include a base path name
79 | * in which to install.
80 | *
81 | * "extra": {
82 | * "theme-dir": "Custom"
83 | * },
84 | */
85 | public function it_can_use_custom_path()
86 | {
87 | $package = $this->getMockPackage('vendor/name-theme');
88 |
89 | $this->composer->shouldReceive('getExtra')
90 | ->andReturn(['theme-dir' => 'custom'])
91 | ->getMock();
92 |
93 | $this->assertEquals('custom/vendor/name', $this->test->getInstallPath($package));
94 | }
95 |
96 |
97 | private function getMockPackage($return)
98 | {
99 | return Mockery::mock(PackageInterface::class)
100 | ->shouldReceive('getPrettyName')
101 | ->once()
102 | ->andReturn($return)
103 | ->getMock();
104 | }
105 |
106 | }
107 |
--------------------------------------------------------------------------------