diff --git a/.env.dist b/.env.dist
new file mode 100644
index 000000000..291308b17
--- /dev/null
+++ b/.env.dist
@@ -0,0 +1,7 @@
+COMPOSE_PROJECT_NAME=yii-demo
+
+REGISTRY=localhost
+DOMAIN=yii-demo.localhost
+SUPPORT_EMAIL=team@yiiframework.com
+# Get short image tag git rev-parse --short HEAD
+IMAGE_TAG=00001
diff --git a/.env.test b/.env.test
deleted file mode 100644
index 454ab1431..000000000
--- a/.env.test
+++ /dev/null
@@ -1,3 +0,0 @@
-YII_ENV=test
-YII_DEBUG=false
-SENTRY_DSN=
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 803e0007b..eb64a8811 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -61,7 +61,7 @@ the project's leadership.
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4.0, available at
-[http://contributor-covenant.org/version/1/4/][version]
+[https://contributor-covenant.org/version/1/4/][version]
-[homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/4/
+[homepage]: https://contributor-covenant.org
+[version]: https://contributor-covenant.org/version/1/4/
diff --git a/.github/workflows/blog-api_build.yml b/.github/workflows/blog-api_build.yml
new file mode 100644
index 000000000..efe9c8cc2
--- /dev/null
+++ b/.github/workflows/blog-api_build.yml
@@ -0,0 +1,99 @@
+defaults:
+ run:
+ working-directory: blog-api
+on:
+ pull_request:
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/infection.json.dist'
+ - 'blog-api/psalm.xml'
+
+ push:
+ branches: ['master']
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/infection.json.dist'
+ - 'blog-api/psalm.xml'
+
+ schedule:
+ - cron: '0 0 * * *'
+
+name: blog-api build
+
+jobs:
+ tests:
+ name: PHP ${{ matrix.php }}-${{ matrix.os }}
+
+ env:
+ extensions: fileinfo, pdo, pdo_sqlite, intl, pcntl
+ key: cache-v1
+ YII_C3: true
+ working_directory: blog-api
+
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+ - windows-latest
+
+ php:
+ - 8.3
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install PHP with extensions
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ ini-values: date.timezone='UTC'
+ tools: composer:v2
+ coverage: pcov
+ working-directory: ${{ env.working_directory }}
+
+ - name: Determine composer cache directory on Linux
+ if: matrix.os == 'ubuntu-latest'
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
+
+ - name: Determine composer cache directory on Windows
+ if: matrix.os == 'windows-latest'
+ run: echo "COMPOSER_CACHE_DIR=~\AppData\Local\Composer" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ working-directory: ${{ env.working_directory }}
+
+ - name: Cache dependencies installed with composer
+ uses: actions/cache@v3
+ with:
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: |
+ php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
+
+ - name: Update composer
+ run: composer self-update
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install dependencies with composer
+ run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
+ working-directory: ${{ env.working_directory }}
+
+ - name: Run tests codeception
+ run: vendor/bin/codecept run
+ working-directory: ${{ env.working_directory }}
diff --git a/.github/workflows/blog-api_dependency.yml b/.github/workflows/blog-api_dependency.yml
new file mode 100644
index 000000000..d526f88f4
--- /dev/null
+++ b/.github/workflows/blog-api_dependency.yml
@@ -0,0 +1,87 @@
+defaults:
+ run:
+ working-directory: blog-api
+on:
+ pull_request:
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/phpunit.xml.dist'
+ - 'blog-api/psalm.xml'
+
+ push:
+ branches: ['master']
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/phpunit.xml.dist'
+ - 'blog-api/psalm.xml'
+
+ schedule:
+ - cron: '0 0 * * *'
+
+name: blog-api dependency checker
+
+jobs:
+ mutation:
+ name: PHP ${{ matrix.php }}-${{ matrix.os }}
+
+ env:
+ working_directory: blog-api
+
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+
+ php:
+ - 8.3
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ tools: composer:v2, cs2pr
+ coverage: none
+ working-directory: ${{ env.working_directory }}
+
+ - name: Determine composer cache directory
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
+
+ - name: Cache dependencies installed with composer
+ uses: actions/cache@v3
+ with:
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: |
+ php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
+
+ - name: Update composer
+ run: composer self-update
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install maglnet/composer-require-checker
+ run: composer require maglnet/composer-require-checker:^4.0
+ working-directory: ${{ env.working_directory }}
+
+ - name: Check dependency
+ run: vendor/bin/composer-require-checker
+ working-directory: ${{ env.working_directory }}
diff --git a/.github/workflows/blog-api_static.yml b/.github/workflows/blog-api_static.yml
new file mode 100644
index 000000000..a03440643
--- /dev/null
+++ b/.github/workflows/blog-api_static.yml
@@ -0,0 +1,87 @@
+defaults:
+ run:
+ working-directory: blog-api
+on:
+ pull_request:
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/infection.json.dist'
+ - 'blog-api/phpunit.xml.dist'
+
+ push:
+ branches: ['master']
+ paths-ignore:
+ - 'blog-api/docs/**'
+ - 'blog-api/README.md'
+ - 'blog-api/CHANGELOG.md'
+ - 'blog-api/.gitignore'
+ - 'blog-api/.env.example'
+ - 'blog-api/.gitattributes'
+ - 'blog-api/infection.json.dist'
+ - 'blog-api/phpunit.xml.dist'
+
+ schedule:
+ - cron: '0 0 * * *'
+
+name: blog-api static analysis
+
+jobs:
+ mutation:
+ name: PHP ${{ matrix.php }}-${{ matrix.os }}
+
+ env:
+ working_directory: blog-api
+
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+
+ php:
+ - 8.3
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ tools: composer:v2, cs2pr
+ coverage: none
+ working-directory: ${{ env.working_directory }}
+
+ - name: Determine composer cache directory
+ run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
+
+ - name: Cache dependencies installed with composer
+ uses: actions/cache@v3
+ with:
+ path: ${{ env.COMPOSER_CACHE_DIR }}
+ key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: |
+ php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
+
+ - name: Update composer
+ run: composer self-update
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install dependencies with composer
+ run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
+ working-directory: ${{ env.working_directory }}
+
+ - name: Static analysis
+ run: vendor/bin/psalm --shepherd --stats --output-format=checkstyle | cs2pr --graceful-warnings --colorize
+ working-directory: ${{ env.working_directory }}
diff --git a/.github/workflows/build.yml b/.github/workflows/blog_build.yml
similarity index 60%
rename from .github/workflows/build.yml
rename to .github/workflows/blog_build.yml
index 743df91c1..2a5d99df1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/blog_build.yml
@@ -1,30 +1,34 @@
+defaults:
+ run:
+ working-directory: blog
on:
pull_request:
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'infection.json.dist'
- - 'psalm.xml'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/infection.json.dist'
+ - 'blog/psalm.xml'
push:
+ branches: ['master']
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'infection.json.dist'
- - 'psalm.xml'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/infection.json.dist'
+ - 'blog/psalm.xml'
schedule:
- cron: '0 0 * * *'
-name: build
+name: blog build
jobs:
tests:
@@ -34,6 +38,7 @@ jobs:
extensions: fileinfo, pdo, pdo_sqlite, intl
key: cache-v1
YII_C3: true
+ working_directory: blog
runs-on: ${{ matrix.os }}
@@ -44,12 +49,13 @@ jobs:
- windows-latest
php:
- - 8.1
- - 8.2
+ - 8.3
steps:
- name: Checkout
uses: actions/checkout@v3
+ with:
+ working-directory: ${{ env.working_directory }}
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
@@ -59,14 +65,17 @@ jobs:
ini-values: date.timezone='UTC'
tools: composer:v2
coverage: pcov
+ working-directory: ${{ env.working_directory }}
- name: Determine composer cache directory on Linux
if: matrix.os == 'ubuntu-latest'
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
- name: Determine composer cache directory on Windows
if: matrix.os == 'windows-latest'
run: echo "COMPOSER_CACHE_DIR=~\AppData\Local\Composer" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ working-directory: ${{ env.working_directory }}
- name: Cache dependencies installed with composer
uses: actions/cache@v3
@@ -75,21 +84,20 @@ jobs:
key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: |
php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
+
- name: Update composer
run: composer self-update
+ working-directory: ${{ env.working_directory }}
- name: Install dependencies with composer
run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
+ working-directory: ${{ env.working_directory }}
+
+ - name: Install dependencies with npm
+ run: npm update
+ working-directory: ${{ env.working_directory }}
- name: Run tests codeception
- if: matrix.os != 'ubuntu-latest' || matrix.php != '8.0'
run: vendor/bin/codecept run
- - name: Run tests codeception with coverage
- if: matrix.os == 'ubuntu-latest' && matrix.php == '8.0'
- run: vendor/bin/codecept run --coverage-xml
-
- - name: Upload coverage to codecov
- if: matrix.os == 'ubuntu-latest' && matrix.php == '8.0'
- uses: codecov/codecov-action@v3
- with:
- file: tests/_output/coverage.xml
+ working-directory: ${{ env.working_directory }}
diff --git a/.github/workflows/dependency.yml b/.github/workflows/blog_dependency.yml
similarity index 55%
rename from .github/workflows/dependency.yml
rename to .github/workflows/blog_dependency.yml
index f8854bcfa..ba23cc45e 100644
--- a/.github/workflows/dependency.yml
+++ b/.github/workflows/blog_dependency.yml
@@ -1,35 +1,42 @@
+defaults:
+ run:
+ working-directory: blog
on:
pull_request:
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'phpunit.xml.dist'
- - 'psalm.xml'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/phpunit.xml.dist'
+ - 'blog/psalm.xml'
push:
+ branches: ['master']
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'phpunit.xml.dist'
- - 'psalm.xml'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/phpunit.xml.dist'
+ - 'blog/psalm.xml'
schedule:
- cron: '0 0 * * *'
-name: dependency checker
+name: blog dependency checker
jobs:
mutation:
name: PHP ${{ matrix.php }}-${{ matrix.os }}
+ env:
+ working_directory: blog
+
runs-on: ${{ matrix.os }}
strategy:
@@ -38,11 +45,13 @@ jobs:
- ubuntu-latest
php:
- - 8.1
+ - 8.3
steps:
- name: Checkout
uses: actions/checkout@v2
+ with:
+ working-directory: ${{ env.working_directory }}
- name: Install PHP
uses: shivammathur/setup-php@v2
@@ -50,9 +59,11 @@ jobs:
php-version: ${{ matrix.php }}
tools: composer:v2, cs2pr
coverage: none
+ working-directory: ${{ env.working_directory }}
- name: Determine composer cache directory
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
- name: Cache dependencies installed with composer
uses: actions/cache@v3
@@ -61,12 +72,16 @@ jobs:
key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: |
php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
- name: Update composer
run: composer self-update
+ working-directory: ${{ env.working_directory }}
- name: Install maglnet/composer-require-checker
run: composer require maglnet/composer-require-checker:^4.0
+ working-directory: ${{ env.working_directory }}
- name: Check dependency
run: vendor/bin/composer-require-checker
+ working-directory: ${{ env.working_directory }}
diff --git a/.github/workflows/static.yml b/.github/workflows/blog_static.yml
similarity index 56%
rename from .github/workflows/static.yml
rename to .github/workflows/blog_static.yml
index 8198ef9cc..7307f85d2 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/blog_static.yml
@@ -1,35 +1,42 @@
+defaults:
+ run:
+ working-directory: blog
on:
pull_request:
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'infection.json.dist'
- - 'phpunit.xml.dist'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/infection.json.dist'
+ - 'blog/phpunit.xml.dist'
push:
+ branches: ['master']
paths-ignore:
- - 'docs/**'
- - 'README.md'
- - 'CHANGELOG.md'
- - '.gitignore'
- - '.env.example'
- - '.gitattributes'
- - 'infection.json.dist'
- - 'phpunit.xml.dist'
+ - 'blog/docs/**'
+ - 'blog/README.md'
+ - 'blog/CHANGELOG.md'
+ - 'blog/.gitignore'
+ - 'blog/.env.example'
+ - 'blog/.gitattributes'
+ - 'blog/infection.json.dist'
+ - 'blog/phpunit.xml.dist'
schedule:
- cron: '0 0 * * *'
-name: static analysis
+name: blog static analysis
jobs:
mutation:
name: PHP ${{ matrix.php }}-${{ matrix.os }}
+ env:
+ working_directory: blog
+
runs-on: ${{ matrix.os }}
strategy:
@@ -38,11 +45,13 @@ jobs:
- ubuntu-latest
php:
- - 8.1
+ - 8.3
steps:
- name: Checkout
uses: actions/checkout@v2
+ with:
+ working-directory: ${{ env.working_directory }}
- name: Install PHP
uses: shivammathur/setup-php@v2
@@ -50,9 +59,11 @@ jobs:
php-version: ${{ matrix.php }}
tools: composer:v2, cs2pr
coverage: none
+ working-directory: ${{ env.working_directory }}
- name: Determine composer cache directory
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
+ working-directory: ${{ env.working_directory }}
- name: Cache dependencies installed with composer
uses: actions/cache@v3
@@ -61,12 +72,16 @@ jobs:
key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: |
php${{ matrix.php }}-composer-
+ working-directory: ${{ env.working_directory }}
- name: Update composer
run: composer self-update
+ working-directory: ${{ env.working_directory }}
- name: Install dependencies with composer
run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
+ working-directory: ${{ env.working_directory }}
- name: Static analysis
run: vendor/bin/psalm --shepherd --stats --output-format=checkstyle | cs2pr --graceful-warnings --colorize
+ working-directory: ${{ env.working_directory }}
diff --git a/.gitignore b/.gitignore
index 94819d1f3..d4be79aef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,30 +1,10 @@
-# IDE & OS files
-.*.swp
-.DS_Store
-.buildpath
-.idea
-.project
-.settings
-Thumbs.db
-nbproject
-
-# Binaries
-chkipper.phar
-composer.phar
-ocular.phar
-php-cs-fixer.phar
-phpstan.phar
-phpunit-skelgen.phar
-phpunit.phar
-
-# local config
-/.env
-/docker-compose.override.yml
-
-# evolving files
-/vendor
-/composer.lock
-/node_modules
-
-# Codeception
-c3.php
+# IDE & OS files
+.*.swp
+.DS_Store
+.buildpath
+.idea
+.project
+.settings
+Thumbs.db
+nbproject
+.env
diff --git a/.styleci.yml b/.styleci.yml
index 63e26a594..76e29ece8 100644
--- a/.styleci.yml
+++ b/.styleci.yml
@@ -1,20 +1,16 @@
preset: psr12
risky: true
-version: 8
+version: 8.1
finder:
exclude:
- - docs
- - vendor
- - resources
- - views
- - public
- - templates
- not-name:
- - UnionCar.php
- - TimerUnionTypes.php
- - schema1.php
+ - "*/docs"
+ - "*/vendor"
+ - "*/resources"
+ - "*/views"
+ - "*/public"
+ - "*/templates"
enabled:
- alpha_ordered_traits
@@ -64,7 +60,6 @@ enabled:
- phpdoc_order
- phpdoc_property
- phpdoc_scalar
- - phpdoc_separation
- phpdoc_singular_inheritdoc
- phpdoc_trim
- phpdoc_trim_consecutive_blank_line_separation
@@ -86,3 +81,9 @@ enabled:
- trailing_comma_in_multiline_array
- unalign_double_arrow
- unalign_equals
+ - empty_loop_body_braces
+ - integer_literal_case
+ - union_type_without_spaces
+
+disabled:
+ - function_declaration
diff --git a/README.md b/README.md
index 37c278ed9..9332a3e38 100644
--- a/README.md
+++ b/README.md
@@ -1,87 +1,12 @@
-
-
-
-
-
Yii Framework Demo Project
-
-
+Yii 3 Demo Code
+===============
-[Yii Framework] is a modern framework designed to be a solid foundation for your PHP application.
+This repository contains the code for the Yii 3 demo projects:
-It's intended to show and test all Yii features.
+Deployment
+----------
-[![Latest Stable Version](https://poser.pugx.org/yiisoft/demo/v/stable.png)](https://packagist.org/packages/yiisoft/demo)
-[![Total Downloads](https://poser.pugx.org/yiisoft/demo/downloads.png)](https://packagist.org/packages/yiisoft/demo)
-[![build](https://github.com/yiisoft/demo/workflows/build/badge.svg)](https://github.com/yiisoft/demo/actions)
-[![Code Coverage](https://codecov.io/gh/yiisoft/demo/branch/master/graph/badge.svg?token=dWuz2uAVU2)](https://codecov.io/gh/yiisoft/demo)
-[![static analysis](https://github.com/yiisoft/demo/workflows/static%20analysis/badge.svg)](https://github.com/yiisoft/demo/actions?query=workflow%3A%22static+analysis%22)
-[![type-coverage](https://shepherd.dev/github/yiisoft/demo/coverage.svg)](https://shepherd.dev/github/yiisoft/demo)
+### Manually Renew SSL Cert
-## Installation
-
-You'll need at least PHP 8.1.
-
-1. Clone this repository.
-2. Run `composer install` in your project root directory.
-3. Run `./yii serve` (on Windows `yii serve`). The application will be started on http://localhost:8080/.
-4. Go to the index page. Cycle ORM will create tables, indexes and relations automatically in the configured DB for you.
- If you want to disable this behavior then comment out the line with the `Generator\SyncTables::class` in the `config/packges/yiisoft/yii-cycle/params.php`.
- In this case you should create migrations to sync changes that you have made to entities with the DB.
-5. Run `./yii fixture/add 20` to create some random data.
-
-## Console
-
-Console works out of the box and could be executed with `./yii`.
-
-Some commands:
-
-```bash
-user/create
-fixture/add [count]
-```
-
-In order to register your own commands, add them to `console/params.php`, `console` → `commands` section.
-
-## Web application
-
-In order to run the web application, you can either use the built-in web server by running `./yii serve` or you could use a
-real web server by pointing it to `/public/index.php`.
-
-More routes could be added by editing `src/Factory/AppRouterFactory`.
-
-## Testing
-
-The template comes with a ready to use [Codeception](https://codeception.com/) configuration.
-In order to execute tests run the following command:
-
-```
-composer run serve 127.0.0.1:8080 > ./runtime/yii.log 2>&1 &
-vendor/bin/codecept run
-```
-
-### Static analysis
-
-The code is statically analyzed with [Psalm](https://psalm.dev/). To run static analysis:
-
-```shell
-./vendor/bin/psalm
-```
-
-### Support the project
-
-[![Open Collective](https://img.shields.io/badge/Open%20Collective-sponsor-7eadf1?logo=open%20collective&logoColor=7eadf1&labelColor=555555)](https://opencollective.com/yiisoft)
-
-### Follow updates
-
-[![Official website](https://img.shields.io/badge/Powered_by-Yii_Framework-green.svg?style=flat)](https://www.yiiframework.com/)
-[![Twitter](https://img.shields.io/badge/twitter-follow-1DA1F2?logo=twitter&logoColor=1DA1F2&labelColor=555555?style=flat)](https://twitter.com/yiiframework)
-[![Telegram](https://img.shields.io/badge/telegram-join-1DA1F2?style=flat&logo=telegram)](https://t.me/yii3en)
-[![Facebook](https://img.shields.io/badge/facebook-join-1DA1F2?style=flat&logo=facebook&logoColor=ffffff)](https://www.facebook.com/groups/yiitalk)
-[![Slack](https://img.shields.io/badge/slack-join-1DA1F2?style=flat&logo=slack)](https://yiiframework.com/go/slack)
-
-## License
-
-The Yii Framework Demo Project is free software. It is released under the terms of the BSD License.
-Please see [`LICENSE`](./LICENSE.md) for more information.
-
-Maintained by [Yii Software](https://www.yiiframework.com/).
+ docker-compose run certbot
+ docker-compose restart gateway
diff --git a/ansible/.gitignore b/ansible/.gitignore
new file mode 100644
index 000000000..1ba9c4b7b
--- /dev/null
+++ b/ansible/.gitignore
@@ -0,0 +1 @@
+hosts.yml
diff --git a/ansible/Makefile b/ansible/Makefile
new file mode 100644
index 000000000..bc2067bb2
--- /dev/null
+++ b/ansible/Makefile
@@ -0,0 +1,11 @@
+server:
+ python3 -m ansible playbook -i hosts.yml server.yml -vv
+
+deploy:
+ python3 -m ansible playbook -i hosts.yml deploy.yml -vv
+
+authorize:
+ python3 -m ansible playbook -i hosts.yml authorize.yml
+
+certbot:
+ python3 -m ansible playbook -i hosts.yml certbot.yml
diff --git a/ansible/authorize.yml b/ansible/authorize.yml
new file mode 100644
index 000000000..eaf41823d
--- /dev/null
+++ b/ansible/authorize.yml
@@ -0,0 +1,14 @@
+---
+- name: Add authorized key
+ hosts: all
+ remote_user: root
+ tasks:
+ - name: Add user authorized key
+ authorized_key:
+ user: deploy
+ key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
+
+- name: Add deploy user to the sudoers
+ copy:
+ dest: "/etc/sudoers.d/deploy"
+ content: "deploy ALL=(ALL) NOPASSWD: ALL"
diff --git a/ansible/certbot.yml b/ansible/certbot.yml
new file mode 100644
index 000000000..3f8894e00
--- /dev/null
+++ b/ansible/certbot.yml
@@ -0,0 +1,6 @@
+---
+- name: Renew certificates
+ hosts: all
+ remote_user: root
+ roles:
+ - certbot
diff --git a/ansible/deploy.yml b/ansible/deploy.yml
new file mode 100644
index 000000000..870ca3e5c
--- /dev/null
+++ b/ansible/deploy.yml
@@ -0,0 +1,6 @@
+---
+- name: Deploy services
+ hosts: all
+ remote_user: root
+ roles:
+ - deploy
diff --git a/ansible/hosts.yml.dist b/ansible/hosts.yml.dist
new file mode 100644
index 000000000..9a86cca33
--- /dev/null
+++ b/ansible/hosts.yml.dist
@@ -0,0 +1,7 @@
+all:
+ hosts:
+ demo.yiiframework.com:
+ ansible_connection: ssh
+ ansible_user: root
+ ansible_host: 0.0.0.0
+ ansible_port: 22
diff --git a/ansible/roles/certbot/tasks/generate_dhparam.yml b/ansible/roles/certbot/tasks/generate_dhparam.yml
new file mode 100644
index 000000000..c2f2f22d7
--- /dev/null
+++ b/ansible/roles/certbot/tasks/generate_dhparam.yml
@@ -0,0 +1,12 @@
+---
+- name: Create folder
+ file:
+ path: /home/deploy/demo.yiiframework.com/var/ssl/dhparam
+ state: directory
+ recurse: true
+
+- name: Generate dhparam
+ command: openssl dhparam -out ./var/ssl/dhparam/dhparam-2048.pem 2048
+ args:
+ chdir: /home/deploy/demo.yiiframework.com
+ creates: ./var/ssl/dhparam/dhparam-2048.pem
\ No newline at end of file
diff --git a/ansible/roles/certbot/tasks/main.yml b/ansible/roles/certbot/tasks/main.yml
new file mode 100644
index 000000000..1d3a88704
--- /dev/null
+++ b/ansible/roles/certbot/tasks/main.yml
@@ -0,0 +1,2 @@
+- import_tasks: generate_dhparam.yml
+- import_tasks: update_certificates.yml
diff --git a/ansible/roles/certbot/tasks/update_certificates.yml b/ansible/roles/certbot/tasks/update_certificates.yml
new file mode 100644
index 000000000..7dc919a9f
--- /dev/null
+++ b/ansible/roles/certbot/tasks/update_certificates.yml
@@ -0,0 +1,38 @@
+---
+- name: Up docker services
+ become: true
+ become_user: deploy
+ args:
+ chdir: /home/deploy/demo.yiiframework.com
+ shell: docker-compose -f docker-compose.yml up certbot
+ register: output
+
+- debug:
+ var: output.stdout_lines
+
+- name: Reload nginx service
+ become: true
+ become_user: deploy
+ args:
+ chdir: /home/deploy/demo.yiiframework.com
+ shell: docker-compose -f docker-compose.yml exec gateway nginx -t && docker-compose -f docker-compose.yml exec gateway nginx -s reload
+
+# Crontab file location is /var/spool/cron/crontabs/deploy
+# Every 2nd month on 15th day of month
+# See https://crontab.guru/#0_0_15_*/2_*
+- name: Set periodic certificates update
+ cron:
+ name: certbot-renew
+ user: deploy
+ minute: '0'
+ hour: '0'
+ day: '15'
+ month: '*/2'
+ job: >
+ /bin/bash -c "
+ cd /home/deploy/demo.yiiframework.com &&
+ docker-compose -f docker-compose.yml up certbot &&
+ sleep 180 &&
+ docker-compose -f docker-compose.yml exec -T gateway nginx -t &&
+ docker-compose -f docker-compose.yml exec -T gateway nginx -s reload
+ "
diff --git a/ansible/roles/deploy/tasks/deploy.yml b/ansible/roles/deploy/tasks/deploy.yml
new file mode 100644
index 000000000..7dbdcea21
--- /dev/null
+++ b/ansible/roles/deploy/tasks/deploy.yml
@@ -0,0 +1,17 @@
+---
+- name: Chown
+ file:
+ path: "{{ item }}"
+ recurse: true
+ owner: deploy
+ group: deploy
+ loop:
+ - /home/deploy/demo.yiiframework.com/blog
+ - /home/deploy/demo.yiiframework.com/blog-api
+
+- name: Run `docker-compose up`
+ become: true
+ become_user: deploy
+ args:
+ chdir: ~/demo.yiiframework.com
+ shell: docker-compose -f docker-compose.yml up -d --build
diff --git a/ansible/roles/deploy/tasks/main.yml b/ansible/roles/deploy/tasks/main.yml
new file mode 100644
index 000000000..b647b2e4c
--- /dev/null
+++ b/ansible/roles/deploy/tasks/main.yml
@@ -0,0 +1 @@
+- import_tasks: deploy.yml
diff --git a/ansible/roles/server/handlers/main.yml b/ansible/roles/server/handlers/main.yml
new file mode 100644
index 000000000..96f76bca7
--- /dev/null
+++ b/ansible/roles/server/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: Start docker on system boot
+ systemd:
+ name: docker
+ state: started
+ enabled: yes
diff --git a/ansible/roles/server/tasks/create_user.yml b/ansible/roles/server/tasks/create_user.yml
new file mode 100644
index 000000000..e4458e1d4
--- /dev/null
+++ b/ansible/roles/server/tasks/create_user.yml
@@ -0,0 +1,14 @@
+---
+- name: Create deploy user
+ vars:
+ newpassword: "SomEP@$$w0rd"
+ user:
+ name: deploy
+ password: "{{ newpassword }}"
+ update_password: always
+ groups:
+ - docker
+ - www-data
+ state: present
+ shell: /bin/bash
+
diff --git a/ansible/roles/server/tasks/install_dependencies.yml b/ansible/roles/server/tasks/install_dependencies.yml
new file mode 100644
index 000000000..3628608e3
--- /dev/null
+++ b/ansible/roles/server/tasks/install_dependencies.yml
@@ -0,0 +1,12 @@
+---
+- name: Install `passlib` for Python
+ pip:
+ name:
+ - passlib
+ state: present
+
+- name: Install `composer` into system
+ apt:
+ name:
+ - composer
+ state: present
\ No newline at end of file
diff --git a/ansible/roles/server/tasks/install_docker.yml b/ansible/roles/server/tasks/install_docker.yml
new file mode 100644
index 000000000..72a904348
--- /dev/null
+++ b/ansible/roles/server/tasks/install_docker.yml
@@ -0,0 +1,56 @@
+---
+- name: Install `docker` dependencies
+ apt:
+ name:
+ - apt-transport-https
+ - ca-certificates
+ - curl
+ - software-properties-common
+ state: present
+ update_cache: yes
+
+- name: Add GPG key
+ apt_key:
+ url: https://download.docker.com/linux/debian/gpg
+ state: present
+
+- name: Verify fingerprint
+ apt_key:
+ id: 0EBFCD88
+ state: present
+
+- name: Set up the repository
+ apt_repository:
+ repo: deb [arch=amd64] https://download.docker.com/linux/debian stretch stable
+ state: present
+ filename: docker
+ update_cache: yes
+
+- name: Install `docker`
+ apt:
+ name: docker-ce
+ state: present
+ update_cache: yes
+ notify: Start docker on boot
+
+- name: Install `docker-compose`
+ get_url:
+ url: https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-{{ ansible_system }}-{{ ansible_userspace_architecture }}
+ dest: /usr/local/bin/docker-compose
+ group: docker
+ mode: 'u+x,g+x'
+
+- name: Set periodic Docker prune
+ cron:
+ name: docker-prune
+ job: 'docker system prune -af --filter "until=$((30*24))h"'
+ minute: '0'
+ hour: '1'
+
+- name: Remove useless packages
+ apt:
+ autoclean: yes
+
+- name: Remove useless dependencies
+ apt:
+ autoremove: yes
diff --git a/ansible/roles/server/tasks/install_docker_sdk.yml b/ansible/roles/server/tasks/install_docker_sdk.yml
new file mode 100644
index 000000000..9f4446707
--- /dev/null
+++ b/ansible/roles/server/tasks/install_docker_sdk.yml
@@ -0,0 +1,16 @@
+---
+- name: Install Docker SDK dependencies
+ apt:
+ name:
+ - python3-pip
+ - python-setuptools
+ - virtualenv
+ state: present
+ update_cache: yes
+
+- name: Install Docker SDK for Python
+ pip:
+ name:
+ - docker
+ state: present
+
diff --git a/ansible/roles/server/tasks/main.yml b/ansible/roles/server/tasks/main.yml
new file mode 100644
index 000000000..aca866440
--- /dev/null
+++ b/ansible/roles/server/tasks/main.yml
@@ -0,0 +1,5 @@
+- import_tasks: swap.yml
+- import_tasks: install_dependencies.yml
+- import_tasks: install_docker.yml
+- import_tasks: install_docker_sdk.yml
+- import_tasks: create_user.yml
diff --git a/ansible/roles/server/tasks/swap.yml b/ansible/roles/server/tasks/swap.yml
new file mode 100644
index 000000000..f407a3f2a
--- /dev/null
+++ b/ansible/roles/server/tasks/swap.yml
@@ -0,0 +1,39 @@
+---
+- name: Check whether swap is already enabled or not
+ shell: cat /etc/sysctl.conf
+ register: swap_enabled
+
+- block:
+ - name: create swap file
+ command: dd if=/dev/zero of=/swapfile bs=1G count=8
+
+ - name: change permission type
+ file: path=/swapfile mode=600 state=file
+
+ - name: setup swap
+ command: mkswap /swapfile
+
+ - name: create swap
+ command: swapon /swapfile
+
+ - name: Add to fstab
+ lineinfile:
+ path: /etc/fstab
+ regexp: "swapfile"
+ line: "/swapfile none swap sw 0 0"
+ state: present
+
+ - name: start swap
+ command: swapon -a
+
+ - name: set swapiness
+ sysctl:
+ name: vm.swappiness
+ value: "10"
+
+ - name: set swapiness
+ sysctl:
+ name: vm.vfs_cache_pressure
+ value: "50"
+
+ when: swap_enabled.stdout.find('swappiness') == -1
\ No newline at end of file
diff --git a/ansible/server.yml b/ansible/server.yml
new file mode 100644
index 000000000..cdd26f9b8
--- /dev/null
+++ b/ansible/server.yml
@@ -0,0 +1,6 @@
+---
+- name: Setup server
+ hosts: all
+ remote_user: root
+ roles:
+ - server
diff --git a/blog-api/.dockerignore b/blog-api/.dockerignore
new file mode 100644
index 000000000..24e04c973
--- /dev/null
+++ b/blog-api/.dockerignore
@@ -0,0 +1,3 @@
+runtime/
+!runtime/.gitignore
+vendor/
diff --git a/.editorconfig b/blog-api/.editorconfig
similarity index 69%
rename from .editorconfig
rename to blog-api/.editorconfig
index 5e9a93ea5..8802775ba 100644
--- a/.editorconfig
+++ b/blog-api/.editorconfig
@@ -10,6 +10,10 @@ indent_style = space
indent_size = 4
trim_trailing_whitespace = true
+[*.php]
+ij_php_space_before_short_closure_left_parenthesis = false
+ij_php_space_after_type_cast = true
+
[*.md]
trim_trailing_whitespace = false
diff --git a/blog-api/.env.example b/blog-api/.env.example
new file mode 100644
index 000000000..430164434
--- /dev/null
+++ b/blog-api/.env.example
@@ -0,0 +1,3 @@
+YII_ENV=
+YII_DEBUG=true
+BASE_URL=/blog-api
diff --git a/blog-api/.env.test b/blog-api/.env.test
new file mode 100644
index 000000000..881657317
--- /dev/null
+++ b/blog-api/.env.test
@@ -0,0 +1,3 @@
+YII_ENV=test
+YII_DEBUG=true
+BASE_URL=/
diff --git a/.gitattributes b/blog-api/.gitattributes
similarity index 100%
rename from .gitattributes
rename to blog-api/.gitattributes
diff --git a/blog-api/.gitignore b/blog-api/.gitignore
new file mode 100644
index 000000000..c1cab5794
--- /dev/null
+++ b/blog-api/.gitignore
@@ -0,0 +1,37 @@
+# phpstorm project files
+.idea
+
+# netbeans project files
+nbproject
+
+# zend studio for eclipse project files
+.buildpath
+.project
+.settings
+
+# windows thumbnail cache
+Thumbs.db
+
+# composer vendor dir
+/vendor
+
+# composer itself is not needed
+composer.phar
+
+# Mac DS_Store Files
+.DS_Store
+
+# phpunit itself is not needed
+phpunit.phar
+# local phpunit config
+/phpunit.xml
+# phpunit cache
+.phpunit.result.cache
+
+# Codeception
+c3.php
+
+#tests
+tests/Support/Data/database.db_snapshot
+
+.env
diff --git a/.phpunit-watcher.yml b/blog-api/.phpunit-watcher.yml
similarity index 100%
rename from .phpunit-watcher.yml
rename to blog-api/.phpunit-watcher.yml
diff --git a/blog-api/CHANGELOG.md b/blog-api/CHANGELOG.md
new file mode 100644
index 000000000..b3d52d63f
--- /dev/null
+++ b/blog-api/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Change Log
+
+## 1.0.0 under development
+
+- Initial release.
diff --git a/LICENSE.md b/blog-api/LICENSE.md
similarity index 100%
rename from LICENSE.md
rename to blog-api/LICENSE.md
diff --git a/blog-api/Makefile b/blog-api/Makefile
new file mode 100644
index 000000000..ea6f8e855
--- /dev/null
+++ b/blog-api/Makefile
@@ -0,0 +1,19 @@
+init: composer-update up
+
+up:
+ docker-compose up -d
+down:
+ docker-compose down
+
+composer:
+ docker-compose run php composer $(filter-out $@, $(MAKECMDGOALS))
+composer-update:
+ docker-compose run php composer update
+
+yii3:
+ docker-compose run php ./yii $(filter-out $@, $(MAKECMDGOALS))
+
+test:
+ docker-compose run php ./vendor/bin/codecept run
+psalm:
+ docker-compose run php ./vendor/bin/psalm
diff --git a/blog-api/README.md b/blog-api/README.md
new file mode 100644
index 000000000..ddb3136d6
--- /dev/null
+++ b/blog-api/README.md
@@ -0,0 +1,64 @@
+
+
+
+
+
Yii Framework API Demo Project
+
+
+
+[![Latest Stable Version](https://poser.pugx.org/yiisoft/demo-api/v/stable.png)](https://packagist.org/packages/yiisoft/demo-api)
+[![Total Downloads](https://poser.pugx.org/yiisoft/demo-api/downloads.png)](https://packagist.org/packages/yiisoft/demo-api)
+[![Build status](https://github.com/yiisoft/demo-api/workflows/build/badge.svg)](https://github.com/yiisoft/demo-api/actions?query=workflow%3Abuild)
+[![static analysis](https://github.com/yiisoft/demo-api/workflows/static%20analysis/badge.svg)](https://github.com/yiisoft/demo-api/actions?query=workflow%3A%22static+analysis%22)
+
+API Demo application for Yii 3.
+
+## Installation
+
+Install docker:
+
+```bash
+docker-compose up -d
+```
+
+Enter into the container:
+
+```bash
+docker exec -it yii-php bash
+```
+
+Install packages:
+
+```bash
+composer install
+```
+
+Change ownership of the app directory to web group:
+
+```bash
+chown -R :www-data .
+```
+
+Usually the application is available at .
+
+Authorization is performed via the `X-Api-Key` header.
+
+## API documentation
+
+API documentation is available at `/docs`. It is built from OpenAPI attributes (`#[OA\ ... ]`).
+See [Swagger-PHP documentation](https://zircote.github.io/swagger-php/Getting-started.html#write-annotations) for details
+on how to annotate your code.
+
+## Codeception testing
+
+```php
+./vendor/bin/codecept run
+```
+
+## Static analysis
+
+The code is statically analyzed with [Psalm](https://psalm.dev/). To run static analysis:
+
+```php
+./vendor/bin/psalm
+```
diff --git a/autoload.php b/blog-api/autoload.php
similarity index 83%
rename from autoload.php
rename to blog-api/autoload.php
index 2e5eee2a3..ccfe29cdb 100644
--- a/autoload.php
+++ b/blog-api/autoload.php
@@ -9,7 +9,7 @@
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
-$_ENV['YII_ENV'] = empty($_ENV['YII_ENV']) ? null : (string)$_ENV['YII_ENV'];
+$_ENV['YII_ENV'] = empty($_ENV['YII_ENV']) ? null : (string) $_ENV['YII_ENV'];
$_SERVER['YII_ENV'] = $_ENV['YII_ENV'];
$_ENV['YII_DEBUG'] = filter_var(
diff --git a/blog-api/codeception.yml b/blog-api/codeception.yml
new file mode 100644
index 000000000..15aeb36eb
--- /dev/null
+++ b/blog-api/codeception.yml
@@ -0,0 +1,24 @@
+namespace: App\Tests
+support_namespace: Support
+paths:
+ tests: tests
+ output: runtime/tests/_output
+ data: tests/Support/Data
+ support: tests/Support
+ envs: tests/Support/Envs
+actor_suffix: Tester
+extensions:
+ enabled:
+ - Codeception\Extension\RunFailed
+settings:
+ suite_class: \PHPUnit_Framework_TestSuite
+ memory_limit: 1024M
+ colors: true
+coverage:
+ enabled: true
+ whitelist:
+ include:
+ - src/*
+params:
+ - .env
+ - .env.test
diff --git a/blog-api/composer.json b/blog-api/composer.json
new file mode 100644
index 000000000..b0d568068
--- /dev/null
+++ b/blog-api/composer.json
@@ -0,0 +1,138 @@
+{
+ "name": "yiisoft/demo-api",
+ "type": "project",
+ "description": "Yii Framework API project template",
+ "keywords": [
+ "yii3",
+ "app",
+ "api",
+ "rest"
+ ],
+ "homepage": "https://github.com/yiisoft/demo-api/",
+ "license": "BSD-3-Clause",
+ "support": {
+ "issues": "https://github.com/yiisoft/demo-api/issues?state=open",
+ "forum": "https://www.yiiframework.com/forum/",
+ "wiki": "https://www.yiiframework.com/wiki/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "source": "https://github.com/yiisoft/demo-api"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "require": {
+ "php": "8.3.*",
+ "ext-intl": "*",
+ "cebe/markdown": "^1.2@dev",
+ "cycle/annotated": "^3.5",
+ "cycle/database": "^2.0",
+ "cycle/entity-behavior": "^1.0",
+ "cycle/orm": "^2.0",
+ "doctrine/collections": "^2.0",
+ "httpsoft/http-message": "^1.1",
+ "myclabs/php-enum": "^1.7",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^3.0",
+ "vlucas/phpdotenv": "^5.3",
+ "yiisoft/access": "^1.0",
+ "yiisoft/auth": "^3.0",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/cache-file": "^3.0",
+ "yiisoft/config": "^1.0",
+ "yiisoft/data": "dev-master",
+ "yiisoft/data-cycle": "dev-master",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/definitions": "^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/hydrator-validator": "^2.0",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/input-http": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/middleware-dispatcher": "^5.1",
+ "yiisoft/request-body-parser": "^1.1",
+ "yiisoft/router": "^3.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/security": "^1.0",
+ "yiisoft/translator": "^3.0",
+ "yiisoft/translator-message-php": "^1.1",
+ "yiisoft/user": "^2.0",
+ "yiisoft/validator": "^2.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-cycle": "^1.0",
+ "yiisoft/yii-debug": "dev-master",
+ "yiisoft/yii-event": "^2.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-middleware": "^1.0",
+ "yiisoft/queue": "3.0.x-dev",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0",
+ "yiisoft/yii-swagger": "^2.0",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "codeception/c3": "^2.6",
+ "codeception/codeception": "^5.0",
+ "codeception/lib-innerbrowser": "^3.1",
+ "codeception/module-asserts": "^3.0",
+ "codeception/module-cli": "^2.0",
+ "codeception/module-db": "^3.0",
+ "codeception/module-phpbrowser": "^3.0",
+ "codeception/module-rest": "^3.1",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "roave/security-advisories": "dev-latest",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18",
+ "yiisoft/json": "^1.0",
+ "yiisoft/yii-debug-api": "^3.0@dev",
+ "yiisoft/yii-debug-viewer": "^3.0@dev",
+ "yiisoft/yii-gii": "dev-master",
+ "yiisoft/yii-testing": "dev-master"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "src"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "App\\Tests\\": "tests/",
+ "App\\Tests\\Acceptance\\": "tests/acceptance/"
+ }
+ },
+ "scripts": {
+ "serve": "./yii serve",
+ "post-update-cmd": [
+ "App\\Installer::postUpdate",
+ "App\\Installer::copyEnvFile"
+ ],
+ "post-create-project-cmd": [
+ "App\\Installer::copyEnvFile"
+ ],
+ "test": "codecept run",
+ "test-watch": "phpunit-watcher watch"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ },
+ "config-plugin-file": "configuration.php"
+ },
+ "config": {
+ "sort-packages": true,
+ "allow-plugins": {
+ "codeception/c3": true,
+ "infection/extension-installer": true,
+ "composer/package-versions-deprecated": true,
+ "yiisoft/config": true
+ }
+ }
+}
diff --git a/blog-api/composer.lock b/blog-api/composer.lock
new file mode 100644
index 000000000..455cc220c
--- /dev/null
+++ b/blog-api/composer.lock
@@ -0,0 +1,16826 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "dc4fd69b5a2310f8fdc45cd66be2b5ee",
+ "packages": [
+ {
+ "name": "alexkart/curl-builder",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/alexkart/curl-builder.git",
+ "reference": "626cf95a84a37b6e1643675f7fc4acfc2f90dbfb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/alexkart/curl-builder/zipball/626cf95a84a37b6e1643675f7fc4acfc2f90dbfb",
+ "reference": "626cf95a84a37b6e1643675f7fc4acfc2f90dbfb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "psr/http-message": "^1.0"
+ },
+ "require-dev": {
+ "nyholm/psr7": "^1.3",
+ "phan/phan": "^5.4",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Alexkart\\CurlBuilder\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alexander Kartavenko",
+ "email": "askemailbox@gmail.com"
+ }
+ ],
+ "description": "PSR-7 compatible curl builder.",
+ "support": {
+ "issues": "https://github.com/alexkart/curl-builder/issues",
+ "source": "https://github.com/alexkart/curl-builder/tree/1.0.8"
+ },
+ "time": "2023-05-29T13:44:51+00:00"
+ },
+ {
+ "name": "cebe/markdown",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cebe/markdown.git",
+ "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cebe/markdown/zipball/9bac5e971dd391e2802dca5400bbeacbaea9eb86",
+ "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86",
+ "shasum": ""
+ },
+ "require": {
+ "lib-pcre": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "cebe/indent": "*",
+ "facebook/xhprof": "*@dev",
+ "phpunit/phpunit": "4.1.*"
+ },
+ "bin": [
+ "bin/markdown"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "cebe\\markdown\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Carsten Brandt",
+ "email": "mail@cebe.cc",
+ "homepage": "http://cebe.cc/",
+ "role": "Creator"
+ }
+ ],
+ "description": "A super fast, highly extensible markdown parser for PHP",
+ "homepage": "https://github.com/cebe/markdown#readme",
+ "keywords": [
+ "extensible",
+ "fast",
+ "gfm",
+ "markdown",
+ "markdown-extra"
+ ],
+ "support": {
+ "issues": "https://github.com/cebe/markdown/issues",
+ "source": "https://github.com/cebe/markdown"
+ },
+ "time": "2018-03-26T11:24:36+00:00"
+ },
+ {
+ "name": "cycle/annotated",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/annotated.git",
+ "reference": "4024d2ea9b5656cdd0bf4e79acc485dc063b8273"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/annotated/zipball/4024d2ea9b5656cdd0bf4e79acc485dc063b8273",
+ "reference": "4024d2ea9b5656cdd0bf4e79acc485dc063b8273",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "doctrine/annotations": "^1.14.3 || ^2.0.1",
+ "doctrine/inflector": "^2.0",
+ "php": ">=8.0",
+ "spiral/attributes": "^2.8|^3.0",
+ "spiral/tokenizer": "^2.8|^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6",
+ "vimeo/psalm": "^4.30"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Annotated\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Annotated Entities generator",
+ "support": {
+ "issues": "https://github.com/cycle/annotated/issues",
+ "source": "https://github.com/cycle/annotated/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-08T21:32:45+00:00"
+ },
+ {
+ "name": "cycle/database",
+ "version": "2.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/database.git",
+ "reference": "5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/database/zipball/5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7",
+ "reference": "5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pdo": "*",
+ "php": ">=8.0",
+ "psr/log": "1 - 3",
+ "spiral/core": "^2.8 || ^3.0",
+ "spiral/pagination": "^2.8 || ^3.0",
+ "symfony/polyfill-php83": "^1.28"
+ },
+ "conflict": {
+ "spiral/database": "*"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42",
+ "infection/infection": "^0.26.10",
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "spiral/tokenizer": "^2.14 || ^3.0",
+ "vimeo/psalm": "^5.18"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/polyfill.php",
+ "src/functions_polyfill.php"
+ ],
+ "psr-4": {
+ "Cycle\\Database\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ }
+ ],
+ "description": "DBAL, schema introspection, migration and pagination",
+ "homepage": "https://cycle-orm.dev",
+ "keywords": [
+ "database",
+ "dbal",
+ "mssql",
+ "mysql",
+ "orm",
+ "postgresql",
+ "query-builder",
+ "sql",
+ "sqlite"
+ ],
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/database/issues",
+ "source": "https://github.com/cycle/database"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-11T11:30:02+00:00"
+ },
+ {
+ "name": "cycle/entity-behavior",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/entity-behavior.git",
+ "reference": "9b7ad13a68a0ea0dca0399b7f44f20b691a18120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/entity-behavior/zipball/9b7ad13a68a0ea0dca0399b7f44f20b691a18120",
+ "reference": "9b7ad13a68a0ea0dca0399b7f44f20b691a18120",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "php": ">=8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "cycle/annotated": "^3.0",
+ "phpunit/phpunit": "^9.5",
+ "ramsey/uuid": "^4.5",
+ "spiral/tokenizer": "^2.8 || ^3.0",
+ "vimeo/psalm": "^5.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\ORM\\Entity\\Behavior\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Provides a collection of attributes that add behaviors to Cycle ORM entities",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/entity-behavior/issues",
+ "source": "https://github.com/cycle/entity-behavior"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-09T11:47:14+00:00"
+ },
+ {
+ "name": "cycle/migrations",
+ "version": "v4.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/migrations.git",
+ "reference": "434b08be175bf87f920651b9f6d91fc1cb7ed3ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/migrations/zipball/434b08be175bf87f920651b9f6d91fc1cb7ed3ba",
+ "reference": "434b08be175bf87f920651b9f6d91fc1cb7ed3ba",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.7.0",
+ "php": ">=8.1",
+ "spiral/core": "^3.0",
+ "spiral/files": "^3.0",
+ "spiral/reactor": "^3.0",
+ "spiral/tokenizer": "^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "dev-master"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Migrations\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Database migrations, migration scaffolding",
+ "support": {
+ "issues": "https://github.com/cycle/migrations/issues",
+ "source": "https://github.com/cycle/migrations/tree/v4.2.3"
+ },
+ "time": "2024-01-25T10:49:43+00:00"
+ },
+ {
+ "name": "cycle/orm",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/orm.git",
+ "reference": "23023be5e8452c1e5b05417f9c4539db71d60927"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/orm/zipball/23023be5e8452c1e5b05417f9c4539db71d60927",
+ "reference": "23023be5e8452c1e5b05417f9c4539db71d60927",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.8.1",
+ "doctrine/instantiator": "^1.3.1 || ^2.0",
+ "ext-pdo": "*",
+ "php": ">=8.0",
+ "spiral/core": "^2.8 || ^3.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6 || ^2.0",
+ "illuminate/collections": "^8.0",
+ "loophp/collection": "^6.0 || ^7.0",
+ "mockery/mockery": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "ramsey/uuid": "^4.0",
+ "spiral/tokenizer": "^2.8 || ^3.0",
+ "symfony/var-dumper": "^5.2 || ^6.0 || ^7.0",
+ "vimeo/psalm": "5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\ORM\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "PHP DataMapper ORM and Data Modelling Engine",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/orm/issues",
+ "source": "https://github.com/cycle/orm"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-05T13:14:36+00:00"
+ },
+ {
+ "name": "cycle/schema-builder",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-builder.git",
+ "reference": "413af8fc8f93c6e48cebc76ab6c37c65fe2cab63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-builder/zipball/413af8fc8f93c6e48cebc76ab6c37c65fe2cab63",
+ "reference": "413af8fc8f93c6e48cebc76ab6c37c65fe2cab63",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.7.1",
+ "cycle/orm": "^2.7",
+ "php": ">=8.0",
+ "yiisoft/friendly-exception": "^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "spiral/tokenizer": "^2.8",
+ "symfony/console": "^6.0 || ^7.0",
+ "vimeo/psalm": "^5.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.9.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Schema Builder",
+ "support": {
+ "issues": "https://github.com/cycle/schema-builder/issues",
+ "source": "https://github.com/cycle/schema-builder/tree/v2.9.0"
+ },
+ "time": "2024-07-10T16:20:17+00:00"
+ },
+ {
+ "name": "cycle/schema-migrations-generator",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-migrations-generator.git",
+ "reference": "94cb613ec77376cf880c9488daa3668b1f856e80"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-migrations-generator/zipball/94cb613ec77376cf880c9488daa3668b1f856e80",
+ "reference": "94cb613ec77376cf880c9488daa3668b1f856e80",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.4.1",
+ "cycle/migrations": "^4.2",
+ "cycle/schema-builder": "^2.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "cycle/annotated": "^3.0",
+ "cycle/orm": "^2.0",
+ "phpunit/phpunit": "^9.5",
+ "spiral/debug": "^3.0",
+ "spiral/framework": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Generator\\Migrations\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Migration generation",
+ "support": {
+ "issues": "https://github.com/cycle/schema-migrations-generator/issues",
+ "source": "https://github.com/cycle/schema-migrations-generator/tree/2.2.0"
+ },
+ "time": "2023-11-02T09:24:12+00:00"
+ },
+ {
+ "name": "cycle/schema-provider",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-provider.git",
+ "reference": "d6e800d6cd498cf1053522b6c2348f6eea587aae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-provider/zipball/d6e800d6cd498cf1053522b6c2348f6eea587aae",
+ "reference": "d6e800d6cd498cf1053522b6c2348f6eea587aae",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.0",
+ "cycle/schema-renderer": "^1.2",
+ "php": ">=8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "psr/simple-cache": "^2.0 || ^3.0",
+ "spiral/files": "^2.14 || ^3.11",
+ "webmozart/glob": "^4.6"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.48",
+ "phpunit/phpunit": "^9.6",
+ "roave/security-advisories": "dev-latest",
+ "vimeo/psalm": "^4.30.0 || ^5.21",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Provider\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Buchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Cycle ORM Schema providers",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/schema-provider/issues",
+ "source": "https://github.com/cycle/schema-provider"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-05T13:58:34+00:00"
+ },
+ {
+ "name": "cycle/schema-renderer",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-renderer.git",
+ "reference": "5c2b7977c2803c6c9bacc56064abda5ea2b273a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-renderer/zipball/5c2b7977c2803c6c9bacc56064abda5ea2b273a3",
+ "reference": "5c2b7977c2803c6c9bacc56064abda5ea2b273a3",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "1.2 - 2",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "spiral/code-style": "^1.0",
+ "vimeo/psalm": "^4.10|^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Renderer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Utils for Cycle ORM Schema rendering",
+ "support": {
+ "issues": "https://github.com/cycle/schema-renderer/issues",
+ "source": "https://github.com/cycle/schema-renderer/tree/1.2.0"
+ },
+ "time": "2022-12-15T16:14:14+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7",
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2 || ^3",
+ "ext-tokenizer": "*",
+ "php": "^7.2 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^2.0",
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.10.28",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
+ },
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/2.0.2"
+ },
+ "time": "2024-09-05T10:17:24+00:00"
+ },
+ {
+ "name": "doctrine/collections",
+ "version": "2.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/collections.git",
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59",
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1",
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "ext-json": "*",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Collections\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
+ "homepage": "https://www.doctrine-project.org/projects/collections.html",
+ "keywords": [
+ "array",
+ "collections",
+ "iterators",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/collections/issues",
+ "source": "https://github.com/doctrine/collections/tree/2.2.2"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T06:56:21+00:00"
+ },
+ {
+ "name": "doctrine/deprecations",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "phpstan/phpstan": "1.4.10 || 1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "0.18.4",
+ "psr/log": "^1 || ^2 || ^3",
+ "vimeo/psalm": "4.30.0 || 5.12.0"
+ },
+ "suggest": {
+ "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+ "homepage": "https://www.doctrine-project.org/",
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+ },
+ "time": "2024-01-30T19:34:25+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-18T20:23:39+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:23:10+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-05T11:56:58+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:45:45+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T11:15:46+00:00"
+ },
+ {
+ "name": "httpsoft/http-message",
+ "version": "1.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-message.git",
+ "reference": "f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-message/zipball/f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19",
+ "reference": "f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "php-http/psr7-integration-tests": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Strict and fast implementation of PSR-7 and PSR-17",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "php",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/message",
+ "issues": "https://github.com/httpsoft/http-message/issues",
+ "source": "https://github.com/httpsoft/http-message"
+ },
+ "time": "2024-08-09T07:13:21+00:00"
+ },
+ {
+ "name": "jetbrains/phpstorm-attributes",
+ "version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/JetBrains/phpstorm-attributes.git",
+ "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/22fb28d679deceedba8366dbae65cc8ebfc17e26",
+ "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JetBrains\\PhpStorm\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "JetBrains",
+ "homepage": "https://www.jetbrains.com"
+ }
+ ],
+ "description": "PhpStorm specific attributes",
+ "keywords": [
+ "attributes",
+ "jetbrains",
+ "phpstorm"
+ ],
+ "support": {
+ "issues": "https://youtrack.jetbrains.com/newIssue?project=WI",
+ "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.1"
+ },
+ "time": "2023-09-01T08:50:25+00:00"
+ },
+ {
+ "name": "myclabs/php-enum",
+ "version": "1.8.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/php-enum.git",
+ "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
+ "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.3 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "1.*",
+ "vimeo/psalm": "^4.6.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "MyCLabs\\Enum\\": "src/"
+ },
+ "classmap": [
+ "stubs/Stringable.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP Enum contributors",
+ "homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
+ }
+ ],
+ "description": "PHP Enum implementation",
+ "homepage": "http://github.com/myclabs/php-enum",
+ "keywords": [
+ "enum"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/php-enum/issues",
+ "source": "https://github.com/myclabs/php-enum/tree/1.8.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/mnapoli",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-08-04T09:53:51+00:00"
+ },
+ {
+ "name": "nette/php-generator",
+ "version": "v4.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/php-generator.git",
+ "reference": "c90961e782ae86e517fe5ed732eb2b512945565b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/c90961e782ae86e517fe5ed732eb2b512945565b",
+ "reference": "c90961e782ae86e517fe5ed732eb2b512945565b",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^3.2.9 || ^4.0",
+ "php": "8.0 - 8.4"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.4",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "suggest": {
+ "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "code",
+ "nette",
+ "php",
+ "scaffolding"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/php-generator/issues",
+ "source": "https://github.com/nette/php-generator/tree/v4.1.6"
+ },
+ "time": "2024-09-10T09:31:55+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "shasum": ""
+ },
+ "require": {
+ "php": "8.0 - 8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.5"
+ },
+ "time": "2024-08-07T15:39:19+00:00"
+ },
+ {
+ "name": "nikic/fast-route",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/FastRoute.git",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35|~5.7"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "FastRoute\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov",
+ "email": "nikic@php.net"
+ }
+ ],
+ "description": "Fast request router for PHP",
+ "keywords": [
+ "router",
+ "routing"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/FastRoute/issues",
+ "source": "https://github.com/nikic/FastRoute/tree/master"
+ },
+ "time": "2018-02-13T20:26:39+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.9.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:41:07+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory"
+ },
+ "time": "2024-04-15T12:06:14+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/1.1"
+ },
+ "time": "2023-04-04T09:50:52+00:00"
+ },
+ {
+ "name": "psr/http-server-handler",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-handler.git",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP server-side request handler",
+ "keywords": [
+ "handler",
+ "http",
+ "http-interop",
+ "psr",
+ "psr-15",
+ "psr-7",
+ "request",
+ "response",
+ "server"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:06:20+00:00"
+ },
+ {
+ "name": "psr/http-server-middleware",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-middleware.git",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "psr/http-server-handler": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP server-side middleware",
+ "keywords": [
+ "http",
+ "http-interop",
+ "middleware",
+ "psr",
+ "psr-15",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/http-server-middleware/issues",
+ "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
+ },
+ "time": "2023-04-11T06:14:47+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
+ },
+ "time": "2024-09-11T13:17:53+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "spiral/attributes",
+ "version": "v3.1.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/attributes.git",
+ "reference": "fc6657de4ed83913c7f02241e5fe4e8e799af8fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/attributes/zipball/fc6657de4ed83913c7f02241e5fe4e8e799af8fa",
+ "reference": "fc6657de4ed83913c7f02241e5fe4e8e799af8fa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/cache": "1 - 3",
+ "psr/simple-cache": "1 - 3"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.14 || ^2.0",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "phpunit/phpunit": "^9.5.20",
+ "vimeo/psalm": "^5.17"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/polyfill.php"
+ ],
+ "psr-4": {
+ "Spiral\\Attributes\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ },
+ {
+ "name": "Kirill Nesmeyanov (SerafimArts)",
+ "email": "kirill.nesmeyanov@spiralscout.com"
+ }
+ ],
+ "description": "PHP attributes reader",
+ "homepage": "https://spiral.dev",
+ "keywords": [
+ "annotations",
+ "attributes",
+ "metadata"
+ ],
+ "support": {
+ "chat": "https://discord.gg/V6EK4he",
+ "docs": "https://spiral.dev/docs",
+ "forum": "https://forum.spiral.dev",
+ "issues": "https://github.com/spiral/attributes/issues",
+ "source": "https://github.com/spiral/attributes"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T10:18:52+00:00"
+ },
+ {
+ "name": "spiral/core",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/core.git",
+ "reference": "53bec6e433d709f59ef6c0ce966f4a640c4d1bad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/core/zipball/53bec6e433d709f59ef6c0ce966f4a640c4d1bad",
+ "reference": "53bec6e433d709f59ef6c0ce966f4a640c4d1bad",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/container-implementation": "^1.1|^2.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Core\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "IoC container, IoC scopes, factory, memory, configuration interfaces",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/core"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-10T16:54:43+00:00"
+ },
+ {
+ "name": "spiral/files",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/files.git",
+ "reference": "0c394e058ee994b6d18a229dcbe310e4de3a2b7a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/files/zipball/0c394e058ee994b6d18a229dcbe310e4de3a2b7a",
+ "reference": "0c394e058ee994b6d18a229dcbe310e4de3a2b7a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Files\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "File Toolkit: atomic file manager",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/files"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-03T16:58:09+00:00"
+ },
+ {
+ "name": "spiral/logger",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/logger.git",
+ "reference": "146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/logger/zipball/146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e",
+ "reference": "146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "1 - 3",
+ "spiral/core": "^3.14.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Logger\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "LogFactory and global log listeners",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/logger"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:26+00:00"
+ },
+ {
+ "name": "spiral/pagination",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/pagination.git",
+ "reference": "93c9d93c811b4ec6037491e516c3e194fdc94848"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/pagination/zipball/93c9d93c811b4ec6037491e516c3e194fdc94848",
+ "reference": "93c9d93c811b4ec6037491e516c3e194fdc94848",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Pagination\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Common pagination interfaces",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/pagination"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-03T16:59:10+00:00"
+ },
+ {
+ "name": "spiral/reactor",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/reactor.git",
+ "reference": "74639a44ced7eb289820fdcca96ff9322f79f882"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/reactor/zipball/74639a44ced7eb289820fdcca96ff9322f79f882",
+ "reference": "74639a44ced7eb289820fdcca96ff9322f79f882",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/inflector": "^1.4|^2.0",
+ "nette/php-generator": "^4.1.2",
+ "php": ">=8.1",
+ "spiral/files": "^3.14.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "psr/container": "^1.1|^2.0",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Reactor\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Reactor: Code Scaffolding",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/reactor"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:25+00:00"
+ },
+ {
+ "name": "spiral/tokenizer",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/tokenizer.git",
+ "reference": "b5bf2ed89880d91c228bf1e3ebfda2b508c008ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/tokenizer/zipball/b5bf2ed89880d91c228bf1e3ebfda2b508c008ff",
+ "reference": "b5bf2ed89880d91c228bf1e3ebfda2b508c008ff",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=8.1",
+ "spiral/core": "^3.14.3",
+ "spiral/logger": "^3.14.3",
+ "symfony/finder": "^5.3.7 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.6",
+ "phpunit/phpunit": "^10.1",
+ "spiral/attributes": "^2.8|^3.0",
+ "spiral/boot": "^3.14.3",
+ "spiral/files": "^3.14.3",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Tokenizer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Static Analysis: Class and Invocation locators",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/tokenizer"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:38+00:00"
+ },
+ {
+ "name": "swagger-api/swagger-ui",
+ "version": "v5.17.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swagger-api/swagger-ui.git",
+ "reference": "74ed0adebfc9c8dd0de2bf8e81495b022a66c083"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swagger-api/swagger-ui/zipball/74ed0adebfc9c8dd0de2bf8e81495b022a66c083",
+ "reference": "74ed0adebfc9c8dd0de2bf8e81495b022a66c083",
+ "shasum": ""
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Anna Bodnia",
+ "email": "anna.bodnia@gmail.com"
+ },
+ {
+ "name": "Buu Nguyen",
+ "email": "buunguyen@gmail.com"
+ },
+ {
+ "name": "Josh Ponelat",
+ "email": "jponelat@gmail.com"
+ },
+ {
+ "name": "Kyle Shockey",
+ "email": "kyleshockey1@gmail.com"
+ },
+ {
+ "name": "Robert Barnwell",
+ "email": "robert@robertismy.name"
+ },
+ {
+ "name": "Sahar Jafari",
+ "email": "shr.jafari@gmail.com"
+ }
+ ],
+ "description": " Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.",
+ "homepage": "http://swagger.io",
+ "keywords": [
+ "api",
+ "documentation",
+ "openapi",
+ "specification",
+ "swagger",
+ "ui"
+ ],
+ "support": {
+ "issues": "https://github.com/swagger-api/swagger-ui/issues",
+ "source": "https://github.com/swagger-api/swagger-ui/tree/v5.17.14"
+ },
+ "time": "2024-05-28T05:24:40+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765",
+ "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T08:15:52+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.4.43",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ae25a9145a900764158d439653d5630191155ca0",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.4.43"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-13T14:03:51+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306",
+ "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T08:28:38+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-30T16:03:21+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "762ee56b2649659380e0ef4d592d807bc17b7971"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/762ee56b2649659380e0ef4d592d807bc17b7971",
+ "reference": "762ee56b2649659380e0ef4d592d807bc17b7971",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T12:47:12+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "5.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:52:34+00:00"
+ },
+ {
+ "name": "webmozart/glob",
+ "version": "4.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/glob.git",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/glob/zipball/8a2842112d6916e61e0e15e316465b611f3abc17",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3 || ^8.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "symfony/filesystem": "^5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Glob\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A PHP implementation of Ant's glob.",
+ "support": {
+ "issues": "https://github.com/webmozarts/glob/issues",
+ "source": "https://github.com/webmozarts/glob/tree/4.7.0"
+ },
+ "time": "2024-03-07T20:33:40+00:00"
+ },
+ {
+ "name": "yiisoft/access",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/access.git",
+ "reference": "7a8ac9c4802d31cf47789c742575232c7fb1ae8b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/access/zipball/7a8ac9c4802d31cf47789c742575232c7fb1ae8b",
+ "reference": "7a8ac9c4802d31cf47789c742575232c7fb1ae8b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Access\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "An interface for checking access",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "access",
+ "interface",
+ "rbac",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/access/issues?state=open",
+ "source": "https://github.com/yiisoft/access",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2022-04-05T17:21:55+00:00"
+ },
+ {
+ "name": "yiisoft/aliases",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/aliases.git",
+ "reference": "2ed5e38d6ac503ec4c1af39115361097b6449135"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/aliases/zipball/2ed5e38d6ac503ec4c1af39115361097b6449135",
+ "reference": "2ed5e38d6ac503ec4c1af39115361097b6449135",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Aliases\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Named paths and URLs storage",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "alias"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/aliases/issues?state=open",
+ "source": "https://github.com/yiisoft/aliases",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-13T10:14:03+00:00"
+ },
+ {
+ "name": "yiisoft/arrays",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/arrays.git",
+ "reference": "e07c7268bd53903108ed556df93ef75b4bac6760"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/arrays/zipball/e07c7268bd53903108ed556df93ef75b4bac6760",
+ "reference": "e07c7268bd53903108ed556df93ef75b4bac6760",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/strings": "^2.1"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.20"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Arrays\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Array Helper",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "array",
+ "helper",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://forum.yiiframework.com/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/arrays/issues",
+ "source": "https://github.com/yiisoft/arrays",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-04-04T11:07:18+00:00"
+ },
+ {
+ "name": "yiisoft/assets",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/assets.git",
+ "reference": "14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/assets/zipball/14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc",
+ "reference": "14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Assets\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Asset bundles and asset manager",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "assets",
+ "library",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/assets/issues?state=open",
+ "source": "https://github.com/yiisoft/assets",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-13T11:15:18+00:00"
+ },
+ {
+ "name": "yiisoft/auth",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/auth.git",
+ "reference": "497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/auth/zipball/497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee",
+ "reference": "497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.8",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Auth\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii auth",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "auth",
+ "middleware"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/auth/issues?state=open",
+ "source": "https://github.com/yiisoft/auth",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-06T12:26:49+00:00"
+ },
+ {
+ "name": "yiisoft/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cache.git",
+ "reference": "67ae4b40d3aefd193dfd9a3f458f3e145adb0d84"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cache/zipball/67ae4b40d3aefd193dfd9a3f458f3e145adb0d84",
+ "reference": "67ae4b40d3aefd193dfd9a3f458f3e145adb0d84",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "provide": {
+ "psr/simple-cache-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.2"
+ },
+ "suggest": {
+ "yiisoft/cache-apcu": "Allows to store cache using APCu PECL extension",
+ "yiisoft/cache-db": "Allows storing cache to the database",
+ "yiisoft/cache-file": "Allows storing cache to the files",
+ "yiisoft/cache-memcached": "Allows to store cache using Memcached PECL extension",
+ "yiisoft/cache-redis": "Allows storing cache to the Redis",
+ "yiisoft/cache-wincache": "Allows to store cache using WinCache PECL extension"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cache\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Caching Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cache",
+ "psr-16",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cache/issues?state=open",
+ "source": "https://github.com/yiisoft/cache",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-15T14:30:56+00:00"
+ },
+ {
+ "name": "yiisoft/cache-file",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cache-file.git",
+ "reference": "226ff0731adabc884c149f711190a7ac8b14800d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cache-file/zipball/226ff0731adabc884c149f711190a7ac8b14800d",
+ "reference": "226ff0731adabc884c149f711190a7ac8b14800d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "provide": {
+ "psr/simple-cache-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "php-mock/php-mock-phpunit": "^2.6",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cache\\File\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Caching Library - File Handler",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cache",
+ "file",
+ "framework",
+ "psr-16",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cache-file/issues?state=open",
+ "source": "https://github.com/yiisoft/cache-file",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-10-09T14:49:20+00:00"
+ },
+ {
+ "name": "yiisoft/config",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/config.git",
+ "reference": "8cd32f003af59303f3ba8dd520eb85f830689575"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/config/zipball/8cd32f003af59303f3ba8dd520eb85f830689575",
+ "reference": "8cd32f003af59303f3ba8dd520eb85f830689575",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0",
+ "php": "^8.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/strings": "^2.0",
+ "yiisoft/var-dumper": "^1.1"
+ },
+ "require-dev": {
+ "composer/composer": "^2.0",
+ "ext-json": "*",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6"
+ },
+ "suggest": {
+ "symfony/console": "To use composer commands `yii-config-copy` and `yii-config-rebuild`."
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Yiisoft\\Config\\Composer\\EventHandler"
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Composer plugin and a library for config assembling",
+ "homepage": "https://github.com/yiisoft/config",
+ "keywords": [
+ "composer",
+ "config",
+ "plugin"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/config/issues?state=open",
+ "source": "https://github.com/yiisoft/config",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-12-25T17:12:50+00:00"
+ },
+ {
+ "name": "yiisoft/cookies",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cookies.git",
+ "reference": "ceba1d0647f1210331d90372ca83a8ecc952ebef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cookies/zipball/ceba1d0647f1210331d90372ca83a8ecc952ebef",
+ "reference": "ceba1d0647f1210331d90372ca83a8ecc952ebef",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/security": "^1.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cookies\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Convenient way to use cookies with PSR-7",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cookie",
+ "cookies",
+ "psr-7"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cookies/issues?state=open",
+ "source": "https://github.com/yiisoft/cookies",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-04-05T07:20:16+00:00"
+ },
+ {
+ "name": "yiisoft/csrf",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/csrf.git",
+ "reference": "2168b5f83ec9ce65e9d0ca08fa88613e6778d377"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/csrf/zipball/2168b5f83ec9ce65e9d0ca08fa88613e6778d377",
+ "reference": "2168b5f83ec9ce65e9d0ca08fa88613e6778d377",
+ "shasum": ""
+ },
+ "require": {
+ "ext-hash": "*",
+ "php": "^7.4|^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/security": "^1.0",
+ "yiisoft/session": "^1.0|^2.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.24",
+ "yiisoft/di": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Csrf\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii CSRF Protection Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "breach",
+ "csrf",
+ "hmac",
+ "middleware",
+ "psr-15",
+ "stateless",
+ "synchronizer"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/csrf/issues?state=open",
+ "source": "https://github.com/yiisoft/csrf",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-08T09:48:50+00:00"
+ },
+ {
+ "name": "yiisoft/data",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data.git",
+ "reference": "714ca834858bea280ce8781fc5915fa8775f780b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data/zipball/714ca834858bea280ce8781fc5915fa8775f780b",
+ "reference": "714ca834858bea280ce8781fc5915fa8775f780b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "yiisoft/arrays": "^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.20"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Data\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Data providers, pagination and related abstractions",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "data processor",
+ "data provider",
+ "data reader",
+ "data writer",
+ "filter",
+ "pagination"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data/issues?state=open",
+ "source": "https://github.com/yiisoft/data",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-10T17:50:47+00:00"
+ },
+ {
+ "name": "yiisoft/data-cycle",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data-cycle.git",
+ "reference": "708074a77942ab1d7f424bc21a6912b7d62641da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data-cycle/zipball/708074a77942ab1d7f424bc21a6912b7d62641da",
+ "reference": "708074a77942ab1d7f424bc21a6912b7d62641da",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.10",
+ "cycle/orm": "^2.7.1",
+ "php": "^8.1",
+ "yiisoft/data": "dev-master"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.21",
+ "vlucas/phpdotenv": "^5.6"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Data\\Cycle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Cycle ORM query adapter for yiisoft/data",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cycle",
+ "data provider",
+ "database",
+ "db",
+ "orm"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data-cycle/issues?state=open",
+ "source": "https://github.com/yiisoft/data-cycle",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-11T18:58:59+00:00"
+ },
+ {
+ "name": "yiisoft/data-response",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data-response.git",
+ "reference": "7de8c880d0d6629867a51c5c2529c984e50dfbc3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data-response/zipball/7de8c880d0d6629867a51c5c2529c984e50dfbc3",
+ "reference": "7de8c880d0d6629867a51c5c2529c984e50dfbc3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/json": "^1.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/di": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\DataResponse\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Allows responding with data that is automatically converted into PSR-7 response",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "data",
+ "psr-7",
+ "response"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data-response/issues?state=open",
+ "source": "https://github.com/yiisoft/data-response",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-03T06:01:50+00:00"
+ },
+ {
+ "name": "yiisoft/definitions",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/definitions.git",
+ "reference": "5cb53d07afab3336705a52ddc90c37237cc4b316"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/definitions/zipball/5cb53d07afab3336705a52ddc90c37237cc4b316",
+ "reference": "5cb53d07afab3336705a52ddc90c37237cc4b316",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^1.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Definitions\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "The package provides definition syntax",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "definitions"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/definitions/issues?state=open",
+ "source": "https://github.com/yiisoft/definitions",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-16T13:31:21+00:00"
+ },
+ {
+ "name": "yiisoft/di",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/di.git",
+ "reference": "a6d889f74030a381dad337f1bd1ea9de7341bc9b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/di/zipball/a6d889f74030a381dad337f1bd1ea9de7341bc9b",
+ "reference": "a6d889f74030a381dad337f1bd1ea9de7341bc9b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/container": "^1.1|^2.0",
+ "yiisoft/definitions": "^3.0"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "league/container": "^4.2",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpbench/phpbench": "^1.2.0",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.14.3",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.29",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "phpbench/phpbench": "To run benchmarks.",
+ "yiisoft/injector": "^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Di\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii DI container",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "Autowiring",
+ "PSR-11",
+ "container",
+ "dependency",
+ "di",
+ "injection",
+ "injector"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/di/issues?state=open",
+ "source": "https://github.com/yiisoft/di",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-12-23T16:12:56+00:00"
+ },
+ {
+ "name": "yiisoft/error-handler",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/error-handler.git",
+ "reference": "a263c9dea48d5a42022dd7df76706cff39e3e960"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/error-handler/zipball/a263c9dea48d5a42022dd7df76706cff39e3e960",
+ "reference": "a263c9dea48d5a42022dd7df76706cff39e3e960",
+ "shasum": ""
+ },
+ "require": {
+ "alexkart/curl-builder": "^1.0",
+ "cebe/markdown": "^1.2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0.9",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/di": "^1.1",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\ErrorHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Error Handling Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "PSR-11",
+ "error-handler",
+ "psr-15",
+ "psr-3",
+ "psr-7",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/error-handler/issues?state=open",
+ "source": "https://github.com/yiisoft/error-handler",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-11T12:16:20+00:00"
+ },
+ {
+ "name": "yiisoft/event-dispatcher",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/event-dispatcher.git",
+ "reference": "2b1262a56260030aaac386bf8ef75ec072abc7e3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/event-dispatcher/zipball/2b1262a56260030aaac386bf8ef75ec072abc7e3",
+ "reference": "2b1262a56260030aaac386bf8ef75ec072abc7e3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.14.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\EventDispatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Event Dispatcher",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "psr-14"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/event-dispatcher/issues?state=open",
+ "source": "https://github.com/yiisoft/event-dispatcher",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-10-27T12:02:21+00:00"
+ },
+ {
+ "name": "yiisoft/factory",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/factory.git",
+ "reference": "4537a78ae1a3b49bd86e83d09f0772034e45f193"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/factory/zipball/4537a78ae1a3b49bd86e83d09f0772034e45f193",
+ "reference": "4537a78ae1a3b49bd86e83d09f0772034e45f193",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0.1"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Factory\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Factory",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "factory"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/factory/issues",
+ "source": "https://github.com/yiisoft/factory",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-03T05:59:14+00:00"
+ },
+ {
+ "name": "yiisoft/files",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/files.git",
+ "reference": "129a8f8220e1cd2530f424951b8c24f426bd219c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/files/zipball/129a8f8220e1cd2530f424951b8c24f426bd219c",
+ "reference": "129a8f8220e1cd2530f424951b8c24f426bd219c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "ext-zlib": "*",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.22"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Files\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Helper to manage files and directories",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "files"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/files/issues?state=open",
+ "source": "https://github.com/yiisoft/files",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-07-05T06:43:38+00:00"
+ },
+ {
+ "name": "yiisoft/friendly-exception",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/friendly-exception.git",
+ "reference": "4b4a19edff251791e3c92d4d83435d2716351ff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/friendly-exception/zipball/4b4a19edff251791e3c92d4d83435d2716351ff4",
+ "reference": "4b4a19edff251791e3c92d4d83435d2716351ff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.4",
+ "roave/infection-static-analysis-plugin": "^1.5",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\FriendlyException\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "An interface for friendlier exception",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "error handling",
+ "exception",
+ "exceptions",
+ "friendly"
+ ],
+ "support": {
+ "forum": "http://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/friendly-exception/issues?state=open",
+ "source": "https://github.com/yiisoft/friendly-exception",
+ "wiki": "http://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-10-26T21:43:25+00:00"
+ },
+ {
+ "name": "yiisoft/html",
+ "version": "3.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/html.git",
+ "reference": "968aa8b336135242bdaef9646fa3d53c3c0731f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/html/zipball/968aa8b336135242bdaef9646fa3d53c3c0731f7",
+ "reference": "968aa8b336135242bdaef9646fa3d53c3c0731f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.26.19",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Html\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Handy library to generate HTML",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "html"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://forum.yiiframework.com/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/html/issues?state=open",
+ "source": "https://github.com/yiisoft/html",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-18T11:48:50+00:00"
+ },
+ {
+ "name": "yiisoft/http",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/http.git",
+ "reference": "7967b2c45dbf6af785dea4ea481af23da6d49c5d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/http/zipball/7967b2c45dbf6af785dea4ea481af23da6d49c5d",
+ "reference": "7967b2c45dbf6af785dea4ea481af23da6d49c5d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.10",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.12"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Constants and PSR-7 PhpStorm meta for HTTP protocol headers, methods and statuses",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "header",
+ "http",
+ "method",
+ "psr-17",
+ "psr-7",
+ "status"
+ ],
+ "support": {
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/http/issues?state=open",
+ "source": "https://github.com/yiisoft/http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-11-09T09:42:11+00:00"
+ },
+ {
+ "name": "yiisoft/hydrator",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/hydrator.git",
+ "reference": "9bfde0c99fc35b182d1b74433e9316c9b67c5fc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/hydrator/zipball/9bfde0c99fc35b182d1b74433e9316c9b67c5fc1",
+ "reference": "9bfde0c99fc35b182d1b74433e9316c9b67c5fc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "yiisoft/injector": "^1.1",
+ "yiisoft/strings": "^2.3"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.23",
+ "yiisoft/di": "^1.2",
+ "yiisoft/dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "ext-intl": "Allows using `ToDateTime` parameter attribute"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Hydrator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Create and populate objects with type casting, mapping and dependencies resolving support.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "hydrator"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/hydrator/issues?state=open",
+ "source": "https://github.com/yiisoft/hydrator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-17T16:10:24+00:00"
+ },
+ {
+ "name": "yiisoft/hydrator-validator",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/hydrator-validator.git",
+ "reference": "5f7acfebce127755af7df3cbc126dd502a1c4140"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/hydrator-validator/zipball/5f7acfebce127755af7df3cbc126dd502a1c4140",
+ "reference": "5f7acfebce127755af7df3cbc126dd502a1c4140",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/validator": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.11",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Hydrator\\Validator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Validating hydrator with raw data validation support",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "input",
+ "validation"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/hydrator-validator/issues?state=open",
+ "source": "https://github.com/yiisoft/hydrator-validator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-08-06T12:18:25+00:00"
+ },
+ {
+ "name": "yiisoft/i18n",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/i18n.git",
+ "reference": "c05e9e031fb36fc193152e18fa791bbf6d0582b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/i18n/zipball/c05e9e031fb36fc193152e18fa791bbf6d0582b8",
+ "reference": "c05e9e031fb36fc193152e18fa791bbf6d0582b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.17.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\I18n\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Internationalization Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "i18n",
+ "locale"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/i18n/issues?state=open",
+ "source": "https://github.com/yiisoft/i18n",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-06-10T14:18:35+00:00"
+ },
+ {
+ "name": "yiisoft/injector",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/injector.git",
+ "reference": "0dc0127a7542341bdaabda7b85204e992938b83e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/injector/zipball/0dc0127a7542341bdaabda7b85204e992938b83e",
+ "reference": "0dc0127a7542341bdaabda7b85204e992938b83e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpbench/phpbench": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^1.0|^2.0",
+ "rector/rector": "^0.18.12",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.7",
+ "yiisoft/test-support": "^1.2"
+ },
+ "suggest": {
+ "psr/container": "For automatic resolving of dependencies"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Injector\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-11 compatible injector. Executes a callable and makes an instances by injecting dependencies from a given DI container.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "PSR-11",
+ "dependency injection",
+ "di",
+ "injector",
+ "reflection"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/injector/issues?state=open",
+ "source": "https://github.com/yiisoft/injector",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-20T09:39:03+00:00"
+ },
+ {
+ "name": "yiisoft/input-http",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/input-http.git",
+ "reference": "877fea3374033f5a6af4207036eb7733a635b5b7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/input-http/zipball/877fea3374033f5a6af4207036eb7733a635b5b7",
+ "reference": "877fea3374033f5a6af4207036eb7733a635b5b7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/hydrator-validator": "^2.0",
+ "yiisoft/middleware-dispatcher": "^5.1",
+ "yiisoft/request-provider": "^1.0",
+ "yiisoft/validator": "^1.1|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params-web": "params-web.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Input\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Maps data from PSR-7 HTTP request to PHP DTO representing user input.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "dto",
+ "input",
+ "mapper",
+ "mapping",
+ "psr-7",
+ "request",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/input-http/issues?state=open",
+ "source": "https://github.com/yiisoft/input-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-08-06T12:42:23+00:00"
+ },
+ {
+ "name": "yiisoft/json",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/json.git",
+ "reference": "51b483aef1cd5d06ea02db3c40707bb6b41ed088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/json/zipball/51b483aef1cd5d06ea02db3c40707bb6b41ed088",
+ "reference": "51b483aef1cd5d06ea02db3c40707bb6b41ed088",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.16.3",
+ "phan/phan": "^3.0",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Json\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "json",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "json"
+ ],
+ "support": {
+ "forum": "http://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/json/issues?state=open",
+ "source": "https://github.com/yiisoft/json",
+ "wiki": "http://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2020-08-26T12:21:14+00:00"
+ },
+ {
+ "name": "yiisoft/log",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/log.git",
+ "reference": "9d549952f5099a3e3081e11cccb3841c77587dac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/log/zipball/9d549952f5099a3e3081e11cccb3841c77587dac",
+ "reference": "9d549952f5099a3e3081e11cccb3841c77587dac",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/log": "^2.0|^3.0",
+ "yiisoft/var-dumper": "^1.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25"
+ },
+ "suggest": {
+ "yiisoft/log-target-db": "Allows writing log messages to the database",
+ "yiisoft/log-target-email": "Allows sending log messages by email",
+ "yiisoft/log-target-file": "Allows writing log messages to the files",
+ "yiisoft/log-target-syslog": "Allows writing log messages to the Syslog"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "events-console": "events-console.php",
+ "events-web": "events-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Logging Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "log",
+ "logger",
+ "psr-3",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/log/issues?state=open",
+ "source": "https://github.com/yiisoft/log",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-03T10:13:44+00:00"
+ },
+ {
+ "name": "yiisoft/log-target-file",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/log-target-file.git",
+ "reference": "758a792d11f5b6d554450abc828e2db5d7613f22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/log-target-file/zipball/758a792d11f5b6d554450abc828e2db5d7613f22",
+ "reference": "758a792d11f5b6d554450abc828e2db5d7613f22",
+ "shasum": ""
+ },
+ "require": {
+ "ext-zlib": "*",
+ "php": "^8.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/log": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.1",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.2",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.0"
+ },
+ "suggest": {
+ "ext-zlib": "Enabling gzip compression of rotated files."
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Log\\Target\\File\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Logging Library - File Target",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "log",
+ "logger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/log-target-file/issues",
+ "source": "https://github.com/yiisoft/log-target-file",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-17T05:52:09+00:00"
+ },
+ {
+ "name": "yiisoft/middleware-dispatcher",
+ "version": "5.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/middleware-dispatcher.git",
+ "reference": "97d290e4ddab59e5a735ebafc69c46b6953022b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/middleware-dispatcher/zipball/97d290e4ddab59e5a735ebafc69c46b6953022b3",
+ "reference": "97d290e4ddab59e5a735ebafc69c46b6953022b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/definitions": "^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.3",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Middleware\\Dispatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-15 middleware dispatcher",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "dispatcher",
+ "middleware"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/middleware-dispatcher/issues?state=open",
+ "source": "https://github.com/yiisoft/middleware-dispatcher",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-09-25T07:01:31+00:00"
+ },
+ {
+ "name": "yiisoft/network-utilities",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/network-utilities.git",
+ "reference": "9b51434f17035ce70ba220518a9d52656b6c1cb4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/network-utilities/zipball/9b51434f17035ce70ba220518a9d52656b6c1cb4",
+ "reference": "9b51434f17035ce70ba220518a9d52656b6c1cb4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\NetworkUtilities\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Network related utilities",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "IP",
+ "dns",
+ "mask",
+ "network"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/network-utilities/issues?state=open",
+ "source": "https://github.com/yiisoft/network-utilities",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-02T14:07:06+00:00"
+ },
+ {
+ "name": "yiisoft/profiler",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/profiler.git",
+ "reference": "9f1bd1649f079ddfd45217f8da50533b12ca78a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/profiler/zipball/9f1bd1649f079ddfd45217f8da50533b12ca78a3",
+ "reference": "9f1bd1649f079ddfd45217f8da50533b12ca78a3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/log": "^2.0|^3.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.1",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "events-web": "events-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Profiler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Profiler",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "performance",
+ "profiler"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/profiler/issues?state=open",
+ "source": "https://github.com/yiisoft/profiler",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-15T09:15:24+00:00"
+ },
+ {
+ "name": "yiisoft/proxy",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/proxy.git",
+ "reference": "2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/proxy/zipball/2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6",
+ "reference": "2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/files": "^1.0.2|^2.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Proxy\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "proxy",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "proxy"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/proxy/issues?state=open",
+ "source": "https://github.com/yiisoft/proxy",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-01-17T13:21:34+00:00"
+ },
+ {
+ "name": "yiisoft/queue",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/queue.git",
+ "reference": "9fc8dee90766329e6db2448b28299d7ba259e646"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/queue/zipball/9fc8dee90766329e6db2448b28299d7ba259e646",
+ "reference": "9fc8dee90766329e6db2448b28299d7ba259e646",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "psr/log": "^2.0|^3.0",
+ "symfony/console": "^5.4|^6.0",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.20",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/yii-debug": "dev-master"
+ },
+ "suggest": {
+ "ext-pcntl": "Need for process signals"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Queue\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Queue Extension which supported DB, Redis, RabbitMQ, Beanstalk, SQS and Gearman",
+ "keywords": [
+ "async",
+ "beanstalk",
+ "db",
+ "gearman",
+ "gii",
+ "queue",
+ "rabbitmq",
+ "redis",
+ "sqs",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/queue/issues?state=open",
+ "source": "https://github.com/yiisoft/queue",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-15T17:34:15+00:00"
+ },
+ {
+ "name": "yiisoft/request-body-parser",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/request-body-parser.git",
+ "reference": "f164340fc1d199105d88bf9e79601458f7de4fe2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/request-body-parser/zipball/f164340fc1d199105d88bf9e79601458f7de4fe2",
+ "reference": "f164340fc1d199105d88bf9e79601458f7de4fe2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.4|^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2"
+ },
+ "require-dev": {
+ "nyholm/psr7": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Request\\Body\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Middleware for parsing various data formats",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "body",
+ "middleware",
+ "parser",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/request-body-parser/issues?state=open",
+ "source": "https://github.com/yiisoft/request-body-parser",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-06-03T17:47:14+00:00"
+ },
+ {
+ "name": "yiisoft/request-provider",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/request-provider.git",
+ "reference": "667e339f307eaf3d4e4f09f05334e41761d20a81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/request-provider/zipball/667e339f307eaf3d4e4f09f05334e41761d20a81",
+ "reference": "667e339f307eaf3d4e4f09f05334e41761d20a81",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.1",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.20",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\RequestProvider\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-7 request provider",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "http",
+ "provider",
+ "psr",
+ "request",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/request-provider/issues?state=open",
+ "source": "https://github.com/yiisoft/request-provider",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-02T15:18:14+00:00"
+ },
+ {
+ "name": "yiisoft/router",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/router.git",
+ "reference": "86ee95984109bd96548cad3f93df8ad9ca4de0b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/router/zipball/86ee95984109bd96548cad3f93df8ad9ca4de0b8",
+ "reference": "86ee95984109bd96548cad3f93df8ad9ca4de0b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^5.0",
+ "yiisoft/router-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^1.1|^2.0",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.22",
+ "yiisoft/di": "^1.0",
+ "yiisoft/dummy-provider": "^1.0.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/hydrator": "Needed to use `RouteArgument` attribute",
+ "yiisoft/router-fastroute": "Router implementation based on nikic/FastRoute"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Router\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii router",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "middleware",
+ "router",
+ "web"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/router/issues?state=open",
+ "source": "https://github.com/yiisoft/router",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-02-20T11:39:48+00:00"
+ },
+ {
+ "name": "yiisoft/router-fastroute",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/router-fastroute.git",
+ "reference": "4f2214eed24e140687e714ccb08a6420da316059"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/router-fastroute/zipball/4f2214eed24e140687e714ccb08a6420da316059",
+ "reference": "4f2214eed24e140687e714ccb08a6420da316059",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/fast-route": "^1.3",
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/router": "^2.1|^3.0"
+ },
+ "provide": {
+ "yiisoft/router-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Router\\FastRoute\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii router FastRoute adapter",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "FastRoute",
+ "router"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/router-fastroute/issues?state=open",
+ "source": "https://github.com/yiisoft/router-fastroute",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-19T12:26:45+00:00"
+ },
+ {
+ "name": "yiisoft/security",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/security.git",
+ "reference": "f1ad5d279722f162cfb0f720a3723ad762892de3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/security/zipball/f1ad5d279722f162cfb0f720a3723ad762892de3",
+ "reference": "f1ad5d279722f162cfb0f720a3723ad762892de3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-hash": "*",
+ "ext-openssl": "*",
+ "php": "^7.4|^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.23"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Security\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Security utilities",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "MAC",
+ "decryption",
+ "encryption",
+ "hash",
+ "password",
+ "random",
+ "security",
+ "signature",
+ "token masking"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/security/issues?state=open",
+ "source": "https://github.com/yiisoft/security",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-18T12:20:01+00:00"
+ },
+ {
+ "name": "yiisoft/session",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/session.git",
+ "reference": "193c666a8d1fcce5985c48afe9c3df96b6d3b6d1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/session/zipball/193c666a8d1fcce5985c48afe9c3df96b6d3b6d1",
+ "reference": "193c666a8d1fcce5985c48afe9c3df96b6d3b6d1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/cookies": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.1"
+ },
+ "suggest": {
+ "ext-session": "Allows using native PHP sessions"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Session\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "A session service, PSR-15 session middleware, and a flash message service which helps use one-time messages.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "flash",
+ "middleware",
+ "psr-15",
+ "session"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/session/issues?state=open",
+ "source": "https://github.com/yiisoft/session",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-05-02T18:50:11+00:00"
+ },
+ {
+ "name": "yiisoft/strings",
+ "version": "2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/strings.git",
+ "reference": "ff519d31e1c2518f42554fb5410e31bbb74b8108"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/strings/zipball/ff519d31e1c2518f42554fb5410e31bbb74b8108",
+ "reference": "ff519d31e1c2518f42554fb5410e31bbb74b8108",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Strings\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Strings Helper",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "helper",
+ "string",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/strings/issues",
+ "source": "https://github.com/yiisoft/strings",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-22T07:29:39+00:00"
+ },
+ {
+ "name": "yiisoft/translator",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/translator.git",
+ "reference": "869a224bf59dda36a8725985f5dd2e31cb357e21"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/translator/zipball/869a224bf59dda36a8725985f5dd2e31cb357e21",
+ "reference": "869a224bf59dda36a8725985f5dd2e31cb357e21",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/i18n": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/di": "^1.2"
+ },
+ "suggest": {
+ "ext-intl": "Allows using intl message formatter",
+ "ext-tokenizer": "Allows using message extraction",
+ "yiisoft/event-dispatcher": "To listen for events about missing categories and messages"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Translator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Message Translator",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "i18n",
+ "internationalization",
+ "translation"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/translator/issues?state=open",
+ "source": "https://github.com/yiisoft/translator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-17T13:16:40+00:00"
+ },
+ {
+ "name": "yiisoft/translator-message-php",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/translator-message-php.git",
+ "reference": "67a0c64c132e5098f6824017ca4bccd45cc79030"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/translator-message-php/zipball/67a0c64c132e5098f6824017ca4bccd45cc79030",
+ "reference": "67a0c64c132e5098f6824017ca4bccd45cc79030",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/translator": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.4",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Translator\\Message\\Php\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Translator PHP Message Storage",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "formatting",
+ "i18n",
+ "internationalization",
+ "message storage"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/translator-message-php/issues?state=open",
+ "source": "https://github.com/yiisoft/translator-message-php",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-19T11:29:34+00:00"
+ },
+ {
+ "name": "yiisoft/user",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/user.git",
+ "reference": "7bd541166949ac56a722a9555d43dac29976f424"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/user/zipball/7bd541166949ac56a722a9555d43dac29976f424",
+ "reference": "7bd541166949ac56a722a9555d43dac29976f424",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.4|^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/access": "^1.0",
+ "yiisoft/auth": "^2.0|^3.0",
+ "yiisoft/cookies": "^1.2",
+ "yiisoft/http": "^1.2",
+ "yiisoft/session": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\User\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Convenient user identity management and access checking",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "user",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/user/issues?state=open",
+ "source": "https://github.com/yiisoft/user",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-15T10:47:39+00:00"
+ },
+ {
+ "name": "yiisoft/validator",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/validator.git",
+ "reference": "9e8ad99e66c750aceda96fd96033ff4b5d4a7e62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/validator/zipball/9e8ad99e66c750aceda96fd96033ff4b5d4a7e62",
+ "reference": "9e8ad99e66c750aceda96fd96033ff4b5d4a7e62",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "yiisoft/arrays": "^2.1|^3.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/network-utilities": "^1.2",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/translator": "^2.1|^3.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "phpbench/phpbench": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.24",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/translator-message-php": "^1.1",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "suggest": {
+ "ext-fileinfo": "To use image rule",
+ "ext-intl": "Allows using date rules and IDN validation for emails",
+ "yiisoft/di": "To create rule handlers via Yii DI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Validator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Validator",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/validator/issues?state=open",
+ "source": "https://github.com/yiisoft/validator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-12T12:10:04+00:00"
+ },
+ {
+ "name": "yiisoft/var-dumper",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/var-dumper.git",
+ "reference": "c7f6a40d117b905abe26ac093593eaf7c57b9bd5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/var-dumper/zipball/c7f6a40d117b905abe26ac093593eaf7c57b9bd5",
+ "reference": "c7f6a40d117b905abe26ac093593eaf7c57b9bd5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "php": "^8.0",
+ "yiisoft/arrays": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.3"
+ },
+ "suggest": {
+ "ext-sockets": "Send dumps to a server through UDP/TCP protocols"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Yiisoft\\VarDumper\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Enhances functionality of var_dump() and var_export(). It is dealing with recursive references, may highlight syntax and export closures.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "helper",
+ "var-dumper",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/var-dumper/issues",
+ "source": "https://github.com/yiisoft/var-dumper",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-10-08T11:21:24+00:00"
+ },
+ {
+ "name": "yiisoft/view",
+ "version": "10.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/view.git",
+ "reference": "4416d30e4e286e23887d9f525701f37e3a15f9ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/view/zipball/4416d30e4e286e23887d9f525701f37e3a15f9ca",
+ "reference": "4416d30e4e286e23887d9f525701f37e3a15f9ca",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0",
+ "psr/event-dispatcher-implementation": "1.0.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/cache": "^1.0|^2.0|^3.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/html": "^2.5|^3.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "1.0.*",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.20",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^1.4|^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\View\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii View Rendering Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "view",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/view/issues?state=open",
+ "source": "https://github.com/yiisoft/view",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-06-28T10:02:35+00:00"
+ },
+ {
+ "name": "yiisoft/yii-console",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-console.git",
+ "reference": "7942fc70df59965bb1b33ac4671c915a145d2dcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-console/zipball/7942fc70df59965bb1b33ac4671c915a145d2dcf",
+ "reference": "7942fc70df59965bb1b33ac4671c915a145d2dcf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher-contracts": "^2.2|^3.0",
+ "yiisoft/friendly-exception": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "vimeo/psalm": "^4.30|^5.20",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config",
+ "merge-plan-file": "../tests/environment/.merge-plan.php"
+ },
+ "config-plugin": {
+ "params-console": "params-console.php",
+ "di-console": "di-console.php",
+ "events-console": "events-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Console\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Symfony console wrapper with additional features",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "console",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-console/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-console",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-02-17T13:10:12+00:00"
+ },
+ {
+ "name": "yiisoft/yii-cycle",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-cycle.git",
+ "reference": "071361f0a97ed314add6c2e285953ee02b3973a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-cycle/zipball/071361f0a97ed314add6c2e285953ee02b3973a6",
+ "reference": "071361f0a97ed314add6c2e285953ee02b3973a6",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/annotated": "^3.5",
+ "cycle/database": "^2.8",
+ "cycle/migrations": "^3.1.1|^4.0",
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "cycle/schema-migrations-generator": "^2.0",
+ "cycle/schema-provider": "^1.0",
+ "cycle/schema-renderer": "^1.2",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/log": "^3.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "spiral/attributes": "^2.7|^3.0",
+ "spiral/core": "^3.12",
+ "spiral/tokenizer": "^3.12",
+ "symfony/console": "^6.4",
+ "symfony/finder": "^5.4",
+ "webmozart/glob": "^4.7",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/injector": "^1.1"
+ },
+ "require-dev": {
+ "cycle/entity-behavior": "^1.0",
+ "ext-uopz": "*",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.7",
+ "yiisoft/definitions": "^3.2",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "cycle/entity-behavior": "To use PHP attributes that add behaviors to Cycle ORM entities."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-console": "di-console.php",
+ "events-console": "events-console.php",
+ "di-delegates": "di-delegates.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Cycle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Cycle ORM v2 support",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "cycle",
+ "migrations",
+ "orm",
+ "yii"
+ ],
+ "support": {
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-cycle/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-cycle",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-21T08:34:37+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug.git",
+ "reference": "90bb1960841cf3b054433d7c54210fd203d3fe8f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug/zipball/90bb1960841cf3b054433d7c54210fd203d3fe8f",
+ "reference": "90bb1960841cf3b054433d7c54210fd203d3fe8f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "guzzlehttp/psr7": "^2.4",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.4",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/profiler": "^3.0",
+ "yiisoft/proxy": "^1.0.1",
+ "yiisoft/strings": "^2.2",
+ "yiisoft/var-dumper": "^1.7"
+ },
+ "require-dev": {
+ "ext-curl": "*",
+ "ext-sockets": "*",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-http": "^1.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "bootstrap": "bootstrap.php",
+ "di": "di.php",
+ "di-console": "di-console.php",
+ "di-web": "di-web.php",
+ "di-providers": "di-providers.php",
+ "events-web": "events-web.php",
+ "events-console": "events-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\": "src",
+ "Yiisoft\\Yii\\Debug\\Tests\\Shared\\": "tests/Shared"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Debug Panel Extension",
+ "keywords": [
+ "debug",
+ "debugger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-17T07:39:11+00:00"
+ },
+ {
+ "name": "yiisoft/yii-event",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-event.git",
+ "reference": "2e02986a09235d20b3c02382f8cc5d7ad2e452fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-event/zipball/2e02986a09235d20b3c02382f8cc5d7ad2e452fb",
+ "reference": "2e02986a09235d20b3c02382f8cc5d7ad2e452fb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config",
+ "merge-plan-file": "../tests/environment/.merge-plan.php"
+ },
+ "config-plugin": {
+ "params-web": "params-web.php",
+ "params-console": "params-console.php",
+ "di": "di.php",
+ "di-web": "di-web.php",
+ "di-console": "di-console.php",
+ "events-web": [],
+ "events-console": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Event\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Event",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "event",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-event/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-event",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-04T15:57:42+00:00"
+ },
+ {
+ "name": "yiisoft/yii-http",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-http.git",
+ "reference": "2555514a091ec9339259f10abc7e8970ef9e5db6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-http/zipball/2555514a091ec9339259f10abc7e8970ef9e5db6",
+ "reference": "2555514a091ec9339259f10abc7e8970ef9e5db6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^3.0|^4.0|^5.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii HTTP Application",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "application",
+ "http",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-http/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-07T07:54:13+00:00"
+ },
+ {
+ "name": "yiisoft/yii-middleware",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-middleware.git",
+ "reference": "b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-middleware/zipball/b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a",
+ "reference": "b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^3.0",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/cookies": "^1.2",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/network-utilities": "^1.2",
+ "yiisoft/router": "^3.0",
+ "yiisoft/session": "^2.0",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/validator": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "ext-uopz": "*",
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "slope-it/clock-mock": "^0.3.6",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/event-dispatcher": "For using events",
+ "yiisoft/translator": "For updating translator's locale"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Middleware\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Middleware",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "middleware",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-middleware/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-middleware",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-03T19:34:10+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner.git",
+ "reference": "69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner/zipball/69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896",
+ "reference": "69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/yii-event": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.20",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/yii-runner-console": "Allows to run console application",
+ "yiisoft/yii-runner-http": "Allows to run HTTP application",
+ "yiisoft/yii-runner-roadrunner": "Allows to run HTTP application for RoadRunner"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "runner",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-09T14:10:08+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner-console",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner-console.git",
+ "reference": "e92f4e72778508e7c2918f8fc8c3e75b758eb61a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner-console/zipball/e92f4e72778508e7c2918f8fc8c3e75b758eb61a",
+ "reference": "e92f4e72778508e7c2918f8fc8c3e75b758eb61a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-runner": "^2.2"
+ },
+ "require-dev": {
+ "codeception/codeception": "^5.0",
+ "codeception/module-cli": "^2.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "rector/rector": "^1.0.0",
+ "vimeo/psalm": "^4.30|^5.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\Console\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Console application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "console",
+ "runner",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner-console/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner-console",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-10T10:06:34+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner-http",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner-http.git",
+ "reference": "798c37abbcceb6b0053744b4bde0c476cd53e15e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner-http/zipball/798c37abbcceb6b0053744b4bde0c476cd53e15e",
+ "reference": "798c37abbcceb6b0053744b4bde0c476cd53e15e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0 ",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner": "^2.2"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.2",
+ "xepozz/internal-mocker": "^1.4",
+ "yiisoft/middleware-dispatcher": "^5.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "HTTP application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "http",
+ "runner",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner-http/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-10T10:08:37+00:00"
+ },
+ {
+ "name": "yiisoft/yii-swagger",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-swagger.git",
+ "reference": "c0fe0483b04719a6724fb13650f679614e1b0cef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-swagger/zipball/c0fe0483b04719a6724fb13650f679614e1b0cef",
+ "reference": "c0fe0483b04719a6724fb13650f679614e1b0cef",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "swagger-api/swagger-ui": "^4.1|^5.0",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/assets": "^2.0|^3.0|^4.0",
+ "yiisoft/cache": "^1.0|^2.0|^3.0",
+ "yiisoft/data-response": "^1.0|^2.0",
+ "yiisoft/html": "^3.0",
+ "yiisoft/yii-view-renderer": "^7.1.0",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/csrf": "^2.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Swagger\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "OpenAPI Swagger for Yii Framework",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "api",
+ "swagger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-swagger/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-swagger",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-04T21:55:48+00:00"
+ },
+ {
+ "name": "yiisoft/yii-view-renderer",
+ "version": "7.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-view-renderer.git",
+ "reference": "cb11468f554d251c2deb87bf228a302c794134a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-view-renderer/zipball/cb11468f554d251c2deb87bf228a302c794134a3",
+ "reference": "cb11468f554d251c2deb87bf228a302c794134a3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/aliases": "^2.0|^3.0",
+ "yiisoft/csrf": "^1.2|^2.0",
+ "yiisoft/data-response": "^1.0|^2.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/html": "^2.5|^3.0",
+ "yiisoft/strings": "^2.0",
+ "yiisoft/view": "^10.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "1.0.*",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php",
+ "events-web": "events-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\View\\Renderer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-7 compatible view renderer",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "renderer",
+ "view",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-view-renderer/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-view-renderer",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-01T11:56:55+00:00"
+ },
+ {
+ "name": "zircote/swagger-php",
+ "version": "4.10.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zircote/swagger-php.git",
+ "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zircote/swagger-php/zipball/e462ff5269ea0ec91070edd5d51dc7215bdea3b6",
+ "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=7.2",
+ "psr/log": "^1.1 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^2 || ^3",
+ "symfony/finder": ">=2.2",
+ "symfony/yaml": ">=3.3"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.11",
+ "doctrine/annotations": "^1.7 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.17 || ^3.47.1",
+ "phpstan/phpstan": "^1.6",
+ "phpunit/phpunit": ">=8",
+ "vimeo/psalm": "^4.23"
+ },
+ "suggest": {
+ "doctrine/annotations": "^1.7 || ^2.0"
+ },
+ "bin": [
+ "bin/openapi"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OpenApi\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Robert Allen",
+ "email": "zircote@gmail.com"
+ },
+ {
+ "name": "Bob Fanger",
+ "email": "bfanger@gmail.com",
+ "homepage": "https://bfanger.nl"
+ },
+ {
+ "name": "Martin Rademacher",
+ "email": "mano@radebatz.net",
+ "homepage": "https://radebatz.net"
+ }
+ ],
+ "description": "swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations",
+ "homepage": "https://github.com/zircote/swagger-php/",
+ "keywords": [
+ "api",
+ "json",
+ "rest",
+ "service discovery"
+ ],
+ "support": {
+ "issues": "https://github.com/zircote/swagger-php/issues",
+ "source": "https://github.com/zircote/swagger-php/tree/4.10.6"
+ },
+ "time": "2024-07-26T03:04:43+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "amphp/amp",
+ "version": "v2.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/amp.git",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1",
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^7 | ^8 | ^9",
+ "react/promise": "^2",
+ "vimeo/psalm": "^3.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/functions.php",
+ "lib/Internal/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Daniel Lowrey",
+ "email": "rdlowrey@php.net"
+ },
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Bob Weinand",
+ "email": "bobwei9@hotmail.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A non-blocking concurrency framework for PHP applications.",
+ "homepage": "https://amphp.org/amp",
+ "keywords": [
+ "async",
+ "asynchronous",
+ "awaitable",
+ "concurrency",
+ "event",
+ "event-loop",
+ "future",
+ "non-blocking",
+ "promise"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/amphp",
+ "issues": "https://github.com/amphp/amp/issues",
+ "source": "https://github.com/amphp/amp/tree/v2.6.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-21T18:52:26+00:00"
+ },
+ {
+ "name": "amphp/byte-stream",
+ "version": "v1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/byte-stream.git",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1.4",
+ "friendsofphp/php-cs-fixer": "^2.3",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^6 || ^7 || ^8",
+ "psalm/phar": "^3.11.4"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\ByteStream\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A stream abstraction to make working with non-blocking I/O simple.",
+ "homepage": "https://amphp.org/byte-stream",
+ "keywords": [
+ "amp",
+ "amphp",
+ "async",
+ "io",
+ "non-blocking",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/amphp/byte-stream/issues",
+ "source": "https://github.com/amphp/byte-stream/tree/v1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-13T18:00:56+00:00"
+ },
+ {
+ "name": "behat/gherkin",
+ "version": "v4.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Behat/Gherkin.git",
+ "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4",
+ "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.2|~8.0"
+ },
+ "require-dev": {
+ "cucumber/cucumber": "dev-gherkin-22.0.0",
+ "phpunit/phpunit": "~8|~9",
+ "symfony/yaml": "~3|~4|~5"
+ },
+ "suggest": {
+ "symfony/yaml": "If you want to parse features, represented in YAML files"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Behat\\Gherkin": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ }
+ ],
+ "description": "Gherkin DSL parser for PHP",
+ "homepage": "http://behat.org/",
+ "keywords": [
+ "BDD",
+ "Behat",
+ "Cucumber",
+ "DSL",
+ "gherkin",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/Behat/Gherkin/issues",
+ "source": "https://github.com/Behat/Gherkin/tree/v4.9.0"
+ },
+ "time": "2021-10-12T13:05:09+00:00"
+ },
+ {
+ "name": "clue/stdio-react",
+ "version": "v2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-stdio.git",
+ "reference": "dfa6c378aabdff718202d4e2453f752c38ea3399"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-stdio/zipball/dfa6c378aabdff718202d4e2453f752c38ea3399",
+ "reference": "dfa6c378aabdff718202d4e2453f752c38ea3399",
+ "shasum": ""
+ },
+ "require": {
+ "clue/term-react": "^1.0 || ^0.1.1",
+ "clue/utf8-react": "^1.0 || ^0.1",
+ "php": ">=5.3",
+ "react/event-loop": "^1.2",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "clue/arguments": "^2.0",
+ "clue/commander": "^1.2",
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
+ },
+ "suggest": {
+ "ext-mbstring": "Using ext-mbstring should provide slightly better performance for handling I/O"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Stdio\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Async, event-driven console input & output (STDIN, STDOUT) for truly interactive CLI applications, built on top of ReactPHP",
+ "homepage": "https://github.com/clue/reactphp-stdio",
+ "keywords": [
+ "async",
+ "autocomplete",
+ "autocompletion",
+ "cli",
+ "history",
+ "interactive",
+ "reactphp",
+ "readline",
+ "stdin",
+ "stdio",
+ "stdout"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-stdio/issues",
+ "source": "https://github.com/clue/reactphp-stdio/tree/v2.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-03-18T15:09:30+00:00"
+ },
+ {
+ "name": "clue/term-react",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-term.git",
+ "reference": "00f297dc597eaee2ebf98af8f27cca5d21d60fa3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-term/zipball/00f297dc597eaee2ebf98af8f27cca5d21d60fa3",
+ "reference": "00f297dc597eaee2ebf98af8f27cca5d21d60fa3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/event-loop": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Term\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming terminal emulator, built on top of ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-term",
+ "keywords": [
+ "C0",
+ "CSI",
+ "ansi",
+ "apc",
+ "ascii",
+ "c1",
+ "control codes",
+ "dps",
+ "osc",
+ "pm",
+ "reactphp",
+ "streaming",
+ "terminal",
+ "vt100",
+ "xterm"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-term/issues",
+ "source": "https://github.com/clue/reactphp-term/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-30T10:22:09+00:00"
+ },
+ {
+ "name": "clue/utf8-react",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-utf8.git",
+ "reference": "d5cd04d39cb5457aa5df830b7c4b301d2694217e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-utf8/zipball/d5cd04d39cb5457aa5df830b7c4b301d2694217e",
+ "reference": "d5cd04d39cb5457aa5df830b7c4b301d2694217e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4 || ^0.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/stream": "^1.0 || ^0.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Utf8\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming UTF-8 parser, built on top of ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-utf8",
+ "keywords": [
+ "reactphp",
+ "streaming",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-utf8/issues",
+ "source": "https://github.com/clue/reactphp-utf8/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-06T14:52:17+00:00"
+ },
+ {
+ "name": "codeception/c3",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/c3.git",
+ "reference": "e23298a1cd5e7745973ea26a53572a3d9b013439"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/c3/zipball/e23298a1cd5e7745973ea26a53572a3d9b013439",
+ "reference": "e23298a1cd5e7745973ea26a53572a3d9b013439",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0 || ^2.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Codeception\\c3\\Installer"
+ },
+ "autoload": {
+ "psr-4": {
+ "Codeception\\c3\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tiger Seo",
+ "email": "tiger.seo@gmail.com"
+ },
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert.php@codegyre.com",
+ "homepage": "http://codegyre.com"
+ }
+ ],
+ "description": "CodeCoverage collector for Codeception",
+ "homepage": "http://codeception.com/",
+ "keywords": [
+ "code coverage",
+ "codecoverage"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/c3/issues",
+ "source": "https://github.com/Codeception/c3/tree/2.9.0"
+ },
+ "time": "2023-10-15T17:57:07+00:00"
+ },
+ {
+ "name": "codeception/codeception",
+ "version": "5.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/Codeception.git",
+ "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/Codeception/zipball/3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374",
+ "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374",
+ "shasum": ""
+ },
+ "require": {
+ "behat/gherkin": "^4.6.2",
+ "codeception/lib-asserts": "^2.0",
+ "codeception/stub": "^4.1",
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "phpunit/php-code-coverage": "^9.2 || ^10.0 || ^11.0",
+ "phpunit/php-text-template": "^2.0 || ^3.0 || ^4.0",
+ "phpunit/php-timer": "^5.0.3 || ^6.0 || ^7.0",
+ "phpunit/phpunit": "^9.5.20 || ^10.0 || ^11.0",
+ "psy/psysh": "^0.11.2 || ^0.12",
+ "sebastian/comparator": "^4.0.5 || ^5.0 || ^6.0",
+ "sebastian/diff": "^4.0.3 || ^5.0 || ^6.0",
+ "symfony/console": ">=4.4.24 <8.0",
+ "symfony/css-selector": ">=4.4.24 <8.0",
+ "symfony/event-dispatcher": ">=4.4.24 <8.0",
+ "symfony/finder": ">=4.4.24 <8.0",
+ "symfony/var-dumper": ">=4.4.24 <8.0",
+ "symfony/yaml": ">=4.4.24 <8.0"
+ },
+ "conflict": {
+ "codeception/lib-innerbrowser": "<3.1.3",
+ "codeception/module-filesystem": "<3.0",
+ "codeception/module-phpbrowser": "<2.5"
+ },
+ "replace": {
+ "codeception/phpunit-wrapper": "*"
+ },
+ "require-dev": {
+ "codeception/lib-innerbrowser": "*@dev",
+ "codeception/lib-web": "^1.0",
+ "codeception/module-asserts": "*@dev",
+ "codeception/module-cli": "*@dev",
+ "codeception/module-db": "*@dev",
+ "codeception/module-filesystem": "*@dev",
+ "codeception/module-phpbrowser": "*@dev",
+ "codeception/util-universalframework": "*@dev",
+ "ext-simplexml": "*",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "symfony/dotenv": ">=4.4.24 <8.0",
+ "symfony/process": ">=4.4.24 <8.0",
+ "vlucas/phpdotenv": "^5.1"
+ },
+ "suggest": {
+ "codeception/specify": "BDD-style code blocks",
+ "codeception/verify": "BDD-style assertions",
+ "ext-simplexml": "For loading params from XML files",
+ "stecman/symfony-console-completion": "For BASH autocompletion",
+ "symfony/dotenv": "For loading params from .env files",
+ "symfony/phpunit-bridge": "For phpunit-bridge support",
+ "vlucas/phpdotenv": "For loading params from .env files"
+ },
+ "bin": [
+ "codecept"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "psr-4": {
+ "Codeception\\": "src/Codeception",
+ "Codeception\\Extension\\": "ext"
+ },
+ "classmap": [
+ "src/PHPUnit/TestCase.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert.ua@gmail.com",
+ "homepage": "https://codeception.com"
+ }
+ ],
+ "description": "BDD-style testing framework",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "acceptance testing",
+ "functional testing",
+ "unit testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/Codeception/issues",
+ "source": "https://github.com/Codeception/Codeception/tree/5.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/codeception",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-07T07:19:42+00:00"
+ },
+ {
+ "name": "codeception/lib-asserts",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-asserts.git",
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/b8c7dff552249e560879c682ba44a4b963af91bc",
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/phpunit-wrapper": "^7.7.1 | ^8.0.3 | ^9.0",
+ "ext-dom": "*",
+ "php": "^7.4 | ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert@mail.ua",
+ "homepage": "http://codegyre.com"
+ },
+ {
+ "name": "Gintautas Miselis"
+ },
+ {
+ "name": "Gustavo Nieves",
+ "homepage": "https://medium.com/@ganieves"
+ }
+ ],
+ "description": "Assertion methods used by Codeception core and Asserts module",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-asserts/issues",
+ "source": "https://github.com/Codeception/lib-asserts/tree/2.1.0"
+ },
+ "time": "2023-02-10T18:36:23+00:00"
+ },
+ {
+ "name": "codeception/lib-innerbrowser",
+ "version": "3.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-innerbrowser.git",
+ "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
+ "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "^5.0",
+ "codeception/lib-web": "^1.0.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0",
+ "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "codeception/util-universalframework": "dev-master"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert@mail.ua",
+ "homepage": "https://codegyre.com"
+ },
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Parent library for all Codeception framework modules and PhpBrowser",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-innerbrowser/issues",
+ "source": "https://github.com/Codeception/lib-innerbrowser/tree/3.1.3"
+ },
+ "time": "2022-10-03T15:33:34+00:00"
+ },
+ {
+ "name": "codeception/lib-web",
+ "version": "1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-web.git",
+ "reference": "01ff7f9ed8760ba0b0805a0b3a843b4e74165a60"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-web/zipball/01ff7f9ed8760ba0b0805a0b3a843b4e74165a60",
+ "reference": "01ff7f9ed8760ba0b0805a0b3a843b4e74165a60",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "guzzlehttp/psr7": "^2.0",
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5 | ^10.0 | ^11.0",
+ "symfony/css-selector": ">=4.4.24 <8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0.0-alpha3"
+ },
+ "require-dev": {
+ "php-webdriver/webdriver": "^1.12"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-web/issues",
+ "source": "https://github.com/Codeception/lib-web/tree/1.0.6"
+ },
+ "time": "2024-02-06T20:50:08+00:00"
+ },
+ {
+ "name": "codeception/lib-xml",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-xml.git",
+ "reference": "ba49213e60807e3612513f404a5c93aec63f4c72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-xml/zipball/ba49213e60807e3612513f404a5c93aec63f4c72",
+ "reference": "ba49213e60807e3612513f404a5c93aec63f4c72",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/lib-web": "^1.0.6",
+ "ext-dom": "*",
+ "php": "^8.0",
+ "symfony/css-selector": ">=4.4.24 <8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0.0-alpha3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Files used by module-rest and module-soap",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-xml/issues",
+ "source": "https://github.com/Codeception/lib-xml/tree/1.0.3"
+ },
+ "time": "2024-02-06T21:00:41+00:00"
+ },
+ {
+ "name": "codeception/module-asserts",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-asserts.git",
+ "reference": "1b6b150b30586c3614e7e5761b31834ed7968603"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/1b6b150b30586c3614e7e5761b31834ed7968603",
+ "reference": "1b6b150b30586c3614e7e5761b31834ed7968603",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/lib-asserts": "^2.0",
+ "php": "^8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ },
+ {
+ "name": "Gintautas Miselis"
+ },
+ {
+ "name": "Gustavo Nieves",
+ "homepage": "https://medium.com/@ganieves"
+ }
+ ],
+ "description": "Codeception module containing various assertions",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "assertions",
+ "asserts",
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-asserts/issues",
+ "source": "https://github.com/Codeception/module-asserts/tree/3.0.0"
+ },
+ "time": "2022-02-16T19:48:08+00:00"
+ },
+ {
+ "name": "codeception/module-cli",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-cli.git",
+ "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63",
+ "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/module-asserts": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ }
+ ],
+ "description": "Codeception module for testing basic shell commands and shell output",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-cli/issues",
+ "source": "https://github.com/Codeception/module-cli/tree/2.0.1"
+ },
+ "time": "2023-01-13T18:41:03+00:00"
+ },
+ {
+ "name": "codeception/module-db",
+ "version": "3.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-db.git",
+ "reference": "06be16dcf4dda46eaef9454f1361d62bcb971c36"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-db/zipball/06be16dcf4dda46eaef9454f1361d62bcb971c36",
+ "reference": "06be16dcf4dda46eaef9454f1361d62bcb971c36",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-pdo": "*",
+ "php": "^8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0"
+ },
+ "require-dev": {
+ "squizlabs/php_codesniffer": "*"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ },
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "DB module for Codeception",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception",
+ "database-testing",
+ "db-testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-db/issues",
+ "source": "https://github.com/Codeception/module-db/tree/3.1.4"
+ },
+ "time": "2024-05-16T20:12:18+00:00"
+ },
+ {
+ "name": "codeception/module-phpbrowser",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-phpbrowser.git",
+ "reference": "a972411f60cd00d00d5e5e3b35496ba4a23bcffc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/a972411f60cd00d00d5e5e3b35496ba4a23bcffc",
+ "reference": "a972411f60cd00d00d5e5e3b35496ba4a23bcffc",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/lib-innerbrowser": "*@dev",
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^7.4",
+ "php": "^8.0",
+ "symfony/browser-kit": "^5.4 || ^6.0 || ^7.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0",
+ "codeception/lib-innerbrowser": "<3.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.199",
+ "codeception/module-rest": "^2.0 || *@dev",
+ "ext-curl": "*"
+ },
+ "suggest": {
+ "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ },
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Codeception module for testing web application over HTTP",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception",
+ "functional-testing",
+ "http"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-phpbrowser/issues",
+ "source": "https://github.com/Codeception/module-phpbrowser/tree/3.0.1"
+ },
+ "time": "2023-12-08T19:41:28+00:00"
+ },
+ {
+ "name": "codeception/module-rest",
+ "version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-rest.git",
+ "reference": "086762ee8a1686e954678b015a7dca4b922c6520"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-rest/zipball/086762ee8a1686e954678b015a7dca4b922c6520",
+ "reference": "086762ee8a1686e954678b015a7dca4b922c6520",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "^5.0.8",
+ "codeception/lib-xml": "^1.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "justinrainbow/json-schema": "^5.2.9",
+ "php": "^8.1",
+ "softcreatr/jsonpath": "^0.8 || ^0.9"
+ },
+ "require-dev": {
+ "codeception/lib-innerbrowser": "^3.0 | ^4.0",
+ "codeception/stub": "^4.0",
+ "codeception/util-universalframework": "^1.0",
+ "ext-libxml": "*",
+ "ext-simplexml": "*"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "For using AWS Auth"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "REST module for Codeception",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception",
+ "rest"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-rest/issues",
+ "source": "https://github.com/Codeception/module-rest/tree/3.4.0"
+ },
+ "time": "2024-07-12T06:28:28+00:00"
+ },
+ {
+ "name": "codeception/stub",
+ "version": "4.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/Stub.git",
+ "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/Stub/zipball/4fcad2c165f365377486dc3fd8703b07f1f2fcae",
+ "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 | ^8.0",
+ "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0.6"
+ },
+ "require-dev": {
+ "consolidation/robo": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Codeception\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
+ "support": {
+ "issues": "https://github.com/Codeception/Stub/issues",
+ "source": "https://github.com/Codeception/Stub/tree/4.1.3"
+ },
+ "time": "2024-02-02T19:21:00+00:00"
+ },
+ {
+ "name": "colinodell/json5",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/colinodell/json5.git",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^7.1.3|^8.0"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "mikehaertl/php-shellcommand": "^1.2.5",
+ "phpstan/phpstan": "^1.4",
+ "scrutinizer/ocular": "^1.6",
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0",
+ "symfony/finder": "^4.4|^5.4|^6.0",
+ "symfony/phpunit-bridge": "^5.4|^6.0"
+ },
+ "bin": [
+ "bin/json5"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/global.php"
+ ],
+ "psr-4": {
+ "ColinODell\\Json5\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "UTF-8 compatible JSON5 parser for PHP",
+ "homepage": "https://github.com/colinodell/json5",
+ "keywords": [
+ "JSON5",
+ "json",
+ "json5_decode",
+ "json_decode"
+ ],
+ "support": {
+ "issues": "https://github.com/colinodell/json5/issues",
+ "source": "https://github.com/colinodell/json5/tree/v2.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ }
+ ],
+ "time": "2022-12-27T16:44:40+00:00"
+ },
+ {
+ "name": "composer/package-versions-deprecated",
+ "version": "1.11.99.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/package-versions-deprecated.git",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1.0 || ^2.0",
+ "php": "^7 || ^8"
+ },
+ "replace": {
+ "ocramius/package-versions": "1.11.99"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9.3 || ^2.0@dev",
+ "ext-zip": "^1.13",
+ "phpunit/phpunit": "^6.5 || ^7"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
+ "support": {
+ "issues": "https://github.com/composer/package-versions-deprecated/issues",
+ "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-17T14:14:24+00:00"
+ },
+ {
+ "name": "composer/pcre",
+ "version": "3.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11.10",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-27T18:44:43+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T14:15:21+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-06T16:37:16+00:00"
+ },
+ {
+ "name": "dnoegel/php-xdg-base-dir",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "XdgBaseDir\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "implementation of xdg base directory specification for php",
+ "support": {
+ "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues",
+ "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1"
+ },
+ "time": "2019-12-04T15:06:13+00:00"
+ },
+ {
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9 || ^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Evenement\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ }
+ ],
+ "description": "Événement is a very simple event dispatching library for PHP",
+ "keywords": [
+ "event-dispatcher",
+ "event-emitter"
+ ],
+ "support": {
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
+ },
+ "time": "2023-08-08T05:53:35+00:00"
+ },
+ {
+ "name": "felixfbecker/advanced-json-rpc",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "shasum": ""
+ },
+ "require": {
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "php": "^7.1 || ^8.0",
+ "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "AdvancedJsonRpc\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "A more advanced JSONRPC implementation",
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
+ "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
+ },
+ "time": "2021-06-11T22:34:44+00:00"
+ },
+ {
+ "name": "felixfbecker/language-server-protocol",
+ "version": "v1.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-language-server-protocol.git",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "*",
+ "squizlabs/php_codesniffer": "^3.1",
+ "vimeo/psalm": "^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "LanguageServerProtocol\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "PHP classes for the Language Server Protocol",
+ "keywords": [
+ "language",
+ "microsoft",
+ "php",
+ "server"
+ ],
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
+ "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
+ },
+ "time": "2022-03-02T22:36:06+00:00"
+ },
+ {
+ "name": "fidry/cpu-core-counter",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Fidry\\CpuCoreCounter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
+ }
+ ],
+ "description": "Tiny utility to get the number of CPU cores.",
+ "keywords": [
+ "CPU",
+ "core"
+ ],
+ "support": {
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theofidry",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-06T10:04:20+00:00"
+ },
+ {
+ "name": "gitonomy/gitlib",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/gitonomy/gitlib.git",
+ "reference": "2c7fbbd9814178474d0bb1b6292701cb4ab508f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/gitonomy/gitlib/zipball/2c7fbbd9814178474d0bb1b6292701cb4ab508f9",
+ "reference": "2c7fbbd9814178474d0bb1b6292701cb4ab508f9",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "php": "^8.0",
+ "symfony/polyfill-mbstring": "^1.7",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "ext-fileinfo": "*",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.20 || ^9.5.9",
+ "psr/log": "^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Gitonomy\\Git\\": "src/Gitonomy/Git/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Julien Didier",
+ "email": "genzo.wm@gmail.com",
+ "homepage": "https://github.com/juliendidier"
+ },
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info",
+ "homepage": "https://github.com/lyrixx"
+ },
+ {
+ "name": "Alexandre Salomé",
+ "email": "alexandre.salome@gmail.com",
+ "homepage": "https://github.com/alexandresalome"
+ }
+ ],
+ "description": "Library for accessing git",
+ "support": {
+ "issues": "https://github.com/gitonomy/gitlib/issues",
+ "source": "https://github.com/gitonomy/gitlib/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-20T13:02:08+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "guzzle/client-integration-tests": "3.0.2",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-24T11:22:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T10:29:17+00:00"
+ },
+ {
+ "name": "httpsoft/http-basis",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-basis.git",
+ "reference": "63c4306c516375e3fa08358a58194e159bfbb984"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-basis/zipball/63c4306c516375e3fa08358a58194e159bfbb984",
+ "reference": "63c4306c516375e3fa08358a58194e159bfbb984",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "httpsoft/http-cookie": "^1.1",
+ "httpsoft/http-emitter": "^1.1",
+ "httpsoft/http-error-handler": "^1.1",
+ "httpsoft/http-message": "^1.1",
+ "httpsoft/http-response": "^1.1",
+ "httpsoft/http-router": "^1.1",
+ "httpsoft/http-runner": "^1.1",
+ "httpsoft/http-server-request": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "devanych/di-container": "^2.1",
+ "devanych/view-renderer": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Basis\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Simple and fast HTTP microframework implementing PSR standards",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "PSR-11",
+ "http",
+ "http-framework",
+ "microframework",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/basis",
+ "issues": "https://github.com/httpsoft/http-basis/issues",
+ "source": "https://github.com/httpsoft/http-basis"
+ },
+ "time": "2023-05-05T22:15:06+00:00"
+ },
+ {
+ "name": "httpsoft/http-cookie",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-cookie.git",
+ "reference": "c304b7d9888ed27bf2bcdb95762d87263a457644"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-cookie/zipball/c304b7d9888ed27bf2bcdb95762d87263a457644",
+ "reference": "c304b7d9888ed27bf2bcdb95762d87263a457644",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Cookie\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Managing cookies with PSR-7 support",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "cookie",
+ "cookies",
+ "http",
+ "http-cookie",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/cookie",
+ "issues": "https://github.com/httpsoft/http-cookie/issues",
+ "source": "https://github.com/httpsoft/http-cookie"
+ },
+ "time": "2023-05-05T20:37:18+00:00"
+ },
+ {
+ "name": "httpsoft/http-emitter",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-emitter.git",
+ "reference": "b09e2834b6d40e022f0c0eb7417f97f496e376b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-emitter/zipball/b09e2834b6d40e022f0c0eb7417f97f496e376b6",
+ "reference": "b09e2834b6d40e022f0c0eb7417f97f496e376b6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Emitter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Emitting of PSR-7 Response implementation",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "emitter",
+ "http",
+ "http-emitter",
+ "http-message",
+ "php",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/emitter",
+ "issues": "https://github.com/httpsoft/http-emitter/issues",
+ "source": "https://github.com/httpsoft/http-emitter"
+ },
+ "time": "2023-05-05T20:18:44+00:00"
+ },
+ {
+ "name": "httpsoft/http-error-handler",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-error-handler.git",
+ "reference": "f5bfb10cdf6de7420e59d8342ba12f19749e7bc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-error-handler/zipball/f5bfb10cdf6de7420e59d8342ba12f19749e7bc1",
+ "reference": "f5bfb10cdf6de7420e59d8342ba12f19749e7bc1",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-response": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-server-request": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\ErrorHandler\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Error handling PSR-7 and PSR-15 components",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "error-handler",
+ "error-middleware",
+ "http",
+ "http-error",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/error-handler",
+ "issues": "https://github.com/httpsoft/http-error-handler/issues",
+ "source": "https://github.com/httpsoft/http-error-handler"
+ },
+ "time": "2023-05-05T21:14:04+00:00"
+ },
+ {
+ "name": "httpsoft/http-response",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-response.git",
+ "reference": "6e9d25a540506ba8a5165817fdd856a856e32c02"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-response/zipball/6e9d25a540506ba8a5165817fdd856a856e32c02",
+ "reference": "6e9d25a540506ba8a5165817fdd856a856e32c02",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-message": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Response\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "PSR-7 Response implementations",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "http-response",
+ "php",
+ "psr-7",
+ "responses"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/response",
+ "issues": "https://github.com/httpsoft/http-response/issues",
+ "source": "https://github.com/httpsoft/http-response"
+ },
+ "time": "2023-05-05T20:55:06+00:00"
+ },
+ {
+ "name": "httpsoft/http-router",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-router.git",
+ "reference": "460ee40b15ceb61d86a7c511d321c4580960601e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-router/zipball/460ee40b15ceb61d86a7c511d321c4580960601e",
+ "reference": "460ee40b15ceb61d86a7c511d321c4580960601e",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-runner": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Router\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Simple and fast HTTP request router providing PSR-7 and PSR-15",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-router",
+ "php",
+ "psr-15",
+ "psr-7",
+ "route",
+ "router"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/router",
+ "issues": "https://github.com/httpsoft/http-router/issues",
+ "source": "https://github.com/httpsoft/http-router"
+ },
+ "time": "2023-05-05T22:02:47+00:00"
+ },
+ {
+ "name": "httpsoft/http-runner",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-runner.git",
+ "reference": "00ddc625dbf8f0acb786e899575537c7e8327847"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-runner/zipball/00ddc625dbf8f0acb786e899575537c7e8327847",
+ "reference": "00ddc625dbf8f0acb786e899575537c7e8327847",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-emitter": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "devanych/di-container": "^2.1",
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Runner\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Running PSR-7 components and building PSR-15 middleware pipelines",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-middleware",
+ "middleware-pipeline",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/runner",
+ "issues": "https://github.com/httpsoft/http-runner/issues",
+ "source": "https://github.com/httpsoft/http-runner"
+ },
+ "time": "2023-05-05T21:47:55+00:00"
+ },
+ {
+ "name": "httpsoft/http-server-request",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-server-request.git",
+ "reference": "3d773c8bcaa1c44793d35842fcd82a9d5fd5f193"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-server-request/zipball/3d773c8bcaa1c44793d35842fcd82a9d5fd5f193",
+ "reference": "3d773c8bcaa1c44793d35842fcd82a9d5fd5f193",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-message": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\ServerRequest\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Infrastructure for creating PSR-7 ServerRequest and UploadedFile",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "http-server-request",
+ "php",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/server-request",
+ "issues": "https://github.com/httpsoft/http-server-request/issues",
+ "source": "https://github.com/httpsoft/http-server-request"
+ },
+ "time": "2023-05-05T19:55:05+00:00"
+ },
+ {
+ "name": "infection/abstract-testframework-adapter",
+ "version": "0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/abstract-testframework-adapter.git",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\AbstractTestFramework\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Abstract Test Framework Adapter for Infection",
+ "support": {
+ "issues": "https://github.com/infection/abstract-testframework-adapter/issues",
+ "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-17T18:49:12+00:00"
+ },
+ {
+ "name": "infection/extension-installer",
+ "version": "0.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/extension-installer.git",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/extension-installer/zipball/9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.18, <2.19",
+ "infection/infection": "^0.15.2",
+ "php-coveralls/php-coveralls": "^2.4",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.10",
+ "phpstan/phpstan-phpunit": "^0.12.6",
+ "phpstan/phpstan-strict-rules": "^0.12.2",
+ "phpstan/phpstan-webmozart-assert": "^0.12.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.8"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Infection\\ExtensionInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Infection\\ExtensionInstaller\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Infection Extension Installer",
+ "support": {
+ "issues": "https://github.com/infection/extension-installer/issues",
+ "source": "https://github.com/infection/extension-installer/tree/0.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-10-20T22:08:34+00:00"
+ },
+ {
+ "name": "infection/include-interceptor",
+ "version": "0.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/include-interceptor.git",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/include-interceptor/zipball/0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "shasum": ""
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "infection/infection": "^0.15.0",
+ "phan/phan": "^2.4 || ^3",
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpstan/phpstan": "^0.12.8",
+ "phpunit/phpunit": "^8.5",
+ "vimeo/psalm": "^3.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\StreamWrapper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.",
+ "support": {
+ "issues": "https://github.com/infection/include-interceptor/issues",
+ "source": "https://github.com/infection/include-interceptor/tree/0.2.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-09T10:03:57+00:00"
+ },
+ {
+ "name": "infection/infection",
+ "version": "0.27.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/infection.git",
+ "reference": "873cd3335774a114bef9ca93388e623bf362d820"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/infection/zipball/873cd3335774a114bef9ca93388e623bf362d820",
+ "reference": "873cd3335774a114bef9ca93388e623bf362d820",
+ "shasum": ""
+ },
+ "require": {
+ "colinodell/json5": "^2.2",
+ "composer-runtime-api": "^2.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "fidry/cpu-core-counter": "^0.4.0 || ^0.5.0 || ^1.0",
+ "infection/abstract-testframework-adapter": "^0.5.0",
+ "infection/extension-installer": "^0.1.0",
+ "infection/include-interceptor": "^0.2.5",
+ "justinrainbow/json-schema": "^5.2.10",
+ "nikic/php-parser": "^4.15.1",
+ "ondram/ci-detector": "^4.1.0",
+ "php": "^8.1",
+ "sanmai/later": "^0.1.1",
+ "sanmai/pipeline": "^5.1 || ^6",
+ "sebastian/diff": "^3.0.2 || ^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/safe": "^2.1.2",
+ "webmozart/assert": "^1.11"
+ },
+ "conflict": {
+ "antecedent/patchwork": "<2.1.25",
+ "dg/bypass-finals": "<1.4.1",
+ "phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21"
+ },
+ "require-dev": {
+ "brianium/paratest": "^6.11",
+ "ext-simplexml": "*",
+ "fidry/makefile": "^0.2.0",
+ "helmich/phpunit-json-assert": "^3.0",
+ "phpspec/prophecy": "^1.15",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0.2",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^0.16.0",
+ "sidz/phpstan-rules": "^0.4.0",
+ "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.2.0"
+ },
+ "bin": [
+ "bin/infection"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com",
+ "homepage": "https://twitter.com/maks_rafalko"
+ },
+ {
+ "name": "Oleg Zhulnev",
+ "homepage": "https://github.com/sidz"
+ },
+ {
+ "name": "Gert de Pagter",
+ "homepage": "https://github.com/BackEndTea"
+ },
+ {
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com",
+ "homepage": "https://twitter.com/tfidry"
+ },
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com",
+ "homepage": "https://www.alexeykopytko.com"
+ },
+ {
+ "name": "Andreas Möller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.",
+ "keywords": [
+ "coverage",
+ "mutant",
+ "mutation framework",
+ "mutation testing",
+ "testing",
+ "unit testing"
+ ],
+ "support": {
+ "issues": "https://github.com/infection/infection/issues",
+ "source": "https://github.com/infection/infection/tree/0.27.10"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-02-20T00:08:52+00:00"
+ },
+ {
+ "name": "jolicode/jolinotif",
+ "version": "v2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jolicode/JoliNotif.git",
+ "reference": "b34dac1826c8d33e9fd5c300546261e94f1ebdb8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jolicode/JoliNotif/zipball/b34dac1826c8d33e9fd5c300546261e94f1ebdb8",
+ "reference": "b34dac1826c8d33e9fd5c300546261e94f1ebdb8",
+ "shasum": ""
+ },
+ "require": {
+ "jolicode/php-os-helper": "^0.1.0",
+ "php": ">=8.1",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^3",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-ffi": "Needed to send notifications via libnotify on Linux"
+ },
+ "bin": [
+ "jolinotif"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Joli\\JoliNotif\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Loïck Piera",
+ "email": "pyrech@gmail.com"
+ }
+ ],
+ "description": "Send desktop notifications on Windows, Linux, MacOS.",
+ "keywords": [
+ "MAC",
+ "growl",
+ "linux",
+ "notification",
+ "windows"
+ ],
+ "support": {
+ "issues": "https://github.com/jolicode/JoliNotif/issues",
+ "source": "https://github.com/jolicode/JoliNotif/tree/v2.7.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/jolicode/jolinotif",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-01T06:05:49+00:00"
+ },
+ {
+ "name": "jolicode/php-os-helper",
+ "version": "v0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jolicode/php-os-helper.git",
+ "reference": "1622ad8bbcab98e62b5c041397e8519f10d90e29"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jolicode/php-os-helper/zipball/1622ad8bbcab98e62b5c041397e8519f10d90e29",
+ "reference": "1622ad8bbcab98e62b5c041397e8519f10d90e29",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^6.3.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JoliCode\\PhpOsHelper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Loïck Piera",
+ "email": "pyrech@gmail.com"
+ }
+ ],
+ "description": "Helpers to detect the OS of the machine where PHP is running.",
+ "keywords": [
+ "linux",
+ "os",
+ "osx",
+ "php",
+ "windows"
+ ],
+ "support": {
+ "issues": "https://github.com/jolicode/php-os-helper/issues",
+ "source": "https://github.com/jolicode/php-os-helper/tree/v0.1.0"
+ },
+ "time": "2023-12-03T12:46:03+00:00"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jsonrainbow/json-schema.git",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
+ "json-schema/json-schema-test-suite": "1.2.0",
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schönthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/jsonrainbow/json-schema/issues",
+ "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
+ },
+ "time": "2024-07-06T21:00:26+00:00"
+ },
+ {
+ "name": "masterminds/html5",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "description": "An HTML5 parser and serializer.",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "keywords": [
+ "HTML5",
+ "dom",
+ "html",
+ "parser",
+ "querypath",
+ "serializer",
+ "xml"
+ ],
+ "support": {
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
+ },
+ "time": "2024-03-31T07:05:07+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-12T14:39:25+00:00"
+ },
+ {
+ "name": "netresearch/jsonmapper",
+ "version": "v4.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweiske/jsonmapper.git",
+ "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
+ "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0",
+ "squizlabs/php_codesniffer": "~3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "JsonMapper": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "OSL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Christian Weiske",
+ "email": "cweiske@cweiske.de",
+ "homepage": "http://github.com/cweiske/jsonmapper/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Map nested JSON structures onto PHP classes",
+ "support": {
+ "email": "cweiske@cweiske.de",
+ "issues": "https://github.com/cweiske/jsonmapper/issues",
+ "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0"
+ },
+ "time": "2024-09-08T10:13:13+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.19.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "0ed4c8949a32986043e977dbe14776c14d644c45"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ed4c8949a32986043e977dbe14776c14d644c45",
+ "reference": "0ed4c8949a32986043e977dbe14776c14d644c45",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.2"
+ },
+ "time": "2024-09-17T19:36:00+00:00"
+ },
+ {
+ "name": "nyholm/psr7",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Nyholm\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
+ }
+ ],
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
+ "keywords": [
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-09T07:06:30+00:00"
+ },
+ {
+ "name": "ondram/ci-detector",
+ "version": "4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/OndraM/ci-detector.git",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.13.2",
+ "lmc/coding-standard": "^3.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.2.0",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpunit/phpunit": "^9.6.13"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "OndraM\\CiDetector\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ondřej Machulda",
+ "email": "ondrej.machulda@gmail.com"
+ }
+ ],
+ "description": "Detect continuous integration environment and provide unified access to properties of current build",
+ "keywords": [
+ "CircleCI",
+ "Codeship",
+ "Wercker",
+ "adapter",
+ "appveyor",
+ "aws",
+ "aws codebuild",
+ "azure",
+ "azure devops",
+ "azure pipelines",
+ "bamboo",
+ "bitbucket",
+ "buddy",
+ "ci-info",
+ "codebuild",
+ "continuous integration",
+ "continuousphp",
+ "devops",
+ "drone",
+ "github",
+ "gitlab",
+ "interface",
+ "jenkins",
+ "pipelines",
+ "sourcehut",
+ "teamcity",
+ "travis"
+ ],
+ "support": {
+ "issues": "https://github.com/OndraM/ci-detector/issues",
+ "source": "https://github.com/OndraM/ci-detector/tree/4.2.0"
+ },
+ "time": "2024-03-12T13:22:30+00:00"
+ },
+ {
+ "name": "openlss/lib-array2xml",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nullivex/lib-array2xml.git",
+ "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
+ "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "LSS": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Bryan Tong",
+ "email": "bryan@nullivex.com",
+ "homepage": "https://www.nullivex.com"
+ },
+ {
+ "name": "Tony Butler",
+ "email": "spudz76@gmail.com",
+ "homepage": "https://www.nullivex.com"
+ }
+ ],
+ "description": "Array2XML conversion library credit to lalit.org",
+ "homepage": "https://www.nullivex.com",
+ "keywords": [
+ "array",
+ "array conversion",
+ "xml",
+ "xml conversion"
+ ],
+ "support": {
+ "issues": "https://github.com/nullivex/lib-array2xml/issues",
+ "source": "https://github.com/nullivex/lib-array2xml/tree/master"
+ },
+ "time": "2019-03-29T20:06:56+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.1",
+ "ext-filter": "*",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.5",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-webmozart-assert": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
+ },
+ "time": "2024-05-21T05:55:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.3 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+ },
+ "time": "2024-02-23T11:10:43+00:00"
+ },
+ {
+ "name": "phpspec/php-diff",
+ "version": "v1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/php-diff.git",
+ "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/php-diff/zipball/fc1156187f9f6c8395886fe85ed88a0a245d72e9",
+ "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9",
+ "shasum": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Diff": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Chris Boulton",
+ "homepage": "http://github.com/chrisboulton"
+ }
+ ],
+ "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
+ "support": {
+ "source": "https://github.com/phpspec/php-diff/tree/v1.1.3"
+ },
+ "time": "2020-09-18T13:47:07+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.30.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "51b95ec8670af41009e2b2b56873bad96682413e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e",
+ "reference": "51b95ec8670af41009e2b2b56873bad96682413e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1"
+ },
+ "time": "2024-09-07T20:13:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.32",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "9.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T04:23:01+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa",
+ "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.5.0 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.12.0",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T10:50:18+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.12.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "support": {
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.4"
+ },
+ "time": "2024-06-10T01:18:23+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-11T12:45:25+00:00"
+ },
+ {
+ "name": "roave/infection-static-analysis-plugin",
+ "version": "1.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/infection-static-analysis-plugin.git",
+ "reference": "3cb32845c5f758913a4b9eafd91ae18eafc26d82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/infection-static-analysis-plugin/zipball/3cb32845c5f758913a4b9eafd91ae18eafc26d82",
+ "reference": "3cb32845c5f758913a4b9eafd91ae18eafc26d82",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "infection/infection": "0.27.10",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "sanmai/later": "^0.1.4",
+ "vimeo/psalm": "^4.30.0 || ^5.15"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "phpunit/phpunit": "^10.5.12"
+ },
+ "bin": [
+ "bin/roave-infection-static-analysis-plugin"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\InfectionStaticAnalysis\\": "src/Roave/InfectionStaticAnalysis"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis",
+ "support": {
+ "issues": "https://github.com/Roave/infection-static-analysis-plugin/issues",
+ "source": "https://github.com/Roave/infection-static-analysis-plugin/tree/1.35.0"
+ },
+ "time": "2024-03-10T11:55:48+00:00"
+ },
+ {
+ "name": "roave/security-advisories",
+ "version": "dev-latest",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/SecurityAdvisories.git",
+ "reference": "4b6b927472278272e2411f4341dba95d96c8c7d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/4b6b927472278272e2411f4341dba95d96c8c7d7",
+ "reference": "4b6b927472278272e2411f4341dba95d96c8c7d7",
+ "shasum": ""
+ },
+ "conflict": {
+ "3f/pygmentize": "<1.2",
+ "admidio/admidio": "<4.3.10",
+ "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
+ "aheinze/cockpit": "<2.2",
+ "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.04.6",
+ "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1",
+ "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7",
+ "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9",
+ "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7",
+ "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
+ "airesvsg/acf-to-rest-api": "<=3.1",
+ "akaunting/akaunting": "<2.1.13",
+ "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
+ "alextselegidis/easyappointments": "<1.5",
+ "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
+ "amazing/media2click": ">=1,<1.3.3",
+ "amphp/artax": "<1.0.6|>=2,<2.0.6",
+ "amphp/http": "<=1.7.2|>=2,<=2.1",
+ "amphp/http-client": ">=4,<4.4",
+ "anchorcms/anchor-cms": "<=0.12.7",
+ "andreapollastri/cipi": "<=3.1.15",
+ "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5",
+ "apache-solr-for-typo3/solr": "<2.8.3",
+ "apereo/phpcas": "<1.6",
+ "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3",
+ "appwrite/server-ce": "<=1.2.1",
+ "arc/web": "<3",
+ "area17/twill": "<1.2.5|>=2,<2.5.3",
+ "artesaos/seotools": "<0.17.2",
+ "asymmetricrypt/asymmetricrypt": "<9.9.99",
+ "athlon1600/php-proxy": "<=5.1",
+ "athlon1600/php-proxy-app": "<=3",
+ "austintoddj/canvas": "<=3.4.2",
+ "auth0/wordpress": "<=4.6",
+ "automad/automad": "<2.0.0.0-alpha5",
+ "automattic/jetpack": "<9.8",
+ "awesome-support/awesome-support": "<=6.0.7",
+ "aws/aws-sdk-php": "<3.288.1",
+ "azuracast/azuracast": "<0.18.3",
+ "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2",
+ "backpack/crud": "<3.4.9",
+ "bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
+ "badaso/core": "<2.7",
+ "bagisto/bagisto": "<2.1",
+ "barrelstrength/sprout-base-email": "<1.2.7",
+ "barrelstrength/sprout-forms": "<3.9",
+ "barryvdh/laravel-translation-manager": "<0.6.2",
+ "barzahlen/barzahlen-php": "<2.0.1",
+ "baserproject/basercms": "<5.0.9",
+ "bassjobsen/bootstrap-3-typeahead": ">4.0.2",
+ "bbpress/bbpress": "<2.6.5",
+ "bcosca/fatfree": "<3.7.2",
+ "bedita/bedita": "<4",
+ "bigfork/silverstripe-form-capture": ">=3,<3.1.1",
+ "billz/raspap-webgui": "<=3.1.4",
+ "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
+ "blueimp/jquery-file-upload": "==6.4.4",
+ "bmarshall511/wordpress_zero_spam": "<5.2.13",
+ "bolt/bolt": "<3.7.2",
+ "bolt/core": "<=4.2",
+ "born05/craft-twofactorauthentication": "<3.3.4",
+ "bottelet/flarepoint": "<2.2.1",
+ "bref/bref": "<2.1.17",
+ "brightlocal/phpwhois": "<=4.2.5",
+ "brotkrueml/codehighlight": "<2.7",
+ "brotkrueml/schema": "<1.13.1|>=2,<2.5.1",
+ "brotkrueml/typo3-matomo-integration": "<1.3.2",
+ "buddypress/buddypress": "<7.2.1",
+ "bugsnag/bugsnag-laravel": ">=2,<2.0.2",
+ "bytefury/crater": "<6.0.2",
+ "cachethq/cachet": "<2.5.1",
+ "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
+ "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
+ "cardgate/magento2": "<2.0.33",
+ "cardgate/woocommerce": "<=3.1.15",
+ "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cartalyst/sentry": "<=2.1.6",
+ "catfan/medoo": "<1.7.5",
+ "causal/oidc": "<2.1",
+ "cecil/cecil": "<7.47.1",
+ "centreon/centreon": "<22.10.15",
+ "cesnet/simplesamlphp-module-proxystatistics": "<3.1",
+ "chriskacerguis/codeigniter-restserver": "<=2.7.1",
+ "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
+ "ckeditor/ckeditor": "<4.24",
+ "cockpit-hq/cockpit": "<2.7|==2.7",
+ "codeception/codeception": "<3.1.3|>=4,<4.1.22",
+ "codeigniter/framework": "<3.1.9",
+ "codeigniter4/framework": "<4.4.7",
+ "codeigniter4/shield": "<1.0.0.0-beta8",
+ "codiad/codiad": "<=2.8.4",
+ "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7",
+ "concrete5/concrete5": "<9.3.4",
+ "concrete5/core": "<8.5.8|>=9,<9.1",
+ "contao-components/mediaelement": ">=2.14.2,<2.21.1",
+ "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
+ "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
+ "contao/core": "<3.5.39",
+ "contao/core-bundle": "<4.13.49|>=5,<5.3.15|>=5.4,<5.4.3",
+ "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
+ "contao/managed-edition": "<=1.5",
+ "corveda/phpsandbox": "<1.3.5",
+ "cosenary/instagram": "<=2.3",
+ "craftcms/cms": "<4.6.2|>=5,<=5.2.2",
+ "croogo/croogo": "<4",
+ "cuyz/valinor": "<0.12",
+ "czim/file-handling": "<1.5|>=2,<2.3",
+ "czproject/git-php": "<4.0.3",
+ "damienharper/auditor-bundle": "<5.2.6",
+ "dapphp/securimage": "<3.6.6",
+ "darylldoyle/safe-svg": "<1.9.10",
+ "datadog/dd-trace": ">=0.30,<0.30.2",
+ "datatables/datatables": "<1.10.10",
+ "david-garcia/phpwhois": "<=4.3.1",
+ "dbrisinajumi/d2files": "<1",
+ "dcat/laravel-admin": "<=2.1.3",
+ "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
+ "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
+ "desperado/xml-bundle": "<=0.1.7",
+ "devgroup/dotplant": "<2020.09.14-dev",
+ "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2",
+ "doctrine/annotations": "<1.2.7",
+ "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
+ "doctrine/common": "<2.4.3|>=2.5,<2.5.1",
+ "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4",
+ "doctrine/doctrine-bundle": "<1.5.2",
+ "doctrine/doctrine-module": "<0.7.2",
+ "doctrine/mongodb-odm": "<1.0.2",
+ "doctrine/mongodb-odm-bundle": "<3.0.1",
+ "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
+ "dolibarr/dolibarr": "<19.0.2",
+ "dompdf/dompdf": "<2.0.4",
+ "doublethreedigital/guest-entries": "<3.1.2",
+ "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2|==11.9999999.9999999.9999999-dev",
+ "drupal/core-recommended": "==11.9999999.9999999.9999999-dev",
+ "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4|==11.9999999.9999999.9999999-dev",
+ "duncanmcclean/guest-entries": "<3.1.2",
+ "dweeves/magmi": "<=0.7.24",
+ "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2",
+ "ecodev/newsletter": "<=4",
+ "ectouch/ectouch": "<=2.7.2",
+ "egroupware/egroupware": "<23.1.20240624",
+ "elefant/cms": "<2.0.7",
+ "elgg/elgg": "<3.3.24|>=4,<4.0.5",
+ "elijaa/phpmemcacheadmin": "<=1.3",
+ "encore/laravel-admin": "<=1.8.19",
+ "endroid/qr-code-bundle": "<3.4.2",
+ "enhavo/enhavo-app": "<=0.13.1",
+ "enshrined/svg-sanitize": "<0.15",
+ "erusev/parsedown": "<1.7.2",
+ "ether/logs": "<3.0.4",
+ "evolutioncms/evolution": "<=3.2.3",
+ "exceedone/exment": "<4.4.3|>=5,<5.0.3",
+ "exceedone/laravel-admin": "<2.2.3|==3",
+ "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev",
+ "ezsystems/ez-support-tools": ">=2.2,<2.2.3",
+ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev",
+ "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev",
+ "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24",
+ "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26|>=3.3,<3.3.39",
+ "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1",
+ "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12",
+ "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35",
+ "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8",
+ "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev|>=3.3,<3.3.40",
+ "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15",
+ "ezsystems/ezplatform-user": ">=1,<1.0.1",
+ "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31",
+ "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1",
+ "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
+ "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
+ "ezyang/htmlpurifier": "<4.1.1",
+ "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
+ "facturascripts/facturascripts": "<=2022.08",
+ "fastly/magento2": "<1.2.26",
+ "feehi/cms": "<=2.1.1",
+ "feehi/feehicms": "<=2.1.1",
+ "fenom/fenom": "<=2.12.1",
+ "filegator/filegator": "<7.8",
+ "filp/whoops": "<2.1.13",
+ "fineuploader/php-traditional-server": "<=1.2.2",
+ "firebase/php-jwt": "<6",
+ "fisharebest/webtrees": "<=2.1.18",
+ "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
+ "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
+ "flarum/core": "<1.8.5",
+ "flarum/flarum": "<0.1.0.0-beta8",
+ "flarum/framework": "<1.8.5",
+ "flarum/mentions": "<1.6.3",
+ "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
+ "flarum/tags": "<=0.1.0.0-beta13",
+ "floriangaerber/magnesium": "<0.3.1",
+ "fluidtypo3/vhs": "<5.1.1",
+ "fof/byobu": ">=0.3.0.0-beta2,<1.1.7",
+ "fof/upload": "<1.2.3",
+ "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1",
+ "fooman/tcpdf": "<6.2.22",
+ "forkcms/forkcms": "<5.11.1",
+ "fossar/tcpdf-parser": "<6.2.22",
+ "francoisjacquet/rosariosis": "<=11.5.1",
+ "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2",
+ "friendsofsymfony/oauth2-php": "<1.3",
+ "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
+ "friendsofsymfony/user-bundle": ">=1,<1.3.5",
+ "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5",
+ "friendsofsymfony1/symfony1": ">=1.1,<1.5.19",
+ "friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
+ "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
+ "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3",
+ "froxlor/froxlor": "<=2.2.0.0-RC3",
+ "frozennode/administrator": "<=5.0.12",
+ "fuel/core": "<1.8.1",
+ "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
+ "gaoming13/wechat-php-sdk": "<=1.10.2",
+ "genix/cms": "<=1.1.11",
+ "getformwork/formwork": "<1.13.1|==2.0.0.0-beta1",
+ "getgrav/grav": "<1.7.46",
+ "getkirby/cms": "<=3.6.6.5|>=3.7,<=3.7.5.4|>=3.8,<=3.8.4.3|>=3.9,<=3.9.8.1|>=3.10,<=3.10.1|>=4,<=4.3",
+ "getkirby/kirby": "<=2.5.12",
+ "getkirby/panel": "<2.5.14",
+ "getkirby/starterkit": "<=3.7.0.2",
+ "gilacms/gila": "<=1.15.4",
+ "gleez/cms": "<=1.3|==2",
+ "globalpayments/php-sdk": "<2",
+ "gogentooss/samlbase": "<1.2.7",
+ "google/protobuf": "<3.15",
+ "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
+ "gree/jose": "<2.2.1",
+ "gregwar/rst": "<1.0.3",
+ "grumpydictator/firefly-iii": "<6.1.17",
+ "gugoan/economizzer": "<=0.9.0.0-beta1",
+ "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
+ "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
+ "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
+ "harvesthq/chosen": "<1.8.7",
+ "helloxz/imgurl": "<=2.31",
+ "hhxsv5/laravel-s": "<3.7.36",
+ "hillelcoren/invoice-ninja": "<5.3.35",
+ "himiklab/yii2-jqgrid-widget": "<1.0.8",
+ "hjue/justwriting": "<=1",
+ "hov/jobfair": "<1.0.13|>=2,<2.0.2",
+ "httpsoft/http-message": "<1.0.12",
+ "hyn/multi-tenant": ">=5.6,<5.7.2",
+ "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6.0.0-beta1,<4.6.9",
+ "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2",
+ "ibexa/fieldtype-richtext": ">=4.6,<4.6.10",
+ "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3",
+ "ibexa/post-install": "<=1.0.4",
+ "ibexa/solr": ">=4.5,<4.5.4",
+ "ibexa/user": ">=4,<4.4.3",
+ "icecoder/icecoder": "<=8.1",
+ "idno/known": "<=1.3.1",
+ "ilicmiljan/secure-props": ">=1.2,<1.2.2",
+ "illuminate/auth": "<5.5.10",
+ "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4",
+ "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40",
+ "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
+ "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
+ "imdbphp/imdbphp": "<=5.1.1",
+ "impresscms/impresscms": "<=1.4.5",
+ "impresspages/impresspages": "<=1.0.12",
+ "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3",
+ "in2code/ipandlanguageredirect": "<5.1.2",
+ "in2code/lux": "<17.6.1|>=18,<24.0.2",
+ "in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.4.1",
+ "innologi/typo3-appointments": "<2.0.6",
+ "intelliants/subrion": "<4.2.2",
+ "inter-mediator/inter-mediator": "==5.5",
+ "ipl/web": "<0.10.1",
+ "islandora/islandora": ">=2,<2.4.1",
+ "ivankristianto/phpwhois": "<=4.3",
+ "jackalope/jackalope-doctrine-dbal": "<1.7.4",
+ "james-heinrich/getid3": "<1.9.21",
+ "james-heinrich/phpthumb": "<1.7.12",
+ "jasig/phpcas": "<1.3.3",
+ "jcbrand/converse.js": "<3.3.3",
+ "johnbillion/wp-crontrol": "<1.16.2",
+ "joomla/application": "<1.0.13",
+ "joomla/archive": "<1.1.12|>=2,<2.0.1",
+ "joomla/filesystem": "<1.6.2|>=2,<2.0.1",
+ "joomla/filter": "<1.4.4|>=2,<2.0.1",
+ "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12",
+ "joomla/input": ">=2,<2.0.2",
+ "joomla/joomla-cms": ">=2.5,<3.9.12",
+ "joomla/session": "<1.3.1",
+ "joyqi/hyper-down": "<=2.4.27",
+ "jsdecena/laracom": "<2.0.9",
+ "jsmitty12/phpwhois": "<5.1",
+ "juzaweb/cms": "<=3.4",
+ "jweiland/events2": "<8.3.8|>=9,<9.0.6",
+ "kazist/phpwhois": "<=4.2.6",
+ "kelvinmo/simplexrd": "<3.1.1",
+ "kevinpapst/kimai2": "<1.16.7",
+ "khodakhah/nodcms": "<=3",
+ "kimai/kimai": "<=2.20.1",
+ "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
+ "klaviyo/magento2-extension": ">=1,<3",
+ "knplabs/knp-snappy": "<=1.4.2",
+ "kohana/core": "<3.3.3",
+ "krayin/laravel-crm": "<1.2.2",
+ "kreait/firebase-php": ">=3.2,<3.8.1",
+ "kumbiaphp/kumbiapp": "<=1.1.1",
+ "la-haute-societe/tcpdf": "<6.2.22",
+ "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
+ "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
+ "laminas/laminas-http": "<2.14.2",
+ "laravel/fortify": "<1.11.1",
+ "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75",
+ "laravel/laravel": ">=5.4,<5.4.22",
+ "laravel/socialite": ">=1,<2.0.10",
+ "latte/latte": "<2.10.8",
+ "lavalite/cms": "<=9|==10.1",
+ "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5",
+ "league/commonmark": "<0.18.3",
+ "league/flysystem": "<1.1.4|>=2,<2.1.1",
+ "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
+ "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
+ "libreform/libreform": ">=2,<=2.0.8",
+ "librenms/librenms": "<2017.08.18",
+ "liftkit/database": "<2.13.2",
+ "lightsaml/lightsaml": "<1.3.5",
+ "limesurvey/limesurvey": "<3.27.19",
+ "livehelperchat/livehelperchat": "<=3.91",
+ "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9",
+ "lms/routes": "<2.1.1",
+ "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
+ "luyadev/yii-helpers": "<1.2.1",
+ "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch9|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch7|==2.4.7|>=2.4.7.0-patch1,<2.4.7.0-patch2",
+ "magento/core": "<=1.9.4.5",
+ "magento/magento1ce": "<1.9.4.3-dev",
+ "magento/magento1ee": ">=1,<1.14.4.3-dev",
+ "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1",
+ "magneto/core": "<1.9.4.4-dev",
+ "maikuolan/phpmussel": ">=1,<1.6",
+ "mainwp/mainwp": "<=4.4.3.3",
+ "mantisbt/mantisbt": "<2.26.2",
+ "marcwillmann/turn": "<0.3.3",
+ "matyhtf/framework": "<3.0.6",
+ "mautic/core": "<4.4.13|>=5,<5.1.1",
+ "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
+ "mdanter/ecc": "<2",
+ "mediawiki/core": "<1.36.2",
+ "mediawiki/matomo": "<2.4.3",
+ "mediawiki/semantic-media-wiki": "<4.0.2",
+ "melisplatform/melis-asset-manager": "<5.0.1",
+ "melisplatform/melis-cms": "<5.0.1",
+ "melisplatform/melis-front": "<5.0.1",
+ "mezzio/mezzio-swoole": "<3.7|>=4,<4.3",
+ "mgallegos/laravel-jqgrid": "<=1.3",
+ "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1",
+ "microsoft/microsoft-graph-beta": "<2.0.1",
+ "microsoft/microsoft-graph-core": "<2.0.2",
+ "microweber/microweber": "<=2.0.16",
+ "mikehaertl/php-shellcommand": "<1.6.1",
+ "miniorange/miniorange-saml": "<1.4.3",
+ "mittwald/typo3_forum": "<1.2.1",
+ "mobiledetect/mobiledetectlib": "<2.8.32",
+ "modx/revolution": "<=2.8.3.0-patch",
+ "mojo42/jirafeau": "<4.4",
+ "mongodb/mongodb": ">=1,<1.9.2",
+ "monolog/monolog": ">=1.8,<1.12",
+ "moodle/moodle": "<4.3.5|>=4.4.0.0-beta,<4.4.1",
+ "mos/cimage": "<0.7.19",
+ "movim/moxl": ">=0.8,<=0.10",
+ "movingbytes/social-network": "<=1.2.1",
+ "mpdf/mpdf": "<=7.1.7",
+ "munkireport/comment": "<4.1",
+ "munkireport/managedinstalls": "<2.6",
+ "munkireport/munki_facts": "<1.5",
+ "munkireport/munkireport": ">=2.5.3,<5.6.3",
+ "munkireport/reportdata": "<3.5",
+ "munkireport/softwareupdate": "<1.6",
+ "mustache/mustache": ">=2,<2.14.1",
+ "namshi/jose": "<2.2",
+ "nategood/httpful": "<1",
+ "neoan3-apps/template": "<1.1.1",
+ "neorazorx/facturascripts": "<2022.04",
+ "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
+ "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3",
+ "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9",
+ "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
+ "neos/swiftmailer": "<5.4.5",
+ "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
+ "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
+ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
+ "nilsteampassnet/teampass": "<3.0.10",
+ "nonfiction/nterchange": "<4.1.1",
+ "notrinos/notrinos-erp": "<=0.7",
+ "noumo/easyii": "<=0.9",
+ "novaksolutions/infusionsoft-php-sdk": "<1",
+ "nukeviet/nukeviet": "<4.5.02",
+ "nyholm/psr7": "<1.6.1",
+ "nystudio107/craft-seomatic": "<3.4.12",
+ "nzedb/nzedb": "<0.8",
+ "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
+ "october/backend": "<1.1.2",
+ "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1",
+ "october/october": "<=3.4.4",
+ "october/rain": "<1.0.472|>=1.1,<1.1.2",
+ "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.15",
+ "omeka/omeka-s": "<4.0.3",
+ "onelogin/php-saml": "<2.10.4",
+ "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5",
+ "open-web-analytics/open-web-analytics": "<1.7.4",
+ "opencart/opencart": ">=0",
+ "openid/php-openid": "<2.3",
+ "openmage/magento-lts": "<20.10.1",
+ "opensolutions/vimbadmin": "<=3.0.15",
+ "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2",
+ "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5",
+ "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1",
+ "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1",
+ "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7",
+ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1",
+ "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3",
+ "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3",
+ "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3",
+ "oxid-esales/oxideshop-ce": "<4.5",
+ "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1",
+ "packbackbooks/lti-1-3-php-library": "<5",
+ "padraic/humbug_get_contents": "<1.1.2",
+ "pagarme/pagarme-php": "<3",
+ "pagekit/pagekit": "<=1.0.18",
+ "paragonie/ecc": "<2.0.1",
+ "paragonie/random_compat": "<2",
+ "passbolt/passbolt_api": "<4.6.2",
+ "paypal/adaptivepayments-sdk-php": "<=3.9.2",
+ "paypal/invoice-sdk-php": "<=3.9",
+ "paypal/merchant-sdk-php": "<3.12",
+ "paypal/permissions-sdk-php": "<=3.9.1",
+ "pear/archive_tar": "<1.4.14",
+ "pear/auth": "<1.2.4",
+ "pear/crypt_gpg": "<1.6.7",
+ "pear/pear": "<=1.10.1",
+ "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1",
+ "personnummer/personnummer": "<3.0.2",
+ "phanan/koel": "<5.1.4",
+ "phenx/php-svg-lib": "<0.5.2",
+ "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5",
+ "php-mod/curl": "<2.3.2",
+ "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1",
+ "phpems/phpems": ">=6,<=6.1.3",
+ "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
+ "phpmailer/phpmailer": "<6.5",
+ "phpmussel/phpmussel": ">=1,<1.6",
+ "phpmyadmin/phpmyadmin": "<5.2.1",
+ "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
+ "phpoffice/common": "<0.2.9",
+ "phpoffice/phpexcel": "<1.8",
+ "phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.1.1|>=2.2,<2.2.1",
+ "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
+ "phpservermon/phpservermon": "<3.6",
+ "phpsysinfo/phpsysinfo": "<3.4.3",
+ "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3",
+ "phpwhois/phpwhois": "<=4.2.5",
+ "phpxmlrpc/extras": "<0.6.1",
+ "phpxmlrpc/phpxmlrpc": "<4.9.2",
+ "pi/pi": "<=2.5",
+ "pimcore/admin-ui-classic-bundle": "<1.5.4",
+ "pimcore/customer-management-framework-bundle": "<4.0.6",
+ "pimcore/data-hub": "<1.2.4",
+ "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3",
+ "pimcore/demo": "<10.3",
+ "pimcore/ecommerce-framework-bundle": "<1.0.10",
+ "pimcore/perspective-editor": "<1.5.1",
+ "pimcore/pimcore": "<11.2.4",
+ "pixelfed/pixelfed": "<0.11.11",
+ "plotly/plotly.js": "<2.25.2",
+ "pocketmine/bedrock-protocol": "<8.0.2",
+ "pocketmine/pocketmine-mp": "<5.11.2",
+ "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
+ "pressbooks/pressbooks": "<5.18",
+ "prestashop/autoupgrade": ">=4,<4.10.1",
+ "prestashop/blockreassurance": "<=5.1.3",
+ "prestashop/blockwishlist": ">=2,<2.1.1",
+ "prestashop/contactform": ">=1.0.1,<4.3",
+ "prestashop/gamification": "<2.3.2",
+ "prestashop/prestashop": "<8.1.6",
+ "prestashop/productcomments": "<5.0.2",
+ "prestashop/ps_emailsubscription": "<2.6.1",
+ "prestashop/ps_facetedsearch": "<3.4.1",
+ "prestashop/ps_linklist": "<3.1",
+ "privatebin/privatebin": "<1.4|>=1.5,<1.7.4",
+ "processwire/processwire": "<=3.0.229",
+ "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
+ "propel/propel1": ">=1,<=1.7.1",
+ "pterodactyl/panel": "<1.11.6",
+ "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
+ "ptrofimov/beanstalk_console": "<1.7.14",
+ "pubnub/pubnub": "<6.1",
+ "pusher/pusher-php-server": "<2.2.1",
+ "pwweb/laravel-core": "<=0.3.6.0-beta",
+ "pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3",
+ "pyrocms/pyrocms": "<=3.9.1",
+ "qcubed/qcubed": "<=3.1.1",
+ "quickapps/cms": "<=2.0.0.0-beta2",
+ "rainlab/blog-plugin": "<1.4.1",
+ "rainlab/debugbar-plugin": "<3.1",
+ "rainlab/user-plugin": "<=1.4.5",
+ "rankmath/seo-by-rank-math": "<=1.0.95",
+ "rap2hpoutre/laravel-log-viewer": "<0.13",
+ "react/http": ">=0.7,<1.9",
+ "really-simple-plugins/complianz-gdpr": "<6.4.2",
+ "redaxo/source": "<=5.15.1",
+ "remdex/livehelperchat": "<4.29",
+ "reportico-web/reportico": "<=8.1",
+ "rhukster/dom-sanitizer": "<1.0.7",
+ "rmccue/requests": ">=1.6,<1.8",
+ "robrichards/xmlseclibs": ">=1,<3.0.4",
+ "roots/soil": "<4.1",
+ "rudloff/alltube": "<3.0.3",
+ "s-cart/core": "<6.9",
+ "s-cart/s-cart": "<6.9",
+ "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
+ "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
+ "scheb/two-factor-bundle": "<3.26|>=4,<4.11",
+ "sensiolabs/connect": "<4.2.3",
+ "serluck/phpwhois": "<=4.2.6",
+ "sfroemken/url_redirect": "<=1.2.1",
+ "sheng/yiicms": "<=1.2",
+ "shopware/core": "<=6.5.8.12|>=6.6,<=6.6.5",
+ "shopware/platform": "<=6.5.8.12|>=6.6,<=6.6.5",
+ "shopware/production": "<=6.3.5.2",
+ "shopware/shopware": "<=5.7.17",
+ "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev",
+ "shopxo/shopxo": "<=6.1",
+ "showdoc/showdoc": "<2.10.4",
+ "silverstripe-australia/advancedreports": ">=1,<=2",
+ "silverstripe/admin": "<1.13.19|>=2,<2.1.8",
+ "silverstripe/assets": ">=1,<1.11.1",
+ "silverstripe/cms": "<4.11.3",
+ "silverstripe/comments": ">=1.3,<3.1.1",
+ "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
+ "silverstripe/framework": "<5.2.16",
+ "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
+ "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
+ "silverstripe/recipe-cms": ">=4.5,<4.5.3",
+ "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
+ "silverstripe/reports": "<5.2.3",
+ "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2",
+ "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1",
+ "silverstripe/subsites": ">=2,<2.6.1",
+ "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1",
+ "silverstripe/userforms": "<3|>=5,<5.4.2",
+ "silverstripe/versioned-admin": ">=1,<1.11.1",
+ "simple-updates/phpwhois": "<=1",
+ "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12",
+ "simplesamlphp/simplesamlphp": "<1.18.6",
+ "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
+ "simplesamlphp/simplesamlphp-module-openid": "<1",
+ "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
+ "simplesamlphp/xml-security": "==1.6.11",
+ "simplito/elliptic-php": "<1.0.6",
+ "sitegeist/fluid-components": "<3.5",
+ "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3",
+ "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
+ "slim/slim": "<2.6",
+ "slub/slub-events": "<3.0.3",
+ "smarty/smarty": "<4.5.3|>=5,<5.1.1",
+ "snipe/snipe-it": "<6.4.2",
+ "socalnick/scn-social-auth": "<1.15.2",
+ "socialiteproviders/steam": "<1.1",
+ "spatie/browsershot": "<3.57.4",
+ "spatie/image-optimizer": "<1.7.3",
+ "spipu/html2pdf": "<5.2.8",
+ "spoon/library": "<1.4.1",
+ "spoonity/tcpdf": "<6.2.22",
+ "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
+ "ssddanbrown/bookstack": "<24.05.1",
+ "statamic/cms": "<4.46|>=5.3,<5.6.2",
+ "stormpath/sdk": "<9.9.99",
+ "studio-42/elfinder": "<=2.1.64",
+ "studiomitte/friendlycaptcha": "<0.1.4",
+ "subhh/libconnect": "<7.0.8|>=8,<8.1",
+ "sukohi/surpass": "<1",
+ "sulu/form-bundle": ">=2,<2.5.3",
+ "sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13",
+ "sumocoders/framework-user-bundle": "<1.4",
+ "superbig/craft-audit": "<3.0.2",
+ "swag/paypal": "<5.4.4",
+ "swiftmailer/swiftmailer": "<6.2.5",
+ "swiftyedit/swiftyedit": "<1.2",
+ "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
+ "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
+ "sylius/grid-bundle": "<1.10.1",
+ "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1",
+ "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
+ "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4",
+ "symbiote/silverstripe-multivaluefield": ">=3,<3.1",
+ "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4",
+ "symbiote/silverstripe-seed": "<6.0.3",
+ "symbiote/silverstripe-versionedfiles": "<=2.0.3",
+ "symfont/process": ">=0",
+ "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8",
+ "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
+ "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
+ "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4",
+ "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
+ "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1",
+ "symfony/mime": ">=4.3,<4.3.8",
+ "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/polyfill": ">=1,<1.10",
+ "symfony/polyfill-php55": ">=1,<1.10",
+ "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/routing": ">=2,<2.0.19",
+ "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8",
+ "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
+ "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
+ "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
+ "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8",
+ "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
+ "symfony/symfony": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/translation": ">=2,<2.0.17",
+ "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/ux-autocomplete": "<2.11.2",
+ "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
+ "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
+ "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
+ "symfony/webhook": ">=6.3,<6.3.8",
+ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2",
+ "symphonycms/symphony-2": "<2.6.4",
+ "t3/dce": "<0.11.5|>=2.2,<2.6.2",
+ "t3g/svg-sanitizer": "<1.0.3",
+ "t3s/content-consent": "<1.0.3|>=2,<2.0.2",
+ "tastyigniter/tastyigniter": "<3.3",
+ "tcg/voyager": "<=1.4",
+ "tecnickcom/tcpdf": "<=6.7.4",
+ "terminal42/contao-tablelookupwizard": "<3.3.5",
+ "thelia/backoffice-default-template": ">=2.1,<2.1.2",
+ "thelia/thelia": ">=2.1,<2.1.3",
+ "theonedemon/phpwhois": "<=4.2.5",
+ "thinkcmf/thinkcmf": "<6.0.8",
+ "thorsten/phpmyfaq": "<3.2.2",
+ "tikiwiki/tiki-manager": "<=17.1",
+ "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
+ "tinymce/tinymce": "<7.2",
+ "tinymighty/wiki-seo": "<1.2.2",
+ "titon/framework": "<9.9.99",
+ "tobiasbg/tablepress": "<=2.0.0.0-RC1",
+ "topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
+ "topthink/think": "<=6.1.1",
+ "topthink/thinkphp": "<=3.2.3",
+ "torrentpier/torrentpier": "<=2.4.3",
+ "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
+ "tribalsystems/zenario": "<9.5.60602",
+ "truckersmp/phpwhois": "<=4.3.1",
+ "ttskch/pagination-service-provider": "<1",
+ "twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2",
+ "twig/twig": "<1.44.8|>=2,<2.16.1|>=3,<3.11.1|>=3.12,<3.14",
+ "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1",
+ "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
+ "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
+ "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
+ "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8",
+ "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
+ "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
+ "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
+ "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
+ "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
+ "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
+ "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
+ "ua-parser/uap-php": "<3.8",
+ "uasoft-indonesia/badaso": "<=2.9.7",
+ "unisharp/laravel-filemanager": "<2.6.4",
+ "userfrosting/userfrosting": ">=0.3.1,<4.6.3",
+ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
+ "uvdesk/community-skeleton": "<=1.1.1",
+ "uvdesk/core-framework": "<=1.1.1",
+ "vanilla/safecurl": "<0.9.2",
+ "verbb/comments": "<1.5.5",
+ "verbb/formie": "<2.1.6",
+ "verbb/image-resizer": "<2.0.9",
+ "verbb/knock-knock": "<1.2.8",
+ "verot/class.upload.php": "<=2.1.6",
+ "villagedefrance/opencart-overclocked": "<=1.11.1",
+ "vova07/yii2-fileapi-widget": "<0.1.9",
+ "vrana/adminer": "<4.8.1",
+ "vufind/vufind": ">=2,<9.1.1",
+ "waldhacker/hcaptcha": "<2.1.2",
+ "wallabag/tcpdf": "<6.2.22",
+ "wallabag/wallabag": "<2.6.7",
+ "wanglelecc/laracms": "<=1.0.3",
+ "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9",
+ "web-auth/webauthn-lib": ">=4.5,<4.9",
+ "web-feet/coastercms": "==5.5",
+ "webbuilders-group/silverstripe-kapost-bridge": "<0.4",
+ "webcoast/deferred-image-processing": "<1.0.2",
+ "webklex/laravel-imap": "<5.3",
+ "webklex/php-imap": "<5.3",
+ "webpa/webpa": "<3.1.2",
+ "wikibase/wikibase": "<=1.39.3",
+ "wikimedia/parsoid": "<0.12.2",
+ "willdurand/js-translation-bundle": "<2.1.1",
+ "winter/wn-backend-module": "<1.2.4",
+ "winter/wn-dusk-plugin": "<2.1",
+ "winter/wn-system-module": "<1.2.4",
+ "wintercms/winter": "<=1.2.3",
+ "wireui/wireui": "<1.19.3|>=2,<2.1.3",
+ "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3",
+ "wp-cli/wp-cli": ">=0.12,<2.5",
+ "wp-graphql/wp-graphql": "<=1.14.5",
+ "wp-premium/gravityforms": "<2.4.21",
+ "wpanel/wpanel4-cms": "<=4.3.1",
+ "wpcloud/wp-stateless": "<3.2",
+ "wpglobus/wpglobus": "<=1.9.6",
+ "wwbn/avideo": "<14.3",
+ "xataface/xataface": "<3",
+ "xpressengine/xpressengine": "<3.0.15",
+ "yab/quarx": "<2.4.5",
+ "yeswiki/yeswiki": "<4.1",
+ "yetiforce/yetiforce-crm": "<=6.4",
+ "yidashi/yii2cmf": "<=2",
+ "yii2mod/yii2-cms": "<1.9.2",
+ "yiisoft/yii": "<1.1.29",
+ "yiisoft/yii2": "<2.0.49.4-dev",
+ "yiisoft/yii2-authclient": "<2.2.15",
+ "yiisoft/yii2-bootstrap": "<2.0.4",
+ "yiisoft/yii2-dev": "<2.0.43",
+ "yiisoft/yii2-elasticsearch": "<2.0.5",
+ "yiisoft/yii2-gii": "<=2.2.4",
+ "yiisoft/yii2-jui": "<2.0.4",
+ "yiisoft/yii2-redis": "<2.0.8",
+ "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6",
+ "yoast-seo-for-typo3/yoast_seo": "<7.2.3",
+ "yourls/yourls": "<=1.8.2",
+ "yuan1994/tpadmin": "<=1.3.12",
+ "zencart/zencart": "<=1.5.7.0-beta",
+ "zendesk/zendesk_api_client_php": "<2.2.11",
+ "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
+ "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5",
+ "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3",
+ "zendframework/zend-diactoros": "<1.8.4",
+ "zendframework/zend-feed": "<2.10.3",
+ "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-http": "<2.8.1",
+ "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
+ "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2",
+ "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4",
+ "zendframework/zend-validator": ">=2.3,<2.3.6",
+ "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zendframework": "<=3",
+ "zendframework/zendframework1": "<1.12.20",
+ "zendframework/zendopenid": "<2.0.2",
+ "zendframework/zendrest": "<2.0.2",
+ "zendframework/zendservice-amazon": "<2.0.3",
+ "zendframework/zendservice-api": "<1",
+ "zendframework/zendservice-audioscrobbler": "<2.0.2",
+ "zendframework/zendservice-nirvanix": "<2.0.2",
+ "zendframework/zendservice-slideshare": "<2.0.2",
+ "zendframework/zendservice-technorati": "<2.0.2",
+ "zendframework/zendservice-windowsazure": "<2.0.2",
+ "zendframework/zendxml": ">=1,<1.0.1",
+ "zenstruck/collection": "<0.2.1",
+ "zetacomponents/mail": "<1.8.2",
+ "zf-commons/zfc-user": "<1.2.2",
+ "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
+ "zfr/zfr-oauth2-server-module": "<0.1.2",
+ "zoujingli/thinkadmin": "<=6.1.53"
+ },
+ "default-branch": true,
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "role": "maintainer"
+ },
+ {
+ "name": "Ilya Tribusean",
+ "email": "slash3b@gmail.com",
+ "role": "maintainer"
+ }
+ ],
+ "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
+ "keywords": [
+ "dev"
+ ],
+ "support": {
+ "issues": "https://github.com/Roave/SecurityAdvisories/issues",
+ "source": "https://github.com/Roave/SecurityAdvisories/tree/latest"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Ocramius",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T17:04:43+00:00"
+ },
+ {
+ "name": "sanmai/later",
+ "version": "0.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/later.git",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/later/zipball/e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.35.1",
+ "infection/infection": ">=0.27.6",
+ "phan/phan": ">=2",
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": ">=1.4.5",
+ "phpunit/phpunit": ">=9.5 <10",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Later\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "Later: deferred wrapper object",
+ "support": {
+ "issues": "https://github.com/sanmai/later/issues",
+ "source": "https://github.com/sanmai/later/tree/0.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-24T00:25:28+00:00"
+ },
+ {
+ "name": "sanmai/pipeline",
+ "version": "v6.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/pipeline.git",
+ "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/pipeline/zipball/a5fa2a6c6ca93efa37e7c24aab72f47448a6b110",
+ "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.17",
+ "infection/infection": ">=0.10.5",
+ "league/pipeline": "^0.3 || ^1.0",
+ "phan/phan": ">=1.1",
+ "php-coveralls/php-coveralls": "^2.4.1",
+ "phpstan/phpstan": ">=0.10",
+ "phpunit/phpunit": ">=9.4",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "v6.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Pipeline\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "General-purpose collections pipeline",
+ "support": {
+ "issues": "https://github.com/sanmai/pipeline/issues",
+ "source": "https://github.com/sanmai/pipeline/tree/v6.11"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-15T03:11:19+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:33:00+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:35:11+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-14T16:00:52+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "softcreatr/jsonpath",
+ "version": "0.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/SoftCreatR/JSONPath.git",
+ "reference": "272173a65fd16b25010dbd54d04dd34c0c5a8500"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/SoftCreatR/JSONPath/zipball/272173a65fd16b25010dbd54d04dd34c0c5a8500",
+ "reference": "272173a65fd16b25010dbd54d04dd34c0c5a8500",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "8.1 - 8.4"
+ },
+ "replace": {
+ "flow/jsonpath": "*"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.58",
+ "phpunit/phpunit": "10 - 12",
+ "squizlabs/php_codesniffer": "^3.10"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Flow\\JSONPath\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Stephen Frank",
+ "email": "stephen@flowsa.com",
+ "homepage": "https://prismaticbytes.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Sascha Greuel",
+ "email": "hello@1-2.dev",
+ "homepage": "https://1-2.dev",
+ "role": "Developer"
+ }
+ ],
+ "description": "JSONPath implementation for parsing, searching and flattening arrays",
+ "support": {
+ "email": "hello@1-2.dev",
+ "forum": "https://github.com/SoftCreatR/JSONPath/discussions",
+ "issues": "https://github.com/SoftCreatR/JSONPath/issues",
+ "source": "https://github.com/SoftCreatR/JSONPath"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/softcreatr?r=61212ab3fc69b8eb8a2014f4",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/softcreatr",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-01T09:15:21+00:00"
+ },
+ {
+ "name": "spatie/phpunit-watcher",
+ "version": "1.23.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/phpunit-watcher.git",
+ "reference": "c192fff763810c8378511bcf0069df4b91478866"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/phpunit-watcher/zipball/c192fff763810c8378511bcf0069df4b91478866",
+ "reference": "c192fff763810c8378511bcf0069df4b91478866",
+ "shasum": ""
+ },
+ "require": {
+ "clue/stdio-react": "^2.4",
+ "jolicode/jolinotif": "^2.2",
+ "php": "^7.2 | ^8.0 | ^8.1",
+ "symfony/console": "^5 | ^6",
+ "symfony/finder": "^5.4 | ^6",
+ "symfony/process": "^5.4 | ^6",
+ "symfony/yaml": "^5.2 | ^6",
+ "yosymfony/resource-watcher": "^2.0 | ^3.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.2",
+ "yosymfony/resource-watcher": "<2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.6 | ^9.0"
+ },
+ "bin": [
+ "phpunit-watcher"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\PhpUnitWatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Automatically rerun PHPUnit tests when source code changes",
+ "homepage": "https://github.com/spatie/phpunit-watcher",
+ "keywords": [
+ "phpunit-watcher",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/phpunit-watcher/issues",
+ "source": "https://github.com/spatie/phpunit-watcher/tree/1.23.6"
+ },
+ "time": "2022-01-31T11:57:13+00:00"
+ },
+ {
+ "name": "symfony/browser-kit",
+ "version": "v6.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/62ab90b92066ef6cce5e79365625b4b1432464c8",
+ "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v6.4.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:49:08+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9d307ecbcb917001692be333cdc58f474fdb37f0",
+ "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0",
+ "shasum": ""
+ },
+ "require": {
+ "masterminds/html5": "^2.6",
+ "php": ">=8.1",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-15T06:35:36+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a",
+ "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T09:16:35+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3",
+ "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T12:47:12+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v2.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.2",
+ "thecodingmachine/phpstan-strict-rules": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/array.php",
+ "deprecated/datetime.php",
+ "deprecated/libevent.php",
+ "deprecated/misc.php",
+ "deprecated/password.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "deprecated/strings.php",
+ "lib/special_cases.php",
+ "deprecated/mysqli.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gettext.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/mysql.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ],
+ "classmap": [
+ "lib/DateTime.php",
+ "lib/DateTimeImmutable.php",
+ "lib/Exceptions/",
+ "deprecated/Exceptions/",
+ "generated/Exceptions/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+ },
+ "time": "2023-04-05T11:54:14+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
+ },
+ {
+ "name": "vimeo/psalm",
+ "version": "4.30.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vimeo/psalm.git",
+ "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
+ "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2.4.2",
+ "amphp/byte-stream": "^1.5",
+ "composer/package-versions-deprecated": "^1.8.0",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0",
+ "dnoegel/php-xdg-base-dir": "^0.1.1",
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.0.3",
+ "felixfbecker/language-server-protocol": "^1.5",
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "nikic/php-parser": "^4.13",
+ "openlss/lib-array2xml": "^1.0",
+ "php": "^7.1|^8",
+ "sebastian/diff": "^3.0 || ^4.0",
+ "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0",
+ "symfony/polyfill-php80": "^1.25",
+ "webmozart/path-util": "^2.3"
+ },
+ "provide": {
+ "psalm/psalm": "self.version"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2",
+ "brianium/paratest": "^4.0||^6.0",
+ "ext-curl": "*",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpdocumentor/reflection-docblock": "^5",
+ "phpmyadmin/sql-parser": "5.1.0||dev-master",
+ "phpspec/prophecy": ">=1.9.0",
+ "phpstan/phpdoc-parser": "1.2.* || 1.6.4",
+ "phpunit/phpunit": "^9.0",
+ "psalm/plugin-phpunit": "^0.16",
+ "slevomat/coding-standard": "^7.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "symfony/process": "^4.3 || ^5.0 || ^6.0",
+ "weirdan/prophecy-shim": "^1.0 || ^2.0"
+ },
+ "suggest": {
+ "ext-curl": "In order to send data to shepherd",
+ "ext-igbinary": "^2.0.5 is required, used to serialize caching data"
+ },
+ "bin": [
+ "psalm",
+ "psalm-language-server",
+ "psalm-plugin",
+ "psalm-refactor",
+ "psalter"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev",
+ "dev-3.x": "3.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php",
+ "src/spl_object_id.php"
+ ],
+ "psr-4": {
+ "Psalm\\": "src/Psalm/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matthew Brown"
+ }
+ ],
+ "description": "A static analysis tool for finding errors in PHP applications",
+ "keywords": [
+ "code",
+ "inspection",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/vimeo/psalm/issues",
+ "source": "https://github.com/vimeo/psalm/tree/4.30.0"
+ },
+ "time": "2022-11-06T20:37:08+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ },
+ {
+ "name": "webmozart/path-util",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/path-util.git",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "webmozart/assert": "~1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\PathUtil\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
+ "support": {
+ "issues": "https://github.com/webmozart/path-util/issues",
+ "source": "https://github.com/webmozart/path-util/tree/2.3.0"
+ },
+ "abandoned": "symfony/filesystem",
+ "time": "2015-12-17T08:42:14+00:00"
+ },
+ {
+ "name": "yiisoft/active-record",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/active-record.git",
+ "reference": "5c4151d74fc8025261b0d3921f649513261a0144"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/active-record/zipball/5c4151d74fc8025261b0d3921f649513261a0144",
+ "reference": "5c4151d74fc8025261b0d3921f649513261a0144",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^8.1",
+ "yiisoft/db": "dev-master"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/aliases": "^2.0",
+ "yiisoft/arrays": "^3.1",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/db-sqlite": "dev-master",
+ "yiisoft/di": "^1.0",
+ "yiisoft/factory": "^1.2",
+ "yiisoft/json": "^1.0",
+ "yiisoft/middleware-dispatcher": "^5.2"
+ },
+ "suggest": {
+ "yiisoft/arrays": "For \\Yiisoft\\Arrays\\ArrayableInterface support",
+ "yiisoft/db-mssql": "For MSSQL database support",
+ "yiisoft/db-mysql": "For MySQL database support",
+ "yiisoft/db-oracle": "For Oracle database support",
+ "yiisoft/db-pgsql": "For PostgreSQL database support",
+ "yiisoft/db-sqlite": "For SQLite database support",
+ "yiisoft/factory": "For factory support",
+ "yiisoft/middleware-dispatcher": "For middleware support"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\ActiveRecord\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii ActiveRecord Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "Active Record",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/active-record/issues?state=open",
+ "source": "https://github.com/yiisoft/active-record",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-16T09:27:14+00:00"
+ },
+ {
+ "name": "yiisoft/db",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/db.git",
+ "reference": "c765ca43af502dda2ec2aed01f368d0f15e8b290"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/db/zipball/c765ca43af502dda2ec2aed01f368d0f15e8b290",
+ "reference": "c765ca43af502dda2ec2aed01f368d0f15e8b290",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-pdo": "*",
+ "php": "^8.1",
+ "psr/log": "^2.0|^3.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^10.0",
+ "rector/rector": "^1.1.1",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/cache-file": "^3.1",
+ "yiisoft/di": "^1.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/var-dumper": "^1.5",
+ "yiisoft/yii-debug": "dev-master"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Db\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Database",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "database",
+ "dbal",
+ "query-builder",
+ "sql",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/db/issues/issues?state=open",
+ "source": "https://github.com/yiisoft/db",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-16T10:51:44+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug-api",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug-api.git",
+ "reference": "8349f8d6f250e0f17bec8ab187390124e491c8c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug-api/zipball/8349f8d6f250e0f17bec8ab187390124e491c8c0",
+ "reference": "8349f8d6f250e0f17bec8ab187390124e491c8c0",
+ "shasum": ""
+ },
+ "require": {
+ "alexkart/curl-builder": "^1.0",
+ "gitonomy/gitlib": "^1.3",
+ "guzzlehttp/guzzle": "^7.5",
+ "guzzlehttp/psr7": "^2.4",
+ "httpsoft/http-message": "^1.1",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "symfony/process": "^5.4|^6.0",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^5.2",
+ "yiisoft/router": "^3.0",
+ "yiisoft/translator": "^3.0",
+ "yiisoft/var-dumper": "^1.4",
+ "yiisoft/yii-debug": "dev-master",
+ "yiisoft/yii-middleware": "^1.0",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "codeception/codeception": "^5.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/active-record": "dev-master",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/csrf": "^2.0",
+ "yiisoft/db": "1.2 as dev-master",
+ "yiisoft/db-sqlite": "^1.0",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/yii-cycle": "dev-master",
+ "yiisoft/yii-view": "^6.0"
+ },
+ "suggest": {
+ "yiisoft/assets": "Support custom debug panels",
+ "yiisoft/yii-view": "Support custom debug panels"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "bootstrap-web": "bootstrap-web.php",
+ "params": "params.php",
+ "di-web": "di-web.php",
+ "routes": "routes.php",
+ "di-providers-web": "di-providers-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\Api\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Debug API",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "api",
+ "debug",
+ "yii",
+ "yii-debug-api",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug-api/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug-api",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-15T14:39:54+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug-viewer",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug-viewer.git",
+ "reference": "89f2704b5ae8aa8e188732c3dd4a8947a2cad774"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug-viewer/zipball/89f2704b5ae8aa8e188732c3dd4a8947a2cad774",
+ "reference": "89f2704b5ae8aa8e188732c3dd4a8947a2cad774",
+ "shasum": ""
+ },
+ "require": {
+ "nyholm/psr7": "^1.3",
+ "php": "^8.0",
+ "psr/http-message": "^1.1",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/http": "^1.1",
+ "yiisoft/router": "^3.1",
+ "yiisoft/view": "^10.0",
+ "yiisoft/yii-view-renderer": "^7.1"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0.5",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/log": "^2.0|^3.0",
+ "rector/rector": "^0.15.1",
+ "roave/infection-static-analysis-plugin": "^1.21",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/config": "^1.0",
+ "yiisoft/di": "^1.1",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-event": "^2.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin-environments": {
+ "yii-debug-viewer-app": {
+ "params": [
+ "app/params.php"
+ ],
+ "di": "app/di.php",
+ "di-console": "$di",
+ "di-web": [
+ "$di",
+ "app/web.php"
+ ],
+ "events": [],
+ "events-web": "$events",
+ "events-console": "$events",
+ "di-providers": [],
+ "di-providers-web": "$di-providers",
+ "di-providers-console": "$di-providers",
+ "routes": [],
+ "bootstrap": [],
+ "bootstrap-web": "$bootstrap",
+ "bootstrap-console": "$bootstrap"
+ }
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php",
+ "routes": "routes.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\Viewer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Debug Viewer",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "debug",
+ "dev",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug-viewer/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug-viewer",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-06T13:05:25+00:00"
+ },
+ {
+ "name": "yiisoft/yii-gii",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-gii.git",
+ "reference": "cf2f56d5d3a0a8fb00636da24ba13df3a1082350"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-gii/zipball/cf2f56d5d3a0a8fb00636da24ba13df3a1082350",
+ "reference": "cf2f56d5d3a0a8fb00636da24ba13df3a1082350",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-basis": "^1.1",
+ "php": "^8.1",
+ "phpspec/php-diff": "^1.1.3",
+ "psr/http-message": "^1.0|^2.0",
+ "symfony/console": "^6.0|^7.0",
+ "yiisoft/active-record": "dev-master",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/arrays": "^2.1|^3.0",
+ "yiisoft/csrf": "^2.1.1",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/db": "*",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/injector": "^1.1",
+ "yiisoft/input-http": "^1.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/router": "^3.0",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/validator": "^2.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-middleware": "^1.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^10.2",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.23",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.13",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/db-sqlite": "dev-master",
+ "yiisoft/di": "^1.1",
+ "yiisoft/dummy-provider": "^1.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/translator": "^3.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "routes": "routes.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Gii\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Code Generator Extension",
+ "keywords": [
+ "code generator",
+ "dev",
+ "gii",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-gii/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-gii",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-19T05:22:18+00:00"
+ },
+ {
+ "name": "yiisoft/yii-testing",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-testing.git",
+ "reference": "d90cce1c6f33990ad2a0f9e7781da88202a57229"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-testing/zipball/d90cce1c6f33990ad2a0f9e7781da88202a57229",
+ "reference": "d90cce1c6f33990ad2a0f9e7781da88202a57229",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/di": "^1.1",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner": "^2.0",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Testing\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "yii-testing",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "testing",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-testing/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-testing",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-06-04T07:04:12+00:00"
+ },
+ {
+ "name": "yosymfony/resource-watcher",
+ "version": "v3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yosymfony/resource-watcher.git",
+ "reference": "2f197cee0231c06db865d4ad2d8d7cd3faead2f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yosymfony/resource-watcher/zipball/2f197cee0231c06db865d4ad2d8d7cd3faead2f8",
+ "reference": "2f197cee0231c06db865d4ad2d8d7cd3faead2f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6",
+ "symfony/finder": "^2.7|^3.0|^4.0|^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "symfony/filesystem": "^2.7|^3.0|^4.0|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yosymfony\\ResourceWatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Victor Puertas",
+ "email": "vpgugr@gmail.com"
+ }
+ ],
+ "description": "A simple resource watcher using Symfony Finder",
+ "homepage": "http://yosymfony.com",
+ "keywords": [
+ "finder",
+ "resources",
+ "symfony",
+ "watcher"
+ ],
+ "support": {
+ "issues": "https://github.com/yosymfony/resource-watcher/issues",
+ "source": "https://github.com/yosymfony/resource-watcher/tree/master"
+ },
+ "time": "2020-06-10T14:58:36+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {
+ "cebe/markdown": 20,
+ "yiisoft/data": 20,
+ "yiisoft/data-cycle": 20,
+ "yiisoft/yii-debug": 20,
+ "yiisoft/queue": 20,
+ "roave/security-advisories": 20,
+ "yiisoft/yii-debug-api": 20,
+ "yiisoft/yii-debug-viewer": 20,
+ "yiisoft/yii-gii": 20,
+ "yiisoft/yii-testing": 20
+ },
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=8.3 <8.4",
+ "ext-intl": "*"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.3.0"
+}
diff --git a/blog-api/config/.gitignore b/blog-api/config/.gitignore
new file mode 100644
index 000000000..8b60a947d
--- /dev/null
+++ b/blog-api/config/.gitignore
@@ -0,0 +1 @@
+.merge-plan.php
diff --git a/config/bootstrap.php b/blog-api/config/common/bootstrap.php
similarity index 100%
rename from config/bootstrap.php
rename to blog-api/config/common/bootstrap.php
diff --git a/blog-api/config/common/di/cache.php b/blog-api/config/common/di/cache.php
new file mode 100644
index 000000000..8ef8b495e
--- /dev/null
+++ b/blog-api/config/common/di/cache.php
@@ -0,0 +1,12 @@
+ Cache::class,
+ CacheInterface::class => FileCache::class,
+];
diff --git a/config/common/cycle.php b/blog-api/config/common/di/cycle.php
similarity index 100%
rename from config/common/cycle.php
rename to blog-api/config/common/di/cycle.php
diff --git a/blog-api/config/common/di/hydrator.php b/blog-api/config/common/di/hydrator.php
new file mode 100644
index 000000000..1561583dc
--- /dev/null
+++ b/blog-api/config/common/di/hydrator.php
@@ -0,0 +1,13 @@
+ ContainerAttributeResolverFactory::class,
+ ObjectFactoryInterface::class => ContainerObjectFactory::class,
+];
diff --git a/config/common/logger.php b/blog-api/config/common/di/logger.php
similarity index 100%
rename from config/common/logger.php
rename to blog-api/config/common/di/logger.php
diff --git a/config/common/psr17.php b/blog-api/config/common/di/psr17.php
similarity index 100%
rename from config/common/psr17.php
rename to blog-api/config/common/di/psr17.php
diff --git a/blog-api/config/common/di/router.php b/blog-api/config/common/di/router.php
new file mode 100644
index 000000000..0df551e05
--- /dev/null
+++ b/blog-api/config/common/di/router.php
@@ -0,0 +1,45 @@
+ [
+ 'class' => UrlGenerator::class,
+ 'setEncodeRaw()' => [$params['yiisoft/router-fastroute']['encodeRaw']],
+ 'setDefaultArgument()' => ['_language', 'en'],
+ 'reset' => function () {
+ $this->defaultArguments = ['_language', 'en'];
+ },
+ ],
+
+ RouteCollectionInterface::class => static function (RouteCollectorInterface $collector) use ($config) {
+ $collector
+ ->middleware(FormatDataResponse::class)
+ ->middleware(ExceptionMiddleware::class)
+ ->middleware(RequestBodyParser::class)
+ ->addGroup(
+ Group::create('/{_language}')->routes(...$config->get('app-routes')),
+ )
+ ->addGroup(
+ Group::create()->routes(...$config->get('routes')),
+ );
+
+ return new RouteCollection($collector);
+ },
+];
diff --git a/config/common/translator.php b/blog-api/config/common/di/translator.php
similarity index 100%
rename from config/common/translator.php
rename to blog-api/config/common/di/translator.php
diff --git a/config/common/validator.php b/blog-api/config/common/di/validator.php
similarity index 75%
rename from config/common/validator.php
rename to blog-api/config/common/di/validator.php
index a38539e44..a77e34f7a 100644
--- a/config/common/validator.php
+++ b/blog-api/config/common/di/validator.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-use Yiisoft\Validator\RuleHandlerContainer;
+use Yiisoft\Validator\RuleHandlerResolver\RuleHandlerContainer;
use Yiisoft\Validator\RuleHandlerResolverInterface;
/** @var array $params */
diff --git a/blog-api/config/common/params.php b/blog-api/config/common/params.php
new file mode 100644
index 000000000..bb94bb4b0
--- /dev/null
+++ b/blog-api/config/common/params.php
@@ -0,0 +1,153 @@
+ [
+ 'locales' => ['en' => 'en-US', 'ru' => 'ru-RU', 'de' => 'de-DE'],
+ 'ignoredRequests' => [
+ '/gii**',
+ '/debug**',
+ '/inspect**',
+ ],
+ ],
+ 'supportEmail' => 'support@example.com',
+ 'middlewares' => [
+ ErrorCatcher::class,
+ Subfolder::class,
+ Locale::class,
+ Router::class,
+ ],
+
+ 'yiisoft/aliases' => [
+ 'aliases' => [
+ '@root' => dirname(__DIR__, 2),
+ '@assets' => '@public/assets',
+ '@assetsUrl' => '@baseUrl/assets',
+ '@baseUrl' => '',
+ '@data' => '@root/data',
+ '@messages' => '@resources/messages',
+ '@public' => '@root/public',
+ '@resources' => '@root/resources',
+ '@runtime' => '@root/runtime',
+ '@src' => '@root/src',
+ '@tests' => '@root/tests',
+ '@views' => '@root/views',
+ '@vendor' => '@root/vendor',
+ ],
+ ],
+
+ 'yiisoft/router-fastroute' => [
+ 'enableCache' => false,
+ ],
+
+ 'yiisoft/translator' => [
+ 'locale' => 'en',
+ 'fallbackLocale' => 'en',
+ 'defaultCategory' => 'app',
+ ],
+
+ 'yiisoft/yii-cycle' => [
+ // DBAL config
+ 'dbal' => [
+ // SQL query logger. Definition of Psr\Log\LoggerInterface
+ // For example, \Yiisoft\Yii\Cycle\Logger\StdoutQueryLogger::class
+ 'query-logger' => null,
+ // Default database
+ 'default' => 'default',
+ 'aliases' => [],
+ 'databases' => [
+ 'default' => ['connection' => 'sqlite'],
+ ],
+ 'connections' => [
+ 'sqlite' => new SQLiteDriverConfig(
+ new FileConnectionConfig(dirname(__DIR__, 2) . '/runtime/database.db')
+ ),
+ ],
+ ],
+
+ // Cycle migration config
+ 'migrations' => [
+ 'directory' => '@root/migrations',
+ 'namespace' => 'App\\Migration',
+ 'table' => 'migration',
+ 'safe' => false,
+ ],
+
+ /**
+ * SchemaProvider list for {@see \Yiisoft\Yii\Cycle\Schema\Provider\Support\SchemaProviderPipeline}
+ * Array of classname and {@see SchemaProviderInterface} object.
+ * You can configure providers if you pass classname as key and parameters as array:
+ * [
+ * SimpleCacheSchemaProvider::class => [
+ * 'key' => 'my-custom-cache-key'
+ * ],
+ * FromFilesSchemaProvider::class => [
+ * 'files' => ['@runtime/cycle-schema.php']
+ * ],
+ * FromConveyorSchemaProvider::class => [
+ * 'generators' => [
+ * Generator\SyncTables::class, // sync table changes to database
+ * ]
+ * ],
+ * ].
+ */
+ 'schema-providers' => [
+ // Uncomment next line to enable a Schema caching in the common cache
+ // \Yiisoft\Yii\Cycle\Schema\Provider\SimpleCacheSchemaProvider::class => ['key' => 'cycle-orm-cache-key'],
+
+ // Store generated Schema in the file
+ PhpFileSchemaProvider::class => [
+ 'mode' => PhpFileSchemaProvider::MODE_WRITE_ONLY,
+ 'file' => '@runtime/schema.php',
+ ],
+
+ FromConveyorSchemaProvider::class => [
+ 'generators' => [
+ Cycle\Schema\Generator\SyncTables::class, // sync table changes to database
+ ],
+ ],
+ ],
+
+ /**
+ * Config for {@see \Yiisoft\Yii\Cycle\Schema\Conveyor\AnnotatedSchemaConveyor}
+ * Annotated entity directories list.
+ * {@see \Yiisoft\Aliases\Aliases} are also supported.
+ */
+ 'entity-paths' => [
+ '@src',
+ ],
+ 'conveyor' => AttributedSchemaConveyor::class,
+ ],
+ 'yiisoft/yii-swagger' => [
+ 'annotation-paths' => [
+ '@src',
+ ],
+ ],
+
+ 'yiisoft/queue' => [
+ 'handlers' => [
+ LoggingAuthorizationHandler::NAME => [LoggingAuthorizationHandler::class, 'handle'],
+ ],
+ 'channel-definitions' => [
+ LoggingAuthorizationHandler::CHANNEL => SynchronousAdapter::class,
+ ],
+ ],
+
+ 'yiisoft/yii-debug-api' => [
+ 'allowedIPs' => ['172.0.0.1/10'],
+ ],
+];
diff --git a/blog-api/config/common/routes.php b/blog-api/config/common/routes.php
new file mode 100644
index 000000000..2f0809af2
--- /dev/null
+++ b/blog-api/config/common/routes.php
@@ -0,0 +1,74 @@
+action([InfoController::class, 'index'])
+ ->name('api/info'),
+
+ Route::get('/blog/')
+ ->middleware(RequestCatcherMiddleware::class)
+ ->action([BlogController::class, 'index'])
+ ->name('blog/index'),
+
+ Route::get('/blog/{id:\d+}')
+ ->action([BlogController::class, 'view'])
+ ->name('blog/view'),
+
+ Route::post('/blog/')
+ ->middleware(Authentication::class)
+ ->middleware(RequestCatcherMiddleware::class)
+ ->action([BlogController::class, 'create'])
+ ->name('blog/create'),
+
+ Route::put('/blog/{id:\d+}')
+ ->middleware(Authentication::class)
+ ->middleware(RequestCatcherMiddleware::class)
+ ->action([BlogController::class, 'update'])
+ ->name('blog/update'),
+
+ RestGroupFactory::create('/users/', UserController::class)
+ ->prependMiddleware(Authentication::class),
+
+ Route::post('/auth/')
+ ->middleware(RequestCatcherMiddleware::class)
+ ->action([AuthController::class, 'login'])
+ ->name('auth'),
+
+ Route::post('/logout/')
+ ->middleware(Authentication::class)
+ ->middleware(RequestCatcherMiddleware::class)
+ ->action([AuthController::class, 'logout'])
+ ->name('logout'),
+
+ // Swagger routes
+ Group::create('/docs')
+ ->routes(
+ Route::get('')
+ ->middleware(FormatDataResponseAsHtml::class)
+ ->action(function (SwaggerUi $swaggerUi, UrlGeneratorInterface $urlGenerator) {
+ return $swaggerUi->withJsonUrl($urlGenerator->getUriPrefix() . '/docs/openapi.json');
+ }),
+ Route::get('/openapi.json')
+ ->middleware(FormatDataResponseAsJson::class)
+ ->middleware(CorsAllowAll::class)
+ ->action([SwaggerJson::class, 'process']),
+ ),
+];
diff --git a/blog-api/config/console/commands.php b/blog-api/config/console/commands.php
new file mode 100644
index 000000000..84f641b6e
--- /dev/null
+++ b/blog-api/config/console/commands.php
@@ -0,0 +1,18 @@
+ Schema\SchemaCommand::class,
+ 'cycle/schema/php' => Schema\SchemaPhpCommand::class,
+ 'cycle/schema/clear' => Schema\SchemaClearCommand::class,
+ 'cycle/schema/rebuild' => Schema\SchemaRebuildCommand::class,
+ 'migrate/create' => Migration\CreateCommand::class,
+ 'migrate/generate' => Migration\GenerateCommand::class,
+ 'migrate/up' => Migration\UpCommand::class,
+ 'migrate/down' => Migration\DownCommand::class,
+ 'migrate/list' => Migration\ListCommand::class,
+];
diff --git a/blog-api/config/console/params.php b/blog-api/config/console/params.php
new file mode 100644
index 000000000..051a18593
--- /dev/null
+++ b/blog-api/config/console/params.php
@@ -0,0 +1,9 @@
+ [
+ 'commands' => require __DIR__ . '/commands.php',
+ ],
+];
diff --git a/config/dev/params.php b/blog-api/config/environments/dev/params.php
similarity index 100%
rename from config/dev/params.php
rename to blog-api/config/environments/dev/params.php
diff --git a/blog-api/config/environments/prod/params.php b/blog-api/config/environments/prod/params.php
new file mode 100644
index 000000000..3e62e040b
--- /dev/null
+++ b/blog-api/config/environments/prod/params.php
@@ -0,0 +1,9 @@
+ [
+ 'enabled' => false,
+ ],
+];
diff --git a/blog-api/config/environments/test/params.php b/blog-api/config/environments/test/params.php
new file mode 100644
index 000000000..abcc17960
--- /dev/null
+++ b/blog-api/config/environments/test/params.php
@@ -0,0 +1,21 @@
+ [
+ 'enabled' => false,
+ ],
+ 'yiisoft/yii-cycle' => [
+ 'dbal' => [
+ 'connections' => [
+ 'sqlite' => new SQLiteDriverConfig(
+ new FileConnectionConfig(dirname(__DIR__, 3) . '/tests/Support/Data/database.db')
+ ),
+ ],
+ ],
+ ],
+];
diff --git a/blog-api/config/web/di/application.php b/blog-api/config/web/di/application.php
new file mode 100644
index 000000000..709f69e3b
--- /dev/null
+++ b/blog-api/config/web/di/application.php
@@ -0,0 +1,34 @@
+ [
+ '__construct()' => [
+ 'dispatcher' => DynamicReference::to(static function (Injector $injector) use ($params) {
+ return $injector->make(MiddlewareDispatcher::class)
+ ->withMiddlewares($params['middlewares']);
+ }),
+ 'fallbackHandler' => Reference::to(NotFoundHandler::class),
+ ],
+ ],
+ \Yiisoft\Yii\Middleware\Locale::class => [
+ '__construct()' => [
+ 'supportedLocales' => $params['locale']['locales'],
+ 'ignoredRequestUrlPatterns' => $params['locale']['ignoredRequests'],
+ ],
+ ],
+ \Yiisoft\Yii\Middleware\Subfolder::class => [
+ '__construct()' => [
+ 'prefix' => !empty(trim($_ENV['BASE_URL'] ?? '', '/')) ? $_ENV['BASE_URL'] : null,
+ ],
+ ],
+];
diff --git a/blog-api/config/web/di/data-response.php b/blog-api/config/web/di/data-response.php
new file mode 100644
index 000000000..336029d79
--- /dev/null
+++ b/blog-api/config/web/di/data-response.php
@@ -0,0 +1,28 @@
+ ApiResponseFormatter::class,
+ DataResponseFactoryInterface::class => DataResponseFactory::class,
+ ContentNegotiator::class => [
+ '__construct()' => [
+ 'contentFormatters' => [
+ 'text/html' => new HtmlDataResponseFormatter(),
+ 'application/xml' => new XmlDataResponseFormatter(),
+ 'application/json' => new JsonDataResponseFormatter(),
+ ],
+ ],
+ ],
+];
diff --git a/blog-api/config/web/di/error-handler.php b/blog-api/config/web/di/error-handler.php
new file mode 100644
index 000000000..d97bf3ecf
--- /dev/null
+++ b/blog-api/config/web/di/error-handler.php
@@ -0,0 +1,14 @@
+ JsonRenderer::class,
+];
diff --git a/blog-api/config/web/di/middleware-dispatcher.php b/blog-api/config/web/di/middleware-dispatcher.php
new file mode 100644
index 000000000..d60af7bc3
--- /dev/null
+++ b/blog-api/config/web/di/middleware-dispatcher.php
@@ -0,0 +1,23 @@
+ [
+ 'class' => CompositeParametersResolver::class,
+ '__construct()' => [
+ Reference::to(HydratorAttributeParametersResolver::class),
+ Reference::to(RequestInputParametersResolver::class),
+ ],
+ ],
+];
diff --git a/blog-api/config/web/di/user.php b/blog-api/config/web/di/user.php
new file mode 100644
index 000000000..f41c0ab07
--- /dev/null
+++ b/blog-api/config/web/di/user.php
@@ -0,0 +1,26 @@
+ UserRepository::class,
+ IdentityWithTokenRepositoryInterface::class => UserRepository::class,
+ AuthenticationMethodInterface::class => HttpHeader::class,
+ Authentication::class => [
+ 'class' => Authentication::class,
+ '__construct()' => [
+ 'authenticationFailureHandler' => Reference::to(AuthRequestErrorHandler::class),
+ ],
+ ],
+];
diff --git a/blog-api/config/web/events.php b/blog-api/config/web/events.php
new file mode 100644
index 000000000..b62cc3ca5
--- /dev/null
+++ b/blog-api/config/web/events.php
@@ -0,0 +1,12 @@
+ [
+ static fn(TranslatorInterface $translator, SetLocaleEvent $event) => $translator->setLocale($event->getLocale()),
+ ],
+];
diff --git a/blog-api/config/web/params.php b/blog-api/config/web/params.php
new file mode 100644
index 000000000..2b3b65847
--- /dev/null
+++ b/blog-api/config/web/params.php
@@ -0,0 +1,11 @@
+ [
+ 'requestInputParametersResolver' => [
+ 'throwInputValidationException' => true,
+ ],
+ ],
+];
diff --git a/blog-api/configuration.php b/blog-api/configuration.php
new file mode 100644
index 000000000..0066a1322
--- /dev/null
+++ b/blog-api/configuration.php
@@ -0,0 +1,69 @@
+ [
+ 'params' => [
+ 'common/params.php',
+ ],
+ 'params-web' => [
+ '$params',
+ 'web/params.php',
+ ],
+ 'params-console' => [
+ '$params',
+ 'console/params.php',
+ ],
+ 'di' => 'common/di/*.php',
+ 'di-web' => [
+ '$di',
+ 'web/di/*.php',
+ ],
+ 'di-console' => '$di',
+ 'di-providers' => [],
+ 'di-providers-web' => [
+ '$di-providers',
+ ],
+ 'di-providers-console' => [
+ '$di-providers',
+ ],
+ 'di-delegates' => [],
+ 'di-delegates-web' => [
+ '$di-delegates',
+ ],
+ 'di-delegates-console' => [
+ '$di-delegates',
+ ],
+ 'events' => [],
+ 'events-web' => [
+ '$events',
+ 'web/events.php',
+ ],
+ 'events-console' => '$events',
+ 'app-routes' => 'common/routes.php',
+ 'bootstrap' => 'common/bootstrap.php',
+ 'bootstrap-web' => '$bootstrap',
+ 'bootstrap-console' => '$bootstrap',
+ ],
+ 'config-plugin-environments' => [
+ 'dev' => [
+ 'params' => [
+ 'environments/dev/params.php',
+ ],
+ ],
+ 'prod' => [
+ 'params' => [
+ 'environments/prod/params.php',
+ ],
+ ],
+ 'test' => [
+ 'params' => [
+ 'environments/test/params.php',
+ ],
+ ],
+ ],
+ 'config-plugin-options' => [
+ 'source-directory' => 'config',
+ ],
+];
diff --git a/blog-api/data/db/database.db b/blog-api/data/db/database.db
new file mode 100644
index 000000000..df1dad291
Binary files /dev/null and b/blog-api/data/db/database.db differ
diff --git a/blog-api/data/nginx/default.conf b/blog-api/data/nginx/default.conf
new file mode 100644
index 000000000..0ebd9e1bb
--- /dev/null
+++ b/blog-api/data/nginx/default.conf
@@ -0,0 +1,30 @@
+server {
+ listen 80;
+
+ set $index_file "public/index.php";
+ set $root "/app";
+
+ root $root;
+ index $index_file;
+
+ error_log /var/log/nginx/error.log; #set
+ access_log /var/log/nginx/access.log; #set
+
+ location ~* \.(js|css|png|html)$ {
+ root $root/public;
+ access_log off;
+ }
+
+ location ~ [^/]\.php(/|$) {
+ fastcgi_pass yii-php:9000;
+ fastcgi_index $root/$index_file;
+ include fastcgi_params;
+ fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ }
+
+ location / {
+ try_files $uri $uri/ /$index_file?$query_string;
+ }
+}
diff --git a/blog-api/docker-compose.yml b/blog-api/docker-compose.yml
new file mode 100644
index 000000000..1a424c625
--- /dev/null
+++ b/blog-api/docker-compose.yml
@@ -0,0 +1,19 @@
+services:
+ php:
+ container_name: yii-php
+ image: yiisoftware/yii-php:8.3-fpm
+ working_dir: /app
+ volumes:
+ - ./:/app
+ nginx:
+ image: nginx:alpine
+ container_name: yii-nginx
+ ports:
+ - "8080:80"
+ - "8081:81"
+ volumes:
+ - ./:/app
+ - ./data/nginx/:/etc/nginx/conf.d/
+ depends_on:
+ - php
+ restart: always
diff --git a/blog-api/docker/dev/nginx/Dockerfile b/blog-api/docker/dev/nginx/Dockerfile
new file mode 100644
index 000000000..b98399633
--- /dev/null
+++ b/blog-api/docker/dev/nginx/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx:1.21.1-alpine
+
+RUN apk add --no-cache curl
+
+WORKDIR /app/public
+
+COPY docker/dev/nginx/nginx.conf /etc/nginx/conf.d/default.conf
+COPY public ./
+
diff --git a/blog-api/docker/dev/nginx/nginx.conf b/blog-api/docker/dev/nginx/nginx.conf
new file mode 100644
index 000000000..12b6d1b40
--- /dev/null
+++ b/blog-api/docker/dev/nginx/nginx.conf
@@ -0,0 +1,49 @@
+server {
+ listen 80 default_server;
+ server_name default;
+ client_max_body_size 15m;
+ root /app/public;
+ resolver 127.0.0.11 ipv6=off;
+ server_tokens off;
+
+ location /health {
+ add_header Content-Type text/plain;
+ access_log off;
+ return 200 'alive';
+ }
+
+ location /assets {
+ root /app/public;
+ }
+
+ location / {
+ add_header 'Access-Control-Allow-Origin' '*' always;
+ add_header 'Access-Control-Allow-Credentials' 'true' always;
+ add_header 'Access-Control-Allow-Methods' 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS' always;
+ add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;
+ add_header 'Access-Control-Max-Age' 1728000;
+ if ($request_method = 'OPTIONS') {
+ add_header 'Content-Type' 'text/plain; charset=utf-8';
+ add_header 'Content-Length' 0;
+ return 204;
+ }
+ try_files $uri /index.php?$args;
+ }
+
+ location ~ ^/index\.php(/|$) {
+ set $upstream blog-api-backend:9000;
+ fastcgi_read_timeout 60;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ fastcgi_pass $upstream;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param SERVER_NAME $server_name;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ }
+
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+}
diff --git a/blog-api/docker/dev/php/Dockerfile b/blog-api/docker/dev/php/Dockerfile
new file mode 100644
index 000000000..6e867bce3
--- /dev/null
+++ b/blog-api/docker/dev/php/Dockerfile
@@ -0,0 +1,70 @@
+# the different stages of this Dockerfile are meant to be built into separate images
+# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
+# https://docs.docker.com/compose/compose-file/#target
+
+
+# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
+FROM php:8.1-fpm-alpine as stage
+
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+
+ENV COMPOSER_ALLOW_SUPERUSER=1
+ENV PATH="${PATH}:/root/.composer/vendor/bin"
+
+RUN set -eux \
+ && apk add --no-cache \
+ acl fcgi file gettext git nano curl \
+ && apk add --no-cache --virtual .build-deps \
+ $PHPIZE_DEPS icu-dev libzip-dev zlib-dev \
+ \
+ && docker-php-ext-configure zip \
+ && docker-php-ext-install -j$(nproc) intl zip \
+ && docker-php-ext-enable opcache \
+ \
+ && runDeps="$( \
+ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
+ | tr ',' '\n' \
+ | sort -u \
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
+ )" \
+ && apk add --no-cache --virtual .pgsql-deps \
+ $runDeps postgresql-dev so:libpq.so.5 \
+ && docker-php-ext-install -j$(nproc) pdo_pgsql
+
+RUN apk add oniguruma-dev \
+ && docker-php-ext-install mbstring \
+ \
+ && apk add --repository http://dl-3.alpinelinux.org/alpine/edge/community \
+ rabbitmq-c-dev \
+ && pecl install xdebug-3.1.4 amqp-1.11.0 \
+ && docker-php-ext-enable xdebug amqp \
+ \
+ && apk del .build-deps \
+ && pecl clear-cache \
+ && rm -rf /tmp/pear \
+ && docker-php-source delete \
+ && rm -rf /var/cache/apk/*
+
+RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
+
+WORKDIR /app
+
+COPY docker/dev/php/conf.d/ $PHP_INI_DIR/conf.d/
+COPY docker/dev/php/php-fpm.d/ /usr/local/etc/php-fpm.d/
+
+COPY composer.json composer.lock* ./
+
+RUN composer install --no-plugins --no-scripts --prefer-dist \
+ && composer clear-cache
+
+COPY ./ ./
+
+RUN composer run-script --no-dev post-install-cmd
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s \
+ CMD REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect 127.0.0.1:9000
+
+RUN chmod 0555 ./docker/docker-entrypoint.sh
+ENTRYPOINT ["docker/docker-entrypoint.sh"]
+
+CMD ["php-fpm"]
diff --git a/blog-api/docker/dev/php/conf.d/php.ini b/blog-api/docker/dev/php/conf.d/php.ini
new file mode 100644
index 000000000..c80827193
--- /dev/null
+++ b/blog-api/docker/dev/php/conf.d/php.ini
@@ -0,0 +1,28 @@
+;apc.enable_cli = 1
+date.timezone = UTC
+session.auto_start = Off
+short_open_tag = Off
+expose_php = Off
+upload_max_filesize = 15M
+post_max_size = 150M
+memory_limit = 256M
+
+# https://symfony.com/doc/current/performance.html
+opcache.interned_strings_buffer = 16
+opcache.max_accelerated_files = 20000
+opcache.memory_consumption = 256
+realpath_cache_size = 4096K
+realpath_cache_ttl = 600
+max_execution_time = 300
+max_input_time = 300
+
+[xdebug]
+xdebug.mode = develop,debug
+xdebug.client_host = host.docker.internal
+;xdebug.discover_client_host=true
+xdebug.show_error_trace = 0
+xdebug.start_with_request = trigger
+;xdebug.client_host=host-gateway
+;xdebug.start_with_request=
+xdebug.client_port = 9001
+xdebug.log_level = 10
diff --git a/blog-api/docker/dev/php/php-fpm.d/www.conf b/blog-api/docker/dev/php/php-fpm.d/www.conf
new file mode 100644
index 000000000..55df850b8
--- /dev/null
+++ b/blog-api/docker/dev/php/php-fpm.d/www.conf
@@ -0,0 +1,20 @@
+[global]
+daemonize = no
+process_control_timeout = 20
+error_log = /proc/self/fd/2
+
+[www]
+user = www-data
+group = www-data
+listen = 9000
+listen.mode = 0666
+ping.path = /ping
+ping.response = pong
+clear_env = off
+pm = dynamic
+pm.status_path = /status
+pm.max_children = 25
+pm.start_servers = 10
+pm.min_spare_servers = 5
+pm.max_spare_servers = 20
+pm.max_requests = 500
diff --git a/blog-api/docker/docker-entrypoint.sh b/blog-api/docker/docker-entrypoint.sh
new file mode 100644
index 000000000..fd0a4a126
--- /dev/null
+++ b/blog-api/docker/docker-entrypoint.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -e
+
+ls -la
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+ set -- php-fpm "$@"
+fi
+set -e
+
+if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'yii' ]; then
+ setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX runtime public
+ setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX runtime public
+fi
+
+exec "$@"
diff --git a/blog-api/docker/prod/nginx/Dockerfile b/blog-api/docker/prod/nginx/Dockerfile
new file mode 100644
index 000000000..94cf7d82f
--- /dev/null
+++ b/blog-api/docker/prod/nginx/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx:1.21.1-alpine
+
+RUN apk add --no-cache curl
+
+COPY docker/prod/nginx/nginx.conf /etc/nginx/conf.d/default.conf
+
+WORKDIR /app/public
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s CMD curl --fail http://127.0.0.1/health || exit 1
diff --git a/blog-api/docker/prod/nginx/nginx.conf b/blog-api/docker/prod/nginx/nginx.conf
new file mode 100644
index 000000000..55c61adbb
--- /dev/null
+++ b/blog-api/docker/prod/nginx/nginx.conf
@@ -0,0 +1,48 @@
+server {
+ listen 80 default_server;
+ root /app/public;
+ client_max_body_size 15m;
+ resolver 127.0.0.11 ipv6=off;
+ server_tokens off;
+
+ location /health {
+ add_header Content-Type text/plain;
+ access_log off;
+ return 200 'alive';
+ }
+
+ location /assets {
+ root /app/public;
+ }
+
+ location / {
+ add_header 'Access-Control-Allow-Origin' '*' always;
+ add_header 'Access-Control-Allow-Credentials' 'true' always;
+ add_header 'Access-Control-Allow-Methods' 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS' always;
+ add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;
+ add_header 'Access-Control-Max-Age' 1728000;
+ if ($request_method = 'OPTIONS') {
+ add_header 'Content-Type' 'text/plain; charset=utf-8';
+ add_header 'Content-Length' 0;
+ return 204;
+ }
+ try_files $uri /index.php?$args;
+ }
+
+ location ~ ^/index\.php(/|$) {
+ set $upstream blog-api-backend:9000;
+ fastcgi_read_timeout 60;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ fastcgi_pass $upstream;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param SERVER_NAME $server_name;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ }
+
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+}
diff --git a/blog-api/docker/prod/php/Dockerfile b/blog-api/docker/prod/php/Dockerfile
new file mode 100644
index 000000000..8c221b3ce
--- /dev/null
+++ b/blog-api/docker/prod/php/Dockerfile
@@ -0,0 +1,72 @@
+# the different stages of this Dockerfile are meant to be built into separate images
+# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
+# https://docs.docker.com/compose/compose-file/#target
+
+
+# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
+FROM php:8.1-fpm-alpine as stage
+
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+
+ENV COMPOSER_ALLOW_SUPERUSER=1
+ENV PATH="${PATH}:/root/.composer/vendor/bin"
+
+RUN set -eux \
+ && apk add --no-cache \
+ acl fcgi file gettext git nano curl \
+ && apk add --no-cache --virtual .build-deps \
+ $PHPIZE_DEPS icu-dev libzip-dev zlib-dev \
+ \
+ && docker-php-ext-configure zip \
+ && docker-php-ext-install -j$(nproc) intl zip \
+ && docker-php-ext-enable opcache \
+ \
+ && runDeps="$( \
+ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
+ | tr ',' '\n' \
+ | sort -u \
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
+ )" \
+ && apk add --no-cache --virtual .pgsql-deps \
+ $runDeps postgresql-dev so:libpq.so.5 \
+ && docker-php-ext-install -j$(nproc) pdo_pgsql \
+ \
+ && apk add oniguruma-dev \
+ && docker-php-ext-install mbstring \
+ \
+ && apk add --repository http://dl-3.alpinelinux.org/alpine/edge/community \
+ rabbitmq-c-dev \
+ && pecl install amqp-1.11.0 \
+ && docker-php-ext-enable amqp \
+ && apk del .build-deps \
+ && pecl clear-cache \
+ && rm -rf /tmp/pear \
+ && docker-php-source delete \
+ && rm -rf /var/cache/apk/*
+
+RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
+
+WORKDIR /app
+
+COPY docker/prod/php/conf.d/ $PHP_INI_DIR/conf.d/
+COPY docker/prod/php/php-fpm.d/ /usr/local/etc/php-fpm.d/
+
+COPY composer.json composer.lock* ./
+
+RUN set -eux \
+ && composer install --no-plugins --no-scripts --prefer-dist \
+ && composer clear-cache
+
+COPY ./ ./
+
+RUN set -eux \
+ && composer dump-autoload --classmap-authoritative \
+ && composer run-script --no-dev post-install-cmd
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s \
+ CMD REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect 127.0.0.1:9000
+
+RUN chmod 0555 ./docker/docker-entrypoint.sh
+ENTRYPOINT ["docker/docker-entrypoint.sh"]
+
+CMD ["php-fpm"]
diff --git a/blog-api/docker/prod/php/conf.d/php.ini b/blog-api/docker/prod/php/conf.d/php.ini
new file mode 100644
index 000000000..b723da7a0
--- /dev/null
+++ b/blog-api/docker/prod/php/conf.d/php.ini
@@ -0,0 +1,18 @@
+;apc.enable_cli = 1
+date.timezone = UTC
+session.auto_start = Off
+short_open_tag = Off
+expose_php = Off
+upload_max_filesize = 15M
+post_max_size = 150M
+memory_limit = 512M
+display_errors = Off
+
+# https://symfony.com/doc/current/performance.html
+opcache.interned_strings_buffer = 16
+opcache.max_accelerated_files = 20000
+opcache.memory_consumption = 256
+opcache.validate_timestamps = 0
+realpath_cache_size = 4096K
+realpath_cache_ttl = 600
+opcache.preload_user = www-data
diff --git a/blog-api/docker/prod/php/php-fpm.d/www.conf b/blog-api/docker/prod/php/php-fpm.d/www.conf
new file mode 100644
index 000000000..81ab6ab2a
--- /dev/null
+++ b/blog-api/docker/prod/php/php-fpm.d/www.conf
@@ -0,0 +1,21 @@
+[global]
+daemonize = no
+process_control_timeout = 20
+error_log = /proc/self/fd/2
+
+[www]
+user = www-data
+group = www-data
+listen = 9000
+listen.mode = 0666
+clear_env = off
+; access.suppress_path[] = /ping
+ping.path = /ping
+ping.response = pong
+pm = dynamic
+pm.status_path = /status
+pm.max_children = 25
+pm.start_servers = 10
+pm.min_spare_servers = 5
+pm.max_spare_servers = 20
+pm.max_requests = 500
diff --git a/blog-api/infection.json.dist b/blog-api/infection.json.dist
new file mode 100644
index 000000000..3776e2235
--- /dev/null
+++ b/blog-api/infection.json.dist
@@ -0,0 +1,16 @@
+{
+ "source": {
+ "directories": [
+ "src"
+ ]
+ },
+ "logs": {
+ "text": "php:\/\/stderr",
+ "stryker": {
+ "report": "master"
+ }
+ },
+ "mutators": {
+ "@default": true
+ }
+}
diff --git a/phpunit.xml.dist b/blog-api/phpunit.xml.dist
similarity index 100%
rename from phpunit.xml.dist
rename to blog-api/phpunit.xml.dist
diff --git a/blog-api/psalm.xml b/blog-api/psalm.xml
new file mode 100644
index 000000000..a3df09486
--- /dev/null
+++ b/blog-api/psalm.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/.htaccess b/blog-api/public/.htaccess
similarity index 100%
rename from public/.htaccess
rename to blog-api/public/.htaccess
diff --git a/public/assets/.gitignore b/blog-api/public/assets/.gitignore
similarity index 100%
rename from public/assets/.gitignore
rename to blog-api/public/assets/.gitignore
diff --git a/public/favicon.ico b/blog-api/public/favicon.ico
similarity index 100%
rename from public/favicon.ico
rename to blog-api/public/favicon.ico
diff --git a/blog-api/public/index.php b/blog-api/public/index.php
new file mode 100644
index 000000000..fd3ded372
--- /dev/null
+++ b/blog-api/public/index.php
@@ -0,0 +1,50 @@
+withTemporaryErrorHandler(
+ new ErrorHandler(
+ new Logger([new FileTarget(dirname(__DIR__) . '/runtime/logs/app.log')]),
+ new JsonRenderer(),
+ )
+ );
+$runner->run();
diff --git a/public/robots.txt b/blog-api/public/robots.txt
similarity index 100%
rename from public/robots.txt
rename to blog-api/public/robots.txt
diff --git a/blog-api/resources/messages/de/app.php b/blog-api/resources/messages/de/app.php
new file mode 100644
index 000000000..545f2b601
--- /dev/null
+++ b/blog-api/resources/messages/de/app.php
@@ -0,0 +1,7 @@
+ 'Seite nicht gefunden',
+];
diff --git a/config/providers.php b/blog-api/resources/messages/en/app.php
similarity index 54%
rename from config/providers.php
rename to blog-api/resources/messages/en/app.php
index 1f6a841dc..1451dd590 100644
--- a/config/providers.php
+++ b/blog-api/resources/messages/en/app.php
@@ -3,4 +3,5 @@
declare(strict_types=1);
return [
+ '404.title' => 'Page not found',
];
diff --git a/blog-api/resources/messages/ru/app.php b/blog-api/resources/messages/ru/app.php
new file mode 100644
index 000000000..ea39702a9
--- /dev/null
+++ b/blog-api/resources/messages/ru/app.php
@@ -0,0 +1,7 @@
+ 'Страница не найдена',
+];
diff --git a/runtime/.gitignore b/blog-api/runtime/.gitignore
similarity index 100%
rename from runtime/.gitignore
rename to blog-api/runtime/.gitignore
diff --git a/blog-api/src/Auth/AuthController.php b/blog-api/src/Auth/AuthController.php
new file mode 100644
index 000000000..9416937ca
--- /dev/null
+++ b/blog-api/src/Auth/AuthController.php
@@ -0,0 +1,98 @@
+responseFactory->createResponse(
+ [
+ 'token' => $this->userService
+ ->login(
+ $request->getLogin(),
+ $request->getPassword()
+ )
+ ->getToken(),
+ ]
+ );
+ }
+
+ #[OA\Post(
+ path: '/logout/',
+ description: '',
+ summary: 'Logout',
+ security: [new OA\SecurityScheme(ref: '#/components/securitySchemes/ApiKey')],
+ tags: ['auth'],
+ responses: [
+ new OA\Response(
+ response: '200',
+ description: 'Success',
+ content: new OA\JsonContent(ref: '#/components/schemas/Response')
+ ),
+ new OA\Response(
+ response: '400',
+ description: 'Bad request',
+ content: new OA\JsonContent(ref: '#/components/schemas/BadResponse')
+ ),
+ ]
+ )]
+ public function logout(UserRequest $request): ResponseInterface
+ {
+ $this->userService->logout($request->getUser());
+
+ return $this->responseFactory->createResponse();
+ }
+}
diff --git a/blog-api/src/Auth/AuthRequest.php b/blog-api/src/Auth/AuthRequest.php
new file mode 100644
index 000000000..d72bdfbb9
--- /dev/null
+++ b/blog-api/src/Auth/AuthRequest.php
@@ -0,0 +1,49 @@
+login;
+ }
+
+ public function getPassword(): string
+ {
+ return $this->password;
+ }
+
+ public function getRules(): array
+ {
+ return [
+ 'login' => [
+ new Required(),
+ ],
+ 'password' => [
+ new Required(),
+ ],
+ ];
+ }
+}
diff --git a/blog-api/src/Auth/AuthRequestErrorHandler.php b/blog-api/src/Auth/AuthRequestErrorHandler.php
new file mode 100644
index 000000000..3aa2a8033
--- /dev/null
+++ b/blog-api/src/Auth/AuthRequestErrorHandler.php
@@ -0,0 +1,18 @@
+postRepository = $postRepository;
+ $this->responseFactory = $responseFactory;
+ $this->postFormatter = $postFormatter;
+ $this->postBuilder = $postBuilder;
+ $this->blogService = $blogService;
+ }
+
+ #[OA\Get(
+ path: '/blog/',
+ description: '',
+ summary: 'Returns paginated blog posts',
+ tags: ['blog'],
+ parameters: [
+ new OA\Parameter(ref: '#/components/parameters/PageRequest'),
+ ],
+ responses: [
+ new OA\Response(
+ response:'200',
+ description:'Success',
+ content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/Response'),
+ new OA\Schema(properties: [
+ new OA\Property(
+ property: 'data',
+ properties: [
+ new OA\Property(property: 'posts', type: 'array', items: new OA\Items(ref:'#/components/schemas/Post')),
+ new OA\Property(property: 'paginator', ref: '#/components/schemas/Paginator', type: 'object'),
+ ],
+ type: 'object'
+ ),
+ ]),
+ ]
+ ),
+ ),
+ ]
+ )]
+ public function index(PaginatorFormatter $paginatorFormatter, #[Query('page')] int $page = 1): Response
+ {
+ $paginator = $this->blogService->getPosts($page);
+ $posts = [];
+ foreach ($paginator->read() as $post) {
+ $posts[] = $this->postFormatter->format($post);
+ }
+
+ return $this->responseFactory->createResponse(
+ [
+ 'paginator' => $paginatorFormatter->format($paginator),
+ 'posts' => $posts,
+ ]
+ );
+ }
+
+ #[OA\Get(
+ path: '/blog/{id}',
+ description: '',
+ summary: 'Returns a post with a given ID',
+ tags: ['blog'],
+ parameters: [
+ new OA\Parameter(parameter: 'id', name: 'id', in: 'path', schema: new OA\Schema(type: 'int', example: '2')),
+ ],
+ responses: [
+ new OA\Response(
+ response:'200',
+ description:'Success',
+ content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/Response'),
+ new OA\Schema(properties: [
+ new OA\Property(
+ property: 'data',
+ properties: [
+ new OA\Property(property: 'post', ref: '#/components/schemas/Post', type: 'object'),
+ ],
+ type: 'object'
+ ),
+ ]),
+ ]
+ ),
+ ),
+ new OA\Response(
+ response: '404',
+ description: 'Not found',
+ content: new OA\JsonContent(allOf: [
+ new OA\Schema(ref: '#/components/schemas/BadResponse'),
+ new OA\Schema(properties: [
+ new OA\Property(property:'error_message', example:'Entity not found'),
+ new OA\Property(property: 'error_code', example: 404, nullable: true),
+ ]),
+ ])
+ ),
+ ]
+ )]
+ public function view(#[RouteArgument('id')] int $id): Response
+ {
+ return $this->responseFactory->createResponse(
+ [
+ 'post' => $this->postFormatter->format(
+ $this->blogService->getPost($id)
+ ),
+ ]
+ );
+ }
+
+ #[OA\Post(
+ path: '/blog/',
+ description: '',
+ summary: 'Creates a blog post',
+ security: [new OA\SecurityScheme(ref: '#/components/securitySchemes/ApiKey')],
+ requestBody: new OA\RequestBody(required: true, content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/EditPostRequest'),
+ ]
+ )),
+ tags: ['blog'],
+ responses: [
+ new OA\Response(
+ response: '200',
+ description: 'Success',
+ content: new OA\JsonContent(ref: '#/components/schemas/Response')
+ ),
+ new OA\Response(
+ response: '400',
+ description: 'Bad request',
+ content: new OA\JsonContent(ref: '#/components/schemas/BadResponse')
+ ),
+ ]
+ )]
+ public function create(EditPostRequest $postRequest, UserRequest $userRequest): Response
+ {
+ $post = $this->postBuilder->build(new Post(), $postRequest);
+ $post->setUser($userRequest->getUser());
+
+ $this->postRepository->save($post);
+
+ return $this->responseFactory->createResponse();
+ }
+
+ #[OA\Put(
+ path: '/blog/{id}',
+ description: '',
+ summary: 'Updates a blog post with a given ID',
+ security: [new OA\SecurityScheme(ref: '#/components/securitySchemes/ApiKey')],
+ requestBody: new OA\RequestBody(required: true, content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/EditPostRequest'),
+ ]
+ )),
+ tags: ['blog'],
+ parameters: [
+ new OA\Parameter(parameter: 'id', name: 'id', in: 'path', schema: new OA\Schema(type: 'int', example: '2')),
+ ],
+ responses: [
+ new OA\Response(
+ response: '200',
+ description: 'Success',
+ content: new OA\JsonContent(ref: '#/components/schemas/Response')
+ ),
+ new OA\Response(
+ response: '400',
+ description: 'Bad request',
+ content: new OA\JsonContent(ref: '#/components/schemas/BadResponse')
+ ),
+ ]
+ )]
+ public function update(EditPostRequest $postRequest, #[RouteArgument('id')] int $id): Response
+ {
+ $post = $this->postBuilder->build(
+ $this->blogService->getPost($id),
+ $postRequest
+ );
+
+ $this->postRepository->save($post);
+
+ return $this->responseFactory->createResponse();
+ }
+}
diff --git a/blog-api/src/Blog/BlogService.php b/blog-api/src/Blog/BlogService.php
new file mode 100644
index 000000000..b511dad5c
--- /dev/null
+++ b/blog-api/src/Blog/BlogService.php
@@ -0,0 +1,53 @@
+postRepository = $postRepository;
+ }
+
+ /**
+ * @psalm-return PaginatorInterface
+ */
+ public function getPosts(int $page): PaginatorInterface
+ {
+ $dataReader = $this->postRepository->findAll();
+
+ /** @psalm-var PaginatorInterface */
+ return (new OffsetPaginator($dataReader))
+ ->withPageSize(self::POSTS_PER_PAGE)
+ ->withCurrentPage($page);
+ }
+
+ /**
+ * @param int $id
+ *
+ * @throws NotFoundException
+ *
+ * @return Post
+ */
+ public function getPost(int $id): Post
+ {
+ /**
+ * @var Post|null $post
+ */
+ $post = $this->postRepository->findOne(['id' => $id]);
+ if ($post === null) {
+ throw new NotFoundException();
+ }
+
+ return $post;
+ }
+}
diff --git a/blog-api/src/Blog/EditPostRequest.php b/blog-api/src/Blog/EditPostRequest.php
new file mode 100644
index 000000000..f7f24838a
--- /dev/null
+++ b/blog-api/src/Blog/EditPostRequest.php
@@ -0,0 +1,83 @@
+id;
+ }
+
+ public function getTitle(): string
+ {
+ return $this->title;
+ }
+
+ public function getText(): string
+ {
+ return $this->text;
+ }
+
+ public function getStatus(): PostStatus
+ {
+ return PostStatus::from($this->status);
+ }
+
+ public function getRules(): array
+ {
+ return [
+ 'title' => [
+ new Length(min: 5, max: 255),
+ ],
+ 'text' => [
+ new Length(min: 5, max: 1000),
+ ],
+ 'status' => [
+ static function ($value): Result {
+ $result = new Result();
+ if (!PostStatus::isValid($value)) {
+ $result->addError('Incorrect status');
+ }
+
+ return $result;
+ },
+ ],
+ ];
+ }
+}
diff --git a/blog-api/src/Blog/Post.php b/blog-api/src/Blog/Post.php
new file mode 100644
index 000000000..99c20e2dc
--- /dev/null
+++ b/blog-api/src/Blog/Post.php
@@ -0,0 +1,108 @@
+created_at = new DateTimeImmutable();
+ $this->updated_at = new DateTimeImmutable();
+ $this->resetSlug();
+ }
+
+ public function getId(): ?int
+ {
+ return $this->id;
+ }
+
+ public function getSlug(): ?string
+ {
+ return $this->slug;
+ }
+
+ public function resetSlug(): void
+ {
+ $this->slug = Random::string(128);
+ }
+
+ public function getTitle(): string
+ {
+ return $this->title;
+ }
+
+ public function setTitle(string $title): void
+ {
+ $this->title = $title;
+ }
+
+ public function getContent(): string
+ {
+ return $this->content;
+ }
+
+ public function setContent(string $content): void
+ {
+ $this->content = $content;
+ }
+
+ public function setStatus(PostStatus $status): void
+ {
+ $this->status = $status->getValue();
+ }
+
+ public function getCreatedAt(): DateTimeImmutable
+ {
+ return $this->created_at;
+ }
+
+ public function getUpdatedAt(): DateTimeImmutable
+ {
+ return $this->updated_at;
+ }
+
+ public function setUser(User $user): void
+ {
+ $this->user = $user;
+ }
+
+ public function getUser(): ?User
+ {
+ return $this->user;
+ }
+}
diff --git a/blog-api/src/Blog/PostBuilder.php b/blog-api/src/Blog/PostBuilder.php
new file mode 100644
index 000000000..0083f564d
--- /dev/null
+++ b/blog-api/src/Blog/PostBuilder.php
@@ -0,0 +1,17 @@
+setTitle($request->getTitle());
+ $post->setContent($request->getText());
+ $post->setStatus($request->getStatus());
+
+ return $post;
+ }
+}
diff --git a/blog-api/src/Blog/PostFormatter.php b/blog-api/src/Blog/PostFormatter.php
new file mode 100644
index 000000000..db8d1bfec
--- /dev/null
+++ b/blog-api/src/Blog/PostFormatter.php
@@ -0,0 +1,27 @@
+ $post->getId(),
+ 'title' => $post->getTitle(),
+ 'content' => $post->getContent(),
+ ];
+ }
+}
diff --git a/blog-api/src/Blog/PostRepository.php b/blog-api/src/Blog/PostRepository.php
new file mode 100644
index 000000000..c27838be1
--- /dev/null
+++ b/blog-api/src/Blog/PostRepository.php
@@ -0,0 +1,42 @@
+orm = $orm;
+ parent::__construct($select);
+ }
+
+ /**
+ * @psalm-return EntityReader
+ */
+ public function findAll(array $scope = [], array $orderBy = []): EntityReader
+ {
+ /** @psalm-var EntityReader */
+ return new EntityReader(
+ $this
+ ->select()
+ ->where($scope)
+ ->orderBy($orderBy)
+ );
+ }
+
+ public function save(Post $user): void
+ {
+ $transaction = new Transaction($this->orm);
+ $transaction->persist($user);
+ $transaction->run();
+ }
+}
diff --git a/blog-api/src/Blog/PostStatus.php b/blog-api/src/Blog/PostStatus.php
new file mode 100644
index 000000000..da2e9b033
--- /dev/null
+++ b/blog-api/src/Blog/PostStatus.php
@@ -0,0 +1,21 @@
+status;
+ }
+
+ public function setStatus(string $status): self
+ {
+ $this->status = $status;
+
+ return $this;
+ }
+
+ public function getErrorMessage(): string
+ {
+ return $this->errorMessage;
+ }
+
+ public function setErrorMessage(string $errorMessage): self
+ {
+ $this->errorMessage = $errorMessage;
+
+ return $this;
+ }
+
+ public function getErrorCode(): ?int
+ {
+ return $this->errorCode;
+ }
+
+ public function setErrorCode(int $errorCode): self
+ {
+ $this->errorCode = $errorCode;
+
+ return $this;
+ }
+
+ public function getData(): ?array
+ {
+ return $this->data;
+ }
+
+ public function setData(?array $data): self
+ {
+ $this->data = $data;
+
+ return $this;
+ }
+
+ public function toArray(): array
+ {
+ return [
+ 'status' => $this->getStatus(),
+ 'error_message' => $this->getErrorMessage(),
+ 'error_code' => $this->getErrorCode(),
+ 'data' => $this->getData(),
+ ];
+ }
+}
diff --git a/blog-api/src/Exception/ApplicationException.php b/blog-api/src/Exception/ApplicationException.php
new file mode 100644
index 000000000..8c919156b
--- /dev/null
+++ b/blog-api/src/Exception/ApplicationException.php
@@ -0,0 +1,11 @@
+getStatusCode() !== Status::OK) {
+ return $this
+ ->createErrorResponse()
+ ->setErrorCode($response->getStatusCode())
+ ->setErrorMessage($this->getErrorMessage($response));
+ }
+
+ return $this
+ ->createSuccessResponse()
+ ->setData($response->getData());
+ }
+
+ public function createSuccessResponse(): ApiResponseData
+ {
+ return $this
+ ->createResponse()
+ ->setStatus('success');
+ }
+
+ public function createErrorResponse(): ApiResponseData
+ {
+ return $this
+ ->createResponse()
+ ->setStatus('failed');
+ }
+
+ public function createResponse(): ApiResponseData
+ {
+ return new ApiResponseData();
+ }
+
+ private function getErrorMessage(DataResponse $response): string
+ {
+ $data = $response->getData();
+ if (is_string($data) && !empty($data)) {
+ return $data;
+ }
+
+ return 'Unknown error';
+ }
+}
diff --git a/blog-api/src/Factory/RestGroupFactory.php b/blog-api/src/Factory/RestGroupFactory.php
new file mode 100644
index 000000000..f4c74dd7d
--- /dev/null
+++ b/blog-api/src/Factory/RestGroupFactory.php
@@ -0,0 +1,47 @@
+ Method::GET,
+ 'list' => Method::GET,
+ 'post' => Method::POST,
+ 'put' => Method::PUT,
+ 'delete' => Method::DELETE,
+ 'patch' => Method::PATCH,
+ 'options' => Method::OPTIONS,
+ ];
+
+ public static function create(string $prefix, string $controller): Group
+ {
+ return Group::create($prefix)->routes(...self::createDefaultRoutes($controller));
+ }
+
+ private static function createDefaultRoutes(string $controller): array
+ {
+ $routes = [];
+ $reflection = new ReflectionClass($controller);
+ foreach (self::METHODS as $methodName => $httpMethod) {
+ if ($reflection->hasMethod($methodName)) {
+ $pattern = ($methodName === 'list' || $methodName === 'post') ? '' : self::ENTITY_PATTERN;
+ $routes[] = Route::methods([$httpMethod], $pattern)->action([$controller, $methodName]);
+ }
+ }
+ if ($reflection->hasMethod('options')) {
+ $routes[] = Route::methods([Method::OPTIONS], '')->action([$controller, 'options']);
+ }
+
+ return $routes;
+ }
+}
diff --git a/blog-api/src/Formatter/ApiResponseFormatter.php b/blog-api/src/Formatter/ApiResponseFormatter.php
new file mode 100644
index 000000000..1609c1b1d
--- /dev/null
+++ b/blog-api/src/Formatter/ApiResponseFormatter.php
@@ -0,0 +1,36 @@
+apiResponseDataFactory = $apiResponseDataFactory;
+ $this->jsonDataResponseFormatter = $jsonDataResponseFormatter;
+ }
+
+ public function format(DataResponse $dataResponse): ResponseInterface
+ {
+ $response = $dataResponse->withData(
+ $this->apiResponseDataFactory
+ ->createFromResponse($dataResponse)
+ ->toArray()
+ );
+
+ return $this->jsonDataResponseFormatter->format($response);
+ }
+}
diff --git a/blog-api/src/Formatter/PaginatorFormatter.php b/blog-api/src/Formatter/PaginatorFormatter.php
new file mode 100644
index 000000000..88266c183
--- /dev/null
+++ b/blog-api/src/Formatter/PaginatorFormatter.php
@@ -0,0 +1,28 @@
+ $paginator->getPageSize(),
+ 'currentPage' => $paginator->getCurrentPage(),
+ 'totalPages' => $paginator->getTotalPages(),
+ ];
+ }
+}
diff --git a/blog-api/src/Handler/NotFoundHandler.php b/blog-api/src/Handler/NotFoundHandler.php
new file mode 100644
index 000000000..3ab9ddfe3
--- /dev/null
+++ b/blog-api/src/Handler/NotFoundHandler.php
@@ -0,0 +1,33 @@
+formatter->format(
+ $this->dataResponseFactory->createResponse(
+ $this->translator->translate('404.title'),
+ Status::NOT_FOUND,
+ )
+ );
+ }
+}
diff --git a/blog-api/src/InfoController.php b/blog-api/src/InfoController.php
new file mode 100644
index 000000000..5dbe11ff4
--- /dev/null
+++ b/blog-api/src/InfoController.php
@@ -0,0 +1,44 @@
+createResponse(['version' => $this->versionProvider->version, 'author' => 'yiisoft']);
+ }
+}
diff --git a/src/Installer.php b/blog-api/src/Installer.php
similarity index 100%
rename from src/Installer.php
rename to blog-api/src/Installer.php
diff --git a/blog-api/src/Middleware/ExceptionMiddleware.php b/blog-api/src/Middleware/ExceptionMiddleware.php
new file mode 100644
index 000000000..c64128112
--- /dev/null
+++ b/blog-api/src/Middleware/ExceptionMiddleware.php
@@ -0,0 +1,35 @@
+dataResponseFactory = $dataResponseFactory;
+ }
+
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
+ {
+ try {
+ return $handler->handle($request);
+ } catch (ApplicationException $e) {
+ return $this->dataResponseFactory->createResponse($e->getMessage(), $e->getCode());
+ } catch (InputValidationException $e) {
+ return $this->dataResponseFactory->createResponse($e->getResult()->getErrorMessages()[0], Status::BAD_REQUEST);
+ }
+ }
+}
diff --git a/blog-api/src/Queue/LoggingAuthorizationHandler.php b/blog-api/src/Queue/LoggingAuthorizationHandler.php
new file mode 100644
index 000000000..38ff6707a
--- /dev/null
+++ b/blog-api/src/Queue/LoggingAuthorizationHandler.php
@@ -0,0 +1,24 @@
+logger->info('User is login', [
+ 'data' => $message->getData(),
+ ]);
+ }
+}
diff --git a/blog-api/src/Queue/UserLoggedInMessage.php b/blog-api/src/Queue/UserLoggedInMessage.php
new file mode 100644
index 000000000..141e7d3b5
--- /dev/null
+++ b/blog-api/src/Queue/UserLoggedInMessage.php
@@ -0,0 +1,44 @@
+id = $id;
+ }
+
+ public function getId(): ?string
+ {
+ return $this->id;
+ }
+
+ public function getHandlerName(): string
+ {
+ return LoggingAuthorizationHandler::NAME;
+ }
+
+ public function getData(): array
+ {
+ return [
+ 'user_id' => $this->userId,
+ 'time' => $this->time,
+ ];
+ }
+
+ public function getMetadata(): array
+ {
+ return [];
+ }
+}
diff --git a/blog-api/src/RestControllerTrait.php b/blog-api/src/RestControllerTrait.php
new file mode 100644
index 000000000..f7315f853
--- /dev/null
+++ b/blog-api/src/RestControllerTrait.php
@@ -0,0 +1,51 @@
+login = $login;
+ $this->created_at = new DateTimeImmutable();
+ $this->updated_at = new DateTimeImmutable();
+ $this->setPassword($password);
+ $this->resetToken();
+ }
+
+ public function getId(): ?string
+ {
+ return $this->id === null ? null : (string) $this->id;
+ }
+
+ public function getToken(): string
+ {
+ return $this->token;
+ }
+
+ public function resetToken(): void
+ {
+ $this->token = Random::string(128);
+ }
+
+ public function getLogin(): string
+ {
+ return $this->login;
+ }
+
+ public function setLogin(string $login): void
+ {
+ $this->login = $login;
+ }
+
+ public function validatePassword(string $password): bool
+ {
+ return (new PasswordHasher())->validate($password, $this->passwordHash);
+ }
+
+ public function setPassword(string $password): void
+ {
+ $this->passwordHash = (new PasswordHasher())->hash($password);
+ }
+
+ public function getCreatedAt(): DateTimeImmutable
+ {
+ return $this->created_at;
+ }
+
+ public function getUpdatedAt(): DateTimeImmutable
+ {
+ return $this->updated_at;
+ }
+}
diff --git a/blog-api/src/User/UserController.php b/blog-api/src/User/UserController.php
new file mode 100644
index 000000000..cbb63502c
--- /dev/null
+++ b/blog-api/src/User/UserController.php
@@ -0,0 +1,125 @@
+responseFactory = $responseFactory;
+ $this->userRepository = $userRepository;
+ $this->userFormatter = $userFormatter;
+ }
+
+ #[OA\Get(
+ path: '/users/',
+ description: '',
+ summary: 'Returns paginated users',
+ security: [new OA\SecurityScheme(ref: '#/components/securitySchemes/ApiKey')],
+ tags: ['user'],
+ responses: [
+ new OA\Response(
+ response: '200',
+ description: 'Success',
+ content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/Response'),
+ new OA\Schema(properties: [
+ new OA\Property(
+ property: 'data',
+ properties: [
+ new OA\Property(
+ property: 'user',
+ type: 'array',
+ items: new OA\Items(ref: '#/components/schemas/User')
+ ),
+ ],
+ type: 'object'
+ ),
+ ]),
+ ]
+ )
+ ),
+ ]
+ )]
+ public function list(): ResponseInterface
+ {
+ $dataReader = $this->userRepository->findAllOrderByLogin();
+ $result = [];
+ foreach ($dataReader->read() as $user) {
+ $result[] = $this->userFormatter->format($user);
+ }
+
+ return $this->responseFactory->createResponse(
+ [
+ 'users' => $result,
+ ]
+ );
+ }
+
+ #[OA\Get(
+ path: '/users/{id}',
+ description: '',
+ summary: 'Returns a user with a given ID',
+ security: [new OA\SecurityScheme(ref: '#/components/securitySchemes/ApiKey')],
+ tags: ['user'],
+ parameters: [
+ new OA\Parameter(parameter: 'id', name: 'id', in: 'path', example: 2),
+ ],
+ responses: [
+ new OA\Response(
+ response: '200',
+ description: 'Success',
+ content: new OA\JsonContent(
+ allOf: [
+ new OA\Schema(ref: '#/components/schemas/Response'),
+ new OA\Schema(properties: [
+ new OA\Property(
+ property: 'data',
+ properties: [
+ new OA\Property(property: 'user', ref: '#/components/schemas/User', type: 'object'),
+ ],
+ type: 'object'
+ ),
+ ]),
+ ]
+ )
+ ),
+ ]
+ )]
+ public function get(#[RouteArgument('id')] int $id): ResponseInterface
+ {
+ /**
+ * @var User $user
+ */
+ $user = $this->userRepository->findByPK($id);
+ if ($user === null) {
+ throw new NotFoundException();
+ }
+
+ return $this->responseFactory->createResponse(
+ [
+ 'user' => $this->userFormatter->format($user),
+ ]
+ );
+ }
+}
diff --git a/blog-api/src/User/UserFormatter.php b/blog-api/src/User/UserFormatter.php
new file mode 100644
index 000000000..8a04fe594
--- /dev/null
+++ b/blog-api/src/User/UserFormatter.php
@@ -0,0 +1,27 @@
+ $user->getLogin(),
+ 'created_at' => $user
+ ->getCreatedAt()
+ ->format('d.m.Y H:i:s'),
+ ];
+ }
+}
diff --git a/blog-api/src/User/UserRepository.php b/blog-api/src/User/UserRepository.php
new file mode 100644
index 000000000..08c8446ee
--- /dev/null
+++ b/blog-api/src/User/UserRepository.php
@@ -0,0 +1,65 @@
+
+ */
+ public function findAllOrderByLogin(): EntityReader
+ {
+ /** @psalm-var EntityReader */
+ return (new EntityReader($this->select()))
+ ->withSort(
+ Sort::only(['login'])->withOrderString('login')
+ );
+ }
+
+ public function findIdentity(string $id): ?IdentityInterface
+ {
+ return $this->findIdentityBy('id', $id);
+ }
+
+ public function findIdentityByToken(string $token, string $type = null): ?IdentityInterface
+ {
+ return $this->findIdentityBy('token', $token);
+ }
+
+ public function findByLogin(string $login): ?IdentityInterface
+ {
+ return $this->findIdentityBy('login', $login);
+ }
+
+ public function save(IdentityInterface $user): void
+ {
+ $this->entityWriter->write([$user]);
+ }
+
+ private function findIdentityBy(string $field, string $value): ?IdentityInterface
+ {
+ /**
+ * @var $identity IdentityInterface|null
+ */
+ return $this->findOne([$field => $value]);
+ }
+}
diff --git a/blog-api/src/User/UserRequest.php b/blog-api/src/User/UserRequest.php
new file mode 100644
index 000000000..3f3825461
--- /dev/null
+++ b/blog-api/src/User/UserRequest.php
@@ -0,0 +1,20 @@
+user;
+ }
+}
diff --git a/blog-api/src/User/UserService.php b/blog-api/src/User/UserService.php
new file mode 100644
index 000000000..b125d9e3f
--- /dev/null
+++ b/blog-api/src/User/UserService.php
@@ -0,0 +1,65 @@
+identityRepository;
+ $identity = $identityRepository->findByLogin($login);
+ if ($identity === null) {
+ throw new BadRequestException('No such user.');
+ }
+
+ if (!$identity->validatePassword($password)) {
+ throw new BadRequestException('Invalid password.');
+ }
+
+ if (!$this->currentUser->login($identity)) {
+ throw new BadRequestException();
+ }
+
+ $identity->resetToken();
+ $this->identityRepository->save($identity);
+
+ $queueMessage = new UserLoggedInMessage($identity->getId(), time());
+ $this->queueFactory->get(LoggingAuthorizationHandler::CHANNEL)->push($queueMessage);
+
+ return $identity;
+ }
+
+ public function logout(User $user): void
+ {
+ $user->resetToken();
+ $this->identityRepository->save($user);
+ }
+}
diff --git a/blog-api/src/VersionProvider.php b/blog-api/src/VersionProvider.php
new file mode 100644
index 000000000..9b9bcd666
--- /dev/null
+++ b/blog-api/src/VersionProvider.php
@@ -0,0 +1,12 @@
+sendPOST(
+ '/auth/',
+ [
+ 'login' => 'Opal1144',
+ 'password' => 'Opal1144',
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ ]
+ );
+
+ $response = Json::decode($I->grabResponse());
+ $I->seeInDatabase(
+ 'user',
+ [
+ 'id' => 1,
+ 'token' => $response['data']['token'],
+ ]
+ );
+ }
+
+ public function logout(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+
+ $I->sendPOST(
+ '/logout/'
+ );
+
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ ]
+ );
+
+ $I->dontSeeInDatabase(
+ 'user',
+ [
+ 'id' => 1,
+ 'token' => 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv',
+ ]
+ );
+ }
+
+ public function logoutWithBadToken(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'bad-token'
+ );
+
+ $I->haveHttpHeader(
+ 'Accept',
+ 'application/json'
+ );
+
+ $I->sendPOST(
+ '/logout/'
+ );
+
+ $I->seeResponseCodeIs(HttpCode::UNAUTHORIZED);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Unauthorised request',
+ 'error_code' => HttpCode::UNAUTHORIZED,
+ 'data' => null,
+ ]
+ );
+ }
+}
diff --git a/blog-api/tests/Acceptance/BlogCest.php b/blog-api/tests/Acceptance/BlogCest.php
new file mode 100644
index 000000000..044974db0
--- /dev/null
+++ b/blog-api/tests/Acceptance/BlogCest.php
@@ -0,0 +1,219 @@
+haveHttpHeader('Content-Type', 'application/json');
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+
+ $I->sendPOST(
+ '/blog/',
+ [
+ 'title' => 'test title',
+ 'text' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => null,
+ ]
+ );
+
+ $I->seeInDatabase(
+ 'post',
+ [
+ 'title' => 'test title',
+ 'content' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ }
+
+ public function createBadParams(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader('Content-Type', 'application/json');
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+
+ $I->sendPOST(
+ '/blog/',
+ [
+ 'title' => 'test title',
+ 'status' => 0,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::BAD_REQUEST);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Text not passed.',
+ 'error_code' => 400,
+ 'data' => null,
+ ]
+ );
+
+ $I->dontSeeInDatabase(
+ 'post',
+ [
+ 'title' => 'test title',
+ 'status' => 0,
+ ]
+ );
+ }
+
+ public function createBadAuth(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader('Content-Type', 'application/json');
+ $I->sendPOST(
+ '/blog/',
+ [
+ 'title' => 'test title',
+ 'text' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::UNAUTHORIZED);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Unauthorised request',
+ 'error_code' => HttpCode::UNAUTHORIZED,
+ 'data' => null,
+ ]
+ );
+ }
+
+ public function update(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader('Content-Type', 'application/json');
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+
+ $I->sendPUT(
+ '/blog/1',
+ [
+ 'title' => 'test title',
+ 'text' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => null,
+ ]
+ );
+
+ $I->seeInDatabase(
+ 'post',
+ [
+ 'id' => 1,
+ 'title' => 'test title',
+ 'content' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ }
+
+ public function updateBadAuth(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader('Content-Type', 'application/json');
+ $I->sendPUT(
+ '/blog/1',
+ [
+ 'title' => 'test title',
+ 'text' => 'test text',
+ 'status' => 0,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::UNAUTHORIZED);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Unauthorised request',
+ 'error_code' => HttpCode::UNAUTHORIZED,
+ 'data' => null,
+ ]
+ );
+ }
+
+ public function index(AcceptanceTester $I): void
+ {
+ $I->sendGET(
+ '/blog/',
+ [
+ 'page' => 2,
+ ]
+ );
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => [
+ 'paginator' => [
+ 'pageSize' => 10,
+ 'currentPage' => 2,
+ 'totalPages' => 2,
+ ],
+ 'posts' => [
+ [
+ 'id' => 11,
+ 'title' => 'Eveniet est nam sapiente odit architecto et.',
+ ],
+ ],
+ ],
+ ]
+ );
+ }
+
+ public function view(AcceptanceTester $I): void
+ {
+ $I->sendGET('/blog/11');
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => [
+ 'post' => [
+ 'id' => 11,
+ 'title' => 'Eveniet est nam sapiente odit architecto et.',
+ ],
+ ],
+ ]
+ );
+ }
+}
diff --git a/blog-api/tests/Acceptance/SiteCest.php b/blog-api/tests/Acceptance/SiteCest.php
new file mode 100644
index 000000000..0c704116d
--- /dev/null
+++ b/blog-api/tests/Acceptance/SiteCest.php
@@ -0,0 +1,59 @@
+sendGET('/');
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => [
+ 'version' => '3.0',
+ 'author' => 'yiisoft',
+ ],
+ ]
+ );
+ }
+
+ public function testNotFoundPage(AcceptanceTester $I): void
+ {
+ $I->sendGET('/not_found_page');
+ $I->seeResponseCodeIs(HttpCode::NOT_FOUND);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Page not found',
+ 'error_code' => 404,
+ 'data' => null,
+ ]
+ );
+ }
+
+ public function testNotFoundPageRu(AcceptanceTester $I): void
+ {
+ $I->sendGET('/ru/not_found_page');
+ $I->seeResponseCodeIs(HttpCode::NOT_FOUND);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Страница не найдена',
+ 'error_code' => 404,
+ 'data' => null,
+ ]
+ );
+ }
+}
diff --git a/blog-api/tests/Acceptance/UserCest.php b/blog-api/tests/Acceptance/UserCest.php
new file mode 100644
index 000000000..182731d2e
--- /dev/null
+++ b/blog-api/tests/Acceptance/UserCest.php
@@ -0,0 +1,99 @@
+haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+ $I->sendGET('/users/');
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => [
+ 'users' => [
+ [
+ 'login' => 'Athena7928',
+ 'created_at' => '26.07.2020 20:18:11',
+ ],
+ ],
+ ],
+ ]
+ );
+ }
+
+ public function view(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+ $I->sendGET('/users/1');
+ $I->seeResponseCodeIs(HttpCode::OK);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => [
+ 'user' => [
+ 'login' => 'Opal1144',
+ 'created_at' => '26.07.2020 20:18:11',
+ ],
+ ],
+ ]
+ );
+ }
+
+ public function viewBadId(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+ $I->sendGET('/users/1000');
+ $I->seeResponseCodeIs(HttpCode::NOT_FOUND);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Entity not found',
+ 'error_code' => HttpCode::NOT_FOUND,
+ 'data' => null,
+ ]
+ );
+ }
+
+ public function notAllowedMethod(AcceptanceTester $I): void
+ {
+ $I->haveHttpHeader(
+ 'X-Api-Key',
+ 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv'
+ );
+ $I->sendPut('/users/1');
+ $I->seeResponseCodeIs(HttpCode::METHOD_NOT_ALLOWED);
+ $I->seeResponseIsJson();
+ $I->seeResponseContainsJson(
+ [
+ 'status' => 'failed',
+ 'error_message' => 'Method is not implemented yet',
+ 'error_code' => HttpCode::METHOD_NOT_ALLOWED,
+ 'data' => null,
+ ]
+ );
+ }
+}
diff --git a/blog-api/tests/Cli.suite.yml b/blog-api/tests/Cli.suite.yml
new file mode 100644
index 000000000..999946299
--- /dev/null
+++ b/blog-api/tests/Cli.suite.yml
@@ -0,0 +1,6 @@
+actor: CliTester
+modules:
+ enabled:
+ - Cli
+ - \App\Tests\Support\Helper\Cli
+ step_decorators: ~
diff --git a/blog-api/tests/Cli/ConsoleCest.php b/blog-api/tests/Cli/ConsoleCest.php
new file mode 100644
index 000000000..f6d7a11ec
--- /dev/null
+++ b/blog-api/tests/Cli/ConsoleCest.php
@@ -0,0 +1,17 @@
+runShellCommand($command);
+ $I->seeInShellOutput('Yii Console');
+ }
+}
diff --git a/tests/Functional.suite.yml b/blog-api/tests/Functional.suite.yml
similarity index 65%
rename from tests/Functional.suite.yml
rename to blog-api/tests/Functional.suite.yml
index 7b228bb50..125f6c5bb 100644
--- a/tests/Functional.suite.yml
+++ b/blog-api/tests/Functional.suite.yml
@@ -2,11 +2,11 @@ actor: FunctionalTester
extensions:
enabled:
- Codeception\Extension\RunProcess:
- 0: php -d variables_order=EGPCS -S 127.0.0.1:8080 -t public
+ 0: php -d variables_order=EGPCS -S 127.0.0.1:8881 -t public
sleep: 1
modules:
enabled:
- PhpBrowser:
- url: http://127.0.0.1:8080
+ url: http://127.0.0.1:8881%BASE_URL%
- \App\Tests\Support\Helper\Functional
step_decorators: ~
diff --git a/blog-api/tests/Functional/IndexControllerTest.php b/blog-api/tests/Functional/IndexControllerTest.php
new file mode 100644
index 000000000..781f79ecd
--- /dev/null
+++ b/blog-api/tests/Functional/IndexControllerTest.php
@@ -0,0 +1,60 @@
+tester = new FunctionalTester();
+ }
+
+ public function testGetIndex(): void
+ {
+ $method = 'GET';
+ $url = '/';
+
+ $this->tester->bootstrapApplication(dirname(__DIR__, 2));
+ $response = $this->tester->doRequest($method, $url);
+
+ $this->assertEquals(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => ['version' => '3.0', 'author' => 'yiisoft'],
+ ],
+ $response->getContentAsJson()
+ );
+ }
+
+ public function testGetIndexMockVersion(): void
+ {
+ $method = 'GET';
+ $url = '/';
+
+ $this->tester->bootstrapApplication(dirname(__DIR__, 2));
+
+ $this->tester->mockService(VersionProvider::class, new VersionProvider('3.0.0'));
+
+ $response = $this->tester->doRequest($method, $url);
+
+ $this->assertEquals(
+ [
+ 'status' => 'success',
+ 'error_message' => '',
+ 'error_code' => null,
+ 'data' => ['version' => '3.0.0', 'author' => 'yiisoft'],
+ ],
+ $response->getContentAsJson()
+ );
+ }
+}
diff --git a/tests/Support/AcceptanceTester.php b/blog-api/tests/Support/AcceptanceTester.php
similarity index 90%
rename from tests/Support/AcceptanceTester.php
rename to blog-api/tests/Support/AcceptanceTester.php
index 012aa7e87..664821bd1 100644
--- a/tests/Support/AcceptanceTester.php
+++ b/blog-api/tests/Support/AcceptanceTester.php
@@ -7,7 +7,7 @@
use Codeception\Actor;
/**
- * Inherited Methods
+ * Inherited Methods.
*
* @method void wantToTest($text)
* @method void wantTo($text)
@@ -21,12 +21,12 @@
* @method void pause()
*
* @SuppressWarnings(PHPMD)
-*/
+ */
class AcceptanceTester extends Actor
{
use _generated\AcceptanceTesterActions;
/**
- * Define custom actions here
+ * Define custom actions here.
*/
}
diff --git a/tests/Support/CliTester.php b/blog-api/tests/Support/CliTester.php
similarity index 90%
rename from tests/Support/CliTester.php
rename to blog-api/tests/Support/CliTester.php
index ad635d690..4b08ad4fd 100644
--- a/tests/Support/CliTester.php
+++ b/blog-api/tests/Support/CliTester.php
@@ -7,7 +7,7 @@
use Codeception\Actor;
/**
- * Inherited Methods
+ * Inherited Methods.
*
* @method void wantToTest($text)
* @method void wantTo($text)
@@ -21,12 +21,12 @@
* @method void pause()
*
* @SuppressWarnings(PHPMD)
-*/
+ */
class CliTester extends Actor
{
use _generated\CliTesterActions;
/**
- * Define custom actions here
+ * Define custom actions here.
*/
}
diff --git a/blog-api/tests/Support/Data/database.db b/blog-api/tests/Support/Data/database.db
new file mode 100644
index 000000000..6b81fc201
Binary files /dev/null and b/blog-api/tests/Support/Data/database.db differ
diff --git a/blog-api/tests/Support/Data/dump.sql b/blog-api/tests/Support/Data/dump.sql
new file mode 100644
index 000000000..275aa60b1
--- /dev/null
+++ b/blog-api/tests/Support/Data/dump.sql
@@ -0,0 +1,58 @@
+create table user
+(
+ id integer not null
+ primary key,
+ token text(128) not null,
+ login text(48) not null,
+ password_hash text(255) not null,
+ created_at datetime not null,
+ updated_at datetime not null
+);
+
+create unique index user_index_login_5f1de4d7ae5e4
+ on user (login);
+
+create unique index user_index_token_5f1de4d7ae5f9
+ on user (token);
+
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (1, 'lev1ZsWCzqrMlXRI2sT8h4ApYpSgBMl1xf6D4bCRtiKtDqw6JN36yLznargilQ_rEJz9zTfcUxm53PLODCToF9gGin38Rd4NkhQPOVeH5VvZvBaQlUg64E6icNCubiAv', 'Opal1144', '$2y$13$IkvO58xZv3lJkGUpwTGPg.6NQj1mrSMOUIi3G4sBX6AoShRXTISES', '2020-07-26 20:18:11', '2020-08-03 19:10:48');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (2, 'yU0asLbo5th60rRL4L0EGVRl0FSPHL7gCIZUs1IQi5YfdOwwbsuz1ZIA0cK2au22Gkk--XpSCsLxqE2JD_E-VxMzyuaW8pLBSxjyP0bmboWyuyNuUj1kGyGqM0v0C0fE', 'Haven7127', '$2y$13$/aVlgRSYPWUjHOlSs1PSuOkmOVB7HdQLc6UmqJLvSMbNUSy36zwqi', '2020-07-26 20:18:16', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (3, 'AzGRKjE4OvZhNUYxpnGqUnqxBejXn87MsPw2RInEGkMXSM4px_-pfCSntPQpCQSxAREh-uJcHYovMGsqP0kjM6aTeQHzEABxc_FOVt50kClftikYretlhJ0uOJBrQghS', 'Athena7928', '$2y$13$kXheeNXBm5fj2I/0hNrv2euOkSkPhXZeQwna7/eTLnktdUonPwtKK', '2020-07-26 20:18:11', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (4, 'P0ZcZ117Jh2W0xaAeq1YMoR5itemK04vZWTsqliKDbxIm-Hxtptt_cvwng5Oiy8oeMvRwB7eUSIszMTfcU6UtOZZ7WcuEqICpKdaXiY3uEOUibLO48oLZ5XXV9HREQxE', 'Shayne6889', '$2y$13$ri9geQr79ytcRcZ9jO7F6OSN.1MeNJb6hfsM2Iysoltjluds5YmMW', '2020-07-26 20:18:14', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (5, 'gUEH-ztBM4-0boeX10NS_QHsQWHP4O1_Qr7CeoUU78gadFpYE8GqhudgaUklmihARs46GnYPKCWAPqgEqdXjUx9TVcwP0J0KiQEFC2oJrtsGRLziPSZg3HryA2eC1MRi', 'Wilburn1086', '$2y$13$NcMhRseiDyDMm3yhF8/45OkavtVxtIix8tMJzYI5xHx3dYjRvzS3S', '2020-07-26 20:18:13', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (6, '9OA09AZt8sYA7Ehi_ttnLbLwsMGLPghtQu260JrRwrBJaMTabuBQdIEHbJNW0BcAHF2yDm5QoEQEY5MCVudkre4yDWB6EddYSei9mqn_3uwQbfhY2jz1S0cENapTLIrF', 'Rossie5155', '$2y$13$9oWNAP9IXBIW3KY9M.KxyecgFMEdot/k8jGNdIkptR9Bf0Oo42oxG', '2020-07-26 20:18:12', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (7, '5SQSC0l70-3eerJKNlNOz7BTAl3PuylMy5KldV2jRR4Cq2dmT5dM33tyyb5u2IwW_GKVWL9dL5eXgGk9U14KH9lxQSz8_wwStwoTz7KrDeOj3Oae-k87Nakj5QhSuAEU', 'Niko6385', '$2y$13$bnDvR9OiqmAulLYBYNMjuO4IUOl1TwqfQy1jnMwN1ESB8J.i/Si.S', '2020-07-26 20:18:15', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (8, 'FMJIgz8TvmroJ28uAat0jyeiYADlWfpNpoR9kRBFGmVsUHAw_u1kJ0-O8EHB5UfJaqLNhrskCAf26kZCXuB747DaPpBDHRd5mLZ5b7Tq5TxaK659Glfu-gZzC0Pw_u2d', 'Cordie5190', '$2y$13$ah.45kfteHCwwLQZAd9AWeuu5pOvhfJFU8x8TKA7rq/Y.ty8cEAlO', '2020-07-26 20:18:13', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (9, '_PGRAIc8eKL2IQhmsMImrh49w43Y2byQsj0nUHul3Q4HFectkmd8nhh4ORTcvvYxNfx0Vbx4jtG6-Oph8lxRnw0f7K-qOTqgLMRdv5TqlVyZO74dNz4NynTd9pYTiQDi', 'Leola1793', '$2y$13$fatVjj.ySzcur1F6Ks2/vOlGsQYh8dkIg6gQS8WjkBGRHwgZg69ra', '2020-07-26 20:18:14', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (10, 'm6hicvzj0r5vXmpGo5Ck97-Os38g16Qi8JQDBjJTbEehrcioZOQf9GL7410CvMy1mEhIbOMFlzdWERxpJ-XMvTXB9oF3fPrjA3UB7v5aNfgP9sGeWizfb05uaA8eaeQm', 'Rachael2982', '$2y$13$zgnmnzkFT7xkgYQj4JZiFerX6NyNMlwbBLWKnbxV/bXatO5yx7XM.', '2020-07-26 20:18:12', '2020-07-26 20:18:17');
+INSERT INTO user (id, token, login, password_hash, created_at, updated_at) VALUES (11, 'ooTRTrvO925xdpKBR8adhysr-KSKRsZK4JG_hLfghxXKQ2z5TLdmjJK8rc8Qn4Iayotg6GJF1BoA0AHeL9YuTl-qnlkmlC6F3NEgomipGQYw7odI-D9p_VAFSj1j2dIS', 'Lizzie7529', '$2y$13$tzg5/FlklhOk.e9opCisfe5aOuKREVtnyy.6IeUL.hva1CjAsl3NW', '2020-07-26 20:18:15', '2020-07-26 20:18:17');
+
+create table post
+(
+ id integer not null
+ primary key,
+ slug text(128) not null,
+ title text(255) default '' not null,
+ status integer default 0 not null,
+ content text not null,
+ created_at datetime not null,
+ updated_at datetime not null,
+ user_id integer not null
+ references user
+ on update cascade on delete cascade
+);
+
+create index post_index_user_id_5f1de4d7a5678
+ on post (user_id);
+
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (1, 'xkHilRENIavP1Ht6WS7UHKGBv__NDYlrmpvx0GieP91AnQnnRMUKK9OG8so0x38mColZj64UBF6UFrMTvYCgWUIQx0I74Vgcoy63PNCqwVz5hYYi0DYqn3xAuXIKgnbT', 'Quia non natus aut qui saepe ut non.', 0, 'Mock Turtle in the distance, screaming with passion. She had quite forgotten the little door: but, alas! either the locks were too large, or the key was too small, but at any rate, the Dormouse into the air off all its feet at once, while all the rats and--oh dear!'' cried Alice, with a lobster as a cushion, resting their elbows on it, (''which certainly was not a VERY unpleasant state of mind, she turned the corner, but the Gryphon replied very gravely. ''What else have you executed.'' The miserable Hatter dropped his teacup instead of onions.'' Seven flung down his brush, and had to fall a long sleep you''ve had!'' ''Oh, I''ve had such a thing before, and he went on to himself as he spoke. ''A cat may look at it!'' This speech caused a remarkable sensation among the branches, and every now and then; such as, ''Sure, I don''t take this child away with me,'' thought Alice, ''it''ll never do to come yet, please your Majesty!'' the soldiers had to stoop to save her neck from being broken. She hastily put down yet, before the trial''s over!'' thought Alice. ''I''m glad they''ve begun asking riddles.--I believe I can say.'' This was quite a long tail, certainly,'' said Alice, timidly; ''some of the Mock Turtle. ''Certainly not!'' said Alice to herself, ''after such a nice soft thing to get in?'' ''There might be hungry, in which you usually see Shakespeare, in the world she was saying, and the constant heavy sobbing of the door began sneezing all at once. ''Give your evidence,'' the King in a piteous tone. And the moral of that is--"Be what you mean,'' said Alice. ''Anything you like,'' said the Hatter: ''as the things between whiles.'' ''Then you should say what you had been jumping about like that!'' But she waited patiently. ''Once,'' said the Cat. ''I''d nearly forgotten that I''ve got to see how he did not like to drop the jar for fear of killing somebody, so managed to swallow a morsel of the Gryphon, sighing in his sleep, ''that "I breathe when I get it home?'' when it had gone. ''Well! I''ve often seen a good deal frightened at the cook, to see that queer little toss of her voice. Nobody moved. ''Who cares for fish, Game, or any other dish? Who would not join the dance? Will you, won''t you join the dance? Will you, won''t you join the dance?"'' ''Thank you, sir, for your walk!" "Coming in a few yards off. The Cat only grinned a little snappishly. ''You''re enough to try the experiment?'' ''HE might bite,'' Alice cautiously replied: ''but I haven''t been invited yet.'' ''You''ll see me there,'' said the Gryphon. ''I''ve forgotten the Duchess said in a sulky tone, as it could go, and broke to pieces against one of them at dinn--'' she checked herself hastily. ''I don''t quite understand you,'' she said, by way of settling all difficulties, great or small. ''Off with her head!'' the Queen till she had put on one knee as he wore his crown.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 2);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (2, 'Soc7hNmD1luvRqJb1xcqgEAwLDOzSeO7qN0hdQ0tMOBZUjAwEkH492JWzS8beEfCndtiluat2VUhKOeT6aMO6v3u6BzNjWLvmXXZxLCt44uXfz-mZ2sm2Pg-1A0uGvgO', 'Dolor commodi cumque illum et.', 1, 'I''m a hatter.'' Here the Queen in front of them, with her arms round it as you go on? It''s by far the most interesting, and perhaps as this before, never! And I declare it''s too bad, that it is!'' As she said to Alice; and Alice was very uncomfortable, and, as there was not quite like the three were all ornamented with hearts. Next came the royal children, and make out which were the verses on his knee, and the words ''DRINK ME'' beautifully printed on it were white, but there was silence for some while in silence. At last the Gryphon repeated impatiently: ''it begins "I passed by his face only, she would get up and repeat something now. Tell her to begin.'' For, you see, because some of them attempted to explain the paper. ''If there''s no use denying it. I suppose Dinah''ll be sending me on messages next!'' And she began shrinking directly. As soon as she could, ''If you can''t take LESS,'' said the Mouse. ''--I proceed. "Edwin and Morcar, the earls of Mercia and Northumbria, declared for him: and even Stigand, the patriotic archbishop of Canterbury, found it made.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 3);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (3, 'SS1LB4tH5utAgI8da3jvBx7JLEL6EhbC8JYDvNiWfKNsAds4AYZmGXIqmHRjcwXNbQOIFwk0YaoGTWoAYWKcHW6biJ8wRedGtj6ySO3mO1kFoUt1VNhSrsA_FgMx8B8R', 'Non nobis repudiandae eius non. Est veniam rerum officiis.', 0, 'Dormouse go on crying in this affair, He trusts to you to offer it,'' said the Mock Turtle went on. ''We had the best cat in the night? Let me see: four times seven is--oh dear! I shall be a letter, after all: it''s a very decided tone: ''tell her something worth hearing. For some minutes the whole party look so grave and anxious.) Alice could bear: she got to go among mad people,'' Alice remarked. ''Oh, you can''t think! And oh, my poor hands, how is it twelve? I--'' ''Oh, don''t bother ME,'' said Alice aloud, addressing nobody in particular. ''She''d soon fetch it back!'' ''And who are THESE?'' said the Rabbit actually TOOK A WATCH OUT OF ITS WAISTCOAT-POCKET, and looked very uncomfortable. The moment Alice appeared, she was now about a foot high: then she heard a little girl,'' said Alice, and she felt that she ran out of sight: ''but it doesn''t mind.'' The table was a little pattering of footsteps in the distance, screaming with passion. She had not long to doubt, for the first verse,'' said the Mouse, getting up and straightening itself out again, and the other players, and shouting ''Off with her head! Off--'' ''Nonsense!'' said Alice, as she was not a mile high,'' said Alice. ''Call it what you mean,'' the March Hare interrupted in a hurry: a large piece out of sight before the trial''s begun.'' ''They''re putting down their names,'' the Gryphon hastily. ''Go on with the bread-and-butter getting so used to it!'' pleaded poor Alice. ''But you''re so easily offended!'' ''You''ll get used to do:-- ''How doth the little--"'' and she could remember them, all these strange Adventures of hers would, in the other. ''I beg pardon, your Majesty,'' the Hatter began, in a whisper.) ''That would be four thousand miles down, I think--'' (she was obliged to say than his first remark, ''It was the Hatter. ''It isn''t mine,'' said the youth, ''and your jaws are too weak For anything tougher than suet; Yet you turned a back-somersault in at once.'' However, she got back to finish his story. CHAPTER IV. The Rabbit Sends in a tone of great surprise. ''Of course you know what they''re about!'' ''Read them,'' said the Hatter. ''You MUST remember,'' remarked the King, with an anxious look at the door-- Pray, what is the same size for going through the glass, and she grew no larger: still it had some kind of sob, ''I''ve tried the little glass box that was linked into hers began to repeat it, but her head pressing against the roof off.'' After a time there were three gardeners instantly jumped up, and began whistling. ''Oh, there''s no use in crying like that!'' But she went on. ''Or would you like the Mock Turtle. ''She can''t explain MYSELF, I''m afraid, but you might catch a bad cold if she did so, very carefully, with one of the trees behind him. ''--or next day, maybe,'' the Footman continued in the sea. But they HAVE their tails in their proper places--ALL,'' he repeated with great curiosity, and this Alice thought to herself. (Alice had been to the executioner: ''fetch her here.'' And the moral of that dark hall, and wander about among those beds of bright flowers and the other two were using.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 5);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (4, 'MiJcIMhnKGsT8_JK9IQmmp_Z7iFnGWaiVl2dr2I3Zj8JOKh9AgVKpZoyLq3_B9vf1DvtG0lhLNSsF03t_MePM6YlbS1dlyZZTYWBjzfmY4FqT0Dh7O5HrPCokooVVVQe', 'Non dolor eos facere et.', 0, 'WAS a curious dream, dear, certainly: but now run in to your little boy, And beat him when he pleases!'' CHORUS. ''Wow! wow! wow!'' ''Here! you may stand down,'' continued the Gryphon. ''I mean, what makes them sour--and camomile that makes people hot-tempered,'' she went on to himself in an undertone to the door, and tried to fancy to herself ''Now I can go back by railway,'' she said to the shore. CHAPTER III. A Caucus-Race and a large mustard-mine near here. And the muscular strength, which it gave to my jaw, Has lasted the rest of the Lobster Quadrille?'' the Gryphon in an offended tone. And she began fancying the sort of lullaby to it as you liked.'' ''Is that all?'' said the Caterpillar decidedly, and he called the Queen, tossing her head on her face in her life before, and she hurried out of sight: then it chuckled. ''What fun!'' said the Gryphon. ''Well, I can''t put it in a low, timid voice, ''If you didn''t sign it,'' said Alice thoughtfully: ''but then--I shouldn''t be hungry for it, while the Mock Turtle said with a bound into the earth. At last the Mouse, who was reading the list of singers. ''You may not have lived much under the circumstances. There was a long silence after this, and after a few minutes that she wasn''t a bit of mushroom, and crawled away in the.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 6);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (5, 'YcVobhI00iiZnD8YB1_4FdYssSogZGk3Kxo8_haJnuqFwiuKit1NE4p_P4COqwP4Bj2KEA2RAvJzrtvDZUYxUJ6o40TFuiIpRHzEtKUCpnCpqoUXurDOkblCIq6GyLiv', 'Vero dolorem numquam dolorum non eaque laboriosam ducimus.', 0, 'Duchess, the Duchess! Oh! won''t she be savage if I''ve been changed for any of them. However, on the hearth and grinning from ear to ear. ''Please would you tell me,'' said Alice, and she grew no larger: still it was a dispute going on between the executioner, the King, ''or I''ll have you executed on the trumpet, and then the other, saying, in a low curtain she had never been so much contradicted in her face, and large eyes full of the what?'' said the Hatter, ''you wouldn''t talk about trouble!'' said the Mock Turtle sighed deeply, and began, in a voice she had hoped) a fan and gloves. ''How queer it seems,'' Alice said with some difficulty, as it was very hot, she kept on puzzling about it while the Mouse heard this, it turned a corner, ''Oh my ears and the words a little, ''From the Queen. ''Well, I should think it so VERY nearly at the thought that she ran across the garden, called out in a languid, sleepy voice. ''Who are YOU?'' Which brought them back again to the jury, who instantly made a dreadfully ugly child: but it said nothing. ''When we were little,'' the Mock Turtle sighed deeply, and began, in a twinkling! Half-past one, time for dinner!'' (''I only wish people knew that: then they both bowed low, and their slates and pencils had been looking at them with one eye; ''I seem to see it quite plainly through the little golden key, and Alice''s elbow was pressed so closely against her foot, that there was no time she''d have everybody executed, all round. (It was this last remark, ''it''s a vegetable. It doesn''t look like it?'' he said, turning to Alice, very much what would happen next. The first thing I''ve got to come once a week: HE taught us Drawling, Stretching, and Fainting in Coils.'' ''What was THAT like?'' said Alice. ''Come, let''s hear some of the tail, and ending with the end of the trees upon her arm, with its tongue hanging out of the cupboards as she spoke--fancy CURTSEYING as you''re falling through the little golden key, and Alice''s first thought was that it seemed quite natural); but when the White Rabbit, who was sitting on the other side. The further off from England the nearer is to France-- Then turn not pale, beloved snail, but come and join the dance?"'' ''Thank you, sir, for your walk!" "Coming in a loud, indignant voice, but she did not sneeze, were the two creatures, who had been all the rest, Between yourself and me.'' ''That''s the reason is--'' here the conversation a little. ''''Tis so,'' said the Footman, and began staring at the Queen, who was reading the list of singers. ''You may not have lived much under the sea--'' (''I haven''t,'' said Alice)--''and perhaps you haven''t found it so VERY remarkable in that; nor did Alice think it so VERY tired of sitting by her sister sat still just as if she had accidentally upset the week before. ''Oh, I know!'' exclaimed Alice, who had been looking over their shoulders, that all the things being alive; for instance, there''s the arch I''ve got back to the porpoise, "Keep back, please: we don''t want YOU with us!"'' ''They were learning to draw, you know--'' She had quite a conversation of it now in sight, hurrying down it. There could be beheaded, and that makes them sour--and camomile that makes people hot-tempered,'' she went out, but it had VERY long claws and a pair of boots every Christmas.'' And she squeezed.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 8);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (6, 'LnYwm21c4P2qx_TjctMKDoUJVZdTaCEAC6ZUAJQNeJta_T_Q7rPtcT3mdGXBxOEPNl94ZoURHoQb4tmqXH3nA8xo_s9WgnEH4gzD25A_E0DLsoTExXtTj7IiLELtTd58', 'Recusandae autem quam maiores delectus esse eum eaque et.', 0, 'I''m sure I can''t quite follow it as a cushion, resting their elbows on it, and very soon had to sing this:-- ''Beautiful Soup, so rich and green, Waiting in a confused way, ''Prizes! Prizes!'' Alice had not gone (We know it was sneezing and howling alternately without a cat! It''s the most curious thing I ask! It''s always six o''clock now.'' A bright idea came into her eyes; and once again the tiny hands were clasped upon her knee, and looking at Alice the moment she quite forgot how to set about it; and while she was now more than Alice could hardly hear the rattle of the bread-and-butter. Just at this moment Alice appeared, she was considering in her French lesson-book. The Mouse only growled in reply. ''That''s right!'' shouted the Queen. ''You make me smaller, I suppose.'' So she set to work very carefully, nibbling first at one end to the fifth bend, I think?'' he said to Alice, and sighing. ''It IS a Caucus-race?'' said Alice; not that she looked down at her hands, wondering if anything would EVER happen in a trembling voice to its feet, ran round the refreshments!'' But there seemed to quiver all over with William the Conqueror.'' (For, with all their simple joys, remembering her own mind (as well as she wandered about in all my life, never!'' They had not long to doubt, for the Dormouse,'' thought Alice; ''but when you throw them, and he called the Queen, who had spoken first. ''That''s none of YOUR adventures.'' ''I could tell you my adventures--beginning from this side of WHAT?'' thought Alice; ''but when you throw them, and all sorts of things--I can''t remember things as I was thinking I should think you can find them.'' As she said this she looked down into its mouth open, gazing up into the jury-box, or they would call after her: the last few minutes she heard the Rabbit came up to her lips. ''I know what to uglify is, you know. Come on!'' So they went up to her ear, and whispered ''She''s under sentence of execution.'' ''What for?'' said Alice. ''Come, let''s hear some of them with the lobsters to the other, and making faces at him as he spoke. ''A cat may look at all like the wind, and the shrill voice of the cattle in the air. Even the Duchess was VERY ugly; and secondly, because they''re making such VERY short remarks, and she felt that she was a very long silence, broken only by an occasional exclamation of ''Hjckrrh!'' from the sky! Ugh, Serpent!'' ''But I''m NOT a serpent!'' said Alice very meekly: ''I''m growing.'' ''You''ve no right to grow up again! Let me see: I''ll give them a new idea to Alice, they all crowded round her, about the reason and all must have got in as well,'' the Hatter went on, looking anxiously round to see it.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 4);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (7, '5jfQZ3gqLvu0Q-sJqXTGcHW5niY7nQnOesRE73xJMRmgZSCEWJXQSFayuMwBBC3v9QZ4cUqqZETJWgBQiS91isAg1MMIeRTgz06LE_ek9AJ3F2VHg_oQDrWAeZFZAtSD', 'Praesentium eos molestiae saepe ad dolore omnis sunt.', 1, 'I''m not Ada,'' she said, ''and see whether it''s marked "poison" or not''; for she felt that it felt quite unhappy at the sudden change, but she thought it over afterwards, it occurred to her feet, for it to annoy, Because he knows it teases.'' CHORUS. (In which the words ''DRINK ME,'' but nevertheless she uncorked it and put it right; ''not that it signifies much,'' she said to Alice, very earnestly. ''I''ve had nothing yet,'' Alice replied in a sulky tone; ''Seven jogged my elbow.'' On which Seven looked up eagerly, half hoping that they couldn''t get them out of that is, but I shall only look up and say "How doth the little passage: and THEN--she found herself falling down a very curious to know your history, she do.'' ''I''ll tell it her,'' said the Cat, ''if you don''t like it, yer honour, at all, as the question was evidently meant for her. ''Yes!'' shouted Alice. ''Come on, then!'' roared the Queen, and in a deep, hollow tone: ''sit down, both of you, and listen to me! When I used to it in her brother''s Latin Grammar, ''A mouse--of a mouse--to a mouse--a mouse--O mouse!'') The Mouse only shook its head impatiently, and said, very gravely, ''I think.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 1);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (8, 'yEU6e4GR7j_qK71471NK-BF2VwqjKT_9y4ZHiKWmhUSazLykv_r_cCTvlPn3FJfrsXOOW91vwLpuLuFnq-PbpXYkZiLh7TjJecEVq643kDqGlgQMcGhNpEGerQws1q7O', 'Aut qui fugiat consequuntur.', 1, 'Alice, rather doubtfully, as she swam nearer to watch them, and just as well wait, as she ran; but the Mouse in the sea. The master was an immense length of neck, which seemed to have no idea what to do, and perhaps after all it might injure the brain; But, now that I''m doubtful about the reason of that?'' ''In my youth,'' said his father, ''I took to the Mock Turtle, ''Drive on, old fellow! Don''t be all day to day.'' This was not a bit hurt, and she crossed her hands up to her that she was shrinking rapidly; so she went to the shore, and then keep tight hold of its mouth, and addressed her in the distance would take the hint; but the Mouse replied rather impatiently: ''any shrimp could have been ill.'' ''So they were,'' said the King replied. Here the other ladder?--Why, I hadn''t drunk quite so much!'' Alas! it was impossible to say to itself, ''Oh dear! Oh dear! I wish you could manage it?) ''And what an ignorant little girl she''ll think me for a long breath, and said nothing. ''When we were little,'' the Mock Turtle would be so kind,'' Alice replied, so eagerly that the Mouse with an air of great surprise. ''Of course not,'' Alice cautiously replied, not feeling at all fairly,'' Alice began, in a trembling voice, ''Let us get to twenty at that rate! However, the Multiplication Table doesn''t signify: let''s try the first question, you know.'' He was looking.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 3);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (9, 'CAUKDjr3OndxkpMi16SehwAb6inVNrm0SF6VGF1iCzPpCKlm-5ZhPHBSL8mIQP9zVYs6UcmWWglHg0bXjT4otl1q0jXxK9oJomGJ7YZmwVGuqk3RCJFIPwhUC6LC3uo-', 'Rerum enim itaque enim fugiat inventore.', 1, 'The Mouse looked at it uneasily, shaking it every now and then; such as, ''Sure, I don''t keep the same height as herself; and when she had nothing yet,'' Alice replied eagerly, for she was saying, and the little golden key and hurried off to the other: the Duchess to play croquet.'' The Frog-Footman repeated, in the lap of her ever getting out of sight before the officer could get to the jury, in a low voice, ''Your Majesty must cross-examine the next witness.'' And he added looking angrily at the Queen, turning purple. ''I won''t!'' said Alice. ''Come on, then,'' said Alice, feeling very glad to do that,'' said Alice. ''I''ve read that in some alarm. This time there were no arches left, and all sorts of little Alice and all must have been that,'' said Alice. ''Well, then,'' the Gryphon replied very solemnly. Alice was too slippery; and when she went back to the Knave was standing before them, in chains, with a knife, it usually bleeds; and she jumped up and beg for its dinner, and all the things I used to it in a melancholy air, and, after glaring at her side. She was moving them about as she added, to herself, as usual. ''Come, there''s no use going back to finish his story. CHAPTER IV. The Rabbit Sends in a hurry. ''No, I''ll look first,'' she said, by way of settling all difficulties, great or small. ''Off with their heads!'' and the other side, the puppy made another rush at the Gryphon went on, ''I must be Mabel after all, and I never understood what it might not escape again, and made a snatch in the middle, wondering how she would have called him a fish)--and rapped loudly at the thought that it was YOUR table,'' said Alice; ''it''s laid for a minute or two sobs choked his voice. ''Same as if she was quite surprised to find her way through the little glass table. ''Now, I''ll manage better this time,'' she said, as politely as she fell very slowly, for she was coming to, but it just grazed his nose, you know?'' ''It''s the thing yourself, some winter day, I will prosecute YOU.--Come, I''ll take no denial; We must have been ill.'' ''So they were,'' said the March Hare went on. Her listeners were perfectly quiet till she got to do,'' said the Cat: ''we''re all mad here. I''m mad. You''re mad.'' ''How do you want to stay in here any longer!'' She waited for some minutes. The Caterpillar and Alice looked all round her at the righthand bit again, and did not venture to ask them what the flame of a book,'' thought Alice to herself, ''to be going messages for a minute, trying to explain it is to give the hedgehog to, and, as the other.'' As soon as there seemed to be sure! However, everything is to-day! And yesterday things went on at last, more calmly, though still sobbing a little timidly, for she felt a little house in it about four inches deep and reaching half down the chimney, has he?'' said Alice to herself. (Alice had been to her, ''if we had the dish as its share of the earth. Let me see: four times five is twelve, and four times six is.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 7);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (10, '4AdnoiqLp20kNTlT50ZDY4rpjT6fLiEaTfRwQBg0O2SIgplhZwZGJrTdwzXJ7hUt1bhm4j4U4UsFkJRDSNskKthEi-B6zJzSGJ6YCCwsufLlh_ETNsayfcnT-oMT9g8G', 'Aut vel aut molestias ut eos.', 0, 'Majesty,'' said Two, in a melancholy air, and, after folding his arms and frowning at the March Hare. ''Exactly so,'' said Alice. ''I''m glad I''ve seen that done,'' thought Alice. ''I''ve tried every way, and then quietly marched off after the others. ''We must burn the house if it makes me grow large again, for really I''m quite tired of sitting by her sister kissed her, and said, very gravely, ''I think, you ought to be no use in waiting by the Queen merely remarking that a red-hot poker will burn you if you were never even spoke to Time!'' ''Perhaps not,'' Alice cautiously replied, not feeling at all fairly,'' Alice began, in a moment. ''Let''s go on in the sky. Twinkle, twinkle--"'' Here the Queen said severely ''Who is it twelve? I--'' ''Oh, don''t talk about trouble!'' said the Mouse. ''Of course,'' the Gryphon went on. Her listeners were perfectly quiet till she shook the house, and wondering whether she could not think of anything to put it in a long, low hall, which was immediately suppressed by the end of the jurors had a consultation about this, and Alice joined the procession, wondering very much to-night, I should say "With what porpoise?"'' ''Don''t you mean that you couldn''t cut off a little timidly: ''but it''s no use in waiting by the end of the Lobster Quadrille, that she was shrinking rapidly; so she went on again: ''Twenty-four hours, I THINK; or is it I can''t see you?'' She was close behind us, and he''s treading on my tail. See how eagerly the lobsters and the sound of a tree. ''Did you say it.'' ''That''s nothing to what I eat" is the same year for such a nice soft thing to nurse--and she''s such a rule at processions; ''and besides, what would happen next. ''It''s--it''s a very good height indeed!'' said the King: ''however, it may kiss my hand if it had fallen into it: there was nothing so VERY wide, but she was shrinking rapidly; so she turned to the part about her pet: ''Dinah''s our cat. And she''s such a hurry to get in at all?'' said the Queen, but she remembered having seen such a dear quiet thing,'' Alice went on, spreading out the verses the White Rabbit put on his spectacles. ''Where shall I begin, please your Majesty,'' said Two, in a frightened tone. ''The Queen of Hearts, he stole those tarts, And took them quite away!'' ''Consider your verdict,'' the King said, turning to the jury, of course--"I GAVE HER ONE, THEY GAVE HIM TWO--" why, that must be a walrus or hippopotamus, but then she had this fit) An obstacle that came between Him, and ourselves, and it. Don''t let me hear the words:-- ''I speak severely to my jaw, Has lasted the rest were quite silent, and looked anxiously at the March Hare meekly replied. ''Yes, but I can''t put it in time,'' said the Mock Turtle went on. ''Or would you like the Queen?'' said the Caterpillar sternly. ''Explain yourself!'' ''I can''t explain MYSELF, I''m afraid, sir'' said Alice, ''how am I to do such a tiny golden key, and unlocking the door between us. For instance, suppose it were white, but.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 7);
+INSERT INTO post (id, slug, title, status, content, created_at, updated_at, user_id) VALUES (11, 'LIkxj50Kp4PE4vlRW2RyayTKGTmJNsFdckr9TYeVDBAMjTSSXiqITlQudv7Eozhy9vUBzwgU2FuXSdCv_bagBOoGlu_Xa3myOIFn7tmbs2HRzKNl4Nv5T2vuIFjjTH9-', 'Eveniet est nam sapiente odit architecto et.', 1, 'Alice replied thoughtfully. ''They have their tails in their paws. ''And how do you know the song, perhaps?'' ''I''ve heard something like this:-- ''Fury said to Alice. ''Nothing,'' said Alice. ''I''ve so often read in the distance. ''Come on!'' cried the Gryphon, and the second verse of the shelves as she went nearer to make it stop. ''Well, I''d hardly finished the guinea-pigs!'' thought Alice. ''I wonder what you''re at!" You know the meaning of half an hour or so, and giving it a violent shake at the window, and some of them even when they passed too close, and waving their forepaws to mark the time, while the rest of the court. (As that is rather a handsome pig, I think.'' And she squeezed herself up on tiptoe, and peeped over the fire, and at once to eat some of the fact. ''I keep them to sell,'' the Hatter began, in a very truthful child; ''but little girls in my kitchen AT ALL. Soup does very well without--Maybe it''s always pepper that had a bone in his sleep, ''that "I breathe when I get SOMEWHERE,'' Alice added as an explanation; ''I''ve none of YOUR business, Two!'' said Seven. ''Yes, it IS his business!'' said Five, ''and I''ll tell him--it was for bringing the cook was leaning over the wig, (look at the Queen, the royal children; there were any tears. No, there were TWO little shrieks, and more faintly came, carried on the top of her going, though she felt a violent blow underneath her chin: it had a little snappishly. ''You''re enough to drive one crazy!'' The Footman seemed to have no answers.'' ''If you didn''t like cats.'' ''Not like cats!'' cried the Mouse, who was a large canvas bag, which tied up at the bottom of a tree a few minutes it puffed away without being seen, when she got to see a little glass table. ''Now, I''ll manage better this time,'' she said to herself; ''I should like to be no chance of getting her hands on her lap as if nothing had happened. ''How am I to get out of sight, he said in a court of justice before, but she thought it must be on the twelfth?'' Alice went on, looking anxiously about her. ''Oh, do let me hear the words:-- ''I speak severely to my right size to do it?'' ''In my youth,'' said the Hatter added as an explanation. ''Oh, you''re sure to do anything but sit with its wings. ''Serpent!'' screamed the Gryphon. ''Then, you know,'' said the Pigeon; ''but I must be collected at once and put back into the garden door. Poor Alice! It was so full of tears, but said nothing. ''This here young lady,'' said the Cat. ''I said pig,'' replied Alice; ''and I wish I could not be denied, so she began nursing her child again, singing a sort of people live about here?'' ''In THAT direction,'' the Cat said, waving its tail when it''s pleased. Now I growl when I''m pleased, and wag my tail when I''m pleased, and wag my tail when it''s angry, and wags its tail about in all their simple joys, remembering her own mind (as well as she went on, looking anxiously about her. ''Oh, do let me hear the rattle of the shepherd boy--and the sneeze of the ground, Alice soon began talking again. ''Dinah''ll miss me very much what would happen next. First, she tried to curtsey as she could not even get her head impatiently; and, turning to Alice, and looking anxiously round to see if there are, nobody attends to them--and you''ve no idea what Latitude or Longitude I''ve got to?'' (Alice had no reason to be Number One,'' said Alice. ''Why?'' ''IT DOES THE BOOTS AND SHOES.'' the Gryphon went on again:-- ''You may go,'' said the Hatter: ''but you could only hear whispers now and then, if I chose,'' the Duchess by this time, and was going off into a sort of a well?'' ''Take some more of the table, but there was a very small cake, on which the cook was busily stirring the soup, and seemed to Alice severely. ''What are they made of?'' Alice asked in a great thistle, to keep herself from being run over; and the March Hare will be much the same thing as "I get what I like"!'' ''You might.', '2020-07-26 20:18:16', '2020-07-26 20:18:17', 4);
\ No newline at end of file
diff --git a/tests/Support/FunctionalTester.php b/blog-api/tests/Support/FunctionalTester.php
similarity index 90%
rename from tests/Support/FunctionalTester.php
rename to blog-api/tests/Support/FunctionalTester.php
index 49434042a..d494710d2 100644
--- a/tests/Support/FunctionalTester.php
+++ b/blog-api/tests/Support/FunctionalTester.php
@@ -7,7 +7,7 @@
use Codeception\Actor;
/**
- * Inherited Methods
+ * Inherited Methods.
*
* @method void wantToTest($text)
* @method void wantTo($text)
@@ -21,12 +21,12 @@
* @method void pause()
*
* @SuppressWarnings(PHPMD)
-*/
+ */
class FunctionalTester extends Actor
{
use _generated\FunctionalTesterActions;
/**
- * Define custom actions here
+ * Define custom actions here.
*/
}
diff --git a/tests/Support/Helper/Acceptance.php b/blog-api/tests/Support/Helper/Acceptance.php
similarity index 100%
rename from tests/Support/Helper/Acceptance.php
rename to blog-api/tests/Support/Helper/Acceptance.php
diff --git a/blog-api/tests/Support/Helper/Cli.php b/blog-api/tests/Support/Helper/Cli.php
new file mode 100644
index 000000000..d459f5cc5
--- /dev/null
+++ b/blog-api/tests/Support/Helper/Cli.php
@@ -0,0 +1,14 @@
+run();
diff --git a/yii.bat b/blog-api/yii.bat
similarity index 100%
rename from yii.bat
rename to blog-api/yii.bat
diff --git a/blog/.dockerignore b/blog/.dockerignore
new file mode 100644
index 000000000..24e04c973
--- /dev/null
+++ b/blog/.dockerignore
@@ -0,0 +1,3 @@
+runtime/
+!runtime/.gitignore
+vendor/
diff --git a/blog/.editorconfig b/blog/.editorconfig
new file mode 100644
index 000000000..8802775ba
--- /dev/null
+++ b/blog/.editorconfig
@@ -0,0 +1,21 @@
+# editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
+
+[*.php]
+ij_php_space_before_short_closure_left_parenthesis = false
+ij_php_space_after_type_cast = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.yml]
+indent_size = 2
diff --git a/.env.example b/blog/.env.example
similarity index 70%
rename from .env.example
rename to blog/.env.example
index 190a319f9..1c0ba5ff0 100644
--- a/.env.example
+++ b/blog/.env.example
@@ -1,3 +1,4 @@
YII_ENV=
YII_DEBUG=true
SENTRY_DSN=
+BASE_URL=/blog
diff --git a/blog/.env.test b/blog/.env.test
new file mode 100644
index 000000000..76b1f81af
--- /dev/null
+++ b/blog/.env.test
@@ -0,0 +1,4 @@
+YII_ENV=test
+YII_DEBUG=true
+SENTRY_DSN=
+BASE_URL=/
diff --git a/blog/.gitattributes b/blog/.gitattributes
new file mode 100644
index 000000000..475badfc4
--- /dev/null
+++ b/blog/.gitattributes
@@ -0,0 +1,27 @@
+# Autodetect text files
+* text=auto eol=lf
+
+# ...Unless the name matches the following overriding patterns
+
+# Definitively text files
+*.php text
+*.css text
+*.js text
+*.txt text
+*.md text
+*.xml text
+*.json text
+*.bat text
+*.sql text
+*.yml text
+
+# Ensure those won't be messed up with
+*.png binary
+*.jpg binary
+*.gif binary
+*.ttf binary
+
+# Avoid merge conflicts in CHANGELOG
+# https://about.gitlab.com/2015/02/10/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders/
+/CHANGELOG.md merge=union
+
diff --git a/blog/.gitignore b/blog/.gitignore
new file mode 100644
index 000000000..6c3b40aad
--- /dev/null
+++ b/blog/.gitignore
@@ -0,0 +1,29 @@
+# IDE & OS files
+.*.swp
+.DS_Store
+.buildpath
+.idea
+.project
+.settings
+Thumbs.db
+nbproject
+
+# Binaries
+chkipper.phar
+composer.phar
+ocular.phar
+php-cs-fixer.phar
+phpstan.phar
+phpunit-skelgen.phar
+phpunit.phar
+
+# local config
+/.env
+/docker-compose.override.yml
+
+# evolving files
+/vendor
+/node_modules
+
+# Codeception
+c3.php
diff --git a/blog/.phpunit-watcher.yml b/blog/.phpunit-watcher.yml
new file mode 100644
index 000000000..0e4d76634
--- /dev/null
+++ b/blog/.phpunit-watcher.yml
@@ -0,0 +1,11 @@
+watch:
+ directories:
+ - src
+ - tests
+ fileMask: '*.php'
+notifications:
+ passingTests: false
+ failingTests: false
+phpunit:
+ binaryPath: vendor/bin/phpunit
+ timeout: 180
diff --git a/blog/LICENSE.md b/blog/LICENSE.md
new file mode 100644
index 000000000..bc5674fe4
--- /dev/null
+++ b/blog/LICENSE.md
@@ -0,0 +1,29 @@
+Copyright © 2008 by Yii Software (https://www.yiiframework.com/)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Yii Software nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/blog/Makefile b/blog/Makefile
new file mode 100644
index 000000000..148afab89
--- /dev/null
+++ b/blog/Makefile
@@ -0,0 +1,24 @@
+init: composer-update npm-update up
+
+up:
+ docker-compose up -d
+down:
+ docker-compose down
+
+composer:
+ docker-compose run php composer $(filter-out $@, $(MAKECMDGOALS))
+composer-update:
+ docker-compose run php composer update
+
+npm:
+ docker-compose run php npm $(filter-out $@, $(MAKECMDGOALS))
+npm-update:
+ docker-compose run php npm update
+
+yii3:
+ docker-compose run php ./yii $(filter-out $@, $(MAKECMDGOALS))
+
+test:
+ docker-compose run php ./vendor/bin/codecept run
+psalm:
+ docker-compose run php ./vendor/bin/psalm
diff --git a/blog/README.md b/blog/README.md
new file mode 100644
index 000000000..126a39c39
--- /dev/null
+++ b/blog/README.md
@@ -0,0 +1,98 @@
+
+
+
+
+
Yii Framework Demo Project
+
+
+
+[Yii Framework](https://www.yiiframework.com/) is a modern framework designed to be a solid foundation for your PHP application.
+
+It's intended to show and test all Yii features.
+
+[![Latest Stable Version](https://poser.pugx.org/yiisoft/demo/v/stable.png)](https://packagist.org/packages/yiisoft/demo)
+[![Total Downloads](https://poser.pugx.org/yiisoft/demo/downloads.png)](https://packagist.org/packages/yiisoft/demo)
+[![build](https://github.com/yiisoft/demo/workflows/build/badge.svg)](https://github.com/yiisoft/demo/actions)
+[![Code Coverage](https://codecov.io/gh/yiisoft/demo/branch/master/graph/badge.svg?token=dWuz2uAVU2)](https://codecov.io/gh/yiisoft/demo)
+[![static analysis](https://github.com/yiisoft/demo/workflows/static%20analysis/badge.svg)](https://github.com/yiisoft/demo/actions?query=workflow%3A%22static+analysis%22)
+[![type-coverage](https://shepherd.dev/github/yiisoft/demo/coverage.svg)](https://shepherd.dev/github/yiisoft/demo)
+
+## Installation
+
+You'll need at least PHP 8.1.
+
+1. Clone this repository.
+2. Run command in your project root directory.
+```bash
+composer install
+```
+3. Run `./yii serve` (on Windows `yii serve`). The application will be started on http://localhost:8080/.
+```bash
+./yii serve
+```
+4. Go to the index page. Cycle ORM will create tables, indexes and relations automatically in the configured DB for you.
+ If you want to disable this behavior then comment out the line with the `Generator\SyncTables::class` in the `config/packges/yiisoft/yii-cycle/params.php`.
+ In this case you should create migrations to sync changes that you have made to entities with the DB.
+5. Run command to create some random data.
+```bash
+./yii fixture/add 20
+```
+## Console
+
+Console works out of the box and could be executed with `./yii`.
+
+Some commands:
+
+```bash
+./yii user/create login password
+./yii fixture/add 10
+```
+
+In order to register your own commands, add them to `console/params.php`, `console` → `commands` section.
+
+## Web application
+
+In order to run the web application, you can either use the built-in web server by running
+```bash
+./yii serve
+```
+ or you could use a real web server by pointing it to `/public/index.php`.
+
+More routes could be added by editing `src/Factory/AppRouterFactory`.
+
+## Testing
+
+The template comes with a ready to use [Codeception](https://codeception.com/) configuration.
+In order to execute tests run the following command:
+
+```bash
+composer run serve 127.0.0.1:8080 > ./runtime/yii.log 2>&1 &
+vendor/bin/codecept run
+```
+
+### Static analysis
+
+The code is statically analyzed with [Psalm](https://psalm.dev/). To run static analysis:
+
+```shell
+./vendor/bin/psalm
+```
+
+### Support the project
+
+[![Open Collective](https://img.shields.io/badge/Open%20Collective-sponsor-7eadf1?logo=open%20collective&logoColor=7eadf1&labelColor=555555)](https://opencollective.com/yiisoft)
+
+### Follow updates
+
+[![Official website](https://img.shields.io/badge/Powered_by-Yii_Framework-green.svg?style=flat)](https://www.yiiframework.com/)
+[![Twitter](https://img.shields.io/badge/twitter-follow-1DA1F2?logo=twitter&logoColor=1DA1F2&labelColor=555555?style=flat)](https://twitter.com/yiiframework)
+[![Telegram](https://img.shields.io/badge/telegram-join-1DA1F2?style=flat&logo=telegram)](https://t.me/yii3en)
+[![Facebook](https://img.shields.io/badge/facebook-join-1DA1F2?style=flat&logo=facebook&logoColor=ffffff)](https://www.facebook.com/groups/yiitalk)
+[![Slack](https://img.shields.io/badge/slack-join-1DA1F2?style=flat&logo=slack)](https://yiiframework.com/go/slack)
+
+## License
+
+The Yii Framework Demo Project is free software. It is released under the terms of the BSD License.
+Please see [`LICENSE`](./LICENSE.md) for more information.
+
+Maintained by [Yii Software](https://www.yiiframework.com/).
diff --git a/blog/autoload.php b/blog/autoload.php
new file mode 100644
index 000000000..ccfe29cdb
--- /dev/null
+++ b/blog/autoload.php
@@ -0,0 +1,20 @@
+load();
+
+$_ENV['YII_ENV'] = empty($_ENV['YII_ENV']) ? null : (string) $_ENV['YII_ENV'];
+$_SERVER['YII_ENV'] = $_ENV['YII_ENV'];
+
+$_ENV['YII_DEBUG'] = filter_var(
+ !empty($_ENV['YII_DEBUG']) ? $_ENV['YII_DEBUG'] : true,
+ FILTER_VALIDATE_BOOLEAN,
+ FILTER_NULL_ON_FAILURE
+) ?? true;
+$_SERVER['YII_DEBUG'] = $_ENV['YII_DEBUG'];
diff --git a/codeception.yml b/blog/codeception.yml
similarity index 100%
rename from codeception.yml
rename to blog/codeception.yml
diff --git a/blog/composer.json b/blog/composer.json
new file mode 100644
index 000000000..6070af108
--- /dev/null
+++ b/blog/composer.json
@@ -0,0 +1,171 @@
+{
+ "name": "yiisoft/demo",
+ "type": "project",
+ "description": "Yii Framework Project Demo",
+ "keywords": [
+ "yii",
+ "app"
+ ],
+ "homepage": "https://github.com/yiisoft/demo",
+ "license": "BSD-3-Clause",
+ "support": {
+ "source": "https://github.com/yiisoft/demo",
+ "issues": "https://github.com/yiisoft/demo/issues",
+ "forum": "https://www.yiiframework.com/forum/"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "require": {
+ "php": "8.3.*",
+ "ext-mbstring": "*",
+ "ext-pdo_sqlite": "*",
+ "cebe/markdown": "^1.2@dev",
+ "cycle/annotated": "^3.5",
+ "cycle/database": "^2.0",
+ "cycle/entity-behavior": "^1.0",
+ "cycle/orm": "^2.0",
+ "doctrine/collections": "^1.6",
+ "fakerphp/faker": "^1.14",
+ "httpsoft/http-message": "^1.1",
+ "php-http/guzzle7-adapter": "^1.0",
+ "psr/container": "^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^3.0",
+ "symfony/console": "^6.0",
+ "vlucas/phpdotenv": "^5.3",
+ "yiisoft/access": "^1.0",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/auth": "^3.0",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/cache-file": "^3.0",
+ "yiisoft/config": "^1.3.1",
+ "yiisoft/cookies": "^1.2",
+ "yiisoft/csrf": "^2.0",
+ "yiisoft/data": "dev-master",
+ "yiisoft/data-cycle": "dev-master",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/definitions": "^3.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/form": "^1.0",
+ "yiisoft/form-model": "^1.0",
+ "yiisoft/html": "^3.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/input-http": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/mailer": "^5.0",
+ "yiisoft/mailer-symfony": "^3.0",
+ "yiisoft/middleware-dispatcher": "^5.2",
+ "yiisoft/rate-limiter": "dev-master",
+ "yiisoft/request-provider": "^1.0",
+ "yiisoft/rbac": "^1.0",
+ "yiisoft/rbac-php": "^1.0",
+ "yiisoft/rbac-rules-container": "^2.0",
+ "yiisoft/router": "^3.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/security": "^1.0",
+ "yiisoft/session": "^2.0",
+ "yiisoft/translator": "^3.0",
+ "yiisoft/translator-message-php": "^1.1.1",
+ "yiisoft/user": "^2.0",
+ "yiisoft/validator": "^2.0",
+ "yiisoft/var-dumper": "^1.0",
+ "yiisoft/view": "^10.0",
+ "yiisoft/widget": "^2.1",
+ "yiisoft/yii-bootstrap5": "^3.0@dev",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-cycle": "^1.0",
+ "yiisoft/yii-dataview": "^3.0@dev",
+ "yiisoft/yii-debug": "dev-master",
+ "yiisoft/yii-debug-api": "^3.0@dev",
+ "yiisoft/yii-event": "^2.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-middleware": "^1.0.4",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0",
+ "yiisoft/yii-sentry": "^2.0.1",
+ "yiisoft/yii-swagger": "^2.1.1",
+ "yiisoft/yii-view-renderer": "^7.1",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "codeception/c3": "^2.6",
+ "codeception/codeception": "^5.0",
+ "codeception/module-asserts": "^3.0",
+ "codeception/module-cli": "^2.0",
+ "codeception/module-phpbrowser": "^3.0",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "roave/security-advisories": "dev-latest",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18",
+ "yiisoft/translator-extractor": "^2.0",
+ "yiisoft/yii-debug-viewer": "dev-master",
+ "yiisoft/yii-gii": "dev-master",
+ "yiisoft/yii-testing": "dev-master"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "src"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "App\\Tests\\": "tests"
+ }
+ },
+ "scripts": {
+ "serve": [
+ "Composer\\Config::disableProcessTimeout",
+ "./yii serve"
+ ],
+ "post-update-cmd": [
+ "App\\Installer::postUpdate",
+ "App\\Installer::copyEnvFile"
+ ],
+ "post-create-project-cmd": [
+ "App\\Installer::copyEnvFile"
+ ],
+ "test": "codecept run",
+ "test-watch": "phpunit-watcher watch"
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-file": "configuration.php",
+ "installer-types": [
+ "npm-asset"
+ ],
+ "installer-paths": {
+ "./node_modules/{$name}": [
+ "type:npm-asset"
+ ]
+ }
+ },
+ "config": {
+ "sort-packages": true,
+ "allow-plugins": {
+ "codeception/c3": true,
+ "oomphinc/composer-installers-extender": true,
+ "composer/installers": true,
+ "composer/package-versions-deprecated": true,
+ "infection/extension-installer": true,
+ "yiisoft/config": true,
+ "php-http/discovery": false
+ }
+ },
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://asset-packagist.org"
+ }
+ ]
+}
diff --git a/blog/composer.lock b/blog/composer.lock
new file mode 100644
index 000000000..0098933d5
--- /dev/null
+++ b/blog/composer.lock
@@ -0,0 +1,18768 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "628abcc3114cb9c57125ac8e1459634b",
+ "packages": [
+ {
+ "name": "alexkart/curl-builder",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/alexkart/curl-builder.git",
+ "reference": "626cf95a84a37b6e1643675f7fc4acfc2f90dbfb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/alexkart/curl-builder/zipball/626cf95a84a37b6e1643675f7fc4acfc2f90dbfb",
+ "reference": "626cf95a84a37b6e1643675f7fc4acfc2f90dbfb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "psr/http-message": "^1.0"
+ },
+ "require-dev": {
+ "nyholm/psr7": "^1.3",
+ "phan/phan": "^5.4",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Alexkart\\CurlBuilder\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alexander Kartavenko",
+ "email": "askemailbox@gmail.com"
+ }
+ ],
+ "description": "PSR-7 compatible curl builder.",
+ "support": {
+ "issues": "https://github.com/alexkart/curl-builder/issues",
+ "source": "https://github.com/alexkart/curl-builder/tree/1.0.8"
+ },
+ "time": "2023-05-29T13:44:51+00:00"
+ },
+ {
+ "name": "cebe/markdown",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cebe/markdown.git",
+ "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cebe/markdown/zipball/9bac5e971dd391e2802dca5400bbeacbaea9eb86",
+ "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86",
+ "shasum": ""
+ },
+ "require": {
+ "lib-pcre": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "cebe/indent": "*",
+ "facebook/xhprof": "*@dev",
+ "phpunit/phpunit": "4.1.*"
+ },
+ "bin": [
+ "bin/markdown"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "cebe\\markdown\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Carsten Brandt",
+ "email": "mail@cebe.cc",
+ "homepage": "http://cebe.cc/",
+ "role": "Creator"
+ }
+ ],
+ "description": "A super fast, highly extensible markdown parser for PHP",
+ "homepage": "https://github.com/cebe/markdown#readme",
+ "keywords": [
+ "extensible",
+ "fast",
+ "gfm",
+ "markdown",
+ "markdown-extra"
+ ],
+ "support": {
+ "issues": "https://github.com/cebe/markdown/issues",
+ "source": "https://github.com/cebe/markdown"
+ },
+ "time": "2018-03-26T11:24:36+00:00"
+ },
+ {
+ "name": "clue/stream-filter",
+ "version": "v1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/stream-filter.git",
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7",
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "Clue\\StreamFilter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "A simple and modern approach to stream filtering in PHP",
+ "homepage": "https://github.com/clue/stream-filter",
+ "keywords": [
+ "bucket brigade",
+ "callback",
+ "filter",
+ "php_user_filter",
+ "stream",
+ "stream_filter_append",
+ "stream_filter_register"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/stream-filter/issues",
+ "source": "https://github.com/clue/stream-filter/tree/v1.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-20T15:40:13+00:00"
+ },
+ {
+ "name": "cycle/annotated",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/annotated.git",
+ "reference": "4024d2ea9b5656cdd0bf4e79acc485dc063b8273"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/annotated/zipball/4024d2ea9b5656cdd0bf4e79acc485dc063b8273",
+ "reference": "4024d2ea9b5656cdd0bf4e79acc485dc063b8273",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "doctrine/annotations": "^1.14.3 || ^2.0.1",
+ "doctrine/inflector": "^2.0",
+ "php": ">=8.0",
+ "spiral/attributes": "^2.8|^3.0",
+ "spiral/tokenizer": "^2.8|^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6",
+ "vimeo/psalm": "^4.30"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Annotated\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Annotated Entities generator",
+ "support": {
+ "issues": "https://github.com/cycle/annotated/issues",
+ "source": "https://github.com/cycle/annotated/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-08T21:32:45+00:00"
+ },
+ {
+ "name": "cycle/database",
+ "version": "2.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/database.git",
+ "reference": "5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/database/zipball/5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7",
+ "reference": "5f3fe4fc198d607fc40110e2fdb36b3c1c4e10f7",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pdo": "*",
+ "php": ">=8.0",
+ "psr/log": "1 - 3",
+ "spiral/core": "^2.8 || ^3.0",
+ "spiral/pagination": "^2.8 || ^3.0",
+ "symfony/polyfill-php83": "^1.28"
+ },
+ "conflict": {
+ "spiral/database": "*"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42",
+ "infection/infection": "^0.26.10",
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "spiral/tokenizer": "^2.14 || ^3.0",
+ "vimeo/psalm": "^5.18"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/polyfill.php",
+ "src/functions_polyfill.php"
+ ],
+ "psr-4": {
+ "Cycle\\Database\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ }
+ ],
+ "description": "DBAL, schema introspection, migration and pagination",
+ "homepage": "https://cycle-orm.dev",
+ "keywords": [
+ "database",
+ "dbal",
+ "mssql",
+ "mysql",
+ "orm",
+ "postgresql",
+ "query-builder",
+ "sql",
+ "sqlite"
+ ],
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/database/issues",
+ "source": "https://github.com/cycle/database"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-11T11:30:02+00:00"
+ },
+ {
+ "name": "cycle/entity-behavior",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/entity-behavior.git",
+ "reference": "9b7ad13a68a0ea0dca0399b7f44f20b691a18120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/entity-behavior/zipball/9b7ad13a68a0ea0dca0399b7f44f20b691a18120",
+ "reference": "9b7ad13a68a0ea0dca0399b7f44f20b691a18120",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "php": ">=8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "cycle/annotated": "^3.0",
+ "phpunit/phpunit": "^9.5",
+ "ramsey/uuid": "^4.5",
+ "spiral/tokenizer": "^2.8 || ^3.0",
+ "vimeo/psalm": "^5.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\ORM\\Entity\\Behavior\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Provides a collection of attributes that add behaviors to Cycle ORM entities",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/entity-behavior/issues",
+ "source": "https://github.com/cycle/entity-behavior"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-09T11:47:14+00:00"
+ },
+ {
+ "name": "cycle/migrations",
+ "version": "v4.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/migrations.git",
+ "reference": "434b08be175bf87f920651b9f6d91fc1cb7ed3ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/migrations/zipball/434b08be175bf87f920651b9f6d91fc1cb7ed3ba",
+ "reference": "434b08be175bf87f920651b9f6d91fc1cb7ed3ba",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.7.0",
+ "php": ">=8.1",
+ "spiral/core": "^3.0",
+ "spiral/files": "^3.0",
+ "spiral/reactor": "^3.0",
+ "spiral/tokenizer": "^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "dev-master"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Migrations\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Database migrations, migration scaffolding",
+ "support": {
+ "issues": "https://github.com/cycle/migrations/issues",
+ "source": "https://github.com/cycle/migrations/tree/v4.2.3"
+ },
+ "time": "2024-01-25T10:49:43+00:00"
+ },
+ {
+ "name": "cycle/orm",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/orm.git",
+ "reference": "23023be5e8452c1e5b05417f9c4539db71d60927"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/orm/zipball/23023be5e8452c1e5b05417f9c4539db71d60927",
+ "reference": "23023be5e8452c1e5b05417f9c4539db71d60927",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.8.1",
+ "doctrine/instantiator": "^1.3.1 || ^2.0",
+ "ext-pdo": "*",
+ "php": ">=8.0",
+ "spiral/core": "^2.8 || ^3.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6 || ^2.0",
+ "illuminate/collections": "^8.0",
+ "loophp/collection": "^6.0 || ^7.0",
+ "mockery/mockery": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "ramsey/uuid": "^4.0",
+ "spiral/tokenizer": "^2.8 || ^3.0",
+ "symfony/var-dumper": "^5.2 || ^6.0 || ^7.0",
+ "vimeo/psalm": "5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\ORM\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "PHP DataMapper ORM and Data Modelling Engine",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/orm/issues",
+ "source": "https://github.com/cycle/orm"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-05T13:14:36+00:00"
+ },
+ {
+ "name": "cycle/schema-builder",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-builder.git",
+ "reference": "413af8fc8f93c6e48cebc76ab6c37c65fe2cab63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-builder/zipball/413af8fc8f93c6e48cebc76ab6c37c65fe2cab63",
+ "reference": "413af8fc8f93c6e48cebc76ab6c37c65fe2cab63",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.7.1",
+ "cycle/orm": "^2.7",
+ "php": ">=8.0",
+ "yiisoft/friendly-exception": "^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "spiral/tokenizer": "^2.8",
+ "symfony/console": "^6.0 || ^7.0",
+ "vimeo/psalm": "^5.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.9.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Schema Builder",
+ "support": {
+ "issues": "https://github.com/cycle/schema-builder/issues",
+ "source": "https://github.com/cycle/schema-builder/tree/v2.9.0"
+ },
+ "time": "2024-07-10T16:20:17+00:00"
+ },
+ {
+ "name": "cycle/schema-migrations-generator",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-migrations-generator.git",
+ "reference": "94cb613ec77376cf880c9488daa3668b1f856e80"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-migrations-generator/zipball/94cb613ec77376cf880c9488daa3668b1f856e80",
+ "reference": "94cb613ec77376cf880c9488daa3668b1f856e80",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.4.1",
+ "cycle/migrations": "^4.2",
+ "cycle/schema-builder": "^2.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "cycle/annotated": "^3.0",
+ "cycle/orm": "^2.0",
+ "phpunit/phpunit": "^9.5",
+ "spiral/debug": "^3.0",
+ "spiral/framework": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Generator\\Migrations\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Cycle ORM Migration generation",
+ "support": {
+ "issues": "https://github.com/cycle/schema-migrations-generator/issues",
+ "source": "https://github.com/cycle/schema-migrations-generator/tree/2.2.0"
+ },
+ "time": "2023-11-02T09:24:12+00:00"
+ },
+ {
+ "name": "cycle/schema-provider",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-provider.git",
+ "reference": "d6e800d6cd498cf1053522b6c2348f6eea587aae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-provider/zipball/d6e800d6cd498cf1053522b6c2348f6eea587aae",
+ "reference": "d6e800d6cd498cf1053522b6c2348f6eea587aae",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "^2.0",
+ "cycle/schema-renderer": "^1.2",
+ "php": ">=8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "psr/simple-cache": "^2.0 || ^3.0",
+ "spiral/files": "^2.14 || ^3.11",
+ "webmozart/glob": "^4.6"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.48",
+ "phpunit/phpunit": "^9.6",
+ "roave/security-advisories": "dev-latest",
+ "vimeo/psalm": "^4.30.0 || ^5.21",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Provider\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Buchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Cycle ORM Schema providers",
+ "homepage": "https://cycle-orm.dev",
+ "support": {
+ "chat": "https://discord.gg/spiralphp",
+ "docs": "https://cycle-orm.dev/docs",
+ "issues": "https://github.com/cycle/schema-provider/issues",
+ "source": "https://github.com/cycle/schema-provider"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/cycle",
+ "type": "github"
+ }
+ ],
+ "time": "2024-02-05T13:58:34+00:00"
+ },
+ {
+ "name": "cycle/schema-renderer",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cycle/schema-renderer.git",
+ "reference": "5c2b7977c2803c6c9bacc56064abda5ea2b273a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cycle/schema-renderer/zipball/5c2b7977c2803c6c9bacc56064abda5ea2b273a3",
+ "reference": "5c2b7977c2803c6c9bacc56064abda5ea2b273a3",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/orm": "1.2 - 2",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "spiral/code-style": "^1.0",
+ "vimeo/psalm": "^4.10|^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cycle\\Schema\\Renderer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Utils for Cycle ORM Schema rendering",
+ "support": {
+ "issues": "https://github.com/cycle/schema-renderer/issues",
+ "source": "https://github.com/cycle/schema-renderer/tree/1.2.0"
+ },
+ "time": "2022-12-15T16:14:14+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7",
+ "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2 || ^3",
+ "ext-tokenizer": "*",
+ "php": "^7.2 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^2.0",
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.10.28",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^5.4 || ^6.4 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.14"
+ },
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/2.0.2"
+ },
+ "time": "2024-09-05T10:17:24+00:00"
+ },
+ {
+ "name": "doctrine/collections",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/collections.git",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^0.5.3 || ^1",
+ "php": "^7.1.3 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "phpstan/phpstan": "^1.4.8",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
+ "vimeo/psalm": "^4.22"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
+ "homepage": "https://www.doctrine-project.org/projects/collections.html",
+ "keywords": [
+ "array",
+ "collections",
+ "iterators",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/collections/issues",
+ "source": "https://github.com/doctrine/collections/tree/1.8.0"
+ },
+ "time": "2022-09-01T20:12:10+00:00"
+ },
+ {
+ "name": "doctrine/deprecations",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "phpstan/phpstan": "1.4.10 || 1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "0.18.4",
+ "psr/log": "^1 || ^2 || ^3",
+ "vimeo/psalm": "4.30.0 || 5.12.0"
+ },
+ "suggest": {
+ "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+ "homepage": "https://www.doctrine-project.org/",
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
+ },
+ "time": "2024-01-30T19:34:25+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-18T20:23:39+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:23:10+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-05T11:56:58+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "4.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-06T06:47:41+00:00"
+ },
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.23.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
+ },
+ "suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ },
+ "time": "2024-01-02T13:46:09+00:00"
+ },
+ {
+ "name": "gitonomy/gitlib",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/gitonomy/gitlib.git",
+ "reference": "2c7fbbd9814178474d0bb1b6292701cb4ab508f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/gitonomy/gitlib/zipball/2c7fbbd9814178474d0bb1b6292701cb4ab508f9",
+ "reference": "2c7fbbd9814178474d0bb1b6292701cb4ab508f9",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "php": "^8.0",
+ "symfony/polyfill-mbstring": "^1.7",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "ext-fileinfo": "*",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.20 || ^9.5.9",
+ "psr/log": "^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Gitonomy\\Git\\": "src/Gitonomy/Git/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Julien Didier",
+ "email": "genzo.wm@gmail.com",
+ "homepage": "https://github.com/juliendidier"
+ },
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info",
+ "homepage": "https://github.com/lyrixx"
+ },
+ {
+ "name": "Alexandre Salomé",
+ "email": "alexandre.salome@gmail.com",
+ "homepage": "https://github.com/alexandresalome"
+ }
+ ],
+ "description": "Library for accessing git",
+ "support": {
+ "issues": "https://github.com/gitonomy/gitlib/issues",
+ "source": "https://github.com/gitonomy/gitlib/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/gitonomy/gitlib",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-20T13:02:08+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:45:45+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "guzzle/client-integration-tests": "3.0.2",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-24T11:22:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T10:29:17+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T11:15:46+00:00"
+ },
+ {
+ "name": "http-interop/http-factory-guzzle",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/http-interop/http-factory-guzzle.git",
+ "reference": "8f06e92b95405216b237521cc64c804dd44c4a81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81",
+ "reference": "8f06e92b95405216b237521cc64c804dd44c4a81",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.7||^2.0",
+ "php": ">=7.3",
+ "psr/http-factory": "^1.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "^1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^9.5"
+ },
+ "suggest": {
+ "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Factory\\Guzzle\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "An HTTP Factory using Guzzle PSR7",
+ "keywords": [
+ "factory",
+ "http",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/http-interop/http-factory-guzzle/issues",
+ "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0"
+ },
+ "time": "2021-07-21T13:50:14+00:00"
+ },
+ {
+ "name": "httpsoft/http-message",
+ "version": "1.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-message.git",
+ "reference": "f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-message/zipball/f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19",
+ "reference": "f6c88e2189b9f75f10dfaeb0a85c56ea04a53c19",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "php-http/psr7-integration-tests": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Strict and fast implementation of PSR-7 and PSR-17",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "php",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/message",
+ "issues": "https://github.com/httpsoft/http-message/issues",
+ "source": "https://github.com/httpsoft/http-message"
+ },
+ "time": "2024-08-09T07:13:21+00:00"
+ },
+ {
+ "name": "jean85/pretty-package-versions",
+ "version": "2.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4",
+ "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.0.0",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "jean85/composer-provided-replaced-stub-package": "^1.0",
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^7.5|^8.5|^9.4",
+ "vimeo/psalm": "^4.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jean85\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
+ }
+ ],
+ "description": "A library to get pretty versions strings of installed dependencies",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
+ "support": {
+ "issues": "https://github.com/Jean85/pretty-package-versions/issues",
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6"
+ },
+ "time": "2024-03-08T09:58:59+00:00"
+ },
+ {
+ "name": "jetbrains/phpstorm-attributes",
+ "version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/JetBrains/phpstorm-attributes.git",
+ "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/22fb28d679deceedba8366dbae65cc8ebfc17e26",
+ "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JetBrains\\PhpStorm\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "JetBrains",
+ "homepage": "https://www.jetbrains.com"
+ }
+ ],
+ "description": "PhpStorm specific attributes",
+ "keywords": [
+ "attributes",
+ "jetbrains",
+ "phpstorm"
+ ],
+ "support": {
+ "issues": "https://youtrack.jetbrains.com/newIssue?project=WI",
+ "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.1"
+ },
+ "time": "2023-09-01T08:50:25+00:00"
+ },
+ {
+ "name": "nette/php-generator",
+ "version": "v4.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/php-generator.git",
+ "reference": "c90961e782ae86e517fe5ed732eb2b512945565b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/c90961e782ae86e517fe5ed732eb2b512945565b",
+ "reference": "c90961e782ae86e517fe5ed732eb2b512945565b",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^3.2.9 || ^4.0",
+ "php": "8.0 - 8.4"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.4",
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "suggest": {
+ "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.3 features.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "code",
+ "nette",
+ "php",
+ "scaffolding"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/php-generator/issues",
+ "source": "https://github.com/nette/php-generator/tree/v4.1.6"
+ },
+ "time": "2024-09-10T09:31:55+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "shasum": ""
+ },
+ "require": {
+ "php": "8.0 - 8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.5"
+ },
+ "time": "2024-08-07T15:39:19+00:00"
+ },
+ {
+ "name": "nikic/fast-route",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/FastRoute.git",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35|~5.7"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "FastRoute\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov",
+ "email": "nikic@php.net"
+ }
+ ],
+ "description": "Fast request router for PHP",
+ "keywords": [
+ "router",
+ "routing"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/FastRoute/issues",
+ "source": "https://github.com/nikic/FastRoute/tree/master"
+ },
+ "time": "2018-02-13T20:26:39+00:00"
+ },
+ {
+ "name": "php-http/client-common",
+ "version": "2.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/client-common.git",
+ "reference": "1e19c059b0e4d5f717bf5d524d616165aeab0612"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/client-common/zipball/1e19c059b0e4d5f717bf5d524d616165aeab0612",
+ "reference": "1e19c059b0e4d5f717bf5d524d616165aeab0612",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/httplug": "^2.0",
+ "php-http/message": "^1.6",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "^1.1",
+ "guzzlehttp/psr7": "^1.4",
+ "nyholm/psr7": "^1.2",
+ "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
+ "phpspec/prophecy": "^1.10.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
+ },
+ "suggest": {
+ "ext-json": "To detect JSON responses with the ContentTypePlugin",
+ "ext-libxml": "To detect XML responses with the ContentTypePlugin",
+ "php-http/cache-plugin": "PSR-6 Cache plugin",
+ "php-http/logger-plugin": "PSR-3 Logger plugin",
+ "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\Common\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Common HTTP Client implementations and tools for HTTPlug",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "client",
+ "common",
+ "http",
+ "httplug"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/client-common/issues",
+ "source": "https://github.com/php-http/client-common/tree/2.7.1"
+ },
+ "time": "2023-11-30T10:31:25+00:00"
+ },
+ {
+ "name": "php-http/discovery",
+ "version": "1.19.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "0700efda8d7526335132360167315fdab3aeb599"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599",
+ "reference": "0700efda8d7526335132360167315fdab3aeb599",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "nyholm/psr7": "<1.0",
+ "zendframework/zend-diactoros": "*"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "*",
+ "psr/http-factory-implementation": "*",
+ "psr/http-message-implementation": "*"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "graham-campbell/phpspec-skip-example-extension": "^5.0",
+ "php-http/httplug": "^1.0 || ^2.0",
+ "php-http/message-factory": "^1.0",
+ "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
+ "sebastian/comparator": "^3.0.5 || ^4.0.8",
+ "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Http\\Discovery\\Composer\\Plugin",
+ "plugin-optional": true
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Discovery\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/Composer/Plugin.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "adapter",
+ "client",
+ "discovery",
+ "factory",
+ "http",
+ "message",
+ "psr17",
+ "psr7"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/discovery/issues",
+ "source": "https://github.com/php-http/discovery/tree/1.19.4"
+ },
+ "time": "2024-03-29T13:00:05+00:00"
+ },
+ {
+ "name": "php-http/guzzle7-adapter",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/guzzle7-adapter.git",
+ "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01",
+ "reference": "fb075a71dbfa4847cf0c2938c4e5a9c478ef8b01",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/guzzle": "^7.0",
+ "php": "^7.2 | ^8.0",
+ "php-http/httplug": "^2.0",
+ "psr/http-client": "^1.0"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "1.0",
+ "php-http/client-implementation": "1.0",
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "php-http/client-integration-tests": "^3.0",
+ "phpunit/phpunit": "^8.0|^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Adapter\\Guzzle7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ }
+ ],
+ "description": "Guzzle 7 HTTP Adapter",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "Guzzle",
+ "http"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/guzzle7-adapter/issues",
+ "source": "https://github.com/php-http/guzzle7-adapter/tree/1.0.0"
+ },
+ "time": "2021-03-09T07:35:15+00:00"
+ },
+ {
+ "name": "php-http/httplug",
+ "version": "2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/httplug.git",
+ "reference": "625ad742c360c8ac580fcc647a1541d29e257f67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67",
+ "reference": "625ad742c360c8ac580fcc647a1541d29e257f67",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/promise": "^1.1",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
+ "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eric GELOEN",
+ "email": "geloen.eric@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "HTTPlug, the HTTP client abstraction for PHP",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "client",
+ "http"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/httplug/issues",
+ "source": "https://github.com/php-http/httplug/tree/2.4.0"
+ },
+ "time": "2023-04-14T15:10:03+00:00"
+ },
+ {
+ "name": "php-http/message",
+ "version": "1.16.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/message.git",
+ "reference": "5997f3289332c699fa2545c427826272498a2088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/message/zipball/5997f3289332c699fa2545c427826272498a2088",
+ "reference": "5997f3289332c699fa2545c427826272498a2088",
+ "shasum": ""
+ },
+ "require": {
+ "clue/stream-filter": "^1.5",
+ "php": "^7.2 || ^8.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.6",
+ "ext-zlib": "*",
+ "guzzlehttp/psr7": "^1.0 || ^2.0",
+ "laminas/laminas-diactoros": "^2.0 || ^3.0",
+ "php-http/message-factory": "^1.0.2",
+ "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
+ "slim/slim": "^3.0"
+ },
+ "suggest": {
+ "ext-zlib": "Used with compressor/decompressor streams",
+ "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
+ "laminas/laminas-diactoros": "Used with Diactoros Factories",
+ "slim/slim": "Used with Slim Framework PSR-7 implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/filters.php"
+ ],
+ "psr-4": {
+ "Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "HTTP Message related tools",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/message/issues",
+ "source": "https://github.com/php-http/message/tree/1.16.1"
+ },
+ "time": "2024-03-07T13:22:09+00:00"
+ },
+ {
+ "name": "php-http/message-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/message-factory.git",
+ "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
+ "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Factory interfaces for PSR-7 HTTP Message",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "stream",
+ "uri"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/message-factory/issues",
+ "source": "https://github.com/php-http/message-factory/tree/1.1.0"
+ },
+ "abandoned": "psr/http-factory",
+ "time": "2023-04-14T14:16:17+00:00"
+ },
+ {
+ "name": "php-http/promise",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/promise.git",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3",
+ "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Joel Wurtz",
+ "email": "joel.wurtz@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Promise used for asynchronous HTTP requests",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/promise/issues",
+ "source": "https://github.com/php-http/promise/tree/1.3.1"
+ },
+ "time": "2024-03-15T13:55:21+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.9.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:41:07+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory"
+ },
+ "time": "2024-04-15T12:06:14+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/1.1"
+ },
+ "time": "2023-04-04T09:50:52+00:00"
+ },
+ {
+ "name": "psr/http-server-handler",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-handler.git",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP server-side request handler",
+ "keywords": [
+ "handler",
+ "http",
+ "http-interop",
+ "psr",
+ "psr-15",
+ "psr-7",
+ "request",
+ "response",
+ "server"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
+ },
+ "time": "2023-04-10T20:06:20+00:00"
+ },
+ {
+ "name": "psr/http-server-middleware",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-middleware.git",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "psr/http-server-handler": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP server-side middleware",
+ "keywords": [
+ "http",
+ "http-interop",
+ "middleware",
+ "psr",
+ "psr-15",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/http-server-middleware/issues",
+ "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
+ },
+ "time": "2023-04-11T06:14:47+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
+ },
+ "time": "2024-09-11T13:17:53+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "sentry/sdk",
+ "version": "3.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-php-sdk.git",
+ "reference": "24c235ff2027401cbea099bf88689e1a1f197c7a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/24c235ff2027401cbea099bf88689e1a1f197c7a",
+ "reference": "24c235ff2027401cbea099bf88689e1a1f197c7a",
+ "shasum": ""
+ },
+ "require": {
+ "http-interop/http-factory-guzzle": "^1.0",
+ "sentry/sentry": "^3.22",
+ "symfony/http-client": "^4.3|^5.0|^6.0|^7.0"
+ },
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.",
+ "homepage": "http://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
+ ],
+ "support": {
+ "issues": "https://github.com/getsentry/sentry-php-sdk/issues",
+ "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-12-04T10:49:33+00:00"
+ },
+ {
+ "name": "sentry/sentry",
+ "version": "3.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getsentry/sentry-php.git",
+ "reference": "8859631ba5ab15bc1af420b0eeed19ecc6c9d81d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/8859631ba5ab15bc1af420b0eeed19ecc6c9d81d",
+ "reference": "8859631ba5ab15bc1af420b0eeed19ecc6c9d81d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "guzzlehttp/promises": "^1.5.3|^2.0",
+ "jean85/pretty-package-versions": "^1.5|^2.0.4",
+ "php": "^7.2|^8.0",
+ "php-http/async-client-implementation": "^1.0",
+ "php-http/client-common": "^1.5|^2.0",
+ "php-http/discovery": "^1.15",
+ "php-http/httplug": "^1.1|^2.0",
+ "php-http/message": "^1.5",
+ "php-http/message-factory": "^1.1",
+ "psr/http-factory": "^1.0",
+ "psr/http-factory-implementation": "^1.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0|^7.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "conflict": {
+ "php-http/client-common": "1.8.0",
+ "raven/raven": "*"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.19|3.4.*",
+ "guzzlehttp/psr7": "^1.8.4|^2.1.1",
+ "http-interop/http-factory-guzzle": "^1.0",
+ "monolog/monolog": "^1.6|^2.0|^3.0",
+ "nikic/php-parser": "^4.10.3",
+ "php-http/mock-client": "^1.3",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^8.5.14|^9.4",
+ "symfony/phpunit-bridge": "^5.2|^6.0",
+ "vimeo/psalm": "^4.17"
+ },
+ "suggest": {
+ "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Sentry\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
+ }
+ ],
+ "description": "A PHP SDK for Sentry (http://sentry.io)",
+ "homepage": "http://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
+ ],
+ "support": {
+ "issues": "https://github.com/getsentry/sentry-php/issues",
+ "source": "https://github.com/getsentry/sentry-php/tree/3.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-11-13T11:47:28+00:00"
+ },
+ {
+ "name": "spiral/attributes",
+ "version": "v3.1.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/attributes.git",
+ "reference": "fc6657de4ed83913c7f02241e5fe4e8e799af8fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/attributes/zipball/fc6657de4ed83913c7f02241e5fe4e8e799af8fa",
+ "reference": "fc6657de4ed83913c7f02241e5fe4e8e799af8fa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/cache": "1 - 3",
+ "psr/simple-cache": "1 - 3"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.14 || ^2.0",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "phpunit/phpunit": "^9.5.20",
+ "vimeo/psalm": "^5.17"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/polyfill.php"
+ ],
+ "psr-4": {
+ "Spiral\\Attributes\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ },
+ {
+ "name": "Kirill Nesmeyanov (SerafimArts)",
+ "email": "kirill.nesmeyanov@spiralscout.com"
+ }
+ ],
+ "description": "PHP attributes reader",
+ "homepage": "https://spiral.dev",
+ "keywords": [
+ "annotations",
+ "attributes",
+ "metadata"
+ ],
+ "support": {
+ "chat": "https://discord.gg/V6EK4he",
+ "docs": "https://spiral.dev/docs",
+ "forum": "https://forum.spiral.dev",
+ "issues": "https://github.com/spiral/attributes/issues",
+ "source": "https://github.com/spiral/attributes"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T10:18:52+00:00"
+ },
+ {
+ "name": "spiral/core",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/core.git",
+ "reference": "53bec6e433d709f59ef6c0ce966f4a640c4d1bad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/core/zipball/53bec6e433d709f59ef6c0ce966f4a640c4d1bad",
+ "reference": "53bec6e433d709f59ef6c0ce966f4a640c4d1bad",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/container-implementation": "^1.1|^2.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Core\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "IoC container, IoC scopes, factory, memory, configuration interfaces",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/core"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-10T16:54:43+00:00"
+ },
+ {
+ "name": "spiral/files",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/files.git",
+ "reference": "0c394e058ee994b6d18a229dcbe310e4de3a2b7a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/files/zipball/0c394e058ee994b6d18a229dcbe310e4de3a2b7a",
+ "reference": "0c394e058ee994b6d18a229dcbe310e4de3a2b7a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Files\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "File Toolkit: atomic file manager",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/files"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-03T16:58:09+00:00"
+ },
+ {
+ "name": "spiral/logger",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/logger.git",
+ "reference": "146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/logger/zipball/146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e",
+ "reference": "146fbf7fb320ea4708f5158e21f8fd4d48aa5b0e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "1 - 3",
+ "spiral/core": "^3.14.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Logger\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "LogFactory and global log listeners",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/logger"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:26+00:00"
+ },
+ {
+ "name": "spiral/pagination",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/pagination.git",
+ "reference": "93c9d93c811b4ec6037491e516c3e194fdc94848"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/pagination/zipball/93c9d93c811b4ec6037491e516c3e194fdc94848",
+ "reference": "93c9d93c811b4ec6037491e516c3e194fdc94848",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Pagination\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Common pagination interfaces",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/pagination"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-03T16:59:10+00:00"
+ },
+ {
+ "name": "spiral/reactor",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/reactor.git",
+ "reference": "74639a44ced7eb289820fdcca96ff9322f79f882"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/reactor/zipball/74639a44ced7eb289820fdcca96ff9322f79f882",
+ "reference": "74639a44ced7eb289820fdcca96ff9322f79f882",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/inflector": "^1.4|^2.0",
+ "nette/php-generator": "^4.1.2",
+ "php": ">=8.1",
+ "spiral/files": "^3.14.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^10.1",
+ "psr/container": "^1.1|^2.0",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Reactor\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Reactor: Code Scaffolding",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/reactor"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:25+00:00"
+ },
+ {
+ "name": "spiral/tokenizer",
+ "version": "3.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spiral/tokenizer.git",
+ "reference": "b5bf2ed89880d91c228bf1e3ebfda2b508c008ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spiral/tokenizer/zipball/b5bf2ed89880d91c228bf1e3ebfda2b508c008ff",
+ "reference": "b5bf2ed89880d91c228bf1e3ebfda2b508c008ff",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=8.1",
+ "spiral/core": "^3.14.3",
+ "spiral/logger": "^3.14.3",
+ "symfony/finder": "^5.3.7 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.6",
+ "phpunit/phpunit": "^10.1",
+ "spiral/attributes": "^2.8|^3.0",
+ "spiral/boot": "^3.14.3",
+ "spiral/files": "^3.14.3",
+ "vimeo/psalm": "^5.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.15.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spiral\\Tokenizer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Titov (wolfy-j)",
+ "email": "wolfy-j@spiralscout.com"
+ },
+ {
+ "name": "Pavel Butchnev (butschster)",
+ "email": "pavel.buchnev@spiralscout.com"
+ },
+ {
+ "name": "Aleksei Gagarin (roxblnfk)",
+ "email": "alexey.gagarin@spiralscout.com"
+ },
+ {
+ "name": "Maksim Smakouz (msmakouz)",
+ "email": "maksim.smakouz@spiralscout.com"
+ }
+ ],
+ "description": "Static Analysis: Class and Invocation locators",
+ "homepage": "https://spiral.dev",
+ "support": {
+ "issues": "https://github.com/spiral/framework/issues",
+ "source": "https://github.com/spiral/tokenizer"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spiral",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-11T17:40:38+00:00"
+ },
+ {
+ "name": "swagger-api/swagger-ui",
+ "version": "v5.17.14",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swagger-api/swagger-ui.git",
+ "reference": "74ed0adebfc9c8dd0de2bf8e81495b022a66c083"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swagger-api/swagger-ui/zipball/74ed0adebfc9c8dd0de2bf8e81495b022a66c083",
+ "reference": "74ed0adebfc9c8dd0de2bf8e81495b022a66c083",
+ "shasum": ""
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Anna Bodnia",
+ "email": "anna.bodnia@gmail.com"
+ },
+ {
+ "name": "Buu Nguyen",
+ "email": "buunguyen@gmail.com"
+ },
+ {
+ "name": "Josh Ponelat",
+ "email": "jponelat@gmail.com"
+ },
+ {
+ "name": "Kyle Shockey",
+ "email": "kyleshockey1@gmail.com"
+ },
+ {
+ "name": "Robert Barnwell",
+ "email": "robert@robertismy.name"
+ },
+ {
+ "name": "Sahar Jafari",
+ "email": "shr.jafari@gmail.com"
+ }
+ ],
+ "description": " Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.",
+ "homepage": "http://swagger.io",
+ "keywords": [
+ "api",
+ "documentation",
+ "openapi",
+ "specification",
+ "swagger",
+ "ui"
+ ],
+ "support": {
+ "issues": "https://github.com/swagger-api/swagger-ui/issues",
+ "source": "https://github.com/swagger-api/swagger-ui/tree/v5.17.14"
+ },
+ "time": "2024-05-28T05:24:40+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765",
+ "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T08:15:52+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.4.43",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/ae25a9145a900764158d439653d5630191155ca0",
+ "reference": "ae25a9145a900764158d439653d5630191155ca0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.4.43"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-13T14:03:51+00:00"
+ },
+ {
+ "name": "symfony/http-client",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "abca35865118edf35a23f2f24978a1784c831cb4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/abca35865118edf35a23f2f24978a1784c831cb4",
+ "reference": "abca35865118edf35a23f2f24978a1784c831cb4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-client-contracts": "^3.4.1",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.4"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
+ },
+ "require-dev": {
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4|^2.0",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T13:35:23+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "20414d96f391677bf80078aa55baece78b82647d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
+ "reference": "20414d96f391677bf80078aa55baece78b82647d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/bbf21460c56f29810da3df3e206e38dfbb01e80b",
+ "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.2",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/mime": "<6.4",
+ "symfony/twig-bridge": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-08T12:32:26+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/711d2e167e8ce65b05aea6b258c449671cdd38ff",
+ "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<6.4",
+ "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/serializer": "^6.4.3|^7.0.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T08:28:38+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55",
+ "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3f94e5f13ff58df371a7ead461b6e8068900fbb3",
+ "reference": "3f94e5f13ff58df371a7ead461b6e8068900fbb3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T12:47:12+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306",
+ "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-20T08:28:38+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-30T16:03:21+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "762ee56b2649659380e0ef4d592d807bc17b7971"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/762ee56b2649659380e0ef4d592d807bc17b7971",
+ "reference": "762ee56b2649659380e0ef4d592d807bc17b7971",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T12:47:12+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "5.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:52:34+00:00"
+ },
+ {
+ "name": "webmozart/glob",
+ "version": "4.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/glob.git",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/glob/zipball/8a2842112d6916e61e0e15e316465b611f3abc17",
+ "reference": "8a2842112d6916e61e0e15e316465b611f3abc17",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3 || ^8.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "symfony/filesystem": "^5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Glob\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A PHP implementation of Ant's glob.",
+ "support": {
+ "issues": "https://github.com/webmozarts/glob/issues",
+ "source": "https://github.com/webmozarts/glob/tree/4.7.0"
+ },
+ "time": "2024-03-07T20:33:40+00:00"
+ },
+ {
+ "name": "yiisoft/access",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/access.git",
+ "reference": "7a8ac9c4802d31cf47789c742575232c7fb1ae8b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/access/zipball/7a8ac9c4802d31cf47789c742575232c7fb1ae8b",
+ "reference": "7a8ac9c4802d31cf47789c742575232c7fb1ae8b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Access\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "An interface for checking access",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "access",
+ "interface",
+ "rbac",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/access/issues?state=open",
+ "source": "https://github.com/yiisoft/access",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2022-04-05T17:21:55+00:00"
+ },
+ {
+ "name": "yiisoft/aliases",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/aliases.git",
+ "reference": "2ed5e38d6ac503ec4c1af39115361097b6449135"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/aliases/zipball/2ed5e38d6ac503ec4c1af39115361097b6449135",
+ "reference": "2ed5e38d6ac503ec4c1af39115361097b6449135",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Aliases\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Named paths and URLs storage",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "alias"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/aliases/issues?state=open",
+ "source": "https://github.com/yiisoft/aliases",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-13T10:14:03+00:00"
+ },
+ {
+ "name": "yiisoft/arrays",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/arrays.git",
+ "reference": "e07c7268bd53903108ed556df93ef75b4bac6760"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/arrays/zipball/e07c7268bd53903108ed556df93ef75b4bac6760",
+ "reference": "e07c7268bd53903108ed556df93ef75b4bac6760",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/strings": "^2.1"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.20"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Arrays\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Array Helper",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "array",
+ "helper",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://forum.yiiframework.com/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/arrays/issues",
+ "source": "https://github.com/yiisoft/arrays",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-04-04T11:07:18+00:00"
+ },
+ {
+ "name": "yiisoft/assets",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/assets.git",
+ "reference": "14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/assets/zipball/14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc",
+ "reference": "14984b2c8a87236da8c8ef5a4f1273d4ff8a36bc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Assets\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Asset bundles and asset manager",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "assets",
+ "library",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/assets/issues?state=open",
+ "source": "https://github.com/yiisoft/assets",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-13T11:15:18+00:00"
+ },
+ {
+ "name": "yiisoft/auth",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/auth.git",
+ "reference": "497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/auth/zipball/497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee",
+ "reference": "497197fc2bbc2c4b2b8b35b177e0f4476fbe17ee",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.8",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Auth\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii auth",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "auth",
+ "middleware"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/auth/issues?state=open",
+ "source": "https://github.com/yiisoft/auth",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-06T12:26:49+00:00"
+ },
+ {
+ "name": "yiisoft/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cache.git",
+ "reference": "67ae4b40d3aefd193dfd9a3f458f3e145adb0d84"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cache/zipball/67ae4b40d3aefd193dfd9a3f458f3e145adb0d84",
+ "reference": "67ae4b40d3aefd193dfd9a3f458f3e145adb0d84",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "provide": {
+ "psr/simple-cache-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.2"
+ },
+ "suggest": {
+ "yiisoft/cache-apcu": "Allows to store cache using APCu PECL extension",
+ "yiisoft/cache-db": "Allows storing cache to the database",
+ "yiisoft/cache-file": "Allows storing cache to the files",
+ "yiisoft/cache-memcached": "Allows to store cache using Memcached PECL extension",
+ "yiisoft/cache-redis": "Allows storing cache to the Redis",
+ "yiisoft/cache-wincache": "Allows to store cache using WinCache PECL extension"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cache\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Caching Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cache",
+ "psr-16",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cache/issues?state=open",
+ "source": "https://github.com/yiisoft/cache",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-15T14:30:56+00:00"
+ },
+ {
+ "name": "yiisoft/cache-file",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cache-file.git",
+ "reference": "226ff0731adabc884c149f711190a7ac8b14800d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cache-file/zipball/226ff0731adabc884c149f711190a7ac8b14800d",
+ "reference": "226ff0731adabc884c149f711190a7ac8b14800d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "provide": {
+ "psr/simple-cache-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "php-mock/php-mock-phpunit": "^2.6",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cache\\File\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Caching Library - File Handler",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cache",
+ "file",
+ "framework",
+ "psr-16",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cache-file/issues?state=open",
+ "source": "https://github.com/yiisoft/cache-file",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-10-09T14:49:20+00:00"
+ },
+ {
+ "name": "yiisoft/config",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/config.git",
+ "reference": "8cd32f003af59303f3ba8dd520eb85f830689575"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/config/zipball/8cd32f003af59303f3ba8dd520eb85f830689575",
+ "reference": "8cd32f003af59303f3ba8dd520eb85f830689575",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0",
+ "php": "^8.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/strings": "^2.0",
+ "yiisoft/var-dumper": "^1.1"
+ },
+ "require-dev": {
+ "composer/composer": "^2.0",
+ "ext-json": "*",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6"
+ },
+ "suggest": {
+ "symfony/console": "To use composer commands `yii-config-copy` and `yii-config-rebuild`."
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Yiisoft\\Config\\Composer\\EventHandler"
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Composer plugin and a library for config assembling",
+ "homepage": "https://github.com/yiisoft/config",
+ "keywords": [
+ "composer",
+ "config",
+ "plugin"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/config/issues?state=open",
+ "source": "https://github.com/yiisoft/config",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-12-25T17:12:50+00:00"
+ },
+ {
+ "name": "yiisoft/cookies",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/cookies.git",
+ "reference": "ceba1d0647f1210331d90372ca83a8ecc952ebef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/cookies/zipball/ceba1d0647f1210331d90372ca83a8ecc952ebef",
+ "reference": "ceba1d0647f1210331d90372ca83a8ecc952ebef",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/security": "^1.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Cookies\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Convenient way to use cookies with PSR-7",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cookie",
+ "cookies",
+ "psr-7"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/cookies/issues?state=open",
+ "source": "https://github.com/yiisoft/cookies",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-04-05T07:20:16+00:00"
+ },
+ {
+ "name": "yiisoft/csrf",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/csrf.git",
+ "reference": "2168b5f83ec9ce65e9d0ca08fa88613e6778d377"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/csrf/zipball/2168b5f83ec9ce65e9d0ca08fa88613e6778d377",
+ "reference": "2168b5f83ec9ce65e9d0ca08fa88613e6778d377",
+ "shasum": ""
+ },
+ "require": {
+ "ext-hash": "*",
+ "php": "^7.4|^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/security": "^1.0",
+ "yiisoft/session": "^1.0|^2.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.24",
+ "yiisoft/di": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Csrf\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii CSRF Protection Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "breach",
+ "csrf",
+ "hmac",
+ "middleware",
+ "psr-15",
+ "stateless",
+ "synchronizer"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/csrf/issues?state=open",
+ "source": "https://github.com/yiisoft/csrf",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-05-08T09:48:50+00:00"
+ },
+ {
+ "name": "yiisoft/data",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data.git",
+ "reference": "714ca834858bea280ce8781fc5915fa8775f780b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data/zipball/714ca834858bea280ce8781fc5915fa8775f780b",
+ "reference": "714ca834858bea280ce8781fc5915fa8775f780b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "yiisoft/arrays": "^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.20"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Data\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Data providers, pagination and related abstractions",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "data processor",
+ "data provider",
+ "data reader",
+ "data writer",
+ "filter",
+ "pagination"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data/issues?state=open",
+ "source": "https://github.com/yiisoft/data",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-10T17:50:47+00:00"
+ },
+ {
+ "name": "yiisoft/data-cycle",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data-cycle.git",
+ "reference": "708074a77942ab1d7f424bc21a6912b7d62641da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data-cycle/zipball/708074a77942ab1d7f424bc21a6912b7d62641da",
+ "reference": "708074a77942ab1d7f424bc21a6912b7d62641da",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/database": "^2.10",
+ "cycle/orm": "^2.7.1",
+ "php": "^8.1",
+ "yiisoft/data": "dev-master"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.21",
+ "vlucas/phpdotenv": "^5.6"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Data\\Cycle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Cycle ORM query adapter for yiisoft/data",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "cycle",
+ "data provider",
+ "database",
+ "db",
+ "orm"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data-cycle/issues?state=open",
+ "source": "https://github.com/yiisoft/data-cycle",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-11T18:58:59+00:00"
+ },
+ {
+ "name": "yiisoft/data-response",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/data-response.git",
+ "reference": "7de8c880d0d6629867a51c5c2529c984e50dfbc3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/data-response/zipball/7de8c880d0d6629867a51c5c2529c984e50dfbc3",
+ "reference": "7de8c880d0d6629867a51c5c2529c984e50dfbc3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/json": "^1.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/di": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\DataResponse\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Allows responding with data that is automatically converted into PSR-7 response",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "data",
+ "psr-7",
+ "response"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/data-response/issues?state=open",
+ "source": "https://github.com/yiisoft/data-response",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-03T06:01:50+00:00"
+ },
+ {
+ "name": "yiisoft/definitions",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/definitions.git",
+ "reference": "5cb53d07afab3336705a52ddc90c37237cc4b316"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/definitions/zipball/5cb53d07afab3336705a52ddc90c37237cc4b316",
+ "reference": "5cb53d07afab3336705a52ddc90c37237cc4b316",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^1.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Definitions\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "The package provides definition syntax",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "definitions"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/definitions/issues?state=open",
+ "source": "https://github.com/yiisoft/definitions",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-16T13:31:21+00:00"
+ },
+ {
+ "name": "yiisoft/di",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/di.git",
+ "reference": "a6d889f74030a381dad337f1bd1ea9de7341bc9b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/di/zipball/a6d889f74030a381dad337f1bd1ea9de7341bc9b",
+ "reference": "a6d889f74030a381dad337f1bd1ea9de7341bc9b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/container": "^1.1|^2.0",
+ "yiisoft/definitions": "^3.0"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "league/container": "^4.2",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpbench/phpbench": "^1.2.0",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.14.3",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.29",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "phpbench/phpbench": "To run benchmarks.",
+ "yiisoft/injector": "^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Di\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii DI container",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "Autowiring",
+ "PSR-11",
+ "container",
+ "dependency",
+ "di",
+ "injection",
+ "injector"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/di/issues?state=open",
+ "source": "https://github.com/yiisoft/di",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-12-23T16:12:56+00:00"
+ },
+ {
+ "name": "yiisoft/error-handler",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/error-handler.git",
+ "reference": "a263c9dea48d5a42022dd7df76706cff39e3e960"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/error-handler/zipball/a263c9dea48d5a42022dd7df76706cff39e3e960",
+ "reference": "a263c9dea48d5a42022dd7df76706cff39e3e960",
+ "shasum": ""
+ },
+ "require": {
+ "alexkart/curl-builder": "^1.0",
+ "cebe/markdown": "^1.2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0.9",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/di": "^1.1",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\ErrorHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Error Handling Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "PSR-11",
+ "error-handler",
+ "psr-15",
+ "psr-3",
+ "psr-7",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/error-handler/issues?state=open",
+ "source": "https://github.com/yiisoft/error-handler",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-11T12:16:20+00:00"
+ },
+ {
+ "name": "yiisoft/event-dispatcher",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/event-dispatcher.git",
+ "reference": "2b1262a56260030aaac386bf8ef75ec072abc7e3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/event-dispatcher/zipball/2b1262a56260030aaac386bf8ef75ec072abc7e3",
+ "reference": "2b1262a56260030aaac386bf8ef75ec072abc7e3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.14.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\EventDispatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Event Dispatcher",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "event",
+ "event dispatcher",
+ "psr-14"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/event-dispatcher/issues?state=open",
+ "source": "https://github.com/yiisoft/event-dispatcher",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-10-27T12:02:21+00:00"
+ },
+ {
+ "name": "yiisoft/factory",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/factory.git",
+ "reference": "4537a78ae1a3b49bd86e83d09f0772034e45f193"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/factory/zipball/4537a78ae1a3b49bd86e83d09f0772034e45f193",
+ "reference": "4537a78ae1a3b49bd86e83d09f0772034e45f193",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0.1"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Factory\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Factory",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "factory"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/factory/issues",
+ "source": "https://github.com/yiisoft/factory",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-03T05:59:14+00:00"
+ },
+ {
+ "name": "yiisoft/files",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/files.git",
+ "reference": "129a8f8220e1cd2530f424951b8c24f426bd219c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/files/zipball/129a8f8220e1cd2530f424951b8c24f426bd219c",
+ "reference": "129a8f8220e1cd2530f424951b8c24f426bd219c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "ext-zlib": "*",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.22"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Files\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Helper to manage files and directories",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "files"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/files/issues?state=open",
+ "source": "https://github.com/yiisoft/files",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2022-07-05T06:43:38+00:00"
+ },
+ {
+ "name": "yiisoft/form",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/form.git",
+ "reference": "9679b95b239598d2391de291ab2ce14b5e074271"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/form/zipball/9679b95b239598d2391de291ab2ce14b5e074271",
+ "reference": "9679b95b239598d2391de291ab2ce14b5e074271",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/html": "^3.6",
+ "yiisoft/widget": "^2.2"
+ },
+ "require-dev": {
+ "infection/infection": "^0.26.19",
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.2",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.21"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "bootstrap": "bootstrap.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Form\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "The package helps with implementing data entry forms.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "form",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/form/issues?state=open",
+ "source": "https://github.com/yiisoft/form",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-08-26T18:54:52+00:00"
+ },
+ {
+ "name": "yiisoft/form-model",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/form-model.git",
+ "reference": "f0b6eb17d1a9d04fefbab4013b5177207ed0574a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/form-model/zipball/f0b6eb17d1a9d04fefbab4013b5177207ed0574a",
+ "reference": "f0b6eb17d1a9d04fefbab4013b5177207ed0574a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "psr/http-message": "^1.0|^2.0",
+ "yiisoft/form": "^1.0",
+ "yiisoft/html": "^3.3",
+ "yiisoft/hydrator": "^1.3",
+ "yiisoft/strings": "^2.3",
+ "yiisoft/validator": "^2.1"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\FormModel\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Provides a base for form models and helps to fill, validate and display them.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "form",
+ "model"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/form-model/issues?state=open",
+ "source": "https://github.com/yiisoft/form-model",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-13T07:16:51+00:00"
+ },
+ {
+ "name": "yiisoft/friendly-exception",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/friendly-exception.git",
+ "reference": "4b4a19edff251791e3c92d4d83435d2716351ff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/friendly-exception/zipball/4b4a19edff251791e3c92d4d83435d2716351ff4",
+ "reference": "4b4a19edff251791e3c92d4d83435d2716351ff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.4",
+ "roave/infection-static-analysis-plugin": "^1.5",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\FriendlyException\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "An interface for friendlier exception",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "error handling",
+ "exception",
+ "exceptions",
+ "friendly"
+ ],
+ "support": {
+ "forum": "http://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/friendly-exception/issues?state=open",
+ "source": "https://github.com/yiisoft/friendly-exception",
+ "wiki": "http://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-10-26T21:43:25+00:00"
+ },
+ {
+ "name": "yiisoft/html",
+ "version": "3.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/html.git",
+ "reference": "968aa8b336135242bdaef9646fa3d53c3c0731f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/html/zipball/968aa8b336135242bdaef9646fa3d53c3c0731f7",
+ "reference": "968aa8b336135242bdaef9646fa3d53c3c0731f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.26.19",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Html\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Handy library to generate HTML",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "html"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://forum.yiiframework.com/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/html/issues?state=open",
+ "source": "https://github.com/yiisoft/html",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-18T11:48:50+00:00"
+ },
+ {
+ "name": "yiisoft/http",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/http.git",
+ "reference": "7967b2c45dbf6af785dea4ea481af23da6d49c5d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/http/zipball/7967b2c45dbf6af785dea4ea481af23da6d49c5d",
+ "reference": "7967b2c45dbf6af785dea4ea481af23da6d49c5d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.10",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.12"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Constants and PSR-7 PhpStorm meta for HTTP protocol headers, methods and statuses",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "header",
+ "http",
+ "method",
+ "psr-17",
+ "psr-7",
+ "status"
+ ],
+ "support": {
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/http/issues?state=open",
+ "source": "https://github.com/yiisoft/http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-11-09T09:42:11+00:00"
+ },
+ {
+ "name": "yiisoft/hydrator",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/hydrator.git",
+ "reference": "9bfde0c99fc35b182d1b74433e9316c9b67c5fc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/hydrator/zipball/9bfde0c99fc35b182d1b74433e9316c9b67c5fc1",
+ "reference": "9bfde0c99fc35b182d1b74433e9316c9b67c5fc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "yiisoft/injector": "^1.1",
+ "yiisoft/strings": "^2.3"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.23",
+ "yiisoft/di": "^1.2",
+ "yiisoft/dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "ext-intl": "Allows using `ToDateTime` parameter attribute"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Hydrator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Create and populate objects with type casting, mapping and dependencies resolving support.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "hydrator"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/hydrator/issues?state=open",
+ "source": "https://github.com/yiisoft/hydrator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-17T16:10:24+00:00"
+ },
+ {
+ "name": "yiisoft/hydrator-validator",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/hydrator-validator.git",
+ "reference": "5f7acfebce127755af7df3cbc126dd502a1c4140"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/hydrator-validator/zipball/5f7acfebce127755af7df3cbc126dd502a1c4140",
+ "reference": "5f7acfebce127755af7df3cbc126dd502a1c4140",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/validator": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.11",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Hydrator\\Validator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Validating hydrator with raw data validation support",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "input",
+ "validation"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/hydrator-validator/issues?state=open",
+ "source": "https://github.com/yiisoft/hydrator-validator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-08-06T12:18:25+00:00"
+ },
+ {
+ "name": "yiisoft/i18n",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/i18n.git",
+ "reference": "c05e9e031fb36fc193152e18fa791bbf6d0582b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/i18n/zipball/c05e9e031fb36fc193152e18fa791bbf6d0582b8",
+ "reference": "c05e9e031fb36fc193152e18fa791bbf6d0582b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.17.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\I18n\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Internationalization Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "i18n",
+ "locale"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/i18n/issues?state=open",
+ "source": "https://github.com/yiisoft/i18n",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-06-10T14:18:35+00:00"
+ },
+ {
+ "name": "yiisoft/injector",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/injector.git",
+ "reference": "0dc0127a7542341bdaabda7b85204e992938b83e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/injector/zipball/0dc0127a7542341bdaabda7b85204e992938b83e",
+ "reference": "0dc0127a7542341bdaabda7b85204e992938b83e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpbench/phpbench": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^1.0|^2.0",
+ "rector/rector": "^0.18.12",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.7",
+ "yiisoft/test-support": "^1.2"
+ },
+ "suggest": {
+ "psr/container": "For automatic resolving of dependencies"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Injector\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-11 compatible injector. Executes a callable and makes an instances by injecting dependencies from a given DI container.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "PSR-11",
+ "dependency injection",
+ "di",
+ "injector",
+ "reflection"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/injector/issues?state=open",
+ "source": "https://github.com/yiisoft/injector",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-20T09:39:03+00:00"
+ },
+ {
+ "name": "yiisoft/input-http",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/input-http.git",
+ "reference": "877fea3374033f5a6af4207036eb7733a635b5b7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/input-http/zipball/877fea3374033f5a6af4207036eb7733a635b5b7",
+ "reference": "877fea3374033f5a6af4207036eb7733a635b5b7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/hydrator-validator": "^2.0",
+ "yiisoft/middleware-dispatcher": "^5.1",
+ "yiisoft/request-provider": "^1.0",
+ "yiisoft/validator": "^1.1|^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params-web": "params-web.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Input\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Maps data from PSR-7 HTTP request to PHP DTO representing user input.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "dto",
+ "input",
+ "mapper",
+ "mapping",
+ "psr-7",
+ "request",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/input-http/issues?state=open",
+ "source": "https://github.com/yiisoft/input-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-08-06T12:42:23+00:00"
+ },
+ {
+ "name": "yiisoft/json",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/json.git",
+ "reference": "51b483aef1cd5d06ea02db3c40707bb6b41ed088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/json/zipball/51b483aef1cd5d06ea02db3c40707bb6b41ed088",
+ "reference": "51b483aef1cd5d06ea02db3c40707bb6b41ed088",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.16.3",
+ "phan/phan": "^3.0",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Json\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "json",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "json"
+ ],
+ "support": {
+ "forum": "http://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/json/issues?state=open",
+ "source": "https://github.com/yiisoft/json",
+ "wiki": "http://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2020-08-26T12:21:14+00:00"
+ },
+ {
+ "name": "yiisoft/log",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/log.git",
+ "reference": "9d549952f5099a3e3081e11cccb3841c77587dac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/log/zipball/9d549952f5099a3e3081e11cccb3841c77587dac",
+ "reference": "9d549952f5099a3e3081e11cccb3841c77587dac",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/log": "^2.0|^3.0",
+ "yiisoft/var-dumper": "^1.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25"
+ },
+ "suggest": {
+ "yiisoft/log-target-db": "Allows writing log messages to the database",
+ "yiisoft/log-target-email": "Allows sending log messages by email",
+ "yiisoft/log-target-file": "Allows writing log messages to the files",
+ "yiisoft/log-target-syslog": "Allows writing log messages to the Syslog"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "events-console": "events-console.php",
+ "events-web": "events-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Logging Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "log",
+ "logger",
+ "psr-3",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/log/issues?state=open",
+ "source": "https://github.com/yiisoft/log",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-03T10:13:44+00:00"
+ },
+ {
+ "name": "yiisoft/log-target-file",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/log-target-file.git",
+ "reference": "758a792d11f5b6d554450abc828e2db5d7613f22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/log-target-file/zipball/758a792d11f5b6d554450abc828e2db5d7613f22",
+ "reference": "758a792d11f5b6d554450abc828e2db5d7613f22",
+ "shasum": ""
+ },
+ "require": {
+ "ext-zlib": "*",
+ "php": "^8.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/log": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.1",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.2",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.0"
+ },
+ "suggest": {
+ "ext-zlib": "Enabling gzip compression of rotated files."
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Log\\Target\\File\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Logging Library - File Target",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "log",
+ "logger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/log-target-file/issues",
+ "source": "https://github.com/yiisoft/log-target-file",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-17T05:52:09+00:00"
+ },
+ {
+ "name": "yiisoft/mailer",
+ "version": "5.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/mailer.git",
+ "reference": "dcb71779d946c75c9163a28d0a2c3c6f9d7f319a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/mailer/zipball/dcb71779d946c75c9163a28d0a2c3c6f9d7f319a",
+ "reference": "dcb71779d946c75c9163a28d0a2c3c6f9d7f319a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/event-dispatcher": "^1.0",
+ "yiisoft/view": "^10.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^10",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.24",
+ "yiisoft/files": "^2.0",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/event-dispatcher": "Yii Event Dispatcher",
+ "yiisoft/mailer-swiftmailer": "Yii Mailer Library - Swift Mailer Extension",
+ "yiisoft/mailer-symfony": "Yii Mailer Library - Symfony Mailer Extension"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Mailer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Mailer Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "mailer",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/mailer/issues?state=open",
+ "source": "https://github.com/yiisoft/mailer",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-02T14:35:38+00:00"
+ },
+ {
+ "name": "yiisoft/mailer-symfony",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/mailer-symfony.git",
+ "reference": "6dba87a57e2b08cf56afd260cebb33b4ee607eb7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/mailer-symfony/zipball/6dba87a57e2b08cf56afd260cebb33b4ee607eb7",
+ "reference": "6dba87a57e2b08cf56afd260cebb33b4ee607eb7",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/mailer": "^5.3|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.2|^7.0",
+ "yiisoft/mailer": "^5.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/files": "^2.0",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/view": "^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Mailer\\Symfony\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Mailer Library - Symfony Mailer Extension",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/mailer-symfony/issues?state=open",
+ "source": "https://github.com/yiisoft/mailer-symfony",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-05-24T11:18:35+00:00"
+ },
+ {
+ "name": "yiisoft/middleware-dispatcher",
+ "version": "5.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/middleware-dispatcher.git",
+ "reference": "97d290e4ddab59e5a735ebafc69c46b6953022b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/middleware-dispatcher/zipball/97d290e4ddab59e5a735ebafc69c46b6953022b3",
+ "reference": "97d290e4ddab59e5a735ebafc69c46b6953022b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/definitions": "^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.3",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Middleware\\Dispatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-15 middleware dispatcher",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "dispatcher",
+ "middleware"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/middleware-dispatcher/issues?state=open",
+ "source": "https://github.com/yiisoft/middleware-dispatcher",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-09-25T07:01:31+00:00"
+ },
+ {
+ "name": "yiisoft/network-utilities",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/network-utilities.git",
+ "reference": "9b51434f17035ce70ba220518a9d52656b6c1cb4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/network-utilities/zipball/9b51434f17035ce70ba220518a9d52656b6c1cb4",
+ "reference": "9b51434f17035ce70ba220518a9d52656b6c1cb4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\NetworkUtilities\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Network related utilities",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "IP",
+ "dns",
+ "mask",
+ "network"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/network-utilities/issues?state=open",
+ "source": "https://github.com/yiisoft/network-utilities",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-02T14:07:06+00:00"
+ },
+ {
+ "name": "yiisoft/profiler",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/profiler.git",
+ "reference": "9f1bd1649f079ddfd45217f8da50533b12ca78a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/profiler/zipball/9f1bd1649f079ddfd45217f8da50533b12ca78a3",
+ "reference": "9f1bd1649f079ddfd45217f8da50533b12ca78a3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/log": "^2.0|^3.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.1",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "events-web": "events-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Profiler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Profiler",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "performance",
+ "profiler"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/profiler/issues?state=open",
+ "source": "https://github.com/yiisoft/profiler",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-15T09:15:24+00:00"
+ },
+ {
+ "name": "yiisoft/proxy",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/proxy.git",
+ "reference": "2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/proxy/zipball/2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6",
+ "reference": "2820941a7ea0f66bab32d50a78c9f8b4b3fb22f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/files": "^1.0.2|^2.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Proxy\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "proxy",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "proxy"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/proxy/issues?state=open",
+ "source": "https://github.com/yiisoft/proxy",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-01-17T13:21:34+00:00"
+ },
+ {
+ "name": "yiisoft/rate-limiter",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/rate-limiter.git",
+ "reference": "8cbd10ba7e5d5e5edb5be5e52e6b42e1cc841942"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/rate-limiter/zipball/8cbd10ba7e5d5e5edb5be5e52e6b42e1cc841942",
+ "reference": "8cbd10ba7e5d5e5edb5be5e52e6b42e1cc841942",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "yiisoft/http": "^1.2"
+ },
+ "require-dev": {
+ "ext-apcu": "*",
+ "maglnet/composer-require-checker": "^4.4",
+ "nyholm/psr7": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.13",
+ "yiisoft/cache": "^3.0"
+ },
+ "suggest": {
+ "ext-apcu": "To use APCu storage"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\RateLimiter\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Rate Limiter Middleware",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "GCRA",
+ "framework",
+ "middleware",
+ "psr-15",
+ "rate limiter",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/rate-limiter/issues?state=open",
+ "source": "https://github.com/yiisoft/rate-limiter",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-05-25T06:55:30+00:00"
+ },
+ {
+ "name": "yiisoft/rbac",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/rbac.git",
+ "reference": "1744ddebd141f3fb1aaa3441ef7c4f2a36ca1cf3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/rbac/zipball/1744ddebd141f3fb1aaa3441ef7c4f2a36ca1cf3",
+ "reference": "1744ddebd141f3fb1aaa3441ef7c4f2a36ca1cf3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "yiisoft/access": "^1.0",
+ "yiisoft/friendly-exception": "^1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.3"
+ },
+ "suggest": {
+ "yiisoft/rbac-cycle-db": "For using Cycle as a storage",
+ "yiisoft/rbac-db": "For using Yii Database as a storage",
+ "yiisoft/rbac-php": "For using PHP files as a storage",
+ "yiisoft/rbac-rules-container": "To create rules via Yii Factory"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Rbac\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Role-Based Access Control",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "rbac",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/rbac/issues",
+ "source": "https://github.com/yiisoft/rbac",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-04-20T09:08:24+00:00"
+ },
+ {
+ "name": "yiisoft/rbac-php",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/rbac-php.git",
+ "reference": "de60e218822ff75b1ac319862e7459351d57cc75"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/rbac-php/zipball/de60e218822ff75b1ac319862e7459351d57cc75",
+ "reference": "de60e218822ff75b1ac319862e7459351d57cc75",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "yiisoft/rbac": "^1.0",
+ "yiisoft/var-dumper": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "psr/log": "^1.1.3",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.22",
+ "yiisoft/files": "^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Rbac\\Php\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii RBAC PHP File Storage",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "rbac",
+ "storage",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/rbac/issues",
+ "source": "https://github.com/yiisoft/rbac",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2022-04-08T11:33:34+00:00"
+ },
+ {
+ "name": "yiisoft/rbac-rules-container",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/rbac-rules-container.git",
+ "reference": "19c42b56751596ce139386d97f5164b77f655565"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/rbac-rules-container/zipball/19c42b56751596ce139386d97f5164b77f655565",
+ "reference": "19c42b56751596ce139386d97f5164b77f655565",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/rbac": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Rbac\\Rules\\Container\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "RBAC rules container based on \"yiisoft/factory\"",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "container",
+ "factory",
+ "rbac",
+ "rules",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/rbac-rules-container/issues?state=open",
+ "source": "https://github.com/yiisoft/rbac-rules-container",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-16T10:44:01+00:00"
+ },
+ {
+ "name": "yiisoft/request-provider",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/request-provider.git",
+ "reference": "667e339f307eaf3d4e4f09f05334e41761d20a81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/request-provider/zipball/667e339f307eaf3d4e4f09f05334e41761d20a81",
+ "reference": "667e339f307eaf3d4e4f09f05334e41761d20a81",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.1",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.20",
+ "yiisoft/di": "^1.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\RequestProvider\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-7 request provider",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "http",
+ "provider",
+ "psr",
+ "request",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/request-provider/issues?state=open",
+ "source": "https://github.com/yiisoft/request-provider",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-02T15:18:14+00:00"
+ },
+ {
+ "name": "yiisoft/router",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/router.git",
+ "reference": "86ee95984109bd96548cad3f93df8ad9ca4de0b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/router/zipball/86ee95984109bd96548cad3f93df8ad9ca4de0b8",
+ "reference": "86ee95984109bd96548cad3f93df8ad9ca4de0b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^5.0",
+ "yiisoft/router-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^1.1|^2.0",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.18",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.22",
+ "yiisoft/di": "^1.0",
+ "yiisoft/dummy-provider": "^1.0.0",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/hydrator": "Needed to use `RouteArgument` attribute",
+ "yiisoft/router-fastroute": "Router implementation based on nikic/FastRoute"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Router\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii router",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "middleware",
+ "router",
+ "web"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/router/issues?state=open",
+ "source": "https://github.com/yiisoft/router",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-02-20T11:39:48+00:00"
+ },
+ {
+ "name": "yiisoft/router-fastroute",
+ "version": "3.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/router-fastroute.git",
+ "reference": "4f2214eed24e140687e714ccb08a6420da316059"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/router-fastroute/zipball/4f2214eed24e140687e714ccb08a6420da316059",
+ "reference": "4f2214eed24e140687e714ccb08a6420da316059",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/fast-route": "^1.3",
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/router": "^2.1|^3.0"
+ },
+ "provide": {
+ "yiisoft/router-implementation": "1.0.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Router\\FastRoute\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii router FastRoute adapter",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "FastRoute",
+ "router"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/router-fastroute/issues?state=open",
+ "source": "https://github.com/yiisoft/router-fastroute",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-19T12:26:45+00:00"
+ },
+ {
+ "name": "yiisoft/security",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/security.git",
+ "reference": "f1ad5d279722f162cfb0f720a3723ad762892de3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/security/zipball/f1ad5d279722f162cfb0f720a3723ad762892de3",
+ "reference": "f1ad5d279722f162cfb0f720a3723ad762892de3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-hash": "*",
+ "ext-openssl": "*",
+ "php": "^7.4|^8.0",
+ "yiisoft/strings": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.23"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Security\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Security utilities",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "MAC",
+ "decryption",
+ "encryption",
+ "hash",
+ "password",
+ "random",
+ "security",
+ "signature",
+ "token masking"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/security/issues?state=open",
+ "source": "https://github.com/yiisoft/security",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-18T12:20:01+00:00"
+ },
+ {
+ "name": "yiisoft/session",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/session.git",
+ "reference": "193c666a8d1fcce5985c48afe9c3df96b6d3b6d1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/session/zipball/193c666a8d1fcce5985c48afe9c3df96b6d3b6d1",
+ "reference": "193c666a8d1fcce5985c48afe9c3df96b6d3b6d1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/cookies": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.1"
+ },
+ "suggest": {
+ "ext-session": "Allows using native PHP sessions"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Session\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "A session service, PSR-15 session middleware, and a flash message service which helps use one-time messages.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "flash",
+ "middleware",
+ "psr-15",
+ "session"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/session/issues?state=open",
+ "source": "https://github.com/yiisoft/session",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-05-02T18:50:11+00:00"
+ },
+ {
+ "name": "yiisoft/strings",
+ "version": "2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/strings.git",
+ "reference": "ff519d31e1c2518f42554fb5410e31bbb74b8108"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/strings/zipball/ff519d31e1c2518f42554fb5410e31bbb74b8108",
+ "reference": "ff519d31e1c2518f42554fb5410e31bbb74b8108",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Strings\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Strings Helper",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "helper",
+ "string",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/strings/issues",
+ "source": "https://github.com/yiisoft/strings",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-12-22T07:29:39+00:00"
+ },
+ {
+ "name": "yiisoft/translator",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/translator.git",
+ "reference": "869a224bf59dda36a8725985f5dd2e31cb357e21"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/translator/zipball/869a224bf59dda36a8725985f5dd2e31cb357e21",
+ "reference": "869a224bf59dda36a8725985f5dd2e31cb357e21",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/i18n": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/di": "^1.2"
+ },
+ "suggest": {
+ "ext-intl": "Allows using intl message formatter",
+ "ext-tokenizer": "Allows using message extraction",
+ "yiisoft/event-dispatcher": "To listen for events about missing categories and messages"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Translator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Message Translator",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "i18n",
+ "internationalization",
+ "translation"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/translator/issues?state=open",
+ "source": "https://github.com/yiisoft/translator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-17T13:16:40+00:00"
+ },
+ {
+ "name": "yiisoft/translator-message-php",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/translator-message-php.git",
+ "reference": "67a0c64c132e5098f6824017ca4bccd45cc79030"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/translator-message-php/zipball/67a0c64c132e5098f6824017ca4bccd45cc79030",
+ "reference": "67a0c64c132e5098f6824017ca4bccd45cc79030",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "yiisoft/translator": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.15.4",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Translator\\Message\\Php\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Translator PHP Message Storage",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "formatting",
+ "i18n",
+ "internationalization",
+ "message storage"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/translator-message-php/issues?state=open",
+ "source": "https://github.com/yiisoft/translator-message-php",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-02-19T11:29:34+00:00"
+ },
+ {
+ "name": "yiisoft/user",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/user.git",
+ "reference": "7bd541166949ac56a722a9555d43dac29976f424"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/user/zipball/7bd541166949ac56a722a9555d43dac29976f424",
+ "reference": "7bd541166949ac56a722a9555d43dac29976f424",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.4|^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0",
+ "yiisoft/access": "^1.0",
+ "yiisoft/auth": "^2.0|^3.0",
+ "yiisoft/cookies": "^1.2",
+ "yiisoft/http": "^1.2",
+ "yiisoft/session": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\User\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Convenient user identity management and access checking",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "user",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/user/issues?state=open",
+ "source": "https://github.com/yiisoft/user",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-02-15T10:47:39+00:00"
+ },
+ {
+ "name": "yiisoft/validator",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/validator.git",
+ "reference": "9e8ad99e66c750aceda96fd96033ff4b5d4a7e62"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/validator/zipball/9e8ad99e66c750aceda96fd96033ff4b5d4a7e62",
+ "reference": "9e8ad99e66c750aceda96fd96033ff4b5d4a7e62",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "yiisoft/arrays": "^2.1|^3.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/network-utilities": "^1.2",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/translator": "^2.1|^3.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "phpbench/phpbench": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.24",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/translator-message-php": "^1.1",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "suggest": {
+ "ext-fileinfo": "To use image rule",
+ "ext-intl": "Allows using date rules and IDN validation for emails",
+ "yiisoft/di": "To create rule handlers via Yii DI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di": "di.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Validator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Validator",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/validator/issues?state=open",
+ "source": "https://github.com/yiisoft/validator",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-12T12:10:04+00:00"
+ },
+ {
+ "name": "yiisoft/var-dumper",
+ "version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/var-dumper.git",
+ "reference": "c7f6a40d117b905abe26ac093593eaf7c57b9bd5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/var-dumper/zipball/c7f6a40d117b905abe26ac093593eaf7c57b9bd5",
+ "reference": "c7f6a40d117b905abe26ac093593eaf7c57b9bd5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "php": "^8.0",
+ "yiisoft/arrays": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.3"
+ },
+ "suggest": {
+ "ext-sockets": "Send dumps to a server through UDP/TCP protocols"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Yiisoft\\VarDumper\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Enhances functionality of var_dump() and var_export(). It is dealing with recursive references, may highlight syntax and export closures.",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "helper",
+ "var-dumper",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/var-dumper/issues",
+ "source": "https://github.com/yiisoft/var-dumper",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-10-08T11:21:24+00:00"
+ },
+ {
+ "name": "yiisoft/view",
+ "version": "10.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/view.git",
+ "reference": "4416d30e4e286e23887d9f525701f37e3a15f9ca"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/view/zipball/4416d30e4e286e23887d9f525701f37e3a15f9ca",
+ "reference": "4416d30e4e286e23887d9f525701f37e3a15f9ca",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "1.0.0",
+ "psr/event-dispatcher-implementation": "1.0.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/cache": "^1.0|^2.0|^3.0",
+ "yiisoft/files": "^1.0|^2.0",
+ "yiisoft/html": "^2.5|^3.0",
+ "yiisoft/json": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "1.0.*",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.20",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^1.4|^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-web": "di-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\View\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii View Rendering Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "view",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/view/issues?state=open",
+ "source": "https://github.com/yiisoft/view",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-06-28T10:02:35+00:00"
+ },
+ {
+ "name": "yiisoft/widget",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/widget.git",
+ "reference": "d469c67698b4ee8bc4824c2adb0adbef645c1cff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/widget/zipball/d469c67698b4ee8bc4824c2adb0adbef645c1cff",
+ "reference": "d469c67698b4ee8bc4824c2adb0adbef645c1cff",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/definitions": "^3.1",
+ "yiisoft/factory": "^1.2",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/html": "^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "bootstrap": "bootstrap.php",
+ "widgets": [],
+ "widgets-themes": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Widget\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Widget",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "widgets",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/widget/issues?state=open",
+ "source": "https://github.com/yiisoft/widget",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2023-12-25T18:47:09+00:00"
+ },
+ {
+ "name": "yiisoft/yii-bootstrap5",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-bootstrap5.git",
+ "reference": "76d3a7a8f9c8bada906929c517c01c1bd4678ed6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-bootstrap5/zipball/76d3a7a8f9c8bada906929c517c01c1bd4678ed6",
+ "reference": "76d3a7a8f9c8bada906929c517c01c1bd4678ed6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1",
+ "yiisoft/arrays": "^1.0|^2.0|^3.0",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/html": "^3.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/widget": "^2.0"
+ },
+ "provide": {
+ "yiisoft/yii-bootstrap": "1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.3",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/di": "^1.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Bootstrap5\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Twitter Bootstrap 5 Extension",
+ "keywords": [
+ "bootstrap5",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-bootstrap5/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-bootstrap5",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-07-12T17:56:26+00:00"
+ },
+ {
+ "name": "yiisoft/yii-console",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-console.git",
+ "reference": "7942fc70df59965bb1b33ac4671c915a145d2dcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-console/zipball/7942fc70df59965bb1b33ac4671c915a145d2dcf",
+ "reference": "7942fc70df59965bb1b33ac4671c915a145d2dcf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher-contracts": "^2.2|^3.0",
+ "yiisoft/friendly-exception": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^3.8|^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "vimeo/psalm": "^4.30|^5.20",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config",
+ "merge-plan-file": "../tests/environment/.merge-plan.php"
+ },
+ "config-plugin": {
+ "params-console": "params-console.php",
+ "di-console": "di-console.php",
+ "events-console": "events-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Console\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Symfony console wrapper with additional features",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "console",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-console/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-console",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-02-17T13:10:12+00:00"
+ },
+ {
+ "name": "yiisoft/yii-cycle",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-cycle.git",
+ "reference": "071361f0a97ed314add6c2e285953ee02b3973a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-cycle/zipball/071361f0a97ed314add6c2e285953ee02b3973a6",
+ "reference": "071361f0a97ed314add6c2e285953ee02b3973a6",
+ "shasum": ""
+ },
+ "require": {
+ "cycle/annotated": "^3.5",
+ "cycle/database": "^2.8",
+ "cycle/migrations": "^3.1.1|^4.0",
+ "cycle/orm": "^2.7",
+ "cycle/schema-builder": "^2.8",
+ "cycle/schema-migrations-generator": "^2.0",
+ "cycle/schema-provider": "^1.0",
+ "cycle/schema-renderer": "^1.2",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/log": "^3.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "spiral/attributes": "^2.7|^3.0",
+ "spiral/core": "^3.12",
+ "spiral/tokenizer": "^3.12",
+ "symfony/console": "^6.4",
+ "symfony/finder": "^5.4",
+ "webmozart/glob": "^4.7",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/injector": "^1.1"
+ },
+ "require-dev": {
+ "cycle/entity-behavior": "^1.0",
+ "ext-uopz": "*",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.7",
+ "yiisoft/definitions": "^3.2",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "cycle/entity-behavior": "To use PHP attributes that add behaviors to Cycle ORM entities."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "di-console": "di-console.php",
+ "events-console": "events-console.php",
+ "di-delegates": "di-delegates.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Cycle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Cycle ORM v2 support",
+ "homepage": "http://www.yiiframework.com/",
+ "keywords": [
+ "cycle",
+ "migrations",
+ "orm",
+ "yii"
+ ],
+ "support": {
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-cycle/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-cycle",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-21T08:34:37+00:00"
+ },
+ {
+ "name": "yiisoft/yii-dataview",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-dataview.git",
+ "reference": "c26babddba3a6b12cb679d92e13fe324eda9142a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-dataview/zipball/c26babddba3a6b12cb679d92e13fe324eda9142a",
+ "reference": "c26babddba3a6b12cb679d92e13fe324eda9142a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.1",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/arrays": "^3.1",
+ "yiisoft/data": "dev-master",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/html": "^3.0",
+ "yiisoft/injector": "^1.2",
+ "yiisoft/json": "^1.0",
+ "yiisoft/router": "^3.0",
+ "yiisoft/strings": "^2.0",
+ "yiisoft/translator": "^3.0",
+ "yiisoft/validator": "^2.0",
+ "yiisoft/view": "^10.0",
+ "yiisoft/widget": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.7",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.1.1",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/di": "^1.2",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/router-fastroute": "^3.0.1",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/translator-message-php": "^1.1"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "widgets-themes": "widgets-themes.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\DataView\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Data Widgets Package",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "data",
+ "grid",
+ "list",
+ "view",
+ "widget",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-dataview/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-dataview",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-11T07:56:12+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug.git",
+ "reference": "90bb1960841cf3b054433d7c54210fd203d3fe8f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug/zipball/90bb1960841cf3b054433d7c54210fd203d3fe8f",
+ "reference": "90bb1960841cf3b054433d7c54210fd203d3fe8f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "guzzlehttp/psr7": "^2.4",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.4",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/arrays": "^2.0|^3.0",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/profiler": "^3.0",
+ "yiisoft/proxy": "^1.0.1",
+ "yiisoft/strings": "^2.2",
+ "yiisoft/var-dumper": "^1.7"
+ },
+ "require-dev": {
+ "ext-curl": "*",
+ "ext-sockets": "*",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.3",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-http": "^1.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "bootstrap": "bootstrap.php",
+ "di": "di.php",
+ "di-console": "di-console.php",
+ "di-web": "di-web.php",
+ "di-providers": "di-providers.php",
+ "events-web": "events-web.php",
+ "events-console": "events-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\": "src",
+ "Yiisoft\\Yii\\Debug\\Tests\\Shared\\": "tests/Shared"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Debug Panel Extension",
+ "keywords": [
+ "debug",
+ "debugger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-17T07:39:11+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug-api",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug-api.git",
+ "reference": "8349f8d6f250e0f17bec8ab187390124e491c8c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug-api/zipball/8349f8d6f250e0f17bec8ab187390124e491c8c0",
+ "reference": "8349f8d6f250e0f17bec8ab187390124e491c8c0",
+ "shasum": ""
+ },
+ "require": {
+ "alexkart/curl-builder": "^1.0",
+ "gitonomy/gitlib": "^1.3",
+ "guzzlehttp/guzzle": "^7.5",
+ "guzzlehttp/psr7": "^2.4",
+ "httpsoft/http-message": "^1.1",
+ "php": "^8.1",
+ "psr/container": "^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/simple-cache": "^2.0|^3.0",
+ "symfony/process": "^5.4|^6.0",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^5.2",
+ "yiisoft/router": "^3.0",
+ "yiisoft/translator": "^3.0",
+ "yiisoft/var-dumper": "^1.4",
+ "yiisoft/yii-debug": "dev-master",
+ "yiisoft/yii-middleware": "^1.0",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "codeception/codeception": "^5.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.22",
+ "yiisoft/active-record": "dev-master",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/csrf": "^2.0",
+ "yiisoft/db": "1.2 as dev-master",
+ "yiisoft/db-sqlite": "^1.0",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/yii-cycle": "dev-master",
+ "yiisoft/yii-view": "^6.0"
+ },
+ "suggest": {
+ "yiisoft/assets": "Support custom debug panels",
+ "yiisoft/yii-view": "Support custom debug panels"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "bootstrap-web": "bootstrap-web.php",
+ "params": "params.php",
+ "di-web": "di-web.php",
+ "routes": "routes.php",
+ "di-providers-web": "di-providers-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\Api\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Debug API",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "api",
+ "debug",
+ "yii",
+ "yii-debug-api",
+ "yiisoft"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug-api/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug-api",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-15T14:39:54+00:00"
+ },
+ {
+ "name": "yiisoft/yii-event",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-event.git",
+ "reference": "2e02986a09235d20b3c02382f8cc5d7ad2e452fb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-event/zipball/2e02986a09235d20b3c02382f8cc5d7ad2e452fb",
+ "reference": "2e02986a09235d20b3c02382f8cc5d7ad2e452fb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/injector": "^1.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.18.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/config": "^1.3",
+ "yiisoft/di": "^1.2",
+ "yiisoft/test-support": "^1.3"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config",
+ "merge-plan-file": "../tests/environment/.merge-plan.php"
+ },
+ "config-plugin": {
+ "params-web": "params-web.php",
+ "params-console": "params-console.php",
+ "di": "di.php",
+ "di-web": "di-web.php",
+ "di-console": "di-console.php",
+ "events-web": [],
+ "events-console": []
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Event\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Event",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "event",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-event/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-event",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-04T15:57:42+00:00"
+ },
+ {
+ "name": "yiisoft/yii-http",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-http.git",
+ "reference": "2555514a091ec9339259f10abc7e8970ef9e5db6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-http/zipball/2555514a091ec9339259f10abc7e8970ef9e5db6",
+ "reference": "2555514a091ec9339259f10abc7e8970ef9e5db6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/middleware-dispatcher": "^3.0|^4.0|^5.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.4",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii HTTP Application",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "application",
+ "http",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-http/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-07T07:54:13+00:00"
+ },
+ {
+ "name": "yiisoft/yii-middleware",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-middleware.git",
+ "reference": "b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-middleware/zipball/b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a",
+ "reference": "b2a8157ae2c94847a2b2f2e3b63dc23366b5e42a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^3.0",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/cookies": "^1.2",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/http": "^1.2",
+ "yiisoft/network-utilities": "^1.2",
+ "yiisoft/router": "^3.0",
+ "yiisoft/session": "^2.0",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/validator": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "ext-uopz": "*",
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "slope-it/clock-mock": "^0.3.6",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/event-dispatcher": "For using events",
+ "yiisoft/translator": "For updating translator's locale"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Middleware\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Middleware",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "framework",
+ "middleware",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-middleware/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-middleware",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-03T19:34:10+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner.git",
+ "reference": "69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner/zipball/69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896",
+ "reference": "69d8392ecc0c9e47ac7d5a56c1a8596d5c1ac896",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/yii-event": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.20",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.21",
+ "yiisoft/test-support": "^3.0"
+ },
+ "suggest": {
+ "yiisoft/yii-runner-console": "Allows to run console application",
+ "yiisoft/yii-runner-http": "Allows to run HTTP application",
+ "yiisoft/yii-runner-roadrunner": "Allows to run HTTP application for RoadRunner"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "runner",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-09T14:10:08+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner-console",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner-console.git",
+ "reference": "e92f4e72778508e7c2918f8fc8c3e75b758eb61a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner-console/zipball/e92f4e72778508e7c2918f8fc8c3e75b758eb61a",
+ "reference": "e92f4e72778508e7c2918f8fc8c3e75b758eb61a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-runner": "^2.2"
+ },
+ "require-dev": {
+ "codeception/codeception": "^5.0",
+ "codeception/module-cli": "^2.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "rector/rector": "^1.0.0",
+ "vimeo/psalm": "^4.30|^5.2"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\Console\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Console application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "console",
+ "runner",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner-console/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner-console",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-10T10:06:34+00:00"
+ },
+ {
+ "name": "yiisoft/yii-runner-http",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-runner-http.git",
+ "reference": "798c37abbcceb6b0053744b4bde0c476cd53e15e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-runner-http/zipball/798c37abbcceb6b0053744b4bde0c476cd53e15e",
+ "reference": "798c37abbcceb6b0053744b4bde0c476cd53e15e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0|^2.0 ",
+ "yiisoft/config": "^1.1",
+ "yiisoft/definitions": "^1.0|^2.0|^3.0",
+ "yiisoft/di": "^1.0",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner": "^2.2"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0.0",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.2",
+ "xepozz/internal-mocker": "^1.4",
+ "yiisoft/middleware-dispatcher": "^5.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Runner\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "HTTP application runner",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "http",
+ "runner",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/yii-runner-http/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-runner-http",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-03-10T10:08:37+00:00"
+ },
+ {
+ "name": "yiisoft/yii-sentry",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-sentry.git",
+ "reference": "d030e6c3017fe9b73b0f07b0429d4ac8b114b070"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-sentry/zipball/d030e6c3017fe9b73b0f07b0429d4ac8b114b070",
+ "reference": "d030e6c3017fe9b73b0f07b0429d4ac8b114b070",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "sentry/sdk": "^3.2",
+ "sentry/sentry": "^3.11",
+ "symfony/console": "^5.4|^6.0",
+ "yiisoft/di": "^1.0"
+ },
+ "require-dev": {
+ "guzzlehttp/guzzle": "^7.3",
+ "httpsoft/http-message": "^1.0.9",
+ "maglnet/composer-require-checker": "^4.2",
+ "php-http/guzzle7-adapter": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.14.3",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/error-handler": "^2.1",
+ "yiisoft/yii-console": "^1.0",
+ "yiisoft/yii-event": "^1.0"
+ },
+ "suggest": {
+ "yiisoft/yii-console": "Add error catching to console application",
+ "yiisoft/yii-event": "Add error catching to console application"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "bootstrap": "bootstrap.php",
+ "di": "di.php",
+ "events-console": "events-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Sentry\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "A Sentry integration for Yii Framework",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "sentry",
+ "sentry-sdk",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-sentry/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-sentry",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-15T17:44:28+00:00"
+ },
+ {
+ "name": "yiisoft/yii-swagger",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-swagger.git",
+ "reference": "c0fe0483b04719a6724fb13650f679614e1b0cef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-swagger/zipball/c0fe0483b04719a6724fb13650f679614e1b0cef",
+ "reference": "c0fe0483b04719a6724fb13650f679614e1b0cef",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/http-message": "^1.0|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "swagger-api/swagger-ui": "^4.1|^5.0",
+ "yiisoft/aliases": "^1.1|^2.0|^3.0",
+ "yiisoft/arrays": "^3.0",
+ "yiisoft/assets": "^2.0|^3.0|^4.0",
+ "yiisoft/cache": "^1.0|^2.0|^3.0",
+ "yiisoft/data-response": "^1.0|^2.0",
+ "yiisoft/html": "^3.0",
+ "yiisoft/yii-view-renderer": "^7.1.0",
+ "zircote/swagger-php": "^4.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.4",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/csrf": "^2.0",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Swagger\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "OpenAPI Swagger for Yii Framework",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "api",
+ "swagger",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-swagger/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-swagger",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-04T21:55:48+00:00"
+ },
+ {
+ "name": "yiisoft/yii-view-renderer",
+ "version": "7.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-view-renderer.git",
+ "reference": "cb11468f554d251c2deb87bf228a302c794134a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-view-renderer/zipball/cb11468f554d251c2deb87bf228a302c794134a3",
+ "reference": "cb11468f554d251c2deb87bf228a302c794134a3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "psr/container": "^1.0|^2.0",
+ "yiisoft/aliases": "^2.0|^3.0",
+ "yiisoft/csrf": "^1.2|^2.0",
+ "yiisoft/data-response": "^1.0|^2.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/html": "^2.5|^3.0",
+ "yiisoft/strings": "^2.0",
+ "yiisoft/view": "^10.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0",
+ "maglnet/composer-require-checker": "^4.3",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "1.0.*",
+ "roave/infection-static-analysis-plugin": "^1.25",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.25",
+ "yiisoft/di": "^1.2",
+ "yiisoft/psr-dummy-provider": "^1.0",
+ "yiisoft/test-support": "^3.0",
+ "yiisoft/yii-debug": "dev-master|dev-php80"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-web": "di-web.php",
+ "events-web": "events-web.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\View\\Renderer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "PSR-7 compatible view renderer",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "renderer",
+ "view",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-view-renderer/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-view-renderer",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-07-01T11:56:55+00:00"
+ },
+ {
+ "name": "zircote/swagger-php",
+ "version": "4.10.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zircote/swagger-php.git",
+ "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zircote/swagger-php/zipball/e462ff5269ea0ec91070edd5d51dc7215bdea3b6",
+ "reference": "e462ff5269ea0ec91070edd5d51dc7215bdea3b6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=7.2",
+ "psr/log": "^1.1 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^2 || ^3",
+ "symfony/finder": ">=2.2",
+ "symfony/yaml": ">=3.3"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.11",
+ "doctrine/annotations": "^1.7 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.17 || ^3.47.1",
+ "phpstan/phpstan": "^1.6",
+ "phpunit/phpunit": ">=8",
+ "vimeo/psalm": "^4.23"
+ },
+ "suggest": {
+ "doctrine/annotations": "^1.7 || ^2.0"
+ },
+ "bin": [
+ "bin/openapi"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OpenApi\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Robert Allen",
+ "email": "zircote@gmail.com"
+ },
+ {
+ "name": "Bob Fanger",
+ "email": "bfanger@gmail.com",
+ "homepage": "https://bfanger.nl"
+ },
+ {
+ "name": "Martin Rademacher",
+ "email": "mano@radebatz.net",
+ "homepage": "https://radebatz.net"
+ }
+ ],
+ "description": "swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations",
+ "homepage": "https://github.com/zircote/swagger-php/",
+ "keywords": [
+ "api",
+ "json",
+ "rest",
+ "service discovery"
+ ],
+ "support": {
+ "issues": "https://github.com/zircote/swagger-php/issues",
+ "source": "https://github.com/zircote/swagger-php/tree/4.10.6"
+ },
+ "time": "2024-07-26T03:04:43+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "amphp/amp",
+ "version": "v2.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/amp.git",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1",
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^7 | ^8 | ^9",
+ "react/promise": "^2",
+ "vimeo/psalm": "^3.12"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/functions.php",
+ "lib/Internal/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Daniel Lowrey",
+ "email": "rdlowrey@php.net"
+ },
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Bob Weinand",
+ "email": "bobwei9@hotmail.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A non-blocking concurrency framework for PHP applications.",
+ "homepage": "https://amphp.org/amp",
+ "keywords": [
+ "async",
+ "asynchronous",
+ "awaitable",
+ "concurrency",
+ "event",
+ "event-loop",
+ "future",
+ "non-blocking",
+ "promise"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/amphp",
+ "issues": "https://github.com/amphp/amp/issues",
+ "source": "https://github.com/amphp/amp/tree/v2.6.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-21T18:52:26+00:00"
+ },
+ {
+ "name": "amphp/byte-stream",
+ "version": "v1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/amphp/byte-stream.git",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "amphp/php-cs-fixer-config": "dev-master",
+ "amphp/phpunit-util": "^1.4",
+ "friendsofphp/php-cs-fixer": "^2.3",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^6 || ^7 || ^8",
+ "psalm/phar": "^3.11.4"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/functions.php"
+ ],
+ "psr-4": {
+ "Amp\\ByteStream\\": "lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "A stream abstraction to make working with non-blocking I/O simple.",
+ "homepage": "https://amphp.org/byte-stream",
+ "keywords": [
+ "amp",
+ "amphp",
+ "async",
+ "io",
+ "non-blocking",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/amphp/byte-stream/issues",
+ "source": "https://github.com/amphp/byte-stream/tree/v1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/amphp",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-13T18:00:56+00:00"
+ },
+ {
+ "name": "behat/gherkin",
+ "version": "v4.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Behat/Gherkin.git",
+ "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4",
+ "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~7.2|~8.0"
+ },
+ "require-dev": {
+ "cucumber/cucumber": "dev-gherkin-22.0.0",
+ "phpunit/phpunit": "~8|~9",
+ "symfony/yaml": "~3|~4|~5"
+ },
+ "suggest": {
+ "symfony/yaml": "If you want to parse features, represented in YAML files"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Behat\\Gherkin": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ }
+ ],
+ "description": "Gherkin DSL parser for PHP",
+ "homepage": "http://behat.org/",
+ "keywords": [
+ "BDD",
+ "Behat",
+ "Cucumber",
+ "DSL",
+ "gherkin",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/Behat/Gherkin/issues",
+ "source": "https://github.com/Behat/Gherkin/tree/v4.9.0"
+ },
+ "time": "2021-10-12T13:05:09+00:00"
+ },
+ {
+ "name": "clue/stdio-react",
+ "version": "v2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-stdio.git",
+ "reference": "dfa6c378aabdff718202d4e2453f752c38ea3399"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-stdio/zipball/dfa6c378aabdff718202d4e2453f752c38ea3399",
+ "reference": "dfa6c378aabdff718202d4e2453f752c38ea3399",
+ "shasum": ""
+ },
+ "require": {
+ "clue/term-react": "^1.0 || ^0.1.1",
+ "clue/utf8-react": "^1.0 || ^0.1",
+ "php": ">=5.3",
+ "react/event-loop": "^1.2",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "clue/arguments": "^2.0",
+ "clue/commander": "^1.2",
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
+ },
+ "suggest": {
+ "ext-mbstring": "Using ext-mbstring should provide slightly better performance for handling I/O"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Stdio\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Async, event-driven console input & output (STDIN, STDOUT) for truly interactive CLI applications, built on top of ReactPHP",
+ "homepage": "https://github.com/clue/reactphp-stdio",
+ "keywords": [
+ "async",
+ "autocomplete",
+ "autocompletion",
+ "cli",
+ "history",
+ "interactive",
+ "reactphp",
+ "readline",
+ "stdin",
+ "stdio",
+ "stdout"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-stdio/issues",
+ "source": "https://github.com/clue/reactphp-stdio/tree/v2.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-03-18T15:09:30+00:00"
+ },
+ {
+ "name": "clue/term-react",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-term.git",
+ "reference": "00f297dc597eaee2ebf98af8f27cca5d21d60fa3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-term/zipball/00f297dc597eaee2ebf98af8f27cca5d21d60fa3",
+ "reference": "00f297dc597eaee2ebf98af8f27cca5d21d60fa3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/event-loop": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Term\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming terminal emulator, built on top of ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-term",
+ "keywords": [
+ "C0",
+ "CSI",
+ "ansi",
+ "apc",
+ "ascii",
+ "c1",
+ "control codes",
+ "dps",
+ "osc",
+ "pm",
+ "reactphp",
+ "streaming",
+ "terminal",
+ "vt100",
+ "xterm"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-term/issues",
+ "source": "https://github.com/clue/reactphp-term/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-30T10:22:09+00:00"
+ },
+ {
+ "name": "clue/utf8-react",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/reactphp-utf8.git",
+ "reference": "d5cd04d39cb5457aa5df830b7c4b301d2694217e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/reactphp-utf8/zipball/d5cd04d39cb5457aa5df830b7c4b301d2694217e",
+ "reference": "d5cd04d39cb5457aa5df830b7c4b301d2694217e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4 || ^0.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
+ "react/stream": "^1.0 || ^0.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Clue\\React\\Utf8\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "Streaming UTF-8 parser, built on top of ReactPHP.",
+ "homepage": "https://github.com/clue/reactphp-utf8",
+ "keywords": [
+ "reactphp",
+ "streaming",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/reactphp-utf8/issues",
+ "source": "https://github.com/clue/reactphp-utf8/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-06T14:52:17+00:00"
+ },
+ {
+ "name": "codeception/c3",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/c3.git",
+ "reference": "e23298a1cd5e7745973ea26a53572a3d9b013439"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/c3/zipball/e23298a1cd5e7745973ea26a53572a3d9b013439",
+ "reference": "e23298a1cd5e7745973ea26a53572a3d9b013439",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.5.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0 || ^2.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Codeception\\c3\\Installer"
+ },
+ "autoload": {
+ "psr-4": {
+ "Codeception\\c3\\": "."
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tiger Seo",
+ "email": "tiger.seo@gmail.com"
+ },
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert.php@codegyre.com",
+ "homepage": "http://codegyre.com"
+ }
+ ],
+ "description": "CodeCoverage collector for Codeception",
+ "homepage": "http://codeception.com/",
+ "keywords": [
+ "code coverage",
+ "codecoverage"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/c3/issues",
+ "source": "https://github.com/Codeception/c3/tree/2.9.0"
+ },
+ "time": "2023-10-15T17:57:07+00:00"
+ },
+ {
+ "name": "codeception/codeception",
+ "version": "5.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/Codeception.git",
+ "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/Codeception/zipball/3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374",
+ "reference": "3b2d7d1a88e7e1d9dc0acb6d3c8f0acda0a37374",
+ "shasum": ""
+ },
+ "require": {
+ "behat/gherkin": "^4.6.2",
+ "codeception/lib-asserts": "^2.0",
+ "codeception/stub": "^4.1",
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "phpunit/php-code-coverage": "^9.2 || ^10.0 || ^11.0",
+ "phpunit/php-text-template": "^2.0 || ^3.0 || ^4.0",
+ "phpunit/php-timer": "^5.0.3 || ^6.0 || ^7.0",
+ "phpunit/phpunit": "^9.5.20 || ^10.0 || ^11.0",
+ "psy/psysh": "^0.11.2 || ^0.12",
+ "sebastian/comparator": "^4.0.5 || ^5.0 || ^6.0",
+ "sebastian/diff": "^4.0.3 || ^5.0 || ^6.0",
+ "symfony/console": ">=4.4.24 <8.0",
+ "symfony/css-selector": ">=4.4.24 <8.0",
+ "symfony/event-dispatcher": ">=4.4.24 <8.0",
+ "symfony/finder": ">=4.4.24 <8.0",
+ "symfony/var-dumper": ">=4.4.24 <8.0",
+ "symfony/yaml": ">=4.4.24 <8.0"
+ },
+ "conflict": {
+ "codeception/lib-innerbrowser": "<3.1.3",
+ "codeception/module-filesystem": "<3.0",
+ "codeception/module-phpbrowser": "<2.5"
+ },
+ "replace": {
+ "codeception/phpunit-wrapper": "*"
+ },
+ "require-dev": {
+ "codeception/lib-innerbrowser": "*@dev",
+ "codeception/lib-web": "^1.0",
+ "codeception/module-asserts": "*@dev",
+ "codeception/module-cli": "*@dev",
+ "codeception/module-db": "*@dev",
+ "codeception/module-filesystem": "*@dev",
+ "codeception/module-phpbrowser": "*@dev",
+ "codeception/util-universalframework": "*@dev",
+ "ext-simplexml": "*",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "symfony/dotenv": ">=4.4.24 <8.0",
+ "symfony/process": ">=4.4.24 <8.0",
+ "vlucas/phpdotenv": "^5.1"
+ },
+ "suggest": {
+ "codeception/specify": "BDD-style code blocks",
+ "codeception/verify": "BDD-style assertions",
+ "ext-simplexml": "For loading params from XML files",
+ "stecman/symfony-console-completion": "For BASH autocompletion",
+ "symfony/dotenv": "For loading params from .env files",
+ "symfony/phpunit-bridge": "For phpunit-bridge support",
+ "vlucas/phpdotenv": "For loading params from .env files"
+ },
+ "bin": [
+ "codecept"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "psr-4": {
+ "Codeception\\": "src/Codeception",
+ "Codeception\\Extension\\": "ext"
+ },
+ "classmap": [
+ "src/PHPUnit/TestCase.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert.ua@gmail.com",
+ "homepage": "https://codeception.com"
+ }
+ ],
+ "description": "BDD-style testing framework",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "acceptance testing",
+ "functional testing",
+ "unit testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/Codeception/issues",
+ "source": "https://github.com/Codeception/Codeception/tree/5.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/codeception",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-03-07T07:19:42+00:00"
+ },
+ {
+ "name": "codeception/lib-asserts",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-asserts.git",
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/b8c7dff552249e560879c682ba44a4b963af91bc",
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/phpunit-wrapper": "^7.7.1 | ^8.0.3 | ^9.0",
+ "ext-dom": "*",
+ "php": "^7.4 | ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert@mail.ua",
+ "homepage": "http://codegyre.com"
+ },
+ {
+ "name": "Gintautas Miselis"
+ },
+ {
+ "name": "Gustavo Nieves",
+ "homepage": "https://medium.com/@ganieves"
+ }
+ ],
+ "description": "Assertion methods used by Codeception core and Asserts module",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-asserts/issues",
+ "source": "https://github.com/Codeception/lib-asserts/tree/2.1.0"
+ },
+ "time": "2023-02-10T18:36:23+00:00"
+ },
+ {
+ "name": "codeception/lib-innerbrowser",
+ "version": "3.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-innerbrowser.git",
+ "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
+ "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "^5.0",
+ "codeception/lib-web": "^1.0.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0",
+ "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "codeception/util-universalframework": "dev-master"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk",
+ "email": "davert@mail.ua",
+ "homepage": "https://codegyre.com"
+ },
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Parent library for all Codeception framework modules and PhpBrowser",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-innerbrowser/issues",
+ "source": "https://github.com/Codeception/lib-innerbrowser/tree/3.1.3"
+ },
+ "time": "2022-10-03T15:33:34+00:00"
+ },
+ {
+ "name": "codeception/lib-web",
+ "version": "1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/lib-web.git",
+ "reference": "01ff7f9ed8760ba0b0805a0b3a843b4e74165a60"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/lib-web/zipball/01ff7f9ed8760ba0b0805a0b3a843b4e74165a60",
+ "reference": "01ff7f9ed8760ba0b0805a0b3a843b4e74165a60",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "guzzlehttp/psr7": "^2.0",
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5 | ^10.0 | ^11.0",
+ "symfony/css-selector": ">=4.4.24 <8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0.0-alpha3"
+ },
+ "require-dev": {
+ "php-webdriver/webdriver": "^1.12"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/lib-web/issues",
+ "source": "https://github.com/Codeception/lib-web/tree/1.0.6"
+ },
+ "time": "2024-02-06T20:50:08+00:00"
+ },
+ {
+ "name": "codeception/module-asserts",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-asserts.git",
+ "reference": "1b6b150b30586c3614e7e5761b31834ed7968603"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/1b6b150b30586c3614e7e5761b31834ed7968603",
+ "reference": "1b6b150b30586c3614e7e5761b31834ed7968603",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/lib-asserts": "^2.0",
+ "php": "^8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ },
+ {
+ "name": "Gintautas Miselis"
+ },
+ {
+ "name": "Gustavo Nieves",
+ "homepage": "https://medium.com/@ganieves"
+ }
+ ],
+ "description": "Codeception module containing various assertions",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "assertions",
+ "asserts",
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-asserts/issues",
+ "source": "https://github.com/Codeception/module-asserts/tree/3.0.0"
+ },
+ "time": "2022-02-16T19:48:08+00:00"
+ },
+ {
+ "name": "codeception/module-cli",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-cli.git",
+ "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63",
+ "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/module-asserts": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ }
+ ],
+ "description": "Codeception module for testing basic shell commands and shell output",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-cli/issues",
+ "source": "https://github.com/Codeception/module-cli/tree/2.0.1"
+ },
+ "time": "2023-01-13T18:41:03+00:00"
+ },
+ {
+ "name": "codeception/module-phpbrowser",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/module-phpbrowser.git",
+ "reference": "a972411f60cd00d00d5e5e3b35496ba4a23bcffc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/a972411f60cd00d00d5e5e3b35496ba4a23bcffc",
+ "reference": "a972411f60cd00d00d5e5e3b35496ba4a23bcffc",
+ "shasum": ""
+ },
+ "require": {
+ "codeception/codeception": "*@dev",
+ "codeception/lib-innerbrowser": "*@dev",
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^7.4",
+ "php": "^8.0",
+ "symfony/browser-kit": "^5.4 || ^6.0 || ^7.0"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0",
+ "codeception/lib-innerbrowser": "<3.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.199",
+ "codeception/module-rest": "^2.0 || *@dev",
+ "ext-curl": "*"
+ },
+ "suggest": {
+ "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Bodnarchuk"
+ },
+ {
+ "name": "Gintautas Miselis"
+ }
+ ],
+ "description": "Codeception module for testing web application over HTTP",
+ "homepage": "https://codeception.com/",
+ "keywords": [
+ "codeception",
+ "functional-testing",
+ "http"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeception/module-phpbrowser/issues",
+ "source": "https://github.com/Codeception/module-phpbrowser/tree/3.0.1"
+ },
+ "time": "2023-12-08T19:41:28+00:00"
+ },
+ {
+ "name": "codeception/stub",
+ "version": "4.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeception/Stub.git",
+ "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeception/Stub/zipball/4fcad2c165f365377486dc3fd8703b07f1f2fcae",
+ "reference": "4fcad2c165f365377486dc3fd8703b07f1f2fcae",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 | ^8.0",
+ "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | ^11"
+ },
+ "conflict": {
+ "codeception/codeception": "<5.0.6"
+ },
+ "require-dev": {
+ "consolidation/robo": "^3.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Codeception\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
+ "support": {
+ "issues": "https://github.com/Codeception/Stub/issues",
+ "source": "https://github.com/Codeception/Stub/tree/4.1.3"
+ },
+ "time": "2024-02-02T19:21:00+00:00"
+ },
+ {
+ "name": "colinodell/json5",
+ "version": "v2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/colinodell/json5.git",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/colinodell/json5/zipball/15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "reference": "15b063f8cb5e6deb15f0cd39123264ec0d19c710",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^7.1.3|^8.0"
+ },
+ "conflict": {
+ "scrutinizer/ocular": "1.7.*"
+ },
+ "require-dev": {
+ "mikehaertl/php-shellcommand": "^1.2.5",
+ "phpstan/phpstan": "^1.4",
+ "scrutinizer/ocular": "^1.6",
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0",
+ "symfony/finder": "^4.4|^5.4|^6.0",
+ "symfony/phpunit-bridge": "^5.4|^6.0"
+ },
+ "bin": [
+ "bin/json5"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/global.php"
+ ],
+ "psr-4": {
+ "ColinODell\\Json5\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "UTF-8 compatible JSON5 parser for PHP",
+ "homepage": "https://github.com/colinodell/json5",
+ "keywords": [
+ "JSON5",
+ "json",
+ "json5_decode",
+ "json_decode"
+ ],
+ "support": {
+ "issues": "https://github.com/colinodell/json5/issues",
+ "source": "https://github.com/colinodell/json5/tree/v2.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/colinodell",
+ "type": "patreon"
+ }
+ ],
+ "time": "2022-12-27T16:44:40+00:00"
+ },
+ {
+ "name": "composer/package-versions-deprecated",
+ "version": "1.11.99.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/package-versions-deprecated.git",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1.0 || ^2.0",
+ "php": "^7 || ^8"
+ },
+ "replace": {
+ "ocramius/package-versions": "1.11.99"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9.3 || ^2.0@dev",
+ "ext-zip": "^1.13",
+ "phpunit/phpunit": "^6.5 || ^7"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PackageVersions\\Installer",
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PackageVersions\\": "src/PackageVersions"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
+ "support": {
+ "issues": "https://github.com/composer/package-versions-deprecated/issues",
+ "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-17T14:14:24+00:00"
+ },
+ {
+ "name": "composer/pcre",
+ "version": "3.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+ "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11.10",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-27T18:44:43+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T14:15:21+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-06T16:37:16+00:00"
+ },
+ {
+ "name": "dnoegel/php-xdg-base-dir",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dnoegel/php-xdg-base-dir.git",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "XdgBaseDir\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "implementation of xdg base directory specification for php",
+ "support": {
+ "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues",
+ "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1"
+ },
+ "time": "2019-12-04T15:06:13+00:00"
+ },
+ {
+ "name": "evenement/evenement",
+ "version": "v3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9 || ^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Evenement\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ }
+ ],
+ "description": "Événement is a very simple event dispatching library for PHP",
+ "keywords": [
+ "event-dispatcher",
+ "event-emitter"
+ ],
+ "support": {
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/v3.0.2"
+ },
+ "time": "2023-08-08T05:53:35+00:00"
+ },
+ {
+ "name": "felixfbecker/advanced-json-rpc",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "shasum": ""
+ },
+ "require": {
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "php": "^7.1 || ^8.0",
+ "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "AdvancedJsonRpc\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "A more advanced JSONRPC implementation",
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
+ "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
+ },
+ "time": "2021-06-11T22:34:44+00:00"
+ },
+ {
+ "name": "felixfbecker/language-server-protocol",
+ "version": "v1.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-language-server-protocol.git",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "*",
+ "squizlabs/php_codesniffer": "^3.1",
+ "vimeo/psalm": "^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "LanguageServerProtocol\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "PHP classes for the Language Server Protocol",
+ "keywords": [
+ "language",
+ "microsoft",
+ "php",
+ "server"
+ ],
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
+ "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
+ },
+ "time": "2022-03-02T22:36:06+00:00"
+ },
+ {
+ "name": "fidry/cpu-core-counter",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theofidry/cpu-core-counter.git",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
+ "reference": "8520451a140d3f46ac33042715115e290cf5785f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "fidry/makefile": "^0.2.0",
+ "fidry/php-cs-fixer-config": "^1.1.2",
+ "phpstan/extension-installer": "^1.2.0",
+ "phpstan/phpstan": "^1.9.2",
+ "phpstan/phpstan-deprecation-rules": "^1.0.0",
+ "phpstan/phpstan-phpunit": "^1.2.2",
+ "phpstan/phpstan-strict-rules": "^1.4.4",
+ "phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "webmozarts/strict-phpunit": "^7.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Fidry\\CpuCoreCounter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com"
+ }
+ ],
+ "description": "Tiny utility to get the number of CPU cores.",
+ "keywords": [
+ "CPU",
+ "core"
+ ],
+ "support": {
+ "issues": "https://github.com/theofidry/cpu-core-counter/issues",
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theofidry",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-06T10:04:20+00:00"
+ },
+ {
+ "name": "httpsoft/http-basis",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-basis.git",
+ "reference": "63c4306c516375e3fa08358a58194e159bfbb984"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-basis/zipball/63c4306c516375e3fa08358a58194e159bfbb984",
+ "reference": "63c4306c516375e3fa08358a58194e159bfbb984",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "httpsoft/http-cookie": "^1.1",
+ "httpsoft/http-emitter": "^1.1",
+ "httpsoft/http-error-handler": "^1.1",
+ "httpsoft/http-message": "^1.1",
+ "httpsoft/http-response": "^1.1",
+ "httpsoft/http-router": "^1.1",
+ "httpsoft/http-runner": "^1.1",
+ "httpsoft/http-server-request": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.1|^2.0|^3.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "devanych/di-container": "^2.1",
+ "devanych/view-renderer": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Basis\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Simple and fast HTTP microframework implementing PSR standards",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "PSR-11",
+ "http",
+ "http-framework",
+ "microframework",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/basis",
+ "issues": "https://github.com/httpsoft/http-basis/issues",
+ "source": "https://github.com/httpsoft/http-basis"
+ },
+ "time": "2023-05-05T22:15:06+00:00"
+ },
+ {
+ "name": "httpsoft/http-cookie",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-cookie.git",
+ "reference": "c304b7d9888ed27bf2bcdb95762d87263a457644"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-cookie/zipball/c304b7d9888ed27bf2bcdb95762d87263a457644",
+ "reference": "c304b7d9888ed27bf2bcdb95762d87263a457644",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Cookie\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Managing cookies with PSR-7 support",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "cookie",
+ "cookies",
+ "http",
+ "http-cookie",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/cookie",
+ "issues": "https://github.com/httpsoft/http-cookie/issues",
+ "source": "https://github.com/httpsoft/http-cookie"
+ },
+ "time": "2023-05-05T20:37:18+00:00"
+ },
+ {
+ "name": "httpsoft/http-emitter",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-emitter.git",
+ "reference": "b09e2834b6d40e022f0c0eb7417f97f496e376b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-emitter/zipball/b09e2834b6d40e022f0c0eb7417f97f496e376b6",
+ "reference": "b09e2834b6d40e022f0c0eb7417f97f496e376b6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "psr/http-message": "^1.1|^2.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Emitter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Emitting of PSR-7 Response implementation",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "emitter",
+ "http",
+ "http-emitter",
+ "http-message",
+ "php",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/emitter",
+ "issues": "https://github.com/httpsoft/http-emitter/issues",
+ "source": "https://github.com/httpsoft/http-emitter"
+ },
+ "time": "2023-05-05T20:18:44+00:00"
+ },
+ {
+ "name": "httpsoft/http-error-handler",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-error-handler.git",
+ "reference": "f5bfb10cdf6de7420e59d8342ba12f19749e7bc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-error-handler/zipball/f5bfb10cdf6de7420e59d8342ba12f19749e7bc1",
+ "reference": "f5bfb10cdf6de7420e59d8342ba12f19749e7bc1",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-response": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-server-request": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\ErrorHandler\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Error handling PSR-7 and PSR-15 components",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "error-handler",
+ "error-middleware",
+ "http",
+ "http-error",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/error-handler",
+ "issues": "https://github.com/httpsoft/http-error-handler/issues",
+ "source": "https://github.com/httpsoft/http-error-handler"
+ },
+ "time": "2023-05-05T21:14:04+00:00"
+ },
+ {
+ "name": "httpsoft/http-response",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-response.git",
+ "reference": "6e9d25a540506ba8a5165817fdd856a856e32c02"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-response/zipball/6e9d25a540506ba8a5165817fdd856a856e32c02",
+ "reference": "6e9d25a540506ba8a5165817fdd856a856e32c02",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-message": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Response\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "PSR-7 Response implementations",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "http-response",
+ "php",
+ "psr-7",
+ "responses"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/response",
+ "issues": "https://github.com/httpsoft/http-response/issues",
+ "source": "https://github.com/httpsoft/http-response"
+ },
+ "time": "2023-05-05T20:55:06+00:00"
+ },
+ {
+ "name": "httpsoft/http-router",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-router.git",
+ "reference": "460ee40b15ceb61d86a7c511d321c4580960601e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-router/zipball/460ee40b15ceb61d86a7c511d321c4580960601e",
+ "reference": "460ee40b15ceb61d86a7c511d321c4580960601e",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-runner": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Router\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Simple and fast HTTP request router providing PSR-7 and PSR-15",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-router",
+ "php",
+ "psr-15",
+ "psr-7",
+ "route",
+ "router"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/router",
+ "issues": "https://github.com/httpsoft/http-router/issues",
+ "source": "https://github.com/httpsoft/http-router"
+ },
+ "time": "2023-05-05T22:02:47+00:00"
+ },
+ {
+ "name": "httpsoft/http-runner",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-runner.git",
+ "reference": "00ddc625dbf8f0acb786e899575537c7e8327847"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-runner/zipball/00ddc625dbf8f0acb786e899575537c7e8327847",
+ "reference": "00ddc625dbf8f0acb786e899575537c7e8327847",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-emitter": "^1.1",
+ "php": "^7.4|^8.0",
+ "psr/container": "^1.0|^2.0",
+ "psr/http-message": "^1.1|^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0",
+ "psr/http-server-handler-implementation": "1.0",
+ "psr/http-server-middleware-implementation": "1.0"
+ },
+ "require-dev": {
+ "devanych/di-container": "^2.1",
+ "httpsoft/http-message": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\Runner\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Running PSR-7 components and building PSR-15 middleware pipelines",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-middleware",
+ "middleware-pipeline",
+ "php",
+ "psr-15",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/runner",
+ "issues": "https://github.com/httpsoft/http-runner/issues",
+ "source": "https://github.com/httpsoft/http-runner"
+ },
+ "time": "2023-05-05T21:47:55+00:00"
+ },
+ {
+ "name": "httpsoft/http-server-request",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/httpsoft/http-server-request.git",
+ "reference": "3d773c8bcaa1c44793d35842fcd82a9d5fd5f193"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/httpsoft/http-server-request/zipball/3d773c8bcaa1c44793d35842fcd82a9d5fd5f193",
+ "reference": "3d773c8bcaa1c44793d35842fcd82a9d5fd5f193",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-message": "^1.1",
+ "php": "^7.4|^8.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "^4.9|^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "HttpSoft\\ServerRequest\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Evgeniy Zyubin",
+ "email": "mail@devanych.ru",
+ "homepage": "https://devanych.ru/",
+ "role": "Founder and lead developer"
+ }
+ ],
+ "description": "Infrastructure for creating PSR-7 ServerRequest and UploadedFile",
+ "homepage": "https://httpsoft.org/",
+ "keywords": [
+ "http",
+ "http-message",
+ "http-server-request",
+ "php",
+ "psr-7"
+ ],
+ "support": {
+ "docs": "https://httpsoft.org/docs/server-request",
+ "issues": "https://github.com/httpsoft/http-server-request/issues",
+ "source": "https://github.com/httpsoft/http-server-request"
+ },
+ "time": "2023-05-05T19:55:05+00:00"
+ },
+ {
+ "name": "infection/abstract-testframework-adapter",
+ "version": "0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/abstract-testframework-adapter.git",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\AbstractTestFramework\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Abstract Test Framework Adapter for Infection",
+ "support": {
+ "issues": "https://github.com/infection/abstract-testframework-adapter/issues",
+ "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-17T18:49:12+00:00"
+ },
+ {
+ "name": "infection/extension-installer",
+ "version": "0.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/extension-installer.git",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/extension-installer/zipball/9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "reference": "9b351d2910b9a23ab4815542e93d541e0ca0cdcf",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.9 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.18, <2.19",
+ "infection/infection": "^0.15.2",
+ "php-coveralls/php-coveralls": "^2.4",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.10",
+ "phpstan/phpstan-phpunit": "^0.12.6",
+ "phpstan/phpstan-strict-rules": "^0.12.2",
+ "phpstan/phpstan-webmozart-assert": "^0.12.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.8"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Infection\\ExtensionInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Infection\\ExtensionInstaller\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Infection Extension Installer",
+ "support": {
+ "issues": "https://github.com/infection/extension-installer/issues",
+ "source": "https://github.com/infection/extension-installer/tree/0.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-10-20T22:08:34+00:00"
+ },
+ {
+ "name": "infection/include-interceptor",
+ "version": "0.2.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/include-interceptor.git",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/include-interceptor/zipball/0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "reference": "0cc76d95a79d9832d74e74492b0a30139904bdf7",
+ "shasum": ""
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "infection/infection": "^0.15.0",
+ "phan/phan": "^2.4 || ^3",
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpstan/phpstan": "^0.12.8",
+ "phpunit/phpunit": "^8.5",
+ "vimeo/psalm": "^3.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\StreamWrapper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com"
+ }
+ ],
+ "description": "Stream Wrapper: Include Interceptor. Allows to replace included (autoloaded) file with another one.",
+ "support": {
+ "issues": "https://github.com/infection/include-interceptor/issues",
+ "source": "https://github.com/infection/include-interceptor/tree/0.2.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2021-08-09T10:03:57+00:00"
+ },
+ {
+ "name": "infection/infection",
+ "version": "0.27.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/infection/infection.git",
+ "reference": "873cd3335774a114bef9ca93388e623bf362d820"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/infection/infection/zipball/873cd3335774a114bef9ca93388e623bf362d820",
+ "reference": "873cd3335774a114bef9ca93388e623bf362d820",
+ "shasum": ""
+ },
+ "require": {
+ "colinodell/json5": "^2.2",
+ "composer-runtime-api": "^2.0",
+ "composer/xdebug-handler": "^2.0 || ^3.0",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "fidry/cpu-core-counter": "^0.4.0 || ^0.5.0 || ^1.0",
+ "infection/abstract-testframework-adapter": "^0.5.0",
+ "infection/extension-installer": "^0.1.0",
+ "infection/include-interceptor": "^0.2.5",
+ "justinrainbow/json-schema": "^5.2.10",
+ "nikic/php-parser": "^4.15.1",
+ "ondram/ci-detector": "^4.1.0",
+ "php": "^8.1",
+ "sanmai/later": "^0.1.1",
+ "sanmai/pipeline": "^5.1 || ^6",
+ "sebastian/diff": "^3.0.2 || ^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/safe": "^2.1.2",
+ "webmozart/assert": "^1.11"
+ },
+ "conflict": {
+ "antecedent/patchwork": "<2.1.25",
+ "dg/bypass-finals": "<1.4.1",
+ "phpunit/php-code-coverage": ">9,<9.1.4 || >9.2.17,<9.2.21"
+ },
+ "require-dev": {
+ "brianium/paratest": "^6.11",
+ "ext-simplexml": "*",
+ "fidry/makefile": "^0.2.0",
+ "helmich/phpunit-json-assert": "^3.0",
+ "phpspec/prophecy": "^1.15",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0.2",
+ "phpunit/phpunit": "^9.6",
+ "rector/rector": "^0.16.0",
+ "sidz/phpstan-rules": "^0.4.0",
+ "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "thecodingmachine/phpstan-safe-rule": "^1.2.0"
+ },
+ "bin": [
+ "bin/infection"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Infection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Maks Rafalko",
+ "email": "maks.rafalko@gmail.com",
+ "homepage": "https://twitter.com/maks_rafalko"
+ },
+ {
+ "name": "Oleg Zhulnev",
+ "homepage": "https://github.com/sidz"
+ },
+ {
+ "name": "Gert de Pagter",
+ "homepage": "https://github.com/BackEndTea"
+ },
+ {
+ "name": "Théo FIDRY",
+ "email": "theo.fidry@gmail.com",
+ "homepage": "https://twitter.com/tfidry"
+ },
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com",
+ "homepage": "https://www.alexeykopytko.com"
+ },
+ {
+ "name": "Andreas Möller",
+ "email": "am@localheinz.com",
+ "homepage": "https://localheinz.com"
+ }
+ ],
+ "description": "Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.",
+ "keywords": [
+ "coverage",
+ "mutant",
+ "mutation framework",
+ "mutation testing",
+ "testing",
+ "unit testing"
+ ],
+ "support": {
+ "issues": "https://github.com/infection/infection/issues",
+ "source": "https://github.com/infection/infection/tree/0.27.10"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/infection",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/infection",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-02-20T00:08:52+00:00"
+ },
+ {
+ "name": "jolicode/jolinotif",
+ "version": "v2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jolicode/JoliNotif.git",
+ "reference": "b34dac1826c8d33e9fd5c300546261e94f1ebdb8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jolicode/JoliNotif/zipball/b34dac1826c8d33e9fd5c300546261e94f1ebdb8",
+ "reference": "b34dac1826c8d33e9fd5c300546261e94f1ebdb8",
+ "shasum": ""
+ },
+ "require": {
+ "jolicode/php-os-helper": "^0.1.0",
+ "php": ">=8.1",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^3",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "ext-ffi": "Needed to send notifications via libnotify on Linux"
+ },
+ "bin": [
+ "jolinotif"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Joli\\JoliNotif\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Loïck Piera",
+ "email": "pyrech@gmail.com"
+ }
+ ],
+ "description": "Send desktop notifications on Windows, Linux, MacOS.",
+ "keywords": [
+ "MAC",
+ "growl",
+ "linux",
+ "notification",
+ "windows"
+ ],
+ "support": {
+ "issues": "https://github.com/jolicode/JoliNotif/issues",
+ "source": "https://github.com/jolicode/JoliNotif/tree/v2.7.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/jolicode/jolinotif",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-01T06:05:49+00:00"
+ },
+ {
+ "name": "jolicode/php-os-helper",
+ "version": "v0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jolicode/php-os-helper.git",
+ "reference": "1622ad8bbcab98e62b5c041397e8519f10d90e29"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jolicode/php-os-helper/zipball/1622ad8bbcab98e62b5c041397e8519f10d90e29",
+ "reference": "1622ad8bbcab98e62b5c041397e8519f10d90e29",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^6.3.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JoliCode\\PhpOsHelper\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Loïck Piera",
+ "email": "pyrech@gmail.com"
+ }
+ ],
+ "description": "Helpers to detect the OS of the machine where PHP is running.",
+ "keywords": [
+ "linux",
+ "os",
+ "osx",
+ "php",
+ "windows"
+ ],
+ "support": {
+ "issues": "https://github.com/jolicode/php-os-helper/issues",
+ "source": "https://github.com/jolicode/php-os-helper/tree/v0.1.0"
+ },
+ "time": "2023-12-03T12:46:03+00:00"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jsonrainbow/json-schema.git",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
+ "json-schema/json-schema-test-suite": "1.2.0",
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schönthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/jsonrainbow/json-schema/issues",
+ "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0"
+ },
+ "time": "2024-07-06T21:00:26+00:00"
+ },
+ {
+ "name": "masterminds/html5",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "description": "An HTML5 parser and serializer.",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "keywords": [
+ "HTML5",
+ "dom",
+ "html",
+ "parser",
+ "querypath",
+ "serializer",
+ "xml"
+ ],
+ "support": {
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
+ },
+ "time": "2024-03-31T07:05:07+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-12T14:39:25+00:00"
+ },
+ {
+ "name": "netresearch/jsonmapper",
+ "version": "v4.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweiske/jsonmapper.git",
+ "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
+ "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0",
+ "squizlabs/php_codesniffer": "~3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "JsonMapper": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "OSL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Christian Weiske",
+ "email": "cweiske@cweiske.de",
+ "homepage": "http://github.com/cweiske/jsonmapper/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Map nested JSON structures onto PHP classes",
+ "support": {
+ "email": "cweiske@cweiske.de",
+ "issues": "https://github.com/cweiske/jsonmapper/issues",
+ "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0"
+ },
+ "time": "2024-09-08T10:13:13+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.19.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "0ed4c8949a32986043e977dbe14776c14d644c45"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ed4c8949a32986043e977dbe14776c14d644c45",
+ "reference": "0ed4c8949a32986043e977dbe14776c14d644c45",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.2"
+ },
+ "time": "2024-09-17T19:36:00+00:00"
+ },
+ {
+ "name": "nyholm/psr7",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Nyholm\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
+ }
+ ],
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
+ "keywords": [
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-09T07:06:30+00:00"
+ },
+ {
+ "name": "ondram/ci-detector",
+ "version": "4.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/OndraM/ci-detector.git",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/OndraM/ci-detector/zipball/8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "reference": "8b0223b5ed235fd377c75fdd1bfcad05c0f168b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.13.2",
+ "lmc/coding-standard": "^3.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.1.0",
+ "phpstan/phpstan": "^1.2.0",
+ "phpstan/phpstan-phpunit": "^1.0.0",
+ "phpunit/phpunit": "^9.6.13"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "OndraM\\CiDetector\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ondřej Machulda",
+ "email": "ondrej.machulda@gmail.com"
+ }
+ ],
+ "description": "Detect continuous integration environment and provide unified access to properties of current build",
+ "keywords": [
+ "CircleCI",
+ "Codeship",
+ "Wercker",
+ "adapter",
+ "appveyor",
+ "aws",
+ "aws codebuild",
+ "azure",
+ "azure devops",
+ "azure pipelines",
+ "bamboo",
+ "bitbucket",
+ "buddy",
+ "ci-info",
+ "codebuild",
+ "continuous integration",
+ "continuousphp",
+ "devops",
+ "drone",
+ "github",
+ "gitlab",
+ "interface",
+ "jenkins",
+ "pipelines",
+ "sourcehut",
+ "teamcity",
+ "travis"
+ ],
+ "support": {
+ "issues": "https://github.com/OndraM/ci-detector/issues",
+ "source": "https://github.com/OndraM/ci-detector/tree/4.2.0"
+ },
+ "time": "2024-03-12T13:22:30+00:00"
+ },
+ {
+ "name": "openlss/lib-array2xml",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nullivex/lib-array2xml.git",
+ "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
+ "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "LSS": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Bryan Tong",
+ "email": "bryan@nullivex.com",
+ "homepage": "https://www.nullivex.com"
+ },
+ {
+ "name": "Tony Butler",
+ "email": "spudz76@gmail.com",
+ "homepage": "https://www.nullivex.com"
+ }
+ ],
+ "description": "Array2XML conversion library credit to lalit.org",
+ "homepage": "https://www.nullivex.com",
+ "keywords": [
+ "array",
+ "array conversion",
+ "xml",
+ "xml conversion"
+ ],
+ "support": {
+ "issues": "https://github.com/nullivex/lib-array2xml/issues",
+ "source": "https://github.com/nullivex/lib-array2xml/tree/master"
+ },
+ "time": "2019-03-29T20:06:56+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.1",
+ "ext-filter": "*",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.5",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-webmozart-assert": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1"
+ },
+ "time": "2024-05-21T05:55:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.3 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+ },
+ "time": "2024-02-23T11:10:43+00:00"
+ },
+ {
+ "name": "phpspec/php-diff",
+ "version": "v1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/php-diff.git",
+ "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/php-diff/zipball/fc1156187f9f6c8395886fe85ed88a0a245d72e9",
+ "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9",
+ "shasum": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Diff": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Chris Boulton",
+ "homepage": "http://github.com/chrisboulton"
+ }
+ ],
+ "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
+ "support": {
+ "source": "https://github.com/phpspec/php-diff/tree/v1.1.3"
+ },
+ "time": "2020-09-18T13:47:07+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.30.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "51b95ec8670af41009e2b2b56873bad96682413e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e",
+ "reference": "51b95ec8670af41009e2b2b56873bad96682413e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1"
+ },
+ "time": "2024-09-07T20:13:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.32",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "9.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T04:23:01+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa",
+ "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.5.0 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.12.0",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T10:50:18+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.12.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "support": {
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.4"
+ },
+ "time": "2024-06-10T01:18:23+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "suggest": {
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/event-loop/issues",
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-11-13T13:48:05+00:00"
+ },
+ {
+ "name": "react/stream",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.2"
+ },
+ "require-dev": {
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Stream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
+ "keywords": [
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/stream/issues",
+ "source": "https://github.com/reactphp/stream/tree/v1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-06-11T12:45:25+00:00"
+ },
+ {
+ "name": "roave/infection-static-analysis-plugin",
+ "version": "1.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/infection-static-analysis-plugin.git",
+ "reference": "3cb32845c5f758913a4b9eafd91ae18eafc26d82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/infection-static-analysis-plugin/zipball/3cb32845c5f758913a4b9eafd91ae18eafc26d82",
+ "reference": "3cb32845c5f758913a4b9eafd91ae18eafc26d82",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "infection/infection": "0.27.10",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "sanmai/later": "^0.1.4",
+ "vimeo/psalm": "^4.30.0 || ^5.15"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "phpunit/phpunit": "^10.5.12"
+ },
+ "bin": [
+ "bin/roave-infection-static-analysis-plugin"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Roave\\InfectionStaticAnalysis\\": "src/Roave/InfectionStaticAnalysis"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com"
+ }
+ ],
+ "description": "Static analysis on top of mutation testing - prevents escaped mutants from being invalid according to static analysis",
+ "support": {
+ "issues": "https://github.com/Roave/infection-static-analysis-plugin/issues",
+ "source": "https://github.com/Roave/infection-static-analysis-plugin/tree/1.35.0"
+ },
+ "time": "2024-03-10T11:55:48+00:00"
+ },
+ {
+ "name": "roave/security-advisories",
+ "version": "dev-latest",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Roave/SecurityAdvisories.git",
+ "reference": "4b6b927472278272e2411f4341dba95d96c8c7d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/4b6b927472278272e2411f4341dba95d96c8c7d7",
+ "reference": "4b6b927472278272e2411f4341dba95d96c8c7d7",
+ "shasum": ""
+ },
+ "conflict": {
+ "3f/pygmentize": "<1.2",
+ "admidio/admidio": "<4.3.10",
+ "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
+ "aheinze/cockpit": "<2.2",
+ "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.04.6",
+ "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1",
+ "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7",
+ "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9",
+ "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7",
+ "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
+ "airesvsg/acf-to-rest-api": "<=3.1",
+ "akaunting/akaunting": "<2.1.13",
+ "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
+ "alextselegidis/easyappointments": "<1.5",
+ "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
+ "amazing/media2click": ">=1,<1.3.3",
+ "amphp/artax": "<1.0.6|>=2,<2.0.6",
+ "amphp/http": "<=1.7.2|>=2,<=2.1",
+ "amphp/http-client": ">=4,<4.4",
+ "anchorcms/anchor-cms": "<=0.12.7",
+ "andreapollastri/cipi": "<=3.1.15",
+ "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5",
+ "apache-solr-for-typo3/solr": "<2.8.3",
+ "apereo/phpcas": "<1.6",
+ "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3",
+ "appwrite/server-ce": "<=1.2.1",
+ "arc/web": "<3",
+ "area17/twill": "<1.2.5|>=2,<2.5.3",
+ "artesaos/seotools": "<0.17.2",
+ "asymmetricrypt/asymmetricrypt": "<9.9.99",
+ "athlon1600/php-proxy": "<=5.1",
+ "athlon1600/php-proxy-app": "<=3",
+ "austintoddj/canvas": "<=3.4.2",
+ "auth0/wordpress": "<=4.6",
+ "automad/automad": "<2.0.0.0-alpha5",
+ "automattic/jetpack": "<9.8",
+ "awesome-support/awesome-support": "<=6.0.7",
+ "aws/aws-sdk-php": "<3.288.1",
+ "azuracast/azuracast": "<0.18.3",
+ "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2",
+ "backpack/crud": "<3.4.9",
+ "bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
+ "badaso/core": "<2.7",
+ "bagisto/bagisto": "<2.1",
+ "barrelstrength/sprout-base-email": "<1.2.7",
+ "barrelstrength/sprout-forms": "<3.9",
+ "barryvdh/laravel-translation-manager": "<0.6.2",
+ "barzahlen/barzahlen-php": "<2.0.1",
+ "baserproject/basercms": "<5.0.9",
+ "bassjobsen/bootstrap-3-typeahead": ">4.0.2",
+ "bbpress/bbpress": "<2.6.5",
+ "bcosca/fatfree": "<3.7.2",
+ "bedita/bedita": "<4",
+ "bigfork/silverstripe-form-capture": ">=3,<3.1.1",
+ "billz/raspap-webgui": "<=3.1.4",
+ "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
+ "blueimp/jquery-file-upload": "==6.4.4",
+ "bmarshall511/wordpress_zero_spam": "<5.2.13",
+ "bolt/bolt": "<3.7.2",
+ "bolt/core": "<=4.2",
+ "born05/craft-twofactorauthentication": "<3.3.4",
+ "bottelet/flarepoint": "<2.2.1",
+ "bref/bref": "<2.1.17",
+ "brightlocal/phpwhois": "<=4.2.5",
+ "brotkrueml/codehighlight": "<2.7",
+ "brotkrueml/schema": "<1.13.1|>=2,<2.5.1",
+ "brotkrueml/typo3-matomo-integration": "<1.3.2",
+ "buddypress/buddypress": "<7.2.1",
+ "bugsnag/bugsnag-laravel": ">=2,<2.0.2",
+ "bytefury/crater": "<6.0.2",
+ "cachethq/cachet": "<2.5.1",
+ "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
+ "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
+ "cardgate/magento2": "<2.0.33",
+ "cardgate/woocommerce": "<=3.1.15",
+ "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cartalyst/sentry": "<=2.1.6",
+ "catfan/medoo": "<1.7.5",
+ "causal/oidc": "<2.1",
+ "cecil/cecil": "<7.47.1",
+ "centreon/centreon": "<22.10.15",
+ "cesnet/simplesamlphp-module-proxystatistics": "<3.1",
+ "chriskacerguis/codeigniter-restserver": "<=2.7.1",
+ "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
+ "ckeditor/ckeditor": "<4.24",
+ "cockpit-hq/cockpit": "<2.7|==2.7",
+ "codeception/codeception": "<3.1.3|>=4,<4.1.22",
+ "codeigniter/framework": "<3.1.9",
+ "codeigniter4/framework": "<4.4.7",
+ "codeigniter4/shield": "<1.0.0.0-beta8",
+ "codiad/codiad": "<=2.8.4",
+ "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7",
+ "concrete5/concrete5": "<9.3.4",
+ "concrete5/core": "<8.5.8|>=9,<9.1",
+ "contao-components/mediaelement": ">=2.14.2,<2.21.1",
+ "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
+ "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
+ "contao/core": "<3.5.39",
+ "contao/core-bundle": "<4.13.49|>=5,<5.3.15|>=5.4,<5.4.3",
+ "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
+ "contao/managed-edition": "<=1.5",
+ "corveda/phpsandbox": "<1.3.5",
+ "cosenary/instagram": "<=2.3",
+ "craftcms/cms": "<4.6.2|>=5,<=5.2.2",
+ "croogo/croogo": "<4",
+ "cuyz/valinor": "<0.12",
+ "czim/file-handling": "<1.5|>=2,<2.3",
+ "czproject/git-php": "<4.0.3",
+ "damienharper/auditor-bundle": "<5.2.6",
+ "dapphp/securimage": "<3.6.6",
+ "darylldoyle/safe-svg": "<1.9.10",
+ "datadog/dd-trace": ">=0.30,<0.30.2",
+ "datatables/datatables": "<1.10.10",
+ "david-garcia/phpwhois": "<=4.3.1",
+ "dbrisinajumi/d2files": "<1",
+ "dcat/laravel-admin": "<=2.1.3",
+ "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
+ "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
+ "desperado/xml-bundle": "<=0.1.7",
+ "devgroup/dotplant": "<2020.09.14-dev",
+ "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2",
+ "doctrine/annotations": "<1.2.7",
+ "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
+ "doctrine/common": "<2.4.3|>=2.5,<2.5.1",
+ "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4",
+ "doctrine/doctrine-bundle": "<1.5.2",
+ "doctrine/doctrine-module": "<0.7.2",
+ "doctrine/mongodb-odm": "<1.0.2",
+ "doctrine/mongodb-odm-bundle": "<3.0.1",
+ "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
+ "dolibarr/dolibarr": "<19.0.2",
+ "dompdf/dompdf": "<2.0.4",
+ "doublethreedigital/guest-entries": "<3.1.2",
+ "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2|==11.9999999.9999999.9999999-dev",
+ "drupal/core-recommended": "==11.9999999.9999999.9999999-dev",
+ "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4|==11.9999999.9999999.9999999-dev",
+ "duncanmcclean/guest-entries": "<3.1.2",
+ "dweeves/magmi": "<=0.7.24",
+ "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2",
+ "ecodev/newsletter": "<=4",
+ "ectouch/ectouch": "<=2.7.2",
+ "egroupware/egroupware": "<23.1.20240624",
+ "elefant/cms": "<2.0.7",
+ "elgg/elgg": "<3.3.24|>=4,<4.0.5",
+ "elijaa/phpmemcacheadmin": "<=1.3",
+ "encore/laravel-admin": "<=1.8.19",
+ "endroid/qr-code-bundle": "<3.4.2",
+ "enhavo/enhavo-app": "<=0.13.1",
+ "enshrined/svg-sanitize": "<0.15",
+ "erusev/parsedown": "<1.7.2",
+ "ether/logs": "<3.0.4",
+ "evolutioncms/evolution": "<=3.2.3",
+ "exceedone/exment": "<4.4.3|>=5,<5.0.3",
+ "exceedone/laravel-admin": "<2.2.3|==3",
+ "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev",
+ "ezsystems/ez-support-tools": ">=2.2,<2.2.3",
+ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev",
+ "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev",
+ "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24",
+ "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26|>=3.3,<3.3.39",
+ "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1",
+ "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12",
+ "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35",
+ "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8",
+ "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev|>=3.3,<3.3.40",
+ "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15",
+ "ezsystems/ezplatform-user": ">=1,<1.0.1",
+ "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31",
+ "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1",
+ "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
+ "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
+ "ezyang/htmlpurifier": "<4.1.1",
+ "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
+ "facturascripts/facturascripts": "<=2022.08",
+ "fastly/magento2": "<1.2.26",
+ "feehi/cms": "<=2.1.1",
+ "feehi/feehicms": "<=2.1.1",
+ "fenom/fenom": "<=2.12.1",
+ "filegator/filegator": "<7.8",
+ "filp/whoops": "<2.1.13",
+ "fineuploader/php-traditional-server": "<=1.2.2",
+ "firebase/php-jwt": "<6",
+ "fisharebest/webtrees": "<=2.1.18",
+ "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
+ "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
+ "flarum/core": "<1.8.5",
+ "flarum/flarum": "<0.1.0.0-beta8",
+ "flarum/framework": "<1.8.5",
+ "flarum/mentions": "<1.6.3",
+ "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
+ "flarum/tags": "<=0.1.0.0-beta13",
+ "floriangaerber/magnesium": "<0.3.1",
+ "fluidtypo3/vhs": "<5.1.1",
+ "fof/byobu": ">=0.3.0.0-beta2,<1.1.7",
+ "fof/upload": "<1.2.3",
+ "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1",
+ "fooman/tcpdf": "<6.2.22",
+ "forkcms/forkcms": "<5.11.1",
+ "fossar/tcpdf-parser": "<6.2.22",
+ "francoisjacquet/rosariosis": "<=11.5.1",
+ "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2",
+ "friendsofsymfony/oauth2-php": "<1.3",
+ "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
+ "friendsofsymfony/user-bundle": ">=1,<1.3.5",
+ "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5",
+ "friendsofsymfony1/symfony1": ">=1.1,<1.5.19",
+ "friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
+ "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
+ "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3",
+ "froxlor/froxlor": "<=2.2.0.0-RC3",
+ "frozennode/administrator": "<=5.0.12",
+ "fuel/core": "<1.8.1",
+ "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
+ "gaoming13/wechat-php-sdk": "<=1.10.2",
+ "genix/cms": "<=1.1.11",
+ "getformwork/formwork": "<1.13.1|==2.0.0.0-beta1",
+ "getgrav/grav": "<1.7.46",
+ "getkirby/cms": "<=3.6.6.5|>=3.7,<=3.7.5.4|>=3.8,<=3.8.4.3|>=3.9,<=3.9.8.1|>=3.10,<=3.10.1|>=4,<=4.3",
+ "getkirby/kirby": "<=2.5.12",
+ "getkirby/panel": "<2.5.14",
+ "getkirby/starterkit": "<=3.7.0.2",
+ "gilacms/gila": "<=1.15.4",
+ "gleez/cms": "<=1.3|==2",
+ "globalpayments/php-sdk": "<2",
+ "gogentooss/samlbase": "<1.2.7",
+ "google/protobuf": "<3.15",
+ "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
+ "gree/jose": "<2.2.1",
+ "gregwar/rst": "<1.0.3",
+ "grumpydictator/firefly-iii": "<6.1.17",
+ "gugoan/economizzer": "<=0.9.0.0-beta1",
+ "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
+ "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
+ "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
+ "harvesthq/chosen": "<1.8.7",
+ "helloxz/imgurl": "<=2.31",
+ "hhxsv5/laravel-s": "<3.7.36",
+ "hillelcoren/invoice-ninja": "<5.3.35",
+ "himiklab/yii2-jqgrid-widget": "<1.0.8",
+ "hjue/justwriting": "<=1",
+ "hov/jobfair": "<1.0.13|>=2,<2.0.2",
+ "httpsoft/http-message": "<1.0.12",
+ "hyn/multi-tenant": ">=5.6,<5.7.2",
+ "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6.0.0-beta1,<4.6.9",
+ "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2",
+ "ibexa/fieldtype-richtext": ">=4.6,<4.6.10",
+ "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3",
+ "ibexa/post-install": "<=1.0.4",
+ "ibexa/solr": ">=4.5,<4.5.4",
+ "ibexa/user": ">=4,<4.4.3",
+ "icecoder/icecoder": "<=8.1",
+ "idno/known": "<=1.3.1",
+ "ilicmiljan/secure-props": ">=1.2,<1.2.2",
+ "illuminate/auth": "<5.5.10",
+ "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4",
+ "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40",
+ "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
+ "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
+ "imdbphp/imdbphp": "<=5.1.1",
+ "impresscms/impresscms": "<=1.4.5",
+ "impresspages/impresspages": "<=1.0.12",
+ "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3",
+ "in2code/ipandlanguageredirect": "<5.1.2",
+ "in2code/lux": "<17.6.1|>=18,<24.0.2",
+ "in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.4.1",
+ "innologi/typo3-appointments": "<2.0.6",
+ "intelliants/subrion": "<4.2.2",
+ "inter-mediator/inter-mediator": "==5.5",
+ "ipl/web": "<0.10.1",
+ "islandora/islandora": ">=2,<2.4.1",
+ "ivankristianto/phpwhois": "<=4.3",
+ "jackalope/jackalope-doctrine-dbal": "<1.7.4",
+ "james-heinrich/getid3": "<1.9.21",
+ "james-heinrich/phpthumb": "<1.7.12",
+ "jasig/phpcas": "<1.3.3",
+ "jcbrand/converse.js": "<3.3.3",
+ "johnbillion/wp-crontrol": "<1.16.2",
+ "joomla/application": "<1.0.13",
+ "joomla/archive": "<1.1.12|>=2,<2.0.1",
+ "joomla/filesystem": "<1.6.2|>=2,<2.0.1",
+ "joomla/filter": "<1.4.4|>=2,<2.0.1",
+ "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12",
+ "joomla/input": ">=2,<2.0.2",
+ "joomla/joomla-cms": ">=2.5,<3.9.12",
+ "joomla/session": "<1.3.1",
+ "joyqi/hyper-down": "<=2.4.27",
+ "jsdecena/laracom": "<2.0.9",
+ "jsmitty12/phpwhois": "<5.1",
+ "juzaweb/cms": "<=3.4",
+ "jweiland/events2": "<8.3.8|>=9,<9.0.6",
+ "kazist/phpwhois": "<=4.2.6",
+ "kelvinmo/simplexrd": "<3.1.1",
+ "kevinpapst/kimai2": "<1.16.7",
+ "khodakhah/nodcms": "<=3",
+ "kimai/kimai": "<=2.20.1",
+ "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
+ "klaviyo/magento2-extension": ">=1,<3",
+ "knplabs/knp-snappy": "<=1.4.2",
+ "kohana/core": "<3.3.3",
+ "krayin/laravel-crm": "<1.2.2",
+ "kreait/firebase-php": ">=3.2,<3.8.1",
+ "kumbiaphp/kumbiapp": "<=1.1.1",
+ "la-haute-societe/tcpdf": "<6.2.22",
+ "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
+ "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
+ "laminas/laminas-http": "<2.14.2",
+ "laravel/fortify": "<1.11.1",
+ "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75",
+ "laravel/laravel": ">=5.4,<5.4.22",
+ "laravel/socialite": ">=1,<2.0.10",
+ "latte/latte": "<2.10.8",
+ "lavalite/cms": "<=9|==10.1",
+ "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5",
+ "league/commonmark": "<0.18.3",
+ "league/flysystem": "<1.1.4|>=2,<2.1.1",
+ "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
+ "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
+ "libreform/libreform": ">=2,<=2.0.8",
+ "librenms/librenms": "<2017.08.18",
+ "liftkit/database": "<2.13.2",
+ "lightsaml/lightsaml": "<1.3.5",
+ "limesurvey/limesurvey": "<3.27.19",
+ "livehelperchat/livehelperchat": "<=3.91",
+ "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9",
+ "lms/routes": "<2.1.1",
+ "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
+ "luyadev/yii-helpers": "<1.2.1",
+ "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch9|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch7|==2.4.7|>=2.4.7.0-patch1,<2.4.7.0-patch2",
+ "magento/core": "<=1.9.4.5",
+ "magento/magento1ce": "<1.9.4.3-dev",
+ "magento/magento1ee": ">=1,<1.14.4.3-dev",
+ "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1",
+ "magneto/core": "<1.9.4.4-dev",
+ "maikuolan/phpmussel": ">=1,<1.6",
+ "mainwp/mainwp": "<=4.4.3.3",
+ "mantisbt/mantisbt": "<2.26.2",
+ "marcwillmann/turn": "<0.3.3",
+ "matyhtf/framework": "<3.0.6",
+ "mautic/core": "<4.4.13|>=5,<5.1.1",
+ "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
+ "mdanter/ecc": "<2",
+ "mediawiki/core": "<1.36.2",
+ "mediawiki/matomo": "<2.4.3",
+ "mediawiki/semantic-media-wiki": "<4.0.2",
+ "melisplatform/melis-asset-manager": "<5.0.1",
+ "melisplatform/melis-cms": "<5.0.1",
+ "melisplatform/melis-front": "<5.0.1",
+ "mezzio/mezzio-swoole": "<3.7|>=4,<4.3",
+ "mgallegos/laravel-jqgrid": "<=1.3",
+ "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1",
+ "microsoft/microsoft-graph-beta": "<2.0.1",
+ "microsoft/microsoft-graph-core": "<2.0.2",
+ "microweber/microweber": "<=2.0.16",
+ "mikehaertl/php-shellcommand": "<1.6.1",
+ "miniorange/miniorange-saml": "<1.4.3",
+ "mittwald/typo3_forum": "<1.2.1",
+ "mobiledetect/mobiledetectlib": "<2.8.32",
+ "modx/revolution": "<=2.8.3.0-patch",
+ "mojo42/jirafeau": "<4.4",
+ "mongodb/mongodb": ">=1,<1.9.2",
+ "monolog/monolog": ">=1.8,<1.12",
+ "moodle/moodle": "<4.3.5|>=4.4.0.0-beta,<4.4.1",
+ "mos/cimage": "<0.7.19",
+ "movim/moxl": ">=0.8,<=0.10",
+ "movingbytes/social-network": "<=1.2.1",
+ "mpdf/mpdf": "<=7.1.7",
+ "munkireport/comment": "<4.1",
+ "munkireport/managedinstalls": "<2.6",
+ "munkireport/munki_facts": "<1.5",
+ "munkireport/munkireport": ">=2.5.3,<5.6.3",
+ "munkireport/reportdata": "<3.5",
+ "munkireport/softwareupdate": "<1.6",
+ "mustache/mustache": ">=2,<2.14.1",
+ "namshi/jose": "<2.2",
+ "nategood/httpful": "<1",
+ "neoan3-apps/template": "<1.1.1",
+ "neorazorx/facturascripts": "<2022.04",
+ "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
+ "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3",
+ "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9",
+ "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
+ "neos/swiftmailer": "<5.4.5",
+ "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
+ "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
+ "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
+ "nilsteampassnet/teampass": "<3.0.10",
+ "nonfiction/nterchange": "<4.1.1",
+ "notrinos/notrinos-erp": "<=0.7",
+ "noumo/easyii": "<=0.9",
+ "novaksolutions/infusionsoft-php-sdk": "<1",
+ "nukeviet/nukeviet": "<4.5.02",
+ "nyholm/psr7": "<1.6.1",
+ "nystudio107/craft-seomatic": "<3.4.12",
+ "nzedb/nzedb": "<0.8",
+ "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
+ "october/backend": "<1.1.2",
+ "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1",
+ "october/october": "<=3.4.4",
+ "october/rain": "<1.0.472|>=1.1,<1.1.2",
+ "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.15",
+ "omeka/omeka-s": "<4.0.3",
+ "onelogin/php-saml": "<2.10.4",
+ "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5",
+ "open-web-analytics/open-web-analytics": "<1.7.4",
+ "opencart/opencart": ">=0",
+ "openid/php-openid": "<2.3",
+ "openmage/magento-lts": "<20.10.1",
+ "opensolutions/vimbadmin": "<=3.0.15",
+ "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2",
+ "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5",
+ "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1",
+ "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1",
+ "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7",
+ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1",
+ "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3",
+ "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3",
+ "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3",
+ "oxid-esales/oxideshop-ce": "<4.5",
+ "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1",
+ "packbackbooks/lti-1-3-php-library": "<5",
+ "padraic/humbug_get_contents": "<1.1.2",
+ "pagarme/pagarme-php": "<3",
+ "pagekit/pagekit": "<=1.0.18",
+ "paragonie/ecc": "<2.0.1",
+ "paragonie/random_compat": "<2",
+ "passbolt/passbolt_api": "<4.6.2",
+ "paypal/adaptivepayments-sdk-php": "<=3.9.2",
+ "paypal/invoice-sdk-php": "<=3.9",
+ "paypal/merchant-sdk-php": "<3.12",
+ "paypal/permissions-sdk-php": "<=3.9.1",
+ "pear/archive_tar": "<1.4.14",
+ "pear/auth": "<1.2.4",
+ "pear/crypt_gpg": "<1.6.7",
+ "pear/pear": "<=1.10.1",
+ "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1",
+ "personnummer/personnummer": "<3.0.2",
+ "phanan/koel": "<5.1.4",
+ "phenx/php-svg-lib": "<0.5.2",
+ "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5",
+ "php-mod/curl": "<2.3.2",
+ "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1",
+ "phpems/phpems": ">=6,<=6.1.3",
+ "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
+ "phpmailer/phpmailer": "<6.5",
+ "phpmussel/phpmussel": ">=1,<1.6",
+ "phpmyadmin/phpmyadmin": "<5.2.1",
+ "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
+ "phpoffice/common": "<0.2.9",
+ "phpoffice/phpexcel": "<1.8",
+ "phpoffice/phpspreadsheet": "<1.29.1|>=2,<2.1.1|>=2.2,<2.2.1",
+ "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
+ "phpservermon/phpservermon": "<3.6",
+ "phpsysinfo/phpsysinfo": "<3.4.3",
+ "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3",
+ "phpwhois/phpwhois": "<=4.2.5",
+ "phpxmlrpc/extras": "<0.6.1",
+ "phpxmlrpc/phpxmlrpc": "<4.9.2",
+ "pi/pi": "<=2.5",
+ "pimcore/admin-ui-classic-bundle": "<1.5.4",
+ "pimcore/customer-management-framework-bundle": "<4.0.6",
+ "pimcore/data-hub": "<1.2.4",
+ "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3",
+ "pimcore/demo": "<10.3",
+ "pimcore/ecommerce-framework-bundle": "<1.0.10",
+ "pimcore/perspective-editor": "<1.5.1",
+ "pimcore/pimcore": "<11.2.4",
+ "pixelfed/pixelfed": "<0.11.11",
+ "plotly/plotly.js": "<2.25.2",
+ "pocketmine/bedrock-protocol": "<8.0.2",
+ "pocketmine/pocketmine-mp": "<5.11.2",
+ "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
+ "pressbooks/pressbooks": "<5.18",
+ "prestashop/autoupgrade": ">=4,<4.10.1",
+ "prestashop/blockreassurance": "<=5.1.3",
+ "prestashop/blockwishlist": ">=2,<2.1.1",
+ "prestashop/contactform": ">=1.0.1,<4.3",
+ "prestashop/gamification": "<2.3.2",
+ "prestashop/prestashop": "<8.1.6",
+ "prestashop/productcomments": "<5.0.2",
+ "prestashop/ps_emailsubscription": "<2.6.1",
+ "prestashop/ps_facetedsearch": "<3.4.1",
+ "prestashop/ps_linklist": "<3.1",
+ "privatebin/privatebin": "<1.4|>=1.5,<1.7.4",
+ "processwire/processwire": "<=3.0.229",
+ "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
+ "propel/propel1": ">=1,<=1.7.1",
+ "pterodactyl/panel": "<1.11.6",
+ "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
+ "ptrofimov/beanstalk_console": "<1.7.14",
+ "pubnub/pubnub": "<6.1",
+ "pusher/pusher-php-server": "<2.2.1",
+ "pwweb/laravel-core": "<=0.3.6.0-beta",
+ "pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3",
+ "pyrocms/pyrocms": "<=3.9.1",
+ "qcubed/qcubed": "<=3.1.1",
+ "quickapps/cms": "<=2.0.0.0-beta2",
+ "rainlab/blog-plugin": "<1.4.1",
+ "rainlab/debugbar-plugin": "<3.1",
+ "rainlab/user-plugin": "<=1.4.5",
+ "rankmath/seo-by-rank-math": "<=1.0.95",
+ "rap2hpoutre/laravel-log-viewer": "<0.13",
+ "react/http": ">=0.7,<1.9",
+ "really-simple-plugins/complianz-gdpr": "<6.4.2",
+ "redaxo/source": "<=5.15.1",
+ "remdex/livehelperchat": "<4.29",
+ "reportico-web/reportico": "<=8.1",
+ "rhukster/dom-sanitizer": "<1.0.7",
+ "rmccue/requests": ">=1.6,<1.8",
+ "robrichards/xmlseclibs": ">=1,<3.0.4",
+ "roots/soil": "<4.1",
+ "rudloff/alltube": "<3.0.3",
+ "s-cart/core": "<6.9",
+ "s-cart/s-cart": "<6.9",
+ "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
+ "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
+ "scheb/two-factor-bundle": "<3.26|>=4,<4.11",
+ "sensiolabs/connect": "<4.2.3",
+ "serluck/phpwhois": "<=4.2.6",
+ "sfroemken/url_redirect": "<=1.2.1",
+ "sheng/yiicms": "<=1.2",
+ "shopware/core": "<=6.5.8.12|>=6.6,<=6.6.5",
+ "shopware/platform": "<=6.5.8.12|>=6.6,<=6.6.5",
+ "shopware/production": "<=6.3.5.2",
+ "shopware/shopware": "<=5.7.17",
+ "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev",
+ "shopxo/shopxo": "<=6.1",
+ "showdoc/showdoc": "<2.10.4",
+ "silverstripe-australia/advancedreports": ">=1,<=2",
+ "silverstripe/admin": "<1.13.19|>=2,<2.1.8",
+ "silverstripe/assets": ">=1,<1.11.1",
+ "silverstripe/cms": "<4.11.3",
+ "silverstripe/comments": ">=1.3,<3.1.1",
+ "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
+ "silverstripe/framework": "<5.2.16",
+ "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
+ "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
+ "silverstripe/recipe-cms": ">=4.5,<4.5.3",
+ "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
+ "silverstripe/reports": "<5.2.3",
+ "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2",
+ "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1",
+ "silverstripe/subsites": ">=2,<2.6.1",
+ "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1",
+ "silverstripe/userforms": "<3|>=5,<5.4.2",
+ "silverstripe/versioned-admin": ">=1,<1.11.1",
+ "simple-updates/phpwhois": "<=1",
+ "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12",
+ "simplesamlphp/simplesamlphp": "<1.18.6",
+ "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
+ "simplesamlphp/simplesamlphp-module-openid": "<1",
+ "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
+ "simplesamlphp/xml-security": "==1.6.11",
+ "simplito/elliptic-php": "<1.0.6",
+ "sitegeist/fluid-components": "<3.5",
+ "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3",
+ "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
+ "slim/slim": "<2.6",
+ "slub/slub-events": "<3.0.3",
+ "smarty/smarty": "<4.5.3|>=5,<5.1.1",
+ "snipe/snipe-it": "<6.4.2",
+ "socalnick/scn-social-auth": "<1.15.2",
+ "socialiteproviders/steam": "<1.1",
+ "spatie/browsershot": "<3.57.4",
+ "spatie/image-optimizer": "<1.7.3",
+ "spipu/html2pdf": "<5.2.8",
+ "spoon/library": "<1.4.1",
+ "spoonity/tcpdf": "<6.2.22",
+ "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
+ "ssddanbrown/bookstack": "<24.05.1",
+ "statamic/cms": "<4.46|>=5.3,<5.6.2",
+ "stormpath/sdk": "<9.9.99",
+ "studio-42/elfinder": "<=2.1.64",
+ "studiomitte/friendlycaptcha": "<0.1.4",
+ "subhh/libconnect": "<7.0.8|>=8,<8.1",
+ "sukohi/surpass": "<1",
+ "sulu/form-bundle": ">=2,<2.5.3",
+ "sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13",
+ "sumocoders/framework-user-bundle": "<1.4",
+ "superbig/craft-audit": "<3.0.2",
+ "swag/paypal": "<5.4.4",
+ "swiftmailer/swiftmailer": "<6.2.5",
+ "swiftyedit/swiftyedit": "<1.2",
+ "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
+ "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
+ "sylius/grid-bundle": "<1.10.1",
+ "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1",
+ "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
+ "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4",
+ "symbiote/silverstripe-multivaluefield": ">=3,<3.1",
+ "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4",
+ "symbiote/silverstripe-seed": "<6.0.3",
+ "symbiote/silverstripe-versionedfiles": "<=2.0.3",
+ "symfont/process": ">=0",
+ "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8",
+ "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
+ "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
+ "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4",
+ "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
+ "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1",
+ "symfony/mime": ">=4.3,<4.3.8",
+ "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/polyfill": ">=1,<1.10",
+ "symfony/polyfill-php55": ">=1,<1.10",
+ "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/routing": ">=2,<2.0.19",
+ "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8",
+ "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
+ "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
+ "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
+ "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8",
+ "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
+ "symfony/symfony": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/translation": ">=2,<2.0.17",
+ "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/ux-autocomplete": "<2.11.2",
+ "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
+ "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
+ "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
+ "symfony/webhook": ">=6.3,<6.3.8",
+ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2",
+ "symphonycms/symphony-2": "<2.6.4",
+ "t3/dce": "<0.11.5|>=2.2,<2.6.2",
+ "t3g/svg-sanitizer": "<1.0.3",
+ "t3s/content-consent": "<1.0.3|>=2,<2.0.2",
+ "tastyigniter/tastyigniter": "<3.3",
+ "tcg/voyager": "<=1.4",
+ "tecnickcom/tcpdf": "<=6.7.4",
+ "terminal42/contao-tablelookupwizard": "<3.3.5",
+ "thelia/backoffice-default-template": ">=2.1,<2.1.2",
+ "thelia/thelia": ">=2.1,<2.1.3",
+ "theonedemon/phpwhois": "<=4.2.5",
+ "thinkcmf/thinkcmf": "<6.0.8",
+ "thorsten/phpmyfaq": "<3.2.2",
+ "tikiwiki/tiki-manager": "<=17.1",
+ "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
+ "tinymce/tinymce": "<7.2",
+ "tinymighty/wiki-seo": "<1.2.2",
+ "titon/framework": "<9.9.99",
+ "tobiasbg/tablepress": "<=2.0.0.0-RC1",
+ "topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
+ "topthink/think": "<=6.1.1",
+ "topthink/thinkphp": "<=3.2.3",
+ "torrentpier/torrentpier": "<=2.4.3",
+ "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
+ "tribalsystems/zenario": "<9.5.60602",
+ "truckersmp/phpwhois": "<=4.3.1",
+ "ttskch/pagination-service-provider": "<1",
+ "twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2",
+ "twig/twig": "<1.44.8|>=2,<2.16.1|>=3,<3.11.1|>=3.12,<3.14",
+ "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1",
+ "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
+ "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
+ "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
+ "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8",
+ "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
+ "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
+ "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
+ "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
+ "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
+ "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
+ "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
+ "ua-parser/uap-php": "<3.8",
+ "uasoft-indonesia/badaso": "<=2.9.7",
+ "unisharp/laravel-filemanager": "<2.6.4",
+ "userfrosting/userfrosting": ">=0.3.1,<4.6.3",
+ "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
+ "uvdesk/community-skeleton": "<=1.1.1",
+ "uvdesk/core-framework": "<=1.1.1",
+ "vanilla/safecurl": "<0.9.2",
+ "verbb/comments": "<1.5.5",
+ "verbb/formie": "<2.1.6",
+ "verbb/image-resizer": "<2.0.9",
+ "verbb/knock-knock": "<1.2.8",
+ "verot/class.upload.php": "<=2.1.6",
+ "villagedefrance/opencart-overclocked": "<=1.11.1",
+ "vova07/yii2-fileapi-widget": "<0.1.9",
+ "vrana/adminer": "<4.8.1",
+ "vufind/vufind": ">=2,<9.1.1",
+ "waldhacker/hcaptcha": "<2.1.2",
+ "wallabag/tcpdf": "<6.2.22",
+ "wallabag/wallabag": "<2.6.7",
+ "wanglelecc/laracms": "<=1.0.3",
+ "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9",
+ "web-auth/webauthn-lib": ">=4.5,<4.9",
+ "web-feet/coastercms": "==5.5",
+ "webbuilders-group/silverstripe-kapost-bridge": "<0.4",
+ "webcoast/deferred-image-processing": "<1.0.2",
+ "webklex/laravel-imap": "<5.3",
+ "webklex/php-imap": "<5.3",
+ "webpa/webpa": "<3.1.2",
+ "wikibase/wikibase": "<=1.39.3",
+ "wikimedia/parsoid": "<0.12.2",
+ "willdurand/js-translation-bundle": "<2.1.1",
+ "winter/wn-backend-module": "<1.2.4",
+ "winter/wn-dusk-plugin": "<2.1",
+ "winter/wn-system-module": "<1.2.4",
+ "wintercms/winter": "<=1.2.3",
+ "wireui/wireui": "<1.19.3|>=2,<2.1.3",
+ "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3",
+ "wp-cli/wp-cli": ">=0.12,<2.5",
+ "wp-graphql/wp-graphql": "<=1.14.5",
+ "wp-premium/gravityforms": "<2.4.21",
+ "wpanel/wpanel4-cms": "<=4.3.1",
+ "wpcloud/wp-stateless": "<3.2",
+ "wpglobus/wpglobus": "<=1.9.6",
+ "wwbn/avideo": "<14.3",
+ "xataface/xataface": "<3",
+ "xpressengine/xpressengine": "<3.0.15",
+ "yab/quarx": "<2.4.5",
+ "yeswiki/yeswiki": "<4.1",
+ "yetiforce/yetiforce-crm": "<=6.4",
+ "yidashi/yii2cmf": "<=2",
+ "yii2mod/yii2-cms": "<1.9.2",
+ "yiisoft/yii": "<1.1.29",
+ "yiisoft/yii2": "<2.0.49.4-dev",
+ "yiisoft/yii2-authclient": "<2.2.15",
+ "yiisoft/yii2-bootstrap": "<2.0.4",
+ "yiisoft/yii2-dev": "<2.0.43",
+ "yiisoft/yii2-elasticsearch": "<2.0.5",
+ "yiisoft/yii2-gii": "<=2.2.4",
+ "yiisoft/yii2-jui": "<2.0.4",
+ "yiisoft/yii2-redis": "<2.0.8",
+ "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6",
+ "yoast-seo-for-typo3/yoast_seo": "<7.2.3",
+ "yourls/yourls": "<=1.8.2",
+ "yuan1994/tpadmin": "<=1.3.12",
+ "zencart/zencart": "<=1.5.7.0-beta",
+ "zendesk/zendesk_api_client_php": "<2.2.11",
+ "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
+ "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
+ "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5",
+ "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3",
+ "zendframework/zend-diactoros": "<1.8.4",
+ "zendframework/zend-feed": "<2.10.3",
+ "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-http": "<2.8.1",
+ "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
+ "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2",
+ "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4",
+ "zendframework/zend-validator": ">=2.3,<2.3.6",
+ "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1",
+ "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
+ "zendframework/zendframework": "<=3",
+ "zendframework/zendframework1": "<1.12.20",
+ "zendframework/zendopenid": "<2.0.2",
+ "zendframework/zendrest": "<2.0.2",
+ "zendframework/zendservice-amazon": "<2.0.3",
+ "zendframework/zendservice-api": "<1",
+ "zendframework/zendservice-audioscrobbler": "<2.0.2",
+ "zendframework/zendservice-nirvanix": "<2.0.2",
+ "zendframework/zendservice-slideshare": "<2.0.2",
+ "zendframework/zendservice-technorati": "<2.0.2",
+ "zendframework/zendservice-windowsazure": "<2.0.2",
+ "zendframework/zendxml": ">=1,<1.0.1",
+ "zenstruck/collection": "<0.2.1",
+ "zetacomponents/mail": "<1.8.2",
+ "zf-commons/zfc-user": "<1.2.2",
+ "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
+ "zfr/zfr-oauth2-server-module": "<0.1.2",
+ "zoujingli/thinkadmin": "<=6.1.53"
+ },
+ "default-branch": true,
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "role": "maintainer"
+ },
+ {
+ "name": "Ilya Tribusean",
+ "email": "slash3b@gmail.com",
+ "role": "maintainer"
+ }
+ ],
+ "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it",
+ "keywords": [
+ "dev"
+ ],
+ "support": {
+ "issues": "https://github.com/Roave/SecurityAdvisories/issues",
+ "source": "https://github.com/Roave/SecurityAdvisories/tree/latest"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Ocramius",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T17:04:43+00:00"
+ },
+ {
+ "name": "sanmai/later",
+ "version": "0.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/later.git",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/later/zipball/e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "reference": "e24c4304a4b1349c2a83151a692cec0c10579f60",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.35.1",
+ "infection/infection": ">=0.27.6",
+ "phan/phan": ">=2",
+ "php-coveralls/php-coveralls": "^2.0",
+ "phpstan/phpstan": ">=1.4.5",
+ "phpunit/phpunit": ">=9.5 <10",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Later\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "Later: deferred wrapper object",
+ "support": {
+ "issues": "https://github.com/sanmai/later/issues",
+ "source": "https://github.com/sanmai/later/tree/0.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-24T00:25:28+00:00"
+ },
+ {
+ "name": "sanmai/pipeline",
+ "version": "v6.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sanmai/pipeline.git",
+ "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sanmai/pipeline/zipball/a5fa2a6c6ca93efa37e7c24aab72f47448a6b110",
+ "reference": "a5fa2a6c6ca93efa37e7c24aab72f47448a6b110",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.8",
+ "friendsofphp/php-cs-fixer": "^3.17",
+ "infection/infection": ">=0.10.5",
+ "league/pipeline": "^0.3 || ^1.0",
+ "phan/phan": ">=1.1",
+ "php-coveralls/php-coveralls": "^2.4.1",
+ "phpstan/phpstan": ">=0.10",
+ "phpunit/phpunit": ">=9.4",
+ "vimeo/psalm": ">=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "v6.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Pipeline\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Alexey Kopytko",
+ "email": "alexey@kopytko.com"
+ }
+ ],
+ "description": "General-purpose collections pipeline",
+ "support": {
+ "issues": "https://github.com/sanmai/pipeline/issues",
+ "source": "https://github.com/sanmai/pipeline/tree/v6.11"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sanmai",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-15T03:11:19+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:33:00+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:35:11+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-14T16:00:52+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "spatie/phpunit-watcher",
+ "version": "1.23.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/phpunit-watcher.git",
+ "reference": "c192fff763810c8378511bcf0069df4b91478866"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/phpunit-watcher/zipball/c192fff763810c8378511bcf0069df4b91478866",
+ "reference": "c192fff763810c8378511bcf0069df4b91478866",
+ "shasum": ""
+ },
+ "require": {
+ "clue/stdio-react": "^2.4",
+ "jolicode/jolinotif": "^2.2",
+ "php": "^7.2 | ^8.0 | ^8.1",
+ "symfony/console": "^5 | ^6",
+ "symfony/finder": "^5.4 | ^6",
+ "symfony/process": "^5.4 | ^6",
+ "symfony/yaml": "^5.2 | ^6",
+ "yosymfony/resource-watcher": "^2.0 | ^3.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.2",
+ "yosymfony/resource-watcher": "<2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.6 | ^9.0"
+ },
+ "bin": [
+ "phpunit-watcher"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\PhpUnitWatcher\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Automatically rerun PHPUnit tests when source code changes",
+ "homepage": "https://github.com/spatie/phpunit-watcher",
+ "keywords": [
+ "phpunit-watcher",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/phpunit-watcher/issues",
+ "source": "https://github.com/spatie/phpunit-watcher/tree/1.23.6"
+ },
+ "time": "2022-01-31T11:57:13+00:00"
+ },
+ {
+ "name": "symfony/browser-kit",
+ "version": "v6.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/62ab90b92066ef6cce5e79365625b4b1432464c8",
+ "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v6.4.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:49:08+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v6.4.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9d307ecbcb917001692be333cdc58f474fdb37f0",
+ "reference": "9d307ecbcb917001692be333cdc58f474fdb37f0",
+ "shasum": ""
+ },
+ "require": {
+ "masterminds/html5": "^2.6",
+ "php": ">=8.1",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.4.12"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-15T06:35:36+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v7.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a",
+ "reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "require-dev": {
+ "symfony/process": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v7.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-17T09:16:35+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v2.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "reference": "3115ecd6b4391662b4931daac4eba6b07a2ac1f0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.2",
+ "thecodingmachine/phpstan-strict-rules": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "deprecated/apc.php",
+ "deprecated/array.php",
+ "deprecated/datetime.php",
+ "deprecated/libevent.php",
+ "deprecated/misc.php",
+ "deprecated/password.php",
+ "deprecated/mssql.php",
+ "deprecated/stats.php",
+ "deprecated/strings.php",
+ "lib/special_cases.php",
+ "deprecated/mysqli.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gettext.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/mysql.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ],
+ "classmap": [
+ "lib/DateTime.php",
+ "lib/DateTimeImmutable.php",
+ "lib/Exceptions/",
+ "deprecated/Exceptions/",
+ "generated/Exceptions/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v2.5.0"
+ },
+ "time": "2023-04-05T11:54:14+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
+ },
+ {
+ "name": "vimeo/psalm",
+ "version": "4.30.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vimeo/psalm.git",
+ "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
+ "reference": "d0bc6e25d89f649e4f36a534f330f8bb4643dd69",
+ "shasum": ""
+ },
+ "require": {
+ "amphp/amp": "^2.4.2",
+ "amphp/byte-stream": "^1.5",
+ "composer/package-versions-deprecated": "^1.8.0",
+ "composer/semver": "^1.4 || ^2.0 || ^3.0",
+ "composer/xdebug-handler": "^1.1 || ^2.0 || ^3.0",
+ "dnoegel/php-xdg-base-dir": "^0.1.1",
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.0.3",
+ "felixfbecker/language-server-protocol": "^1.5",
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "nikic/php-parser": "^4.13",
+ "openlss/lib-array2xml": "^1.0",
+ "php": "^7.1|^8",
+ "sebastian/diff": "^3.0 || ^4.0",
+ "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0 || ^6.0",
+ "symfony/polyfill-php80": "^1.25",
+ "webmozart/path-util": "^2.3"
+ },
+ "provide": {
+ "psalm/psalm": "self.version"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2",
+ "brianium/paratest": "^4.0||^6.0",
+ "ext-curl": "*",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpdocumentor/reflection-docblock": "^5",
+ "phpmyadmin/sql-parser": "5.1.0||dev-master",
+ "phpspec/prophecy": ">=1.9.0",
+ "phpstan/phpdoc-parser": "1.2.* || 1.6.4",
+ "phpunit/phpunit": "^9.0",
+ "psalm/plugin-phpunit": "^0.16",
+ "slevomat/coding-standard": "^7.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "symfony/process": "^4.3 || ^5.0 || ^6.0",
+ "weirdan/prophecy-shim": "^1.0 || ^2.0"
+ },
+ "suggest": {
+ "ext-curl": "In order to send data to shepherd",
+ "ext-igbinary": "^2.0.5 is required, used to serialize caching data"
+ },
+ "bin": [
+ "psalm",
+ "psalm-language-server",
+ "psalm-plugin",
+ "psalm-refactor",
+ "psalter"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev",
+ "dev-3.x": "3.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php",
+ "src/spl_object_id.php"
+ ],
+ "psr-4": {
+ "Psalm\\": "src/Psalm/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matthew Brown"
+ }
+ ],
+ "description": "A static analysis tool for finding errors in PHP applications",
+ "keywords": [
+ "code",
+ "inspection",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/vimeo/psalm/issues",
+ "source": "https://github.com/vimeo/psalm/tree/4.30.0"
+ },
+ "time": "2022-11-06T20:37:08+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ },
+ {
+ "name": "webmozart/path-util",
+ "version": "2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozart/path-util.git",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "webmozart/assert": "~1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.6",
+ "sebastian/version": "^1.0.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\PathUtil\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
+ "support": {
+ "issues": "https://github.com/webmozart/path-util/issues",
+ "source": "https://github.com/webmozart/path-util/tree/2.3.0"
+ },
+ "abandoned": "symfony/filesystem",
+ "time": "2015-12-17T08:42:14+00:00"
+ },
+ {
+ "name": "yiisoft/active-record",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/active-record.git",
+ "reference": "5c4151d74fc8025261b0d3921f649513261a0144"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/active-record/zipball/5c4151d74fc8025261b0d3921f649513261a0144",
+ "reference": "5c4151d74fc8025261b0d3921f649513261a0144",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^8.1",
+ "yiisoft/db": "dev-master"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^10.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.34",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/aliases": "^2.0",
+ "yiisoft/arrays": "^3.1",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/db-sqlite": "dev-master",
+ "yiisoft/di": "^1.0",
+ "yiisoft/factory": "^1.2",
+ "yiisoft/json": "^1.0",
+ "yiisoft/middleware-dispatcher": "^5.2"
+ },
+ "suggest": {
+ "yiisoft/arrays": "For \\Yiisoft\\Arrays\\ArrayableInterface support",
+ "yiisoft/db-mssql": "For MSSQL database support",
+ "yiisoft/db-mysql": "For MySQL database support",
+ "yiisoft/db-oracle": "For Oracle database support",
+ "yiisoft/db-pgsql": "For PostgreSQL database support",
+ "yiisoft/db-sqlite": "For SQLite database support",
+ "yiisoft/factory": "For factory support",
+ "yiisoft/middleware-dispatcher": "For middleware support"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\ActiveRecord\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii ActiveRecord Library",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "Active Record",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/active-record/issues?state=open",
+ "source": "https://github.com/yiisoft/active-record",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-16T09:27:14+00:00"
+ },
+ {
+ "name": "yiisoft/db",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/db.git",
+ "reference": "c765ca43af502dda2ec2aed01f368d0f15e8b290"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/db/zipball/c765ca43af502dda2ec2aed01f368d0f15e8b290",
+ "reference": "c765ca43af502dda2ec2aed01f368d0f15e8b290",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-pdo": "*",
+ "php": "^8.1",
+ "psr/log": "^2.0|^3.0",
+ "psr/simple-cache": "^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^10.0",
+ "rector/rector": "^1.1.1",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.25",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/cache-file": "^3.1",
+ "yiisoft/di": "^1.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/var-dumper": "^1.5",
+ "yiisoft/yii-debug": "dev-master"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Db\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Database",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "database",
+ "dbal",
+ "query-builder",
+ "sql",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/db/issues/issues?state=open",
+ "source": "https://github.com/yiisoft/db",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-16T10:51:44+00:00"
+ },
+ {
+ "name": "yiisoft/translator-extractor",
+ "version": "2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/translator-extractor.git",
+ "reference": "673bb3d79dc866f3d85d97cc49e1a9a24b2bc727"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/translator-extractor/zipball/673bb3d79dc866f3d85d97cc49e1a9a24b2bc727",
+ "reference": "673bb3d79dc866f3d85d97cc49e1a9a24b2bc727",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "yiisoft/friendly-exception": "^1.0",
+ "yiisoft/translator": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^1.0",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6",
+ "yiisoft/di": "^1.0",
+ "yiisoft/yii-console": "^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di-console": "di-console.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\TranslatorExtractor\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii message extractor",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "dev",
+ "extractor",
+ "i18n",
+ "internationalization"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "irc://irc.freenode.net/yii",
+ "issues": "https://github.com/yiisoft/translator-extractor/issues?state=open",
+ "source": "https://github.com/yiisoft/translator-extractor",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2024-02-13T13:39:33+00:00"
+ },
+ {
+ "name": "yiisoft/yii-debug-viewer",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-debug-viewer.git",
+ "reference": "89f2704b5ae8aa8e188732c3dd4a8947a2cad774"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-debug-viewer/zipball/89f2704b5ae8aa8e188732c3dd4a8947a2cad774",
+ "reference": "89f2704b5ae8aa8e188732c3dd4a8947a2cad774",
+ "shasum": ""
+ },
+ "require": {
+ "nyholm/psr7": "^1.3",
+ "php": "^8.0",
+ "psr/http-message": "^1.1",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "yiisoft/assets": "^4.0",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/http": "^1.1",
+ "yiisoft/router": "^3.1",
+ "yiisoft/view": "^10.0",
+ "yiisoft/yii-view-renderer": "^7.1"
+ },
+ "require-dev": {
+ "httpsoft/http-message": "^1.0.5",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "psr/http-factory": "^1.0",
+ "psr/log": "^2.0|^3.0",
+ "rector/rector": "^0.15.1",
+ "roave/infection-static-analysis-plugin": "^1.21",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.18",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/config": "^1.0",
+ "yiisoft/di": "^1.1",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/factory": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/injector": "^1.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/log-target-file": "^3.0",
+ "yiisoft/router-fastroute": "^3.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-event": "^2.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin-environments": {
+ "yii-debug-viewer-app": {
+ "params": [
+ "app/params.php"
+ ],
+ "di": "app/di.php",
+ "di-console": "$di",
+ "di-web": [
+ "$di",
+ "app/web.php"
+ ],
+ "events": [],
+ "events-web": "$events",
+ "events-console": "$events",
+ "di-providers": [],
+ "di-providers-web": "$di-providers",
+ "di-providers-console": "$di-providers",
+ "routes": [],
+ "bootstrap": [],
+ "bootstrap-web": "$bootstrap",
+ "bootstrap-console": "$bootstrap"
+ }
+ },
+ "config-plugin": {
+ "di-web": "di-web.php",
+ "params": "params.php",
+ "routes": "routes.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Debug\\Viewer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Debug Viewer",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "debug",
+ "dev",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-debug-viewer/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-debug-viewer",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-06T13:05:25+00:00"
+ },
+ {
+ "name": "yiisoft/yii-gii",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-gii.git",
+ "reference": "cf2f56d5d3a0a8fb00636da24ba13df3a1082350"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-gii/zipball/cf2f56d5d3a0a8fb00636da24ba13df3a1082350",
+ "reference": "cf2f56d5d3a0a8fb00636da24ba13df3a1082350",
+ "shasum": ""
+ },
+ "require": {
+ "httpsoft/http-basis": "^1.1",
+ "php": "^8.1",
+ "phpspec/php-diff": "^1.1.3",
+ "psr/http-message": "^1.0|^2.0",
+ "symfony/console": "^6.0|^7.0",
+ "yiisoft/active-record": "dev-master",
+ "yiisoft/aliases": "^3.0",
+ "yiisoft/arrays": "^2.1|^3.0",
+ "yiisoft/csrf": "^2.1.1",
+ "yiisoft/data-response": "^2.0",
+ "yiisoft/db": "*",
+ "yiisoft/friendly-exception": "^1.1",
+ "yiisoft/http": "^1.2",
+ "yiisoft/hydrator": "^1.0",
+ "yiisoft/injector": "^1.1",
+ "yiisoft/input-http": "^1.0",
+ "yiisoft/json": "^1.0",
+ "yiisoft/router": "^3.0",
+ "yiisoft/strings": "^2.1",
+ "yiisoft/validator": "^2.0",
+ "yiisoft/yii-console": "^2.0",
+ "yiisoft/yii-middleware": "^1.0"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.5",
+ "phpunit/phpunit": "^10.2",
+ "rector/rector": "^1.2",
+ "roave/infection-static-analysis-plugin": "^1.23",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^5.13",
+ "yiisoft/cache": "^3.0",
+ "yiisoft/db-sqlite": "dev-master",
+ "yiisoft/di": "^1.1",
+ "yiisoft/dummy-provider": "^1.0",
+ "yiisoft/event-dispatcher": "^1.0",
+ "yiisoft/files": "^2.0",
+ "yiisoft/log": "^2.0",
+ "yiisoft/translator": "^3.0"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ },
+ "config-plugin-options": {
+ "source-directory": "config"
+ },
+ "config-plugin": {
+ "params": "params.php",
+ "di": "di.php",
+ "routes": "routes.php"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Gii\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Yii Framework Code Generator Extension",
+ "keywords": [
+ "code generator",
+ "dev",
+ "gii",
+ "yii"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-gii/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-gii",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-09-19T05:22:18+00:00"
+ },
+ {
+ "name": "yiisoft/yii-testing",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yiisoft/yii-testing.git",
+ "reference": "d90cce1c6f33990ad2a0f9e7781da88202a57229"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yiisoft/yii-testing/zipball/d90cce1c6f33990ad2a0f9e7781da88202a57229",
+ "reference": "d90cce1c6f33990ad2a0f9e7781da88202a57229",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "^2.0",
+ "psr/http-message": "^1.0|^2.0",
+ "yiisoft/config": "^1.1",
+ "yiisoft/di": "^1.1",
+ "yiisoft/error-handler": "^3.0",
+ "yiisoft/yii-http": "^1.0",
+ "yiisoft/yii-runner": "^2.0",
+ "yiisoft/yii-runner-console": "^2.0",
+ "yiisoft/yii-runner-http": "^2.0"
+ },
+ "require-dev": {
+ "maglnet/composer-require-checker": "^4.2",
+ "nyholm/psr7": "^1.5",
+ "rector/rector": "^0.15.2",
+ "roave/infection-static-analysis-plugin": "^1.16",
+ "spatie/phpunit-watcher": "^1.23",
+ "vimeo/psalm": "^4.30|^5.6"
+ },
+ "default-branch": true,
+ "type": "library",
+ "extra": {
+ "config-plugin-options": {
+ "build-merge-plan": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yiisoft\\Yii\\Testing\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "yii-testing",
+ "homepage": "https://www.yiiframework.com/",
+ "keywords": [
+ "testing",
+ "yii3"
+ ],
+ "support": {
+ "chat": "https://t.me/yii3en",
+ "forum": "https://www.yiiframework.com/forum/",
+ "irc": "ircs://irc.libera.chat:6697/yii",
+ "issues": "https://github.com/yiisoft/yii-testing/issues?state=open",
+ "source": "https://github.com/yiisoft/yii-testing",
+ "wiki": "https://www.yiiframework.com/wiki/"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/yiisoft",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/yiisoft",
+ "type": "opencollective"
+ }
+ ],
+ "time": "2024-06-04T07:04:12+00:00"
+ },
+ {
+ "name": "yosymfony/resource-watcher",
+ "version": "v3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/yosymfony/resource-watcher.git",
+ "reference": "2f197cee0231c06db865d4ad2d8d7cd3faead2f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/yosymfony/resource-watcher/zipball/2f197cee0231c06db865d4ad2d8d7cd3faead2f8",
+ "reference": "2f197cee0231c06db865d4ad2d8d7cd3faead2f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6",
+ "symfony/finder": "^2.7|^3.0|^4.0|^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "symfony/filesystem": "^2.7|^3.0|^4.0|^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Yosymfony\\ResourceWatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Victor Puertas",
+ "email": "vpgugr@gmail.com"
+ }
+ ],
+ "description": "A simple resource watcher using Symfony Finder",
+ "homepage": "http://yosymfony.com",
+ "keywords": [
+ "finder",
+ "resources",
+ "symfony",
+ "watcher"
+ ],
+ "support": {
+ "issues": "https://github.com/yosymfony/resource-watcher/issues",
+ "source": "https://github.com/yosymfony/resource-watcher/tree/master"
+ },
+ "time": "2020-06-10T14:58:36+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {
+ "cebe/markdown": 20,
+ "yiisoft/data": 20,
+ "yiisoft/data-cycle": 20,
+ "yiisoft/rate-limiter": 20,
+ "yiisoft/yii-bootstrap5": 20,
+ "yiisoft/yii-dataview": 20,
+ "yiisoft/yii-debug": 20,
+ "yiisoft/yii-debug-api": 20,
+ "roave/security-advisories": 20,
+ "yiisoft/yii-debug-viewer": 20,
+ "yiisoft/yii-gii": 20,
+ "yiisoft/yii-testing": 20
+ },
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=8.3 <8.4",
+ "ext-mbstring": "*",
+ "ext-pdo_sqlite": "*"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.3.0"
+}
diff --git a/config/.gitignore b/blog/config/.gitignore
similarity index 100%
rename from config/.gitignore
rename to blog/config/.gitignore
diff --git a/config/bootstrap-console.php b/blog/config/common/bootstrap.php
similarity index 100%
rename from config/bootstrap-console.php
rename to blog/config/common/bootstrap.php
diff --git a/config/common/cache.php b/blog/config/common/di/cache.php
similarity index 100%
rename from config/common/cache.php
rename to blog/config/common/di/cache.php
diff --git a/blog/config/common/di/cycle.php b/blog/config/common/di/cycle.php
new file mode 100644
index 000000000..e6722e43e
--- /dev/null
+++ b/blog/config/common/di/cycle.php
@@ -0,0 +1,23 @@
+ static function (DatabaseManager $dbManager, Spiral\Core\FactoryInterface $factory) {
+ return new Factory(
+ $dbManager,
+ null,
+ $factory,
+ new DoctrineCollectionFactory()
+ );
+ },
+];
diff --git a/blog/config/common/di/hydrator.php b/blog/config/common/di/hydrator.php
new file mode 100644
index 000000000..1561583dc
--- /dev/null
+++ b/blog/config/common/di/hydrator.php
@@ -0,0 +1,13 @@
+ ContainerAttributeResolverFactory::class,
+ ObjectFactoryInterface::class => ContainerObjectFactory::class,
+];
diff --git a/blog/config/common/di/logger.php b/blog/config/common/di/logger.php
new file mode 100644
index 000000000..b49b94ba0
--- /dev/null
+++ b/blog/config/common/di/logger.php
@@ -0,0 +1,21 @@
+ [
+ 'class' => Logger::class,
+ '__construct()' => [
+ 'targets' => ReferencesArray::from([
+ FileTarget::class,
+ ]),
+ ],
+ ],
+];
diff --git a/blog/config/common/di/psr17.php b/blog/config/common/di/psr17.php
new file mode 100644
index 000000000..9787bb293
--- /dev/null
+++ b/blog/config/common/di/psr17.php
@@ -0,0 +1,25 @@
+ RequestFactory::class,
+ ServerRequestFactoryInterface::class => ServerRequestFactory::class,
+ ResponseFactoryInterface::class => ResponseFactory::class,
+ StreamFactoryInterface::class => StreamFactory::class,
+ UriFactoryInterface::class => UriFactory::class,
+ UploadedFileFactoryInterface::class => UploadedFileFactory::class,
+];
diff --git a/config/common/rbac.php b/blog/config/common/di/rbac.php
similarity index 100%
rename from config/common/rbac.php
rename to blog/config/common/di/rbac.php
index f5a3dafb0..9d663e583 100644
--- a/config/common/rbac.php
+++ b/blog/config/common/di/rbac.php
@@ -3,11 +3,11 @@
declare(strict_types=1);
use Yiisoft\Access\AccessCheckerInterface;
+use Yiisoft\Rbac\AssignmentsStorageInterface;
+use Yiisoft\Rbac\ItemsStorageInterface;
use Yiisoft\Rbac\Manager;
use Yiisoft\Rbac\Php\AssignmentsStorage;
use Yiisoft\Rbac\Php\ItemsStorage;
-use Yiisoft\Rbac\AssignmentsStorageInterface;
-use Yiisoft\Rbac\ItemsStorageInterface;
/** @var array $params */
diff --git a/blog/config/common/di/router.php b/blog/config/common/di/router.php
new file mode 100644
index 000000000..fcab40c46
--- /dev/null
+++ b/blog/config/common/di/router.php
@@ -0,0 +1,43 @@
+ [
+ 'class' => UrlGenerator::class,
+ 'setEncodeRaw()' => [$params['yiisoft/router-fastroute']['encodeRaw']],
+ 'setDefaultArgument()' => ['_language', 'en'],
+ 'reset' => function () {
+ $this->defaultArguments = ['_language', 'en'];
+ },
+ ],
+
+ RouteCollectionInterface::class => static function (RouteCollectorInterface $collector) use ($config) {
+ $collector
+ ->middleware(CsrfMiddleware::class)
+ ->middleware(FormatDataResponse::class)
+ ->addGroup(
+ Group::create('/{_language}')->routes(...$config->get('app-routes')),
+ )
+ ->addGroup(
+ Group::create()->routes(...$config->get('routes')),
+ );
+
+ return new RouteCollection($collector);
+ },
+];
diff --git a/config/common/sentry.php b/blog/config/common/di/sentry.php
similarity index 100%
rename from config/common/sentry.php
rename to blog/config/common/di/sentry.php
diff --git a/blog/config/common/di/translator.php b/blog/config/common/di/translator.php
new file mode 100644
index 000000000..0d140e94b
--- /dev/null
+++ b/blog/config/common/di/translator.php
@@ -0,0 +1,24 @@
+ [
+ 'definition' => static function (Aliases $aliases) use ($params) {
+ return new CategorySource(
+ $params['yiisoft/translator']['defaultCategory'],
+ new MessageSource($aliases->get('@messages')),
+ new IntlMessageFormatter(),
+ );
+ },
+ 'tags' => ['translation.categorySource'],
+ ],
+];
diff --git a/blog/config/common/di/validator.php b/blog/config/common/di/validator.php
new file mode 100644
index 000000000..a77e34f7a
--- /dev/null
+++ b/blog/config/common/di/validator.php
@@ -0,0 +1,12 @@
+ RuleHandlerContainer::class,
+];
diff --git a/config/params.php b/blog/config/common/params.php
similarity index 80%
rename from config/params.php
rename to blog/config/common/params.php
index eaf719b3e..bc5fa805f 100644
--- a/config/params.php
+++ b/blog/config/common/params.php
@@ -8,53 +8,29 @@
use App\ViewInjection\MetaTagsViewInjection;
use Cycle\Database\Config\SQLite\FileConnectionConfig;
use Cycle\Database\Config\SQLiteDriverConfig;
+use Cycle\Schema\Provider\PhpFileSchemaProvider;
use Yiisoft\Assets\AssetManager;
-use Yiisoft\Cookies\CookieMiddleware;
use Yiisoft\Definitions\Reference;
-use Yiisoft\ErrorHandler\Middleware\ErrorCatcher;
use Yiisoft\Form\Field\SubmitButton;
use Yiisoft\Router\CurrentRoute;
-use Yiisoft\Router\Middleware\Router;
use Yiisoft\Router\UrlGeneratorInterface;
-use Yiisoft\Session\SessionMiddleware;
use Yiisoft\Translator\TranslatorInterface;
-use Yiisoft\User\Login\Cookie\CookieLoginMiddleware;
-use Yiisoft\Yii\Console\Application;
-use Yiisoft\Yii\Console\Command\Serve;
use Yiisoft\Yii\Cycle\Schema\Conveyor\AttributedSchemaConveyor;
use Yiisoft\Yii\Cycle\Schema\Provider\FromConveyorSchemaProvider;
-use Yiisoft\Yii\Cycle\Schema\Provider\PhpFileSchemaProvider;
-use Yiisoft\Yii\Middleware\Locale;
-use Yiisoft\Yii\Sentry\SentryMiddleware;
-use Yiisoft\Yii\View\CsrfViewInjection;
+use Yiisoft\Yii\View\Renderer\CsrfViewInjection;
return [
- 'locale' => [
- 'locales' => ['en' => 'en-US', 'ru' => 'ru-RU', 'id' => 'id-ID', 'sk' => 'sk-SK'],
- 'ignoredRequests' => [
- '/debug**',
- ],
- ],
'mailer' => [
'adminEmail' => 'admin@example.com',
'senderEmail' => 'sender@example.com',
],
- 'middlewares' => [
- ErrorCatcher::class,
- SentryMiddleware::class,
- SessionMiddleware::class,
- CookieMiddleware::class,
- CookieLoginMiddleware::class,
- Locale::class,
- Router::class,
- ],
'yiisoft/aliases' => [
'aliases' => [
- '@root' => dirname(__DIR__),
+ '@root' => dirname(__DIR__, 2),
'@assets' => '@root/public/assets',
'@assetsUrl' => '@baseUrl/assets',
- '@baseUrl' => '/',
+ '@baseUrl' => '',
'@messages' => '@resources/messages',
'@npm' => '@root/node_modules',
'@public' => '@root/public',
@@ -68,7 +44,7 @@
],
'yiisoft/form' => [
- 'configs' => [
+ 'themes' => [
'default' => [
'containerClass' => 'form-floating mb-3',
'inputClass' => 'form-control',
@@ -116,7 +92,7 @@
'secretKey' => '53136271c432a1af377c3806c3112ddf',
],
- 'yiisoft/yii-view' => [
+ 'yiisoft/yii-view-renderer' => [
'viewPath' => '@views',
'layout' => '@views/layout/main',
'injections' => [
@@ -128,21 +104,6 @@
],
],
- 'yiisoft/yii-console' => [
- 'name' => Application::NAME,
- 'version' => Application::VERSION,
- 'autoExit' => false,
- 'commands' => [
- 'serve' => Serve::class,
- 'user/create' => App\User\Console\CreateCommand::class,
- 'user/assignRole' => App\User\Console\AssignRoleCommand::class,
- 'fixture/add' => App\Command\Fixture\AddCommand::class,
- 'fixture/schema/clear' => App\Command\Fixture\SchemaClearCommand::class,
- 'router/list' => App\Command\Router\ListCommand::class,
- 'translator/translate' => App\Command\Translation\TranslateCommand::class,
- ],
- ],
-
'yiisoft/yii-cycle' => [
// DBAL config
'dbal' => [
@@ -188,7 +149,7 @@
* Generator\SyncTables::class, // sync table changes to database
* ]
* ],
- * ]
+ * ].
*/
'schema-providers' => [
// Uncomment next line to enable a Schema caching in the common cache
@@ -220,6 +181,7 @@
'yiisoft/yii-swagger' => [
'annotation-paths' => [
'@src/Controller',
+ '@src/Middleware',
'@src/User/Controller',
],
],
@@ -233,4 +195,8 @@
'environment' => $_ENV['YII_ENV'] ?? null, // Add to separate "production" / "staging" environment errors.
],
],
+
+ 'yiisoft/yii-debug-api' => [
+ 'allowedIPs' => ['172.0.0.1/10'],
+ ],
];
diff --git a/config/rbac-rules.php b/blog/config/common/rbac-rules.php
similarity index 100%
rename from config/rbac-rules.php
rename to blog/config/common/rbac-rules.php
diff --git a/config/routes-backend.php b/blog/config/common/routes/routes-backend.php
similarity index 58%
rename from config/routes-backend.php
rename to blog/config/common/routes/routes-backend.php
index a1fa970c0..3de570cad 100644
--- a/config/routes-backend.php
+++ b/blog/config/common/routes/routes-backend.php
@@ -2,19 +2,21 @@
declare(strict_types=1);
+use App\Backend\Controller\SiteController;
+use Yiisoft\Router\Group;
use Yiisoft\Router\Route;
return [
- \Yiisoft\Router\Group::create('')
+ Group::create('')
->routes(
Route::get('/')
- ->action([\App\Backend\Controller\SiteController::class, 'index'])
+ ->action([SiteController::class, 'index'])
->name('index'),
)
->host('backend.{_host}')
->namePrefix('backend/'),
Route::get('/backend')
- ->action([\App\Backend\Controller\SiteController::class, 'index'])
+ ->action([SiteController::class, 'index'])
->name('index'),
];
diff --git a/config/routes.php b/blog/config/common/routes/routes.php
similarity index 88%
rename from config/routes.php
rename to blog/config/common/routes/routes.php
index c892ba3ed..a2a7cb58c 100644
--- a/config/routes.php
+++ b/blog/config/common/routes/routes.php
@@ -2,6 +2,8 @@
declare(strict_types=1);
+use App\Auth\Controller\AuthController;
+use App\Auth\Controller\SignupController;
use App\Blog\Archive\ArchiveController;
use App\Blog\BlogController;
use App\Blog\CommentController;
@@ -10,8 +12,6 @@
use App\Blog\Tag\TagController;
use App\Contact\ContactController;
use App\Controller\Actions\ApiInfo;
-use App\Auth\Controller\AuthController;
-use App\Auth\Controller\SignupController;
use App\Controller\SiteController;
use App\Middleware\AccessChecker;
use App\Middleware\ApiDataWrapper;
@@ -28,8 +28,10 @@
use Yiisoft\Router\CurrentRoute;
use Yiisoft\Router\Group;
use Yiisoft\Router\Route;
+use Yiisoft\Router\UrlGeneratorInterface;
use Yiisoft\Swagger\Middleware\SwaggerJson;
use Yiisoft\Swagger\Middleware\SwaggerUi;
+use Yiisoft\Yii\Middleware\CorsAllowAll;
use Yiisoft\Yii\Middleware\HttpCache;
use Yiisoft\Yii\RateLimiter\Counter;
use Yiisoft\Yii\RateLimiter\LimitRequestsMiddleware;
@@ -56,7 +58,7 @@
->middleware(fn (
ResponseFactoryInterface $responseFactory,
StorageInterface $storage
- ) => new LimitRequestsMiddleware(new Counter($storage, 5, 5), $responseFactory))
+ ) => new LimitRequestsMiddleware(new Counter($storage, 10, 10), $responseFactory))
->action([SignupController::class, 'signup'])
->name('auth/signup'),
@@ -100,11 +102,10 @@
// Blog routes
Group::create('/blog')
->routes(
- // Index
+ // Index
Route::get('[/page{page:\d+}]')
->middleware(
- fn (HttpCache $httpCache, PostRepository $postRepository) =>
- $httpCache->withLastModified(function (ServerRequestInterface $request, $params) use ($postRepository) {
+ fn (HttpCache $httpCache, PostRepository $postRepository) => $httpCache->withLastModified(function (ServerRequestInterface $request, $params) use ($postRepository) {
return $postRepository
->getMaxUpdatedAt()
->getTimestamp();
@@ -127,9 +128,9 @@
// Post page
Route::get('/page/{slug}')
->middleware(
- fn (HttpCache $httpCache, PostRepository $postRepository, CurrentRoute $currentRoute) =>
- $httpCache->withEtagSeed(function (ServerRequestInterface $request, $params) use ($postRepository, $currentRoute) {
+ fn (HttpCache $httpCache, PostRepository $postRepository, CurrentRoute $currentRoute) => $httpCache->withEtagSeed(function (ServerRequestInterface $request, $params) use ($postRepository, $currentRoute) {
$post = $postRepository->findBySlug($currentRoute->getArgument('slug'));
+
return $post->getSlug() . '-' . $post
->getUpdatedAt()
->getTimestamp();
@@ -144,7 +145,7 @@
// Archive
Group::create('/archive')
->routes(
- // Index page
+ // Index page
Route::get('')
->action([ArchiveController::class, 'index'])
->name('blog/archive/index'),
@@ -164,14 +165,17 @@
),
// Swagger routes
- Group::create('/swagger')
+ Group::create('/docs')
->routes(
Route::get('')
->middleware(FormatDataResponseAsHtml::class)
- ->action(fn (SwaggerUi $swaggerUi) => $swaggerUi->withJsonUrl('/swagger/json-url'))
+ ->action(function (SwaggerUi $swaggerUi, UrlGeneratorInterface $urlGenerator) {
+ return $swaggerUi->withJsonUrl($urlGenerator->getUriPrefix() . '/docs/openapi.json');
+ })
->name('swagger/index'),
- Route::get('/json-url')
+ Route::get('/openapi.json')
->middleware(FormatDataResponseAsJson::class)
- ->action(SwaggerJson::class),
+ ->middleware(CorsAllowAll::class)
+ ->action([SwaggerJson::class, 'process']),
),
];
diff --git a/blog/config/console/commands.php b/blog/config/console/commands.php
new file mode 100644
index 000000000..61f564648
--- /dev/null
+++ b/blog/config/console/commands.php
@@ -0,0 +1,15 @@
+ Serve::class,
+ 'user/create' => App\User\Console\CreateCommand::class,
+ 'user/assignRole' => App\User\Console\AssignRoleCommand::class,
+ 'fixture/add' => App\Command\Fixture\AddCommand::class,
+ 'fixture/schema/clear' => App\Command\Fixture\SchemaClearCommand::class,
+ 'router/list' => App\Command\Router\ListCommand::class,
+ 'translator/translate' => App\Command\Translation\TranslateCommand::class,
+];
diff --git a/config/console/translator-extractor.php b/blog/config/console/di/translator-extractor.php
similarity index 100%
rename from config/console/translator-extractor.php
rename to blog/config/console/di/translator-extractor.php
index c4685bbcc..39d9b7181 100644
--- a/config/console/translator-extractor.php
+++ b/blog/config/console/di/translator-extractor.php
@@ -5,8 +5,8 @@
use Yiisoft\Aliases\Aliases;
use Yiisoft\Definitions\DynamicReference;
use Yiisoft\Translator\Message\Php\MessageSource;
-use Yiisoft\TranslatorExtractor\Extractor;
use Yiisoft\TranslatorExtractor\CategorySource as ExtractorCategorySource;
+use Yiisoft\TranslatorExtractor\Extractor;
/** @var array $params */
diff --git a/config/events-console.php b/blog/config/console/events.php
similarity index 100%
rename from config/events-console.php
rename to blog/config/console/events.php
diff --git a/blog/config/console/params.php b/blog/config/console/params.php
new file mode 100644
index 000000000..e21790626
--- /dev/null
+++ b/blog/config/console/params.php
@@ -0,0 +1,14 @@
+ [
+ 'name' => Application::NAME,
+ 'version' => Application::VERSION,
+ 'autoExit' => false,
+ 'commands' => require __DIR__ . '/commands.php',
+ ],
+];
diff --git a/config/prod/params.php b/blog/config/environments/dev/params.php
similarity index 100%
rename from config/prod/params.php
rename to blog/config/environments/dev/params.php
diff --git a/blog/config/environments/prod/params.php b/blog/config/environments/prod/params.php
new file mode 100644
index 000000000..3e62e040b
--- /dev/null
+++ b/blog/config/environments/prod/params.php
@@ -0,0 +1,9 @@
+ [
+ 'enabled' => false,
+ ],
+];
diff --git a/blog/config/environments/test/params.php b/blog/config/environments/test/params.php
new file mode 100644
index 000000000..3e62e040b
--- /dev/null
+++ b/blog/config/environments/test/params.php
@@ -0,0 +1,9 @@
+ [
+ 'enabled' => false,
+ ],
+];
diff --git a/config/web/application.php b/blog/config/web/di/application.php
similarity index 66%
rename from config/web/application.php
rename to blog/config/web/di/application.php
index d273ce84e..76fc28aec 100644
--- a/config/web/application.php
+++ b/blog/config/web/di/application.php
@@ -7,6 +7,7 @@
use Yiisoft\Definitions\Reference;
use Yiisoft\Middleware\Dispatcher\MiddlewareDispatcher;
use Yiisoft\Yii\Middleware\Locale;
+use Yiisoft\Yii\Middleware\Subfolder;
/** @var array $params */
@@ -22,8 +23,13 @@
],
Locale::class => [
'__construct()' => [
- 'locales' => $params['locale']['locales'],
- 'ignoredRequests' => $params['locale']['ignoredRequests'],
+ 'supportedLocales' => $params['locale']['locales'],
+ 'ignoredRequestUrlPatterns' => $params['locale']['ignoredRequests'],
+ ],
+ ],
+ Subfolder::class => [
+ '__construct()' => [
+ 'prefix' => !empty(trim($_ENV['BASE_URL'] ?? '', '/')) ? $_ENV['BASE_URL'] : null,
],
],
];
diff --git a/config/web/auth.php b/blog/config/web/di/auth.php
similarity index 100%
rename from config/web/auth.php
rename to blog/config/web/di/auth.php
index 635d3b145..558c92b71 100644
--- a/config/web/auth.php
+++ b/blog/config/web/di/auth.php
@@ -9,10 +9,10 @@
use Psr\Log\LoggerInterface;
use Yiisoft\Access\AccessCheckerInterface;
use Yiisoft\Auth\IdentityRepositoryInterface;
-use Yiisoft\Definitions\Reference;
use Yiisoft\Cookies\CookieEncryptor;
use Yiisoft\Cookies\CookieMiddleware;
use Yiisoft\Cookies\CookieSigner;
+use Yiisoft\Definitions\Reference;
use Yiisoft\Session\SessionInterface;
use Yiisoft\User\CurrentUser;
use Yiisoft\User\Login\Cookie\CookieLogin;
diff --git a/config/web/comment-service.php b/blog/config/web/di/comment-service.php
similarity index 100%
rename from config/web/comment-service.php
rename to blog/config/web/di/comment-service.php
diff --git a/config/web/contact-mailer.php b/blog/config/web/di/contact-mailer.php
similarity index 100%
rename from config/web/contact-mailer.php
rename to blog/config/web/di/contact-mailer.php
diff --git a/blog/config/web/di/middleware-dispatcher.php b/blog/config/web/di/middleware-dispatcher.php
new file mode 100644
index 000000000..65962fbe0
--- /dev/null
+++ b/blog/config/web/di/middleware-dispatcher.php
@@ -0,0 +1,23 @@
+ [
+ 'class' => CompositeParametersResolver::class,
+ '__construct()' => [
+ Reference::to(HydratorAttributeParametersResolver::class),
+ Reference::to(RequestInputParametersResolver::class),
+ ],
+ ],
+];
diff --git a/config/web/rate-limit.php b/blog/config/web/di/rate-limit.php
similarity index 99%
rename from config/web/rate-limit.php
rename to blog/config/web/di/rate-limit.php
index d8477946d..37712632b 100644
--- a/config/web/rate-limit.php
+++ b/blog/config/web/di/rate-limit.php
@@ -2,18 +2,19 @@
declare(strict_types=1);
-use Yiisoft\Yii\RateLimiter\CounterInterface;
-use Yiisoft\Yii\RateLimiter\Storage\StorageInterface;
-use Yiisoft\Yii\RateLimiter\Counter;
-use Yiisoft\Cache\File\FileCache;
use Yiisoft\Aliases\Aliases;
+use Yiisoft\Cache\File\FileCache;
+use Yiisoft\Yii\RateLimiter\Counter;
+use Yiisoft\Yii\RateLimiter\CounterInterface;
use Yiisoft\Yii\RateLimiter\Storage\SimpleCacheStorage;
+use Yiisoft\Yii\RateLimiter\Storage\StorageInterface;
/** @var array $params */
return [
StorageInterface::class => function (Aliases $aliases) {
$cache = new FileCache($aliases->get('@runtime/rate-limiter'));
+
return new SimpleCacheStorage($cache);
},
CounterInterface::class => [
diff --git a/blog/config/web/events.php b/blog/config/web/events.php
new file mode 100644
index 000000000..c8373efd0
--- /dev/null
+++ b/blog/config/web/events.php
@@ -0,0 +1,17 @@
+ [
+ static fn(Timer $timer) => $timer->start('overall'),
+ ],
+ SetLocaleEvent::class => [
+ static fn(TranslatorInterface $translator, SetLocaleEvent $event) => $translator->setLocale($event->getLocale()),
+ ],
+];
diff --git a/blog/config/web/params.php b/blog/config/web/params.php
new file mode 100644
index 000000000..a2e8992cb
--- /dev/null
+++ b/blog/config/web/params.php
@@ -0,0 +1,36 @@
+ [
+ RequestCatcherMiddleware::class,
+ ErrorCatcher::class,
+ SentryMiddleware::class,
+ SessionMiddleware::class,
+ CookieMiddleware::class,
+ CookieLoginMiddleware::class,
+ Subfolder::class,
+ Locale::class,
+ Router::class,
+ ],
+
+ 'locale' => [
+ 'locales' => ['en' => 'en-US', 'ru' => 'ru-RU', 'id' => 'id-ID', 'sk' => 'sk-SK', 'de' => 'de-DE'],
+ 'ignoredRequests' => [
+ '/gii**',
+ '/debug**',
+ '/inspect**',
+ ],
+ ],
+];
diff --git a/blog/configuration.php b/blog/configuration.php
new file mode 100644
index 000000000..918ce8a47
--- /dev/null
+++ b/blog/configuration.php
@@ -0,0 +1,80 @@
+ [
+ 'params' => [
+ 'common/params.php',
+ ],
+ 'params-web' => [
+ '$params',
+ 'web/params.php',
+ ],
+ 'params-console' => [
+ '$params',
+ 'console/params.php',
+ ],
+ 'di' => 'common/di/*.php',
+ 'di-web' => [
+ '$di',
+ 'web/di/*.php',
+ ],
+ 'di-console' => '$di',
+ 'di-providers' => [],
+ 'di-providers-web' => [
+ '$di-providers',
+ ],
+ 'di-providers-console' => [
+ '$di-providers',
+ ],
+ 'di-delegates' => [],
+ 'di-delegates-web' => [
+ '$di-delegates',
+ ],
+ 'di-delegates-console' => [
+ '$di-delegates',
+ ],
+ 'events' => [],
+ 'events-web' => [
+ '$events',
+ 'web/events.php',
+ ],
+ 'events-console' => [
+ '$events',
+ 'console/events.php',
+ ],
+ 'app-routes' => [
+ 'common/routes/*.php',
+ ],
+ 'bootstrap' => [
+ 'common/bootstrap.php',
+ ],
+ 'bootstrap-web' => [
+ '$bootstrap',
+ ],
+ 'bootstrap-console' => [
+ '$bootstrap',
+ ],
+ ],
+ 'config-plugin-environments' => [
+ 'dev' => [
+ 'params' => [
+ 'environments/dev/params.php',
+ ],
+ ],
+ 'prod' => [
+ 'params' => [
+ 'environments/prod/params.php',
+ ],
+ ],
+ 'test' => [
+ 'params' => [
+ 'environments/test/params.php',
+ ],
+ ],
+ ],
+ 'config-plugin-options' => [
+ 'source-directory' => 'config',
+ ],
+];
diff --git a/dependency-checker.json b/blog/dependency-checker.json
similarity index 100%
rename from dependency-checker.json
rename to blog/dependency-checker.json
diff --git a/blog/docker-compose.yml b/blog/docker-compose.yml
new file mode 100644
index 000000000..bdbd304ac
--- /dev/null
+++ b/blog/docker-compose.yml
@@ -0,0 +1,10 @@
+services:
+ php:
+ image: yiisoftware/yii-php:8.3-apache
+ working_dir: /app
+ volumes:
+ - ./:/app
+ # host-volume for composer cache
+ - ~/.composer-docker/cache:/root/.composer/cache:delegated
+ ports:
+ - "30080:80"
diff --git a/blog/docker/dev/nginx/Dockerfile b/blog/docker/dev/nginx/Dockerfile
new file mode 100644
index 000000000..b98399633
--- /dev/null
+++ b/blog/docker/dev/nginx/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx:1.21.1-alpine
+
+RUN apk add --no-cache curl
+
+WORKDIR /app/public
+
+COPY docker/dev/nginx/nginx.conf /etc/nginx/conf.d/default.conf
+COPY public ./
+
diff --git a/blog/docker/dev/nginx/nginx.conf b/blog/docker/dev/nginx/nginx.conf
new file mode 100644
index 000000000..08a529efd
--- /dev/null
+++ b/blog/docker/dev/nginx/nginx.conf
@@ -0,0 +1,49 @@
+server {
+ listen 80 default_server;
+ server_name default;
+ client_max_body_size 15m;
+ root /app/public;
+ resolver 127.0.0.11 ipv6=off;
+ server_tokens off;
+
+ location /health {
+ add_header Content-Type text/plain;
+ access_log off;
+ return 200 'alive';
+ }
+
+ location /assets {
+ root /app/public;
+ }
+
+ location / {
+ add_header 'Access-Control-Allow-Origin' '*' always;
+ add_header 'Access-Control-Allow-Credentials' 'true' always;
+ add_header 'Access-Control-Allow-Methods' 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS' always;
+ add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;
+ add_header 'Access-Control-Max-Age' 1728000;
+ if ($request_method = 'OPTIONS') {
+ add_header 'Content-Type' 'text/plain; charset=utf-8';
+ add_header 'Content-Length' 0;
+ return 204;
+ }
+ try_files $uri /index.php?$args;
+ }
+
+ location ~ ^/index\.php(/|$) {
+ set $upstream blog-backend:9000;
+ fastcgi_read_timeout 60;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ fastcgi_pass $upstream;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param SERVER_NAME $server_name;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ }
+
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+}
diff --git a/blog/docker/dev/php/Dockerfile b/blog/docker/dev/php/Dockerfile
new file mode 100644
index 000000000..a179d8c36
--- /dev/null
+++ b/blog/docker/dev/php/Dockerfile
@@ -0,0 +1,70 @@
+# the different stages of this Dockerfile are meant to be built into separate images
+# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
+# https://docs.docker.com/compose/compose-file/#target
+
+
+# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
+FROM php:8.1-fpm-alpine as stage
+
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+
+ENV COMPOSER_ALLOW_SUPERUSER=1
+ENV PATH="${PATH}:/root/.composer/vendor/bin"
+
+RUN set -eux \
+ && apk add --no-cache \
+ acl fcgi file gettext git nano curl \
+ && apk add --no-cache --virtual .build-deps \
+ $PHPIZE_DEPS icu-dev libzip-dev zlib-dev \
+ \
+ && docker-php-ext-configure zip \
+ && docker-php-ext-install -j$(nproc) intl zip \
+ && docker-php-ext-enable opcache \
+ \
+ && runDeps="$( \
+ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
+ | tr ',' '\n' \
+ | sort -u \
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
+ )" \
+ && apk add --no-cache --virtual .pgsql-deps \
+ $runDeps postgresql-dev so:libpq.so.5 \
+ && docker-php-ext-install -j$(nproc) pdo_pgsql
+
+RUN apk add oniguruma-dev \
+ && docker-php-ext-install mbstring \
+ \
+ && apk add --repository http://dl-3.alpinelinux.org/alpine/edge/community \
+ rabbitmq-c-dev \
+ && pecl install xdebug-3.1.4 amqp-1.11.0 \
+ && docker-php-ext-enable xdebug amqp \
+ \
+ && apk del .build-deps \
+ && pecl clear-cache \
+ && rm -rf /tmp/pear \
+ && docker-php-source delete \
+ && rm -rf /var/cache/apk/*
+
+RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
+
+WORKDIR /app
+
+COPY docker/dev/php/conf.d/ $PHP_INI_DIR/conf.d/
+COPY docker/dev/php/php-fpm.d/ /usr/local/etc/php-fpm.d/
+
+COPY composer.json composer.lock* ./
+
+RUN composer install --no-plugins --no-scripts --prefer-dist \
+ && composer clear-cache
+
+COPY ./ ./
+
+RUN composer run-script post-install-cmd
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s \
+ CMD REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect 127.0.0.1:9000
+
+RUN chmod 0555 ./docker/docker-entrypoint.sh
+ENTRYPOINT ["docker/docker-entrypoint.sh"]
+
+CMD ["php-fpm"]
diff --git a/blog/docker/dev/php/conf.d/php.ini b/blog/docker/dev/php/conf.d/php.ini
new file mode 100644
index 000000000..c80827193
--- /dev/null
+++ b/blog/docker/dev/php/conf.d/php.ini
@@ -0,0 +1,28 @@
+;apc.enable_cli = 1
+date.timezone = UTC
+session.auto_start = Off
+short_open_tag = Off
+expose_php = Off
+upload_max_filesize = 15M
+post_max_size = 150M
+memory_limit = 256M
+
+# https://symfony.com/doc/current/performance.html
+opcache.interned_strings_buffer = 16
+opcache.max_accelerated_files = 20000
+opcache.memory_consumption = 256
+realpath_cache_size = 4096K
+realpath_cache_ttl = 600
+max_execution_time = 300
+max_input_time = 300
+
+[xdebug]
+xdebug.mode = develop,debug
+xdebug.client_host = host.docker.internal
+;xdebug.discover_client_host=true
+xdebug.show_error_trace = 0
+xdebug.start_with_request = trigger
+;xdebug.client_host=host-gateway
+;xdebug.start_with_request=
+xdebug.client_port = 9001
+xdebug.log_level = 10
diff --git a/blog/docker/dev/php/php-fpm.d/www.conf b/blog/docker/dev/php/php-fpm.d/www.conf
new file mode 100644
index 000000000..55df850b8
--- /dev/null
+++ b/blog/docker/dev/php/php-fpm.d/www.conf
@@ -0,0 +1,20 @@
+[global]
+daemonize = no
+process_control_timeout = 20
+error_log = /proc/self/fd/2
+
+[www]
+user = www-data
+group = www-data
+listen = 9000
+listen.mode = 0666
+ping.path = /ping
+ping.response = pong
+clear_env = off
+pm = dynamic
+pm.status_path = /status
+pm.max_children = 25
+pm.start_servers = 10
+pm.min_spare_servers = 5
+pm.max_spare_servers = 20
+pm.max_requests = 500
diff --git a/blog/docker/docker-entrypoint.sh b/blog/docker/docker-entrypoint.sh
new file mode 100644
index 000000000..fd0a4a126
--- /dev/null
+++ b/blog/docker/docker-entrypoint.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -e
+
+ls -la
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+ set -- php-fpm "$@"
+fi
+set -e
+
+if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'yii' ]; then
+ setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX runtime public
+ setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX runtime public
+fi
+
+exec "$@"
diff --git a/blog/docker/prod/nginx/Dockerfile b/blog/docker/prod/nginx/Dockerfile
new file mode 100644
index 000000000..94cf7d82f
--- /dev/null
+++ b/blog/docker/prod/nginx/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx:1.21.1-alpine
+
+RUN apk add --no-cache curl
+
+COPY docker/prod/nginx/nginx.conf /etc/nginx/conf.d/default.conf
+
+WORKDIR /app/public
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s CMD curl --fail http://127.0.0.1/health || exit 1
diff --git a/blog/docker/prod/nginx/nginx.conf b/blog/docker/prod/nginx/nginx.conf
new file mode 100644
index 000000000..b61f22f0c
--- /dev/null
+++ b/blog/docker/prod/nginx/nginx.conf
@@ -0,0 +1,48 @@
+server {
+ listen 80 default_server;
+ root /app/public;
+ client_max_body_size 15m;
+ resolver 127.0.0.11 ipv6=off;
+ server_tokens off;
+
+ location /health {
+ add_header Content-Type text/plain;
+ access_log off;
+ return 200 'alive';
+ }
+
+ location /assets {
+ root /app/public;
+ }
+
+ location / {
+ add_header 'Access-Control-Allow-Origin' '*' always;
+ add_header 'Access-Control-Allow-Credentials' 'true' always;
+ add_header 'Access-Control-Allow-Methods' 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS' always;
+ add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;
+ add_header 'Access-Control-Max-Age' 1728000;
+ if ($request_method = 'OPTIONS') {
+ add_header 'Content-Type' 'text/plain; charset=utf-8';
+ add_header 'Content-Length' 0;
+ return 204;
+ }
+ try_files $uri /index.php?$args;
+ }
+
+ location ~ ^/index\.php(/|$) {
+ set $upstream blog-backend:9000;
+ fastcgi_read_timeout 60;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+ fastcgi_pass $upstream;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param SERVER_NAME $server_name;
+ fastcgi_param PATH_INFO $fastcgi_path_info;
+ }
+
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+}
diff --git a/blog/docker/prod/php/Dockerfile b/blog/docker/prod/php/Dockerfile
new file mode 100644
index 000000000..8c221b3ce
--- /dev/null
+++ b/blog/docker/prod/php/Dockerfile
@@ -0,0 +1,72 @@
+# the different stages of this Dockerfile are meant to be built into separate images
+# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
+# https://docs.docker.com/compose/compose-file/#target
+
+
+# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
+FROM php:8.1-fpm-alpine as stage
+
+COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
+
+ENV COMPOSER_ALLOW_SUPERUSER=1
+ENV PATH="${PATH}:/root/.composer/vendor/bin"
+
+RUN set -eux \
+ && apk add --no-cache \
+ acl fcgi file gettext git nano curl \
+ && apk add --no-cache --virtual .build-deps \
+ $PHPIZE_DEPS icu-dev libzip-dev zlib-dev \
+ \
+ && docker-php-ext-configure zip \
+ && docker-php-ext-install -j$(nproc) intl zip \
+ && docker-php-ext-enable opcache \
+ \
+ && runDeps="$( \
+ scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
+ | tr ',' '\n' \
+ | sort -u \
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
+ )" \
+ && apk add --no-cache --virtual .pgsql-deps \
+ $runDeps postgresql-dev so:libpq.so.5 \
+ && docker-php-ext-install -j$(nproc) pdo_pgsql \
+ \
+ && apk add oniguruma-dev \
+ && docker-php-ext-install mbstring \
+ \
+ && apk add --repository http://dl-3.alpinelinux.org/alpine/edge/community \
+ rabbitmq-c-dev \
+ && pecl install amqp-1.11.0 \
+ && docker-php-ext-enable amqp \
+ && apk del .build-deps \
+ && pecl clear-cache \
+ && rm -rf /tmp/pear \
+ && docker-php-source delete \
+ && rm -rf /var/cache/apk/*
+
+RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
+
+WORKDIR /app
+
+COPY docker/prod/php/conf.d/ $PHP_INI_DIR/conf.d/
+COPY docker/prod/php/php-fpm.d/ /usr/local/etc/php-fpm.d/
+
+COPY composer.json composer.lock* ./
+
+RUN set -eux \
+ && composer install --no-plugins --no-scripts --prefer-dist \
+ && composer clear-cache
+
+COPY ./ ./
+
+RUN set -eux \
+ && composer dump-autoload --classmap-authoritative \
+ && composer run-script --no-dev post-install-cmd
+
+HEALTHCHECK --interval=30s --timeout=5s --start-period=1s \
+ CMD REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect 127.0.0.1:9000
+
+RUN chmod 0555 ./docker/docker-entrypoint.sh
+ENTRYPOINT ["docker/docker-entrypoint.sh"]
+
+CMD ["php-fpm"]
diff --git a/blog/docker/prod/php/conf.d/php.ini b/blog/docker/prod/php/conf.d/php.ini
new file mode 100644
index 000000000..b723da7a0
--- /dev/null
+++ b/blog/docker/prod/php/conf.d/php.ini
@@ -0,0 +1,18 @@
+;apc.enable_cli = 1
+date.timezone = UTC
+session.auto_start = Off
+short_open_tag = Off
+expose_php = Off
+upload_max_filesize = 15M
+post_max_size = 150M
+memory_limit = 512M
+display_errors = Off
+
+# https://symfony.com/doc/current/performance.html
+opcache.interned_strings_buffer = 16
+opcache.max_accelerated_files = 20000
+opcache.memory_consumption = 256
+opcache.validate_timestamps = 0
+realpath_cache_size = 4096K
+realpath_cache_ttl = 600
+opcache.preload_user = www-data
diff --git a/blog/docker/prod/php/php-fpm.d/www.conf b/blog/docker/prod/php/php-fpm.d/www.conf
new file mode 100644
index 000000000..81ab6ab2a
--- /dev/null
+++ b/blog/docker/prod/php/php-fpm.d/www.conf
@@ -0,0 +1,21 @@
+[global]
+daemonize = no
+process_control_timeout = 20
+error_log = /proc/self/fd/2
+
+[www]
+user = www-data
+group = www-data
+listen = 9000
+listen.mode = 0666
+clear_env = off
+; access.suppress_path[] = /ping
+ping.path = /ping
+ping.response = pong
+pm = dynamic
+pm.status_path = /status
+pm.max_children = 25
+pm.start_servers = 10
+pm.min_spare_servers = 5
+pm.max_spare_servers = 20
+pm.max_requests = 500
diff --git a/blog/package-lock.json b/blog/package-lock.json
new file mode 100644
index 000000000..aaad2a1c1
--- /dev/null
+++ b/blog/package-lock.json
@@ -0,0 +1,13 @@
+{
+ "name": "yii3-demo-blog",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "bootstrap": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
+ "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg=="
+ }
+ }
+}
diff --git a/blog/package.json b/blog/package.json
new file mode 100644
index 000000000..ec1ad179b
--- /dev/null
+++ b/blog/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "yii3-demo-blog",
+ "version": "1.0.0",
+ "description": "Yii3 Demo Blog",
+ "dependencies": {
+ "bootstrap": "^5.3.1"
+ },
+ "devDependencies": {},
+ "license": "BSD-3-Clause"
+}
diff --git a/blog/phpunit.xml.dist b/blog/phpunit.xml.dist
new file mode 100644
index 000000000..a795c6293
--- /dev/null
+++ b/blog/phpunit.xml.dist
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+ ./tests
+
+
+
+
+
+ ./src
+
+
+
diff --git a/psalm.xml b/blog/psalm.xml
similarity index 92%
rename from psalm.xml
rename to blog/psalm.xml
index a789ba20d..2a591ffa1 100755
--- a/psalm.xml
+++ b/blog/psalm.xml
@@ -1,7 +1,6 @@
run();
diff --git a/blog/public/robots.txt b/blog/public/robots.txt
new file mode 100644
index 000000000..6f27bb66a
--- /dev/null
+++ b/blog/public/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:
\ No newline at end of file
diff --git a/resources/asset/css/site.css b/blog/resources/asset/css/site.css
similarity index 100%
rename from resources/asset/css/site.css
rename to blog/resources/asset/css/site.css
diff --git a/resources/asset/js/app.js b/blog/resources/asset/js/app.js
similarity index 100%
rename from resources/asset/js/app.js
rename to blog/resources/asset/js/app.js
diff --git a/resources/backend/views/site/index.php b/blog/resources/backend/views/site/index.php
similarity index 100%
rename from resources/backend/views/site/index.php
rename to blog/resources/backend/views/site/index.php
diff --git a/resources/mail/layouts/html.php b/blog/resources/mail/layouts/html.php
similarity index 100%
rename from resources/mail/layouts/html.php
rename to blog/resources/mail/layouts/html.php
diff --git a/blog/resources/messages/de/app.php b/blog/resources/messages/de/app.php
new file mode 100644
index 000000000..d79a610d0
--- /dev/null
+++ b/blog/resources/messages/de/app.php
@@ -0,0 +1,55 @@
+ 'API',
+ 'gridview.create.at' => 'Erzeugt am',
+ 'gridview.login' => 'Anmelden',
+ 'gridview.profile' => 'Profil',
+ 'gridview.title' => 'Liste der Benutzer',
+ 'home.caption.slide1' => 'Hello, everyone!
Ein toller Tag, um Yii 3 auszuprobieren, richtig?
',
+ 'home.caption.slide2' => 'Der Code wartet!
Schau dir den Projektcode an. Er ist nicht ideal, da es sich auch um eine Entwicklungs-Sandbox handelt, bietet aber einen mittelmäßigen Überblick über die Funktionen von Yii 3.
',
+ 'home.caption.slide3' => 'Wir brauchen Rückmeldungen!
Bitte gib uns deine Rückmeldungen über die im README genannten Telegram- und Slack-Kanäle.
',
+ 'layout.add.post' => 'Neuer Beitrag',
+ 'layout.add.random-content' => 'Füge zufälligen Inhalt ein',
+ 'layout.add.tag' => 'Neues Stichwort',
+ 'layout.add' => 'Hinzufügen',
+ 'layout.archive.for-year' => 'Archiv für {year}',
+ 'layout.archive' => 'Archiv',
+ 'layout.blog' => 'Blog',
+ 'layout.change-language' => 'Kanal Sprache',
+ 'layout.console' => 'Konsole',
+ 'layout.content' => 'Inhalt',
+ 'layout.create.new-user' => 'Erstelle neuen Benutzer',
+ 'layout.db.schema' => 'DB Schema',
+ 'layout.go.home' => 'Zurück zur Startseite',
+ 'layout.login' => 'Anmelden',
+ 'layout.migrations' => 'Migrationen',
+ 'layout.no-records' => 'Keine Einträge',
+ 'layout.not-found' => 'Nicht gefunden',
+ 'layout.page.not-found' => 'Die Seite {url} konnte nicht gefunden werden.',
+ 'layout.pagination-summary' => 'Zeige {pageSize} von {total} Beiträgen',
+ 'layout.password-verify' => 'Wiederhole Passwort',
+ 'layout.password' => 'Passwort',
+ 'layout.rbac.assign-role' => 'Rolle zuweisen',
+ 'layout.remember' => 'Erinnere dich an mich',
+ 'layout.reset' => 'Zurücksetzen',
+ 'layout.show-more' => 'Zeige mehr',
+ 'layout.submit' => 'Absenden',
+ 'layout.title' => 'Titel',
+ 'layout.total.posts' => 'Insgesamt {count} Beiträge',
+ 'menu.blog' => 'Blog',
+ 'menu.comments-feed' => 'Kommentar-Feed',
+ 'menu.contact' => 'Kontakt',
+ 'menu.language' => 'Sprache',
+ 'menu.login' => 'Anmelden',
+ 'menu.logout' => 'Abmelden ({login})',
+ 'menu.signup' => 'Registrieren',
+ 'menu.swagger' => 'Swagger',
+ 'menu.users' => 'Benutzer',
+ 'signup' => 'Registrieren',
+ 'validator.invalid.login.password' => 'Ungültiger Benutzername oder Passwort',
+ 'validator.password.not.match' => 'Passwörter stimmen nicht überein',
+ 'validator.user.exist' => 'Ein Benutzer mit diesem Namen ist bereits vorhanden',
+];
diff --git a/resources/messages/en/app.php b/blog/resources/messages/en/app.php
similarity index 98%
rename from resources/messages/en/app.php
rename to blog/resources/messages/en/app.php
index 00503b12f..d26e3d3c5 100644
--- a/resources/messages/en/app.php
+++ b/blog/resources/messages/en/app.php
@@ -1,5 +1,7 @@
'API',
'gridview.create.at' => 'Create at',
diff --git a/resources/messages/id/app.php b/blog/resources/messages/id/app.php
similarity index 99%
rename from resources/messages/id/app.php
rename to blog/resources/messages/id/app.php
index 6c9565a6f..2d19202d1 100644
--- a/resources/messages/id/app.php
+++ b/blog/resources/messages/id/app.php
@@ -1,5 +1,7 @@
'Lampirkan file',
'email' => 'surel',
diff --git a/resources/messages/ru/app.php b/blog/resources/messages/ru/app.php
similarity index 99%
rename from resources/messages/ru/app.php
rename to blog/resources/messages/ru/app.php
index c67b7731c..e81ed1584 100644
--- a/resources/messages/ru/app.php
+++ b/blog/resources/messages/ru/app.php
@@ -1,5 +1,7 @@
'Авторизоваться',
'gridview.create.at' => 'Дата создания',
diff --git a/resources/messages/sk/app.php b/blog/resources/messages/sk/app.php
similarity index 99%
rename from resources/messages/sk/app.php
rename to blog/resources/messages/sk/app.php
index a8c3b19a0..6d07f9497 100644
--- a/resources/messages/sk/app.php
+++ b/blog/resources/messages/sk/app.php
@@ -1,5 +1,7 @@
'Prihlásiť sa',
'gridview.create.at' => 'Vytvorené',
diff --git a/resources/rbac/items.php b/blog/resources/rbac/items.php
similarity index 93%
rename from resources/rbac/items.php
rename to blog/resources/rbac/items.php
index 85e03a563..5f887936c 100644
--- a/resources/rbac/items.php
+++ b/blog/resources/rbac/items.php
@@ -1,5 +1,7 @@
[
'name' => 'admin',
diff --git a/resources/views/auth/login.php b/blog/resources/views/auth/login.php
similarity index 90%
rename from resources/views/auth/login.php
rename to blog/resources/views/auth/login.php
index e1abf88fe..a396e5482 100644
--- a/resources/views/auth/login.php
+++ b/blog/resources/views/auth/login.php
@@ -3,7 +3,7 @@
declare(strict_types=1);
use App\Auth\Form\LoginForm;
-use Yiisoft\Form\Field;
+use Yiisoft\FormModel\Field;
use Yiisoft\Html\Html;
use Yiisoft\Html\Tag\Form;
use Yiisoft\Router\UrlGeneratorInterface;
@@ -11,13 +11,12 @@
use Yiisoft\View\WebView;
/**
- * @var WebView $this
- * @var TranslatorInterface $translator
+ * @var WebView $this
+ * @var TranslatorInterface $translator
* @var UrlGeneratorInterface $urlGenerator
- * @var string $csrf
- * @var LoginForm $formModel
+ * @var string $csrf
+ * @var LoginForm $formModel
*/
-
$this->setTitle($translator->translate('layout.login'));
$error = $error ?? null;
diff --git a/resources/views/blog/_archive.php b/blog/resources/views/blog/_archive.php
similarity index 89%
rename from resources/views/blog/_archive.php
rename to blog/resources/views/blog/_archive.php
index 2644fdb25..521dfa129 100644
--- a/resources/views/blog/_archive.php
+++ b/blog/resources/views/blog/_archive.php
@@ -4,9 +4,9 @@
/**
* @var DataReaderInterface|string[][] $archive
- * @var TranslatorInterface $translator
- * @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var TranslatorInterface $translator
+ * @var UrlGeneratorInterface $urlGenerator
+ * @var WebView $this
*/
use Yiisoft\Data\Reader\DataReaderInterface;
@@ -42,7 +42,7 @@
echo Html::openTag('div', ['class' => 'd-flex justify-content-between align-items-center']);
// Print month name
echo Html::a(
- Date('F', mktime(0, 0, 0, (int)$month, 1, (int)$year)),
+ date('F', mktime(0, 0, 0, (int) $month, 1, (int) $year)),
$urlGenerator->generate('blog/archive/month', [
'year' => $year,
'month' => $month,
diff --git a/resources/views/blog/_topTags.php b/blog/resources/views/blog/_topTags.php
similarity index 82%
rename from resources/views/blog/_topTags.php
rename to blog/resources/views/blog/_topTags.php
index 2b002a0db..f0a3dcc0f 100644
--- a/resources/views/blog/_topTags.php
+++ b/blog/resources/views/blog/_topTags.php
@@ -4,9 +4,9 @@
/**
* @var DataReaderInterface|string[][] $tags
- * @var TranslatorInterface $translator
- * @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var TranslatorInterface $translator
+ * @var UrlGeneratorInterface $urlGenerator
+ * @var WebView $this
*/
use Yiisoft\Data\Reader\DataReaderInterface;
@@ -22,9 +22,9 @@
'list-group-item d-flex flex-column justify-content-between lh-condensed']
- );
+ 'li',
+ ['class' => 'list-group-item d-flex flex-column justify-content-between lh-condensed']
+);
$blockEnd = Html::closeTag('li');
echo $blockBegin;
if (count($tags)) {
diff --git a/resources/views/blog/archive/index.php b/blog/resources/views/blog/archive/index.php
similarity index 90%
rename from resources/views/blog/archive/index.php
rename to blog/resources/views/blog/archive/index.php
index d0a17ef26..a57d97528 100644
--- a/resources/views/blog/archive/index.php
+++ b/blog/resources/views/blog/archive/index.php
@@ -4,9 +4,9 @@
/**
* @var DataReaderInterface|string[][] $archive
- * @var TranslatorInterface $translator
- * @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var TranslatorInterface $translator
+ * @var UrlGeneratorInterface $urlGenerator
+ * @var WebView $this
*/
use Yiisoft\Data\Reader\DataReaderInterface;
@@ -52,7 +52,7 @@
echo Html::openTag('div', ['class' => 'mx-2 my-1']);
// Print month name
echo Html::a(
- Date('F', mktime(0, 0, 0, (int)$month, 1, (int)$year)),
+ date('F', mktime(0, 0, 0, (int) $month, 1, (int) $year)),
$urlGenerator->generate('blog/archive/month', [
'year' => $year,
'month' => $month,
diff --git a/resources/views/blog/archive/monthly-archive.php b/blog/resources/views/blog/archive/monthly-archive.php
similarity index 89%
rename from resources/views/blog/archive/monthly-archive.php
rename to blog/resources/views/blog/archive/monthly-archive.php
index 46ee60f2b..24b867a17 100644
--- a/resources/views/blog/archive/monthly-archive.php
+++ b/blog/resources/views/blog/archive/monthly-archive.php
@@ -3,12 +3,12 @@
declare(strict_types=1);
/**
- * @var int $year
- * @var int $month
- * @var OffsetPaginator $paginator
- * @var TranslatorInterface $translator
+ * @var int $year
+ * @var int $month
+ * @var OffsetPaginator $paginator
+ * @var TranslatorInterface $translator
* @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var WebView $this
*/
use App\Blog\Entity\Post;
diff --git a/resources/views/blog/archive/yearly-archive.php b/blog/resources/views/blog/archive/yearly-archive.php
similarity index 88%
rename from resources/views/blog/archive/yearly-archive.php
rename to blog/resources/views/blog/archive/yearly-archive.php
index dd018af91..d9c195014 100644
--- a/resources/views/blog/archive/yearly-archive.php
+++ b/blog/resources/views/blog/archive/yearly-archive.php
@@ -3,11 +3,11 @@
declare(strict_types=1);
/**
- * @var int $year
- * @var Post[]|DataReaderInterface $items
- * @var TranslatorInterface $translator
- * @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var int $year
+ * @var DataReaderInterface|Post[] $items
+ * @var TranslatorInterface $translator
+ * @var UrlGeneratorInterface $urlGenerator
+ * @var WebView $this
*/
use App\Blog\Entity\Post;
@@ -36,7 +36,7 @@
$monthName = '';
/** @var Post $item */
foreach ($items as $item) {
- $month = (int)$item
+ $month = (int) $item
->getPublishedAt()
->format('m');
diff --git a/resources/views/blog/comments/_comments.php b/blog/resources/views/blog/comments/_comments.php
similarity index 86%
rename from resources/views/blog/comments/_comments.php
rename to blog/resources/views/blog/comments/_comments.php
index dc8c170ec..336e2e472 100644
--- a/resources/views/blog/comments/_comments.php
+++ b/blog/resources/views/blog/comments/_comments.php
@@ -9,12 +9,11 @@
use Yiisoft\Translator\TranslatorInterface;
/**
- * @var KeysetPaginator $data
- * @var TranslatorInterface $translator
+ * @var KeysetPaginator $data
+ * @var TranslatorInterface $translator
* @var UrlGeneratorInterface $urlGenerator
- * @var AssetManager $assetManager
+ * @var AssetManager $assetManager
*/
-
?>
read() as $comment) { ?>
@@ -34,7 +33,7 @@
diff --git a/resources/views/blog/post/index.php b/blog/resources/views/blog/post/index.php
similarity index 88%
rename from resources/views/blog/post/index.php
rename to blog/resources/views/blog/post/index.php
index 965bee6e7..c42cc3df3 100644
--- a/resources/views/blog/post/index.php
+++ b/blog/resources/views/blog/post/index.php
@@ -3,12 +3,12 @@
declare(strict_types=1);
/**
- * @var Post $item
- * @var TranslatorInterface $translator
+ * @var Post $item
+ * @var TranslatorInterface $translator
* @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
- * @var bool $canEdit
- * @var string $slug
+ * @var WebView $this
+ * @var bool $canEdit
+ * @var string $slug
*/
use App\Blog\Entity\Post;
@@ -29,14 +29,14 @@
->format('H:i:s d.m.Y') ?> by
getUser()
->getLogin(),
- $urlGenerator->generate('user/profile', ['login' => $item
+ $urlGenerator->generate('user/profile', ['login' => $item
->getUser()
- ->getLogin()]),
- ['class' => 'mr-3']
- );
+ ->getLogin(), ]),
+ ['class' => 'mr-3']
+ );
if ($canEdit) {
echo Html::a(
'Edit',
@@ -71,13 +71,13 @@
= Html::a(
- $comment
+ $comment
->getUser()
->getLogin(),
- $urlGenerator->generate('user/profile', ['login' => $comment
+ $urlGenerator->generate('user/profile', ['login' => $comment
->getUser()
- ->getLogin()])
- ) ?>
+ ->getLogin(), ])
+ ) ?>
created at = $comment
->getCreatedAt()
diff --git a/resources/views/blog/tag/index.php b/blog/resources/views/blog/tag/index.php
similarity index 89%
rename from resources/views/blog/tag/index.php
rename to blog/resources/views/blog/tag/index.php
index dcb018085..4e6733b4d 100644
--- a/resources/views/blog/tag/index.php
+++ b/blog/resources/views/blog/tag/index.php
@@ -3,11 +3,11 @@
declare(strict_types=1);
/**
- * @var OffsetPaginator $paginator;
- * @var Tag $item
- * @var TranslatorInterface $translator
+ * @var OffsetPaginator $paginator;
+ * @var Tag $item
+ * @var TranslatorInterface $translator
* @var UrlGeneratorInterface $urlGenerator
- * @var WebView $this
+ * @var WebView $this
*/
use App\Blog\Entity\Post;
diff --git a/resources/views/layout/main.php b/blog/resources/views/layout/main.php
similarity index 91%
rename from resources/views/layout/main.php
rename to blog/resources/views/layout/main.php
index 2726ffce4..34634bc28 100644
--- a/resources/views/layout/main.php
+++ b/blog/resources/views/layout/main.php
@@ -19,18 +19,18 @@
/**
* @var UrlGeneratorInterface $urlGenerator
- * @var CurrentRoute $currentRoute
- * @var WebView $this
- * @var AssetManager $assetManager
- * @var TranslatorInterface $translator
- * @var string $content
+ * @var CurrentRoute $currentRoute
+ * @var WebView $this
+ * @var AssetManager $assetManager
+ * @var TranslatorInterface $translator
+ * @var string $content
*
* @see \App\ApplicationViewInjection
+ *
* @var User|null $user
- * @var string $csrf
- * @var string $brandLabel
+ * @var string $csrf
+ * @var string $brandLabel
*/
-
$assetManager->register(AppAsset::class);
$this->addCssFiles($assetManager->getCssFiles());
@@ -74,9 +74,9 @@
'label' => $translator->translate('menu.blog'),
'url' => $urlGenerator->generate('blog/index'),
'active' => StringHelper::startsWith(
- $currentRouteName,
- 'blog/'
- ) && $currentRouteName !== 'blog/comment/index',
+ $currentRouteName,
+ 'blog/'
+ ) && $currentRouteName !== 'blog/comment/index',
],
[
'label' => $translator->translate('menu.comments-feed'),
@@ -125,6 +125,10 @@
'label' => 'Indonesia',
'url' => $urlGenerator->generateFromCurrent(['_language' => 'id'], fallbackRouteName: 'site/index'),
],
+ [
+ 'label' => 'German',
+ 'url' => $urlGenerator->generateFromCurrent(['_language' => 'de'], fallbackRouteName: 'site/index'),
+ ],
],
],
[
@@ -147,7 +151,7 @@
)
->class('btn btn-primary')
. '
'
- . Form::tag()->close()
+ . Form::tag()->close(),
],
) ?>
= NavBar::end() ?>
@@ -193,4 +197,4 @@