├── .gitignore
├── LICENSE
├── README.md
├── TELEGRAM_BOT_INSTRUCTIONS.md
├── composer.json
├── composer.lock
├── config
└── telegram-logger.php
└── src
├── Services
└── TelegramService.php
├── TelegramLogger.php
├── TelegramLoggerHandler.php
└── TelegramLoggerServiceProvider.php
/.gitignore:
--------------------------------------------------------------------------------
1 | composer.phar
2 | /vendor/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Rafael Laurindo
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 Telegram Logging
2 |
3 | Send Laravel logs to a Telegram chat via Telegram Bot.
4 |
5 | [](//packagist.org/packages/rafaellaurindo/laravel-telegram-logging)
6 | [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LUAC5W7GF2BVW&source=url)
7 | [](https://github.com/rafaellaurindo/laravel-telegram-logging/blob/master/LICENSE)
8 |
9 | ## Installation
10 |
11 | To install the package you can use [Composer](https://getcomposer.org/).
12 |
13 | ```bash
14 | composer require rafaellaurindo/laravel-telegram-logging
15 | ```
16 |
17 | Publish the package configuration file using the following artisan command:
18 |
19 | ```bash
20 | php artisan vendor:publish --provider "RLaurindo\TelegramLogger\TelegramLoggerServiceProvider"
21 | ```
22 |
23 | To send messages to your Telegram Chat, you first need a Telegram Bot. If you don't have one, see in this [Telegram Instructions](TELEGRAM_BOT_INSTRUCTIONS.md) how to create one.
24 |
25 | Set your Bot Token and chat_id (user, channel or group that will receive log messages) and set as environment variable.
26 |
27 | Add in your **.env**, the follows variables:
28 |
29 | ```bash
30 | TELEGRAM_BOT_TOKEN=bot_token
31 | TELEGRAM_CHAT_ID=chat_id
32 | ```
33 |
34 | ## Usage
35 |
36 | Add the new Log Channel in **config/logging.php**:
37 |
38 | ```php
39 | 'telegram' => [
40 | 'driver' => 'custom',
41 | 'via' => RLaurindo\TelegramLogger\TelegramLogger::class,
42 | 'level' => 'debug',
43 | ]
44 | ```
45 |
46 | If you use the **stack channel** as default logger, you can just the telegram channel to your stack:
47 |
48 | ```php
49 | 'stack' => [
50 | 'driver' => 'stack',
51 | 'channels' => ['single', 'telegram'],
52 | ]
53 | ```
54 |
55 | Or you can simply change the default logging channel in the .env file.
56 |
57 | ```bash
58 | LOG_CHANNEL=telegram
59 | ```
60 |
61 | Great! Your Laravel project can now send logs to your Telegram chat.
62 |
63 | You can use **Laravel Log Facade** to send logs to your chat:
64 |
65 | ```php
66 | // Use the Laravel Log Facade
67 | use Illuminate\Support\Facades\Log;
68 | ...
69 |
70 | // All Laravel log leves are avaiable
71 | Log::channel('telegram')->emergency($message);
72 | Log::channel('telegram')->alert($message);
73 | Log::channel('telegram')->critical($message);
74 | Log::channel('telegram')->error($message);
75 | Log::channel('telegram')->warning($message);
76 | Log::channel('telegram')->notice($message);
77 | Log::channel('telegram')->info($message);
78 | Log::channel('telegram')->debug($message);
79 | ```
80 |
81 | ## Telegram Instructions
82 |
83 | To use this package, you need to create a Telegram bot to send messages to your chat.
84 |
85 | If you need help, check out these [Telegram Instructions](TELEGRAM_BOT_INSTRUCTIONS.md) that I created for you.
86 |
87 | ## Contributing
88 |
89 | Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
90 |
91 | Please make sure to update tests as appropriate.
92 |
93 | ## Donations are welcome
94 |
95 | If this project help you reduce time to develop, you can give me a cup of coffee :)
96 |
97 | Donate with Paypal:
98 |
99 | [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LUAC5W7GF2BVW&source=url)
100 |
101 | ## License
102 |
103 | [MIT](https://github.com/rafaellaurindo/laravel-telegram-logging/blob/master/LICENSE)
104 |
--------------------------------------------------------------------------------
/TELEGRAM_BOT_INSTRUCTIONS.md:
--------------------------------------------------------------------------------
1 | # Telegram Instructions
2 |
3 | Instructions for creating a new Telegram Bot and getting chat_id from a particular group or chat.
4 |
5 | ## Creating a Bot
6 |
7 | 1. Go to [@BotFather](https://t.me/botfather) on Telegram.
8 |
9 | 2. Send `/newbot`, to start creating a new Bot.
10 |
11 | 
12 |
13 | 3. Set the bot's username and username.
14 |
15 | 
16 |
17 | 4. Now you need to allow your Bot to send direct messages, so send `/setjoingroups` to @BotFather, select your Bot and click Enable:
18 |
19 | 
20 |
21 | 5. Get the Bot token and add it to your .env file.
22 |
23 | 
24 |
25 | Bot Token in .env:
26 |
27 | 
28 |
29 | ## Getting a Telegram Chat ID
30 |
31 | - If you want to send messages to a group:
32 |
33 | 1. Add your Bot to a Telegram group.
34 | 2. Send any message from another user to this group.
35 |
36 | - If you want send direct messages to a user:
37 |
38 | 1. Search for your bot name, and select the chat.
39 | 2. Send `/start` to your Bot.
40 |
41 | 3. Visit the following link to get updates about your bot and get chat_id:
42 |
43 | https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/getUpdates
44 |
45 | Replace all **X** in the URL with your **Bot Token**.
46 |
47 | 4. Search for the chat that you want to send messages, and get the **chat->id**:
48 |
49 | 
50 |
51 | 5. Add it to your .env file:
52 |
53 | 
54 |
55 | ---
56 |
57 | Hope this helps you!
58 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rafaellaurindo/laravel-telegram-logging",
3 | "description": "Send Laravel logs to a Telegram chat via Telegram Bot.",
4 | "homepage": "https://github.com/rafaellaurindo/laravel-telegram-logging",
5 | "require": {
6 | "php": ">=7.2",
7 | "laravel/framework": "7.0 || ^8.0 || ^9.0 || ^10.0",
8 | "monolog/monolog": "2.*"
9 | },
10 | "license": "MIT",
11 | "authors": [
12 | {
13 | "name": "Rafael Laurindo",
14 | "email": "rafaelfilholm@gmail.com",
15 | "homepage": "https://rafaellaurindo.com.br"
16 | }
17 | ],
18 | "minimum-stability": "dev",
19 | "prefer-stable": true,
20 | "autoload": {
21 | "psr-4": {
22 | "RLaurindo\\TelegramLogger\\": "src/"
23 | }
24 | },
25 | "extra": {
26 | "laravel": {
27 | "providers": [
28 | "RLaurindo\\TelegramLogger\\TelegramLoggerServiceProvider"
29 | ]
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/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": "18068d66a71f445235edee9b5522804c",
8 | "packages": [
9 | {
10 | "name": "brick/math",
11 | "version": "0.11.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/brick/math.git",
15 | "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
20 | "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": "^8.0"
25 | },
26 | "require-dev": {
27 | "php-coveralls/php-coveralls": "^2.2",
28 | "phpunit/phpunit": "^9.0",
29 | "vimeo/psalm": "5.0.0"
30 | },
31 | "type": "library",
32 | "autoload": {
33 | "psr-4": {
34 | "Brick\\Math\\": "src/"
35 | }
36 | },
37 | "notification-url": "https://packagist.org/downloads/",
38 | "license": [
39 | "MIT"
40 | ],
41 | "description": "Arbitrary-precision arithmetic library",
42 | "keywords": [
43 | "Arbitrary-precision",
44 | "BigInteger",
45 | "BigRational",
46 | "arithmetic",
47 | "bigdecimal",
48 | "bignum",
49 | "brick",
50 | "math"
51 | ],
52 | "support": {
53 | "issues": "https://github.com/brick/math/issues",
54 | "source": "https://github.com/brick/math/tree/0.11.0"
55 | },
56 | "funding": [
57 | {
58 | "url": "https://github.com/BenMorel",
59 | "type": "github"
60 | }
61 | ],
62 | "time": "2023-01-15T23:15:59+00:00"
63 | },
64 | {
65 | "name": "dflydev/dot-access-data",
66 | "version": "v3.0.2",
67 | "source": {
68 | "type": "git",
69 | "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
70 | "reference": "f41715465d65213d644d3141a6a93081be5d3549"
71 | },
72 | "dist": {
73 | "type": "zip",
74 | "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
75 | "reference": "f41715465d65213d644d3141a6a93081be5d3549",
76 | "shasum": ""
77 | },
78 | "require": {
79 | "php": "^7.1 || ^8.0"
80 | },
81 | "require-dev": {
82 | "phpstan/phpstan": "^0.12.42",
83 | "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
84 | "scrutinizer/ocular": "1.6.0",
85 | "squizlabs/php_codesniffer": "^3.5",
86 | "vimeo/psalm": "^4.0.0"
87 | },
88 | "type": "library",
89 | "extra": {
90 | "branch-alias": {
91 | "dev-main": "3.x-dev"
92 | }
93 | },
94 | "autoload": {
95 | "psr-4": {
96 | "Dflydev\\DotAccessData\\": "src/"
97 | }
98 | },
99 | "notification-url": "https://packagist.org/downloads/",
100 | "license": [
101 | "MIT"
102 | ],
103 | "authors": [
104 | {
105 | "name": "Dragonfly Development Inc.",
106 | "email": "info@dflydev.com",
107 | "homepage": "http://dflydev.com"
108 | },
109 | {
110 | "name": "Beau Simensen",
111 | "email": "beau@dflydev.com",
112 | "homepage": "http://beausimensen.com"
113 | },
114 | {
115 | "name": "Carlos Frutos",
116 | "email": "carlos@kiwing.it",
117 | "homepage": "https://github.com/cfrutos"
118 | },
119 | {
120 | "name": "Colin O'Dell",
121 | "email": "colinodell@gmail.com",
122 | "homepage": "https://www.colinodell.com"
123 | }
124 | ],
125 | "description": "Given a deep data structure, access data by dot notation.",
126 | "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
127 | "keywords": [
128 | "access",
129 | "data",
130 | "dot",
131 | "notation"
132 | ],
133 | "support": {
134 | "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
135 | "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
136 | },
137 | "time": "2022-10-27T11:44:00+00:00"
138 | },
139 | {
140 | "name": "doctrine/inflector",
141 | "version": "2.0.6",
142 | "source": {
143 | "type": "git",
144 | "url": "https://github.com/doctrine/inflector.git",
145 | "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
146 | },
147 | "dist": {
148 | "type": "zip",
149 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
150 | "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
151 | "shasum": ""
152 | },
153 | "require": {
154 | "php": "^7.2 || ^8.0"
155 | },
156 | "require-dev": {
157 | "doctrine/coding-standard": "^10",
158 | "phpstan/phpstan": "^1.8",
159 | "phpstan/phpstan-phpunit": "^1.1",
160 | "phpstan/phpstan-strict-rules": "^1.3",
161 | "phpunit/phpunit": "^8.5 || ^9.5",
162 | "vimeo/psalm": "^4.25"
163 | },
164 | "type": "library",
165 | "autoload": {
166 | "psr-4": {
167 | "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
168 | }
169 | },
170 | "notification-url": "https://packagist.org/downloads/",
171 | "license": [
172 | "MIT"
173 | ],
174 | "authors": [
175 | {
176 | "name": "Guilherme Blanco",
177 | "email": "guilhermeblanco@gmail.com"
178 | },
179 | {
180 | "name": "Roman Borschel",
181 | "email": "roman@code-factory.org"
182 | },
183 | {
184 | "name": "Benjamin Eberlei",
185 | "email": "kontakt@beberlei.de"
186 | },
187 | {
188 | "name": "Jonathan Wage",
189 | "email": "jonwage@gmail.com"
190 | },
191 | {
192 | "name": "Johannes Schmitt",
193 | "email": "schmittjoh@gmail.com"
194 | }
195 | ],
196 | "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
197 | "homepage": "https://www.doctrine-project.org/projects/inflector.html",
198 | "keywords": [
199 | "inflection",
200 | "inflector",
201 | "lowercase",
202 | "manipulation",
203 | "php",
204 | "plural",
205 | "singular",
206 | "strings",
207 | "uppercase",
208 | "words"
209 | ],
210 | "support": {
211 | "issues": "https://github.com/doctrine/inflector/issues",
212 | "source": "https://github.com/doctrine/inflector/tree/2.0.6"
213 | },
214 | "funding": [
215 | {
216 | "url": "https://www.doctrine-project.org/sponsorship.html",
217 | "type": "custom"
218 | },
219 | {
220 | "url": "https://www.patreon.com/phpdoctrine",
221 | "type": "patreon"
222 | },
223 | {
224 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
225 | "type": "tidelift"
226 | }
227 | ],
228 | "time": "2022-10-20T09:10:12+00:00"
229 | },
230 | {
231 | "name": "doctrine/lexer",
232 | "version": "3.0.0",
233 | "source": {
234 | "type": "git",
235 | "url": "https://github.com/doctrine/lexer.git",
236 | "reference": "84a527db05647743d50373e0ec53a152f2cde568"
237 | },
238 | "dist": {
239 | "type": "zip",
240 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
241 | "reference": "84a527db05647743d50373e0ec53a152f2cde568",
242 | "shasum": ""
243 | },
244 | "require": {
245 | "php": "^8.1"
246 | },
247 | "require-dev": {
248 | "doctrine/coding-standard": "^10",
249 | "phpstan/phpstan": "^1.9",
250 | "phpunit/phpunit": "^9.5",
251 | "psalm/plugin-phpunit": "^0.18.3",
252 | "vimeo/psalm": "^5.0"
253 | },
254 | "type": "library",
255 | "autoload": {
256 | "psr-4": {
257 | "Doctrine\\Common\\Lexer\\": "src"
258 | }
259 | },
260 | "notification-url": "https://packagist.org/downloads/",
261 | "license": [
262 | "MIT"
263 | ],
264 | "authors": [
265 | {
266 | "name": "Guilherme Blanco",
267 | "email": "guilhermeblanco@gmail.com"
268 | },
269 | {
270 | "name": "Roman Borschel",
271 | "email": "roman@code-factory.org"
272 | },
273 | {
274 | "name": "Johannes Schmitt",
275 | "email": "schmittjoh@gmail.com"
276 | }
277 | ],
278 | "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
279 | "homepage": "https://www.doctrine-project.org/projects/lexer.html",
280 | "keywords": [
281 | "annotations",
282 | "docblock",
283 | "lexer",
284 | "parser",
285 | "php"
286 | ],
287 | "support": {
288 | "issues": "https://github.com/doctrine/lexer/issues",
289 | "source": "https://github.com/doctrine/lexer/tree/3.0.0"
290 | },
291 | "funding": [
292 | {
293 | "url": "https://www.doctrine-project.org/sponsorship.html",
294 | "type": "custom"
295 | },
296 | {
297 | "url": "https://www.patreon.com/phpdoctrine",
298 | "type": "patreon"
299 | },
300 | {
301 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
302 | "type": "tidelift"
303 | }
304 | ],
305 | "time": "2022-12-15T16:57:16+00:00"
306 | },
307 | {
308 | "name": "dragonmantank/cron-expression",
309 | "version": "v3.3.2",
310 | "source": {
311 | "type": "git",
312 | "url": "https://github.com/dragonmantank/cron-expression.git",
313 | "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8"
314 | },
315 | "dist": {
316 | "type": "zip",
317 | "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8",
318 | "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8",
319 | "shasum": ""
320 | },
321 | "require": {
322 | "php": "^7.2|^8.0",
323 | "webmozart/assert": "^1.0"
324 | },
325 | "replace": {
326 | "mtdowling/cron-expression": "^1.0"
327 | },
328 | "require-dev": {
329 | "phpstan/extension-installer": "^1.0",
330 | "phpstan/phpstan": "^1.0",
331 | "phpstan/phpstan-webmozart-assert": "^1.0",
332 | "phpunit/phpunit": "^7.0|^8.0|^9.0"
333 | },
334 | "type": "library",
335 | "autoload": {
336 | "psr-4": {
337 | "Cron\\": "src/Cron/"
338 | }
339 | },
340 | "notification-url": "https://packagist.org/downloads/",
341 | "license": [
342 | "MIT"
343 | ],
344 | "authors": [
345 | {
346 | "name": "Chris Tankersley",
347 | "email": "chris@ctankersley.com",
348 | "homepage": "https://github.com/dragonmantank"
349 | }
350 | ],
351 | "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
352 | "keywords": [
353 | "cron",
354 | "schedule"
355 | ],
356 | "support": {
357 | "issues": "https://github.com/dragonmantank/cron-expression/issues",
358 | "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2"
359 | },
360 | "funding": [
361 | {
362 | "url": "https://github.com/dragonmantank",
363 | "type": "github"
364 | }
365 | ],
366 | "time": "2022-09-10T18:51:20+00:00"
367 | },
368 | {
369 | "name": "egulias/email-validator",
370 | "version": "4.0.1",
371 | "source": {
372 | "type": "git",
373 | "url": "https://github.com/egulias/EmailValidator.git",
374 | "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff"
375 | },
376 | "dist": {
377 | "type": "zip",
378 | "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff",
379 | "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff",
380 | "shasum": ""
381 | },
382 | "require": {
383 | "doctrine/lexer": "^2.0 || ^3.0",
384 | "php": ">=8.1",
385 | "symfony/polyfill-intl-idn": "^1.26"
386 | },
387 | "require-dev": {
388 | "phpunit/phpunit": "^9.5.27",
389 | "vimeo/psalm": "^4.30"
390 | },
391 | "suggest": {
392 | "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
393 | },
394 | "type": "library",
395 | "extra": {
396 | "branch-alias": {
397 | "dev-master": "4.0.x-dev"
398 | }
399 | },
400 | "autoload": {
401 | "psr-4": {
402 | "Egulias\\EmailValidator\\": "src"
403 | }
404 | },
405 | "notification-url": "https://packagist.org/downloads/",
406 | "license": [
407 | "MIT"
408 | ],
409 | "authors": [
410 | {
411 | "name": "Eduardo Gulias Davis"
412 | }
413 | ],
414 | "description": "A library for validating emails against several RFCs",
415 | "homepage": "https://github.com/egulias/EmailValidator",
416 | "keywords": [
417 | "email",
418 | "emailvalidation",
419 | "emailvalidator",
420 | "validation",
421 | "validator"
422 | ],
423 | "support": {
424 | "issues": "https://github.com/egulias/EmailValidator/issues",
425 | "source": "https://github.com/egulias/EmailValidator/tree/4.0.1"
426 | },
427 | "funding": [
428 | {
429 | "url": "https://github.com/egulias",
430 | "type": "github"
431 | }
432 | ],
433 | "time": "2023-01-14T14:17:03+00:00"
434 | },
435 | {
436 | "name": "fruitcake/php-cors",
437 | "version": "v1.2.0",
438 | "source": {
439 | "type": "git",
440 | "url": "https://github.com/fruitcake/php-cors.git",
441 | "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e"
442 | },
443 | "dist": {
444 | "type": "zip",
445 | "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e",
446 | "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e",
447 | "shasum": ""
448 | },
449 | "require": {
450 | "php": "^7.4|^8.0",
451 | "symfony/http-foundation": "^4.4|^5.4|^6"
452 | },
453 | "require-dev": {
454 | "phpstan/phpstan": "^1.4",
455 | "phpunit/phpunit": "^9",
456 | "squizlabs/php_codesniffer": "^3.5"
457 | },
458 | "type": "library",
459 | "extra": {
460 | "branch-alias": {
461 | "dev-main": "1.1-dev"
462 | }
463 | },
464 | "autoload": {
465 | "psr-4": {
466 | "Fruitcake\\Cors\\": "src/"
467 | }
468 | },
469 | "notification-url": "https://packagist.org/downloads/",
470 | "license": [
471 | "MIT"
472 | ],
473 | "authors": [
474 | {
475 | "name": "Fruitcake",
476 | "homepage": "https://fruitcake.nl"
477 | },
478 | {
479 | "name": "Barryvdh",
480 | "email": "barryvdh@gmail.com"
481 | }
482 | ],
483 | "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
484 | "homepage": "https://github.com/fruitcake/php-cors",
485 | "keywords": [
486 | "cors",
487 | "laravel",
488 | "symfony"
489 | ],
490 | "support": {
491 | "issues": "https://github.com/fruitcake/php-cors/issues",
492 | "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0"
493 | },
494 | "funding": [
495 | {
496 | "url": "https://fruitcake.nl",
497 | "type": "custom"
498 | },
499 | {
500 | "url": "https://github.com/barryvdh",
501 | "type": "github"
502 | }
503 | ],
504 | "time": "2022-02-20T15:07:15+00:00"
505 | },
506 | {
507 | "name": "graham-campbell/result-type",
508 | "version": "v1.1.1",
509 | "source": {
510 | "type": "git",
511 | "url": "https://github.com/GrahamCampbell/Result-Type.git",
512 | "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
513 | },
514 | "dist": {
515 | "type": "zip",
516 | "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
517 | "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
518 | "shasum": ""
519 | },
520 | "require": {
521 | "php": "^7.2.5 || ^8.0",
522 | "phpoption/phpoption": "^1.9.1"
523 | },
524 | "require-dev": {
525 | "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
526 | },
527 | "type": "library",
528 | "autoload": {
529 | "psr-4": {
530 | "GrahamCampbell\\ResultType\\": "src/"
531 | }
532 | },
533 | "notification-url": "https://packagist.org/downloads/",
534 | "license": [
535 | "MIT"
536 | ],
537 | "authors": [
538 | {
539 | "name": "Graham Campbell",
540 | "email": "hello@gjcampbell.co.uk",
541 | "homepage": "https://github.com/GrahamCampbell"
542 | }
543 | ],
544 | "description": "An Implementation Of The Result Type",
545 | "keywords": [
546 | "Graham Campbell",
547 | "GrahamCampbell",
548 | "Result Type",
549 | "Result-Type",
550 | "result"
551 | ],
552 | "support": {
553 | "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
554 | "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
555 | },
556 | "funding": [
557 | {
558 | "url": "https://github.com/GrahamCampbell",
559 | "type": "github"
560 | },
561 | {
562 | "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
563 | "type": "tidelift"
564 | }
565 | ],
566 | "time": "2023-02-25T20:23:15+00:00"
567 | },
568 | {
569 | "name": "guzzlehttp/uri-template",
570 | "version": "v1.0.1",
571 | "source": {
572 | "type": "git",
573 | "url": "https://github.com/guzzle/uri-template.git",
574 | "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2"
575 | },
576 | "dist": {
577 | "type": "zip",
578 | "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2",
579 | "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2",
580 | "shasum": ""
581 | },
582 | "require": {
583 | "php": "^7.2.5 || ^8.0",
584 | "symfony/polyfill-php80": "^1.17"
585 | },
586 | "require-dev": {
587 | "phpunit/phpunit": "^8.5.19 || ^9.5.8",
588 | "uri-template/tests": "1.0.0"
589 | },
590 | "type": "library",
591 | "extra": {
592 | "branch-alias": {
593 | "dev-master": "1.0-dev"
594 | }
595 | },
596 | "autoload": {
597 | "psr-4": {
598 | "GuzzleHttp\\UriTemplate\\": "src"
599 | }
600 | },
601 | "notification-url": "https://packagist.org/downloads/",
602 | "license": [
603 | "MIT"
604 | ],
605 | "authors": [
606 | {
607 | "name": "Graham Campbell",
608 | "email": "hello@gjcampbell.co.uk",
609 | "homepage": "https://github.com/GrahamCampbell"
610 | },
611 | {
612 | "name": "Michael Dowling",
613 | "email": "mtdowling@gmail.com",
614 | "homepage": "https://github.com/mtdowling"
615 | },
616 | {
617 | "name": "George Mponos",
618 | "email": "gmponos@gmail.com",
619 | "homepage": "https://github.com/gmponos"
620 | },
621 | {
622 | "name": "Tobias Nyholm",
623 | "email": "tobias.nyholm@gmail.com",
624 | "homepage": "https://github.com/Nyholm"
625 | }
626 | ],
627 | "description": "A polyfill class for uri_template of PHP",
628 | "keywords": [
629 | "guzzlehttp",
630 | "uri-template"
631 | ],
632 | "support": {
633 | "issues": "https://github.com/guzzle/uri-template/issues",
634 | "source": "https://github.com/guzzle/uri-template/tree/v1.0.1"
635 | },
636 | "funding": [
637 | {
638 | "url": "https://github.com/GrahamCampbell",
639 | "type": "github"
640 | },
641 | {
642 | "url": "https://github.com/Nyholm",
643 | "type": "github"
644 | },
645 | {
646 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
647 | "type": "tidelift"
648 | }
649 | ],
650 | "time": "2021-10-07T12:57:01+00:00"
651 | },
652 | {
653 | "name": "laravel/framework",
654 | "version": "v9.52.4",
655 | "source": {
656 | "type": "git",
657 | "url": "https://github.com/laravel/framework.git",
658 | "reference": "9239128cfb4d22afefb64060dfecf53e82987267"
659 | },
660 | "dist": {
661 | "type": "zip",
662 | "url": "https://api.github.com/repos/laravel/framework/zipball/9239128cfb4d22afefb64060dfecf53e82987267",
663 | "reference": "9239128cfb4d22afefb64060dfecf53e82987267",
664 | "shasum": ""
665 | },
666 | "require": {
667 | "brick/math": "^0.9.3|^0.10.2|^0.11",
668 | "doctrine/inflector": "^2.0.5",
669 | "dragonmantank/cron-expression": "^3.3.2",
670 | "egulias/email-validator": "^3.2.1|^4.0",
671 | "ext-ctype": "*",
672 | "ext-filter": "*",
673 | "ext-hash": "*",
674 | "ext-mbstring": "*",
675 | "ext-openssl": "*",
676 | "ext-session": "*",
677 | "ext-tokenizer": "*",
678 | "fruitcake/php-cors": "^1.2",
679 | "guzzlehttp/uri-template": "^1.0",
680 | "laravel/serializable-closure": "^1.2.2",
681 | "league/commonmark": "^2.2.1",
682 | "league/flysystem": "^3.8.0",
683 | "monolog/monolog": "^2.0",
684 | "nesbot/carbon": "^2.62.1",
685 | "nunomaduro/termwind": "^1.13",
686 | "php": "^8.0.2",
687 | "psr/container": "^1.1.1|^2.0.1",
688 | "psr/log": "^1.0|^2.0|^3.0",
689 | "psr/simple-cache": "^1.0|^2.0|^3.0",
690 | "ramsey/uuid": "^4.7",
691 | "symfony/console": "^6.0.9",
692 | "symfony/error-handler": "^6.0",
693 | "symfony/finder": "^6.0",
694 | "symfony/http-foundation": "^6.0",
695 | "symfony/http-kernel": "^6.0",
696 | "symfony/mailer": "^6.0",
697 | "symfony/mime": "^6.0",
698 | "symfony/process": "^6.0",
699 | "symfony/routing": "^6.0",
700 | "symfony/uid": "^6.0",
701 | "symfony/var-dumper": "^6.0",
702 | "tijsverkoyen/css-to-inline-styles": "^2.2.5",
703 | "vlucas/phpdotenv": "^5.4.1",
704 | "voku/portable-ascii": "^2.0"
705 | },
706 | "conflict": {
707 | "tightenco/collect": "<5.5.33"
708 | },
709 | "provide": {
710 | "psr/container-implementation": "1.1|2.0",
711 | "psr/simple-cache-implementation": "1.0|2.0|3.0"
712 | },
713 | "replace": {
714 | "illuminate/auth": "self.version",
715 | "illuminate/broadcasting": "self.version",
716 | "illuminate/bus": "self.version",
717 | "illuminate/cache": "self.version",
718 | "illuminate/collections": "self.version",
719 | "illuminate/conditionable": "self.version",
720 | "illuminate/config": "self.version",
721 | "illuminate/console": "self.version",
722 | "illuminate/container": "self.version",
723 | "illuminate/contracts": "self.version",
724 | "illuminate/cookie": "self.version",
725 | "illuminate/database": "self.version",
726 | "illuminate/encryption": "self.version",
727 | "illuminate/events": "self.version",
728 | "illuminate/filesystem": "self.version",
729 | "illuminate/hashing": "self.version",
730 | "illuminate/http": "self.version",
731 | "illuminate/log": "self.version",
732 | "illuminate/macroable": "self.version",
733 | "illuminate/mail": "self.version",
734 | "illuminate/notifications": "self.version",
735 | "illuminate/pagination": "self.version",
736 | "illuminate/pipeline": "self.version",
737 | "illuminate/queue": "self.version",
738 | "illuminate/redis": "self.version",
739 | "illuminate/routing": "self.version",
740 | "illuminate/session": "self.version",
741 | "illuminate/support": "self.version",
742 | "illuminate/testing": "self.version",
743 | "illuminate/translation": "self.version",
744 | "illuminate/validation": "self.version",
745 | "illuminate/view": "self.version"
746 | },
747 | "require-dev": {
748 | "ably/ably-php": "^1.0",
749 | "aws/aws-sdk-php": "^3.235.5",
750 | "doctrine/dbal": "^2.13.3|^3.1.4",
751 | "ext-gmp": "*",
752 | "fakerphp/faker": "^1.21",
753 | "guzzlehttp/guzzle": "^7.5",
754 | "league/flysystem-aws-s3-v3": "^3.0",
755 | "league/flysystem-ftp": "^3.0",
756 | "league/flysystem-path-prefixing": "^3.3",
757 | "league/flysystem-read-only": "^3.3",
758 | "league/flysystem-sftp-v3": "^3.0",
759 | "mockery/mockery": "^1.5.1",
760 | "orchestra/testbench-core": "^7.16",
761 | "pda/pheanstalk": "^4.0",
762 | "phpstan/phpdoc-parser": "^1.15",
763 | "phpstan/phpstan": "^1.4.7",
764 | "phpunit/phpunit": "^9.5.8",
765 | "predis/predis": "^1.1.9|^2.0.2",
766 | "symfony/cache": "^6.0",
767 | "symfony/http-client": "^6.0"
768 | },
769 | "suggest": {
770 | "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
771 | "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
772 | "brianium/paratest": "Required to run tests in parallel (^6.0).",
773 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
774 | "ext-apcu": "Required to use the APC cache driver.",
775 | "ext-fileinfo": "Required to use the Filesystem class.",
776 | "ext-ftp": "Required to use the Flysystem FTP driver.",
777 | "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
778 | "ext-memcached": "Required to use the memcache cache driver.",
779 | "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
780 | "ext-pdo": "Required to use all database features.",
781 | "ext-posix": "Required to use all features of the queue worker.",
782 | "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
783 | "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
784 | "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
785 | "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
786 | "laravel/tinker": "Required to use the tinker console command (^2.0).",
787 | "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
788 | "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
789 | "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
790 | "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
791 | "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
792 | "mockery/mockery": "Required to use mocking (^1.5.1).",
793 | "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
794 | "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
795 | "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).",
796 | "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).",
797 | "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
798 | "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
799 | "symfony/cache": "Required to PSR-6 cache bridge (^6.0).",
800 | "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
801 | "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
802 | "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
803 | "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
804 | "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
805 | },
806 | "type": "library",
807 | "extra": {
808 | "branch-alias": {
809 | "dev-master": "9.x-dev"
810 | }
811 | },
812 | "autoload": {
813 | "files": [
814 | "src/Illuminate/Collections/helpers.php",
815 | "src/Illuminate/Events/functions.php",
816 | "src/Illuminate/Foundation/helpers.php",
817 | "src/Illuminate/Support/helpers.php"
818 | ],
819 | "psr-4": {
820 | "Illuminate\\": "src/Illuminate/",
821 | "Illuminate\\Support\\": [
822 | "src/Illuminate/Macroable/",
823 | "src/Illuminate/Collections/",
824 | "src/Illuminate/Conditionable/"
825 | ]
826 | }
827 | },
828 | "notification-url": "https://packagist.org/downloads/",
829 | "license": [
830 | "MIT"
831 | ],
832 | "authors": [
833 | {
834 | "name": "Taylor Otwell",
835 | "email": "taylor@laravel.com"
836 | }
837 | ],
838 | "description": "The Laravel Framework.",
839 | "homepage": "https://laravel.com",
840 | "keywords": [
841 | "framework",
842 | "laravel"
843 | ],
844 | "support": {
845 | "issues": "https://github.com/laravel/framework/issues",
846 | "source": "https://github.com/laravel/framework"
847 | },
848 | "time": "2023-02-22T14:38:06+00:00"
849 | },
850 | {
851 | "name": "laravel/serializable-closure",
852 | "version": "v1.3.0",
853 | "source": {
854 | "type": "git",
855 | "url": "https://github.com/laravel/serializable-closure.git",
856 | "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37"
857 | },
858 | "dist": {
859 | "type": "zip",
860 | "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
861 | "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
862 | "shasum": ""
863 | },
864 | "require": {
865 | "php": "^7.3|^8.0"
866 | },
867 | "require-dev": {
868 | "nesbot/carbon": "^2.61",
869 | "pestphp/pest": "^1.21.3",
870 | "phpstan/phpstan": "^1.8.2",
871 | "symfony/var-dumper": "^5.4.11"
872 | },
873 | "type": "library",
874 | "extra": {
875 | "branch-alias": {
876 | "dev-master": "1.x-dev"
877 | }
878 | },
879 | "autoload": {
880 | "psr-4": {
881 | "Laravel\\SerializableClosure\\": "src/"
882 | }
883 | },
884 | "notification-url": "https://packagist.org/downloads/",
885 | "license": [
886 | "MIT"
887 | ],
888 | "authors": [
889 | {
890 | "name": "Taylor Otwell",
891 | "email": "taylor@laravel.com"
892 | },
893 | {
894 | "name": "Nuno Maduro",
895 | "email": "nuno@laravel.com"
896 | }
897 | ],
898 | "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
899 | "keywords": [
900 | "closure",
901 | "laravel",
902 | "serializable"
903 | ],
904 | "support": {
905 | "issues": "https://github.com/laravel/serializable-closure/issues",
906 | "source": "https://github.com/laravel/serializable-closure"
907 | },
908 | "time": "2023-01-30T18:31:20+00:00"
909 | },
910 | {
911 | "name": "league/commonmark",
912 | "version": "2.3.9",
913 | "source": {
914 | "type": "git",
915 | "url": "https://github.com/thephpleague/commonmark.git",
916 | "reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5"
917 | },
918 | "dist": {
919 | "type": "zip",
920 | "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c1e114f74e518daca2729ea8c4bf1167038fa4b5",
921 | "reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5",
922 | "shasum": ""
923 | },
924 | "require": {
925 | "ext-mbstring": "*",
926 | "league/config": "^1.1.1",
927 | "php": "^7.4 || ^8.0",
928 | "psr/event-dispatcher": "^1.0",
929 | "symfony/deprecation-contracts": "^2.1 || ^3.0",
930 | "symfony/polyfill-php80": "^1.16"
931 | },
932 | "require-dev": {
933 | "cebe/markdown": "^1.0",
934 | "commonmark/cmark": "0.30.0",
935 | "commonmark/commonmark.js": "0.30.0",
936 | "composer/package-versions-deprecated": "^1.8",
937 | "embed/embed": "^4.4",
938 | "erusev/parsedown": "^1.0",
939 | "ext-json": "*",
940 | "github/gfm": "0.29.0",
941 | "michelf/php-markdown": "^1.4 || ^2.0",
942 | "nyholm/psr7": "^1.5",
943 | "phpstan/phpstan": "^1.8.2",
944 | "phpunit/phpunit": "^9.5.21",
945 | "scrutinizer/ocular": "^1.8.1",
946 | "symfony/finder": "^5.3 | ^6.0",
947 | "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
948 | "unleashedtech/php-coding-standard": "^3.1.1",
949 | "vimeo/psalm": "^4.24.0 || ^5.0.0"
950 | },
951 | "suggest": {
952 | "symfony/yaml": "v2.3+ required if using the Front Matter extension"
953 | },
954 | "type": "library",
955 | "extra": {
956 | "branch-alias": {
957 | "dev-main": "2.4-dev"
958 | }
959 | },
960 | "autoload": {
961 | "psr-4": {
962 | "League\\CommonMark\\": "src"
963 | }
964 | },
965 | "notification-url": "https://packagist.org/downloads/",
966 | "license": [
967 | "BSD-3-Clause"
968 | ],
969 | "authors": [
970 | {
971 | "name": "Colin O'Dell",
972 | "email": "colinodell@gmail.com",
973 | "homepage": "https://www.colinodell.com",
974 | "role": "Lead Developer"
975 | }
976 | ],
977 | "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
978 | "homepage": "https://commonmark.thephpleague.com",
979 | "keywords": [
980 | "commonmark",
981 | "flavored",
982 | "gfm",
983 | "github",
984 | "github-flavored",
985 | "markdown",
986 | "md",
987 | "parser"
988 | ],
989 | "support": {
990 | "docs": "https://commonmark.thephpleague.com/",
991 | "forum": "https://github.com/thephpleague/commonmark/discussions",
992 | "issues": "https://github.com/thephpleague/commonmark/issues",
993 | "rss": "https://github.com/thephpleague/commonmark/releases.atom",
994 | "source": "https://github.com/thephpleague/commonmark"
995 | },
996 | "funding": [
997 | {
998 | "url": "https://www.colinodell.com/sponsor",
999 | "type": "custom"
1000 | },
1001 | {
1002 | "url": "https://www.paypal.me/colinpodell/10.00",
1003 | "type": "custom"
1004 | },
1005 | {
1006 | "url": "https://github.com/colinodell",
1007 | "type": "github"
1008 | },
1009 | {
1010 | "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
1011 | "type": "tidelift"
1012 | }
1013 | ],
1014 | "time": "2023-02-15T14:07:24+00:00"
1015 | },
1016 | {
1017 | "name": "league/config",
1018 | "version": "v1.2.0",
1019 | "source": {
1020 | "type": "git",
1021 | "url": "https://github.com/thephpleague/config.git",
1022 | "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
1023 | },
1024 | "dist": {
1025 | "type": "zip",
1026 | "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
1027 | "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
1028 | "shasum": ""
1029 | },
1030 | "require": {
1031 | "dflydev/dot-access-data": "^3.0.1",
1032 | "nette/schema": "^1.2",
1033 | "php": "^7.4 || ^8.0"
1034 | },
1035 | "require-dev": {
1036 | "phpstan/phpstan": "^1.8.2",
1037 | "phpunit/phpunit": "^9.5.5",
1038 | "scrutinizer/ocular": "^1.8.1",
1039 | "unleashedtech/php-coding-standard": "^3.1",
1040 | "vimeo/psalm": "^4.7.3"
1041 | },
1042 | "type": "library",
1043 | "extra": {
1044 | "branch-alias": {
1045 | "dev-main": "1.2-dev"
1046 | }
1047 | },
1048 | "autoload": {
1049 | "psr-4": {
1050 | "League\\Config\\": "src"
1051 | }
1052 | },
1053 | "notification-url": "https://packagist.org/downloads/",
1054 | "license": [
1055 | "BSD-3-Clause"
1056 | ],
1057 | "authors": [
1058 | {
1059 | "name": "Colin O'Dell",
1060 | "email": "colinodell@gmail.com",
1061 | "homepage": "https://www.colinodell.com",
1062 | "role": "Lead Developer"
1063 | }
1064 | ],
1065 | "description": "Define configuration arrays with strict schemas and access values with dot notation",
1066 | "homepage": "https://config.thephpleague.com",
1067 | "keywords": [
1068 | "array",
1069 | "config",
1070 | "configuration",
1071 | "dot",
1072 | "dot-access",
1073 | "nested",
1074 | "schema"
1075 | ],
1076 | "support": {
1077 | "docs": "https://config.thephpleague.com/",
1078 | "issues": "https://github.com/thephpleague/config/issues",
1079 | "rss": "https://github.com/thephpleague/config/releases.atom",
1080 | "source": "https://github.com/thephpleague/config"
1081 | },
1082 | "funding": [
1083 | {
1084 | "url": "https://www.colinodell.com/sponsor",
1085 | "type": "custom"
1086 | },
1087 | {
1088 | "url": "https://www.paypal.me/colinpodell/10.00",
1089 | "type": "custom"
1090 | },
1091 | {
1092 | "url": "https://github.com/colinodell",
1093 | "type": "github"
1094 | }
1095 | ],
1096 | "time": "2022-12-11T20:36:23+00:00"
1097 | },
1098 | {
1099 | "name": "league/flysystem",
1100 | "version": "3.12.3",
1101 | "source": {
1102 | "type": "git",
1103 | "url": "https://github.com/thephpleague/flysystem.git",
1104 | "reference": "81e87e74dd5213795c7846d65089712d2dda90ce"
1105 | },
1106 | "dist": {
1107 | "type": "zip",
1108 | "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/81e87e74dd5213795c7846d65089712d2dda90ce",
1109 | "reference": "81e87e74dd5213795c7846d65089712d2dda90ce",
1110 | "shasum": ""
1111 | },
1112 | "require": {
1113 | "league/mime-type-detection": "^1.0.0",
1114 | "php": "^8.0.2"
1115 | },
1116 | "conflict": {
1117 | "aws/aws-sdk-php": "3.209.31 || 3.210.0",
1118 | "guzzlehttp/guzzle": "<7.0",
1119 | "guzzlehttp/ringphp": "<1.1.1",
1120 | "phpseclib/phpseclib": "3.0.15",
1121 | "symfony/http-client": "<5.2"
1122 | },
1123 | "require-dev": {
1124 | "async-aws/s3": "^1.5",
1125 | "async-aws/simple-s3": "^1.1",
1126 | "aws/aws-sdk-php": "^3.220.0",
1127 | "composer/semver": "^3.0",
1128 | "ext-fileinfo": "*",
1129 | "ext-ftp": "*",
1130 | "ext-zip": "*",
1131 | "friendsofphp/php-cs-fixer": "^3.5",
1132 | "google/cloud-storage": "^1.23",
1133 | "microsoft/azure-storage-blob": "^1.1",
1134 | "phpseclib/phpseclib": "^3.0.14",
1135 | "phpstan/phpstan": "^0.12.26",
1136 | "phpunit/phpunit": "^9.5.11",
1137 | "sabre/dav": "^4.3.1"
1138 | },
1139 | "type": "library",
1140 | "autoload": {
1141 | "psr-4": {
1142 | "League\\Flysystem\\": "src"
1143 | }
1144 | },
1145 | "notification-url": "https://packagist.org/downloads/",
1146 | "license": [
1147 | "MIT"
1148 | ],
1149 | "authors": [
1150 | {
1151 | "name": "Frank de Jonge",
1152 | "email": "info@frankdejonge.nl"
1153 | }
1154 | ],
1155 | "description": "File storage abstraction for PHP",
1156 | "keywords": [
1157 | "WebDAV",
1158 | "aws",
1159 | "cloud",
1160 | "file",
1161 | "files",
1162 | "filesystem",
1163 | "filesystems",
1164 | "ftp",
1165 | "s3",
1166 | "sftp",
1167 | "storage"
1168 | ],
1169 | "support": {
1170 | "issues": "https://github.com/thephpleague/flysystem/issues",
1171 | "source": "https://github.com/thephpleague/flysystem/tree/3.12.3"
1172 | },
1173 | "funding": [
1174 | {
1175 | "url": "https://ecologi.com/frankdejonge",
1176 | "type": "custom"
1177 | },
1178 | {
1179 | "url": "https://github.com/frankdejonge",
1180 | "type": "github"
1181 | },
1182 | {
1183 | "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
1184 | "type": "tidelift"
1185 | }
1186 | ],
1187 | "time": "2023-02-18T15:32:41+00:00"
1188 | },
1189 | {
1190 | "name": "league/mime-type-detection",
1191 | "version": "1.11.0",
1192 | "source": {
1193 | "type": "git",
1194 | "url": "https://github.com/thephpleague/mime-type-detection.git",
1195 | "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd"
1196 | },
1197 | "dist": {
1198 | "type": "zip",
1199 | "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
1200 | "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
1201 | "shasum": ""
1202 | },
1203 | "require": {
1204 | "ext-fileinfo": "*",
1205 | "php": "^7.2 || ^8.0"
1206 | },
1207 | "require-dev": {
1208 | "friendsofphp/php-cs-fixer": "^3.2",
1209 | "phpstan/phpstan": "^0.12.68",
1210 | "phpunit/phpunit": "^8.5.8 || ^9.3"
1211 | },
1212 | "type": "library",
1213 | "autoload": {
1214 | "psr-4": {
1215 | "League\\MimeTypeDetection\\": "src"
1216 | }
1217 | },
1218 | "notification-url": "https://packagist.org/downloads/",
1219 | "license": [
1220 | "MIT"
1221 | ],
1222 | "authors": [
1223 | {
1224 | "name": "Frank de Jonge",
1225 | "email": "info@frankdejonge.nl"
1226 | }
1227 | ],
1228 | "description": "Mime-type detection for Flysystem",
1229 | "support": {
1230 | "issues": "https://github.com/thephpleague/mime-type-detection/issues",
1231 | "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0"
1232 | },
1233 | "funding": [
1234 | {
1235 | "url": "https://github.com/frankdejonge",
1236 | "type": "github"
1237 | },
1238 | {
1239 | "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
1240 | "type": "tidelift"
1241 | }
1242 | ],
1243 | "time": "2022-04-17T13:12:02+00:00"
1244 | },
1245 | {
1246 | "name": "monolog/monolog",
1247 | "version": "2.9.1",
1248 | "source": {
1249 | "type": "git",
1250 | "url": "https://github.com/Seldaek/monolog.git",
1251 | "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
1252 | },
1253 | "dist": {
1254 | "type": "zip",
1255 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
1256 | "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
1257 | "shasum": ""
1258 | },
1259 | "require": {
1260 | "php": ">=7.2",
1261 | "psr/log": "^1.0.1 || ^2.0 || ^3.0"
1262 | },
1263 | "provide": {
1264 | "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
1265 | },
1266 | "require-dev": {
1267 | "aws/aws-sdk-php": "^2.4.9 || ^3.0",
1268 | "doctrine/couchdb": "~1.0@dev",
1269 | "elasticsearch/elasticsearch": "^7 || ^8",
1270 | "ext-json": "*",
1271 | "graylog2/gelf-php": "^1.4.2 || ^2@dev",
1272 | "guzzlehttp/guzzle": "^7.4",
1273 | "guzzlehttp/psr7": "^2.2",
1274 | "mongodb/mongodb": "^1.8",
1275 | "php-amqplib/php-amqplib": "~2.4 || ^3",
1276 | "phpspec/prophecy": "^1.15",
1277 | "phpstan/phpstan": "^0.12.91",
1278 | "phpunit/phpunit": "^8.5.14",
1279 | "predis/predis": "^1.1 || ^2.0",
1280 | "rollbar/rollbar": "^1.3 || ^2 || ^3",
1281 | "ruflin/elastica": "^7",
1282 | "swiftmailer/swiftmailer": "^5.3|^6.0",
1283 | "symfony/mailer": "^5.4 || ^6",
1284 | "symfony/mime": "^5.4 || ^6"
1285 | },
1286 | "suggest": {
1287 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
1288 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
1289 | "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
1290 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
1291 | "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
1292 | "ext-mbstring": "Allow to work properly with unicode symbols",
1293 | "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
1294 | "ext-openssl": "Required to send log messages using SSL",
1295 | "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
1296 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
1297 | "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
1298 | "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
1299 | "rollbar/rollbar": "Allow sending log messages to Rollbar",
1300 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
1301 | },
1302 | "type": "library",
1303 | "extra": {
1304 | "branch-alias": {
1305 | "dev-main": "2.x-dev"
1306 | }
1307 | },
1308 | "autoload": {
1309 | "psr-4": {
1310 | "Monolog\\": "src/Monolog"
1311 | }
1312 | },
1313 | "notification-url": "https://packagist.org/downloads/",
1314 | "license": [
1315 | "MIT"
1316 | ],
1317 | "authors": [
1318 | {
1319 | "name": "Jordi Boggiano",
1320 | "email": "j.boggiano@seld.be",
1321 | "homepage": "https://seld.be"
1322 | }
1323 | ],
1324 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
1325 | "homepage": "https://github.com/Seldaek/monolog",
1326 | "keywords": [
1327 | "log",
1328 | "logging",
1329 | "psr-3"
1330 | ],
1331 | "support": {
1332 | "issues": "https://github.com/Seldaek/monolog/issues",
1333 | "source": "https://github.com/Seldaek/monolog/tree/2.9.1"
1334 | },
1335 | "funding": [
1336 | {
1337 | "url": "https://github.com/Seldaek",
1338 | "type": "github"
1339 | },
1340 | {
1341 | "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
1342 | "type": "tidelift"
1343 | }
1344 | ],
1345 | "time": "2023-02-06T13:44:46+00:00"
1346 | },
1347 | {
1348 | "name": "nesbot/carbon",
1349 | "version": "2.66.0",
1350 | "source": {
1351 | "type": "git",
1352 | "url": "https://github.com/briannesbitt/Carbon.git",
1353 | "reference": "496712849902241f04902033b0441b269effe001"
1354 | },
1355 | "dist": {
1356 | "type": "zip",
1357 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001",
1358 | "reference": "496712849902241f04902033b0441b269effe001",
1359 | "shasum": ""
1360 | },
1361 | "require": {
1362 | "ext-json": "*",
1363 | "php": "^7.1.8 || ^8.0",
1364 | "symfony/polyfill-mbstring": "^1.0",
1365 | "symfony/polyfill-php80": "^1.16",
1366 | "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
1367 | },
1368 | "require-dev": {
1369 | "doctrine/dbal": "^2.0 || ^3.1.4",
1370 | "doctrine/orm": "^2.7",
1371 | "friendsofphp/php-cs-fixer": "^3.0",
1372 | "kylekatarnls/multi-tester": "^2.0",
1373 | "ondrejmirtes/better-reflection": "*",
1374 | "phpmd/phpmd": "^2.9",
1375 | "phpstan/extension-installer": "^1.0",
1376 | "phpstan/phpstan": "^0.12.99 || ^1.7.14",
1377 | "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
1378 | "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
1379 | "squizlabs/php_codesniffer": "^3.4"
1380 | },
1381 | "bin": [
1382 | "bin/carbon"
1383 | ],
1384 | "type": "library",
1385 | "extra": {
1386 | "branch-alias": {
1387 | "dev-3.x": "3.x-dev",
1388 | "dev-master": "2.x-dev"
1389 | },
1390 | "laravel": {
1391 | "providers": [
1392 | "Carbon\\Laravel\\ServiceProvider"
1393 | ]
1394 | },
1395 | "phpstan": {
1396 | "includes": [
1397 | "extension.neon"
1398 | ]
1399 | }
1400 | },
1401 | "autoload": {
1402 | "psr-4": {
1403 | "Carbon\\": "src/Carbon/"
1404 | }
1405 | },
1406 | "notification-url": "https://packagist.org/downloads/",
1407 | "license": [
1408 | "MIT"
1409 | ],
1410 | "authors": [
1411 | {
1412 | "name": "Brian Nesbitt",
1413 | "email": "brian@nesbot.com",
1414 | "homepage": "https://markido.com"
1415 | },
1416 | {
1417 | "name": "kylekatarnls",
1418 | "homepage": "https://github.com/kylekatarnls"
1419 | }
1420 | ],
1421 | "description": "An API extension for DateTime that supports 281 different languages.",
1422 | "homepage": "https://carbon.nesbot.com",
1423 | "keywords": [
1424 | "date",
1425 | "datetime",
1426 | "time"
1427 | ],
1428 | "support": {
1429 | "docs": "https://carbon.nesbot.com/docs",
1430 | "issues": "https://github.com/briannesbitt/Carbon/issues",
1431 | "source": "https://github.com/briannesbitt/Carbon"
1432 | },
1433 | "funding": [
1434 | {
1435 | "url": "https://github.com/sponsors/kylekatarnls",
1436 | "type": "github"
1437 | },
1438 | {
1439 | "url": "https://opencollective.com/Carbon#sponsor",
1440 | "type": "opencollective"
1441 | },
1442 | {
1443 | "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
1444 | "type": "tidelift"
1445 | }
1446 | ],
1447 | "time": "2023-01-29T18:53:47+00:00"
1448 | },
1449 | {
1450 | "name": "nette/schema",
1451 | "version": "v1.2.3",
1452 | "source": {
1453 | "type": "git",
1454 | "url": "https://github.com/nette/schema.git",
1455 | "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
1456 | },
1457 | "dist": {
1458 | "type": "zip",
1459 | "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
1460 | "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
1461 | "shasum": ""
1462 | },
1463 | "require": {
1464 | "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
1465 | "php": ">=7.1 <8.3"
1466 | },
1467 | "require-dev": {
1468 | "nette/tester": "^2.3 || ^2.4",
1469 | "phpstan/phpstan-nette": "^1.0",
1470 | "tracy/tracy": "^2.7"
1471 | },
1472 | "type": "library",
1473 | "extra": {
1474 | "branch-alias": {
1475 | "dev-master": "1.2-dev"
1476 | }
1477 | },
1478 | "autoload": {
1479 | "classmap": [
1480 | "src/"
1481 | ]
1482 | },
1483 | "notification-url": "https://packagist.org/downloads/",
1484 | "license": [
1485 | "BSD-3-Clause",
1486 | "GPL-2.0-only",
1487 | "GPL-3.0-only"
1488 | ],
1489 | "authors": [
1490 | {
1491 | "name": "David Grudl",
1492 | "homepage": "https://davidgrudl.com"
1493 | },
1494 | {
1495 | "name": "Nette Community",
1496 | "homepage": "https://nette.org/contributors"
1497 | }
1498 | ],
1499 | "description": "📐 Nette Schema: validating data structures against a given Schema.",
1500 | "homepage": "https://nette.org",
1501 | "keywords": [
1502 | "config",
1503 | "nette"
1504 | ],
1505 | "support": {
1506 | "issues": "https://github.com/nette/schema/issues",
1507 | "source": "https://github.com/nette/schema/tree/v1.2.3"
1508 | },
1509 | "time": "2022-10-13T01:24:26+00:00"
1510 | },
1511 | {
1512 | "name": "nette/utils",
1513 | "version": "v4.0.0",
1514 | "source": {
1515 | "type": "git",
1516 | "url": "https://github.com/nette/utils.git",
1517 | "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e"
1518 | },
1519 | "dist": {
1520 | "type": "zip",
1521 | "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e",
1522 | "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e",
1523 | "shasum": ""
1524 | },
1525 | "require": {
1526 | "php": ">=8.0 <8.3"
1527 | },
1528 | "conflict": {
1529 | "nette/finder": "<3",
1530 | "nette/schema": "<1.2.2"
1531 | },
1532 | "require-dev": {
1533 | "jetbrains/phpstorm-attributes": "dev-master",
1534 | "nette/tester": "^2.4",
1535 | "phpstan/phpstan": "^1.0",
1536 | "tracy/tracy": "^2.9"
1537 | },
1538 | "suggest": {
1539 | "ext-gd": "to use Image",
1540 | "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
1541 | "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
1542 | "ext-json": "to use Nette\\Utils\\Json",
1543 | "ext-mbstring": "to use Strings::lower() etc...",
1544 | "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
1545 | "ext-xml": "to use Strings::length() etc. when mbstring is not available"
1546 | },
1547 | "type": "library",
1548 | "extra": {
1549 | "branch-alias": {
1550 | "dev-master": "4.0-dev"
1551 | }
1552 | },
1553 | "autoload": {
1554 | "classmap": [
1555 | "src/"
1556 | ]
1557 | },
1558 | "notification-url": "https://packagist.org/downloads/",
1559 | "license": [
1560 | "BSD-3-Clause",
1561 | "GPL-2.0-only",
1562 | "GPL-3.0-only"
1563 | ],
1564 | "authors": [
1565 | {
1566 | "name": "David Grudl",
1567 | "homepage": "https://davidgrudl.com"
1568 | },
1569 | {
1570 | "name": "Nette Community",
1571 | "homepage": "https://nette.org/contributors"
1572 | }
1573 | ],
1574 | "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
1575 | "homepage": "https://nette.org",
1576 | "keywords": [
1577 | "array",
1578 | "core",
1579 | "datetime",
1580 | "images",
1581 | "json",
1582 | "nette",
1583 | "paginator",
1584 | "password",
1585 | "slugify",
1586 | "string",
1587 | "unicode",
1588 | "utf-8",
1589 | "utility",
1590 | "validation"
1591 | ],
1592 | "support": {
1593 | "issues": "https://github.com/nette/utils/issues",
1594 | "source": "https://github.com/nette/utils/tree/v4.0.0"
1595 | },
1596 | "time": "2023-02-02T10:41:53+00:00"
1597 | },
1598 | {
1599 | "name": "nunomaduro/termwind",
1600 | "version": "v1.15.1",
1601 | "source": {
1602 | "type": "git",
1603 | "url": "https://github.com/nunomaduro/termwind.git",
1604 | "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
1605 | },
1606 | "dist": {
1607 | "type": "zip",
1608 | "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
1609 | "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
1610 | "shasum": ""
1611 | },
1612 | "require": {
1613 | "ext-mbstring": "*",
1614 | "php": "^8.0",
1615 | "symfony/console": "^5.3.0|^6.0.0"
1616 | },
1617 | "require-dev": {
1618 | "ergebnis/phpstan-rules": "^1.0.",
1619 | "illuminate/console": "^8.0|^9.0",
1620 | "illuminate/support": "^8.0|^9.0",
1621 | "laravel/pint": "^1.0.0",
1622 | "pestphp/pest": "^1.21.0",
1623 | "pestphp/pest-plugin-mock": "^1.0",
1624 | "phpstan/phpstan": "^1.4.6",
1625 | "phpstan/phpstan-strict-rules": "^1.1.0",
1626 | "symfony/var-dumper": "^5.2.7|^6.0.0",
1627 | "thecodingmachine/phpstan-strict-rules": "^1.0.0"
1628 | },
1629 | "type": "library",
1630 | "extra": {
1631 | "laravel": {
1632 | "providers": [
1633 | "Termwind\\Laravel\\TermwindServiceProvider"
1634 | ]
1635 | }
1636 | },
1637 | "autoload": {
1638 | "files": [
1639 | "src/Functions.php"
1640 | ],
1641 | "psr-4": {
1642 | "Termwind\\": "src/"
1643 | }
1644 | },
1645 | "notification-url": "https://packagist.org/downloads/",
1646 | "license": [
1647 | "MIT"
1648 | ],
1649 | "authors": [
1650 | {
1651 | "name": "Nuno Maduro",
1652 | "email": "enunomaduro@gmail.com"
1653 | }
1654 | ],
1655 | "description": "Its like Tailwind CSS, but for the console.",
1656 | "keywords": [
1657 | "cli",
1658 | "console",
1659 | "css",
1660 | "package",
1661 | "php",
1662 | "style"
1663 | ],
1664 | "support": {
1665 | "issues": "https://github.com/nunomaduro/termwind/issues",
1666 | "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
1667 | },
1668 | "funding": [
1669 | {
1670 | "url": "https://www.paypal.com/paypalme/enunomaduro",
1671 | "type": "custom"
1672 | },
1673 | {
1674 | "url": "https://github.com/nunomaduro",
1675 | "type": "github"
1676 | },
1677 | {
1678 | "url": "https://github.com/xiCO2k",
1679 | "type": "github"
1680 | }
1681 | ],
1682 | "time": "2023-02-08T01:06:31+00:00"
1683 | },
1684 | {
1685 | "name": "phpoption/phpoption",
1686 | "version": "1.9.1",
1687 | "source": {
1688 | "type": "git",
1689 | "url": "https://github.com/schmittjoh/php-option.git",
1690 | "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
1691 | },
1692 | "dist": {
1693 | "type": "zip",
1694 | "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
1695 | "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
1696 | "shasum": ""
1697 | },
1698 | "require": {
1699 | "php": "^7.2.5 || ^8.0"
1700 | },
1701 | "require-dev": {
1702 | "bamarni/composer-bin-plugin": "^1.8.2",
1703 | "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
1704 | },
1705 | "type": "library",
1706 | "extra": {
1707 | "bamarni-bin": {
1708 | "bin-links": true,
1709 | "forward-command": true
1710 | },
1711 | "branch-alias": {
1712 | "dev-master": "1.9-dev"
1713 | }
1714 | },
1715 | "autoload": {
1716 | "psr-4": {
1717 | "PhpOption\\": "src/PhpOption/"
1718 | }
1719 | },
1720 | "notification-url": "https://packagist.org/downloads/",
1721 | "license": [
1722 | "Apache-2.0"
1723 | ],
1724 | "authors": [
1725 | {
1726 | "name": "Johannes M. Schmitt",
1727 | "email": "schmittjoh@gmail.com",
1728 | "homepage": "https://github.com/schmittjoh"
1729 | },
1730 | {
1731 | "name": "Graham Campbell",
1732 | "email": "hello@gjcampbell.co.uk",
1733 | "homepage": "https://github.com/GrahamCampbell"
1734 | }
1735 | ],
1736 | "description": "Option Type for PHP",
1737 | "keywords": [
1738 | "language",
1739 | "option",
1740 | "php",
1741 | "type"
1742 | ],
1743 | "support": {
1744 | "issues": "https://github.com/schmittjoh/php-option/issues",
1745 | "source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
1746 | },
1747 | "funding": [
1748 | {
1749 | "url": "https://github.com/GrahamCampbell",
1750 | "type": "github"
1751 | },
1752 | {
1753 | "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
1754 | "type": "tidelift"
1755 | }
1756 | ],
1757 | "time": "2023-02-25T19:38:58+00:00"
1758 | },
1759 | {
1760 | "name": "psr/container",
1761 | "version": "2.0.2",
1762 | "source": {
1763 | "type": "git",
1764 | "url": "https://github.com/php-fig/container.git",
1765 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
1766 | },
1767 | "dist": {
1768 | "type": "zip",
1769 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1770 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
1771 | "shasum": ""
1772 | },
1773 | "require": {
1774 | "php": ">=7.4.0"
1775 | },
1776 | "type": "library",
1777 | "extra": {
1778 | "branch-alias": {
1779 | "dev-master": "2.0.x-dev"
1780 | }
1781 | },
1782 | "autoload": {
1783 | "psr-4": {
1784 | "Psr\\Container\\": "src/"
1785 | }
1786 | },
1787 | "notification-url": "https://packagist.org/downloads/",
1788 | "license": [
1789 | "MIT"
1790 | ],
1791 | "authors": [
1792 | {
1793 | "name": "PHP-FIG",
1794 | "homepage": "https://www.php-fig.org/"
1795 | }
1796 | ],
1797 | "description": "Common Container Interface (PHP FIG PSR-11)",
1798 | "homepage": "https://github.com/php-fig/container",
1799 | "keywords": [
1800 | "PSR-11",
1801 | "container",
1802 | "container-interface",
1803 | "container-interop",
1804 | "psr"
1805 | ],
1806 | "support": {
1807 | "issues": "https://github.com/php-fig/container/issues",
1808 | "source": "https://github.com/php-fig/container/tree/2.0.2"
1809 | },
1810 | "time": "2021-11-05T16:47:00+00:00"
1811 | },
1812 | {
1813 | "name": "psr/event-dispatcher",
1814 | "version": "1.0.0",
1815 | "source": {
1816 | "type": "git",
1817 | "url": "https://github.com/php-fig/event-dispatcher.git",
1818 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
1819 | },
1820 | "dist": {
1821 | "type": "zip",
1822 | "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
1823 | "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
1824 | "shasum": ""
1825 | },
1826 | "require": {
1827 | "php": ">=7.2.0"
1828 | },
1829 | "type": "library",
1830 | "extra": {
1831 | "branch-alias": {
1832 | "dev-master": "1.0.x-dev"
1833 | }
1834 | },
1835 | "autoload": {
1836 | "psr-4": {
1837 | "Psr\\EventDispatcher\\": "src/"
1838 | }
1839 | },
1840 | "notification-url": "https://packagist.org/downloads/",
1841 | "license": [
1842 | "MIT"
1843 | ],
1844 | "authors": [
1845 | {
1846 | "name": "PHP-FIG",
1847 | "homepage": "http://www.php-fig.org/"
1848 | }
1849 | ],
1850 | "description": "Standard interfaces for event handling.",
1851 | "keywords": [
1852 | "events",
1853 | "psr",
1854 | "psr-14"
1855 | ],
1856 | "support": {
1857 | "issues": "https://github.com/php-fig/event-dispatcher/issues",
1858 | "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
1859 | },
1860 | "time": "2019-01-08T18:20:26+00:00"
1861 | },
1862 | {
1863 | "name": "psr/log",
1864 | "version": "3.0.0",
1865 | "source": {
1866 | "type": "git",
1867 | "url": "https://github.com/php-fig/log.git",
1868 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
1869 | },
1870 | "dist": {
1871 | "type": "zip",
1872 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
1873 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
1874 | "shasum": ""
1875 | },
1876 | "require": {
1877 | "php": ">=8.0.0"
1878 | },
1879 | "type": "library",
1880 | "extra": {
1881 | "branch-alias": {
1882 | "dev-master": "3.x-dev"
1883 | }
1884 | },
1885 | "autoload": {
1886 | "psr-4": {
1887 | "Psr\\Log\\": "src"
1888 | }
1889 | },
1890 | "notification-url": "https://packagist.org/downloads/",
1891 | "license": [
1892 | "MIT"
1893 | ],
1894 | "authors": [
1895 | {
1896 | "name": "PHP-FIG",
1897 | "homepage": "https://www.php-fig.org/"
1898 | }
1899 | ],
1900 | "description": "Common interface for logging libraries",
1901 | "homepage": "https://github.com/php-fig/log",
1902 | "keywords": [
1903 | "log",
1904 | "psr",
1905 | "psr-3"
1906 | ],
1907 | "support": {
1908 | "source": "https://github.com/php-fig/log/tree/3.0.0"
1909 | },
1910 | "time": "2021-07-14T16:46:02+00:00"
1911 | },
1912 | {
1913 | "name": "psr/simple-cache",
1914 | "version": "3.0.0",
1915 | "source": {
1916 | "type": "git",
1917 | "url": "https://github.com/php-fig/simple-cache.git",
1918 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
1919 | },
1920 | "dist": {
1921 | "type": "zip",
1922 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
1923 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
1924 | "shasum": ""
1925 | },
1926 | "require": {
1927 | "php": ">=8.0.0"
1928 | },
1929 | "type": "library",
1930 | "extra": {
1931 | "branch-alias": {
1932 | "dev-master": "3.0.x-dev"
1933 | }
1934 | },
1935 | "autoload": {
1936 | "psr-4": {
1937 | "Psr\\SimpleCache\\": "src/"
1938 | }
1939 | },
1940 | "notification-url": "https://packagist.org/downloads/",
1941 | "license": [
1942 | "MIT"
1943 | ],
1944 | "authors": [
1945 | {
1946 | "name": "PHP-FIG",
1947 | "homepage": "https://www.php-fig.org/"
1948 | }
1949 | ],
1950 | "description": "Common interfaces for simple caching",
1951 | "keywords": [
1952 | "cache",
1953 | "caching",
1954 | "psr",
1955 | "psr-16",
1956 | "simple-cache"
1957 | ],
1958 | "support": {
1959 | "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
1960 | },
1961 | "time": "2021-10-29T13:26:27+00:00"
1962 | },
1963 | {
1964 | "name": "ramsey/collection",
1965 | "version": "2.0.0",
1966 | "source": {
1967 | "type": "git",
1968 | "url": "https://github.com/ramsey/collection.git",
1969 | "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
1970 | },
1971 | "dist": {
1972 | "type": "zip",
1973 | "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
1974 | "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
1975 | "shasum": ""
1976 | },
1977 | "require": {
1978 | "php": "^8.1"
1979 | },
1980 | "require-dev": {
1981 | "captainhook/plugin-composer": "^5.3",
1982 | "ergebnis/composer-normalize": "^2.28.3",
1983 | "fakerphp/faker": "^1.21",
1984 | "hamcrest/hamcrest-php": "^2.0",
1985 | "jangregor/phpstan-prophecy": "^1.0",
1986 | "mockery/mockery": "^1.5",
1987 | "php-parallel-lint/php-console-highlighter": "^1.0",
1988 | "php-parallel-lint/php-parallel-lint": "^1.3",
1989 | "phpcsstandards/phpcsutils": "^1.0.0-rc1",
1990 | "phpspec/prophecy-phpunit": "^2.0",
1991 | "phpstan/extension-installer": "^1.2",
1992 | "phpstan/phpstan": "^1.9",
1993 | "phpstan/phpstan-mockery": "^1.1",
1994 | "phpstan/phpstan-phpunit": "^1.3",
1995 | "phpunit/phpunit": "^9.5",
1996 | "psalm/plugin-mockery": "^1.1",
1997 | "psalm/plugin-phpunit": "^0.18.4",
1998 | "ramsey/coding-standard": "^2.0.3",
1999 | "ramsey/conventional-commits": "^1.3",
2000 | "vimeo/psalm": "^5.4"
2001 | },
2002 | "type": "library",
2003 | "extra": {
2004 | "captainhook": {
2005 | "force-install": true
2006 | },
2007 | "ramsey/conventional-commits": {
2008 | "configFile": "conventional-commits.json"
2009 | }
2010 | },
2011 | "autoload": {
2012 | "psr-4": {
2013 | "Ramsey\\Collection\\": "src/"
2014 | }
2015 | },
2016 | "notification-url": "https://packagist.org/downloads/",
2017 | "license": [
2018 | "MIT"
2019 | ],
2020 | "authors": [
2021 | {
2022 | "name": "Ben Ramsey",
2023 | "email": "ben@benramsey.com",
2024 | "homepage": "https://benramsey.com"
2025 | }
2026 | ],
2027 | "description": "A PHP library for representing and manipulating collections.",
2028 | "keywords": [
2029 | "array",
2030 | "collection",
2031 | "hash",
2032 | "map",
2033 | "queue",
2034 | "set"
2035 | ],
2036 | "support": {
2037 | "issues": "https://github.com/ramsey/collection/issues",
2038 | "source": "https://github.com/ramsey/collection/tree/2.0.0"
2039 | },
2040 | "funding": [
2041 | {
2042 | "url": "https://github.com/ramsey",
2043 | "type": "github"
2044 | },
2045 | {
2046 | "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
2047 | "type": "tidelift"
2048 | }
2049 | ],
2050 | "time": "2022-12-31T21:50:55+00:00"
2051 | },
2052 | {
2053 | "name": "ramsey/uuid",
2054 | "version": "4.x-dev",
2055 | "source": {
2056 | "type": "git",
2057 | "url": "https://github.com/ramsey/uuid.git",
2058 | "reference": "bf2bee216a4379eaf62162307d62bb7850405fec"
2059 | },
2060 | "dist": {
2061 | "type": "zip",
2062 | "url": "https://api.github.com/repos/ramsey/uuid/zipball/bf2bee216a4379eaf62162307d62bb7850405fec",
2063 | "reference": "bf2bee216a4379eaf62162307d62bb7850405fec",
2064 | "shasum": ""
2065 | },
2066 | "require": {
2067 | "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
2068 | "ext-json": "*",
2069 | "php": "^8.0",
2070 | "ramsey/collection": "^1.2 || ^2.0"
2071 | },
2072 | "replace": {
2073 | "rhumsaa/uuid": "self.version"
2074 | },
2075 | "require-dev": {
2076 | "captainhook/captainhook": "^5.10",
2077 | "captainhook/plugin-composer": "^5.3",
2078 | "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
2079 | "doctrine/annotations": "^1.8",
2080 | "ergebnis/composer-normalize": "^2.15",
2081 | "mockery/mockery": "^1.3",
2082 | "paragonie/random-lib": "^2",
2083 | "php-mock/php-mock": "^2.2",
2084 | "php-mock/php-mock-mockery": "^1.3",
2085 | "php-parallel-lint/php-parallel-lint": "^1.1",
2086 | "phpbench/phpbench": "^1.0",
2087 | "phpstan/extension-installer": "^1.1",
2088 | "phpstan/phpstan": "^1.8",
2089 | "phpstan/phpstan-mockery": "^1.1",
2090 | "phpstan/phpstan-phpunit": "^1.1",
2091 | "phpunit/phpunit": "^8.5 || ^9",
2092 | "ramsey/composer-repl": "^1.4",
2093 | "slevomat/coding-standard": "^8.4",
2094 | "squizlabs/php_codesniffer": "^3.5",
2095 | "vimeo/psalm": "^4.9"
2096 | },
2097 | "suggest": {
2098 | "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
2099 | "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
2100 | "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
2101 | "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
2102 | "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
2103 | },
2104 | "default-branch": true,
2105 | "type": "library",
2106 | "extra": {
2107 | "captainhook": {
2108 | "force-install": true
2109 | }
2110 | },
2111 | "autoload": {
2112 | "files": [
2113 | "src/functions.php"
2114 | ],
2115 | "psr-4": {
2116 | "Ramsey\\Uuid\\": "src/"
2117 | }
2118 | },
2119 | "notification-url": "https://packagist.org/downloads/",
2120 | "license": [
2121 | "MIT"
2122 | ],
2123 | "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
2124 | "keywords": [
2125 | "guid",
2126 | "identifier",
2127 | "uuid"
2128 | ],
2129 | "support": {
2130 | "issues": "https://github.com/ramsey/uuid/issues",
2131 | "source": "https://github.com/ramsey/uuid/tree/4.x"
2132 | },
2133 | "funding": [
2134 | {
2135 | "url": "https://github.com/ramsey",
2136 | "type": "github"
2137 | },
2138 | {
2139 | "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
2140 | "type": "tidelift"
2141 | }
2142 | ],
2143 | "time": "2023-02-07T16:14:23+00:00"
2144 | },
2145 | {
2146 | "name": "symfony/console",
2147 | "version": "v6.2.7",
2148 | "source": {
2149 | "type": "git",
2150 | "url": "https://github.com/symfony/console.git",
2151 | "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45"
2152 | },
2153 | "dist": {
2154 | "type": "zip",
2155 | "url": "https://api.github.com/repos/symfony/console/zipball/cbad09eb8925b6ad4fb721c7a179344dc4a19d45",
2156 | "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45",
2157 | "shasum": ""
2158 | },
2159 | "require": {
2160 | "php": ">=8.1",
2161 | "symfony/deprecation-contracts": "^2.1|^3",
2162 | "symfony/polyfill-mbstring": "~1.0",
2163 | "symfony/service-contracts": "^1.1|^2|^3",
2164 | "symfony/string": "^5.4|^6.0"
2165 | },
2166 | "conflict": {
2167 | "symfony/dependency-injection": "<5.4",
2168 | "symfony/dotenv": "<5.4",
2169 | "symfony/event-dispatcher": "<5.4",
2170 | "symfony/lock": "<5.4",
2171 | "symfony/process": "<5.4"
2172 | },
2173 | "provide": {
2174 | "psr/log-implementation": "1.0|2.0|3.0"
2175 | },
2176 | "require-dev": {
2177 | "psr/log": "^1|^2|^3",
2178 | "symfony/config": "^5.4|^6.0",
2179 | "symfony/dependency-injection": "^5.4|^6.0",
2180 | "symfony/event-dispatcher": "^5.4|^6.0",
2181 | "symfony/lock": "^5.4|^6.0",
2182 | "symfony/process": "^5.4|^6.0",
2183 | "symfony/var-dumper": "^5.4|^6.0"
2184 | },
2185 | "suggest": {
2186 | "psr/log": "For using the console logger",
2187 | "symfony/event-dispatcher": "",
2188 | "symfony/lock": "",
2189 | "symfony/process": ""
2190 | },
2191 | "type": "library",
2192 | "autoload": {
2193 | "psr-4": {
2194 | "Symfony\\Component\\Console\\": ""
2195 | },
2196 | "exclude-from-classmap": [
2197 | "/Tests/"
2198 | ]
2199 | },
2200 | "notification-url": "https://packagist.org/downloads/",
2201 | "license": [
2202 | "MIT"
2203 | ],
2204 | "authors": [
2205 | {
2206 | "name": "Fabien Potencier",
2207 | "email": "fabien@symfony.com"
2208 | },
2209 | {
2210 | "name": "Symfony Community",
2211 | "homepage": "https://symfony.com/contributors"
2212 | }
2213 | ],
2214 | "description": "Eases the creation of beautiful and testable command line interfaces",
2215 | "homepage": "https://symfony.com",
2216 | "keywords": [
2217 | "cli",
2218 | "command line",
2219 | "console",
2220 | "terminal"
2221 | ],
2222 | "support": {
2223 | "source": "https://github.com/symfony/console/tree/v6.2.7"
2224 | },
2225 | "funding": [
2226 | {
2227 | "url": "https://symfony.com/sponsor",
2228 | "type": "custom"
2229 | },
2230 | {
2231 | "url": "https://github.com/fabpot",
2232 | "type": "github"
2233 | },
2234 | {
2235 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2236 | "type": "tidelift"
2237 | }
2238 | ],
2239 | "time": "2023-02-25T17:00:03+00:00"
2240 | },
2241 | {
2242 | "name": "symfony/css-selector",
2243 | "version": "v6.2.7",
2244 | "source": {
2245 | "type": "git",
2246 | "url": "https://github.com/symfony/css-selector.git",
2247 | "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0"
2248 | },
2249 | "dist": {
2250 | "type": "zip",
2251 | "url": "https://api.github.com/repos/symfony/css-selector/zipball/aedf3cb0f5b929ec255d96bbb4909e9932c769e0",
2252 | "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0",
2253 | "shasum": ""
2254 | },
2255 | "require": {
2256 | "php": ">=8.1"
2257 | },
2258 | "type": "library",
2259 | "autoload": {
2260 | "psr-4": {
2261 | "Symfony\\Component\\CssSelector\\": ""
2262 | },
2263 | "exclude-from-classmap": [
2264 | "/Tests/"
2265 | ]
2266 | },
2267 | "notification-url": "https://packagist.org/downloads/",
2268 | "license": [
2269 | "MIT"
2270 | ],
2271 | "authors": [
2272 | {
2273 | "name": "Fabien Potencier",
2274 | "email": "fabien@symfony.com"
2275 | },
2276 | {
2277 | "name": "Jean-François Simon",
2278 | "email": "jeanfrancois.simon@sensiolabs.com"
2279 | },
2280 | {
2281 | "name": "Symfony Community",
2282 | "homepage": "https://symfony.com/contributors"
2283 | }
2284 | ],
2285 | "description": "Converts CSS selectors to XPath expressions",
2286 | "homepage": "https://symfony.com",
2287 | "support": {
2288 | "source": "https://github.com/symfony/css-selector/tree/v6.2.7"
2289 | },
2290 | "funding": [
2291 | {
2292 | "url": "https://symfony.com/sponsor",
2293 | "type": "custom"
2294 | },
2295 | {
2296 | "url": "https://github.com/fabpot",
2297 | "type": "github"
2298 | },
2299 | {
2300 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2301 | "type": "tidelift"
2302 | }
2303 | ],
2304 | "time": "2023-02-14T08:44:56+00:00"
2305 | },
2306 | {
2307 | "name": "symfony/deprecation-contracts",
2308 | "version": "v3.2.1",
2309 | "source": {
2310 | "type": "git",
2311 | "url": "https://github.com/symfony/deprecation-contracts.git",
2312 | "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
2313 | },
2314 | "dist": {
2315 | "type": "zip",
2316 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
2317 | "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
2318 | "shasum": ""
2319 | },
2320 | "require": {
2321 | "php": ">=8.1"
2322 | },
2323 | "type": "library",
2324 | "extra": {
2325 | "branch-alias": {
2326 | "dev-main": "3.3-dev"
2327 | },
2328 | "thanks": {
2329 | "name": "symfony/contracts",
2330 | "url": "https://github.com/symfony/contracts"
2331 | }
2332 | },
2333 | "autoload": {
2334 | "files": [
2335 | "function.php"
2336 | ]
2337 | },
2338 | "notification-url": "https://packagist.org/downloads/",
2339 | "license": [
2340 | "MIT"
2341 | ],
2342 | "authors": [
2343 | {
2344 | "name": "Nicolas Grekas",
2345 | "email": "p@tchwork.com"
2346 | },
2347 | {
2348 | "name": "Symfony Community",
2349 | "homepage": "https://symfony.com/contributors"
2350 | }
2351 | ],
2352 | "description": "A generic function and convention to trigger deprecation notices",
2353 | "homepage": "https://symfony.com",
2354 | "support": {
2355 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
2356 | },
2357 | "funding": [
2358 | {
2359 | "url": "https://symfony.com/sponsor",
2360 | "type": "custom"
2361 | },
2362 | {
2363 | "url": "https://github.com/fabpot",
2364 | "type": "github"
2365 | },
2366 | {
2367 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2368 | "type": "tidelift"
2369 | }
2370 | ],
2371 | "time": "2023-03-01T10:25:55+00:00"
2372 | },
2373 | {
2374 | "name": "symfony/error-handler",
2375 | "version": "v6.2.7",
2376 | "source": {
2377 | "type": "git",
2378 | "url": "https://github.com/symfony/error-handler.git",
2379 | "reference": "61e90f94eb014054000bc902257d2763fac09166"
2380 | },
2381 | "dist": {
2382 | "type": "zip",
2383 | "url": "https://api.github.com/repos/symfony/error-handler/zipball/61e90f94eb014054000bc902257d2763fac09166",
2384 | "reference": "61e90f94eb014054000bc902257d2763fac09166",
2385 | "shasum": ""
2386 | },
2387 | "require": {
2388 | "php": ">=8.1",
2389 | "psr/log": "^1|^2|^3",
2390 | "symfony/var-dumper": "^5.4|^6.0"
2391 | },
2392 | "require-dev": {
2393 | "symfony/deprecation-contracts": "^2.1|^3",
2394 | "symfony/http-kernel": "^5.4|^6.0",
2395 | "symfony/serializer": "^5.4|^6.0"
2396 | },
2397 | "bin": [
2398 | "Resources/bin/patch-type-declarations"
2399 | ],
2400 | "type": "library",
2401 | "autoload": {
2402 | "psr-4": {
2403 | "Symfony\\Component\\ErrorHandler\\": ""
2404 | },
2405 | "exclude-from-classmap": [
2406 | "/Tests/"
2407 | ]
2408 | },
2409 | "notification-url": "https://packagist.org/downloads/",
2410 | "license": [
2411 | "MIT"
2412 | ],
2413 | "authors": [
2414 | {
2415 | "name": "Fabien Potencier",
2416 | "email": "fabien@symfony.com"
2417 | },
2418 | {
2419 | "name": "Symfony Community",
2420 | "homepage": "https://symfony.com/contributors"
2421 | }
2422 | ],
2423 | "description": "Provides tools to manage errors and ease debugging PHP code",
2424 | "homepage": "https://symfony.com",
2425 | "support": {
2426 | "source": "https://github.com/symfony/error-handler/tree/v6.2.7"
2427 | },
2428 | "funding": [
2429 | {
2430 | "url": "https://symfony.com/sponsor",
2431 | "type": "custom"
2432 | },
2433 | {
2434 | "url": "https://github.com/fabpot",
2435 | "type": "github"
2436 | },
2437 | {
2438 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2439 | "type": "tidelift"
2440 | }
2441 | ],
2442 | "time": "2023-02-14T08:44:56+00:00"
2443 | },
2444 | {
2445 | "name": "symfony/event-dispatcher",
2446 | "version": "v6.2.7",
2447 | "source": {
2448 | "type": "git",
2449 | "url": "https://github.com/symfony/event-dispatcher.git",
2450 | "reference": "404b307de426c1c488e5afad64403e5f145e82a5"
2451 | },
2452 | "dist": {
2453 | "type": "zip",
2454 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/404b307de426c1c488e5afad64403e5f145e82a5",
2455 | "reference": "404b307de426c1c488e5afad64403e5f145e82a5",
2456 | "shasum": ""
2457 | },
2458 | "require": {
2459 | "php": ">=8.1",
2460 | "symfony/event-dispatcher-contracts": "^2|^3"
2461 | },
2462 | "conflict": {
2463 | "symfony/dependency-injection": "<5.4"
2464 | },
2465 | "provide": {
2466 | "psr/event-dispatcher-implementation": "1.0",
2467 | "symfony/event-dispatcher-implementation": "2.0|3.0"
2468 | },
2469 | "require-dev": {
2470 | "psr/log": "^1|^2|^3",
2471 | "symfony/config": "^5.4|^6.0",
2472 | "symfony/dependency-injection": "^5.4|^6.0",
2473 | "symfony/error-handler": "^5.4|^6.0",
2474 | "symfony/expression-language": "^5.4|^6.0",
2475 | "symfony/http-foundation": "^5.4|^6.0",
2476 | "symfony/service-contracts": "^1.1|^2|^3",
2477 | "symfony/stopwatch": "^5.4|^6.0"
2478 | },
2479 | "suggest": {
2480 | "symfony/dependency-injection": "",
2481 | "symfony/http-kernel": ""
2482 | },
2483 | "type": "library",
2484 | "autoload": {
2485 | "psr-4": {
2486 | "Symfony\\Component\\EventDispatcher\\": ""
2487 | },
2488 | "exclude-from-classmap": [
2489 | "/Tests/"
2490 | ]
2491 | },
2492 | "notification-url": "https://packagist.org/downloads/",
2493 | "license": [
2494 | "MIT"
2495 | ],
2496 | "authors": [
2497 | {
2498 | "name": "Fabien Potencier",
2499 | "email": "fabien@symfony.com"
2500 | },
2501 | {
2502 | "name": "Symfony Community",
2503 | "homepage": "https://symfony.com/contributors"
2504 | }
2505 | ],
2506 | "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
2507 | "homepage": "https://symfony.com",
2508 | "support": {
2509 | "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.7"
2510 | },
2511 | "funding": [
2512 | {
2513 | "url": "https://symfony.com/sponsor",
2514 | "type": "custom"
2515 | },
2516 | {
2517 | "url": "https://github.com/fabpot",
2518 | "type": "github"
2519 | },
2520 | {
2521 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2522 | "type": "tidelift"
2523 | }
2524 | ],
2525 | "time": "2023-02-14T08:44:56+00:00"
2526 | },
2527 | {
2528 | "name": "symfony/event-dispatcher-contracts",
2529 | "version": "v3.2.1",
2530 | "source": {
2531 | "type": "git",
2532 | "url": "https://github.com/symfony/event-dispatcher-contracts.git",
2533 | "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd"
2534 | },
2535 | "dist": {
2536 | "type": "zip",
2537 | "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
2538 | "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
2539 | "shasum": ""
2540 | },
2541 | "require": {
2542 | "php": ">=8.1",
2543 | "psr/event-dispatcher": "^1"
2544 | },
2545 | "suggest": {
2546 | "symfony/event-dispatcher-implementation": ""
2547 | },
2548 | "type": "library",
2549 | "extra": {
2550 | "branch-alias": {
2551 | "dev-main": "3.3-dev"
2552 | },
2553 | "thanks": {
2554 | "name": "symfony/contracts",
2555 | "url": "https://github.com/symfony/contracts"
2556 | }
2557 | },
2558 | "autoload": {
2559 | "psr-4": {
2560 | "Symfony\\Contracts\\EventDispatcher\\": ""
2561 | }
2562 | },
2563 | "notification-url": "https://packagist.org/downloads/",
2564 | "license": [
2565 | "MIT"
2566 | ],
2567 | "authors": [
2568 | {
2569 | "name": "Nicolas Grekas",
2570 | "email": "p@tchwork.com"
2571 | },
2572 | {
2573 | "name": "Symfony Community",
2574 | "homepage": "https://symfony.com/contributors"
2575 | }
2576 | ],
2577 | "description": "Generic abstractions related to dispatching event",
2578 | "homepage": "https://symfony.com",
2579 | "keywords": [
2580 | "abstractions",
2581 | "contracts",
2582 | "decoupling",
2583 | "interfaces",
2584 | "interoperability",
2585 | "standards"
2586 | ],
2587 | "support": {
2588 | "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1"
2589 | },
2590 | "funding": [
2591 | {
2592 | "url": "https://symfony.com/sponsor",
2593 | "type": "custom"
2594 | },
2595 | {
2596 | "url": "https://github.com/fabpot",
2597 | "type": "github"
2598 | },
2599 | {
2600 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2601 | "type": "tidelift"
2602 | }
2603 | ],
2604 | "time": "2023-03-01T10:32:47+00:00"
2605 | },
2606 | {
2607 | "name": "symfony/finder",
2608 | "version": "v6.2.7",
2609 | "source": {
2610 | "type": "git",
2611 | "url": "https://github.com/symfony/finder.git",
2612 | "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb"
2613 | },
2614 | "dist": {
2615 | "type": "zip",
2616 | "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb",
2617 | "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb",
2618 | "shasum": ""
2619 | },
2620 | "require": {
2621 | "php": ">=8.1"
2622 | },
2623 | "require-dev": {
2624 | "symfony/filesystem": "^6.0"
2625 | },
2626 | "type": "library",
2627 | "autoload": {
2628 | "psr-4": {
2629 | "Symfony\\Component\\Finder\\": ""
2630 | },
2631 | "exclude-from-classmap": [
2632 | "/Tests/"
2633 | ]
2634 | },
2635 | "notification-url": "https://packagist.org/downloads/",
2636 | "license": [
2637 | "MIT"
2638 | ],
2639 | "authors": [
2640 | {
2641 | "name": "Fabien Potencier",
2642 | "email": "fabien@symfony.com"
2643 | },
2644 | {
2645 | "name": "Symfony Community",
2646 | "homepage": "https://symfony.com/contributors"
2647 | }
2648 | ],
2649 | "description": "Finds files and directories via an intuitive fluent interface",
2650 | "homepage": "https://symfony.com",
2651 | "support": {
2652 | "source": "https://github.com/symfony/finder/tree/v6.2.7"
2653 | },
2654 | "funding": [
2655 | {
2656 | "url": "https://symfony.com/sponsor",
2657 | "type": "custom"
2658 | },
2659 | {
2660 | "url": "https://github.com/fabpot",
2661 | "type": "github"
2662 | },
2663 | {
2664 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2665 | "type": "tidelift"
2666 | }
2667 | ],
2668 | "time": "2023-02-16T09:57:23+00:00"
2669 | },
2670 | {
2671 | "name": "symfony/http-foundation",
2672 | "version": "v6.2.7",
2673 | "source": {
2674 | "type": "git",
2675 | "url": "https://github.com/symfony/http-foundation.git",
2676 | "reference": "5fc3038d4a594223f9ea42e4e985548f3fcc9a3b"
2677 | },
2678 | "dist": {
2679 | "type": "zip",
2680 | "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5fc3038d4a594223f9ea42e4e985548f3fcc9a3b",
2681 | "reference": "5fc3038d4a594223f9ea42e4e985548f3fcc9a3b",
2682 | "shasum": ""
2683 | },
2684 | "require": {
2685 | "php": ">=8.1",
2686 | "symfony/deprecation-contracts": "^2.1|^3",
2687 | "symfony/polyfill-mbstring": "~1.1"
2688 | },
2689 | "conflict": {
2690 | "symfony/cache": "<6.2"
2691 | },
2692 | "require-dev": {
2693 | "predis/predis": "~1.0",
2694 | "symfony/cache": "^5.4|^6.0",
2695 | "symfony/dependency-injection": "^5.4|^6.0",
2696 | "symfony/expression-language": "^5.4|^6.0",
2697 | "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
2698 | "symfony/mime": "^5.4|^6.0",
2699 | "symfony/rate-limiter": "^5.2|^6.0"
2700 | },
2701 | "suggest": {
2702 | "symfony/mime": "To use the file extension guesser"
2703 | },
2704 | "type": "library",
2705 | "autoload": {
2706 | "psr-4": {
2707 | "Symfony\\Component\\HttpFoundation\\": ""
2708 | },
2709 | "exclude-from-classmap": [
2710 | "/Tests/"
2711 | ]
2712 | },
2713 | "notification-url": "https://packagist.org/downloads/",
2714 | "license": [
2715 | "MIT"
2716 | ],
2717 | "authors": [
2718 | {
2719 | "name": "Fabien Potencier",
2720 | "email": "fabien@symfony.com"
2721 | },
2722 | {
2723 | "name": "Symfony Community",
2724 | "homepage": "https://symfony.com/contributors"
2725 | }
2726 | ],
2727 | "description": "Defines an object-oriented layer for the HTTP specification",
2728 | "homepage": "https://symfony.com",
2729 | "support": {
2730 | "source": "https://github.com/symfony/http-foundation/tree/v6.2.7"
2731 | },
2732 | "funding": [
2733 | {
2734 | "url": "https://symfony.com/sponsor",
2735 | "type": "custom"
2736 | },
2737 | {
2738 | "url": "https://github.com/fabpot",
2739 | "type": "github"
2740 | },
2741 | {
2742 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2743 | "type": "tidelift"
2744 | }
2745 | ],
2746 | "time": "2023-02-21T10:54:55+00:00"
2747 | },
2748 | {
2749 | "name": "symfony/http-kernel",
2750 | "version": "v6.2.7",
2751 | "source": {
2752 | "type": "git",
2753 | "url": "https://github.com/symfony/http-kernel.git",
2754 | "reference": "ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd"
2755 | },
2756 | "dist": {
2757 | "type": "zip",
2758 | "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd",
2759 | "reference": "ca0680ad1e2d678536cc20e0ae33f9e4e5d2becd",
2760 | "shasum": ""
2761 | },
2762 | "require": {
2763 | "php": ">=8.1",
2764 | "psr/log": "^1|^2|^3",
2765 | "symfony/deprecation-contracts": "^2.1|^3",
2766 | "symfony/error-handler": "^6.1",
2767 | "symfony/event-dispatcher": "^5.4|^6.0",
2768 | "symfony/http-foundation": "^5.4.21|^6.2.7",
2769 | "symfony/polyfill-ctype": "^1.8"
2770 | },
2771 | "conflict": {
2772 | "symfony/browser-kit": "<5.4",
2773 | "symfony/cache": "<5.4",
2774 | "symfony/config": "<6.1",
2775 | "symfony/console": "<5.4",
2776 | "symfony/dependency-injection": "<6.2",
2777 | "symfony/doctrine-bridge": "<5.4",
2778 | "symfony/form": "<5.4",
2779 | "symfony/http-client": "<5.4",
2780 | "symfony/mailer": "<5.4",
2781 | "symfony/messenger": "<5.4",
2782 | "symfony/translation": "<5.4",
2783 | "symfony/twig-bridge": "<5.4",
2784 | "symfony/validator": "<5.4",
2785 | "twig/twig": "<2.13"
2786 | },
2787 | "provide": {
2788 | "psr/log-implementation": "1.0|2.0|3.0"
2789 | },
2790 | "require-dev": {
2791 | "psr/cache": "^1.0|^2.0|^3.0",
2792 | "symfony/browser-kit": "^5.4|^6.0",
2793 | "symfony/config": "^6.1",
2794 | "symfony/console": "^5.4|^6.0",
2795 | "symfony/css-selector": "^5.4|^6.0",
2796 | "symfony/dependency-injection": "^6.2",
2797 | "symfony/dom-crawler": "^5.4|^6.0",
2798 | "symfony/expression-language": "^5.4|^6.0",
2799 | "symfony/finder": "^5.4|^6.0",
2800 | "symfony/http-client-contracts": "^1.1|^2|^3",
2801 | "symfony/process": "^5.4|^6.0",
2802 | "symfony/routing": "^5.4|^6.0",
2803 | "symfony/stopwatch": "^5.4|^6.0",
2804 | "symfony/translation": "^5.4|^6.0",
2805 | "symfony/translation-contracts": "^1.1|^2|^3",
2806 | "symfony/uid": "^5.4|^6.0",
2807 | "twig/twig": "^2.13|^3.0.4"
2808 | },
2809 | "suggest": {
2810 | "symfony/browser-kit": "",
2811 | "symfony/config": "",
2812 | "symfony/console": "",
2813 | "symfony/dependency-injection": ""
2814 | },
2815 | "type": "library",
2816 | "autoload": {
2817 | "psr-4": {
2818 | "Symfony\\Component\\HttpKernel\\": ""
2819 | },
2820 | "exclude-from-classmap": [
2821 | "/Tests/"
2822 | ]
2823 | },
2824 | "notification-url": "https://packagist.org/downloads/",
2825 | "license": [
2826 | "MIT"
2827 | ],
2828 | "authors": [
2829 | {
2830 | "name": "Fabien Potencier",
2831 | "email": "fabien@symfony.com"
2832 | },
2833 | {
2834 | "name": "Symfony Community",
2835 | "homepage": "https://symfony.com/contributors"
2836 | }
2837 | ],
2838 | "description": "Provides a structured process for converting a Request into a Response",
2839 | "homepage": "https://symfony.com",
2840 | "support": {
2841 | "source": "https://github.com/symfony/http-kernel/tree/v6.2.7"
2842 | },
2843 | "funding": [
2844 | {
2845 | "url": "https://symfony.com/sponsor",
2846 | "type": "custom"
2847 | },
2848 | {
2849 | "url": "https://github.com/fabpot",
2850 | "type": "github"
2851 | },
2852 | {
2853 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2854 | "type": "tidelift"
2855 | }
2856 | ],
2857 | "time": "2023-02-28T13:26:41+00:00"
2858 | },
2859 | {
2860 | "name": "symfony/mailer",
2861 | "version": "v6.2.7",
2862 | "source": {
2863 | "type": "git",
2864 | "url": "https://github.com/symfony/mailer.git",
2865 | "reference": "e4f84c633b72ec70efc50b8016871c3bc43e691e"
2866 | },
2867 | "dist": {
2868 | "type": "zip",
2869 | "url": "https://api.github.com/repos/symfony/mailer/zipball/e4f84c633b72ec70efc50b8016871c3bc43e691e",
2870 | "reference": "e4f84c633b72ec70efc50b8016871c3bc43e691e",
2871 | "shasum": ""
2872 | },
2873 | "require": {
2874 | "egulias/email-validator": "^2.1.10|^3|^4",
2875 | "php": ">=8.1",
2876 | "psr/event-dispatcher": "^1",
2877 | "psr/log": "^1|^2|^3",
2878 | "symfony/event-dispatcher": "^5.4|^6.0",
2879 | "symfony/mime": "^6.2",
2880 | "symfony/service-contracts": "^1.1|^2|^3"
2881 | },
2882 | "conflict": {
2883 | "symfony/http-kernel": "<5.4",
2884 | "symfony/messenger": "<6.2",
2885 | "symfony/mime": "<6.2",
2886 | "symfony/twig-bridge": "<6.2.1"
2887 | },
2888 | "require-dev": {
2889 | "symfony/console": "^5.4|^6.0",
2890 | "symfony/http-client": "^5.4|^6.0",
2891 | "symfony/messenger": "^6.2",
2892 | "symfony/twig-bridge": "^6.2"
2893 | },
2894 | "type": "library",
2895 | "autoload": {
2896 | "psr-4": {
2897 | "Symfony\\Component\\Mailer\\": ""
2898 | },
2899 | "exclude-from-classmap": [
2900 | "/Tests/"
2901 | ]
2902 | },
2903 | "notification-url": "https://packagist.org/downloads/",
2904 | "license": [
2905 | "MIT"
2906 | ],
2907 | "authors": [
2908 | {
2909 | "name": "Fabien Potencier",
2910 | "email": "fabien@symfony.com"
2911 | },
2912 | {
2913 | "name": "Symfony Community",
2914 | "homepage": "https://symfony.com/contributors"
2915 | }
2916 | ],
2917 | "description": "Helps sending emails",
2918 | "homepage": "https://symfony.com",
2919 | "support": {
2920 | "source": "https://github.com/symfony/mailer/tree/v6.2.7"
2921 | },
2922 | "funding": [
2923 | {
2924 | "url": "https://symfony.com/sponsor",
2925 | "type": "custom"
2926 | },
2927 | {
2928 | "url": "https://github.com/fabpot",
2929 | "type": "github"
2930 | },
2931 | {
2932 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
2933 | "type": "tidelift"
2934 | }
2935 | ],
2936 | "time": "2023-02-21T10:35:38+00:00"
2937 | },
2938 | {
2939 | "name": "symfony/mime",
2940 | "version": "v6.2.7",
2941 | "source": {
2942 | "type": "git",
2943 | "url": "https://github.com/symfony/mime.git",
2944 | "reference": "62e341f80699badb0ad70b31149c8df89a2d778e"
2945 | },
2946 | "dist": {
2947 | "type": "zip",
2948 | "url": "https://api.github.com/repos/symfony/mime/zipball/62e341f80699badb0ad70b31149c8df89a2d778e",
2949 | "reference": "62e341f80699badb0ad70b31149c8df89a2d778e",
2950 | "shasum": ""
2951 | },
2952 | "require": {
2953 | "php": ">=8.1",
2954 | "symfony/polyfill-intl-idn": "^1.10",
2955 | "symfony/polyfill-mbstring": "^1.0"
2956 | },
2957 | "conflict": {
2958 | "egulias/email-validator": "~3.0.0",
2959 | "phpdocumentor/reflection-docblock": "<3.2.2",
2960 | "phpdocumentor/type-resolver": "<1.4.0",
2961 | "symfony/mailer": "<5.4",
2962 | "symfony/serializer": "<6.2"
2963 | },
2964 | "require-dev": {
2965 | "egulias/email-validator": "^2.1.10|^3.1|^4",
2966 | "league/html-to-markdown": "^5.0",
2967 | "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
2968 | "symfony/dependency-injection": "^5.4|^6.0",
2969 | "symfony/property-access": "^5.4|^6.0",
2970 | "symfony/property-info": "^5.4|^6.0",
2971 | "symfony/serializer": "^6.2"
2972 | },
2973 | "type": "library",
2974 | "autoload": {
2975 | "psr-4": {
2976 | "Symfony\\Component\\Mime\\": ""
2977 | },
2978 | "exclude-from-classmap": [
2979 | "/Tests/"
2980 | ]
2981 | },
2982 | "notification-url": "https://packagist.org/downloads/",
2983 | "license": [
2984 | "MIT"
2985 | ],
2986 | "authors": [
2987 | {
2988 | "name": "Fabien Potencier",
2989 | "email": "fabien@symfony.com"
2990 | },
2991 | {
2992 | "name": "Symfony Community",
2993 | "homepage": "https://symfony.com/contributors"
2994 | }
2995 | ],
2996 | "description": "Allows manipulating MIME messages",
2997 | "homepage": "https://symfony.com",
2998 | "keywords": [
2999 | "mime",
3000 | "mime-type"
3001 | ],
3002 | "support": {
3003 | "source": "https://github.com/symfony/mime/tree/v6.2.7"
3004 | },
3005 | "funding": [
3006 | {
3007 | "url": "https://symfony.com/sponsor",
3008 | "type": "custom"
3009 | },
3010 | {
3011 | "url": "https://github.com/fabpot",
3012 | "type": "github"
3013 | },
3014 | {
3015 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3016 | "type": "tidelift"
3017 | }
3018 | ],
3019 | "time": "2023-02-24T10:42:00+00:00"
3020 | },
3021 | {
3022 | "name": "symfony/polyfill-ctype",
3023 | "version": "v1.27.0",
3024 | "source": {
3025 | "type": "git",
3026 | "url": "https://github.com/symfony/polyfill-ctype.git",
3027 | "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
3028 | },
3029 | "dist": {
3030 | "type": "zip",
3031 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
3032 | "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
3033 | "shasum": ""
3034 | },
3035 | "require": {
3036 | "php": ">=7.1"
3037 | },
3038 | "provide": {
3039 | "ext-ctype": "*"
3040 | },
3041 | "suggest": {
3042 | "ext-ctype": "For best performance"
3043 | },
3044 | "type": "library",
3045 | "extra": {
3046 | "branch-alias": {
3047 | "dev-main": "1.27-dev"
3048 | },
3049 | "thanks": {
3050 | "name": "symfony/polyfill",
3051 | "url": "https://github.com/symfony/polyfill"
3052 | }
3053 | },
3054 | "autoload": {
3055 | "files": [
3056 | "bootstrap.php"
3057 | ],
3058 | "psr-4": {
3059 | "Symfony\\Polyfill\\Ctype\\": ""
3060 | }
3061 | },
3062 | "notification-url": "https://packagist.org/downloads/",
3063 | "license": [
3064 | "MIT"
3065 | ],
3066 | "authors": [
3067 | {
3068 | "name": "Gert de Pagter",
3069 | "email": "BackEndTea@gmail.com"
3070 | },
3071 | {
3072 | "name": "Symfony Community",
3073 | "homepage": "https://symfony.com/contributors"
3074 | }
3075 | ],
3076 | "description": "Symfony polyfill for ctype functions",
3077 | "homepage": "https://symfony.com",
3078 | "keywords": [
3079 | "compatibility",
3080 | "ctype",
3081 | "polyfill",
3082 | "portable"
3083 | ],
3084 | "support": {
3085 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
3086 | },
3087 | "funding": [
3088 | {
3089 | "url": "https://symfony.com/sponsor",
3090 | "type": "custom"
3091 | },
3092 | {
3093 | "url": "https://github.com/fabpot",
3094 | "type": "github"
3095 | },
3096 | {
3097 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3098 | "type": "tidelift"
3099 | }
3100 | ],
3101 | "time": "2022-11-03T14:55:06+00:00"
3102 | },
3103 | {
3104 | "name": "symfony/polyfill-intl-grapheme",
3105 | "version": "v1.27.0",
3106 | "source": {
3107 | "type": "git",
3108 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
3109 | "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
3110 | },
3111 | "dist": {
3112 | "type": "zip",
3113 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
3114 | "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
3115 | "shasum": ""
3116 | },
3117 | "require": {
3118 | "php": ">=7.1"
3119 | },
3120 | "suggest": {
3121 | "ext-intl": "For best performance"
3122 | },
3123 | "type": "library",
3124 | "extra": {
3125 | "branch-alias": {
3126 | "dev-main": "1.27-dev"
3127 | },
3128 | "thanks": {
3129 | "name": "symfony/polyfill",
3130 | "url": "https://github.com/symfony/polyfill"
3131 | }
3132 | },
3133 | "autoload": {
3134 | "files": [
3135 | "bootstrap.php"
3136 | ],
3137 | "psr-4": {
3138 | "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
3139 | }
3140 | },
3141 | "notification-url": "https://packagist.org/downloads/",
3142 | "license": [
3143 | "MIT"
3144 | ],
3145 | "authors": [
3146 | {
3147 | "name": "Nicolas Grekas",
3148 | "email": "p@tchwork.com"
3149 | },
3150 | {
3151 | "name": "Symfony Community",
3152 | "homepage": "https://symfony.com/contributors"
3153 | }
3154 | ],
3155 | "description": "Symfony polyfill for intl's grapheme_* functions",
3156 | "homepage": "https://symfony.com",
3157 | "keywords": [
3158 | "compatibility",
3159 | "grapheme",
3160 | "intl",
3161 | "polyfill",
3162 | "portable",
3163 | "shim"
3164 | ],
3165 | "support": {
3166 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
3167 | },
3168 | "funding": [
3169 | {
3170 | "url": "https://symfony.com/sponsor",
3171 | "type": "custom"
3172 | },
3173 | {
3174 | "url": "https://github.com/fabpot",
3175 | "type": "github"
3176 | },
3177 | {
3178 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3179 | "type": "tidelift"
3180 | }
3181 | ],
3182 | "time": "2022-11-03T14:55:06+00:00"
3183 | },
3184 | {
3185 | "name": "symfony/polyfill-intl-idn",
3186 | "version": "v1.27.0",
3187 | "source": {
3188 | "type": "git",
3189 | "url": "https://github.com/symfony/polyfill-intl-idn.git",
3190 | "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
3191 | },
3192 | "dist": {
3193 | "type": "zip",
3194 | "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
3195 | "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
3196 | "shasum": ""
3197 | },
3198 | "require": {
3199 | "php": ">=7.1",
3200 | "symfony/polyfill-intl-normalizer": "^1.10",
3201 | "symfony/polyfill-php72": "^1.10"
3202 | },
3203 | "suggest": {
3204 | "ext-intl": "For best performance"
3205 | },
3206 | "type": "library",
3207 | "extra": {
3208 | "branch-alias": {
3209 | "dev-main": "1.27-dev"
3210 | },
3211 | "thanks": {
3212 | "name": "symfony/polyfill",
3213 | "url": "https://github.com/symfony/polyfill"
3214 | }
3215 | },
3216 | "autoload": {
3217 | "files": [
3218 | "bootstrap.php"
3219 | ],
3220 | "psr-4": {
3221 | "Symfony\\Polyfill\\Intl\\Idn\\": ""
3222 | }
3223 | },
3224 | "notification-url": "https://packagist.org/downloads/",
3225 | "license": [
3226 | "MIT"
3227 | ],
3228 | "authors": [
3229 | {
3230 | "name": "Laurent Bassin",
3231 | "email": "laurent@bassin.info"
3232 | },
3233 | {
3234 | "name": "Trevor Rowbotham",
3235 | "email": "trevor.rowbotham@pm.me"
3236 | },
3237 | {
3238 | "name": "Symfony Community",
3239 | "homepage": "https://symfony.com/contributors"
3240 | }
3241 | ],
3242 | "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
3243 | "homepage": "https://symfony.com",
3244 | "keywords": [
3245 | "compatibility",
3246 | "idn",
3247 | "intl",
3248 | "polyfill",
3249 | "portable",
3250 | "shim"
3251 | ],
3252 | "support": {
3253 | "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
3254 | },
3255 | "funding": [
3256 | {
3257 | "url": "https://symfony.com/sponsor",
3258 | "type": "custom"
3259 | },
3260 | {
3261 | "url": "https://github.com/fabpot",
3262 | "type": "github"
3263 | },
3264 | {
3265 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3266 | "type": "tidelift"
3267 | }
3268 | ],
3269 | "time": "2022-11-03T14:55:06+00:00"
3270 | },
3271 | {
3272 | "name": "symfony/polyfill-intl-normalizer",
3273 | "version": "v1.27.0",
3274 | "source": {
3275 | "type": "git",
3276 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
3277 | "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
3278 | },
3279 | "dist": {
3280 | "type": "zip",
3281 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
3282 | "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
3283 | "shasum": ""
3284 | },
3285 | "require": {
3286 | "php": ">=7.1"
3287 | },
3288 | "suggest": {
3289 | "ext-intl": "For best performance"
3290 | },
3291 | "type": "library",
3292 | "extra": {
3293 | "branch-alias": {
3294 | "dev-main": "1.27-dev"
3295 | },
3296 | "thanks": {
3297 | "name": "symfony/polyfill",
3298 | "url": "https://github.com/symfony/polyfill"
3299 | }
3300 | },
3301 | "autoload": {
3302 | "files": [
3303 | "bootstrap.php"
3304 | ],
3305 | "psr-4": {
3306 | "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
3307 | },
3308 | "classmap": [
3309 | "Resources/stubs"
3310 | ]
3311 | },
3312 | "notification-url": "https://packagist.org/downloads/",
3313 | "license": [
3314 | "MIT"
3315 | ],
3316 | "authors": [
3317 | {
3318 | "name": "Nicolas Grekas",
3319 | "email": "p@tchwork.com"
3320 | },
3321 | {
3322 | "name": "Symfony Community",
3323 | "homepage": "https://symfony.com/contributors"
3324 | }
3325 | ],
3326 | "description": "Symfony polyfill for intl's Normalizer class and related functions",
3327 | "homepage": "https://symfony.com",
3328 | "keywords": [
3329 | "compatibility",
3330 | "intl",
3331 | "normalizer",
3332 | "polyfill",
3333 | "portable",
3334 | "shim"
3335 | ],
3336 | "support": {
3337 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
3338 | },
3339 | "funding": [
3340 | {
3341 | "url": "https://symfony.com/sponsor",
3342 | "type": "custom"
3343 | },
3344 | {
3345 | "url": "https://github.com/fabpot",
3346 | "type": "github"
3347 | },
3348 | {
3349 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3350 | "type": "tidelift"
3351 | }
3352 | ],
3353 | "time": "2022-11-03T14:55:06+00:00"
3354 | },
3355 | {
3356 | "name": "symfony/polyfill-mbstring",
3357 | "version": "v1.27.0",
3358 | "source": {
3359 | "type": "git",
3360 | "url": "https://github.com/symfony/polyfill-mbstring.git",
3361 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
3362 | },
3363 | "dist": {
3364 | "type": "zip",
3365 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
3366 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
3367 | "shasum": ""
3368 | },
3369 | "require": {
3370 | "php": ">=7.1"
3371 | },
3372 | "provide": {
3373 | "ext-mbstring": "*"
3374 | },
3375 | "suggest": {
3376 | "ext-mbstring": "For best performance"
3377 | },
3378 | "type": "library",
3379 | "extra": {
3380 | "branch-alias": {
3381 | "dev-main": "1.27-dev"
3382 | },
3383 | "thanks": {
3384 | "name": "symfony/polyfill",
3385 | "url": "https://github.com/symfony/polyfill"
3386 | }
3387 | },
3388 | "autoload": {
3389 | "files": [
3390 | "bootstrap.php"
3391 | ],
3392 | "psr-4": {
3393 | "Symfony\\Polyfill\\Mbstring\\": ""
3394 | }
3395 | },
3396 | "notification-url": "https://packagist.org/downloads/",
3397 | "license": [
3398 | "MIT"
3399 | ],
3400 | "authors": [
3401 | {
3402 | "name": "Nicolas Grekas",
3403 | "email": "p@tchwork.com"
3404 | },
3405 | {
3406 | "name": "Symfony Community",
3407 | "homepage": "https://symfony.com/contributors"
3408 | }
3409 | ],
3410 | "description": "Symfony polyfill for the Mbstring extension",
3411 | "homepage": "https://symfony.com",
3412 | "keywords": [
3413 | "compatibility",
3414 | "mbstring",
3415 | "polyfill",
3416 | "portable",
3417 | "shim"
3418 | ],
3419 | "support": {
3420 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
3421 | },
3422 | "funding": [
3423 | {
3424 | "url": "https://symfony.com/sponsor",
3425 | "type": "custom"
3426 | },
3427 | {
3428 | "url": "https://github.com/fabpot",
3429 | "type": "github"
3430 | },
3431 | {
3432 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3433 | "type": "tidelift"
3434 | }
3435 | ],
3436 | "time": "2022-11-03T14:55:06+00:00"
3437 | },
3438 | {
3439 | "name": "symfony/polyfill-php72",
3440 | "version": "v1.27.0",
3441 | "source": {
3442 | "type": "git",
3443 | "url": "https://github.com/symfony/polyfill-php72.git",
3444 | "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
3445 | },
3446 | "dist": {
3447 | "type": "zip",
3448 | "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
3449 | "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
3450 | "shasum": ""
3451 | },
3452 | "require": {
3453 | "php": ">=7.1"
3454 | },
3455 | "type": "library",
3456 | "extra": {
3457 | "branch-alias": {
3458 | "dev-main": "1.27-dev"
3459 | },
3460 | "thanks": {
3461 | "name": "symfony/polyfill",
3462 | "url": "https://github.com/symfony/polyfill"
3463 | }
3464 | },
3465 | "autoload": {
3466 | "files": [
3467 | "bootstrap.php"
3468 | ],
3469 | "psr-4": {
3470 | "Symfony\\Polyfill\\Php72\\": ""
3471 | }
3472 | },
3473 | "notification-url": "https://packagist.org/downloads/",
3474 | "license": [
3475 | "MIT"
3476 | ],
3477 | "authors": [
3478 | {
3479 | "name": "Nicolas Grekas",
3480 | "email": "p@tchwork.com"
3481 | },
3482 | {
3483 | "name": "Symfony Community",
3484 | "homepage": "https://symfony.com/contributors"
3485 | }
3486 | ],
3487 | "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
3488 | "homepage": "https://symfony.com",
3489 | "keywords": [
3490 | "compatibility",
3491 | "polyfill",
3492 | "portable",
3493 | "shim"
3494 | ],
3495 | "support": {
3496 | "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
3497 | },
3498 | "funding": [
3499 | {
3500 | "url": "https://symfony.com/sponsor",
3501 | "type": "custom"
3502 | },
3503 | {
3504 | "url": "https://github.com/fabpot",
3505 | "type": "github"
3506 | },
3507 | {
3508 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3509 | "type": "tidelift"
3510 | }
3511 | ],
3512 | "time": "2022-11-03T14:55:06+00:00"
3513 | },
3514 | {
3515 | "name": "symfony/polyfill-php80",
3516 | "version": "v1.27.0",
3517 | "source": {
3518 | "type": "git",
3519 | "url": "https://github.com/symfony/polyfill-php80.git",
3520 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
3521 | },
3522 | "dist": {
3523 | "type": "zip",
3524 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
3525 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
3526 | "shasum": ""
3527 | },
3528 | "require": {
3529 | "php": ">=7.1"
3530 | },
3531 | "type": "library",
3532 | "extra": {
3533 | "branch-alias": {
3534 | "dev-main": "1.27-dev"
3535 | },
3536 | "thanks": {
3537 | "name": "symfony/polyfill",
3538 | "url": "https://github.com/symfony/polyfill"
3539 | }
3540 | },
3541 | "autoload": {
3542 | "files": [
3543 | "bootstrap.php"
3544 | ],
3545 | "psr-4": {
3546 | "Symfony\\Polyfill\\Php80\\": ""
3547 | },
3548 | "classmap": [
3549 | "Resources/stubs"
3550 | ]
3551 | },
3552 | "notification-url": "https://packagist.org/downloads/",
3553 | "license": [
3554 | "MIT"
3555 | ],
3556 | "authors": [
3557 | {
3558 | "name": "Ion Bazan",
3559 | "email": "ion.bazan@gmail.com"
3560 | },
3561 | {
3562 | "name": "Nicolas Grekas",
3563 | "email": "p@tchwork.com"
3564 | },
3565 | {
3566 | "name": "Symfony Community",
3567 | "homepage": "https://symfony.com/contributors"
3568 | }
3569 | ],
3570 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
3571 | "homepage": "https://symfony.com",
3572 | "keywords": [
3573 | "compatibility",
3574 | "polyfill",
3575 | "portable",
3576 | "shim"
3577 | ],
3578 | "support": {
3579 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
3580 | },
3581 | "funding": [
3582 | {
3583 | "url": "https://symfony.com/sponsor",
3584 | "type": "custom"
3585 | },
3586 | {
3587 | "url": "https://github.com/fabpot",
3588 | "type": "github"
3589 | },
3590 | {
3591 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3592 | "type": "tidelift"
3593 | }
3594 | ],
3595 | "time": "2022-11-03T14:55:06+00:00"
3596 | },
3597 | {
3598 | "name": "symfony/polyfill-uuid",
3599 | "version": "v1.27.0",
3600 | "source": {
3601 | "type": "git",
3602 | "url": "https://github.com/symfony/polyfill-uuid.git",
3603 | "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
3604 | },
3605 | "dist": {
3606 | "type": "zip",
3607 | "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
3608 | "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
3609 | "shasum": ""
3610 | },
3611 | "require": {
3612 | "php": ">=7.1"
3613 | },
3614 | "provide": {
3615 | "ext-uuid": "*"
3616 | },
3617 | "suggest": {
3618 | "ext-uuid": "For best performance"
3619 | },
3620 | "type": "library",
3621 | "extra": {
3622 | "branch-alias": {
3623 | "dev-main": "1.27-dev"
3624 | },
3625 | "thanks": {
3626 | "name": "symfony/polyfill",
3627 | "url": "https://github.com/symfony/polyfill"
3628 | }
3629 | },
3630 | "autoload": {
3631 | "files": [
3632 | "bootstrap.php"
3633 | ],
3634 | "psr-4": {
3635 | "Symfony\\Polyfill\\Uuid\\": ""
3636 | }
3637 | },
3638 | "notification-url": "https://packagist.org/downloads/",
3639 | "license": [
3640 | "MIT"
3641 | ],
3642 | "authors": [
3643 | {
3644 | "name": "Grégoire Pineau",
3645 | "email": "lyrixx@lyrixx.info"
3646 | },
3647 | {
3648 | "name": "Symfony Community",
3649 | "homepage": "https://symfony.com/contributors"
3650 | }
3651 | ],
3652 | "description": "Symfony polyfill for uuid functions",
3653 | "homepage": "https://symfony.com",
3654 | "keywords": [
3655 | "compatibility",
3656 | "polyfill",
3657 | "portable",
3658 | "uuid"
3659 | ],
3660 | "support": {
3661 | "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0"
3662 | },
3663 | "funding": [
3664 | {
3665 | "url": "https://symfony.com/sponsor",
3666 | "type": "custom"
3667 | },
3668 | {
3669 | "url": "https://github.com/fabpot",
3670 | "type": "github"
3671 | },
3672 | {
3673 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3674 | "type": "tidelift"
3675 | }
3676 | ],
3677 | "time": "2022-11-03T14:55:06+00:00"
3678 | },
3679 | {
3680 | "name": "symfony/process",
3681 | "version": "v6.2.7",
3682 | "source": {
3683 | "type": "git",
3684 | "url": "https://github.com/symfony/process.git",
3685 | "reference": "680e8a2ea6b3f87aecc07a6a65a203ae573d1902"
3686 | },
3687 | "dist": {
3688 | "type": "zip",
3689 | "url": "https://api.github.com/repos/symfony/process/zipball/680e8a2ea6b3f87aecc07a6a65a203ae573d1902",
3690 | "reference": "680e8a2ea6b3f87aecc07a6a65a203ae573d1902",
3691 | "shasum": ""
3692 | },
3693 | "require": {
3694 | "php": ">=8.1"
3695 | },
3696 | "type": "library",
3697 | "autoload": {
3698 | "psr-4": {
3699 | "Symfony\\Component\\Process\\": ""
3700 | },
3701 | "exclude-from-classmap": [
3702 | "/Tests/"
3703 | ]
3704 | },
3705 | "notification-url": "https://packagist.org/downloads/",
3706 | "license": [
3707 | "MIT"
3708 | ],
3709 | "authors": [
3710 | {
3711 | "name": "Fabien Potencier",
3712 | "email": "fabien@symfony.com"
3713 | },
3714 | {
3715 | "name": "Symfony Community",
3716 | "homepage": "https://symfony.com/contributors"
3717 | }
3718 | ],
3719 | "description": "Executes commands in sub-processes",
3720 | "homepage": "https://symfony.com",
3721 | "support": {
3722 | "source": "https://github.com/symfony/process/tree/v6.2.7"
3723 | },
3724 | "funding": [
3725 | {
3726 | "url": "https://symfony.com/sponsor",
3727 | "type": "custom"
3728 | },
3729 | {
3730 | "url": "https://github.com/fabpot",
3731 | "type": "github"
3732 | },
3733 | {
3734 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3735 | "type": "tidelift"
3736 | }
3737 | ],
3738 | "time": "2023-02-24T10:42:00+00:00"
3739 | },
3740 | {
3741 | "name": "symfony/routing",
3742 | "version": "v6.2.7",
3743 | "source": {
3744 | "type": "git",
3745 | "url": "https://github.com/symfony/routing.git",
3746 | "reference": "fa643fa4c56de161f8bc8c0492a76a60140b50e4"
3747 | },
3748 | "dist": {
3749 | "type": "zip",
3750 | "url": "https://api.github.com/repos/symfony/routing/zipball/fa643fa4c56de161f8bc8c0492a76a60140b50e4",
3751 | "reference": "fa643fa4c56de161f8bc8c0492a76a60140b50e4",
3752 | "shasum": ""
3753 | },
3754 | "require": {
3755 | "php": ">=8.1"
3756 | },
3757 | "conflict": {
3758 | "doctrine/annotations": "<1.12",
3759 | "symfony/config": "<6.2",
3760 | "symfony/dependency-injection": "<5.4",
3761 | "symfony/yaml": "<5.4"
3762 | },
3763 | "require-dev": {
3764 | "doctrine/annotations": "^1.12|^2",
3765 | "psr/log": "^1|^2|^3",
3766 | "symfony/config": "^6.2",
3767 | "symfony/dependency-injection": "^5.4|^6.0",
3768 | "symfony/expression-language": "^5.4|^6.0",
3769 | "symfony/http-foundation": "^5.4|^6.0",
3770 | "symfony/yaml": "^5.4|^6.0"
3771 | },
3772 | "suggest": {
3773 | "symfony/config": "For using the all-in-one router or any loader",
3774 | "symfony/expression-language": "For using expression matching",
3775 | "symfony/http-foundation": "For using a Symfony Request object",
3776 | "symfony/yaml": "For using the YAML loader"
3777 | },
3778 | "type": "library",
3779 | "autoload": {
3780 | "psr-4": {
3781 | "Symfony\\Component\\Routing\\": ""
3782 | },
3783 | "exclude-from-classmap": [
3784 | "/Tests/"
3785 | ]
3786 | },
3787 | "notification-url": "https://packagist.org/downloads/",
3788 | "license": [
3789 | "MIT"
3790 | ],
3791 | "authors": [
3792 | {
3793 | "name": "Fabien Potencier",
3794 | "email": "fabien@symfony.com"
3795 | },
3796 | {
3797 | "name": "Symfony Community",
3798 | "homepage": "https://symfony.com/contributors"
3799 | }
3800 | ],
3801 | "description": "Maps an HTTP request to a set of configuration variables",
3802 | "homepage": "https://symfony.com",
3803 | "keywords": [
3804 | "router",
3805 | "routing",
3806 | "uri",
3807 | "url"
3808 | ],
3809 | "support": {
3810 | "source": "https://github.com/symfony/routing/tree/v6.2.7"
3811 | },
3812 | "funding": [
3813 | {
3814 | "url": "https://symfony.com/sponsor",
3815 | "type": "custom"
3816 | },
3817 | {
3818 | "url": "https://github.com/fabpot",
3819 | "type": "github"
3820 | },
3821 | {
3822 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3823 | "type": "tidelift"
3824 | }
3825 | ],
3826 | "time": "2023-02-14T08:53:37+00:00"
3827 | },
3828 | {
3829 | "name": "symfony/service-contracts",
3830 | "version": "v3.2.1",
3831 | "source": {
3832 | "type": "git",
3833 | "url": "https://github.com/symfony/service-contracts.git",
3834 | "reference": "a8c9cedf55f314f3a186041d19537303766df09a"
3835 | },
3836 | "dist": {
3837 | "type": "zip",
3838 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a",
3839 | "reference": "a8c9cedf55f314f3a186041d19537303766df09a",
3840 | "shasum": ""
3841 | },
3842 | "require": {
3843 | "php": ">=8.1",
3844 | "psr/container": "^2.0"
3845 | },
3846 | "conflict": {
3847 | "ext-psr": "<1.1|>=2"
3848 | },
3849 | "suggest": {
3850 | "symfony/service-implementation": ""
3851 | },
3852 | "type": "library",
3853 | "extra": {
3854 | "branch-alias": {
3855 | "dev-main": "3.3-dev"
3856 | },
3857 | "thanks": {
3858 | "name": "symfony/contracts",
3859 | "url": "https://github.com/symfony/contracts"
3860 | }
3861 | },
3862 | "autoload": {
3863 | "psr-4": {
3864 | "Symfony\\Contracts\\Service\\": ""
3865 | },
3866 | "exclude-from-classmap": [
3867 | "/Test/"
3868 | ]
3869 | },
3870 | "notification-url": "https://packagist.org/downloads/",
3871 | "license": [
3872 | "MIT"
3873 | ],
3874 | "authors": [
3875 | {
3876 | "name": "Nicolas Grekas",
3877 | "email": "p@tchwork.com"
3878 | },
3879 | {
3880 | "name": "Symfony Community",
3881 | "homepage": "https://symfony.com/contributors"
3882 | }
3883 | ],
3884 | "description": "Generic abstractions related to writing services",
3885 | "homepage": "https://symfony.com",
3886 | "keywords": [
3887 | "abstractions",
3888 | "contracts",
3889 | "decoupling",
3890 | "interfaces",
3891 | "interoperability",
3892 | "standards"
3893 | ],
3894 | "support": {
3895 | "source": "https://github.com/symfony/service-contracts/tree/v3.2.1"
3896 | },
3897 | "funding": [
3898 | {
3899 | "url": "https://symfony.com/sponsor",
3900 | "type": "custom"
3901 | },
3902 | {
3903 | "url": "https://github.com/fabpot",
3904 | "type": "github"
3905 | },
3906 | {
3907 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3908 | "type": "tidelift"
3909 | }
3910 | ],
3911 | "time": "2023-03-01T10:32:47+00:00"
3912 | },
3913 | {
3914 | "name": "symfony/string",
3915 | "version": "v6.2.7",
3916 | "source": {
3917 | "type": "git",
3918 | "url": "https://github.com/symfony/string.git",
3919 | "reference": "67b8c1eec78296b85dc1c7d9743830160218993d"
3920 | },
3921 | "dist": {
3922 | "type": "zip",
3923 | "url": "https://api.github.com/repos/symfony/string/zipball/67b8c1eec78296b85dc1c7d9743830160218993d",
3924 | "reference": "67b8c1eec78296b85dc1c7d9743830160218993d",
3925 | "shasum": ""
3926 | },
3927 | "require": {
3928 | "php": ">=8.1",
3929 | "symfony/polyfill-ctype": "~1.8",
3930 | "symfony/polyfill-intl-grapheme": "~1.0",
3931 | "symfony/polyfill-intl-normalizer": "~1.0",
3932 | "symfony/polyfill-mbstring": "~1.0"
3933 | },
3934 | "conflict": {
3935 | "symfony/translation-contracts": "<2.0"
3936 | },
3937 | "require-dev": {
3938 | "symfony/error-handler": "^5.4|^6.0",
3939 | "symfony/http-client": "^5.4|^6.0",
3940 | "symfony/intl": "^6.2",
3941 | "symfony/translation-contracts": "^2.0|^3.0",
3942 | "symfony/var-exporter": "^5.4|^6.0"
3943 | },
3944 | "type": "library",
3945 | "autoload": {
3946 | "files": [
3947 | "Resources/functions.php"
3948 | ],
3949 | "psr-4": {
3950 | "Symfony\\Component\\String\\": ""
3951 | },
3952 | "exclude-from-classmap": [
3953 | "/Tests/"
3954 | ]
3955 | },
3956 | "notification-url": "https://packagist.org/downloads/",
3957 | "license": [
3958 | "MIT"
3959 | ],
3960 | "authors": [
3961 | {
3962 | "name": "Nicolas Grekas",
3963 | "email": "p@tchwork.com"
3964 | },
3965 | {
3966 | "name": "Symfony Community",
3967 | "homepage": "https://symfony.com/contributors"
3968 | }
3969 | ],
3970 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
3971 | "homepage": "https://symfony.com",
3972 | "keywords": [
3973 | "grapheme",
3974 | "i18n",
3975 | "string",
3976 | "unicode",
3977 | "utf-8",
3978 | "utf8"
3979 | ],
3980 | "support": {
3981 | "source": "https://github.com/symfony/string/tree/v6.2.7"
3982 | },
3983 | "funding": [
3984 | {
3985 | "url": "https://symfony.com/sponsor",
3986 | "type": "custom"
3987 | },
3988 | {
3989 | "url": "https://github.com/fabpot",
3990 | "type": "github"
3991 | },
3992 | {
3993 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
3994 | "type": "tidelift"
3995 | }
3996 | ],
3997 | "time": "2023-02-24T10:42:00+00:00"
3998 | },
3999 | {
4000 | "name": "symfony/translation",
4001 | "version": "v6.2.7",
4002 | "source": {
4003 | "type": "git",
4004 | "url": "https://github.com/symfony/translation.git",
4005 | "reference": "90db1c6138c90527917671cd9ffa9e8b359e3a73"
4006 | },
4007 | "dist": {
4008 | "type": "zip",
4009 | "url": "https://api.github.com/repos/symfony/translation/zipball/90db1c6138c90527917671cd9ffa9e8b359e3a73",
4010 | "reference": "90db1c6138c90527917671cd9ffa9e8b359e3a73",
4011 | "shasum": ""
4012 | },
4013 | "require": {
4014 | "php": ">=8.1",
4015 | "symfony/polyfill-mbstring": "~1.0",
4016 | "symfony/translation-contracts": "^2.3|^3.0"
4017 | },
4018 | "conflict": {
4019 | "symfony/config": "<5.4",
4020 | "symfony/console": "<5.4",
4021 | "symfony/dependency-injection": "<5.4",
4022 | "symfony/http-kernel": "<5.4",
4023 | "symfony/twig-bundle": "<5.4",
4024 | "symfony/yaml": "<5.4"
4025 | },
4026 | "provide": {
4027 | "symfony/translation-implementation": "2.3|3.0"
4028 | },
4029 | "require-dev": {
4030 | "nikic/php-parser": "^4.13",
4031 | "psr/log": "^1|^2|^3",
4032 | "symfony/config": "^5.4|^6.0",
4033 | "symfony/console": "^5.4|^6.0",
4034 | "symfony/dependency-injection": "^5.4|^6.0",
4035 | "symfony/finder": "^5.4|^6.0",
4036 | "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
4037 | "symfony/http-kernel": "^5.4|^6.0",
4038 | "symfony/intl": "^5.4|^6.0",
4039 | "symfony/polyfill-intl-icu": "^1.21",
4040 | "symfony/routing": "^5.4|^6.0",
4041 | "symfony/service-contracts": "^1.1.2|^2|^3",
4042 | "symfony/yaml": "^5.4|^6.0"
4043 | },
4044 | "suggest": {
4045 | "nikic/php-parser": "To use PhpAstExtractor",
4046 | "psr/log-implementation": "To use logging capability in translator",
4047 | "symfony/config": "",
4048 | "symfony/yaml": ""
4049 | },
4050 | "type": "library",
4051 | "autoload": {
4052 | "files": [
4053 | "Resources/functions.php"
4054 | ],
4055 | "psr-4": {
4056 | "Symfony\\Component\\Translation\\": ""
4057 | },
4058 | "exclude-from-classmap": [
4059 | "/Tests/"
4060 | ]
4061 | },
4062 | "notification-url": "https://packagist.org/downloads/",
4063 | "license": [
4064 | "MIT"
4065 | ],
4066 | "authors": [
4067 | {
4068 | "name": "Fabien Potencier",
4069 | "email": "fabien@symfony.com"
4070 | },
4071 | {
4072 | "name": "Symfony Community",
4073 | "homepage": "https://symfony.com/contributors"
4074 | }
4075 | ],
4076 | "description": "Provides tools to internationalize your application",
4077 | "homepage": "https://symfony.com",
4078 | "support": {
4079 | "source": "https://github.com/symfony/translation/tree/v6.2.7"
4080 | },
4081 | "funding": [
4082 | {
4083 | "url": "https://symfony.com/sponsor",
4084 | "type": "custom"
4085 | },
4086 | {
4087 | "url": "https://github.com/fabpot",
4088 | "type": "github"
4089 | },
4090 | {
4091 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4092 | "type": "tidelift"
4093 | }
4094 | ],
4095 | "time": "2023-02-24T10:42:00+00:00"
4096 | },
4097 | {
4098 | "name": "symfony/translation-contracts",
4099 | "version": "v3.2.1",
4100 | "source": {
4101 | "type": "git",
4102 | "url": "https://github.com/symfony/translation-contracts.git",
4103 | "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8"
4104 | },
4105 | "dist": {
4106 | "type": "zip",
4107 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dfec258b9dd17a6b24420d464c43bffe347441c8",
4108 | "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8",
4109 | "shasum": ""
4110 | },
4111 | "require": {
4112 | "php": ">=8.1"
4113 | },
4114 | "suggest": {
4115 | "symfony/translation-implementation": ""
4116 | },
4117 | "type": "library",
4118 | "extra": {
4119 | "branch-alias": {
4120 | "dev-main": "3.3-dev"
4121 | },
4122 | "thanks": {
4123 | "name": "symfony/contracts",
4124 | "url": "https://github.com/symfony/contracts"
4125 | }
4126 | },
4127 | "autoload": {
4128 | "psr-4": {
4129 | "Symfony\\Contracts\\Translation\\": ""
4130 | },
4131 | "exclude-from-classmap": [
4132 | "/Test/"
4133 | ]
4134 | },
4135 | "notification-url": "https://packagist.org/downloads/",
4136 | "license": [
4137 | "MIT"
4138 | ],
4139 | "authors": [
4140 | {
4141 | "name": "Nicolas Grekas",
4142 | "email": "p@tchwork.com"
4143 | },
4144 | {
4145 | "name": "Symfony Community",
4146 | "homepage": "https://symfony.com/contributors"
4147 | }
4148 | ],
4149 | "description": "Generic abstractions related to translation",
4150 | "homepage": "https://symfony.com",
4151 | "keywords": [
4152 | "abstractions",
4153 | "contracts",
4154 | "decoupling",
4155 | "interfaces",
4156 | "interoperability",
4157 | "standards"
4158 | ],
4159 | "support": {
4160 | "source": "https://github.com/symfony/translation-contracts/tree/v3.2.1"
4161 | },
4162 | "funding": [
4163 | {
4164 | "url": "https://symfony.com/sponsor",
4165 | "type": "custom"
4166 | },
4167 | {
4168 | "url": "https://github.com/fabpot",
4169 | "type": "github"
4170 | },
4171 | {
4172 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4173 | "type": "tidelift"
4174 | }
4175 | ],
4176 | "time": "2023-03-01T10:32:47+00:00"
4177 | },
4178 | {
4179 | "name": "symfony/uid",
4180 | "version": "v6.2.7",
4181 | "source": {
4182 | "type": "git",
4183 | "url": "https://github.com/symfony/uid.git",
4184 | "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0"
4185 | },
4186 | "dist": {
4187 | "type": "zip",
4188 | "url": "https://api.github.com/repos/symfony/uid/zipball/d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0",
4189 | "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0",
4190 | "shasum": ""
4191 | },
4192 | "require": {
4193 | "php": ">=8.1",
4194 | "symfony/polyfill-uuid": "^1.15"
4195 | },
4196 | "require-dev": {
4197 | "symfony/console": "^5.4|^6.0"
4198 | },
4199 | "type": "library",
4200 | "autoload": {
4201 | "psr-4": {
4202 | "Symfony\\Component\\Uid\\": ""
4203 | },
4204 | "exclude-from-classmap": [
4205 | "/Tests/"
4206 | ]
4207 | },
4208 | "notification-url": "https://packagist.org/downloads/",
4209 | "license": [
4210 | "MIT"
4211 | ],
4212 | "authors": [
4213 | {
4214 | "name": "Grégoire Pineau",
4215 | "email": "lyrixx@lyrixx.info"
4216 | },
4217 | {
4218 | "name": "Nicolas Grekas",
4219 | "email": "p@tchwork.com"
4220 | },
4221 | {
4222 | "name": "Symfony Community",
4223 | "homepage": "https://symfony.com/contributors"
4224 | }
4225 | ],
4226 | "description": "Provides an object-oriented API to generate and represent UIDs",
4227 | "homepage": "https://symfony.com",
4228 | "keywords": [
4229 | "UID",
4230 | "ulid",
4231 | "uuid"
4232 | ],
4233 | "support": {
4234 | "source": "https://github.com/symfony/uid/tree/v6.2.7"
4235 | },
4236 | "funding": [
4237 | {
4238 | "url": "https://symfony.com/sponsor",
4239 | "type": "custom"
4240 | },
4241 | {
4242 | "url": "https://github.com/fabpot",
4243 | "type": "github"
4244 | },
4245 | {
4246 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4247 | "type": "tidelift"
4248 | }
4249 | ],
4250 | "time": "2023-02-14T08:44:56+00:00"
4251 | },
4252 | {
4253 | "name": "symfony/var-dumper",
4254 | "version": "v6.2.7",
4255 | "source": {
4256 | "type": "git",
4257 | "url": "https://github.com/symfony/var-dumper.git",
4258 | "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e"
4259 | },
4260 | "dist": {
4261 | "type": "zip",
4262 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e",
4263 | "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e",
4264 | "shasum": ""
4265 | },
4266 | "require": {
4267 | "php": ">=8.1",
4268 | "symfony/polyfill-mbstring": "~1.0"
4269 | },
4270 | "conflict": {
4271 | "phpunit/phpunit": "<5.4.3",
4272 | "symfony/console": "<5.4"
4273 | },
4274 | "require-dev": {
4275 | "ext-iconv": "*",
4276 | "symfony/console": "^5.4|^6.0",
4277 | "symfony/process": "^5.4|^6.0",
4278 | "symfony/uid": "^5.4|^6.0",
4279 | "twig/twig": "^2.13|^3.0.4"
4280 | },
4281 | "suggest": {
4282 | "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
4283 | "ext-intl": "To show region name in time zone dump",
4284 | "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
4285 | },
4286 | "bin": [
4287 | "Resources/bin/var-dump-server"
4288 | ],
4289 | "type": "library",
4290 | "autoload": {
4291 | "files": [
4292 | "Resources/functions/dump.php"
4293 | ],
4294 | "psr-4": {
4295 | "Symfony\\Component\\VarDumper\\": ""
4296 | },
4297 | "exclude-from-classmap": [
4298 | "/Tests/"
4299 | ]
4300 | },
4301 | "notification-url": "https://packagist.org/downloads/",
4302 | "license": [
4303 | "MIT"
4304 | ],
4305 | "authors": [
4306 | {
4307 | "name": "Nicolas Grekas",
4308 | "email": "p@tchwork.com"
4309 | },
4310 | {
4311 | "name": "Symfony Community",
4312 | "homepage": "https://symfony.com/contributors"
4313 | }
4314 | ],
4315 | "description": "Provides mechanisms for walking through any arbitrary PHP variable",
4316 | "homepage": "https://symfony.com",
4317 | "keywords": [
4318 | "debug",
4319 | "dump"
4320 | ],
4321 | "support": {
4322 | "source": "https://github.com/symfony/var-dumper/tree/v6.2.7"
4323 | },
4324 | "funding": [
4325 | {
4326 | "url": "https://symfony.com/sponsor",
4327 | "type": "custom"
4328 | },
4329 | {
4330 | "url": "https://github.com/fabpot",
4331 | "type": "github"
4332 | },
4333 | {
4334 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
4335 | "type": "tidelift"
4336 | }
4337 | ],
4338 | "time": "2023-02-24T10:42:00+00:00"
4339 | },
4340 | {
4341 | "name": "tijsverkoyen/css-to-inline-styles",
4342 | "version": "2.2.6",
4343 | "source": {
4344 | "type": "git",
4345 | "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
4346 | "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
4347 | },
4348 | "dist": {
4349 | "type": "zip",
4350 | "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
4351 | "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
4352 | "shasum": ""
4353 | },
4354 | "require": {
4355 | "ext-dom": "*",
4356 | "ext-libxml": "*",
4357 | "php": "^5.5 || ^7.0 || ^8.0",
4358 | "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
4359 | },
4360 | "require-dev": {
4361 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
4362 | },
4363 | "type": "library",
4364 | "extra": {
4365 | "branch-alias": {
4366 | "dev-master": "2.2.x-dev"
4367 | }
4368 | },
4369 | "autoload": {
4370 | "psr-4": {
4371 | "TijsVerkoyen\\CssToInlineStyles\\": "src"
4372 | }
4373 | },
4374 | "notification-url": "https://packagist.org/downloads/",
4375 | "license": [
4376 | "BSD-3-Clause"
4377 | ],
4378 | "authors": [
4379 | {
4380 | "name": "Tijs Verkoyen",
4381 | "email": "css_to_inline_styles@verkoyen.eu",
4382 | "role": "Developer"
4383 | }
4384 | ],
4385 | "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
4386 | "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
4387 | "support": {
4388 | "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
4389 | "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
4390 | },
4391 | "time": "2023-01-03T09:29:04+00:00"
4392 | },
4393 | {
4394 | "name": "vlucas/phpdotenv",
4395 | "version": "v5.5.0",
4396 | "source": {
4397 | "type": "git",
4398 | "url": "https://github.com/vlucas/phpdotenv.git",
4399 | "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
4400 | },
4401 | "dist": {
4402 | "type": "zip",
4403 | "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
4404 | "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
4405 | "shasum": ""
4406 | },
4407 | "require": {
4408 | "ext-pcre": "*",
4409 | "graham-campbell/result-type": "^1.0.2",
4410 | "php": "^7.1.3 || ^8.0",
4411 | "phpoption/phpoption": "^1.8",
4412 | "symfony/polyfill-ctype": "^1.23",
4413 | "symfony/polyfill-mbstring": "^1.23.1",
4414 | "symfony/polyfill-php80": "^1.23.1"
4415 | },
4416 | "require-dev": {
4417 | "bamarni/composer-bin-plugin": "^1.4.1",
4418 | "ext-filter": "*",
4419 | "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
4420 | },
4421 | "suggest": {
4422 | "ext-filter": "Required to use the boolean validator."
4423 | },
4424 | "type": "library",
4425 | "extra": {
4426 | "bamarni-bin": {
4427 | "bin-links": true,
4428 | "forward-command": true
4429 | },
4430 | "branch-alias": {
4431 | "dev-master": "5.5-dev"
4432 | }
4433 | },
4434 | "autoload": {
4435 | "psr-4": {
4436 | "Dotenv\\": "src/"
4437 | }
4438 | },
4439 | "notification-url": "https://packagist.org/downloads/",
4440 | "license": [
4441 | "BSD-3-Clause"
4442 | ],
4443 | "authors": [
4444 | {
4445 | "name": "Graham Campbell",
4446 | "email": "hello@gjcampbell.co.uk",
4447 | "homepage": "https://github.com/GrahamCampbell"
4448 | },
4449 | {
4450 | "name": "Vance Lucas",
4451 | "email": "vance@vancelucas.com",
4452 | "homepage": "https://github.com/vlucas"
4453 | }
4454 | ],
4455 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
4456 | "keywords": [
4457 | "dotenv",
4458 | "env",
4459 | "environment"
4460 | ],
4461 | "support": {
4462 | "issues": "https://github.com/vlucas/phpdotenv/issues",
4463 | "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
4464 | },
4465 | "funding": [
4466 | {
4467 | "url": "https://github.com/GrahamCampbell",
4468 | "type": "github"
4469 | },
4470 | {
4471 | "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
4472 | "type": "tidelift"
4473 | }
4474 | ],
4475 | "time": "2022-10-16T01:01:54+00:00"
4476 | },
4477 | {
4478 | "name": "voku/portable-ascii",
4479 | "version": "2.0.1",
4480 | "source": {
4481 | "type": "git",
4482 | "url": "https://github.com/voku/portable-ascii.git",
4483 | "reference": "b56450eed252f6801410d810c8e1727224ae0743"
4484 | },
4485 | "dist": {
4486 | "type": "zip",
4487 | "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
4488 | "reference": "b56450eed252f6801410d810c8e1727224ae0743",
4489 | "shasum": ""
4490 | },
4491 | "require": {
4492 | "php": ">=7.0.0"
4493 | },
4494 | "require-dev": {
4495 | "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
4496 | },
4497 | "suggest": {
4498 | "ext-intl": "Use Intl for transliterator_transliterate() support"
4499 | },
4500 | "type": "library",
4501 | "autoload": {
4502 | "psr-4": {
4503 | "voku\\": "src/voku/"
4504 | }
4505 | },
4506 | "notification-url": "https://packagist.org/downloads/",
4507 | "license": [
4508 | "MIT"
4509 | ],
4510 | "authors": [
4511 | {
4512 | "name": "Lars Moelleken",
4513 | "homepage": "http://www.moelleken.org/"
4514 | }
4515 | ],
4516 | "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
4517 | "homepage": "https://github.com/voku/portable-ascii",
4518 | "keywords": [
4519 | "ascii",
4520 | "clean",
4521 | "php"
4522 | ],
4523 | "support": {
4524 | "issues": "https://github.com/voku/portable-ascii/issues",
4525 | "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
4526 | },
4527 | "funding": [
4528 | {
4529 | "url": "https://www.paypal.me/moelleken",
4530 | "type": "custom"
4531 | },
4532 | {
4533 | "url": "https://github.com/voku",
4534 | "type": "github"
4535 | },
4536 | {
4537 | "url": "https://opencollective.com/portable-ascii",
4538 | "type": "open_collective"
4539 | },
4540 | {
4541 | "url": "https://www.patreon.com/voku",
4542 | "type": "patreon"
4543 | },
4544 | {
4545 | "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
4546 | "type": "tidelift"
4547 | }
4548 | ],
4549 | "time": "2022-03-08T17:03:00+00:00"
4550 | },
4551 | {
4552 | "name": "webmozart/assert",
4553 | "version": "1.11.0",
4554 | "source": {
4555 | "type": "git",
4556 | "url": "https://github.com/webmozarts/assert.git",
4557 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
4558 | },
4559 | "dist": {
4560 | "type": "zip",
4561 | "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
4562 | "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
4563 | "shasum": ""
4564 | },
4565 | "require": {
4566 | "ext-ctype": "*",
4567 | "php": "^7.2 || ^8.0"
4568 | },
4569 | "conflict": {
4570 | "phpstan/phpstan": "<0.12.20",
4571 | "vimeo/psalm": "<4.6.1 || 4.6.2"
4572 | },
4573 | "require-dev": {
4574 | "phpunit/phpunit": "^8.5.13"
4575 | },
4576 | "type": "library",
4577 | "extra": {
4578 | "branch-alias": {
4579 | "dev-master": "1.10-dev"
4580 | }
4581 | },
4582 | "autoload": {
4583 | "psr-4": {
4584 | "Webmozart\\Assert\\": "src/"
4585 | }
4586 | },
4587 | "notification-url": "https://packagist.org/downloads/",
4588 | "license": [
4589 | "MIT"
4590 | ],
4591 | "authors": [
4592 | {
4593 | "name": "Bernhard Schussek",
4594 | "email": "bschussek@gmail.com"
4595 | }
4596 | ],
4597 | "description": "Assertions to validate method input/output with nice error messages.",
4598 | "keywords": [
4599 | "assert",
4600 | "check",
4601 | "validate"
4602 | ],
4603 | "support": {
4604 | "issues": "https://github.com/webmozarts/assert/issues",
4605 | "source": "https://github.com/webmozarts/assert/tree/1.11.0"
4606 | },
4607 | "time": "2022-06-03T18:03:27+00:00"
4608 | }
4609 | ],
4610 | "packages-dev": [],
4611 | "aliases": [],
4612 | "minimum-stability": "dev",
4613 | "stability-flags": [],
4614 | "prefer-stable": true,
4615 | "prefer-lowest": false,
4616 | "platform": {
4617 | "php": ">=7.2"
4618 | },
4619 | "platform-dev": [],
4620 | "plugin-api-version": "2.3.0"
4621 | }
4622 |
--------------------------------------------------------------------------------
/config/telegram-logger.php:
--------------------------------------------------------------------------------
1 | env('TELEGRAM_BOT_TOKEN'),
14 |
15 | /*
16 | |--------------------------------------------------------------------------
17 | | TELEGRAM CHAT ID
18 | |--------------------------------------------------------------------------
19 | |
20 | | Defines the id of your Telegram group that will receive the messages.
21 | |
22 | */
23 |
24 | 'chat_id' => env('TELEGRAM_CHAT_ID'),
25 |
26 | /*
27 | |--------------------------------------------------------------------------
28 | | TELEGRAM BASE URL
29 | |--------------------------------------------------------------------------
30 | |
31 | | Defines the base url of telegram. For countries block telegram servers,
32 | | this create a bridge for sending message to telegram. for more info see:
33 | | https://github.com/AmirrezaNasiri/telegram-web-bridge
34 | |
35 | */
36 |
37 | 'base_url' => env('TELEGRAM_BASE_URL', 'https://api.telegram.org/'),
38 | ];
39 |
--------------------------------------------------------------------------------
/src/Services/TelegramService.php:
--------------------------------------------------------------------------------
1 | telegramApiBaseUrl = $telegramApiBaseUrl . 'bot';
44 | $this->telegramApiSendMessageEndpoint = 'sendMessage';
45 | $this->telegramBotToken = $telegramBotToken;
46 | $this->telegramChatId = $telegramChatId;
47 | }
48 |
49 | public function sendMessage(string $messageText)
50 | {
51 | $telegramApiSendMessageFullUrl = $this->telegramApiBaseUrl . $this->telegramBotToken . '/' . $this->telegramApiSendMessageEndpoint;
52 | $requestQueryData = $this->prepareRequestQuery($messageText);
53 |
54 | try {
55 | $responseStatusCode = $this->getResponseStatusCode($telegramApiSendMessageFullUrl . '?' . $requestQueryData);
56 |
57 | return $this->returnResponseOfApiByStatusCode($responseStatusCode);
58 | } catch (\Exception $exception) {}
59 | }
60 |
61 | private function prepareRequestQuery(string $messageText)
62 | {
63 | return http_build_query([
64 | 'text' => $messageText,
65 | 'chat_id' => $this->telegramChatId,
66 | 'parse_mode' => 'html',
67 | ]);
68 | }
69 |
70 | private function returnResponseOfApiByStatusCode($responseStatusCode)
71 | {
72 | $responseMessages = [
73 | '200' => 'Message has been sent.',
74 | '400' => 'Chat ID is not valid.',
75 | '401' => 'Bot Token is not valid.',
76 | '404' => 'Bot Token is not valid.',
77 | ];
78 |
79 | return $responseMessages[$responseStatusCode] ?? null;
80 | }
81 |
82 | private function getResponseStatusCode(string $url): string
83 | {
84 | $requestHeaders = get_headers($url);
85 | $requestStatusCode = substr($requestHeaders[0], 9, 3);
86 | return $requestStatusCode;
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/src/TelegramLogger.php:
--------------------------------------------------------------------------------
1 | applicationName = config('app.name');
49 | $this->applicationEnvironment = config('app.env');
50 |
51 | $this->telegramService = new TelegramService(config('telegram-logger.bot_token'), config('telegram-logger.chat_id'), config('telegram-logger.base_url'));
52 | }
53 |
54 | /**
55 | * Send log text to Telegram
56 | *
57 | * @param array $record
58 | * @return void
59 | */
60 | protected function write(array $record): void
61 | {
62 | $this->telegramService->sendMessage($this->formatLogText($record));
63 | }
64 |
65 | /**
66 | * Formart log text to send
67 | *
68 | * @var array $log
69 | * @return string
70 | */
71 | protected function formatLogText(array $log): string
72 | {
73 | $logText = 'Application: ' . $this->applicationName . PHP_EOL;
74 | $logText .= 'Environment: ' . $this->applicationEnvironment . PHP_EOL;
75 | $logText .= 'Log Level: ' . $log['level_name'] . '
' . PHP_EOL;
76 |
77 | if (!empty($log['extra'])) {
78 | $logText .= 'Extra:' . PHP_EOL . '' . json_encode($log['extra']) . '
' . PHP_EOL;
79 | }
80 |
81 | if (!empty($log['context'])) {
82 | $logText .= 'Context:' . PHP_EOL . '' . json_encode($log['context']) . '
' . PHP_EOL;
83 | }
84 |
85 | $logText .= 'Message:' . PHP_EOL . '
' . $log['message'] . ''; 86 | 87 | return $logText; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /src/TelegramLoggerServiceProvider.php: -------------------------------------------------------------------------------- 1 | publishes([__DIR__ . '/../config/telegram-logger.php' => config_path('telegram-logger.php')]); 23 | } 24 | 25 | /** 26 | * Register bindings in the container. 27 | * 28 | * @return void 29 | */ 30 | public function register() 31 | { 32 | $this->mergeConfigFrom(__DIR__ . '/../config/telegram-logger.php', 'telegram-logger'); 33 | } 34 | } 35 | --------------------------------------------------------------------------------