├── .docker
├── Dockerfile
└── xdebug.ini
├── .felicio.example
├── .gitignore
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── composer.json
├── composer.lock
├── docker-compose.yml
├── phpcs.xml
├── phpunit.xml.dist
├── src
├── Contracts
│ └── FelicioContract.php
└── Felicio.php
└── tests
└── FelicioTest.php
/.docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM php:8.2
2 |
3 | LABEL maintainer="geekcom"
4 |
5 | RUN apt-get update && apt-get install -y \
6 | curl \
7 | libzip-dev \
8 | git
9 |
10 | # Build and install PHP extensions #
11 | RUN docker-php-ext-install zip
12 |
13 | # install and configure xdebug
14 | RUN pecl install xdebug-3.2.0 \
15 | && docker-php-ext-enable xdebug
16 |
17 | # install composer
18 | RUN apt-get update && \
19 | apt-get -y install curl && \
20 | curl -sS https://getcomposer.org/installer | \
21 | php -- --install-dir=/usr/bin/ --filename=composer
22 |
23 | # install PHPCS
24 | RUN cd /opt && \
25 | curl -LO https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar && \
26 | cp phpcs.phar /usr/local/bin/phpcs && \
27 | chmod +x /usr/local/bin/phpcs
28 |
29 | WORKDIR "/var/www/app"
30 |
--------------------------------------------------------------------------------
/.docker/xdebug.ini:
--------------------------------------------------------------------------------
1 | [xdebug]
2 | zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20220829/xdebug.so
3 | xdebug.mode=debug,coverage
4 | xdebug.client_host=172.17.0.1
5 | xdebug.client_port=9000
6 | xdebug.idekey=felicio
7 |
--------------------------------------------------------------------------------
/.felicio.example:
--------------------------------------------------------------------------------
1 | AWS_SQS_ACCESS_KEY=
2 | AWS_SQS_SECRET_KEY=
3 | AWS_SQS_REGION=us-east-2
4 | AWS_SQS_API_VERSION=latest
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | /vendor
3 | .felicio
4 | /tests/logs
5 | .phpunit.cache
6 | .phpcs-cache
7 | phpunit.xml
8 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ## [2.5.2]
6 |
7 | - [#16] Melhorias gerais, Thanks to [@geekcom]
8 |
9 |
10 |
11 |
12 |
13 | ## [2.5.1]
14 |
15 | - [#15] aditional tpe check, suport to scrutinizer CI, Thanks to [@geekcom]
16 | - [#14] update CHANGELOG.md, Thanks to [@geekcom]
17 | - [#13] docker support for Xdebug, Thanks to [@geekcom]
18 |
19 |
20 |
21 |
22 |
23 | ## [2.5.0]
24 |
25 | - [#12] Develop, Thanks to [@geekcom]
26 | - [#11] Develop, Thanks to [@geekcom]
27 |
28 |
29 |
30 |
31 |
32 | ## Unreleased
33 |
34 | - [#10] update CHANGELOG.md, Thanks to [@geekcom]
35 |
36 |
37 |
38 |
39 |
40 | ## Unreleased
41 |
42 | - [#9] strict_types, new tests, Thanks to [@geekcom]
43 |
44 |
45 |
46 |
47 |
48 | ## Unreleased
49 |
50 | - [#8] update CHANGELOG.md, Thanks to [@geekcom]
51 |
52 |
53 |
54 |
55 |
56 | ## Unreleased
57 |
58 | - [#7] update tests, add minor corrections, general improvements, Thanks to [@geekcom]
59 |
60 |
61 |
62 |
63 |
64 | ## Unreleased
65 |
66 | - [#6] countMessages method added, new tests, update docs, Thanks to [@geekcom]
67 | - [#5] add: deleteMessage(), Thanks to [@geekcom]
68 | - [#4] add: receiveMessage method + test, Thanks to [@geekcom]
69 | - [#1] update doc, fix dotFileConfigs, Thanks to [@geekcom]
70 | - [#3] update doc, Thanks to [@geekcom]
71 | - [#2] update sendMessage method, update tests, Thanks to [@geekcom]
72 |
73 |
74 | [#6]: https://github.com/geekcom/felicio/pull/6
75 | [#5]: https://github.com/geekcom/felicio/pull/5
76 | [#4]: https://github.com/geekcom/felicio/pull/4
77 | [#3]: https://github.com/geekcom/felicio/pull/3
78 | [#2]: https://github.com/geekcom/felicio/pull/2
79 | [#1]: https://github.com/geekcom/felicio/pull/1
80 | [@geekcom]: https://github.com/geekcom
81 | [#7]: https://github.com/geekcom/felicio/pull/7
82 | [#8]: https://github.com/geekcom/felicio/pull/8
83 | [#9]: https://github.com/geekcom/felicio/pull/9
84 | [#10]: https://github.com/geekcom/felicio/pull/10
85 | [#12]: https://github.com/geekcom/felicio/pull/12
86 | [#11]: https://github.com/geekcom/felicio/pull/11
87 | [#13]: https://github.com/geekcom/felicio/pull/13
88 | [#16]: https://github.com/geekcom/felicio/pull/16
89 | [#15]: https://github.com/geekcom/felicio/pull/15
90 | [#14]: https://github.com/geekcom/felicio/pull/14
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2019 Daniel Rodrigues Lima (geekcom)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | 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, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Felicio
2 | _A simple AWS SQS Messages with PHP_
3 |
4 | [](https://scrutinizer-ci.com/g/geekcom/felicio/?branch=master)
5 | [](https://packagist.org/packages/geekcom/felicio)
6 | [](https://php.net/)
7 | [](https://packagist.org/packages/geekcom/felicio)
8 |
9 | ### About Felicio and SQS
10 |
11 | Felicio is a simple library to manipulate [AWS SQS Messages](https://aws.amazon.com/pt/sqs/).
12 |
13 | - Simple;
14 | - Configurable;
15 | - Testable;
16 | - Open source.
17 |
18 | [Amazon Simple Queue Service (SQS)](https://aws.amazon.com/pt/sqs/) is a fully managed message queuing service
19 | that enables you to decouple and scale microservices, distributed systems, and serverless applications.
20 |
21 | ### Installation
22 |
23 | Install [Composer](http://getcomposer.org) if you don't have it.
24 | ```
25 | composer require geekcom/felicio
26 | ```
27 | Or in your file'composer.json' add:
28 |
29 | ```json
30 | {
31 | "require": {
32 | "geekcom/felicio": "^2.5.0"
33 | }
34 | }
35 | ```
36 |
37 | And the just run:
38 |
39 | composer install
40 |
41 | and thats it.
42 |
43 | ----------------------------------------------------------------------------------------------------------------------------
44 |
45 |
46 | ### Configure
47 |
48 | Rename `.felicio.example` to `.felicio` and fill in the correct information about your AWS SQS account.
49 | ```
50 | AWS_SQS_ACCESS_KEY=
51 | AWS_SQS_SECRET_KEY=
52 | AWS_SQS_REGION=
53 | AWS_SQS_API_VERSION=latest
54 | ```
55 |
56 | ### Send a message
57 | ```php
58 | require __DIR__ . '/vendor/autoload.php';
59 |
60 | use Felicio\Felicio;
61 |
62 | $felicioDotFile = __DIR__ . '/.felicio';
63 |
64 | $felicio = new Felicio($felicioDotFile);
65 |
66 | $params = [
67 | 'QueueUrl' => 'https://sqs.us-west-2.amazonaws.com/999999999/my_queue',
68 | 'MessageBody' => 'test message'
69 | ];
70 |
71 | $felicio->sendMessage($params);
72 | ```
73 |
74 | ### Receive a message
75 | ```php
76 | require __DIR__ . '/vendor/autoload.php';
77 |
78 | use Felicio\Felicio;
79 |
80 | $felicioDotFile = __DIR__ . '/.felicio';
81 |
82 | $felicio = new Felicio($felicioDotFile);
83 |
84 | $params = [
85 | 'AttributeNames' => ['SentTimestamp'],
86 | 'MaxNumberOfMessages' => 1,
87 | 'MessageAttributeNames' => ['All'],
88 | 'QueueUrl' => 'https://sqs.us-west-2.amazonaws.com/999999999/my_queue',
89 | 'WaitTimeSeconds' => 0,
90 | ];
91 |
92 | $message = $felicio->receiveMessage($params);
93 |
94 | var_dump($message);
95 | ```
96 |
97 | ### Delete a message
98 | ```php
99 | require __DIR__ . '/vendor/autoload.php';
100 |
101 | use Felicio\Felicio;
102 |
103 | $felicioDotFile = __DIR__ . '/.felicio';
104 |
105 | $felicio = new Felicio($felicioDotFile);
106 |
107 | $params = [
108 | 'QueueUrl' => 'https://sqs.us-west-2.amazonaws.com/999999999/my_queue',
109 | 'ReceiptHandle' => '', // required
110 | ];
111 |
112 | $felicio->deleteMessage($params);
113 | ```
114 |
115 | ### Count messages
116 | ```php
117 | require __DIR__ . '/vendor/autoload.php';
118 |
119 | use Felicio\Felicio;
120 |
121 | $felicioDotFile = __DIR__ . '/.felicio';
122 |
123 | $felicio = new Felicio($felicioDotFile);
124 |
125 | $queueUrl = 'https://sqs.us-west-2.amazonaws.com/999999999/my_queue';
126 |
127 | $messages = $felicio->countMessages($queueUrl);
128 |
129 | var_dump($messages);
130 | ```
131 |
132 | ### Contributing
133 |
134 | Feel free to contribute, make a fork!
135 |
136 | ### License
137 |
138 | The Felicio library is open-source software licensed under the [MIT license](https://opensource.org/licenses/MIT).
139 |
140 | ### [Questions?](https://github.com/felicio/issues)
141 |
142 | Open a new [Issue](https://github.com/felicio/issues) or look for a closed issue
143 |
144 | ### Author
145 |
146 | - Daniel Rodrigues ([@geekcom](http://github.com/geekcom))
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "geekcom/felicio",
3 | "description": "A simple lib to connect PHP with AWS SQS",
4 | "homepage": "https://github.com/geekcom/felicio",
5 | "license": "MIT",
6 | "keywords": [
7 | "sqs",
8 | "queues",
9 | "aws"
10 | ],
11 | "authors": [
12 | {
13 | "name": "Daniel Rodrigues Lima",
14 | "email": "danielrodrigues-ti@hotmail.com"
15 | }
16 | ],
17 | "require": {
18 | "php": "^7.4|^8.0",
19 | "aws/aws-sdk-php": "^3.110",
20 | "symfony/dotenv": "^4.3"
21 | },
22 | "require-dev": {
23 | "phpunit/phpunit": "^10",
24 | "squizlabs/php_codesniffer": "*"
25 | },
26 | "autoload": {
27 | "psr-4": {
28 | "Felicio\\": "src/"
29 | }
30 | },
31 | "autoload-dev": {
32 | "psr-4": {
33 | "Felicio\\Test\\": "tests/"
34 | }
35 | },
36 | "scripts": {
37 | "post-root-package-install": [
38 | "@php -r \"file_exists('.felicio') || copy('.felicio.example', '.felicio');\""
39 | ],
40 | "tests": [
41 | "vendor/bin/phpcs",
42 | "phpunit --testdox"
43 | ]
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/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": "c7010741742c365e07383ff4202f2a6c",
8 | "packages": [
9 | {
10 | "name": "aws/aws-crt-php",
11 | "version": "v1.2.1",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/awslabs/aws-crt-php.git",
15 | "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/1926277fc71d253dfa820271ac5987bdb193ccf5",
20 | "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "php": ">=5.5"
25 | },
26 | "require-dev": {
27 | "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
28 | "yoast/phpunit-polyfills": "^1.0"
29 | },
30 | "suggest": {
31 | "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
32 | },
33 | "type": "library",
34 | "autoload": {
35 | "classmap": [
36 | "src/"
37 | ]
38 | },
39 | "notification-url": "https://packagist.org/downloads/",
40 | "license": [
41 | "Apache-2.0"
42 | ],
43 | "authors": [
44 | {
45 | "name": "AWS SDK Common Runtime Team",
46 | "email": "aws-sdk-common-runtime@amazon.com"
47 | }
48 | ],
49 | "description": "AWS Common Runtime for PHP",
50 | "homepage": "https://github.com/awslabs/aws-crt-php",
51 | "keywords": [
52 | "amazon",
53 | "aws",
54 | "crt",
55 | "sdk"
56 | ],
57 | "support": {
58 | "issues": "https://github.com/awslabs/aws-crt-php/issues",
59 | "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.1"
60 | },
61 | "time": "2023-03-24T20:22:19+00:00"
62 | },
63 | {
64 | "name": "aws/aws-sdk-php",
65 | "version": "3.273.0",
66 | "source": {
67 | "type": "git",
68 | "url": "https://github.com/aws/aws-sdk-php.git",
69 | "reference": "86078abfba43fce3f71a2714bb10a6b1baec1b78"
70 | },
71 | "dist": {
72 | "type": "zip",
73 | "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/86078abfba43fce3f71a2714bb10a6b1baec1b78",
74 | "reference": "86078abfba43fce3f71a2714bb10a6b1baec1b78",
75 | "shasum": ""
76 | },
77 | "require": {
78 | "aws/aws-crt-php": "^1.0.4",
79 | "ext-json": "*",
80 | "ext-pcre": "*",
81 | "ext-simplexml": "*",
82 | "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
83 | "guzzlehttp/promises": "^1.4.0",
84 | "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
85 | "mtdowling/jmespath.php": "^2.6",
86 | "php": ">=5.5",
87 | "psr/http-message": "^1.0"
88 | },
89 | "require-dev": {
90 | "andrewsville/php-token-reflection": "^1.4",
91 | "aws/aws-php-sns-message-validator": "~1.0",
92 | "behat/behat": "~3.0",
93 | "composer/composer": "^1.10.22",
94 | "dms/phpunit-arraysubset-asserts": "^0.4.0",
95 | "doctrine/cache": "~1.4",
96 | "ext-dom": "*",
97 | "ext-openssl": "*",
98 | "ext-pcntl": "*",
99 | "ext-sockets": "*",
100 | "nette/neon": "^2.3",
101 | "paragonie/random_compat": ">= 2",
102 | "phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
103 | "psr/cache": "^1.0",
104 | "psr/simple-cache": "^1.0",
105 | "sebastian/comparator": "^1.2.3 || ^4.0",
106 | "yoast/phpunit-polyfills": "^1.0"
107 | },
108 | "suggest": {
109 | "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
110 | "doctrine/cache": "To use the DoctrineCacheAdapter",
111 | "ext-curl": "To send requests using cURL",
112 | "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
113 | "ext-sockets": "To use client-side monitoring"
114 | },
115 | "type": "library",
116 | "extra": {
117 | "branch-alias": {
118 | "dev-master": "3.0-dev"
119 | }
120 | },
121 | "autoload": {
122 | "files": [
123 | "src/functions.php"
124 | ],
125 | "psr-4": {
126 | "Aws\\": "src/"
127 | }
128 | },
129 | "notification-url": "https://packagist.org/downloads/",
130 | "license": [
131 | "Apache-2.0"
132 | ],
133 | "authors": [
134 | {
135 | "name": "Amazon Web Services",
136 | "homepage": "http://aws.amazon.com"
137 | }
138 | ],
139 | "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
140 | "homepage": "http://aws.amazon.com/sdkforphp",
141 | "keywords": [
142 | "amazon",
143 | "aws",
144 | "cloud",
145 | "dynamodb",
146 | "ec2",
147 | "glacier",
148 | "s3",
149 | "sdk"
150 | ],
151 | "support": {
152 | "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
153 | "issues": "https://github.com/aws/aws-sdk-php/issues",
154 | "source": "https://github.com/aws/aws-sdk-php/tree/3.273.0"
155 | },
156 | "time": "2023-06-13T18:22:02+00:00"
157 | },
158 | {
159 | "name": "guzzlehttp/guzzle",
160 | "version": "7.7.0",
161 | "source": {
162 | "type": "git",
163 | "url": "https://github.com/guzzle/guzzle.git",
164 | "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
165 | },
166 | "dist": {
167 | "type": "zip",
168 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
169 | "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
170 | "shasum": ""
171 | },
172 | "require": {
173 | "ext-json": "*",
174 | "guzzlehttp/promises": "^1.5.3 || ^2.0",
175 | "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
176 | "php": "^7.2.5 || ^8.0",
177 | "psr/http-client": "^1.0",
178 | "symfony/deprecation-contracts": "^2.2 || ^3.0"
179 | },
180 | "provide": {
181 | "psr/http-client-implementation": "1.0"
182 | },
183 | "require-dev": {
184 | "bamarni/composer-bin-plugin": "^1.8.1",
185 | "ext-curl": "*",
186 | "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
187 | "php-http/message-factory": "^1.1",
188 | "phpunit/phpunit": "^8.5.29 || ^9.5.23",
189 | "psr/log": "^1.1 || ^2.0 || ^3.0"
190 | },
191 | "suggest": {
192 | "ext-curl": "Required for CURL handler support",
193 | "ext-intl": "Required for Internationalized Domain Name (IDN) support",
194 | "psr/log": "Required for using the Log middleware"
195 | },
196 | "type": "library",
197 | "extra": {
198 | "bamarni-bin": {
199 | "bin-links": true,
200 | "forward-command": false
201 | }
202 | },
203 | "autoload": {
204 | "files": [
205 | "src/functions_include.php"
206 | ],
207 | "psr-4": {
208 | "GuzzleHttp\\": "src/"
209 | }
210 | },
211 | "notification-url": "https://packagist.org/downloads/",
212 | "license": [
213 | "MIT"
214 | ],
215 | "authors": [
216 | {
217 | "name": "Graham Campbell",
218 | "email": "hello@gjcampbell.co.uk",
219 | "homepage": "https://github.com/GrahamCampbell"
220 | },
221 | {
222 | "name": "Michael Dowling",
223 | "email": "mtdowling@gmail.com",
224 | "homepage": "https://github.com/mtdowling"
225 | },
226 | {
227 | "name": "Jeremy Lindblom",
228 | "email": "jeremeamia@gmail.com",
229 | "homepage": "https://github.com/jeremeamia"
230 | },
231 | {
232 | "name": "George Mponos",
233 | "email": "gmponos@gmail.com",
234 | "homepage": "https://github.com/gmponos"
235 | },
236 | {
237 | "name": "Tobias Nyholm",
238 | "email": "tobias.nyholm@gmail.com",
239 | "homepage": "https://github.com/Nyholm"
240 | },
241 | {
242 | "name": "Márk Sági-Kazár",
243 | "email": "mark.sagikazar@gmail.com",
244 | "homepage": "https://github.com/sagikazarmark"
245 | },
246 | {
247 | "name": "Tobias Schultze",
248 | "email": "webmaster@tubo-world.de",
249 | "homepage": "https://github.com/Tobion"
250 | }
251 | ],
252 | "description": "Guzzle is a PHP HTTP client library",
253 | "keywords": [
254 | "client",
255 | "curl",
256 | "framework",
257 | "http",
258 | "http client",
259 | "psr-18",
260 | "psr-7",
261 | "rest",
262 | "web service"
263 | ],
264 | "support": {
265 | "issues": "https://github.com/guzzle/guzzle/issues",
266 | "source": "https://github.com/guzzle/guzzle/tree/7.7.0"
267 | },
268 | "funding": [
269 | {
270 | "url": "https://github.com/GrahamCampbell",
271 | "type": "github"
272 | },
273 | {
274 | "url": "https://github.com/Nyholm",
275 | "type": "github"
276 | },
277 | {
278 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
279 | "type": "tidelift"
280 | }
281 | ],
282 | "time": "2023-05-21T14:04:53+00:00"
283 | },
284 | {
285 | "name": "guzzlehttp/promises",
286 | "version": "1.5.3",
287 | "source": {
288 | "type": "git",
289 | "url": "https://github.com/guzzle/promises.git",
290 | "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
291 | },
292 | "dist": {
293 | "type": "zip",
294 | "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
295 | "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
296 | "shasum": ""
297 | },
298 | "require": {
299 | "php": ">=5.5"
300 | },
301 | "require-dev": {
302 | "symfony/phpunit-bridge": "^4.4 || ^5.1"
303 | },
304 | "type": "library",
305 | "autoload": {
306 | "files": [
307 | "src/functions_include.php"
308 | ],
309 | "psr-4": {
310 | "GuzzleHttp\\Promise\\": "src/"
311 | }
312 | },
313 | "notification-url": "https://packagist.org/downloads/",
314 | "license": [
315 | "MIT"
316 | ],
317 | "authors": [
318 | {
319 | "name": "Graham Campbell",
320 | "email": "hello@gjcampbell.co.uk",
321 | "homepage": "https://github.com/GrahamCampbell"
322 | },
323 | {
324 | "name": "Michael Dowling",
325 | "email": "mtdowling@gmail.com",
326 | "homepage": "https://github.com/mtdowling"
327 | },
328 | {
329 | "name": "Tobias Nyholm",
330 | "email": "tobias.nyholm@gmail.com",
331 | "homepage": "https://github.com/Nyholm"
332 | },
333 | {
334 | "name": "Tobias Schultze",
335 | "email": "webmaster@tubo-world.de",
336 | "homepage": "https://github.com/Tobion"
337 | }
338 | ],
339 | "description": "Guzzle promises library",
340 | "keywords": [
341 | "promise"
342 | ],
343 | "support": {
344 | "issues": "https://github.com/guzzle/promises/issues",
345 | "source": "https://github.com/guzzle/promises/tree/1.5.3"
346 | },
347 | "funding": [
348 | {
349 | "url": "https://github.com/GrahamCampbell",
350 | "type": "github"
351 | },
352 | {
353 | "url": "https://github.com/Nyholm",
354 | "type": "github"
355 | },
356 | {
357 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
358 | "type": "tidelift"
359 | }
360 | ],
361 | "time": "2023-05-21T12:31:43+00:00"
362 | },
363 | {
364 | "name": "guzzlehttp/psr7",
365 | "version": "2.5.0",
366 | "source": {
367 | "type": "git",
368 | "url": "https://github.com/guzzle/psr7.git",
369 | "reference": "b635f279edd83fc275f822a1188157ffea568ff6"
370 | },
371 | "dist": {
372 | "type": "zip",
373 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6",
374 | "reference": "b635f279edd83fc275f822a1188157ffea568ff6",
375 | "shasum": ""
376 | },
377 | "require": {
378 | "php": "^7.2.5 || ^8.0",
379 | "psr/http-factory": "^1.0",
380 | "psr/http-message": "^1.1 || ^2.0",
381 | "ralouphie/getallheaders": "^3.0"
382 | },
383 | "provide": {
384 | "psr/http-factory-implementation": "1.0",
385 | "psr/http-message-implementation": "1.0"
386 | },
387 | "require-dev": {
388 | "bamarni/composer-bin-plugin": "^1.8.1",
389 | "http-interop/http-factory-tests": "^0.9",
390 | "phpunit/phpunit": "^8.5.29 || ^9.5.23"
391 | },
392 | "suggest": {
393 | "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
394 | },
395 | "type": "library",
396 | "extra": {
397 | "bamarni-bin": {
398 | "bin-links": true,
399 | "forward-command": false
400 | }
401 | },
402 | "autoload": {
403 | "psr-4": {
404 | "GuzzleHttp\\Psr7\\": "src/"
405 | }
406 | },
407 | "notification-url": "https://packagist.org/downloads/",
408 | "license": [
409 | "MIT"
410 | ],
411 | "authors": [
412 | {
413 | "name": "Graham Campbell",
414 | "email": "hello@gjcampbell.co.uk",
415 | "homepage": "https://github.com/GrahamCampbell"
416 | },
417 | {
418 | "name": "Michael Dowling",
419 | "email": "mtdowling@gmail.com",
420 | "homepage": "https://github.com/mtdowling"
421 | },
422 | {
423 | "name": "George Mponos",
424 | "email": "gmponos@gmail.com",
425 | "homepage": "https://github.com/gmponos"
426 | },
427 | {
428 | "name": "Tobias Nyholm",
429 | "email": "tobias.nyholm@gmail.com",
430 | "homepage": "https://github.com/Nyholm"
431 | },
432 | {
433 | "name": "Márk Sági-Kazár",
434 | "email": "mark.sagikazar@gmail.com",
435 | "homepage": "https://github.com/sagikazarmark"
436 | },
437 | {
438 | "name": "Tobias Schultze",
439 | "email": "webmaster@tubo-world.de",
440 | "homepage": "https://github.com/Tobion"
441 | },
442 | {
443 | "name": "Márk Sági-Kazár",
444 | "email": "mark.sagikazar@gmail.com",
445 | "homepage": "https://sagikazarmark.hu"
446 | }
447 | ],
448 | "description": "PSR-7 message implementation that also provides common utility methods",
449 | "keywords": [
450 | "http",
451 | "message",
452 | "psr-7",
453 | "request",
454 | "response",
455 | "stream",
456 | "uri",
457 | "url"
458 | ],
459 | "support": {
460 | "issues": "https://github.com/guzzle/psr7/issues",
461 | "source": "https://github.com/guzzle/psr7/tree/2.5.0"
462 | },
463 | "funding": [
464 | {
465 | "url": "https://github.com/GrahamCampbell",
466 | "type": "github"
467 | },
468 | {
469 | "url": "https://github.com/Nyholm",
470 | "type": "github"
471 | },
472 | {
473 | "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
474 | "type": "tidelift"
475 | }
476 | ],
477 | "time": "2023-04-17T16:11:26+00:00"
478 | },
479 | {
480 | "name": "mtdowling/jmespath.php",
481 | "version": "2.6.1",
482 | "source": {
483 | "type": "git",
484 | "url": "https://github.com/jmespath/jmespath.php.git",
485 | "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb"
486 | },
487 | "dist": {
488 | "type": "zip",
489 | "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
490 | "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
491 | "shasum": ""
492 | },
493 | "require": {
494 | "php": "^5.4 || ^7.0 || ^8.0",
495 | "symfony/polyfill-mbstring": "^1.17"
496 | },
497 | "require-dev": {
498 | "composer/xdebug-handler": "^1.4 || ^2.0",
499 | "phpunit/phpunit": "^4.8.36 || ^7.5.15"
500 | },
501 | "bin": [
502 | "bin/jp.php"
503 | ],
504 | "type": "library",
505 | "extra": {
506 | "branch-alias": {
507 | "dev-master": "2.6-dev"
508 | }
509 | },
510 | "autoload": {
511 | "files": [
512 | "src/JmesPath.php"
513 | ],
514 | "psr-4": {
515 | "JmesPath\\": "src/"
516 | }
517 | },
518 | "notification-url": "https://packagist.org/downloads/",
519 | "license": [
520 | "MIT"
521 | ],
522 | "authors": [
523 | {
524 | "name": "Michael Dowling",
525 | "email": "mtdowling@gmail.com",
526 | "homepage": "https://github.com/mtdowling"
527 | }
528 | ],
529 | "description": "Declaratively specify how to extract elements from a JSON document",
530 | "keywords": [
531 | "json",
532 | "jsonpath"
533 | ],
534 | "support": {
535 | "issues": "https://github.com/jmespath/jmespath.php/issues",
536 | "source": "https://github.com/jmespath/jmespath.php/tree/2.6.1"
537 | },
538 | "time": "2021-06-14T00:11:39+00:00"
539 | },
540 | {
541 | "name": "psr/http-client",
542 | "version": "1.0.2",
543 | "source": {
544 | "type": "git",
545 | "url": "https://github.com/php-fig/http-client.git",
546 | "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
547 | },
548 | "dist": {
549 | "type": "zip",
550 | "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
551 | "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
552 | "shasum": ""
553 | },
554 | "require": {
555 | "php": "^7.0 || ^8.0",
556 | "psr/http-message": "^1.0 || ^2.0"
557 | },
558 | "type": "library",
559 | "extra": {
560 | "branch-alias": {
561 | "dev-master": "1.0.x-dev"
562 | }
563 | },
564 | "autoload": {
565 | "psr-4": {
566 | "Psr\\Http\\Client\\": "src/"
567 | }
568 | },
569 | "notification-url": "https://packagist.org/downloads/",
570 | "license": [
571 | "MIT"
572 | ],
573 | "authors": [
574 | {
575 | "name": "PHP-FIG",
576 | "homepage": "https://www.php-fig.org/"
577 | }
578 | ],
579 | "description": "Common interface for HTTP clients",
580 | "homepage": "https://github.com/php-fig/http-client",
581 | "keywords": [
582 | "http",
583 | "http-client",
584 | "psr",
585 | "psr-18"
586 | ],
587 | "support": {
588 | "source": "https://github.com/php-fig/http-client/tree/1.0.2"
589 | },
590 | "time": "2023-04-10T20:12:12+00:00"
591 | },
592 | {
593 | "name": "psr/http-factory",
594 | "version": "1.0.2",
595 | "source": {
596 | "type": "git",
597 | "url": "https://github.com/php-fig/http-factory.git",
598 | "reference": "e616d01114759c4c489f93b099585439f795fe35"
599 | },
600 | "dist": {
601 | "type": "zip",
602 | "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
603 | "reference": "e616d01114759c4c489f93b099585439f795fe35",
604 | "shasum": ""
605 | },
606 | "require": {
607 | "php": ">=7.0.0",
608 | "psr/http-message": "^1.0 || ^2.0"
609 | },
610 | "type": "library",
611 | "extra": {
612 | "branch-alias": {
613 | "dev-master": "1.0.x-dev"
614 | }
615 | },
616 | "autoload": {
617 | "psr-4": {
618 | "Psr\\Http\\Message\\": "src/"
619 | }
620 | },
621 | "notification-url": "https://packagist.org/downloads/",
622 | "license": [
623 | "MIT"
624 | ],
625 | "authors": [
626 | {
627 | "name": "PHP-FIG",
628 | "homepage": "https://www.php-fig.org/"
629 | }
630 | ],
631 | "description": "Common interfaces for PSR-7 HTTP message factories",
632 | "keywords": [
633 | "factory",
634 | "http",
635 | "message",
636 | "psr",
637 | "psr-17",
638 | "psr-7",
639 | "request",
640 | "response"
641 | ],
642 | "support": {
643 | "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
644 | },
645 | "time": "2023-04-10T20:10:41+00:00"
646 | },
647 | {
648 | "name": "psr/http-message",
649 | "version": "1.1",
650 | "source": {
651 | "type": "git",
652 | "url": "https://github.com/php-fig/http-message.git",
653 | "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
654 | },
655 | "dist": {
656 | "type": "zip",
657 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
658 | "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
659 | "shasum": ""
660 | },
661 | "require": {
662 | "php": "^7.2 || ^8.0"
663 | },
664 | "type": "library",
665 | "extra": {
666 | "branch-alias": {
667 | "dev-master": "1.1.x-dev"
668 | }
669 | },
670 | "autoload": {
671 | "psr-4": {
672 | "Psr\\Http\\Message\\": "src/"
673 | }
674 | },
675 | "notification-url": "https://packagist.org/downloads/",
676 | "license": [
677 | "MIT"
678 | ],
679 | "authors": [
680 | {
681 | "name": "PHP-FIG",
682 | "homepage": "http://www.php-fig.org/"
683 | }
684 | ],
685 | "description": "Common interface for HTTP messages",
686 | "homepage": "https://github.com/php-fig/http-message",
687 | "keywords": [
688 | "http",
689 | "http-message",
690 | "psr",
691 | "psr-7",
692 | "request",
693 | "response"
694 | ],
695 | "support": {
696 | "source": "https://github.com/php-fig/http-message/tree/1.1"
697 | },
698 | "time": "2023-04-04T09:50:52+00:00"
699 | },
700 | {
701 | "name": "ralouphie/getallheaders",
702 | "version": "3.0.3",
703 | "source": {
704 | "type": "git",
705 | "url": "https://github.com/ralouphie/getallheaders.git",
706 | "reference": "120b605dfeb996808c31b6477290a714d356e822"
707 | },
708 | "dist": {
709 | "type": "zip",
710 | "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
711 | "reference": "120b605dfeb996808c31b6477290a714d356e822",
712 | "shasum": ""
713 | },
714 | "require": {
715 | "php": ">=5.6"
716 | },
717 | "require-dev": {
718 | "php-coveralls/php-coveralls": "^2.1",
719 | "phpunit/phpunit": "^5 || ^6.5"
720 | },
721 | "type": "library",
722 | "autoload": {
723 | "files": [
724 | "src/getallheaders.php"
725 | ]
726 | },
727 | "notification-url": "https://packagist.org/downloads/",
728 | "license": [
729 | "MIT"
730 | ],
731 | "authors": [
732 | {
733 | "name": "Ralph Khattar",
734 | "email": "ralph.khattar@gmail.com"
735 | }
736 | ],
737 | "description": "A polyfill for getallheaders.",
738 | "support": {
739 | "issues": "https://github.com/ralouphie/getallheaders/issues",
740 | "source": "https://github.com/ralouphie/getallheaders/tree/develop"
741 | },
742 | "time": "2019-03-08T08:55:37+00:00"
743 | },
744 | {
745 | "name": "symfony/deprecation-contracts",
746 | "version": "v3.3.0",
747 | "source": {
748 | "type": "git",
749 | "url": "https://github.com/symfony/deprecation-contracts.git",
750 | "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
751 | },
752 | "dist": {
753 | "type": "zip",
754 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
755 | "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
756 | "shasum": ""
757 | },
758 | "require": {
759 | "php": ">=8.1"
760 | },
761 | "type": "library",
762 | "extra": {
763 | "branch-alias": {
764 | "dev-main": "3.4-dev"
765 | },
766 | "thanks": {
767 | "name": "symfony/contracts",
768 | "url": "https://github.com/symfony/contracts"
769 | }
770 | },
771 | "autoload": {
772 | "files": [
773 | "function.php"
774 | ]
775 | },
776 | "notification-url": "https://packagist.org/downloads/",
777 | "license": [
778 | "MIT"
779 | ],
780 | "authors": [
781 | {
782 | "name": "Nicolas Grekas",
783 | "email": "p@tchwork.com"
784 | },
785 | {
786 | "name": "Symfony Community",
787 | "homepage": "https://symfony.com/contributors"
788 | }
789 | ],
790 | "description": "A generic function and convention to trigger deprecation notices",
791 | "homepage": "https://symfony.com",
792 | "support": {
793 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
794 | },
795 | "funding": [
796 | {
797 | "url": "https://symfony.com/sponsor",
798 | "type": "custom"
799 | },
800 | {
801 | "url": "https://github.com/fabpot",
802 | "type": "github"
803 | },
804 | {
805 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
806 | "type": "tidelift"
807 | }
808 | ],
809 | "time": "2023-05-23T14:45:45+00:00"
810 | },
811 | {
812 | "name": "symfony/dotenv",
813 | "version": "v4.4.37",
814 | "source": {
815 | "type": "git",
816 | "url": "https://github.com/symfony/dotenv.git",
817 | "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf"
818 | },
819 | "dist": {
820 | "type": "zip",
821 | "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
822 | "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
823 | "shasum": ""
824 | },
825 | "require": {
826 | "php": ">=7.1.3"
827 | },
828 | "require-dev": {
829 | "symfony/process": "^3.4.2|^4.0|^5.0"
830 | },
831 | "type": "library",
832 | "autoload": {
833 | "psr-4": {
834 | "Symfony\\Component\\Dotenv\\": ""
835 | },
836 | "exclude-from-classmap": [
837 | "/Tests/"
838 | ]
839 | },
840 | "notification-url": "https://packagist.org/downloads/",
841 | "license": [
842 | "MIT"
843 | ],
844 | "authors": [
845 | {
846 | "name": "Fabien Potencier",
847 | "email": "fabien@symfony.com"
848 | },
849 | {
850 | "name": "Symfony Community",
851 | "homepage": "https://symfony.com/contributors"
852 | }
853 | ],
854 | "description": "Registers environment variables from a .env file",
855 | "homepage": "https://symfony.com",
856 | "keywords": [
857 | "dotenv",
858 | "env",
859 | "environment"
860 | ],
861 | "support": {
862 | "source": "https://github.com/symfony/dotenv/tree/v4.4.37"
863 | },
864 | "funding": [
865 | {
866 | "url": "https://symfony.com/sponsor",
867 | "type": "custom"
868 | },
869 | {
870 | "url": "https://github.com/fabpot",
871 | "type": "github"
872 | },
873 | {
874 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
875 | "type": "tidelift"
876 | }
877 | ],
878 | "time": "2022-01-02T09:41:36+00:00"
879 | },
880 | {
881 | "name": "symfony/polyfill-mbstring",
882 | "version": "v1.27.0",
883 | "source": {
884 | "type": "git",
885 | "url": "https://github.com/symfony/polyfill-mbstring.git",
886 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
887 | },
888 | "dist": {
889 | "type": "zip",
890 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
891 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
892 | "shasum": ""
893 | },
894 | "require": {
895 | "php": ">=7.1"
896 | },
897 | "provide": {
898 | "ext-mbstring": "*"
899 | },
900 | "suggest": {
901 | "ext-mbstring": "For best performance"
902 | },
903 | "type": "library",
904 | "extra": {
905 | "branch-alias": {
906 | "dev-main": "1.27-dev"
907 | },
908 | "thanks": {
909 | "name": "symfony/polyfill",
910 | "url": "https://github.com/symfony/polyfill"
911 | }
912 | },
913 | "autoload": {
914 | "files": [
915 | "bootstrap.php"
916 | ],
917 | "psr-4": {
918 | "Symfony\\Polyfill\\Mbstring\\": ""
919 | }
920 | },
921 | "notification-url": "https://packagist.org/downloads/",
922 | "license": [
923 | "MIT"
924 | ],
925 | "authors": [
926 | {
927 | "name": "Nicolas Grekas",
928 | "email": "p@tchwork.com"
929 | },
930 | {
931 | "name": "Symfony Community",
932 | "homepage": "https://symfony.com/contributors"
933 | }
934 | ],
935 | "description": "Symfony polyfill for the Mbstring extension",
936 | "homepage": "https://symfony.com",
937 | "keywords": [
938 | "compatibility",
939 | "mbstring",
940 | "polyfill",
941 | "portable",
942 | "shim"
943 | ],
944 | "support": {
945 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
946 | },
947 | "funding": [
948 | {
949 | "url": "https://symfony.com/sponsor",
950 | "type": "custom"
951 | },
952 | {
953 | "url": "https://github.com/fabpot",
954 | "type": "github"
955 | },
956 | {
957 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
958 | "type": "tidelift"
959 | }
960 | ],
961 | "time": "2022-11-03T14:55:06+00:00"
962 | }
963 | ],
964 | "packages-dev": [
965 | {
966 | "name": "myclabs/deep-copy",
967 | "version": "1.11.1",
968 | "source": {
969 | "type": "git",
970 | "url": "https://github.com/myclabs/DeepCopy.git",
971 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
972 | },
973 | "dist": {
974 | "type": "zip",
975 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
976 | "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
977 | "shasum": ""
978 | },
979 | "require": {
980 | "php": "^7.1 || ^8.0"
981 | },
982 | "conflict": {
983 | "doctrine/collections": "<1.6.8",
984 | "doctrine/common": "<2.13.3 || >=3,<3.2.2"
985 | },
986 | "require-dev": {
987 | "doctrine/collections": "^1.6.8",
988 | "doctrine/common": "^2.13.3 || ^3.2.2",
989 | "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
990 | },
991 | "type": "library",
992 | "autoload": {
993 | "files": [
994 | "src/DeepCopy/deep_copy.php"
995 | ],
996 | "psr-4": {
997 | "DeepCopy\\": "src/DeepCopy/"
998 | }
999 | },
1000 | "notification-url": "https://packagist.org/downloads/",
1001 | "license": [
1002 | "MIT"
1003 | ],
1004 | "description": "Create deep copies (clones) of your objects",
1005 | "keywords": [
1006 | "clone",
1007 | "copy",
1008 | "duplicate",
1009 | "object",
1010 | "object graph"
1011 | ],
1012 | "support": {
1013 | "issues": "https://github.com/myclabs/DeepCopy/issues",
1014 | "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
1015 | },
1016 | "funding": [
1017 | {
1018 | "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
1019 | "type": "tidelift"
1020 | }
1021 | ],
1022 | "time": "2023-03-08T13:26:56+00:00"
1023 | },
1024 | {
1025 | "name": "nikic/php-parser",
1026 | "version": "v4.15.5",
1027 | "source": {
1028 | "type": "git",
1029 | "url": "https://github.com/nikic/PHP-Parser.git",
1030 | "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e"
1031 | },
1032 | "dist": {
1033 | "type": "zip",
1034 | "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e",
1035 | "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e",
1036 | "shasum": ""
1037 | },
1038 | "require": {
1039 | "ext-tokenizer": "*",
1040 | "php": ">=7.0"
1041 | },
1042 | "require-dev": {
1043 | "ircmaxell/php-yacc": "^0.0.7",
1044 | "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
1045 | },
1046 | "bin": [
1047 | "bin/php-parse"
1048 | ],
1049 | "type": "library",
1050 | "extra": {
1051 | "branch-alias": {
1052 | "dev-master": "4.9-dev"
1053 | }
1054 | },
1055 | "autoload": {
1056 | "psr-4": {
1057 | "PhpParser\\": "lib/PhpParser"
1058 | }
1059 | },
1060 | "notification-url": "https://packagist.org/downloads/",
1061 | "license": [
1062 | "BSD-3-Clause"
1063 | ],
1064 | "authors": [
1065 | {
1066 | "name": "Nikita Popov"
1067 | }
1068 | ],
1069 | "description": "A PHP parser written in PHP",
1070 | "keywords": [
1071 | "parser",
1072 | "php"
1073 | ],
1074 | "support": {
1075 | "issues": "https://github.com/nikic/PHP-Parser/issues",
1076 | "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5"
1077 | },
1078 | "time": "2023-05-19T20:20:00+00:00"
1079 | },
1080 | {
1081 | "name": "phar-io/manifest",
1082 | "version": "2.0.3",
1083 | "source": {
1084 | "type": "git",
1085 | "url": "https://github.com/phar-io/manifest.git",
1086 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
1087 | },
1088 | "dist": {
1089 | "type": "zip",
1090 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
1091 | "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
1092 | "shasum": ""
1093 | },
1094 | "require": {
1095 | "ext-dom": "*",
1096 | "ext-phar": "*",
1097 | "ext-xmlwriter": "*",
1098 | "phar-io/version": "^3.0.1",
1099 | "php": "^7.2 || ^8.0"
1100 | },
1101 | "type": "library",
1102 | "extra": {
1103 | "branch-alias": {
1104 | "dev-master": "2.0.x-dev"
1105 | }
1106 | },
1107 | "autoload": {
1108 | "classmap": [
1109 | "src/"
1110 | ]
1111 | },
1112 | "notification-url": "https://packagist.org/downloads/",
1113 | "license": [
1114 | "BSD-3-Clause"
1115 | ],
1116 | "authors": [
1117 | {
1118 | "name": "Arne Blankerts",
1119 | "email": "arne@blankerts.de",
1120 | "role": "Developer"
1121 | },
1122 | {
1123 | "name": "Sebastian Heuer",
1124 | "email": "sebastian@phpeople.de",
1125 | "role": "Developer"
1126 | },
1127 | {
1128 | "name": "Sebastian Bergmann",
1129 | "email": "sebastian@phpunit.de",
1130 | "role": "Developer"
1131 | }
1132 | ],
1133 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
1134 | "support": {
1135 | "issues": "https://github.com/phar-io/manifest/issues",
1136 | "source": "https://github.com/phar-io/manifest/tree/2.0.3"
1137 | },
1138 | "time": "2021-07-20T11:28:43+00:00"
1139 | },
1140 | {
1141 | "name": "phar-io/version",
1142 | "version": "3.2.1",
1143 | "source": {
1144 | "type": "git",
1145 | "url": "https://github.com/phar-io/version.git",
1146 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
1147 | },
1148 | "dist": {
1149 | "type": "zip",
1150 | "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1151 | "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
1152 | "shasum": ""
1153 | },
1154 | "require": {
1155 | "php": "^7.2 || ^8.0"
1156 | },
1157 | "type": "library",
1158 | "autoload": {
1159 | "classmap": [
1160 | "src/"
1161 | ]
1162 | },
1163 | "notification-url": "https://packagist.org/downloads/",
1164 | "license": [
1165 | "BSD-3-Clause"
1166 | ],
1167 | "authors": [
1168 | {
1169 | "name": "Arne Blankerts",
1170 | "email": "arne@blankerts.de",
1171 | "role": "Developer"
1172 | },
1173 | {
1174 | "name": "Sebastian Heuer",
1175 | "email": "sebastian@phpeople.de",
1176 | "role": "Developer"
1177 | },
1178 | {
1179 | "name": "Sebastian Bergmann",
1180 | "email": "sebastian@phpunit.de",
1181 | "role": "Developer"
1182 | }
1183 | ],
1184 | "description": "Library for handling version information and constraints",
1185 | "support": {
1186 | "issues": "https://github.com/phar-io/version/issues",
1187 | "source": "https://github.com/phar-io/version/tree/3.2.1"
1188 | },
1189 | "time": "2022-02-21T01:04:05+00:00"
1190 | },
1191 | {
1192 | "name": "phpunit/php-code-coverage",
1193 | "version": "10.1.2",
1194 | "source": {
1195 | "type": "git",
1196 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1197 | "reference": "db1497ec8dd382e82c962f7abbe0320e4882ee4e"
1198 | },
1199 | "dist": {
1200 | "type": "zip",
1201 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/db1497ec8dd382e82c962f7abbe0320e4882ee4e",
1202 | "reference": "db1497ec8dd382e82c962f7abbe0320e4882ee4e",
1203 | "shasum": ""
1204 | },
1205 | "require": {
1206 | "ext-dom": "*",
1207 | "ext-libxml": "*",
1208 | "ext-xmlwriter": "*",
1209 | "nikic/php-parser": "^4.15",
1210 | "php": ">=8.1",
1211 | "phpunit/php-file-iterator": "^4.0",
1212 | "phpunit/php-text-template": "^3.0",
1213 | "sebastian/code-unit-reverse-lookup": "^3.0",
1214 | "sebastian/complexity": "^3.0",
1215 | "sebastian/environment": "^6.0",
1216 | "sebastian/lines-of-code": "^2.0",
1217 | "sebastian/version": "^4.0",
1218 | "theseer/tokenizer": "^1.2.0"
1219 | },
1220 | "require-dev": {
1221 | "phpunit/phpunit": "^10.1"
1222 | },
1223 | "suggest": {
1224 | "ext-pcov": "PHP extension that provides line coverage",
1225 | "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
1226 | },
1227 | "type": "library",
1228 | "extra": {
1229 | "branch-alias": {
1230 | "dev-main": "10.1-dev"
1231 | }
1232 | },
1233 | "autoload": {
1234 | "classmap": [
1235 | "src/"
1236 | ]
1237 | },
1238 | "notification-url": "https://packagist.org/downloads/",
1239 | "license": [
1240 | "BSD-3-Clause"
1241 | ],
1242 | "authors": [
1243 | {
1244 | "name": "Sebastian Bergmann",
1245 | "email": "sebastian@phpunit.de",
1246 | "role": "lead"
1247 | }
1248 | ],
1249 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1250 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1251 | "keywords": [
1252 | "coverage",
1253 | "testing",
1254 | "xunit"
1255 | ],
1256 | "support": {
1257 | "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
1258 | "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
1259 | "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.2"
1260 | },
1261 | "funding": [
1262 | {
1263 | "url": "https://github.com/sebastianbergmann",
1264 | "type": "github"
1265 | }
1266 | ],
1267 | "time": "2023-05-22T09:04:27+00:00"
1268 | },
1269 | {
1270 | "name": "phpunit/php-file-iterator",
1271 | "version": "4.0.2",
1272 | "source": {
1273 | "type": "git",
1274 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1275 | "reference": "5647d65443818959172645e7ed999217360654b6"
1276 | },
1277 | "dist": {
1278 | "type": "zip",
1279 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/5647d65443818959172645e7ed999217360654b6",
1280 | "reference": "5647d65443818959172645e7ed999217360654b6",
1281 | "shasum": ""
1282 | },
1283 | "require": {
1284 | "php": ">=8.1"
1285 | },
1286 | "require-dev": {
1287 | "phpunit/phpunit": "^10.0"
1288 | },
1289 | "type": "library",
1290 | "extra": {
1291 | "branch-alias": {
1292 | "dev-main": "4.0-dev"
1293 | }
1294 | },
1295 | "autoload": {
1296 | "classmap": [
1297 | "src/"
1298 | ]
1299 | },
1300 | "notification-url": "https://packagist.org/downloads/",
1301 | "license": [
1302 | "BSD-3-Clause"
1303 | ],
1304 | "authors": [
1305 | {
1306 | "name": "Sebastian Bergmann",
1307 | "email": "sebastian@phpunit.de",
1308 | "role": "lead"
1309 | }
1310 | ],
1311 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1312 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1313 | "keywords": [
1314 | "filesystem",
1315 | "iterator"
1316 | ],
1317 | "support": {
1318 | "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
1319 | "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
1320 | "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.0.2"
1321 | },
1322 | "funding": [
1323 | {
1324 | "url": "https://github.com/sebastianbergmann",
1325 | "type": "github"
1326 | }
1327 | ],
1328 | "time": "2023-05-07T09:13:23+00:00"
1329 | },
1330 | {
1331 | "name": "phpunit/php-invoker",
1332 | "version": "4.0.0",
1333 | "source": {
1334 | "type": "git",
1335 | "url": "https://github.com/sebastianbergmann/php-invoker.git",
1336 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
1337 | },
1338 | "dist": {
1339 | "type": "zip",
1340 | "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
1341 | "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
1342 | "shasum": ""
1343 | },
1344 | "require": {
1345 | "php": ">=8.1"
1346 | },
1347 | "require-dev": {
1348 | "ext-pcntl": "*",
1349 | "phpunit/phpunit": "^10.0"
1350 | },
1351 | "suggest": {
1352 | "ext-pcntl": "*"
1353 | },
1354 | "type": "library",
1355 | "extra": {
1356 | "branch-alias": {
1357 | "dev-main": "4.0-dev"
1358 | }
1359 | },
1360 | "autoload": {
1361 | "classmap": [
1362 | "src/"
1363 | ]
1364 | },
1365 | "notification-url": "https://packagist.org/downloads/",
1366 | "license": [
1367 | "BSD-3-Clause"
1368 | ],
1369 | "authors": [
1370 | {
1371 | "name": "Sebastian Bergmann",
1372 | "email": "sebastian@phpunit.de",
1373 | "role": "lead"
1374 | }
1375 | ],
1376 | "description": "Invoke callables with a timeout",
1377 | "homepage": "https://github.com/sebastianbergmann/php-invoker/",
1378 | "keywords": [
1379 | "process"
1380 | ],
1381 | "support": {
1382 | "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
1383 | "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
1384 | },
1385 | "funding": [
1386 | {
1387 | "url": "https://github.com/sebastianbergmann",
1388 | "type": "github"
1389 | }
1390 | ],
1391 | "time": "2023-02-03T06:56:09+00:00"
1392 | },
1393 | {
1394 | "name": "phpunit/php-text-template",
1395 | "version": "3.0.0",
1396 | "source": {
1397 | "type": "git",
1398 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
1399 | "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d"
1400 | },
1401 | "dist": {
1402 | "type": "zip",
1403 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
1404 | "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
1405 | "shasum": ""
1406 | },
1407 | "require": {
1408 | "php": ">=8.1"
1409 | },
1410 | "require-dev": {
1411 | "phpunit/phpunit": "^10.0"
1412 | },
1413 | "type": "library",
1414 | "extra": {
1415 | "branch-alias": {
1416 | "dev-main": "3.0-dev"
1417 | }
1418 | },
1419 | "autoload": {
1420 | "classmap": [
1421 | "src/"
1422 | ]
1423 | },
1424 | "notification-url": "https://packagist.org/downloads/",
1425 | "license": [
1426 | "BSD-3-Clause"
1427 | ],
1428 | "authors": [
1429 | {
1430 | "name": "Sebastian Bergmann",
1431 | "email": "sebastian@phpunit.de",
1432 | "role": "lead"
1433 | }
1434 | ],
1435 | "description": "Simple template engine.",
1436 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1437 | "keywords": [
1438 | "template"
1439 | ],
1440 | "support": {
1441 | "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
1442 | "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.0"
1443 | },
1444 | "funding": [
1445 | {
1446 | "url": "https://github.com/sebastianbergmann",
1447 | "type": "github"
1448 | }
1449 | ],
1450 | "time": "2023-02-03T06:56:46+00:00"
1451 | },
1452 | {
1453 | "name": "phpunit/php-timer",
1454 | "version": "6.0.0",
1455 | "source": {
1456 | "type": "git",
1457 | "url": "https://github.com/sebastianbergmann/php-timer.git",
1458 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
1459 | },
1460 | "dist": {
1461 | "type": "zip",
1462 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
1463 | "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
1464 | "shasum": ""
1465 | },
1466 | "require": {
1467 | "php": ">=8.1"
1468 | },
1469 | "require-dev": {
1470 | "phpunit/phpunit": "^10.0"
1471 | },
1472 | "type": "library",
1473 | "extra": {
1474 | "branch-alias": {
1475 | "dev-main": "6.0-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 | ],
1487 | "authors": [
1488 | {
1489 | "name": "Sebastian Bergmann",
1490 | "email": "sebastian@phpunit.de",
1491 | "role": "lead"
1492 | }
1493 | ],
1494 | "description": "Utility class for timing",
1495 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
1496 | "keywords": [
1497 | "timer"
1498 | ],
1499 | "support": {
1500 | "issues": "https://github.com/sebastianbergmann/php-timer/issues",
1501 | "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
1502 | },
1503 | "funding": [
1504 | {
1505 | "url": "https://github.com/sebastianbergmann",
1506 | "type": "github"
1507 | }
1508 | ],
1509 | "time": "2023-02-03T06:57:52+00:00"
1510 | },
1511 | {
1512 | "name": "phpunit/phpunit",
1513 | "version": "10.2.2",
1514 | "source": {
1515 | "type": "git",
1516 | "url": "https://github.com/sebastianbergmann/phpunit.git",
1517 | "reference": "1ab521b24b88b88310c40c26c0cc4a94ba40ff95"
1518 | },
1519 | "dist": {
1520 | "type": "zip",
1521 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1ab521b24b88b88310c40c26c0cc4a94ba40ff95",
1522 | "reference": "1ab521b24b88b88310c40c26c0cc4a94ba40ff95",
1523 | "shasum": ""
1524 | },
1525 | "require": {
1526 | "ext-dom": "*",
1527 | "ext-json": "*",
1528 | "ext-libxml": "*",
1529 | "ext-mbstring": "*",
1530 | "ext-xml": "*",
1531 | "ext-xmlwriter": "*",
1532 | "myclabs/deep-copy": "^1.10.1",
1533 | "phar-io/manifest": "^2.0.3",
1534 | "phar-io/version": "^3.0.2",
1535 | "php": ">=8.1",
1536 | "phpunit/php-code-coverage": "^10.1.1",
1537 | "phpunit/php-file-iterator": "^4.0",
1538 | "phpunit/php-invoker": "^4.0",
1539 | "phpunit/php-text-template": "^3.0",
1540 | "phpunit/php-timer": "^6.0",
1541 | "sebastian/cli-parser": "^2.0",
1542 | "sebastian/code-unit": "^2.0",
1543 | "sebastian/comparator": "^5.0",
1544 | "sebastian/diff": "^5.0",
1545 | "sebastian/environment": "^6.0",
1546 | "sebastian/exporter": "^5.0",
1547 | "sebastian/global-state": "^6.0",
1548 | "sebastian/object-enumerator": "^5.0",
1549 | "sebastian/recursion-context": "^5.0",
1550 | "sebastian/type": "^4.0",
1551 | "sebastian/version": "^4.0"
1552 | },
1553 | "suggest": {
1554 | "ext-soap": "To be able to generate mocks based on WSDL files"
1555 | },
1556 | "bin": [
1557 | "phpunit"
1558 | ],
1559 | "type": "library",
1560 | "extra": {
1561 | "branch-alias": {
1562 | "dev-main": "10.2-dev"
1563 | }
1564 | },
1565 | "autoload": {
1566 | "files": [
1567 | "src/Framework/Assert/Functions.php"
1568 | ],
1569 | "classmap": [
1570 | "src/"
1571 | ]
1572 | },
1573 | "notification-url": "https://packagist.org/downloads/",
1574 | "license": [
1575 | "BSD-3-Clause"
1576 | ],
1577 | "authors": [
1578 | {
1579 | "name": "Sebastian Bergmann",
1580 | "email": "sebastian@phpunit.de",
1581 | "role": "lead"
1582 | }
1583 | ],
1584 | "description": "The PHP Unit Testing framework.",
1585 | "homepage": "https://phpunit.de/",
1586 | "keywords": [
1587 | "phpunit",
1588 | "testing",
1589 | "xunit"
1590 | ],
1591 | "support": {
1592 | "issues": "https://github.com/sebastianbergmann/phpunit/issues",
1593 | "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
1594 | "source": "https://github.com/sebastianbergmann/phpunit/tree/10.2.2"
1595 | },
1596 | "funding": [
1597 | {
1598 | "url": "https://phpunit.de/sponsors.html",
1599 | "type": "custom"
1600 | },
1601 | {
1602 | "url": "https://github.com/sebastianbergmann",
1603 | "type": "github"
1604 | },
1605 | {
1606 | "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
1607 | "type": "tidelift"
1608 | }
1609 | ],
1610 | "time": "2023-06-11T06:15:20+00:00"
1611 | },
1612 | {
1613 | "name": "sebastian/cli-parser",
1614 | "version": "2.0.0",
1615 | "source": {
1616 | "type": "git",
1617 | "url": "https://github.com/sebastianbergmann/cli-parser.git",
1618 | "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
1619 | },
1620 | "dist": {
1621 | "type": "zip",
1622 | "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
1623 | "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
1624 | "shasum": ""
1625 | },
1626 | "require": {
1627 | "php": ">=8.1"
1628 | },
1629 | "require-dev": {
1630 | "phpunit/phpunit": "^10.0"
1631 | },
1632 | "type": "library",
1633 | "extra": {
1634 | "branch-alias": {
1635 | "dev-main": "2.0-dev"
1636 | }
1637 | },
1638 | "autoload": {
1639 | "classmap": [
1640 | "src/"
1641 | ]
1642 | },
1643 | "notification-url": "https://packagist.org/downloads/",
1644 | "license": [
1645 | "BSD-3-Clause"
1646 | ],
1647 | "authors": [
1648 | {
1649 | "name": "Sebastian Bergmann",
1650 | "email": "sebastian@phpunit.de",
1651 | "role": "lead"
1652 | }
1653 | ],
1654 | "description": "Library for parsing CLI options",
1655 | "homepage": "https://github.com/sebastianbergmann/cli-parser",
1656 | "support": {
1657 | "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
1658 | "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
1659 | },
1660 | "funding": [
1661 | {
1662 | "url": "https://github.com/sebastianbergmann",
1663 | "type": "github"
1664 | }
1665 | ],
1666 | "time": "2023-02-03T06:58:15+00:00"
1667 | },
1668 | {
1669 | "name": "sebastian/code-unit",
1670 | "version": "2.0.0",
1671 | "source": {
1672 | "type": "git",
1673 | "url": "https://github.com/sebastianbergmann/code-unit.git",
1674 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
1675 | },
1676 | "dist": {
1677 | "type": "zip",
1678 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
1679 | "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
1680 | "shasum": ""
1681 | },
1682 | "require": {
1683 | "php": ">=8.1"
1684 | },
1685 | "require-dev": {
1686 | "phpunit/phpunit": "^10.0"
1687 | },
1688 | "type": "library",
1689 | "extra": {
1690 | "branch-alias": {
1691 | "dev-main": "2.0-dev"
1692 | }
1693 | },
1694 | "autoload": {
1695 | "classmap": [
1696 | "src/"
1697 | ]
1698 | },
1699 | "notification-url": "https://packagist.org/downloads/",
1700 | "license": [
1701 | "BSD-3-Clause"
1702 | ],
1703 | "authors": [
1704 | {
1705 | "name": "Sebastian Bergmann",
1706 | "email": "sebastian@phpunit.de",
1707 | "role": "lead"
1708 | }
1709 | ],
1710 | "description": "Collection of value objects that represent the PHP code units",
1711 | "homepage": "https://github.com/sebastianbergmann/code-unit",
1712 | "support": {
1713 | "issues": "https://github.com/sebastianbergmann/code-unit/issues",
1714 | "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
1715 | },
1716 | "funding": [
1717 | {
1718 | "url": "https://github.com/sebastianbergmann",
1719 | "type": "github"
1720 | }
1721 | ],
1722 | "time": "2023-02-03T06:58:43+00:00"
1723 | },
1724 | {
1725 | "name": "sebastian/code-unit-reverse-lookup",
1726 | "version": "3.0.0",
1727 | "source": {
1728 | "type": "git",
1729 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1730 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
1731 | },
1732 | "dist": {
1733 | "type": "zip",
1734 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
1735 | "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
1736 | "shasum": ""
1737 | },
1738 | "require": {
1739 | "php": ">=8.1"
1740 | },
1741 | "require-dev": {
1742 | "phpunit/phpunit": "^10.0"
1743 | },
1744 | "type": "library",
1745 | "extra": {
1746 | "branch-alias": {
1747 | "dev-main": "3.0-dev"
1748 | }
1749 | },
1750 | "autoload": {
1751 | "classmap": [
1752 | "src/"
1753 | ]
1754 | },
1755 | "notification-url": "https://packagist.org/downloads/",
1756 | "license": [
1757 | "BSD-3-Clause"
1758 | ],
1759 | "authors": [
1760 | {
1761 | "name": "Sebastian Bergmann",
1762 | "email": "sebastian@phpunit.de"
1763 | }
1764 | ],
1765 | "description": "Looks up which function or method a line of code belongs to",
1766 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1767 | "support": {
1768 | "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
1769 | "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
1770 | },
1771 | "funding": [
1772 | {
1773 | "url": "https://github.com/sebastianbergmann",
1774 | "type": "github"
1775 | }
1776 | ],
1777 | "time": "2023-02-03T06:59:15+00:00"
1778 | },
1779 | {
1780 | "name": "sebastian/comparator",
1781 | "version": "5.0.0",
1782 | "source": {
1783 | "type": "git",
1784 | "url": "https://github.com/sebastianbergmann/comparator.git",
1785 | "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c"
1786 | },
1787 | "dist": {
1788 | "type": "zip",
1789 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/72f01e6586e0caf6af81297897bd112eb7e9627c",
1790 | "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c",
1791 | "shasum": ""
1792 | },
1793 | "require": {
1794 | "ext-dom": "*",
1795 | "ext-mbstring": "*",
1796 | "php": ">=8.1",
1797 | "sebastian/diff": "^5.0",
1798 | "sebastian/exporter": "^5.0"
1799 | },
1800 | "require-dev": {
1801 | "phpunit/phpunit": "^10.0"
1802 | },
1803 | "type": "library",
1804 | "extra": {
1805 | "branch-alias": {
1806 | "dev-main": "5.0-dev"
1807 | }
1808 | },
1809 | "autoload": {
1810 | "classmap": [
1811 | "src/"
1812 | ]
1813 | },
1814 | "notification-url": "https://packagist.org/downloads/",
1815 | "license": [
1816 | "BSD-3-Clause"
1817 | ],
1818 | "authors": [
1819 | {
1820 | "name": "Sebastian Bergmann",
1821 | "email": "sebastian@phpunit.de"
1822 | },
1823 | {
1824 | "name": "Jeff Welch",
1825 | "email": "whatthejeff@gmail.com"
1826 | },
1827 | {
1828 | "name": "Volker Dusch",
1829 | "email": "github@wallbash.com"
1830 | },
1831 | {
1832 | "name": "Bernhard Schussek",
1833 | "email": "bschussek@2bepublished.at"
1834 | }
1835 | ],
1836 | "description": "Provides the functionality to compare PHP values for equality",
1837 | "homepage": "https://github.com/sebastianbergmann/comparator",
1838 | "keywords": [
1839 | "comparator",
1840 | "compare",
1841 | "equality"
1842 | ],
1843 | "support": {
1844 | "issues": "https://github.com/sebastianbergmann/comparator/issues",
1845 | "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.0"
1846 | },
1847 | "funding": [
1848 | {
1849 | "url": "https://github.com/sebastianbergmann",
1850 | "type": "github"
1851 | }
1852 | ],
1853 | "time": "2023-02-03T07:07:16+00:00"
1854 | },
1855 | {
1856 | "name": "sebastian/complexity",
1857 | "version": "3.0.0",
1858 | "source": {
1859 | "type": "git",
1860 | "url": "https://github.com/sebastianbergmann/complexity.git",
1861 | "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6"
1862 | },
1863 | "dist": {
1864 | "type": "zip",
1865 | "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
1866 | "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
1867 | "shasum": ""
1868 | },
1869 | "require": {
1870 | "nikic/php-parser": "^4.10",
1871 | "php": ">=8.1"
1872 | },
1873 | "require-dev": {
1874 | "phpunit/phpunit": "^10.0"
1875 | },
1876 | "type": "library",
1877 | "extra": {
1878 | "branch-alias": {
1879 | "dev-main": "3.0-dev"
1880 | }
1881 | },
1882 | "autoload": {
1883 | "classmap": [
1884 | "src/"
1885 | ]
1886 | },
1887 | "notification-url": "https://packagist.org/downloads/",
1888 | "license": [
1889 | "BSD-3-Clause"
1890 | ],
1891 | "authors": [
1892 | {
1893 | "name": "Sebastian Bergmann",
1894 | "email": "sebastian@phpunit.de",
1895 | "role": "lead"
1896 | }
1897 | ],
1898 | "description": "Library for calculating the complexity of PHP code units",
1899 | "homepage": "https://github.com/sebastianbergmann/complexity",
1900 | "support": {
1901 | "issues": "https://github.com/sebastianbergmann/complexity/issues",
1902 | "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.0"
1903 | },
1904 | "funding": [
1905 | {
1906 | "url": "https://github.com/sebastianbergmann",
1907 | "type": "github"
1908 | }
1909 | ],
1910 | "time": "2023-02-03T06:59:47+00:00"
1911 | },
1912 | {
1913 | "name": "sebastian/diff",
1914 | "version": "5.0.3",
1915 | "source": {
1916 | "type": "git",
1917 | "url": "https://github.com/sebastianbergmann/diff.git",
1918 | "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b"
1919 | },
1920 | "dist": {
1921 | "type": "zip",
1922 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
1923 | "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
1924 | "shasum": ""
1925 | },
1926 | "require": {
1927 | "php": ">=8.1"
1928 | },
1929 | "require-dev": {
1930 | "phpunit/phpunit": "^10.0",
1931 | "symfony/process": "^4.2 || ^5"
1932 | },
1933 | "type": "library",
1934 | "extra": {
1935 | "branch-alias": {
1936 | "dev-main": "5.0-dev"
1937 | }
1938 | },
1939 | "autoload": {
1940 | "classmap": [
1941 | "src/"
1942 | ]
1943 | },
1944 | "notification-url": "https://packagist.org/downloads/",
1945 | "license": [
1946 | "BSD-3-Clause"
1947 | ],
1948 | "authors": [
1949 | {
1950 | "name": "Sebastian Bergmann",
1951 | "email": "sebastian@phpunit.de"
1952 | },
1953 | {
1954 | "name": "Kore Nordmann",
1955 | "email": "mail@kore-nordmann.de"
1956 | }
1957 | ],
1958 | "description": "Diff implementation",
1959 | "homepage": "https://github.com/sebastianbergmann/diff",
1960 | "keywords": [
1961 | "diff",
1962 | "udiff",
1963 | "unidiff",
1964 | "unified diff"
1965 | ],
1966 | "support": {
1967 | "issues": "https://github.com/sebastianbergmann/diff/issues",
1968 | "security": "https://github.com/sebastianbergmann/diff/security/policy",
1969 | "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3"
1970 | },
1971 | "funding": [
1972 | {
1973 | "url": "https://github.com/sebastianbergmann",
1974 | "type": "github"
1975 | }
1976 | ],
1977 | "time": "2023-05-01T07:48:21+00:00"
1978 | },
1979 | {
1980 | "name": "sebastian/environment",
1981 | "version": "6.0.1",
1982 | "source": {
1983 | "type": "git",
1984 | "url": "https://github.com/sebastianbergmann/environment.git",
1985 | "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
1986 | },
1987 | "dist": {
1988 | "type": "zip",
1989 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
1990 | "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
1991 | "shasum": ""
1992 | },
1993 | "require": {
1994 | "php": ">=8.1"
1995 | },
1996 | "require-dev": {
1997 | "phpunit/phpunit": "^10.0"
1998 | },
1999 | "suggest": {
2000 | "ext-posix": "*"
2001 | },
2002 | "type": "library",
2003 | "extra": {
2004 | "branch-alias": {
2005 | "dev-main": "6.0-dev"
2006 | }
2007 | },
2008 | "autoload": {
2009 | "classmap": [
2010 | "src/"
2011 | ]
2012 | },
2013 | "notification-url": "https://packagist.org/downloads/",
2014 | "license": [
2015 | "BSD-3-Clause"
2016 | ],
2017 | "authors": [
2018 | {
2019 | "name": "Sebastian Bergmann",
2020 | "email": "sebastian@phpunit.de"
2021 | }
2022 | ],
2023 | "description": "Provides functionality to handle HHVM/PHP environments",
2024 | "homepage": "https://github.com/sebastianbergmann/environment",
2025 | "keywords": [
2026 | "Xdebug",
2027 | "environment",
2028 | "hhvm"
2029 | ],
2030 | "support": {
2031 | "issues": "https://github.com/sebastianbergmann/environment/issues",
2032 | "security": "https://github.com/sebastianbergmann/environment/security/policy",
2033 | "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
2034 | },
2035 | "funding": [
2036 | {
2037 | "url": "https://github.com/sebastianbergmann",
2038 | "type": "github"
2039 | }
2040 | ],
2041 | "time": "2023-04-11T05:39:26+00:00"
2042 | },
2043 | {
2044 | "name": "sebastian/exporter",
2045 | "version": "5.0.0",
2046 | "source": {
2047 | "type": "git",
2048 | "url": "https://github.com/sebastianbergmann/exporter.git",
2049 | "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0"
2050 | },
2051 | "dist": {
2052 | "type": "zip",
2053 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
2054 | "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
2055 | "shasum": ""
2056 | },
2057 | "require": {
2058 | "ext-mbstring": "*",
2059 | "php": ">=8.1",
2060 | "sebastian/recursion-context": "^5.0"
2061 | },
2062 | "require-dev": {
2063 | "phpunit/phpunit": "^10.0"
2064 | },
2065 | "type": "library",
2066 | "extra": {
2067 | "branch-alias": {
2068 | "dev-main": "5.0-dev"
2069 | }
2070 | },
2071 | "autoload": {
2072 | "classmap": [
2073 | "src/"
2074 | ]
2075 | },
2076 | "notification-url": "https://packagist.org/downloads/",
2077 | "license": [
2078 | "BSD-3-Clause"
2079 | ],
2080 | "authors": [
2081 | {
2082 | "name": "Sebastian Bergmann",
2083 | "email": "sebastian@phpunit.de"
2084 | },
2085 | {
2086 | "name": "Jeff Welch",
2087 | "email": "whatthejeff@gmail.com"
2088 | },
2089 | {
2090 | "name": "Volker Dusch",
2091 | "email": "github@wallbash.com"
2092 | },
2093 | {
2094 | "name": "Adam Harvey",
2095 | "email": "aharvey@php.net"
2096 | },
2097 | {
2098 | "name": "Bernhard Schussek",
2099 | "email": "bschussek@gmail.com"
2100 | }
2101 | ],
2102 | "description": "Provides the functionality to export PHP variables for visualization",
2103 | "homepage": "https://www.github.com/sebastianbergmann/exporter",
2104 | "keywords": [
2105 | "export",
2106 | "exporter"
2107 | ],
2108 | "support": {
2109 | "issues": "https://github.com/sebastianbergmann/exporter/issues",
2110 | "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0"
2111 | },
2112 | "funding": [
2113 | {
2114 | "url": "https://github.com/sebastianbergmann",
2115 | "type": "github"
2116 | }
2117 | ],
2118 | "time": "2023-02-03T07:06:49+00:00"
2119 | },
2120 | {
2121 | "name": "sebastian/global-state",
2122 | "version": "6.0.0",
2123 | "source": {
2124 | "type": "git",
2125 | "url": "https://github.com/sebastianbergmann/global-state.git",
2126 | "reference": "aab257c712de87b90194febd52e4d184551c2d44"
2127 | },
2128 | "dist": {
2129 | "type": "zip",
2130 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/aab257c712de87b90194febd52e4d184551c2d44",
2131 | "reference": "aab257c712de87b90194febd52e4d184551c2d44",
2132 | "shasum": ""
2133 | },
2134 | "require": {
2135 | "php": ">=8.1",
2136 | "sebastian/object-reflector": "^3.0",
2137 | "sebastian/recursion-context": "^5.0"
2138 | },
2139 | "require-dev": {
2140 | "ext-dom": "*",
2141 | "phpunit/phpunit": "^10.0"
2142 | },
2143 | "type": "library",
2144 | "extra": {
2145 | "branch-alias": {
2146 | "dev-main": "6.0-dev"
2147 | }
2148 | },
2149 | "autoload": {
2150 | "classmap": [
2151 | "src/"
2152 | ]
2153 | },
2154 | "notification-url": "https://packagist.org/downloads/",
2155 | "license": [
2156 | "BSD-3-Clause"
2157 | ],
2158 | "authors": [
2159 | {
2160 | "name": "Sebastian Bergmann",
2161 | "email": "sebastian@phpunit.de"
2162 | }
2163 | ],
2164 | "description": "Snapshotting of global state",
2165 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
2166 | "keywords": [
2167 | "global state"
2168 | ],
2169 | "support": {
2170 | "issues": "https://github.com/sebastianbergmann/global-state/issues",
2171 | "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.0"
2172 | },
2173 | "funding": [
2174 | {
2175 | "url": "https://github.com/sebastianbergmann",
2176 | "type": "github"
2177 | }
2178 | ],
2179 | "time": "2023-02-03T07:07:38+00:00"
2180 | },
2181 | {
2182 | "name": "sebastian/lines-of-code",
2183 | "version": "2.0.0",
2184 | "source": {
2185 | "type": "git",
2186 | "url": "https://github.com/sebastianbergmann/lines-of-code.git",
2187 | "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130"
2188 | },
2189 | "dist": {
2190 | "type": "zip",
2191 | "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/17c4d940ecafb3d15d2cf916f4108f664e28b130",
2192 | "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130",
2193 | "shasum": ""
2194 | },
2195 | "require": {
2196 | "nikic/php-parser": "^4.10",
2197 | "php": ">=8.1"
2198 | },
2199 | "require-dev": {
2200 | "phpunit/phpunit": "^10.0"
2201 | },
2202 | "type": "library",
2203 | "extra": {
2204 | "branch-alias": {
2205 | "dev-main": "2.0-dev"
2206 | }
2207 | },
2208 | "autoload": {
2209 | "classmap": [
2210 | "src/"
2211 | ]
2212 | },
2213 | "notification-url": "https://packagist.org/downloads/",
2214 | "license": [
2215 | "BSD-3-Clause"
2216 | ],
2217 | "authors": [
2218 | {
2219 | "name": "Sebastian Bergmann",
2220 | "email": "sebastian@phpunit.de",
2221 | "role": "lead"
2222 | }
2223 | ],
2224 | "description": "Library for counting the lines of code in PHP source code",
2225 | "homepage": "https://github.com/sebastianbergmann/lines-of-code",
2226 | "support": {
2227 | "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
2228 | "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.0"
2229 | },
2230 | "funding": [
2231 | {
2232 | "url": "https://github.com/sebastianbergmann",
2233 | "type": "github"
2234 | }
2235 | ],
2236 | "time": "2023-02-03T07:08:02+00:00"
2237 | },
2238 | {
2239 | "name": "sebastian/object-enumerator",
2240 | "version": "5.0.0",
2241 | "source": {
2242 | "type": "git",
2243 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
2244 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
2245 | },
2246 | "dist": {
2247 | "type": "zip",
2248 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
2249 | "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
2250 | "shasum": ""
2251 | },
2252 | "require": {
2253 | "php": ">=8.1",
2254 | "sebastian/object-reflector": "^3.0",
2255 | "sebastian/recursion-context": "^5.0"
2256 | },
2257 | "require-dev": {
2258 | "phpunit/phpunit": "^10.0"
2259 | },
2260 | "type": "library",
2261 | "extra": {
2262 | "branch-alias": {
2263 | "dev-main": "5.0-dev"
2264 | }
2265 | },
2266 | "autoload": {
2267 | "classmap": [
2268 | "src/"
2269 | ]
2270 | },
2271 | "notification-url": "https://packagist.org/downloads/",
2272 | "license": [
2273 | "BSD-3-Clause"
2274 | ],
2275 | "authors": [
2276 | {
2277 | "name": "Sebastian Bergmann",
2278 | "email": "sebastian@phpunit.de"
2279 | }
2280 | ],
2281 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
2282 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
2283 | "support": {
2284 | "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
2285 | "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
2286 | },
2287 | "funding": [
2288 | {
2289 | "url": "https://github.com/sebastianbergmann",
2290 | "type": "github"
2291 | }
2292 | ],
2293 | "time": "2023-02-03T07:08:32+00:00"
2294 | },
2295 | {
2296 | "name": "sebastian/object-reflector",
2297 | "version": "3.0.0",
2298 | "source": {
2299 | "type": "git",
2300 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
2301 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
2302 | },
2303 | "dist": {
2304 | "type": "zip",
2305 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
2306 | "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
2307 | "shasum": ""
2308 | },
2309 | "require": {
2310 | "php": ">=8.1"
2311 | },
2312 | "require-dev": {
2313 | "phpunit/phpunit": "^10.0"
2314 | },
2315 | "type": "library",
2316 | "extra": {
2317 | "branch-alias": {
2318 | "dev-main": "3.0-dev"
2319 | }
2320 | },
2321 | "autoload": {
2322 | "classmap": [
2323 | "src/"
2324 | ]
2325 | },
2326 | "notification-url": "https://packagist.org/downloads/",
2327 | "license": [
2328 | "BSD-3-Clause"
2329 | ],
2330 | "authors": [
2331 | {
2332 | "name": "Sebastian Bergmann",
2333 | "email": "sebastian@phpunit.de"
2334 | }
2335 | ],
2336 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
2337 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
2338 | "support": {
2339 | "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
2340 | "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
2341 | },
2342 | "funding": [
2343 | {
2344 | "url": "https://github.com/sebastianbergmann",
2345 | "type": "github"
2346 | }
2347 | ],
2348 | "time": "2023-02-03T07:06:18+00:00"
2349 | },
2350 | {
2351 | "name": "sebastian/recursion-context",
2352 | "version": "5.0.0",
2353 | "source": {
2354 | "type": "git",
2355 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
2356 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
2357 | },
2358 | "dist": {
2359 | "type": "zip",
2360 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
2361 | "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
2362 | "shasum": ""
2363 | },
2364 | "require": {
2365 | "php": ">=8.1"
2366 | },
2367 | "require-dev": {
2368 | "phpunit/phpunit": "^10.0"
2369 | },
2370 | "type": "library",
2371 | "extra": {
2372 | "branch-alias": {
2373 | "dev-main": "5.0-dev"
2374 | }
2375 | },
2376 | "autoload": {
2377 | "classmap": [
2378 | "src/"
2379 | ]
2380 | },
2381 | "notification-url": "https://packagist.org/downloads/",
2382 | "license": [
2383 | "BSD-3-Clause"
2384 | ],
2385 | "authors": [
2386 | {
2387 | "name": "Sebastian Bergmann",
2388 | "email": "sebastian@phpunit.de"
2389 | },
2390 | {
2391 | "name": "Jeff Welch",
2392 | "email": "whatthejeff@gmail.com"
2393 | },
2394 | {
2395 | "name": "Adam Harvey",
2396 | "email": "aharvey@php.net"
2397 | }
2398 | ],
2399 | "description": "Provides functionality to recursively process PHP variables",
2400 | "homepage": "https://github.com/sebastianbergmann/recursion-context",
2401 | "support": {
2402 | "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
2403 | "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
2404 | },
2405 | "funding": [
2406 | {
2407 | "url": "https://github.com/sebastianbergmann",
2408 | "type": "github"
2409 | }
2410 | ],
2411 | "time": "2023-02-03T07:05:40+00:00"
2412 | },
2413 | {
2414 | "name": "sebastian/type",
2415 | "version": "4.0.0",
2416 | "source": {
2417 | "type": "git",
2418 | "url": "https://github.com/sebastianbergmann/type.git",
2419 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
2420 | },
2421 | "dist": {
2422 | "type": "zip",
2423 | "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
2424 | "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
2425 | "shasum": ""
2426 | },
2427 | "require": {
2428 | "php": ">=8.1"
2429 | },
2430 | "require-dev": {
2431 | "phpunit/phpunit": "^10.0"
2432 | },
2433 | "type": "library",
2434 | "extra": {
2435 | "branch-alias": {
2436 | "dev-main": "4.0-dev"
2437 | }
2438 | },
2439 | "autoload": {
2440 | "classmap": [
2441 | "src/"
2442 | ]
2443 | },
2444 | "notification-url": "https://packagist.org/downloads/",
2445 | "license": [
2446 | "BSD-3-Clause"
2447 | ],
2448 | "authors": [
2449 | {
2450 | "name": "Sebastian Bergmann",
2451 | "email": "sebastian@phpunit.de",
2452 | "role": "lead"
2453 | }
2454 | ],
2455 | "description": "Collection of value objects that represent the types of the PHP type system",
2456 | "homepage": "https://github.com/sebastianbergmann/type",
2457 | "support": {
2458 | "issues": "https://github.com/sebastianbergmann/type/issues",
2459 | "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
2460 | },
2461 | "funding": [
2462 | {
2463 | "url": "https://github.com/sebastianbergmann",
2464 | "type": "github"
2465 | }
2466 | ],
2467 | "time": "2023-02-03T07:10:45+00:00"
2468 | },
2469 | {
2470 | "name": "sebastian/version",
2471 | "version": "4.0.1",
2472 | "source": {
2473 | "type": "git",
2474 | "url": "https://github.com/sebastianbergmann/version.git",
2475 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
2476 | },
2477 | "dist": {
2478 | "type": "zip",
2479 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
2480 | "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
2481 | "shasum": ""
2482 | },
2483 | "require": {
2484 | "php": ">=8.1"
2485 | },
2486 | "type": "library",
2487 | "extra": {
2488 | "branch-alias": {
2489 | "dev-main": "4.0-dev"
2490 | }
2491 | },
2492 | "autoload": {
2493 | "classmap": [
2494 | "src/"
2495 | ]
2496 | },
2497 | "notification-url": "https://packagist.org/downloads/",
2498 | "license": [
2499 | "BSD-3-Clause"
2500 | ],
2501 | "authors": [
2502 | {
2503 | "name": "Sebastian Bergmann",
2504 | "email": "sebastian@phpunit.de",
2505 | "role": "lead"
2506 | }
2507 | ],
2508 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2509 | "homepage": "https://github.com/sebastianbergmann/version",
2510 | "support": {
2511 | "issues": "https://github.com/sebastianbergmann/version/issues",
2512 | "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
2513 | },
2514 | "funding": [
2515 | {
2516 | "url": "https://github.com/sebastianbergmann",
2517 | "type": "github"
2518 | }
2519 | ],
2520 | "time": "2023-02-07T11:34:05+00:00"
2521 | },
2522 | {
2523 | "name": "squizlabs/php_codesniffer",
2524 | "version": "3.7.2",
2525 | "source": {
2526 | "type": "git",
2527 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2528 | "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879"
2529 | },
2530 | "dist": {
2531 | "type": "zip",
2532 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879",
2533 | "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879",
2534 | "shasum": ""
2535 | },
2536 | "require": {
2537 | "ext-simplexml": "*",
2538 | "ext-tokenizer": "*",
2539 | "ext-xmlwriter": "*",
2540 | "php": ">=5.4.0"
2541 | },
2542 | "require-dev": {
2543 | "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
2544 | },
2545 | "bin": [
2546 | "bin/phpcs",
2547 | "bin/phpcbf"
2548 | ],
2549 | "type": "library",
2550 | "extra": {
2551 | "branch-alias": {
2552 | "dev-master": "3.x-dev"
2553 | }
2554 | },
2555 | "notification-url": "https://packagist.org/downloads/",
2556 | "license": [
2557 | "BSD-3-Clause"
2558 | ],
2559 | "authors": [
2560 | {
2561 | "name": "Greg Sherwood",
2562 | "role": "lead"
2563 | }
2564 | ],
2565 | "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
2566 | "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
2567 | "keywords": [
2568 | "phpcs",
2569 | "standards",
2570 | "static analysis"
2571 | ],
2572 | "support": {
2573 | "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
2574 | "source": "https://github.com/squizlabs/PHP_CodeSniffer",
2575 | "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
2576 | },
2577 | "time": "2023-02-22T23:07:41+00:00"
2578 | },
2579 | {
2580 | "name": "theseer/tokenizer",
2581 | "version": "1.2.1",
2582 | "source": {
2583 | "type": "git",
2584 | "url": "https://github.com/theseer/tokenizer.git",
2585 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
2586 | },
2587 | "dist": {
2588 | "type": "zip",
2589 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
2590 | "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
2591 | "shasum": ""
2592 | },
2593 | "require": {
2594 | "ext-dom": "*",
2595 | "ext-tokenizer": "*",
2596 | "ext-xmlwriter": "*",
2597 | "php": "^7.2 || ^8.0"
2598 | },
2599 | "type": "library",
2600 | "autoload": {
2601 | "classmap": [
2602 | "src/"
2603 | ]
2604 | },
2605 | "notification-url": "https://packagist.org/downloads/",
2606 | "license": [
2607 | "BSD-3-Clause"
2608 | ],
2609 | "authors": [
2610 | {
2611 | "name": "Arne Blankerts",
2612 | "email": "arne@blankerts.de",
2613 | "role": "Developer"
2614 | }
2615 | ],
2616 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
2617 | "support": {
2618 | "issues": "https://github.com/theseer/tokenizer/issues",
2619 | "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
2620 | },
2621 | "funding": [
2622 | {
2623 | "url": "https://github.com/theseer",
2624 | "type": "github"
2625 | }
2626 | ],
2627 | "time": "2021-07-28T10:34:58+00:00"
2628 | }
2629 | ],
2630 | "aliases": [],
2631 | "minimum-stability": "stable",
2632 | "stability-flags": [],
2633 | "prefer-stable": false,
2634 | "prefer-lowest": false,
2635 | "platform": {
2636 | "php": ">=8.2"
2637 | },
2638 | "platform-dev": [],
2639 | "plugin-api-version": "2.3.0"
2640 | }
2641 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | app:
4 | build: .docker
5 | container_name: felicio
6 | volumes:
7 | - .:/var/www/app
8 | - ".docker/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"
9 | tty: true
10 |
--------------------------------------------------------------------------------
/phpcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | ^/tests/*
12 |
13 | src
14 |
15 |
16 |
--------------------------------------------------------------------------------
/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | ./tests/
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | ./src/
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Contracts/FelicioContract.php:
--------------------------------------------------------------------------------
1 | load($felicioDotFile);
23 |
24 | $credentials = new Credentials(
25 | $_ENV['AWS_SQS_ACCESS_KEY'],
26 | $_ENV['AWS_SQS_SECRET_KEY']
27 | );
28 |
29 | $configs = [
30 | 'credentials' => $credentials,
31 | 'region' => $_ENV['AWS_SQS_REGION'],
32 | 'version' => $_ENV['AWS_SQS_API_VERSION'],
33 | ];
34 |
35 | $sdk = new Sdk($configs);
36 |
37 | $this->felicioClient = $sdk->createSqs();
38 | }
39 |
40 | public function sendMessage(array $params): string
41 | {
42 | try {
43 | return (string)$this->felicioClient->sendMessage($params)->get('MessageId');
44 | } catch (AwsException $e) {
45 | throw new AwsException();
46 | }
47 | }
48 |
49 | public function receiveMessage(array $params): ?array
50 | {
51 | try {
52 | return $this->felicioClient->receiveMessage($params)->get('Messages');
53 | } catch (AwsException $e) {
54 | throw new AwsException();
55 | }
56 | }
57 |
58 | public function deleteMessage(array $params): Result
59 | {
60 | try {
61 | return $this->felicioClient->deleteMessage($params);
62 | } catch (AwsException $e) {
63 | throw new AwsException();
64 | }
65 | }
66 |
67 | public function countMessages($queue): int
68 | {
69 | $response = $this->felicioClient->getQueueAttributes(
70 | [
71 | 'QueueUrl' => $queue,
72 | 'AttributeNames' => ['ApproximateNumberOfMessages'],
73 | ]
74 | );
75 |
76 | $attributes = $response->get('Attributes');
77 |
78 | return (int)$attributes['ApproximateNumberOfMessages'];
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/tests/FelicioTest.php:
--------------------------------------------------------------------------------
1 | instance = new Felicio(__DIR__ . '/../.felicio');
18 | }
19 |
20 | /** @test */
21 | public function sendStandardMessageWithoutRequiredParameters(): void
22 | {
23 | $this->expectException(ArgumentCountError::class);
24 |
25 | $params = [
26 | 'QueueUrl' => '',
27 | 'MessageBody' => ''
28 | ];
29 |
30 | $this->instance->sendMessage($params);
31 | }
32 |
33 | /** @test */
34 | public function sendStandardMessage(): void
35 | {
36 | $params = [
37 | 'QueueUrl' => '',
38 | 'MessageBody' => 'Message 001'
39 | ];
40 |
41 | $this->assertIsString($this->instance->sendMessage($params));
42 | }
43 |
44 | /** @test */
45 | public function sendFifoMessage(): void
46 | {
47 | $params = [
48 | 'QueueUrl' => '.fifo', //required
49 | 'MessageBody' => 'Message 001',
50 | 'MessageDeduplicationId' => 'acac6e8f4ec9f44abc445945e76bf209',
51 | 'MessageGroupId' => '2fe6a413d02e3adef70256a36bf3b969',
52 | ];
53 |
54 | $this->assertIsString($this->instance->sendMessage($params));
55 | }
56 |
57 | /** @test */
58 | public function receiveMessage(): void
59 | {
60 | $params = [
61 | 'AttributeNames' => ['SentTimestamp'],
62 | 'MaxNumberOfMessages' => 1,
63 | 'MessageAttributeNames' => ['All'],
64 | 'QueueUrl' => '', //required
65 | 'WaitTimeSeconds' => 0,
66 | ];
67 |
68 | $this->assertIsArray($this->instance->receiveMessage($params));
69 | }
70 |
71 | /** @test */
72 | public function deleteMessage(): void
73 | {
74 | $params = [
75 | 'QueueUrl' => '', //required
76 | 'ReceiptHandle' => '', //required
77 | ];
78 |
79 | $this->assertIsObject($this->instance->deleteMessage($params));
80 | }
81 |
82 | /** @test */
83 | public function deleteMessageWithoutParameters(): void
84 | {
85 | $this->expectException(ArgumentCountError::class);
86 |
87 | $params = [
88 | 'QueueUrl' => '',
89 | 'ReceiptHandle' => '',
90 | ];
91 |
92 | $this->instance->deleteMessage($params);
93 | }
94 |
95 | /** @test */
96 | public function ifExistsMessage(): void
97 | {
98 | $queueUrl = ''; //required
99 |
100 | $this->assertGreaterThan(0, $this->instance->countMessages($queueUrl));
101 | }
102 | }
--------------------------------------------------------------------------------