From d3b373375aa673f75c4b81a649ec8e15ca275b70 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula <42547589+terabytesoftw@users.noreply.github.com> Date: Tue, 10 Oct 2023 07:17:20 -0300 Subject: [PATCH] Apply `Vertical Slices`. (#4) --- .codeclimate.yml | 28 - .editorconfig | 4 + .github/ISSUE_TEMPLATE.md | 13 + .github/PULL_REQUEST_TEMPLATE.md | 6 + .github/dependabot.yml | 16 + .github/workflows/build.yml | 33 + .github/workflows/dependency-check.yml | 35 + .github/workflows/static.yml | 33 + .scrutinizer.yml | 23 - .travis.yml | 67 - LICENSE | 21 + LICENSE.md | 29 - README.md | 156 +- changelog.md | 17 - codeception.yml | 20 +- composer-require-checker.json | 5 + composer.json | 95 +- composer.lock | 5218 ++++++++++------- config/appbasic.php | 87 - config/console.php | 57 +- config/defines.php | 12 - config/messages.php | 64 + config/params.php | 24 +- config/test.php | 71 +- config/web.php | 83 +- docs/CONFIG.md | 81 - docs/about.png | Bin 0 -> 79785 bytes docs/home.png | Bin 0 -> 80078 bytes docs/images/about.jpg | Bin 51408 -> 0 bytes docs/images/contact.jpg | Bin 74011 -> 0 bytes docs/images/home.jpg | Bin 50863 -> 0 bytes phpstan-yii-config.php | 5 + phpstan.neon | 22 + src/Framework/Asset/AppAsset.php | 36 + .../resource}/css/site.css | 0 src/Framework/resource/js/site.js | 89 + .../resource/layout/component/menu.php | 36 + src/Framework/resource/layout/footer.php | 106 + src/Framework/resource/layout/head.php | 20 + src/Framework/resource/layout/main.php | 59 + .../resource/message}/.gitkeep | 0 src/UseCase/About/AboutController.php | 20 + src/UseCase/About/view/index.php | 20 + src/UseCase/Contact/ContactController.php | 61 + src/UseCase/Contact/ContactForm.php | 44 + src/UseCase/Contact/view/index.php | 166 + src/UseCase/Controller.php | 37 + src/UseCase/Site/SiteController.php | 43 + .../site => UseCase/Site/view}/error.php | 28 +- .../site => UseCase/Site/view}/index.php | 16 +- src/assets/AppAsset.php | 27 - src/controllers/SiteController.php | 123 - src/forms/ContactForm.php | 34 - src/views/layouts/main.php | 124 - src/views/site/about.php | 22 - src/views/site/contact.php | 160 - tests/Acceptance.suite.yml | 18 + tests/Acceptance/About/IndexCest.php | 21 + tests/Acceptance/Contact/IndexCest.php | 21 + tests/Acceptance/Site/IndexCest.php | 21 + ...ctional.suite.yml => Functional.suite.yml} | 10 +- tests/Functional/Contact/IndexCest.php | 66 + .../AcceptanceTester.php | 15 +- tests/{_data => Support/Data}/.gitkeep | 0 .../FunctionalTester.php | 15 +- tests/{_support => Support}/UnitTester.php | 15 +- .../_generated}/.gitignore | 0 tests/{unit.suite.yml => Unit.suite.yml} | 8 +- tests/Unit/Contact/ContactFormTest.php | 42 + tests/_bootstrap.php | 34 +- tests/_data/stubs/UserIdentity.php | 61 - tests/_data/views/main.php | 4 - tests/_output/.gitignore | 2 +- tests/_output/c3tmp/codecoverage.serialized | Bin 23038 -> 0 bytes tests/_output/coverage.serialized | 1366 ----- tests/_output/coverage.xml | 172 - tests/_support/Helper/Acceptance.php | 10 - tests/_support/Helper/Functional.php | 10 - tests/_support/Helper/Unit.php | 10 - tests/_support/_generated/.gitignore | 2 - tests/acceptance.suite.yml | 20 - tests/acceptance/AboutCest.php | 32 - tests/acceptance/ContactCest.php | 85 - tests/acceptance/ErrorCest.php | 32 - tests/acceptance/IndexCest.php | 32 - tests/acceptance/_bootstrap.php | 0 tests/functional/ContactFormCest.php | 92 - tests/functional/_bootstrap.php | 0 tests/public/index.php | 18 - tests/unit/AppAssetTest.php | 126 - tests/unit/AppUserTest.php | 131 - tests/unit/ContactFormTest.php | 105 - tests/unit/_bootstrap.php | 0 {tests/public => web}/.htaccess | 0 {tests/public => web}/assets/.gitignore | 0 {tests/public => web}/favicon.ico | Bin web/image/yii.svg | 42 + web/image/yiiframework.svg | 8 + web/index-test.php | 17 + web/index.php | 25 + {tests/public => web}/robots.txt | 0 web/runtime/.gitignore | 2 + yii.bat | 4 +- 103 files changed, 4620 insertions(+), 5670 deletions(-) delete mode 100644 .codeclimate.yml create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/dependency-check.yml create mode 100644 .github/workflows/static.yml delete mode 100644 .scrutinizer.yml delete mode 100644 .travis.yml create mode 100644 LICENSE delete mode 100644 LICENSE.md delete mode 100644 changelog.md create mode 100644 composer-require-checker.json delete mode 100644 config/appbasic.php delete mode 100644 config/defines.php create mode 100644 config/messages.php delete mode 100644 docs/CONFIG.md create mode 100644 docs/about.png create mode 100644 docs/home.png delete mode 100644 docs/images/about.jpg delete mode 100644 docs/images/contact.jpg delete mode 100644 docs/images/home.jpg create mode 100644 phpstan-yii-config.php create mode 100644 phpstan.neon create mode 100644 src/Framework/Asset/AppAsset.php rename src/{assets => Framework/resource}/css/site.css (100%) create mode 100644 src/Framework/resource/js/site.js create mode 100644 src/Framework/resource/layout/component/menu.php create mode 100644 src/Framework/resource/layout/footer.php create mode 100644 src/Framework/resource/layout/head.php create mode 100644 src/Framework/resource/layout/main.php rename src/{messages => Framework/resource/message}/.gitkeep (100%) create mode 100644 src/UseCase/About/AboutController.php create mode 100644 src/UseCase/About/view/index.php create mode 100644 src/UseCase/Contact/ContactController.php create mode 100644 src/UseCase/Contact/ContactForm.php create mode 100644 src/UseCase/Contact/view/index.php create mode 100644 src/UseCase/Controller.php create mode 100644 src/UseCase/Site/SiteController.php rename src/{views/site => UseCase/Site/view}/error.php (61%) rename src/{views/site => UseCase/Site/view}/index.php (76%) delete mode 100644 src/assets/AppAsset.php delete mode 100644 src/controllers/SiteController.php delete mode 100644 src/forms/ContactForm.php delete mode 100644 src/views/layouts/main.php delete mode 100644 src/views/site/about.php delete mode 100644 src/views/site/contact.php create mode 100644 tests/Acceptance.suite.yml create mode 100644 tests/Acceptance/About/IndexCest.php create mode 100644 tests/Acceptance/Contact/IndexCest.php create mode 100644 tests/Acceptance/Site/IndexCest.php rename tests/{functional.suite.yml => Functional.suite.yml} (61%) create mode 100644 tests/Functional/Contact/IndexCest.php rename tests/{_support => Support}/AcceptanceTester.php (77%) rename tests/{_data => Support/Data}/.gitkeep (100%) rename tests/{_support => Support}/FunctionalTester.php (77%) rename tests/{_support => Support}/UnitTester.php (77%) rename tests/{public/@runtime => Support/_generated}/.gitignore (100%) rename tests/{unit.suite.yml => Unit.suite.yml} (59%) create mode 100644 tests/Unit/Contact/ContactFormTest.php delete mode 100644 tests/_data/stubs/UserIdentity.php delete mode 100644 tests/_data/views/main.php delete mode 100644 tests/_output/c3tmp/codecoverage.serialized delete mode 100644 tests/_output/coverage.serialized delete mode 100644 tests/_output/coverage.xml delete mode 100644 tests/_support/Helper/Acceptance.php delete mode 100644 tests/_support/Helper/Functional.php delete mode 100644 tests/_support/Helper/Unit.php delete mode 100644 tests/_support/_generated/.gitignore delete mode 100644 tests/acceptance.suite.yml delete mode 100644 tests/acceptance/AboutCest.php delete mode 100644 tests/acceptance/ContactCest.php delete mode 100644 tests/acceptance/ErrorCest.php delete mode 100644 tests/acceptance/IndexCest.php delete mode 100644 tests/acceptance/_bootstrap.php delete mode 100644 tests/functional/ContactFormCest.php delete mode 100644 tests/functional/_bootstrap.php delete mode 100644 tests/public/index.php delete mode 100644 tests/unit/AppAssetTest.php delete mode 100644 tests/unit/AppUserTest.php delete mode 100644 tests/unit/ContactFormTest.php delete mode 100644 tests/unit/_bootstrap.php rename {tests/public => web}/.htaccess (100%) rename {tests/public => web}/assets/.gitignore (100%) rename {tests/public => web}/favicon.ico (100%) create mode 100644 web/image/yii.svg create mode 100644 web/image/yiiframework.svg create mode 100644 web/index-test.php create mode 100644 web/index.php rename {tests/public => web}/robots.txt (100%) create mode 100644 web/runtime/.gitignore diff --git a/.codeclimate.yml b/.codeclimate.yml deleted file mode 100644 index 8911a62..0000000 --- a/.codeclimate.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: "2" -checks: - method-complexity: - config: - threshold: 10 - method-lines: - config: - threshold: 40 -plugins: - stylelint: - enabled: true - duplication: - enabled: true - checks: - Similar code: - enabled: false - config: - languages: - - javascript - - php - fixme: - enabled: true - phpmd: - enabled: true -exclude_patterns: -- "config/" -- "docs/" -- "tests/" \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index 8570db5..59dffe4 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,3 +10,7 @@ trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false + + +[*.yml] +indent_size = 2 diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..a7c47a8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,13 @@ +### What steps will reproduce the problem? + +### What is the expected result? + +### What do you get instead? + +### Additional info + +| Q | A +| ---------------- | --- +| Version | 1.0.? +| PHP version | +| Operating system | diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..0c07f8d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,6 @@ +| Q | A +| ------------ | --- +| Is bugfix | ✔️/❌ +| New feature | ✔️/❌ +| Breaks BC | ✔️/❌ +| Fixed issues | comma-separated list of tickets # fixed by the PR, if any diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d7ebdbf --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + # Maintain dependencies for GitHub Actions. + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + # Too noisy. See https://github.community/t/increase-if-necessary-for-github-actions-in-dependabot/179581 + open-pull-requests-limit: 0 + + # Maintain dependencies for Composer + - package-ecosystem: "composer" + directory: "/" + schedule: + interval: "daily" + versioning-strategy: increase-if-necessary diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..ab108d5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,33 @@ +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'psalm.xml' + + push: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'psalm.xml' + +name: build + +jobs: + codeception: + uses: php-forge/actions/.github/workflows/codeception.yml@main + secrets: + AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }} + with: + os: >- + ['ubuntu-latest'] + php: >- + ['8.1', '8.2', '8.3'] diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml new file mode 100644 index 0000000..6c5736d --- /dev/null +++ b/.github/workflows/dependency-check.yml @@ -0,0 +1,35 @@ +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + - 'psalm.xml' + + push: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + - 'psalm.xml' + +name: dependency-check + +jobs: + composer-require-checker: + uses: php-forge/actions/.github/workflows/composer-require-checker.yml@main + secrets: + AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }} + with: + os: >- + ['ubuntu-latest'] + php: >- + ['8.1'] diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml new file mode 100644 index 0000000..35b6019 --- /dev/null +++ b/.github/workflows/static.yml @@ -0,0 +1,33 @@ +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + + push: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + +name: static analysis + +jobs: + psalm: + uses: php-forge/actions/.github/workflows/phpstan.yml@main + secrets: + AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }} + with: + os: >- + ['ubuntu-latest'] + php: >- + ['8.1'] diff --git a/.scrutinizer.yml b/.scrutinizer.yml deleted file mode 100644 index f19bbe9..0000000 --- a/.scrutinizer.yml +++ /dev/null @@ -1,23 +0,0 @@ -imports: - - php -checks: - php: - code_rating: true - duplication: true - excluded_dependencies: - - hiqdev/composer-config-plugin - - phpunit/phpunit - - fzaninotto/faker - -tools: - external_code_coverage: true - external_code_coverage: - timeout: 2100 - php_sim: false - php_cpd: false -filter: - excluded_paths: - - config/* - - docs/* - - tests/* - - vendor/* diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7170aff..0000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -language: php - -php: - - '7.2' - - '7.3' - -dist: trusty - -addons: - chrome: stable - -# faster builds on new travis setup not using sudo -sudo: false - -# cache vendor dirs -cache: - directories: - - $HOME/.composer/cache - -install: - - travis_retry composer self-update && composer --version - - travis_retry composer update --prefer-dist --no-interaction - # install php extensions - - | - if (php --version | grep -i HipHop > /dev/null); then - echo "Skipping imagick and gmagick tests on HHVM" - else - pear config-set preferred_state beta - printf "\n" | pecl install imagick - fi - -before_script: - - echo "Config required" - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start - - - echo "Download selenium-server-standalone jar file" - - wget -c -nc --retry-connrefused --tries=0 https://bit.ly/2TlkRyu -O selenium-server-standalone.jar - - - echo "Run selenium-server" - - nohup bash -c "java -jar selenium-server-standalone.jar -port 9515 &" && sleep 1; cat nohup.out - - - echo "Download chromedriver" - - wget https://chromedriver.storage.googleapis.com/75.0.3770.90/chromedriver_linux64.zip - - unzip -o -q chromedriver_linux64.zip - - chromedriver --port=9515 --url-base=wd/hub/ > /dev/null 2>&1& - - - | - if [ $TRAVIS_PHP_VERSION = '7.2' ]; - then CODECEPTION_FLAGS="unit,functional"; - else CODECEPTION_FLAGS="--coverage-xml"; - fi -script: - - | - cd tests - php -S 127.0.0.1:8080 -t public > /dev/null 2>&1& - cd .. - vendor/bin/codecept build - vendor/bin/codecept run $CODECEPTION_FLAGS - -after_script: - - | - if [ $TRAVIS_PHP_VERSION = '7.3' ]; then - travis_retry wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover tests/_output/coverage.xml - fi diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d89684f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 yii2-extensions + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 82cce93..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,29 +0,0 @@ - BSD 3-Clause License - -Copyright (c) 2019, Terabytesoft SA -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 the copyright holder 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 HOLDER 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/README.md b/README.md index ed824a8..1cfd92e 100644 --- a/README.md +++ b/README.md @@ -6,173 +6,137 @@
- - + + - - - - - + + - - - - - + + - - + + + + + - - - + + +
-App Web Application Basic of Yii Version 2.0. Yii Framework application best for rapidly creating projects with Bootstrap 4. +Web Application Basic of Yii Version 2.2. Yii Framework application best for rapidly creating projects with Bootstrap 5.
-![app-basic](docs/images/home.jpg) +![app-basic](docs/home.png) -### **DIRECTORY STRUCTURE:** - -``` -config/ contains application configurations -docs/ contains documentation application basic -src/ - assets/ contains assets definition - controllers/ contains controller class - forms/ contains forms class - messages/ contains messages translate application - views/ contains views files for web application -tests/ contains tests codeception for the web application -vendor/ contains dependent 3rd-party packages +## Directory structure + +```text +root +├── config Configuration files. +├── src +│ └── Framework +│ └── Asset Asset bundles. +│ └── resources +│ └── css Css files. +│ └── js Js files. +│ └── layout Layout files. +│ └── message Translation files. +│ └── UseCase +│ └── About About use case. +│ └── Contact Contact use case. +│ └── Site Site use case. +├── tests Tests codeception. +├── vendor Composer dependencies. +├── web Web server public. ``` -### **FEATURES:** +## Features -The App Web Application contains: +The web application contains: - [x] Pages - [Screenshots]: - - [about](docs/images/about.jpg) - - [contact](docs/images/contact.jpg) + - [about](docs/about.jpg) + - [contact](docs/contact.jpg)It includes all commonly used configurations that would allow you to focus on adding new features to your application.
-### **REQUIREMENTS:** - -- The minimum requirement by this project template that your Web server supports: - - PHP 7.2 or higher. - - [Composer Config Plugin](https://github.com/hiqdev/composer-config-plugin) - -### **INSTALLATION:** +## InstallationIf you do not have Composer, you may install it by following the instructions at getcomposer.org.
-You can then install this project template using the following command: +You can then install this project app-basic using the following command: ~~~ -composer create-project --prefer-dist --stability=dev terabytesoftw/app-template-basic myapp +composer create-project --prefer-dist --stability=dev yii2-extensions/app-basic myapp ~~~-Now you should be able to access the application through the following URL, assuming `public` is the directory +Now you should be able to access the application through the following URL, assuming `web` is the directory directly under the Web root.
--App Web Application Basic (terabytesoftw/app-basic) is installed automatically together with the Web Project Skeleton Application Basic (terabytesoftw/app-template-basic), both try the necessary packages to start your Web Application Basic in Yii 2.0. -
- __*Virtual Host:*__ ~~~ -http://localhost/ +http://localhost:8080/ ~~~ __*Server Yii:*__ -Directory - [app-template-basic] - ~~~ -php -S 127.0.0.1:8080 -t public > /dev/null 2>&1& +./yii serve > /dev/null 2>&1& ~~~ -### **CONFIGURATION:** - -- [Detailed Settings](docs/CONFIG.md). - -**NOTE:** +## Generate translations-All the configuration is customizable through parameters, there is no need to modify any configuration of Yii 2.0 Web Application Basic, if you need any extra configuration you can open an issue with pleasure we will add it. -
- -Very important when changing any configuration run `composer du`, to apply it. - -### **GENERATE MESSAGES TRANSLATION:** - --To generate the Yii 2.0 Web Application Basic translations, you can change the language settings in: +To generate the Yii 2.2 Web Application Basic translations, you can change the language settings in the configuration file.
``` -config/messages.php - [app-template-basic]: - -'languages' => ['en'], +config/messages.php ``` +
- Automatically the generator will create the folder of your language in /messages - [app-template-basic], If any translation is needed, you can open an issue to add it. + Automatically the generator will create the folder of your language in `src/Framework/resource/message`, + If any translation is needed, you can open an issue to add it.
+Root directory + ``` -root directory - [app-template-basic]: -./vendor/bin/yii message config/messages.php +./yii message config/messages.php ``` -### **RUN TESTS CODECEPTION:** +## Tests ~~~ // download all composer dependencies root project $ composer update --prefer-dist -vvv -// download & run crhomedriver version chrome desktop -$ wget -P vendor/bin https://chromedriver.storage.googleapis.com/75.0.3770.90/chromedriver_linux64.zip -$ unzip -o -q vendor/bin/chromedriver_linux64.zip -$ vendor/bin/chromedriver --port=9515 --url-base=wd/hub/ > /dev/null 2>&1& - -// run web server cli php -$ php -S 127.0.0.1:8080 -t tests/public > /dev/null 2>&1& - // run all tests with code coverage $ vendor/bin/codecept run --coverage-xml ~~~ -### **WEB SERVER SUPPORT:** - -- Apache. -- Nginx. -- OpenLiteSpeed. - -### **DOCUMENTATION STYLE GUIDE:** +## Our social networks -[Style CI Documentation PSR2.](https://docs.styleci.io/presets#psr2) +[![Twitter](https://img.shields.io/badge/twitter-follow-1DA1F2?logo=twitter&logoColor=1DA1F2&labelColor=555555?style=flat)](https://twitter.com/Terabytesoftw) -### **LICENCE:** +## License -[![License](https://poser.pugx.org/terabytesoftw/app-basic/license)](LICENSE.md) -[![YiiFramework](https://img.shields.io/badge/Powered_by-Yii_Framework-green.svg?style=flat)](https://www.yiiframework.com/) -[![Total Downloads](https://poser.pugx.org/terabytesoftw/app-basic/downloads)](https://packagist.org/packages/terabytesoftw/app-basic) -[![Total Downloads](https://github.styleci.io/repos/165419144/shield?branch=master)](https://github.styleci.io/repos/165419144) +The MIT License. Please see [License File](LICENSE.md) for more information. diff --git a/changelog.md b/changelog.md deleted file mode 100644 index 378eff0..0000000 --- a/changelog.md +++ /dev/null @@ -1,17 +0,0 @@ -Yii 2.0 Web Application Basic Change Log -======================================== - -1.0.0 under development ------------------------ - -- Enh 2: Web Application Basic: (terabytesoftw). - - config - - docs - - src: - - assets - - controllers - - forms - - messages - - views - - tests -- Enh 1: Init Repositorie - (terabytesoftw). diff --git a/codeception.yml b/codeception.yml index 8afc327..78bc34e 100644 --- a/codeception.yml +++ b/codeception.yml @@ -1,29 +1,25 @@ -namespace: terabytesoft\app\basic\tests +namespace: App\Tests +bootstrap: _bootstrap.php +support_namespace: Support paths: tests: tests output: tests/_output - data: tests/_data - support: tests/_support + data: tests/Support/Data + support: tests/Support envs: tests/_envs actor_suffix: Tester -extensions: - enabled: - - Codeception\Extension\RunFailed - - Codeception\Extension\Logger settings: - bootstrap: _bootstrap.php - suite_class: \PHPUnit_Framework_TestSuite memory_limit: 1024M colors: true modules: config: Yii2: configFile: 'config/test.php' +extensions: + enabled: + - Codeception\Extension\RunFailed coverage: enabled: true whitelist: include: - src/* - exclude: - - src/assets/css/* - - src/messages/* diff --git a/composer-require-checker.json b/composer-require-checker.json new file mode 100644 index 0000000..e6a9190 --- /dev/null +++ b/composer-require-checker.json @@ -0,0 +1,5 @@ +{ + "symbol-whitelist": [ + "YII_ENV" + ] +} diff --git a/composer.json b/composer.json index 172b4ec..2644906 100644 --- a/composer.json +++ b/composer.json @@ -1,80 +1,56 @@ { - "name": "terabytesoftw/app-basic", - "type": "yii2-extension", + "name": "yii2-extensions/app-basic", + "type": "project", "description": "Web Application Basic", "keywords": [ "application", "basic", "web", - "yii" - ], - "homepage": "https://github.com/terabytesoftw/app-basic", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Wilmer Arambula", - "email": "wilmer.arambula@gmail.com" - } + "yii2" ], "minimum-stability": "dev", "prefer-stable": true, "require": { - "php": "^7.2.0", - "oomphinc/composer-installers-extender": "^1.1", - "terabytesoftw/helper-mailer": "^1.0@dev", - "terabytesoftw/widget-alert": "^1.0@dev", - "yiisoft/yii2": "^2.0.23", - "yiisoft/yii2-bootstrap4": "^2.0.3" + "php": ">=8.1", + "npm-asset/fortawesome--fontawesome-free": "^6.0", + "sjaakp/yii2-icon": "^1.0", + "oomphinc/composer-installers-extender": "^2.0", + "yiisoft/yii2": "^2.2", + "yiisoft/yii2-bootstrap5": "^2.0", + "yiisoft/yii2-symfonymailer": "^3.0" }, "require-dev": { - "codeception/codeception": "^3.0", - "codeception/c3": "2.*", - "dms/phpunit-arraysubset-asserts": "^0.1.0", - "hiqdev/composer-config-plugin": "^0.3.0", - "monolog/monolog": "*", - "yiisoft/yii2-debug": "~2.1.0", - "yiisoft/yii2-gii": "~2.1.0", - "yiisoft/yii2-faker": "~2.0.0" + "codeception/c3": "^2.8", + "codeception/codeception": "^5.0.0", + "codeception/lib-innerbrowser": "^4.0", + "codeception/module-asserts": "^3.0", + "codeception/module-filesystem": "^3.0", + "codeception/module-yii2": "^1.1", + "codeception/verify": "^3.0", + "maglnet/composer-require-checker": "^4.6", + "symfony/browser-kit": "^6.3", + "symfony/process": "^6.3", + "yii2-extensions/debug": "dev-main", + "yii2-extensions/gii": "dev-main", + "yii2-extensions/phpstan": "dev-main" }, "autoload": { - "psr-4": {"terabytesoft\\app\\basic\\": "src/"} + "psr-4": { + "App\\": "src/" + } }, "autoload-dev": { - "psr-4": {"terabytesoft\\app\\basic\\tests\\": "tests/"} - }, - "config": { - "process-timeout": 1800, - "fxp-asset": { - "enabled": false + "psr-4": { + "App\\Tests\\": "tests/" } }, "extra": { "branch-alias": { "dev-master": "1.0.x-dev" }, - "config-plugin": { - "params": [ - "config/appbasic.php", - "config/params.php" - ], - "defines": "config/defines.php", - "console": "config/console.php", - "tests": [ - "config/test.php" - ], - "web": [ - "config/web.php" - ] - }, - "installer-types": [ - "bower-asset", - "npm-asset" - ], + "installer-types": ["bower-asset", "npm-asset"], "installer-paths": { - "./node_modules/{$name}": [ - "type:bower-asset", - "type:npm-asset" - ] + "./node_modules/{$name}/": ["type:bower-asset", "type:npm-asset"] } }, "repositories": [ @@ -82,5 +58,14 @@ "type": "composer", "url": "https://asset-packagist.org" } - ] + ], + "config": { + "allow-plugins": { + "codeception/c3": true, + "yiisoft/yii2-composer": true, + "composer/installers": true, + "hiqdev/composer-config-plugin": true, + "oomphinc/composer-installers-extender": true + } + } } diff --git a/composer.lock b/composer.lock index 2b51cbd..1dd4db0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,21 +4,35 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6ec7f4e61be1cc67718e96e59b080d92", + "content-hash": "6e52c131f539b53884edb86cca41e70e", "packages": [ + { + "name": "bower-asset/bootstrap", + "version": "v5.3.2", + "source": { + "type": "git", + "url": "https://github.com/twbs/bootstrap.git", + "reference": "344e912d04b5b6a04482113eff20ab416ff01048" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twbs/bootstrap/zipball/344e912d04b5b6a04482113eff20ab416ff01048", + "reference": "344e912d04b5b6a04482113eff20ab416ff01048" + }, + "type": "bower-asset" + }, { "name": "bower-asset/inputmask", "version": "3.3.11", "source": { "type": "git", - "url": "https://github.com/RobinHerbots/Inputmask.git", + "url": "git@github.com:RobinHerbots/Inputmask.git", "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b", - "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b", - "shasum": null + "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b" }, "require": { "bower-asset/jquery": ">=1.7" @@ -30,17 +44,16 @@ }, { "name": "bower-asset/jquery", - "version": "3.4.1", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/jquery/jquery-dist.git", - "reference": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d" + "reference": "fde1f76e2799dd877c176abde0ec836553246991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/15bc73803f76bc53b654b9fdbbbc096f56d7c03d", - "reference": "15bc73803f76bc53b654b9fdbbbc096f56d7c03d", - "shasum": null + "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/fde1f76e2799dd877c176abde0ec836553246991", + "reference": "fde1f76e2799dd877c176abde0ec836553246991" }, "type": "bower-asset", "license": [ @@ -52,30 +65,28 @@ "version": "v1.3.2", "source": { "type": "git", - "url": "https://github.com/bestiejs/punycode.js.git", + "url": "https://github.com/mathiasbynens/punycode.js.git", "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bestiejs/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", - "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3", - "shasum": null + "url": "https://api.github.com/repos/mathiasbynens/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3", + "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3" }, "type": "bower-asset" }, { "name": "bower-asset/yii2-pjax", - "version": "2.0.7.1", + "version": "2.0.8", "source": { "type": "git", "url": "git@github.com:yiisoft/jquery-pjax.git", - "reference": "aef7b953107264f00234902a3880eb50dafc48be" + "reference": "a9298d57da63d14a950f1b94366a864bc62264fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/aef7b953107264f00234902a3880eb50dafc48be", - "reference": "aef7b953107264f00234902a3880eb50dafc48be", - "shasum": null + "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/a9298d57da63d14a950f1b94366a864bc62264fb", + "reference": "a9298d57da63d14a950f1b94366a864bc62264fb" }, "require": { "bower-asset/jquery": ">=1.8" @@ -143,39 +154,45 @@ "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": "composer/installers", - "version": "v1.6.0", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/composer/installers.git", - "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b" + "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/cfcca6b1b60bc4974324efb5783c13dca6932b5b", - "reference": "cfcca6b1b60bc4974324efb5783c13dca6932b5b", + "url": "https://api.github.com/repos/composer/installers/zipball/c29dc4b93137acb82734f672c37e029dfbd95b35", + "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0" - }, - "replace": { - "roundcube/plugin-installer": "*", - "shama/baton": "*" + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "1.0.*@dev", - "phpunit/phpunit": "^4.8.36" + "composer/composer": "1.6.* || ^2.0", + "composer/semver": "^1 || ^3", + "phpstan/phpstan": "^0.12.55", + "phpstan/phpstan-phpunit": "^0.12.16", + "symfony/phpunit-bridge": "^5.3", + "symfony/process": "^5" }, "type": "composer-plugin", "extra": { "class": "Composer\\Installers\\Plugin", "branch-alias": { - "dev-master": "1.0-dev" - } + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true }, "autoload": { "psr-4": { @@ -196,7 +213,6 @@ "description": "A multi-framework Composer library installer", "homepage": "https://composer.github.io/installers/", "keywords": [ - "Craft", "Dolibarr", "Eliasis", "Hurad", @@ -204,6 +220,7 @@ "Kanboard", "Lan Management System", "MODX Evo", + "MantisBT", "Mautic", "Maya", "OXID", @@ -211,10 +228,11 @@ "Porto", "RadPHP", "SMF", + "Starbug", "Thelia", + "Whmcs", "WolfCMS", "agl", - "aimeos", "annotatecms", "attogram", "bitrix", @@ -233,7 +251,7 @@ "grav", "installer", "itop", - "joomla", + "known", "kohana", "laravel", "lavalite", @@ -241,14 +259,18 @@ "magento", "majima", "mako", + "matomo", "mediawiki", + "miaoxing", "modulework", "modx", "moodle", "osclass", + "pantheon", "phpbb", "piwik", "ppi", + "processwire", "puppet", "pxcms", "reindex", @@ -256,44 +278,61 @@ "shopware", "silverstripe", "sydes", - "symfony", - "typo3", + "sylius", + "tastyigniter", "wordpress", "yawik", "zend", "zikula" ], - "time": "2018-08-27T06:10:37+00:00" + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/v2.2.0" + }, + "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-08-20T06:45:11+00:00" }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "84a527db05647743d50373e0ec53a152f2cde568" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", + "reference": "84a527db05647743d50373e0ec53a152f2cde568", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^8.1" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -301,14 +340,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -323,31 +362,48 @@ "parser", "php" ], - "time": "2019-06-08T11:03:04+00:00" + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.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%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-12-15T16:57:16+00:00" }, { "name": "egulias/email-validator", - "version": "2.1.10", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec", - "reference": "a6c8d7101b19a451c1707b1b79bbbc56e4bdb7ec", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">= 5.5" + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "dominicsayers/isemail": "dev-master", - "phpunit/phpunit": "^4.8.35||^5.7||^6.0", - "satooshi/php-coveralls": "^1.0.1", - "symfony/phpunit-bridge": "^4.4@dev" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -355,12 +411,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" + "Egulias\\EmailValidator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -381,35 +437,55 @@ "validation", "validator" ], - "time": "2019-07-19T20:52:08+00:00" + "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": "ezyang/htmlpurifier", - "version": "v4.11.0", + "version": "v4.16.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7" + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7", - "reference": "83ab08bc1af7d808a9e0fbf024f1c24bfd73c0a7", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", "shasum": "" }, "require": { - "php": ">=5.2" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" }, "require-dev": { - "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" }, "type": "library", "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], "psr-0": { "HTMLPurifier": "library/" }, - "files": [ - "library/HTMLPurifier.composer.php" + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -428,39 +504,47 @@ "keywords": [ "html" ], - "time": "2019-07-14T18:58:38+00:00" + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0" + }, + "time": "2022-09-18T07:06:19+00:00" }, { - "name": "npm-asset/bootstrap", - "version": "4.3.1", + "name": "npm-asset/fortawesome--fontawesome-free", + "version": "6.4.2", "dist": { "type": "tar", - "url": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", - "reference": null, - "shasum": null + "url": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz" }, "type": "npm-asset", "license": [ - "MIT" + "(CC-BY-4.0 AND OFL-1.1 AND MIT)" ] }, { "name": "oomphinc/composer-installers-extender", - "version": "v1.1.2", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/oomphinc/composer-installers-extender.git", - "reference": "ca1c4b16b0905c81d1e77e608f36a2eff1a56f56" + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/ca1c4b16b0905c81d1e77e608f36a2eff1a56f56", - "reference": "ca1c4b16b0905c81d1e77e608f36a2eff1a56f56", + "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/cbf4b6f9a24153b785d09eee755b995ba87bd5f9", + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0", - "composer/installers": "^1.0" + "composer-plugin-api": "^1.1 || ^2.0", + "composer/installers": "^1.0 || ^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "phpunit/phpunit": "^7.2", + "squizlabs/php_codesniffer": "^3.3" }, "type": "composer-plugin", "extra": { @@ -480,107 +564,98 @@ "name": "Stephen Beemsterboer", "email": "stephen@oomphinc.com", "homepage": "https://github.com/balbuf" + }, + { + "name": "Nathan Dentzau", + "email": "nate@oomphinc.com", + "homepage": "http://oomph.is/ndentzau" } ], "description": "Extend the composer/installers plugin to accept any arbitrary package type.", "homepage": "http://www.oomphinc.com/", - "time": "2017-03-31T16:57:39+00:00" + "support": { + "issues": "https://github.com/oomphinc/composer-installers-extender/issues", + "source": "https://github.com/oomphinc/composer-installers-extender/tree/2.0.1" + }, + "time": "2021-12-15T12:32:42+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v6.2.1", + "name": "paragonie/random_compat", + "version": "v9.99.100", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", - "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", "shasum": "" }, "require": { - "egulias/email-validator": "~2.0", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" + "php": ">= 7" }, "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" }, "suggest": { - "ext-intl": "Needed to support internationalized email addresses", - "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "email", - "mail", - "mailer" + "csprng", + "polyfill", + "pseudorandom", + "random" ], - "time": "2019-04-21T09:21:45+00:00" + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.11.0", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", - "reference": "f037ea22acfaee983e271dd9c3b8bb4150bd8ad7", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-iconv": "For best performance" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, - "files": [ - "bootstrap.php" - ] + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -588,60 +663,52 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], - "time": "2019-02-06T07:57:58+00:00" + "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": "symfony/polyfill-intl-idn", - "version": "v1.11.0", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af", - "reference": "c766e95bec706cdd89903b1eda8afab7d7a6b7af", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" - }, - "suggest": { - "ext-intl": "For best performance" + "php": ">=7.2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, - "files": [ - "bootstrap.php" - ] + "Psr\\EventDispatcher\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -649,59 +716,49 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", + "description": "Standard interfaces for event handling.", "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" + "events", + "psr", + "psr-14" ], - "time": "2019-03-04T13:44:35+00:00" + "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": "symfony/polyfill-mbstring", - "version": "v1.11.0", + "name": "psr/log", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609" + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609", - "reference": "fe5e94c604826c35a32fa832f35bd036b6799609", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] + "Psr\\Log\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -709,55 +766,44 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "log", + "psr", + "psr-3" ], - "time": "2019-02-06T07:57:58+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.11.0", + "name": "sjaakp/yii2-icon", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c" + "url": "https://github.com/sjaakp/yii2-icon.git", + "reference": "1ed03cb3ca66301a1e9e3cb84708d465bdcd8e7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c", - "reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c", + "url": "https://api.github.com/repos/sjaakp/yii2-icon/zipball/1ed03cb3ca66301a1e9e3cb84708d465bdcd8e7d", + "reference": "1ed03cb3ca66301a1e9e3cb84708d465bdcd8e7d", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11-dev" - } + "yiisoft/yii2": "*" }, + "type": "yii2-extension", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] + "sjaakp\\icon\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -765,485 +811,539 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sjaak Priester", + "email": "sjaak@sjaakpriester.nl", + "homepage": "https://sjaakpriester.nl" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Raw SVG icons in Yii2", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "FontAwesome", + "icon", + "svg", + "yii", + "yii2" ], - "time": "2019-02-06T07:57:58+00:00" + "support": { + "issues": "https://github.com/sjaakp/yii2-icon/issues", + "source": "https://github.com/sjaakp/yii2-icon/tree/1.2.0" + }, + "time": "2022-05-03T14:15:01+00:00" }, { - "name": "terabytesoftw/helper-mailer", - "version": "dev-master", + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", "source": { "type": "git", - "url": "https://github.com/terabytesoftw/helper-mailer.git", - "reference": "c8ed1ac09b4959ec81109b1a48ce8dabd1196953" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/terabytesoftw/helper-mailer/zipball/c8ed1ac09b4959ec81109b1a48ce8dabd1196953", - "reference": "c8ed1ac09b4959ec81109b1a48ce8dabd1196953", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { - "oomphinc/composer-installers-extender": "^1.1", - "php": "^7.2.0", - "yiisoft/yii2": "^2.0.20", - "yiisoft/yii2-swiftmailer": "^2.1.2" + "php": ">=8.1" }, - "require-dev": { - "codeception/c3": "2.*", - "codeception/codeception": "^3.0", - "dms/phpunit-arraysubset-asserts": "^0.1.0", - "hiqdev/composer-config-plugin": "^0.3.0", - "monolog/monolog": "*", - "yiisoft/yii2-debug": "~2.1.0", - "yiisoft/yii2-faker": "~2.0.0", - "yiisoft/yii2-gii": "~2.1.0" - }, - "type": "yii2-extension", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "3.4-dev" }, - "config-plugin": { - "params": [ - "config/maileruser.php" - ], - "tests": [ - "config/test.php" - ], - "web": [ - "config/web.php" - ] - }, - "installer-types": [ - "bower-asset", - "npm-asset" - ], - "installer-paths": { - "./node_modules/{$name}": [ - "type:bower-asset", - "type:npm-asset" - ] + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "psr-4": { - "terabytesoft\\helpers\\": "src/" - } + "files": [ + "function.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Wilmer Arambula", - "email": "wilmer.arambula@gmail.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Component Mailer User Core", - "homepage": "https://github.com/terabytesoftw/helper-mailer", - "keywords": [ - "component", - "core", - "mailer", - "user", - "yii" + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.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": "2019-07-30T15:27:42+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { - "name": "terabytesoftw/widget-alert", - "version": "dev-master", + "name": "symfony/event-dispatcher", + "version": "v6.3.2", "source": { "type": "git", - "url": "https://github.com/terabytesoftw/widget-alert.git", - "reference": "8cfcd2a0bac0587c587f02881dcf774affc6da79" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/terabytesoftw/widget-alert/zipball/8cfcd2a0bac0587c587f02881dcf774affc6da79", - "reference": "8cfcd2a0bac0587c587f02881dcf774affc6da79", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", "shasum": "" }, "require": { - "oomphinc/composer-installers-extender": "^1.1", - "php": ">=5.4.0", - "yiisoft/yii2": "^2.0.20", - "yiisoft/yii2-bootstrap4": "^2.0.3" + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { - "codeception/c3": "2.*", - "codeception/codeception": "^3.0", - "hiqdev/composer-config-plugin": "^1.0@dev", - "monolog/monolog": "*" - }, - "type": "yii2-extension", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - }, - "installer-types": [ - "bower-asset", - "npm-asset" - ], - "installer-paths": { - "./node_modules/{$name}": [ - "type:bower-asset", - "type:npm-asset" - ] - } + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0" }, + "type": "library", "autoload": { "psr-4": { - "terabytesoft\\widgets\\": "src" - } + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Wilmer Arambula", - "email": "wilmer.arambula@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Widget Alert with Bootstrap4", - "homepage": "https://github.com/terabytesoftw/alert", - "keywords": [ - "alert", - "bootstrap4", - "widget", - "yii" + "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/v6.3.2" + }, + "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": "2019-06-25T13:48:52+00:00" + "time": "2023-07-06T06:56:43+00:00" }, { - "name": "yiisoft/yii2", - "version": "2.0.23", + "name": "symfony/event-dispatcher-contracts", + "version": "v3.3.0", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-framework.git", - "reference": "d430bf78cf59e341bf4a1cb401a4ae71a889a492" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/d430bf78cf59e341bf4a1cb401a4ae71a889a492", - "reference": "d430bf78cf59e341bf4a1cb401a4ae71a889a492", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { - "bower-asset/inputmask": "~3.2.2 | ~3.3.5", - "bower-asset/jquery": "3.4.*@stable | 3.3.*@stable | 3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", - "bower-asset/punycode": "1.3.*", - "bower-asset/yii2-pjax": "~2.0.1", - "cebe/markdown": "~1.0.0 | ~1.1.0 | ~1.2.0", - "ext-ctype": "*", - "ext-mbstring": "*", - "ezyang/htmlpurifier": "~4.6", - "lib-pcre": "*", - "php": ">=5.4.0", - "yiisoft/yii2-composer": "~2.0.4" + "php": ">=8.1", + "psr/event-dispatcher": "^1" }, - "bin": [ - "yii" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { "psr-4": { - "yii\\": "" + "Symfony\\Contracts\\EventDispatcher\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Qiang Xue", - "email": "qiang.xue@gmail.com", - "homepage": "http://www.yiiframework.com/", - "role": "Founder and project lead" - }, - { - "name": "Alexander Makarov", - "email": "sam@rmcreative.ru", - "homepage": "http://rmcreative.ru/", - "role": "Core framework development" - }, - { - "name": "Maurizio Domba", - "homepage": "http://mdomba.info/", - "role": "Core framework development" - }, - { - "name": "Carsten Brandt", - "email": "mail@cebe.cc", - "homepage": "http://cebe.cc/", - "role": "Core framework development" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Timur Ruziev", - "email": "resurtm@gmail.com", - "homepage": "http://resurtm.com/", - "role": "Core framework development" - }, + "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.3.0" + }, + "funding": [ { - "name": "Paul Klimov", - "email": "klimov.paul@gmail.com", - "role": "Core framework development" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Dmitry Naumenko", - "email": "d.naumenko.a@gmail.com", - "role": "Core framework development" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Boudewijn Vahrmeijer", - "email": "info@dynasource.eu", - "homepage": "http://dynasource.eu", - "role": "Core framework development" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Yii PHP Framework Version 2", - "homepage": "http://www.yiiframework.com/", - "keywords": [ - "framework", - "yii2" - ], - "time": "2019-07-16T19:44:09+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { - "name": "yiisoft/yii2-bootstrap4", - "version": "2.0.6", + "name": "symfony/mailer", + "version": "v6.3.5", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-bootstrap4.git", - "reference": "c47ec7b53f45ce16f63d6e65cc952d517b432931" + "url": "https://github.com/symfony/mailer.git", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap4/zipball/c47ec7b53f45ce16f63d6e65cc952d517b432931", - "reference": "c47ec7b53f45ce16f63d6e65cc952d517b432931", + "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06", "shasum": "" }, "require": { - "npm-asset/bootstrap": "^4.3", - "yiisoft/yii2": "~2.0" + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^6.2", + "symfony/service-contracts": "^2.5|^3" }, - "require-dev": { - "phpunit/phpunit": "<7", - "yiisoft/yii2-coding-standards": "~2.0" + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" }, - "type": "yii2-extension", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/messenger": "^6.2", + "symfony/twig-bridge": "^6.2" }, + "type": "library", "autoload": { "psr-4": { - "yii\\bootstrap4\\": "src" - } + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Qiang Xue", - "email": "qiang.xue@gmail.com", - "homepage": "http://www.yiiframework.com/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Alexander Makarov", - "email": "sam@rmcreative.ru", - "homepage": "http://rmcreative.ru/" - }, + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.3.5" + }, + "funding": [ { - "name": "Antonio Ramirez", - "email": "amigo.cobos@gmail.com" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Paul Klimov", - "email": "klimov.paul@gmail.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Simon Karlen", - "email": "simi.albi@outlook.com" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "The Twitter Bootstrap extension for the Yii framework", - "keywords": [ - "bootstrap", - "bootstrap4", - "yii2" - ], - "time": "2019-07-23T16:25:05+00:00" + "time": "2023-09-06T09:47:15+00:00" }, { - "name": "yiisoft/yii2-composer", - "version": "2.0.8", + "name": "symfony/mime", + "version": "v6.3.5", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-composer.git", - "reference": "5c7ca9836cf80b34db265332a7f2f8438eb469b9" + "url": "https://github.com/symfony/mime.git", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/5c7ca9836cf80b34db265332a7f2f8438eb469b9", - "reference": "5c7ca9836cf80b34db265332a7f2f8438eb469b9", + "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" }, - "require-dev": { - "composer/composer": "^1.0", - "phpunit/phpunit": "<7" + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" }, - "type": "composer-plugin", - "extra": { - "class": "yii\\composer\\Plugin", - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "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": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "~6.2.13|^6.3.2" }, + "type": "library", "autoload": { "psr-4": { - "yii\\composer\\": "" - } + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Qiang Xue", - "email": "qiang.xue@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Carsten Brandt", - "email": "mail@cebe.cc" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "The composer plugin for Yii extension installer", + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", "keywords": [ - "composer", - "extension installer", - "yii2" + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.3.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": "2019-07-16T13:22:30+00:00" + "time": "2023-09-29T06:59:36+00:00" }, { - "name": "yiisoft/yii2-swiftmailer", - "version": "2.1.2", + "name": "symfony/polyfill-intl-idn", + "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-swiftmailer.git", - "reference": "09659a55959f9e64b8178d842b64a9ffae42b994" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/09659a55959f9e64b8178d842b64a9ffae42b994", - "reference": "09659a55959f9e64b8178d842b64a9ffae42b994", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", "shasum": "" }, "require": { - "swiftmailer/swiftmailer": "~6.0", - "yiisoft/yii2": ">=2.0.4" + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" }, - "type": "yii2-extension", + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "yii\\swiftmailer\\": "src" + "Symfony\\Polyfill\\Intl\\Idn\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Paul Klimov", - "email": "klimov.paul@gmail.com" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "The SwiftMailer integration for the Yii framework", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", "keywords": [ - "email", - "mail", - "mailer", - "swift", - "swiftmailer", - "yii2" + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" ], - "time": "2018-09-23T22:00:47+00:00" - } - ], - "packages-dev": [ + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.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": "2023-01-26T09:30:37+00:00" + }, { - "name": "behat/gherkin", - "version": "v4.6.0", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { - "php": ">=5.3.1" - }, - "require-dev": { - "phpunit/phpunit": "~4.5|~5", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" + "php": ">=7.1" }, "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1251,143 +1351,82 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Gherkin DSL parser for PHP 5.3", - "homepage": "http://behat.org/", + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" ], - "time": "2019-01-16T14:22:17+00:00" - }, - { - "name": "codeception/c3", - "version": "2.4.1", - "source": { - "type": "git", - "url": "https://github.com/Codeception/c3.git", - "reference": "d841be32a6785e2f565b9f88f5ff36c905931a9a" + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Codeception/c3/zipball/d841be32a6785e2f565b9f88f5ff36c905931a9a", - "reference": "d841be32a6785e2f565b9f88f5ff36c905931a9a", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0", - "php": ">=5.4.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Codeception\\c3\\Installer" - }, - "autoload": { - "psr-4": { - "Codeception\\c3\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Tiger Seo", - "email": "tiger.seo@gmail.com" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Michael Bodnarchuk", - "email": "davert.php@codegyre.com", - "homepage": "http://codegyre.com" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "CodeCoverage collector for Codeception", - "homepage": "http://codeception.com/", - "keywords": [ - "code coverage", - "codecoverage" - ], - "time": "2018-05-26T22:34:28+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { - "name": "codeception/codeception", - "version": "3.0.3", + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/Codeception/Codeception.git", - "reference": "feb566a9dc26993611602011ae3834d8e3c1dd7f" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/feb566a9dc26993611602011ae3834d8e3c1dd7f", - "reference": "feb566a9dc26993611602011ae3834d8e3c1dd7f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { - "behat/gherkin": "^4.4.0", - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3", - "codeception/stub": "^2.0", - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "facebook/webdriver": "^1.6.0", - "guzzlehttp/guzzle": "^6.3.0", - "guzzlehttp/psr7": "~1.4", - "hoa/console": "~3.0", - "php": ">=5.6.0 <8.0", - "symfony/browser-kit": ">=2.7 <5.0", - "symfony/console": ">=2.7 <5.0", - "symfony/css-selector": ">=2.7 <5.0", - "symfony/dom-crawler": ">=2.7 <5.0", - "symfony/event-dispatcher": ">=2.7 <5.0", - "symfony/finder": ">=2.7 <5.0", - "symfony/yaml": ">=2.7 <5.0" + "php": ">=7.1" }, - "require-dev": { - "codeception/specify": "~0.3", - "doctrine/annotations": "^1", - "doctrine/orm": "^2", - "flow/jsonpath": "~0.2", - "monolog/monolog": "~1.8", - "pda/pheanstalk": "~3.0", - "php-amqplib/php-amqplib": "~2.4", - "predis/predis": "^1.0", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <5.0", - "vlucas/phpdotenv": "^3.0" + "provide": { + "ext-mbstring": "*" }, "suggest": { - "aws/aws-sdk-php": "For using AWS Auth in REST module and Queue module", - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests", - "codeception/specify": "BDD-style code blocks", - "codeception/verify": "BDD-style assertions", - "flow/jsonpath": "For using JSONPath in REST module", - "league/factory-muffin": "For DataFactory module", - "league/factory-muffin-faker": "For Faker support in DataFactory module", - "phpseclib/phpseclib": "for SFTP option in FTP Module", - "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/phpunit-bridge": "For phpunit-bridge support" + "ext-mbstring": "For best performance" }, - "bin": [ - "codecept" - ], "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Codeception\\": "src/Codeception", - "Codeception\\Extension\\": "ext" + "Symfony\\Polyfill\\Mbstring\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1396,51 +1435,75 @@ ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "BDD-style testing framework", - "homepage": "http://codeception.com/", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "BDD", - "TDD", - "acceptance testing", - "functional testing", - "unit testing" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" ], - "time": "2019-07-18T16:21:08+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.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": "2023-07-28T09:04:16+00:00" }, { - "name": "codeception/phpunit-wrapper", - "version": "8.0.4", + "name": "symfony/polyfill-php72", + "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "7090736f36b4398cae6ef838b9a2bdfe8d8d104b" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/7090736f36b4398cae6ef838b9a2bdfe8d8d104b", - "reference": "7090736f36b4398cae6ef838b9a2bdfe8d8d104b", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", "shasum": "" }, "require": { - "php": ">=7.2", - "phpunit/php-code-coverage": "^7.0", - "phpunit/phpunit": "^8.0", - "sebastian/comparator": "^3.0", - "sebastian/diff": "^3.0" - }, - "require-dev": { - "codeception/specify": "*", - "vlucas/phpdotenv": "^3.0" + "php": ">=7.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Codeception\\PHPUnit\\": "src\\" + "Symfony\\Polyfill\\Php72\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -1449,289 +1512,517 @@ ], "authors": [ { - "name": "Davert", - "email": "davert.php@resend.cc" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.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" } ], - "description": "PHPUnit classes used by Codeception", - "time": "2019-02-27T12:58:57+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { - "name": "codeception/stub", - "version": "2.1.0", + "name": "symfony/service-contracts", + "version": "v3.3.0", "source": { "type": "git", - "url": "https://github.com/Codeception/Stub.git", - "reference": "853657f988942f7afb69becf3fd0059f192c705a" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/853657f988942f7afb69becf3fd0059f192c705a", - "reference": "853657f988942f7afb69becf3fd0059f192c705a", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { - "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3" + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, "autoload": { "psr-4": { - "Codeception\\": "src/" - } + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "time": "2019-03-02T15:35:10+00:00" + "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.3.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": "2023-05-23T14:45:45+00:00" }, { - "name": "dms/phpunit-arraysubset-asserts", - "version": "v0.1.0", + "name": "yiisoft/yii2", + "version": "2.2.x-dev", "source": { "type": "git", - "url": "https://github.com/rdohms/phpunit-arraysubset-asserts.git", - "reference": "d618ece5d53e05be87eba835b079377eaafbd7c8" + "url": "https://github.com/yiisoft/yii2-framework.git", + "reference": "ab8a9feda3b3fdf5c28c3b5f53bcc7bd85a8af2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rdohms/phpunit-arraysubset-asserts/zipball/d618ece5d53e05be87eba835b079377eaafbd7c8", - "reference": "d618ece5d53e05be87eba835b079377eaafbd7c8", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/ab8a9feda3b3fdf5c28c3b5f53bcc7bd85a8af2c", + "reference": "ab8a9feda3b3fdf5c28c3b5f53bcc7bd85a8af2c", "shasum": "" }, "require": { - "php": "^7.2", - "phpunit/phpunit": "^8.0" - }, - "require-dev": { - "dms/coding-standard": "^1.0", - "squizlabs/php_codesniffer": "^3.4" + "bower-asset/inputmask": "~3.2.2 | ~3.3.5", + "bower-asset/jquery": "3.7.*@stable | 3.6.*@stable | 3.5.*@stable | 3.4.*@stable | 3.3.*@stable | 3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", + "bower-asset/punycode": "1.3.*", + "bower-asset/yii2-pjax": "~2.0.1", + "cebe/markdown": "~1.0.0 | ~1.1.0 | ~1.2.0", + "ext-ctype": "*", + "ext-mbstring": "*", + "ezyang/htmlpurifier": "^4.6", + "lib-pcre": "*", + "paragonie/random_compat": ">=1", + "php": ">=8.1", + "yiisoft/yii2-composer": "~2.0.4" }, + "bin": [ + "yii" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { - "DMS\\PHPUnitExtensions\\ArraySubset\\": "src" + "yii\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Rafael Dohms", - "email": "rdohms@gmail.com" + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com", + "homepage": "https://www.yiiframework.com/", + "role": "Founder and project lead" + }, + { + "name": "Alexander Makarov", + "email": "sam@rmcreative.ru", + "homepage": "https://rmcreative.ru/", + "role": "Core framework development" + }, + { + "name": "Maurizio Domba", + "homepage": "http://mdomba.info/", + "role": "Core framework development" + }, + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc", + "homepage": "https://www.cebe.cc/", + "role": "Core framework development" + }, + { + "name": "Timur Ruziev", + "email": "resurtm@gmail.com", + "homepage": "http://resurtm.com/", + "role": "Core framework development" + }, + { + "name": "Paul Klimov", + "email": "klimov.paul@gmail.com", + "role": "Core framework development" + }, + { + "name": "Dmitry Naumenko", + "email": "d.naumenko.a@gmail.com", + "role": "Core framework development" + }, + { + "name": "Boudewijn Vahrmeijer", + "email": "info@dynasource.eu", + "homepage": "http://dynasource.eu", + "role": "Core framework development" + } + ], + "description": "Yii PHP Framework Version 2", + "homepage": "https://www.yiiframework.com/", + "keywords": [ + "framework", + "yii2" + ], + "support": { + "forum": "https://forum.yiiframework.com/", + "irc": "ircs://irc.libera.chat:6697/yii", + "issues": "https://github.com/yiisoft/yii2/issues?state=open", + "source": "https://github.com/yiisoft/yii2", + "wiki": "https://www.yiiframework.com/wiki" + }, + "funding": [ + { + "url": "https://github.com/yiisoft", + "type": "github" + }, + { + "url": "https://opencollective.com/yiisoft", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2", + "type": "tidelift" } ], - "description": "This package provides Array Subset and related asserts once depracated in PHPunit 8", - "time": "2019-02-17T14:29:58+00:00" + "time": "2023-09-30T11:52:51+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.2.0", + "name": "yiisoft/yii2-bootstrap5", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "a2c590166b2133a4633738648b6b064edae0814a" + "url": "https://github.com/yiisoft/yii2-bootstrap5.git", + "reference": "0ce35f80ca07763fa2c6f38d1c0a1aaf65c76d2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", - "reference": "a2c590166b2133a4633738648b6b064edae0814a", + "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap5/zipball/0ce35f80ca07763fa2c6f38d1c0a1aaf65c76d2e", + "reference": "0ce35f80ca07763fa2c6f38d1c0a1aaf65c76d2e", "shasum": "" }, "require": { - "php": "^7.1" + "bower-asset/bootstrap": "^5.1.0", + "ext-json": "*", + "php": ">=7.0", + "yiisoft/yii2": "^2.0.42" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^6.5.14", + "twbs/bootstrap-icons": "^1.7.2", + "yiisoft/yii2-coding-standards": "~2.0" }, - "type": "library", + "suggest": { + "twbs/bootstrap-icons": "Add this package to the `require` section of your `composer.json` if you'd like to use the bootstrap icon asset." + }, + "type": "yii2-extension", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" - } + "dev-master": "2.0.x-dev" + }, + "bootstrap": "yii\\bootstrap5\\i18n\\TranslationBootstrap" }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "yii\\bootstrap5\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Sergey Zhukovskiy", + "email": "mylistryx@gmail.com", + "homepage": "https://net23.ru/" + }, + { + "name": "Simon Karlen", + "email": "simi.albi@outlook.com" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "The Twitter Bootstrap v5 extension for the Yii framework", "keywords": [ - "constructor", - "instantiate" + "bootstrap", + "bootstrap5", + "yii2" + ], + "support": { + "issues": "https://github.com/yiisoft/yii2-bootstrap5/issues", + "source": "https://github.com/yiisoft/yii2-bootstrap5" + }, + "funding": [ + { + "url": "https://github.com/yiisoft", + "type": "github" + }, + { + "url": "https://opencollective.com/yiisoft", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-bootstrap5", + "type": "tidelift" + } ], - "time": "2019-03-17T17:37:11+00:00" + "time": "2022-11-30T08:25:21+00:00" }, { - "name": "facebook/webdriver", - "version": "1.7.1", + "name": "yiisoft/yii2-composer", + "version": "2.0.10", "source": { "type": "git", - "url": "https://github.com/facebook/php-webdriver.git", - "reference": "e43de70f3c7166169d0f14a374505392734160e5" + "url": "https://github.com/yiisoft/yii2-composer.git", + "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facebook/php-webdriver/zipball/e43de70f3c7166169d0f14a374505392734160e5", - "reference": "e43de70f3c7166169d0f14a374505392734160e5", + "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/94bb3f66e779e2774f8776d6e1bdeab402940510", + "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510", "shasum": "" }, "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-zip": "*", - "php": "^5.6 || ~7.0", - "symfony/process": "^2.8 || ^3.1 || ^4.0" + "composer-plugin-api": "^1.0 | ^2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "php-coveralls/php-coveralls": "^2.0", - "php-mock/php-mock-phpunit": "^1.1", - "phpunit/phpunit": "^5.7", - "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", - "squizlabs/php_codesniffer": "^2.6", - "symfony/var-dumper": "^3.3 || ^4.0" - }, - "suggest": { - "ext-SimpleXML": "For Firefox profile creation" + "composer/composer": "^1.0 | ^2.0@dev", + "phpunit/phpunit": "<7" }, - "type": "library", + "type": "composer-plugin", "extra": { + "class": "yii\\composer\\Plugin", "branch-alias": { - "dev-community": "1.5-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Facebook\\WebDriver\\": "lib/" + "yii\\composer\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Qiang Xue", + "email": "qiang.xue@gmail.com" + }, + { + "name": "Carsten Brandt", + "email": "mail@cebe.cc" + } ], - "description": "A PHP client for Selenium WebDriver", - "homepage": "https://github.com/facebook/php-webdriver", + "description": "The composer plugin for Yii extension installer", "keywords": [ - "facebook", - "php", - "selenium", - "webdriver" + "composer", + "extension installer", + "yii2" + ], + "support": { + "forum": "http://www.yiiframework.com/forum/", + "irc": "irc://irc.freenode.net/yii", + "issues": "https://github.com/yiisoft/yii2-composer/issues", + "source": "https://github.com/yiisoft/yii2-composer", + "wiki": "http://www.yiiframework.com/wiki/" + }, + "funding": [ + { + "url": "https://github.com/yiisoft", + "type": "github" + }, + { + "url": "https://opencollective.com/yiisoft", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-composer", + "type": "tidelift" + } ], - "time": "2019-06-13T08:02:18+00:00" + "time": "2020-06-24T00:04:01+00:00" }, { - "name": "fzaninotto/faker", - "version": "v1.8.0", + "name": "yiisoft/yii2-symfonymailer", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/fzaninotto/Faker.git", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de" + "url": "https://github.com/yiisoft/yii2-symfonymailer.git", + "reference": "291c00979a9bf14e89bb5230ddd700a6dc130e51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de", - "reference": "f72816b43e74063c8b10357394b6bba8cb1c10de", + "url": "https://api.github.com/repos/yiisoft/yii2-symfonymailer/zipball/291c00979a9bf14e89bb5230ddd700a6dc130e51", + "reference": "291c00979a9bf14e89bb5230ddd700a6dc130e51", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=7.4.0", + "symfony/mailer": ">=5.4.0", + "yiisoft/yii2": ">=2.0.4" }, "require-dev": { - "ext-intl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7", - "squizlabs/php_codesniffer": "^1.5" + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "phpunit/phpunit": "9.5.10", + "symplify/easy-coding-standard": "^10.1", + "vimeo/psalm": "^4.22" }, - "type": "library", + "type": "yii2-extension", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Faker\\": "src/Faker/" + "yii\\symfonymailer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "François Zaninotto" + "name": "Kirill Petrov", + "email": "archibeardrinker@gmail.com" } ], - "description": "Faker is a PHP library that generates fake data for you.", + "description": "The SymfonyMailer integration for the Yii framework", "keywords": [ - "data", - "faker", - "fixtures" + "email", + "mail", + "mailer", + "symfony", + "symfonymailer", + "yii2" ], - "time": "2018-07-12T10:23:15+00:00" - }, + "support": { + "forum": "http://www.yiiframework.com/forum/", + "irc": "irc://irc.freenode.net/yii", + "issues": "https://github.com/yiisoft/yii2-symfonymailer/issues", + "source": "https://github.com/yiisoft/yii2-symfonymailer", + "wiki": "http://www.yiiframework.com/wiki/" + }, + "funding": [ + { + "url": "https://github.com/yiisoft", + "type": "github" + }, + { + "url": "https://opencollective.com/yiisoft", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-symfonymailer", + "type": "tidelift" + } + ], + "time": "2022-12-05T08:20:13+00:00" + } + ], + "packages-dev": [ { - "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "name": "behat/gherkin", + "version": "v4.9.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "url": "https://github.com/Behat/Gherkin.git", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", "shasum": "" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "php": "~7.2|~8.0" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "cucumber/cucumber": "dev-gherkin-22.0.0", + "phpunit/phpunit": "~8|~9", + "symfony/yaml": "~3|~4|~5" }, "suggest": { - "psr/log": "Required for using the Log middleware" + "symfony/yaml": "If you want to parse features, represented in YAML files" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.3-dev" + "dev-master": "4.x-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" + "psr-0": { + "Behat\\Gherkin": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1740,57 +2031,56 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" } ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", + "description": "Gherkin DSL parser for PHP", + "homepage": "http://behat.org/", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" ], - "time": "2018-04-22T15:46:56+00:00" + "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": "guzzlehttp/promises", - "version": "v1.3.1", + "name": "codeception/c3", + "version": "2.8.1", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "url": "https://github.com/Codeception/c3.git", + "reference": "0b16f22ec0c46bc131063a3f704bdf9761192d6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/Codeception/c3/zipball/0b16f22ec0c46bc131063a3f704bdf9761192d6e", + "reference": "0b16f22ec0c46bc131063a3f704bdf9761192d6e", "shasum": "" }, "require": { + "composer-plugin-api": "^1.0 || ^2.0", "php": ">=5.5.0" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "composer/composer": "^1.0 || ^2.0" }, - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } + "class": "Codeception\\c3\\Installer" }, "autoload": { "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "Codeception\\c3\\": "." + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1798,58 +2088,109 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Tiger Seo", + "email": "tiger.seo@gmail.com" + }, + { + "name": "Michael Bodnarchuk", + "email": "davert.php@codegyre.com", + "homepage": "http://codegyre.com" } ], - "description": "Guzzle promises library", + "description": "CodeCoverage collector for Codeception", + "homepage": "http://codeception.com/", "keywords": [ - "promise" + "code coverage", + "codecoverage" ], - "time": "2016-12-20T10:07:11+00:00" + "support": { + "issues": "https://github.com/Codeception/c3/issues", + "source": "https://github.com/Codeception/c3/tree/2.8.1" + }, + "time": "2023-02-10T18:07:43+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "1.6.1", + "name": "codeception/codeception", + "version": "5.0.11", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "url": "https://github.com/Codeception/Codeception.git", + "reference": "1998a287a3d7f2771c9591aef1c528d9d44cc4b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/1998a287a3d7f2771c9591aef1c528d9d44cc4b4", + "reference": "1998a287a3d7f2771c9591aef1c528d9d44cc4b4", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "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", + "phpunit/php-text-template": "^2.0 || ^3.0", + "phpunit/php-timer": "^5.0.3 || ^6.0", + "phpunit/phpunit": "^9.5.20 || ^10.0", + "psy/psysh": "^0.11.2", + "sebastian/comparator": "^4.0.5 || ^5.0", + "sebastian/diff": "^4.0.3 || ^5.0", + "symfony/console": ">=4.4.24 <7.0", + "symfony/css-selector": ">=4.4.24 <7.0", + "symfony/event-dispatcher": ">=4.4.24 <7.0", + "symfony/finder": ">=4.4.24 <7.0", + "symfony/var-dumper": ">=4.4.24 < 7.0", + "symfony/yaml": ">=4.4.24 <7.0" }, - "provide": { - "psr/http-message-implementation": "1.0" + "conflict": { + "codeception/lib-innerbrowser": "<3.1.3", + "codeception/module-filesystem": "<3.0", + "codeception/module-phpbrowser": "<2.5" + }, + "replace": { + "codeception/phpunit-wrapper": "*" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "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 <7.0", + "symfony/process": ">=4.4.24 <7.0", + "vlucas/phpdotenv": "^5.1" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "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", - "extra": { - "branch-alias": { - "dev-master": "1.6-dev" - } - }, "autoload": { + "files": [ + "functions.php" + ], "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Codeception\\": "src/Codeception", + "Codeception\\Extension\\": "ext" }, - "files": [ - "src/functions_include.php" + "classmap": [ + "src/PHPUnit/TestCase.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -1858,710 +2199,683 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" + "name": "Michael Bodnarchuk", + "email": "davert.ua@gmail.com", + "homepage": "https://codeception.com" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "BDD-style testing framework", + "homepage": "https://codeception.com/", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "BDD", + "TDD", + "acceptance testing", + "functional testing", + "unit testing" + ], + "support": { + "issues": "https://github.com/Codeception/Codeception/issues", + "source": "https://github.com/Codeception/Codeception/tree/5.0.11" + }, + "funding": [ + { + "url": "https://opencollective.com/codeception", + "type": "open_collective" + } ], - "time": "2019-07-01T23:21:34+00:00" + "time": "2023-08-22T06:42:39+00:00" }, { - "name": "hiqdev/composer-config-plugin", - "version": "0.3.0", + "name": "codeception/lib-asserts", + "version": "2.1.0", "source": { "type": "git", - "url": "https://github.com/hiqdev/composer-config-plugin.git", - "reference": "f8155eb6f5e3a6974dcd96f0bc6bce49e72b51ba" + "url": "https://github.com/Codeception/lib-asserts.git", + "reference": "b8c7dff552249e560879c682ba44a4b963af91bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hiqdev/composer-config-plugin/zipball/f8155eb6f5e3a6974dcd96f0bc6bce49e72b51ba", - "reference": "f8155eb6f5e3a6974dcd96f0bc6bce49e72b51ba", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/b8c7dff552249e560879c682ba44a4b963af91bc", + "reference": "b8c7dff552249e560879c682ba44a4b963af91bc", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0", - "php": ">=7.0.0" - }, - "require-dev": { - "composer/composer": "~1.0@dev" - }, - "suggest": { - "symfony/yaml": "^2.0 || ^3.0 || ^4.0 for YAML files support", - "vlucas/phpdotenv": "^2.0 for `.env` files support" - }, - "type": "composer-plugin", - "extra": { - "class": "hiqdev\\composer\\config\\Plugin", - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "codeception/phpunit-wrapper": "^7.7.1 | ^8.0.3 | ^9.0", + "ext-dom": "*", + "php": "^7.4 | ^8.0" }, + "type": "library", "autoload": { - "psr-4": { - "hiqdev\\composer\\config\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Andrii Vasyliev", - "role": "Project lead", - "email": "sol@hiqdev.com", - "homepage": "http://hipanel.com/" - }, - { - "name": "Dmitry Naumenko", - "role": "Lead backend developer", - "email": "d.naumenko.a@gmail.com", - "homepage": "http://silverfire.me/" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" }, { - "name": "Andrey Klochok", - "role": "Lead frontend developer", - "email": "andreyklochok@gmail.com", - "homepage": "http://hiqdev.com/" + "name": "Gintautas Miselis" }, { - "name": "Yuriy Myronchuk", - "role": "QA Lead", - "email": "bladeroot@gmail.com", - "homepage": "http://hiqdev.com/" + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" } ], - "description": "Composer plugin for config assembling", - "homepage": "https://github.com/hiqdev/composer-config-plugin", + "description": "Assertion methods used by Codeception core and Asserts module", + "homepage": "https://codeception.com/", "keywords": [ - "assembling", - "composer", - "config", - "plugin" + "codeception" ], - "time": "2019-04-11T08:32:27+00:00" + "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": "hoa/consistency", - "version": "1.17.05.02", + "name": "codeception/lib-innerbrowser", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/hoaproject/Consistency.git", - "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f" + "url": "https://github.com/Codeception/lib-innerbrowser.git", + "reference": "32e9a19a39bbb5165cdb845dc3618b412a17e6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Consistency/zipball/fd7d0adc82410507f332516faf655b6ed22e4c2f", - "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/32e9a19a39bbb5165cdb845dc3618b412a17e6da", + "reference": "32e9a19a39bbb5165cdb845dc3618b412a17e6da", "shasum": "" }, "require": { - "hoa/exception": "~1.0", - "php": ">=5.5.0" + "codeception/codeception": "^5.0.8", + "codeception/lib-web": "^1.0.1", + "ext-dom": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.1", + "phpunit/phpunit": "^10.0", + "symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0", + "symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0" }, "require-dev": { - "hoa/stream": "~1.0", - "hoa/test": "~2.0" + "codeception/util-universalframework": "^1.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\Consistency\\": "." - }, - "files": [ - "Prelude.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "https://codegyre.com" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Gintautas Miselis" } ], - "description": "The Hoa\\Consistency library.", - "homepage": "https://hoa-project.net/", + "description": "Parent library for all Codeception framework modules and PhpBrowser", + "homepage": "https://codeception.com/", "keywords": [ - "autoloader", - "callable", - "consistency", - "entity", - "flex", - "keyword", - "library" - ], - "time": "2017-05-02T12:18:12+00:00" + "codeception" + ], + "support": { + "issues": "https://github.com/Codeception/lib-innerbrowser/issues", + "source": "https://github.com/Codeception/lib-innerbrowser/tree/4.0.0" + }, + "time": "2023-02-03T19:31:45+00:00" }, { - "name": "hoa/console", - "version": "3.17.05.02", + "name": "codeception/lib-web", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/hoaproject/Console.git", - "reference": "e231fd3ea70e6d773576ae78de0bdc1daf331a66" + "url": "https://github.com/Codeception/lib-web.git", + "reference": "f488ff9bc08c8985d43796db28da0bd18813bcae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Console/zipball/e231fd3ea70e6d773576ae78de0bdc1daf331a66", - "reference": "e231fd3ea70e6d773576ae78de0bdc1daf331a66", + "url": "https://api.github.com/repos/Codeception/lib-web/zipball/f488ff9bc08c8985d43796db28da0bd18813bcae", + "reference": "f488ff9bc08c8985d43796db28da0bd18813bcae", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/file": "~1.0", - "hoa/protocol": "~1.0", - "hoa/stream": "~1.0", - "hoa/ustring": "~4.0" + "ext-mbstring": "*", + "guzzlehttp/psr7": "^2.0", + "php": "^8.0", + "symfony/css-selector": ">=4.4.24 <7.0" }, - "require-dev": { - "hoa/test": "~2.0" + "conflict": { + "codeception/codeception": "<5.0.0-alpha3" }, - "suggest": { - "ext-pcntl": "To enable hoa://Event/Console/Window:resize.", - "hoa/dispatcher": "To use the console kit.", - "hoa/router": "To use the console kit." + "require-dev": { + "php-webdriver/webdriver": "^1.12", + "phpunit/phpunit": "^9.5 | ^10.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\Console\\": "." - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Gintautas Miselis" } ], - "description": "The Hoa\\Console library.", - "homepage": "https://hoa-project.net/", + "description": "Library containing files used by module-webdriver and lib-innerbrowser or module-phpbrowser", + "homepage": "https://codeception.com/", "keywords": [ - "autocompletion", - "chrome", - "cli", - "console", - "cursor", - "getoption", - "library", - "option", - "parser", - "processus", - "readline", - "terminfo", - "tput", - "window" + "codeception" ], - "time": "2017-05-02T12:26:19+00:00" + "support": { + "issues": "https://github.com/Codeception/lib-web/issues", + "source": "https://github.com/Codeception/lib-web/tree/1.0.2" + }, + "time": "2023-04-18T20:32:51+00:00" }, { - "name": "hoa/event", - "version": "1.17.01.13", + "name": "codeception/module-asserts", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/hoaproject/Event.git", - "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54" + "url": "https://github.com/Codeception/module-asserts.git", + "reference": "1b6b150b30586c3614e7e5761b31834ed7968603" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Event/zipball/6c0060dced212ffa3af0e34bb46624f990b29c54", - "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/1b6b150b30586c3614e7e5761b31834ed7968603", + "reference": "1b6b150b30586c3614e7e5761b31834ed7968603", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" + "codeception/codeception": "*@dev", + "codeception/lib-asserts": "^2.0", + "php": "^8.0" }, - "require-dev": { - "hoa/test": "~2.0" + "conflict": { + "codeception/codeception": "<5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\Event\\": "." - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Michael Bodnarchuk" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Gintautas Miselis" + }, + { + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" } ], - "description": "The Hoa\\Event library.", - "homepage": "https://hoa-project.net/", + "description": "Codeception module containing various assertions", + "homepage": "https://codeception.com/", "keywords": [ - "event", - "library", - "listener", - "observer" + "assertions", + "asserts", + "codeception" ], - "time": "2017-01-13T15:30:50+00:00" + "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": "hoa/exception", - "version": "1.17.01.16", + "name": "codeception/module-filesystem", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/hoaproject/Exception.git", - "reference": "091727d46420a3d7468ef0595651488bfc3a458f" + "url": "https://github.com/Codeception/module-filesystem.git", + "reference": "326ef1c1edf90f52ceec2965ff240a8d93c1ba63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Exception/zipball/091727d46420a3d7468ef0595651488bfc3a458f", - "reference": "091727d46420a3d7468ef0595651488bfc3a458f", + "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/326ef1c1edf90f52ceec2965ff240a8d93c1ba63", + "reference": "326ef1c1edf90f52ceec2965ff240a8d93c1ba63", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0" + "codeception/codeception": "*@dev", + "php": "^8.0", + "symfony/finder": "^4.4 || ^5.4 || ^6.0" }, - "require-dev": { - "hoa/test": "~2.0" + "conflict": { + "codeception/codeception": "<5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\Exception\\": "." - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Michael Bodnarchuk" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Gintautas Miselis" } ], - "description": "The Hoa\\Exception library.", - "homepage": "https://hoa-project.net/", + "description": "Codeception module for testing local filesystem", + "homepage": "https://codeception.com/", "keywords": [ - "exception", - "library" + "codeception", + "filesystem" ], - "time": "2017-01-16T07:53:27+00:00" + "support": { + "issues": "https://github.com/Codeception/module-filesystem/issues", + "source": "https://github.com/Codeception/module-filesystem/tree/3.0.0" + }, + "time": "2022-03-14T18:48:55+00:00" }, { - "name": "hoa/file", - "version": "1.17.07.11", + "name": "codeception/module-yii2", + "version": "1.1.9", "source": { "type": "git", - "url": "https://github.com/hoaproject/File.git", - "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca" + "url": "https://github.com/Codeception/module-yii2.git", + "reference": "70ad7544fc256363acd082b4ef9e7220a18017a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/File/zipball/35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", - "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", + "url": "https://api.github.com/repos/Codeception/module-yii2/zipball/70ad7544fc256363acd082b4ef9e7220a18017a0", + "reference": "70ad7544fc256363acd082b4ef9e7220a18017a0", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/iterator": "~2.0", - "hoa/stream": "~1.0" + "codeception/codeception": "^5.0.8", + "codeception/lib-innerbrowser": "^3.0 | ^4.0", + "php": "^8.0" }, "require-dev": { - "hoa/test": "~2.0" + "codeception/module-asserts": "^3.0", + "codeception/module-filesystem": "^3.0", + "codeception/verify": "^3.0", + "codemix/yii2-localeurls": "^1.7", + "yiisoft/yii2": "dev-master", + "yiisoft/yii2-app-advanced": "dev-master" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\File\\": "." - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Alexander Makarov" + }, + { + "name": "Sam Mouse" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Michael Bodnarchuk" } ], - "description": "The Hoa\\File library.", - "homepage": "https://hoa-project.net/", + "description": "Codeception module for Yii2 framework", + "homepage": "https://codeception.com/", "keywords": [ - "Socket", - "directory", - "file", - "finder", - "library", - "link", - "temporary" - ], - "time": "2017-07-11T07:42:15+00:00" + "codeception", + "yii2" + ], + "support": { + "issues": "https://github.com/Codeception/module-yii2/issues", + "source": "https://github.com/Codeception/module-yii2/tree/1.1.9" + }, + "time": "2023-06-16T03:48:50+00:00" }, { - "name": "hoa/iterator", - "version": "2.17.01.10", + "name": "codeception/stub", + "version": "4.1.2", "source": { "type": "git", - "url": "https://github.com/hoaproject/Iterator.git", - "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc" + "url": "https://github.com/Codeception/Stub.git", + "reference": "f6bc56e33e3f5ba7a831dfb968c49b27cf1676ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Iterator/zipball/d1120ba09cb4ccd049c86d10058ab94af245f0cc", - "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/f6bc56e33e3f5ba7a831dfb968c49b27cf1676ad", + "reference": "f6bc56e33e3f5ba7a831dfb968c49b27cf1676ad", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" + "php": "^7.4 | ^8.0", + "phpunit/phpunit": "^8.4 | ^9.0 | ^10.0 | 10.0.x-dev" + }, + "conflict": { + "codeception/codeception": "<5.0.6" }, "require-dev": { - "hoa/test": "~2.0" + "consolidation/robo": "^3.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, "autoload": { "psr-4": { - "Hoa\\Iterator\\": "." + "Codeception\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" - }, - { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" - } - ], - "description": "The Hoa\\Iterator library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "iterator", - "library" + "MIT" ], - "time": "2017-01-10T10:34:47+00:00" + "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.2" + }, + "time": "2023-10-07T19:22:36+00:00" }, { - "name": "hoa/protocol", - "version": "1.17.01.14", + "name": "codeception/verify", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/hoaproject/Protocol.git", - "reference": "5c2cf972151c45f373230da170ea015deecf19e2" + "url": "https://github.com/Codeception/Verify.git", + "reference": "25b84a96f0fe7dcf28e8021f02b57643b751a707" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Protocol/zipball/5c2cf972151c45f373230da170ea015deecf19e2", - "reference": "5c2cf972151c45f373230da170ea015deecf19e2", + "url": "https://api.github.com/repos/Codeception/Verify/zipball/25b84a96f0fe7dcf28e8021f02b57643b751a707", + "reference": "25b84a96f0fe7dcf28e8021f02b57643b751a707", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" - }, - "require-dev": { - "hoa/test": "~2.0" + "ext-dom": "*", + "php": "^7.4 || ^8.0", + "phpunit/phpunit": "^9.5 | ^10.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "psr-4": { - "Hoa\\Protocol\\": "." - }, "files": [ - "Wrapper.php" - ] + "src/Codeception/bootstrap.php" + ], + "psr-4": { + "Codeception\\": "src\\Codeception" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Michael Bodnarchuk", + "email": "davert@codeception.com" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Gustavo Nieves", + "homepage": "https://medium.com/@ganieves" } ], - "description": "The Hoa\\Protocol library.", - "homepage": "https://hoa-project.net/", - "keywords": [ - "library", - "protocol", - "resource", - "stream", - "wrapper" - ], - "time": "2017-01-14T12:26:10+00:00" + "description": "BDD assertion library for PHPUnit", + "support": { + "issues": "https://github.com/Codeception/Verify/issues", + "source": "https://github.com/Codeception/Verify/tree/3.0.0" + }, + "time": "2023-02-09T07:33:00+00:00" }, { - "name": "hoa/stream", - "version": "1.17.02.21", + "name": "guzzlehttp/psr7", + "version": "2.6.1", "source": { "type": "git", - "url": "https://github.com/hoaproject/Stream.git", - "reference": "3293cfffca2de10525df51436adf88a559151d82" + "url": "https://github.com/guzzle/psr7.git", + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Stream/zipball/3293cfffca2de10525df51436adf88a559151d82", - "reference": "3293cfffca2de10525df51436adf88a559151d82", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/event": "~1.0", - "hoa/exception": "~1.0", - "hoa/protocol": "~1.0" + "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": { - "hoa/test": "~2.0" + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { - "Hoa\\Stream\\": "." + "GuzzleHttp\\Psr7\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "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": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], - "description": "The Hoa\\Stream library.", - "homepage": "https://hoa-project.net/", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ - "Context", - "bucket", - "composite", - "filter", - "in", - "library", - "out", - "protocol", + "http", + "message", + "psr-7", + "request", + "response", "stream", - "wrapper" + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.1" + }, + "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": "2017-02-21T16:01:06+00:00" + "time": "2023-08-27T10:13:57+00:00" }, { - "name": "hoa/ustring", - "version": "4.17.01.16", + "name": "maglnet/composer-require-checker", + "version": "4.7.1", "source": { "type": "git", - "url": "https://github.com/hoaproject/Ustring.git", - "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0" + "url": "https://github.com/maglnet/ComposerRequireChecker.git", + "reference": "e49c58b18fef21e37941a642c1a70d3962e86f28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Ustring/zipball/e6326e2739178799b1fe3fdd92029f9517fa17a0", - "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0", + "url": "https://api.github.com/repos/maglnet/ComposerRequireChecker/zipball/e49c58b18fef21e37941a642c1a70d3962e86f28", + "reference": "e49c58b18fef21e37941a642c1a70d3962e86f28", "shasum": "" }, "require": { - "hoa/consistency": "~1.0", - "hoa/exception": "~1.0" + "composer-runtime-api": "^2.0.0", + "ext-phar": "*", + "nikic/php-parser": "^4.17.1", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "symfony/console": "^6.3.4", + "webmozart/assert": "^1.11.0", + "webmozart/glob": "^4.6.0" }, "require-dev": { - "hoa/test": "~2.0" - }, - "suggest": { - "ext-iconv": "ext/iconv must be present (or a third implementation) to use Hoa\\Ustring::transcode().", - "ext-intl": "To get a better Hoa\\Ustring::toAscii() and Hoa\\Ustring::compareTo()." + "doctrine/coding-standard": "^12.0.0", + "ext-zend-opcache": "*", + "mikey179/vfsstream": "^1.6.11", + "phing/phing": "^2.17.4", + "phpstan/phpstan": "^1.10.34", + "phpunit/phpunit": "^10.3.4", + "roave/infection-static-analysis-plugin": "^1.33", + "vimeo/psalm": "^5.15" }, + "bin": [ + "bin/composer-require-checker" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { - "Hoa\\Ustring\\": "." + "ComposerRequireChecker\\": "src/ComposerRequireChecker" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.io/" }, { - "name": "Hoa community", - "homepage": "https://hoa-project.net/" + "name": "Matthias Glaub", + "email": "magl@magl.net", + "homepage": "http://magl.net" } ], - "description": "The Hoa\\Ustring library.", - "homepage": "https://hoa-project.net/", + "description": "CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package", + "homepage": "https://github.com/maglnet/ComposerRequireChecker", "keywords": [ - "library", - "search", - "string", - "unicode" + "analysis", + "cli", + "composer", + "dependency", + "imports", + "require", + "requirements" ], - "time": "2017-01-16T07:08:25+00:00" + "support": { + "issues": "https://github.com/maglnet/ComposerRequireChecker/issues", + "source": "https://github.com/maglnet/ComposerRequireChecker/tree/4.7.1" + }, + "time": "2023-09-27T14:57:19+00:00" }, { - "name": "monolog/monolog", - "version": "1.24.0", + "name": "masterminds/html5", + "version": "2.8.1", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266" + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", - "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" + "ext-dom": "*", + "php": ">=5.3.0" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.7-dev" } }, "autoload": { "psr-4": { - "Monolog\\": "src/Monolog" + "Masterminds\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2570,53 +2884,69 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", "keywords": [ - "log", - "logging", - "psr-3" + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" ], - "time": "2018-11-05T09:00:11+00:00" + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.1", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", - "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2630,93 +2960,99 @@ "object", "object graph" ], - "time": "2019-04-07T13:18:21+00:00" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" }, { - "name": "opis/closure", - "version": "3.3.1", + "name": "nikic/php-parser", + "version": "v4.17.1", "source": { "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "92927e26d7fc3f271efe1f55bdbb073fbb2f0722" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/92927e26d7fc3f271efe1f55bdbb073fbb2f0722", - "reference": "92927e26d7fc3f271efe1f55bdbb073fbb2f0722", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0" + "ext-tokenizer": "*", + "php": ">=7.0" }, "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "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": "3.3.x-dev" + "dev-master": "4.9-dev" } }, "autoload": { "psr-4": { - "Opis\\Closure\\": "src/" - }, - "files": [ - "functions.php" - ] + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" + "name": "Nikita Popov" } ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", + "description": "A PHP parser written in PHP", "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "time": "2019-07-09T21:58:11+00:00" + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -2746,24 +3082,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -2793,172 +3133,24 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.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" - ], - "time": "2017-09-11T18:02:19+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.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": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-04-30T17:48:53+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.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" - } - ], - "time": "2017-07-14T14:27:02+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpspec/php-diff", - "version": "v1.1.0", + "version": "v1.1.3", "source": { "type": "git", "url": "https://github.com/phpspec/php-diff.git", - "reference": "0464787bfa7cd13576c5a1e318709768798bec6a" + "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/php-diff/zipball/0464787bfa7cd13576c5a1e318709768798bec6a", - "reference": "0464787bfa7cd13576c5a1e318709768798bec6a", + "url": "https://api.github.com/repos/phpspec/php-diff/zipball/fc1156187f9f6c8395886fe85ed88a0a245d72e9", + "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9", "shasum": "" }, "type": "library", @@ -2983,107 +3175,113 @@ } ], "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", - "time": "2016-04-07T12:29:16+00:00" + "support": { + "source": "https://github.com/phpspec/php-diff/tree/v1.1.3" + }, + "time": "2020-09-18T13:47:07+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.8.1", + "name": "phpstan/phpstan", + "version": "1.10.38", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "5302bb402c57f00fb3c2c015bac86e0827e4b691" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", - "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/5302bb402c57f00fb3c2c015bac86e0827e4b691", + "reference": "5302bb402c57f00fb3c2c015bac86e0827e4b691", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "php": "^7.2|^8.0" }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "conflict": { + "phpstan/phpstan-shim": "*" }, + "bin": [ + "phpstan", + "phpstan.phar" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "url": "https://github.com/ondrejmirtes", + "type": "github" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "url": "https://github.com/phpstan", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2019-06-13T12:50:23+00:00" + "time": "2023-10-06T14:19:14+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.7", + "version": "10.1.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800" + "reference": "355324ca4980b8916c18b9db29f3ef484078f26e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", - "reference": "7743bbcfff2a907e9ee4a25be13d0f8ec5e73800", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/355324ca4980b8916c18b9db29f3ef484078f26e", + "reference": "355324ca4980b8916c18b9db29f3ef484078f26e", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": "^7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.15", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-text-template": "^3.0", + "sebastian/code-unit-reverse-lookup": "^3.0", + "sebastian/complexity": "^3.0", + "sebastian/environment": "^6.0", + "sebastian/lines-of-code": "^2.0", + "sebastian/version": "^4.0", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^10.1" }, "suggest": { - "ext-xdebug": "^2.7.2" + "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-master": "7.0-dev" + "dev-main": "10.1-dev" } }, "autoload": { @@ -3098,8 +3296,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "role": "lead", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", @@ -3109,32 +3307,43 @@ "testing", "xunit" ], - "time": "2019-07-25T05:31:54+00:00" + "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/10.1.7" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-10-04T15:34:17+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -3159,26 +3368,49 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", "shasum": "" }, - "require": { - "php": ">=5.3.3" + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -3195,37 +3427,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2023-02-03T06:56:09+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.2", + "name": "phpunit/php-text-template", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3244,38 +3486,48 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], - "time": "2019-06-07T04:22:29+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.1.0", + "name": "phpunit/php-timer", + "version": "6.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", - "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -3290,64 +3542,71 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-07-25T05:29:42+00:00" + "time": "2023-02-03T06:57:52+00:00" }, { "name": "phpunit/phpunit", - "version": "8.2.5", + "version": "10.4.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c1b8534b3730f20f58600124129197bf1183dc92" + "reference": "62bd7af13d282deeb95650077d28ba3600ca321c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c1b8534b3730f20f58600124129197bf1183dc92", - "reference": "c1b8534b3730f20f58600124129197bf1183dc92", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/62bd7af13d282deeb95650077d28ba3600ca321c", + "reference": "62bd7af13d282deeb95650077d28ba3600ca321c", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.5", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.0", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.5", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-invoker": "^4.0", + "phpunit/php-text-template": "^3.0", + "phpunit/php-timer": "^6.0", + "sebastian/cli-parser": "^2.0", + "sebastian/code-unit": "^2.0", + "sebastian/comparator": "^5.0", + "sebastian/diff": "^5.0", + "sebastian/environment": "^6.0", + "sebastian/exporter": "^5.1", + "sebastian/global-state": "^6.0.1", + "sebastian/object-enumerator": "^5.0", + "sebastian/recursion-context": "^5.0", + "sebastian/type": "^4.0", + "sebastian/version": "^4.0" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -3355,10 +3614,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.2-dev" + "dev-main": "10.4-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -3381,24 +3643,44 @@ "testing", "xunit" ], - "time": "2019-07-15T06:26:24+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.1" + }, + "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": "2023-10-08T05:01:11+00:00" }, { - "name": "psr/container", - "version": "1.0.0", + "name": "psr/http-factory", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -3408,7 +3690,7 @@ }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3418,41 +3700,46 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], - "time": "2017-02-14T16:28:37+00:00" + "support": { + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + }, + "time": "2023-04-10T20:10:41+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3467,7 +3754,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -3480,34 +3767,64 @@ "request", "response" ], - "time": "2016-08-06T14:39:51+00:00" + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" }, { - "name": "psr/log", - "version": "1.1.0", + "name": "psy/psysh", + "version": "v0.11.21", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "bcb22101107f3bf770523b65630c9d547f60c540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", - "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/bcb22101107f3bf770523b65630c9d547f60c540", + "reference": "bcb22101107f3bf770523b65630c9d547f60c540", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^4.0 || ^3.1", + "php": "^8.0 || ^7.0.8", + "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^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.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." }, + "bin": [ + "bin/psysh" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "0.11.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3516,18 +3833,24 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", "keywords": [ - "log", - "psr", - "psr-3" + "REPL", + "console", + "interactive", + "shell" ], - "time": "2018-11-20T15:27:04+00:00" + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.21" + }, + "time": "2023-09-17T21:15:54+00:00" }, { "name": "ralouphie/getallheaders", @@ -3567,32 +3890,148 @@ } ], "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": "sebastian/cli-parser", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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 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/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:15+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" + }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3612,34 +4051,46 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", "shasum": "" }, "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^10.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -3652,6 +4103,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -3663,10 +4118,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -3676,33 +4127,102 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-14T13:18:12+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", + "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.10", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-09-28T11:50:59+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -3715,13 +4235,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -3732,27 +4252,38 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-01T07:48:21+00:00" }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^10.0" }, "suggest": { "ext-posix": "*" @@ -3760,7 +4291,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -3779,40 +4310,51 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-04-11T05:39:26+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -3825,6 +4367,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -3833,57 +4379,61 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "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": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-09-24T13:22:09+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "6.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", "shasum": "" }, "require": { - "php": "^7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -3906,34 +4456,44 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-07-19T07:19:23+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.3", + "name": "sebastian/lines-of-code", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "nikic/php-parser": "^4.10", + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -3948,37 +4508,51 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "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", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T09:25:50+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.1", + "name": "sebastian/object-enumerator", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -3996,34 +4570,44 @@ "email": "sebastian@phpunit.de" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "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/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:08:32+00:00" }, { - "name": "sebastian/recursion-context", + "name": "sebastian/object-reflector", "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -4036,44 +4620,49 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "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/3.0.0" + }, + "funding": [ { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "time": "2023-02-03T07:06:18+00:00" }, { - "name": "sebastian/resource-operations", - "version": "2.0.1", + "name": "sebastian/recursion-context", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -4089,36 +4678,54 @@ { "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/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "time": "2023-02-03T07:05:40+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -4139,29 +4746,39 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:10:45+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -4182,41 +4799,43 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-07T11:34:05+00:00" }, { "name": "symfony/browser-kit", - "version": "v4.3.3", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "a29dd02a1f3f81b9a15c7730cc3226718ddb55ca" + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/a29dd02a1f3f81b9a15c7730cc3226718ddb55ca", - "reference": "a29dd02a1f3f81b9a15c7730cc3226718ddb55ca", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/dom-crawler": "~3.4|~4.0" + "php": ">=8.1", + "symfony/dom-crawler": "^5.4|^6.0" }, "require-dev": { - "symfony/css-selector": "~3.4|~4.0", - "symfony/http-client": "^4.3", - "symfony/mime": "^4.3", - "symfony/process": "~3.4|~4.0" - }, - "suggest": { - "symfony/process": "" + "symfony/css-selector": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\BrowserKit\\": "" @@ -4239,59 +4858,68 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony BrowserKit Component", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", - "time": "2019-06-11T15:41:59+00:00" + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v6.3.2" + }, + "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": "2023-07-06T06:56:43+00:00" }, { "name": "symfony/console", - "version": "v4.3.3", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9" + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", - "reference": "8b0ae5742ce9aaa8b0075665862c1ca397d1c1d9", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" }, "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3", - "symfony/process": "<3.3" + "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" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "^4.3", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/var-dumper": "^4.3" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -4314,33 +4942,51 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", - "time": "2019-07-24T17:13:59+00:00" + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.3.4" + }, + "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": "2023-08-16T10:10:12+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.3", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d" + "reference": "883d961421ab1709877c10ac99451632a3d6fa57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/105c98bb0c5d8635bea056135304bd8edcc42b4d", - "reference": "105c98bb0c5d8635bea056135304bd8edcc42b4d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57", + "reference": "883d961421ab1709877c10ac99451632a3d6fa57", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=8.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" @@ -4367,118 +5013,54 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", - "time": "2019-01-16T21:53:39+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v4.3.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "291397232a2eefb3347eaab9170409981eaad0e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/291397232a2eefb3347eaab9170409981eaad0e2", - "reference": "291397232a2eefb3347eaab9170409981eaad0e2", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" - }, - "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "~3.4|~4.0" + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.3.2" }, - "suggest": { - "symfony/css-selector": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2019-06-13T11:03:18+00:00" + "time": "2023-07-12T16:00:22+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v4.3.3", + "name": "symfony/dom-crawler", + "version": "v6.3.4", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "212b020949331b6531250584531363844b34a94e" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/212b020949331b6531250584531363844b34a94e", - "reference": "212b020949331b6531250584531363844b34a94e", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "masterminds/html5": "^2.6", + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "^3.4|^4.0", - "symfony/service-contracts": "^1.1", - "symfony/stopwatch": "~3.4|~4.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "symfony/css-selector": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" + "Symfony\\Component\\DomCrawler\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -4498,91 +5080,48 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", - "time": "2019-06-27T06:42:14+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.5", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c61766f4440ca687de1084a5c00b08e167a2575c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c", - "reference": "c61766f4440ca687de1084a5c00b08e167a2575c", - "shasum": "" - }, - "require": { - "php": "^7.1.3" - }, - "suggest": { - "psr/event-dispatcher": "", - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v6.3.4" }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-06-20T06:46:26+00:00" + "time": "2023-08-01T07:43:40+00:00" }, { "name": "symfony/finder", - "version": "v4.3.3", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2" + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9638d41e3729459860bb96f6247ccb61faaa45f2", - "reference": "9638d41e3729459860bb96f6247ccb61faaa45f2", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=8.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } + "require-dev": { + "symfony/filesystem": "^6.0" }, + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -4605,26 +5144,46 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", - "time": "2019-06-28T13:16:30+00:00" + "support": { + "source": "https://github.com/symfony/finder/tree/v6.3.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": "2023-09-26T12:56:25+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.11.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "82ebae02209c21113908c229e9883c419720738a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", - "reference": "82ebae02209c21113908c229e9883c419720738a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" }, "suggest": { "ext-ctype": "For best performance" @@ -4632,29 +5191,33 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, { "name": "Gert de Pagter", "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony polyfill for ctype functions", @@ -4665,41 +5228,62 @@ "polyfill", "portable" ], - "time": "2019-02-06T07:57:58+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.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": "2023-01-26T09:26:14+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.11.0", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", - "reference": "d1fb4abcc0c47be136208ad9d68bf59f1ee17abd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11-dev" + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], - "classmap": [ - "Resources/stubs" - ] + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4715,39 +5299,53 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", + "grapheme", + "intl", "polyfill", "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.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": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", - "version": "v4.3.3", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c" + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c", - "reference": "856d35814cf287480465bb7a6c413bb7f5f5e69c", + "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=8.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -4770,41 +5368,157 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "time": "2019-05-30T16:10:05+00:00" + "support": { + "source": "https://github.com/symfony/process/tree/v6.3.4" + }, + "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": "2023-08-07T10:39:22+00:00" }, { - "name": "symfony/service-contracts", - "version": "v1.1.5", + "name": "symfony/string", + "version": "v6.3.5", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d" + "url": "https://github.com/symfony/string.git", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", - "reference": "f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", "shasum": "" }, "require": { - "php": "^7.1.3", - "psr/container": "^1.0" + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" }, - "suggest": { - "symfony/service-implementation": "" + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" + "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/v6.3.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": "2023-09-18T10:38:32+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "3d9999376be5fea8de47752837a3e1d1c5f69ef5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3d9999376be5fea8de47752837a3e1d1c5f69ef5", + "reference": "3d9999376be5fea8de47752837a3e1d1c5f69ef5", + "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", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.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\\Contracts\\Service\\": "" - } + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4820,51 +5534,60 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.3.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": "2019-06-13T11:15:36+00:00" + "time": "2023-09-12T10:11:35+00:00" }, { "name": "symfony/yaml", - "version": "v4.3.3", + "version": "v6.3.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "34d29c2acd1ad65688f58452fd48a46bd996d5a6" + "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/34d29c2acd1ad65688f58452fd48a46bd996d5a6", - "reference": "34d29c2acd1ad65688f58452fd48a46bd996d5a6", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e23292e8c07c85b971b44c1c4b87af52133e2add", + "reference": "e23292e8c07c85b971b44c1c4b87af52133e2add", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<3.4" + "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "symfony/console": "^5.4|^6.0" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -4887,29 +5610,46 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", - "time": "2019-07-24T14:47:54+00:00" + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.3.3" + }, + "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": "2023-07-31T07:08:24+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -4929,34 +5669,47 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" + "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": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.10-dev" } }, "autoload": { @@ -4980,57 +5733,105 @@ "check", "validate" ], - "time": "2018-12-25T11:19:39+00:00" + "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": "yiisoft/yii2-debug", - "version": "2.1.7", + "name": "webmozart/glob", + "version": "4.6.0", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-debug.git", - "reference": "c54717af9172cf6233fea3eec113c0e0293e2bb2" + "url": "https://github.com/webmozarts/glob.git", + "reference": "3c17f7dec3d9d0e87b575026011f2e75a56ed655" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/c54717af9172cf6233fea3eec113c0e0293e2bb2", - "reference": "c54717af9172cf6233fea3eec113c0e0293e2bb2", + "url": "https://api.github.com/repos/webmozarts/glob/zipball/3c17f7dec3d9d0e87b575026011f2e75a56ed655", + "reference": "3c17f7dec3d9d0e87b575026011f2e75a56ed655", "shasum": "" }, "require": { - "ext-mbstring": "*", - "opis/closure": "^3.3", - "php": ">=5.4", - "yiisoft/yii2": "~2.0.13" + "php": "^7.3 || ^8.0.0" }, "require-dev": { - "phpunit/phpunit": "<7", - "yiisoft/yii2-coding-standards": "~2.0", - "yiisoft/yii2-swiftmailer": "*" + "phpunit/phpunit": "^9.5", + "symfony/filesystem": "^5.3" }, - "type": "yii2-extension", + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.1-dev" } }, "autoload": { "psr-4": { - "yii\\debug\\": "src" + "Webmozart\\Glob\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Qiang Xue", - "email": "qiang.xue@gmail.com" - }, - { - "name": "Simon Karlen", - "email": "simi.albi@outlook.com" + "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.6.0" + }, + "time": "2022-05-24T19:45:58+00:00" + }, + { + "name": "yii2-extensions/debug", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/yii2-extensions/debug.git", + "reference": "a6b3e206e811a182d805856b1559b88a05181f2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yii2-extensions/debug/zipball/a6b3e206e811a182d805856b1559b88a05181f2e", + "reference": "a6b3e206e811a182d805856b1559b88a05181f2e", + "shasum": "" + }, + "require": { + "ext-intl": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "symfony/mime": "^6.3", + "yiisoft/yii2": "^2.2", + "yiisoft/yii2-symfonymailer": "^3.0" + }, + "require-dev": { + "maglnet/composer-require-checker": "^4.6", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.2", + "rector/rector": "^0.18", + "yii2-extensions/phpstan": "dev-main" + }, + "default-branch": true, + "type": "yii2-extension", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" } + }, + "autoload": { + "psr-4": { + "yii\\debug\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "mit" ], "description": "The debugger extension for the Yii framework", "keywords": [ @@ -5038,117 +5839,130 @@ "debugger", "yii2" ], - "time": "2019-07-30T12:40:16+00:00" + "support": { + "issues": "https://github.com/yii2-extensions/debug/issues", + "source": "https://github.com/yii2-extensions/debug/tree/main" + }, + "time": "2023-10-09T18:19:23+00:00" }, { - "name": "yiisoft/yii2-faker", - "version": "2.0.4", + "name": "yii2-extensions/gii", + "version": "dev-main", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-faker.git", - "reference": "3df62b1dcb272a8413f9c6e532c9d73f325ccde1" + "url": "https://github.com/yii2-extensions/gii.git", + "reference": "008f6b3ccbe0f6e76f22eac6f00fe3caa37f684c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/3df62b1dcb272a8413f9c6e532c9d73f325ccde1", - "reference": "3df62b1dcb272a8413f9c6e532c9d73f325ccde1", + "url": "https://api.github.com/repos/yii2-extensions/gii/zipball/008f6b3ccbe0f6e76f22eac6f00fe3caa37f684c", + "reference": "008f6b3ccbe0f6e76f22eac6f00fe3caa37f684c", "shasum": "" }, "require": { - "fzaninotto/faker": "~1.4", - "yiisoft/yii2": "~2.0.0" + "ext-ctype": "*", + "php": ">=8.1", + "phpspec/php-diff": "^1.1", + "yiisoft/yii2": "^2.2" + }, + "require-dev": { + "maglnet/composer-require-checker": "^4.6", + "phpunit/phpunit": "^10.3", + "yii2-extensions/phpstan": "dev-main" }, + "default-branch": true, "type": "yii2-extension", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { "psr-4": { - "yii\\faker\\": "" + "yii\\gii\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Mark Jebri", - "email": "mark.github@yandex.ru" - } - ], - "description": "Fixture generator. The Faker integration for the Yii framework.", + "description": "The Gii extension for the Yii framework", "keywords": [ - "Fixture", - "faker", + "code generator", + "gii", "yii2" ], - "time": "2018-02-19T20:27:10+00:00" + "support": { + "issues": "https://github.com/yii2-extensions/gii/issues", + "source": "https://github.com/yii2-extensions/gii/tree/main" + }, + "time": "2023-10-06T14:39:00+00:00" }, { - "name": "yiisoft/yii2-gii", - "version": "2.1.0", + "name": "yii2-extensions/phpstan", + "version": "dev-main", "source": { "type": "git", - "url": "https://github.com/yiisoft/yii2-gii.git", - "reference": "d1c18f0dcbd72ab285acd320c56b1aa2554e06fa" + "url": "https://github.com/yii2-extensions/phpstan.git", + "reference": "ef049c6d1d8c1388184346c6e5374734a98ed9fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/d1c18f0dcbd72ab285acd320c56b1aa2554e06fa", - "reference": "d1c18f0dcbd72ab285acd320c56b1aa2554e06fa", + "url": "https://api.github.com/repos/yii2-extensions/phpstan/zipball/ef049c6d1d8c1388184346c6e5374734a98ed9fb", + "reference": "ef049c6d1d8c1388184346c6e5374734a98ed9fb", "shasum": "" }, "require": { - "phpspec/php-diff": "^1.1.0", - "yiisoft/yii2": "~2.0.14" + "nikic/php-parser": "^4.1.0", + "php": ">=8.1", + "phpstan/phpstan": "^1.0", + "yiisoft/yii2": "^2.2" }, "require-dev": { - "phpunit/phpunit": "<7", - "yiisoft/yii2-coding-standards": "~2.0" + "maglnet/composer-require-checker": "^4.6", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^10.2" }, - "type": "yii2-extension", + "default-branch": true, + "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "1.0.x-dev" } }, "autoload": { "psr-4": { - "yii\\gii\\": "src" + "Yii\\PHPStan\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Qiang Xue", - "email": "qiang.xue@gmail.com" - } + "mit" ], - "description": "The Gii extension for the Yii framework", + "description": "PHPStan extension for Yii2", "keywords": [ - "code generator", - "gii", + "PHPStan", "yii2" ], - "time": "2019-03-17T19:23:15+00:00" + "support": { + "issues": "https://github.com/yii2-extensions/phpstan/issues", + "source": "https://github.com/yii2-extensions/phpstan/tree/main" + }, + "time": "2023-10-09T13:08:23+00:00" } ], "aliases": [], "minimum-stability": "dev", "stability-flags": { - "terabytesoftw/helper-mailer": 20, - "terabytesoftw/widget-alert": 20 + "yii2-extensions/debug": 20, + "yii2-extensions/gii": 20, + "yii2-extensions/phpstan": 20 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.2.0" + "php": ">=8.1" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.6.0" } diff --git a/config/appbasic.php b/config/appbasic.php deleted file mode 100644 index cebba96..0000000 --- a/config/appbasic.php +++ /dev/null @@ -1,87 +0,0 @@ - '@root/node_modules', - 'app.basic.alias.path.npm' => '@root/node_modules', - 'app.basic.alias.path.public' => '@root/public', - 'app.basic.alias.path.runtime' => '@root/public/@runtime', - 'app.basic.base.path' => '@vendor/terabytesoftw/app-basic/src', - 'app.basic.bootstrap' => ['log'], - 'app.basic.controller.namespace' => 'terabytesoft\app\basic\controllers', - 'app.basic.footer.autor' => '©' . date('Y') . '. ' . \Yii::t('app.basic', 'TerabyteSoft SA - Wilmer Arambula.'), - 'app.basic.id' => 'app.basic', - 'app.basic.language' => 'en-US', - 'app.basic.name' => 'My Project Basic', - 'app.basic.vendor.path' => '@root/vendor', - - // menu default without extension ['terabytesoftw/app-user'] - 'app.basic.menu.isguest' => [ - [ - 'label' => \Yii::t('app.basic', 'About'), - 'url' => ['/site/about'] - ], - [ - 'label' => \Yii::t('app.basic', 'Contact'), - 'url' => ['/site/contact'] - ], - ], - - // menu default with extension ['terabytesoftw/app-user'] - 'app.basic.setting.menu.user.isguest' => [ - [ - 'label' => \Yii::t('app.basic', 'Sign up'), - 'url' => ['/user/registration/register'], - ], - [ - 'label' => \Yii::t('app.basic', 'Login'), - 'url' => ['/user/security/login'] - ], - ], - 'app.basic.setting.menu.user.logged' => [ - [ - 'label' => \Yii::t('app.basic', 'Manage Users'), - 'url' => ['/user/admin/index'], - ], - [ - 'label' => \Yii::t('app.basic', 'Settings Account'), - 'url' => ['/user/settings/account'], - ], - [ - 'label' => \Yii::t('app.basic', 'Settings Profile'), - 'url' => ['/user/settings/profile'], - ], - [ - 'label' => \Yii::t('app.basic', 'Logout'), - 'url' => ['/user/security/logout'], - 'linkOptions' => ['data-method' => 'POST'], - ], - ], - - // component assetmanager - 'app.basic.assetmanager.base.path' => '@public/assets', - - // component errorHandler - 'app.basic.errorhandler.erroraction' => 'site/error', - - // component log - 'app.basic.log.levels' => ['error', 'warning', 'info'], - 'app.basic.log.logFile' => '@runtime/logs/app.log', - - // component mailer - 'app.basic.mailer.usefiletransport' => true, - - // component request - 'app.basic.request.cookievalidationkey' => 'testme-codeception', - 'app.basic.request.enablecsrfvalidation' => true, - - // component urlmanager - 'app.basic.urlmanager.enableprettyurl' => true, - 'app.basic.urlmanager.showscriptname' => true, -]; diff --git a/config/console.php b/config/console.php index c7dabd1..555d25b 100644 --- a/config/console.php +++ b/config/console.php @@ -1,8 +1,57 @@ 'basic-console', + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'aliases' => [ + '@bower' => '@vendor/bower-asset', + '@npm' => '@vendor/npm-asset', + '@root' => dirname(__DIR__), + '@resource' => dirname(__DIR__) . '/src/Framework/resource', + '@tests' => '@app/tests', + ], + 'components' => [ + 'cache' => [ + 'class' => 'yii\caching\FileCache', + ], + 'log' => [ + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + ], + 'params' => $params, + /* + 'controllerMap' => [ + 'fixture' => [ // Fixture generation command line. + 'class' => 'yii\faker\FixtureController', + ], + ], + */ ]; + +if (YII_ENV_DEV) { + // configuration adjustments for 'dev' environment + $config['bootstrap'][] = 'gii'; + $config['modules']['gii'] = [ + 'class' => 'yii\gii\Module', + ]; + // configuration adjustments for 'dev' environment + // requires version `2.1.21` of yii2-debug module + $config['bootstrap'][] = 'debug'; + $config['modules']['debug'] = [ + 'class' => 'yii\debug\Module', + // uncomment the following to add your IP if you are not connecting from localhost. + //'allowedIPs' => ['127.0.0.1', '::1'], + ]; +} + +return $config; diff --git a/config/defines.php b/config/defines.php deleted file mode 100644 index 103a209..0000000 --- a/config/defines.php +++ /dev/null @@ -1,12 +0,0 @@ - '@root/src', + // array, required, list of language codes that the extracted messages + // should be translated to. For example, ['zh-CN', 'de']. + 'languages' => ['es', 'ru', 'fr', 'pt'], + // string, the name of the function for translating messages. + // Defaults to 'Yii::t'. This is used as a mark to find the messages to be + // translated. You may use a string for single function name or an array for + // multiple function names. + 'translator' => ['\Yii::t'], + // boolean, whether to sort messages by keys when merging new messages + // with the existing ones. Defaults to false, which means the new (untranslated) + // messages will be separated from the old (translated) ones. + 'sort' => true, + // boolean, whether to remove messages that no longer appear in the source code. + // Defaults to false, which means each of these messages will be enclosed with a pair of '@@' marks. + 'removeUnused' => false, + // array, list of patterns that specify which files (not directories) should be processed. + // If empty or not set, all files will be processed. + // Please refer to "except" for details about the patterns. + 'only' => ['*.php'], + // array, list of patterns that specify which files/directories should NOT be processed. + // If empty or not set, all files/directories will be processed. + // A path matches a pattern if it contains the pattern string at its end. For example, + // '/a/b' will match all files and directories ending with '/a/b'; + // the '*.svn' will match all files and directories whose name ends with '.svn'. + // and the '.svn' will match all files and directories named exactly '.svn'. + // Note, the '/' characters in a pattern matches both '/' and '\'. + // See helpers/FileHelper::findFiles() description for more details on pattern matching rules. + // If a file/directory matches both a pattern in "only" and "except", it will NOT be processed. + 'except' => [ + '.svn', + '.git', + '.gitignore', + '.gitkeep', + '.hg', + '.hgignore', + '.hgkeep', + '/messages', + '/migrations', + ], + // 'php' output format is for saving messages to php files. + 'format' => 'php', + // Root directory containing message translations. + 'messagePath' => '@resource/message', + // boolean, whether the message file should be overwritten with the merged messages + 'overwrite' => true, + // Message categories to ignore + 'ignoreCategories' => [ + 'yii', + ], +]; diff --git a/config/params.php b/config/params.php index ee1b6e8..70af4d2 100644 --- a/config/params.php +++ b/config/params.php @@ -1,10 +1,24 @@ 'noreply@appbasic.com', - 'helper.mailer.sender.name' => 'app basic example', + // menu default without extension ['yii2-extensions/app-user'] + 'app.basic.menu.isguest' => [ + [ + 'label' => \Yii::t('app.basic', 'About'), + 'url' => ['/about/index'] + ], + [ + 'label' => \Yii::t('app.basic', 'Contact'), + 'url' => ['/contact/index'] + ], + ], + + 'app.basic.setting.menu.user.isguest' => [], + + 'mailer.sender' => 'noreply@example.com', + 'mailer.sender.name' => 'app basic example', + + 'icons' => '@npm/fortawesome--fontawesome-free/svgs/{family}/{name}.svg', ]; diff --git a/config/test.php b/config/test.php index abca379..be8b946 100644 --- a/config/test.php +++ b/config/test.php @@ -1,69 +1,58 @@ 'test.app.basic', - 'name' => $params['app.basic.name'], +return [ + 'id' => 'basic-tests', 'aliases' => [ + '@root' => dirname(__DIR__), '@bower' => '@root/node_modules', '@npm' => '@root/node_modules', - '@public' => '@root/tests/public', - '@runtime' => '@root/tests/public/@runtime', - '@terabytesoft/app/basic/tests' => '@root/tests', + '@resource' => '@root/src/Framework/resource', + '@web' => '@root/web', + '@runtime' => '@web/runtime', + ], + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'controllerMap' => [ + 'about' => [ + 'class' => \App\UseCase\About\AboutController::class, + ], + 'contact' => [ + 'class' => \App\UseCase\Contact\ContactController::class, + ], + 'site' => [ + 'class' => \App\UseCase\Site\SiteController::class, + ], ], - 'basePath' => '@root/src', - 'bootstrap' => $params['app.basic.bootstrap'], - 'controllerNamespace' => $params['app.basic.controller.namespace'], - 'language' => $params['app.basic.language'], - 'vendorPath' => $params['app.basic.vendor.path'], + 'language' => 'en-US', 'components' => [ 'assetManager' => [ - 'basePath' => $params['app.basic.assetmanager.base.path'], + 'basePath' => dirname(__DIR__) . '/web/assets', ], 'errorHandler' => [ - 'errorAction' => $params['app.basic.errorhandler.erroraction'], + 'errorAction' => 'site/error', ], 'i18n' => [ 'translations' => [ 'app.basic' => [ - 'class' => yii\i18n\PhpMessageSource::class, - ], - ], - ], - 'log' => [ - 'traceLevel' => 'YII_DEBUG' ? 3 : 0, - 'targets' => [ - [ - 'class' => yii\log\FileTarget::class, - 'levels' => $params['app.basic.log.levels'], - 'logFile' => $params['app.basic.log.logFile'], + 'class' => \yii\i18n\PhpMessageSource::class, ], ], ], 'mailer' => [ - 'useFileTransport' => $params['app.basic.mailer.usefiletransport'], - ], - 'request' => [ - 'cookieValidationKey' => $params['app.basic.request.cookievalidationkey'], - 'enableCsrfValidation' => $params['app.basic.request.enablecsrfvalidation'], + 'class' => \yii\symfonymailer\Mailer::class, + 'useFileTransport' => true, ], 'urlManager' => [ - 'enablePrettyUrl' => $params['app.basic.urlmanager.enableprettyurl'], - 'showScriptName' => $params['app.basic.urlmanager.showscriptname'], + 'showScriptName' => true, ], - 'user' => [ - 'identityClass' => \yii\web\User::class, + 'request' => [ + 'cookieValidationKey' => 'test', + 'enableCsrfValidation' => false, ], ], 'params' => $params, ]; - -return $config; diff --git a/config/web.php b/config/web.php index 3400db7..625f3be 100644 --- a/config/web.php +++ b/config/web.php @@ -1,34 +1,47 @@ $params['app.basic.id'], - 'name' => $params['app.basic.name'], + 'id' => 'app.basic', + 'name' => 'My Project Basic', 'aliases' => [ - '@bower' => $params['app.basic.alias.path.bower'], - '@npm' => $params['app.basic.alias.path.npm'], - '@public' => $params['app.basic.alias.path.public'], - '@runtime' => $params['app.basic.alias.path.runtime'], + '@root' => dirname(__DIR__), + '@bower' => '@root/node_modules', + '@npm' => '@root/node_modules', + '@resource' => '@root/src/Framework/resource', + '@web' => '@root/web', + '@runtime' => '@web/runtime', + ], + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'controllerMap' => [ + 'about' => [ + 'class' => \App\UseCase\About\AboutController::class, + ], + 'contact' => [ + 'class' => \App\UseCase\Contact\ContactController::class, + ], + 'site' => [ + 'class' => \App\UseCase\Site\SiteController::class, + ], ], - 'basePath' => $params['app.basic.base.path'], - 'bootstrap' => $params['app.basic.bootstrap'], - 'controllerNamespace' => $params['app.basic.controller.namespace'], - 'language' => $params['app.basic.language'], - 'vendorPath' => $params['app.basic.vendor.path'], + 'language' => 'en-US', 'components' => [ - 'assetManager' => [ - 'basePath' => $params['app.basic.assetmanager.base.path'], + 'cache' => [ + 'class' => \yii\caching\FileCache::class, ], 'errorHandler' => [ - 'errorAction' => $params['app.basic.errorhandler.erroraction'], + 'errorAction' => 'site/error', ], 'i18n' => [ 'translations' => [ 'app.basic' => [ - 'class' => yii\i18n\PhpMessageSource::class, + 'class' => \yii\i18n\PhpMessageSource::class, ], ], ], @@ -36,25 +49,43 @@ 'traceLevel' => 'YII_DEBUG' ? 3 : 0, 'targets' => [ [ - 'class' => yii\log\FileTarget::class, - 'levels' => $params['app.basic.log.levels'], - 'logFile' => $params['app.basic.log.logFile'], + 'class' => \yii\log\FileTarget::class, + 'levels' => ['error', 'warning', 'info'], + 'logFile' => '@runtime/logs/app.log', ], ], ], 'mailer' => [ - 'useFileTransport' => $params['app.basic.mailer.usefiletransport'], + 'class' => \yii\symfonymailer\Mailer::class, + 'useFileTransport' => true, ], 'request' => [ - 'cookieValidationKey' => $params['app.basic.request.cookievalidationkey'], - 'enableCsrfValidation' => $params['app.basic.request.enablecsrfvalidation'], + 'cookieValidationKey' => 'your secret key here', + 'enableCsrfValidation' => true, ], 'urlManager' => [ - 'enablePrettyUrl' => $params['app.basic.urlmanager.enableprettyurl'], - 'showScriptName' => $params['app.basic.urlmanager.showscriptname'], + 'enablePrettyUrl' => true, + 'showScriptName' => false, ], ], 'params' => $params, ]; +if (YII_ENV_DEV) { + // configuration adjustments for 'dev' environment + $config['bootstrap'][] = 'debug'; + $config['modules']['debug'] = [ + 'class' => 'yii\debug\Module', + // uncomment the following to add your IP if you are not connecting from localhost. + // 'allowedIPs' => ['127.0.0.1', '::1'], + ]; + + $config['bootstrap'][] = 'gii'; + $config['modules']['gii'] = [ + 'class' => 'yii\gii\Module', + // uncomment the following to add your IP if you are not connecting from localhost. + //'allowedIPs' => ['127.0.0.1', '::1'], + ]; +} + return $config; diff --git a/docs/CONFIG.md b/docs/CONFIG.md deleted file mode 100644 index 0805037..0000000 --- a/docs/CONFIG.md +++ /dev/null @@ -1,81 +0,0 @@ -### **Example: appbasic.php** - -``` -// app basic web applications options -'app.basic.alias.path.bower' => '@root/node_modules', -'app.basic.alias.path.npm' => '@root/node_modules', -'app.basic.alias.path.public' => '@root/public', -'app.basic.alias.path.runtime' => '@root/public/@runtime', -'app.basic.base.path' => '@vendor/terabytesoftw/app-basic/src', -'app.basic.bootstrap' => ['log'], -'app.basic.controller.namespace' => 'terabytesoft\app\basic\controllers', -'app.basic.footer.autor' => '©' . date('Y') . '. ' . \Yii::t('app.basic', 'TerabyteSoft SA - Wilmer Arambula.'), -'app.basic.id' => 'app.basic', -'app.basic.language' => 'en-US', -'app.basic.name' => 'My Project Basic', -'app.basic.vendor.path' => '@root/vendor', - -// menu default without extension ['terabytesoftw/app-user'] -'app.basic.menu.isguest' => [ - [ - 'label' => \Yii::t('app.basic', 'About'), - 'url' => ['/site/about'] - ], - [ - 'label' => \Yii::t('app.basic', 'Contact'), - 'url' => ['/site/contact'] - ], -], - -// menu default with extension ['terabytesoftw/app-user'] -'app.basic.setting.menu.user.isguest' => [ - [ - 'label' => \Yii::t('app.basic', 'Sign up'), - 'url' => ['/user/registration/register'], - ], - [ - 'label' => \Yii::t('app.basic', 'Login'), - 'url' => ['/user/security/login'] - ], -], -'app.basic.setting.menu.user.logged' => [ - [ - 'label' => \Yii::t('app.basic', 'Manage Users'), - 'url' => ['/user/admin/index'], - ], - [ - 'label' => \Yii::t('app.basic', 'Settings Account'), - 'url' => ['/user/settings/account'], - ], - [ - 'label' => \Yii::t('app.basic', 'Settings Profile'), - 'url' => ['/user/settings/profile'], - ], - [ - 'label' => \Yii::t('app.basic', 'Logout'), - 'url' => ['/user/security/logout'], - 'linkOptions' => ['data-method' => 'POST'], - ], -], - -// component assetmanager -'app.basic.assetmanager.base.path' => '@public/assets', - -// component errorHandler -'app.basic.errorhandler.erroraction' => 'site/error', - -// component log -'app.basic.log.levels' => ['error', 'warning', 'info'], -'app.basic.log.logFile' => '@runtime/logs/app.log', - -// component mailer -'app.basic.mailer.usefiletransport' => true, - -// component request -'app.basic.request.cookievalidationkey' => 'testme-codeception', -'app.basic.request.enablecsrfvalidation' => true, - -// component urlmanager -'app.basic.urlmanager.enableprettyurl' => true, -'app.basic.urlmanager.showscriptname' => true, -``` diff --git a/docs/about.png b/docs/about.png new file mode 100644 index 0000000000000000000000000000000000000000..3c509761fb6861b612265360ae90ccf811c2b915 GIT binary patch literal 79785 zcmZsDc{JPU7k8IYQ(8JzR2A)X)EZiAOG!7{T5GQ$T1$c?)J|d<(_&g%TSTp~#}-N? zsV!OtwF@F5MO7_9q_$WhykeDV&|Z3UA)|=q=!~rvkz+oP4F2{$m=MtB*u`#`> zsvO*Zn)st8`VY~#`=PJu_$ig+uQsgs#8NGrIH_o__4?TLrFhIjHB)>cFWs4P2j54z z }bxrk)<3L2Tbj}s?wZ);m*is`0(9$7l_qzrx zZls^zoE9KCjY~K{A6t%1)tbL_RXtCz_vt?Is2bdS{+fZ0%%70@?TxOW(Ve4dOT!4B z9PG A5hUNna_3OA!WH`!_8zvJM{jN!tneROhyd9ZQe^-5Jh27pq3s1K78ry3;2M=q0 zid2(h5xC*na{;ZN43NIm`lnKLuy*C4gI-NE9olJWo4}EJXEk$Wdg)~pK5(&CYKK*e zm>TnTFcSe2HcxoGX+fQ^gvtvj|ZlYg~9 zZeF#YoZBITGGvfg7L%l7o}WiMpS05^!UOB)`ZqnNX9LF?VX2jk%W}xAPE>7JuVs-R zXU&(xgXY=@YN&G2xJPA7bx1U &&`wVp$k!=&Lc8%kru)x`gWU1I`@3y>mPP*Y{Dr1;-1^ik@-yp?Bs>C z(GMsDs`DvG1Q<&ew+5S?q-Tt{- !j9J$d)@`eTI{c^^IgIkzfUS z`%7iv^)8 (1B;N($=TQNeR556>Sep5eDgWh7n*tCSFV3Yt>_ap z!-TPUICFDxA<9a_!$B>@0$dXsrRla2 z)i6Snccj97eh_Y}z8%IT`TI9A2$*}U3zv1;^2WvRU2Y;o6H6sKWr~k? zy+zwy5JB@K^2ztdC(mEKygS2C3f9ll#zdNG@_V&1&&8gQC_a4jm}lo3cjPVwo8n;> zyP{pmC?idrFDbQxFgIvBo?oAP8vQ0P<}*Fc!=h>to3^s61mxGMO|P%(uUBD4jHD%g zQ4bt`dQ8-#)WkBA2p@h&;#t25Ewb8vcuZ^w3dbBLxpkffIKF@Q!dlHyu(t}u8MQKp zMLHFTsX7;5O^#9W1d`a}jNI#Zaj))nQJsg)R;_aVlp0gbu5YZjDyg=U;*$fIy{A=` zb&D!ZnvfI@i&3B;(hh5I7O8Z!G%mKUvn)X4vhug%u=6*q#v;f*y3v>ZX=wIa{^+-V zT{+s|R(V#`LjpKZ^NeC*A8lz1(8=Y^B#c=+DkHo&4x(Ipgx}OJkLvcJIM0GB )KY9v-welE>C7EfuA47!W|xO8(kP6Y^<$|axzrhh+vuD(v| z24_gl%ve6fwBH1jTNFq+QESMEHAMAxH2Uut@xs2JF|Fx`d@1JDZ?n?Ry{`sy!;WP% zk!fg|cYc|b=QYfqZ5pbNpF`|7K1aGv8IJ3C FjbNjV~-3$`Gr2e9#lQnGa$-V89G^zHeV&E Op0r$1khoB| zk2QumMKajd6RFnwT+EOzFSew#=(-~pzWS{cIThXPNy(R8;LiSD^43_aHrNjFHgvX) zK5+3;%Lxr&v@0v>^7slD=-J)Zt2j#eP|&~o!1ZzyqT_n$W>(7qcE;7PgOsi1X9)hA zLVD}p3!aSF>q9%7IT3?Flj@OsVK@*$F$Ef-R~v(Vz8wDjqO4jd;8D#ZyqF1onpDVP z`wV_HP`Vvui+Y?ElbBwnsk@L$T-hP-#n=KIi+LzvkFgqeBr(#NMaLUgHSb!URYd?d z<@}F}b{z+RwJg+U<87S$4FN&tTNTb9P^V#HKeQntNiw5Facx)bD4c;Z^93Y;e;O+k z6!MzIbd}fb9}v9c5jF){o=LX!=5CF04P$d F4(+&sDix@eEcz5(muK{x-wIP7P zNY;cbE?;S_XcMXs;be$E N`yei{FsYow55E` z?(l081C~bCGqzfKTr)X)wBB>;#L3Sg7qa%QS}4ZOa1Yu^uw(s0x>}D55JPbQVE8wO zIPHbmhyu;6n`X~Ih261 2jBqh>&Ngp=0ej2$22XclUvu64x8&2>`8En_*o+Hh!TyP>#mh}~{B6pwa%d)y9+ z3C05!vCqzvWe-4w>R`8^HtdBS*?Y;+NgJL|WGqUc9NAnqhGb*8Mf3R^_Ns7?5xnu{ z0`ZpB5)VFdnUUkefG!Ze{kJfZ#8l4|CG+H^rSBP7nYGo7n-k|3=ORrRM7RxaPlq}@ z;yLz4wtkZ$SL?TWgg28IyZ%LQbMa<)HXw6&lf0>S5R)J21}zOTvEderG=!~+!-(5{ z=q|B=;J#+2xBZv%I<0vZ(4(KJiHcHb`f4}!&K(b`2}G`^17QnGE1b2+%V&%` yHec)?(rE~5_ y(pa+QzsJ>r z84rF%zp0c`vrjvbRq_Poa67cNOHJY8IHAN4D1FV@r=s#W?F0(4q0jUC>%7x-kH%v9 z$LSlWW#VgmAblWxr?pn|330UekM*&a ?hZL1Q*QAw`Tt=7SmNpZgD}gjKprD@lu~&FfgCM`yP5 zG~N@h7{;}Bc;-rdM_rwp=I(8wBA!rG#s_>}#vHV~er3eMCbBDGv1S6%kU{-8beA7b zn>|={EO9VXa#6E`!}H~y_m;T^=FygZre&5_hi}ru&)@u;Nk5QKsRiB7b5j)W-Kyzm z%h!9daBhL%Mz q0XIOB$!jc`g~;8=ePO4FwyO2= zMQ E$ZqVd zonr(6jAV*xYRjc`x@m;2x{dEHIs~-Y*e#G_rEQ(8{ND#{ys;_Q2&SCZ#5!2pP3FtS z*?A1LYj)9n8JW*wne`6r!7RQw&A %Du~p7=aB^o;m@!!w9xEOC^?_5+ zh7EEdU5? cI5YY0~hODcldb8g>`!mszl&F`08J& zUC05J7OZj85)o4C-j45zE) &(?Pe@{JPSb~a-x*0GG z`YPhaZXnOEC$1i~?yTv*akt1y7hYi~%BzRc1Fn%GuMH@IRuyCslAJOkx{x2MLP Iy|s(i z#yp%wRC^2& `L7oEjkN6JxY~`dk?|9#{!KHdTuEn{ zeEWp$D-J$O6PL%eh9~-KLo?EPVi5phxK!YUaz+PWK&oK&`RX8acU%oZtdzKNIVCjV zMNJ0c`ef`y25E8U)*Wi(c;6LQZ$ry^=-03VOjT<*tPu?x4W-ZW)BcAMlKyl~q9wVm za@NWx&1DDk=6xeT_vrmw;6Jx(>MS)fyUbG`nSHZ{_sPS6Y_7ujICr2{XY|lzG+YXp zklz6XcgC#H9bSm(n$_eDNvJmNA|JcU4$A7P)nKAo*A%Rb (||Cuu}9Y(wCwhN zKLQYe D6W(iCGIaUjbcdj!6` aH11=4E%nRHvyMgR9qd9w>)c|;9VnAZ<+k?J zYHKaiG>;lG+oLWKJ_t#t+3#)jg*Xibr%312{C38|L2d8@mD^%cdQ~#mGfB_RhhaJz zL8G6&l;%A!UL`a#O3=McnV}sJW8B)>>WX`i-k}5^VcIh*$U<9m`TA~)=7Dm}2xTs^ zk(rlF7;cY19kg0+e3LpkUVUi^g-?k5&@NpE&-9kOV(1#A{oFS^D5Kv+vNj-jIRp`Z znWY#b;U==FF+X+ODv-utFVt 46I-%|RtH!e_A#Siq3KKW#qRzB`aM@42(_$^z-m`TFozZz9h=H8m%@ z`hK(I4a?2MtO_hdnYc-^);=i-P0!V)9WWBQM>gNED=9;PLk^d$T^F|vK1#AKgf@@M z5D*RCNIb@{Vp1BtmX5SKhp!LsaU0k8E(NISp8s7>oF}?~Y9{^D9{PFv-e1Pmg;Jyt zi*J0^SFL_taZN rb%&wp%-}fqS^=K|tSV0N;ggmrEGvS4sJf+bQ1{es7MC^Kn+5!gD zf*NNQk)`65(`bbl#Eu_$cH2+CT*VRFyE#-P>-5gG+9bf#vzfg@nqG{31CT^arfm%A z@A#9$_wTe9yD5f2z`3CkbJ6*cTKYjc*|nRq2W R>)j^_TKW^meDp}9k1#F>n3GCqo(=-04~3nN0(gZeH7ea z`ATk3DN2ERZ)fT~=FdBE`_3S2!6 otC>UH!i@q!JsI6wx16r-^0~!HMIkBQ zu)k(GISjgXZ@Xlv 8{HaIPH|Flfj~!Ua7a zjoh=;)AS_9;Kt5YcH6iz&f=dW?dgP8LfE4sPFQ6h{up8-rrmc6Ep_e+0*z)@4IM_2 zJB9wxi)gB0a?h=&rN?c2D6vOA9S+mGf+S0yS2s5|aVR07amQ(U8TfDvIP<#InwOUi zjN!%U|4kM!`p(X$50oEDFfAiIb86Oq+y6DAI*_!d B z0klg8{PRjMl= sUk(id7%?82jsA5&3&B5a*%YodL|Ue)7ZiJRwP#O(5T=}rNwW!}+zp^d%dd2j z(H7ZbKm1?93#b^8^%Y;z*mE3TVQG*$C@adEd!!oO7=KVu9Y^KU6N6WS927^d-mj6> z3D4K#OlNsTq5HnwmYCto5dMPyc>4vU|6Y;3# $g^}VB{wck_4mUig7;&I6cj%@0C#9D@3Ek7&%ghc2MR;OB?h4 zCl3lBEBOI6qE8TfUKX@f5#|`_{7;c_{s)Z}wsh!|@Wk%pPT@06UuvcmbRVz%+9vdF z>2Z(nc~-m7U_RY8d2=Rk?i*oemeC#9_noQ(T|$O4v)y+nf2P*^jLcqfD781xOl4i@ zw>^OssJ^7BYim7{*uR^r=006Jdf4^Z_>Kv#4KR2F6&};1H9^$;AnmN~n_hXK+G!;X zN4s-IYY0J4=lF&WJ6ulj;fy*no-kHc!aiqf#bAVdF?zH|?>0TUcQ$Cdnv>WjW`O+W z0xNu*uf_qszksk;O(rrz%0&ii3>yg1yBg6s2r?p0+yTW>U&}9}>sLKJgdm+HvKtW1 zVQ7bEQUO|wSSFV=*)4Az$9`7SDFhDB$_|Q5O=un_5^mTD@a6S;tbOf@v3wS81|X`U zSSvyfk%2}a5A!YMcL2_gqJu{%;&EIPEt{OsRZliI<%}Lo{ZWXc(}Bdk-JLhHnqsvh z;I*p$!@5SC{@kn1LYPwL{+^&VVrGKS4ua>z`AdkgERFiYW;CN8IP?Lzrh%R;&v)Uq z)&E725~?XJzAq<{+o^!q5atZNt;IJ1<5hjoD~m9#u94#3QV>*cn_u6UI>X^0?-xB@ zr9<@Bdd#QhUAO%AGJJ-7T4iKrjg25(d3V>2^g`c6yDD%)>6lFy-1HHEA|+qKgZ}ho z7_e{ERaSMNu~88EQ?=_kV0Zx=FYfY0D?Q<0u#4!}HyK>&*X&o{?xL{d?4NHSt1GnT za>ZFi;R%TxvB9H1iIw8gIZM!;gPw^|k>$ZX5Y5&(01S6$Kv4bzhqgyiP`>nq=|uiznXL{< zCF=x5t0044t4ONdo93KxS5-pryK6bVe@Bw}Ja*OjED)i(6-`JEdOQl}Kj=SS2;3ze z(^H2QNISnbHLsYclGD;)R)%H HZwV~v#!`Kcs_f~B)X(770e5K<+C!Ih9vR@!nCUf!yKD8`W4Tg zx6{{-Y^v{l2ar)GE`8*RC$J3Cu+_s_5w&o42cr3k`{M3nQhlP{Tvgj9u0Gp?!5&Y< zZs0w`+0;NDY jhf F-jJ%+18C(O!v7lV`0i~OySMO}8!kojbK zDX gIhfV|{7tu@hNRkG# ESo?bfo*FS-@#o+@9IB0rmNb!}|% zU`W@9Ub3~CuVV8_-l<11wL9hwAX`yBTV64!A{80G|| zd&g5Uj(IRF`5fn?0Hvn*Trat~_O)la$nJ7xk`dlztlhNaVNZ#paw(j#86uI^&kgKb zeIn*ilX8+oPE141WLa0Fz@?i0E*<}KD4(YOBbz!H{N1^xSXg$j6`M8}3npCgj0YGZ zyC&wK@*1F&n&!9dXYD~hTX(m`TU}A9s@NJo7?i0@-`UGZU`8K^e94VTsS5PB;9U32 zRMpYJx_GtHTEFy)8v8hedU}6Z8yHsYE;17q5Khc@D_273o=S~Cuw(z{ET>lcMSc_j zUX8=6As=l3bvJP8!@JgT(hcmk5fm+{G9A4p0o(StuG(-zzX6~)lkeLKC*D@cu&|ZT zj+c 1hyZzEZrE!iW4tv_YHwq9)a4COzq300oPn6RqR$Lax&WD-usrp#NL#`L6oEGUE)d zD6s>L>8iwI3ZW-I-Gh3h*C*WYk#V)97rll$Sb+$7q)7=Xi*~fm4Nae|N_Bvy5JcT9 zgrqMS1@6voY?9Mj6~Q{veav~i|INvrTD|%sPhm4SGwHz13HoEoQnlBMSrYXKz~WB< z9Pw*~V;w@NE?)w&B7xWov#+aAl~fuCb4aaj>CrUa7=A;Q@S~o_>2RK8hDZcnD=ygl zd-(s~)A-bJ=Erd-)G8U48Q7$h99sKYk>L>pvVOO{2!3mGAk`(@ggI${CL;Q~@gY%S z&MJ-GolrqVNWO!4<2T(UD_)~8Enq$8e{24{{q_g6#=qV?bBTId*~sCesHi8E?nVvF zZz=*yF+4EOP z3j4P5=)dpI!S5ENx~({vUoCw2fC5$(3wS7CV9r>Lw$v}QuHA~;_JbKkFKE3qQhHf6 zH!TnCWV|KIRQn1P!5g;x5#05ht({nZ9i(}z)xq0;&f)K6O}0rjzx@rUhVEC7 T_y1+G+j};v zK4OOs>5J~||I+5O@4d2*0cbtqHxK;&yj;s?CE(rJgCBr6c>NxE{EWx{Veie~l1#(? z;bv)^$;_EHOH-$5O3RGO)Y61joiw%Fcc#o-aH$kc*`~#uGIc7KaziskK_nNjP+(fr zT+tLzQOV2&5Ks{i5O}eAp7(f<_xl%okKqUJ8xHWkmh(E#&$)lO)&4!EP5AuZH$R`e zu~I+d%j@mAl5hU!e$|2he)2zS@!yL5M=)P$;lK0pAG`QU3jcA-|AfU?Qut3+{*S2q z4_*8RuKtG>{*#se$;$s^<;n{DUkDZc-ELuASU39iyOsGZVUB%KBh&7GtGDujdeawG z^55-c$5y`a7i#qvb@IwPb8XeeRjWRLzxl!_w_&BJ{?;oW{e{vRfmUv=RNC#KAN~J) zwDRWvELt{AUSrF*lqt*qfdd0yn$Bxg So6=jZn6CV0j(+3Ih%Pq&93OHo$9XlX z!un;9u;ig-4SA(L;;IjGPG81;Amm|-OZ~N%l@|{XPHZ y&-%}Y zxv$FdfxfeKnVyzCM;X6a{+{UUwDNEM9nbpmpgqHGZ?@2c{)cqC-KYJEu1@V9b_sd5 zsdMKh=a#t<7%?aA{L1%NrG2;N(8{&aeB*L{IIyfbLgQGThbGsiST=aPjA1@8h+rtk zuf8n1SshU5{dt)WZ~L;U$IjOJtu23I5EAmtyR(63-COta=9(6g=i!vAQ;mHz!THZ> z{J-OWe;(1l7p6 LQ `_iHw>AoP`}(dih=3T; zK^xrJ9S=Hw)~Q 4>45&?n1?_!@$tC+H(&C#RBbyv1!+Yes| zb(_y{$5uf68f_)K>#tp&HamEp1BScEJIkN7u0;fMmWK_X3+))*tS+) yqJIvYa&Rw!Q-o$cUye2{T7K0*+mfp-r5&;FI`7to`$@Pz+Y-y*|zuYi8a+tui z+QnDXnk$cQxNIJy+kjkm!2$ItlJ z=?CIb} zJEl)N;-=IRKgU4gFn{$o5(tk0F8Z#y@Pxz)UW8{yXx^M)c!kHNo;vL}=-woP277Jv zxedjlZ^c=ps6K3s%n963q^SF?+GteowJM@8qMDSaVusIda@pF{Uk!hgNRhwZU{~R; zUo=-9H$(W&(c*%x+{B4Lcz9fKg$n9Z`?h_n-Il-Tc3sZ? {}XmNd0fNle+uB{b7tjr#) zL=u459pog>EGt0o$+(O@B& xd2Kcb+JRG >YVs2M)G!Z#5BmhCNc-|=NvTuO)xH! @VCxOp!_^&|hq^ALW9DwL25FS_s0 zlZsDsmy#)165VFpt |yXO>2Ox#<1$7AO#lDNdfWwBEdiynGK_>C#xk zyY~KN$`a!NmYCx~Eza`4=Qh42$Km|z>n*o*8-(G-7$*+g7kc5AIt3Wr98l82B2)w< zo`xR>^gKnxS>`OeL3jC^Q=7^6nAl8zisWI(beDH0_HTmGrii|4Hh&J~?wQW6Z`$et zy??85C?!-gh$}tjGBk0Pp9rVaQGE8vts>c1it6<2CByOVyvi~=?w}Q|)OW17;&Nbb z-kgjN11| z1%=hBu$6KE~J5w>!vP zpJsDbk6HrAi5 l3Fl z9`6q(w%5G}BD%*Q+ee=z{XoSc0U#U;jdJz{Bkv-L9T i56}!e z1(3l41Cs>0=+K&8lKTpYTsd6w8Ms|p`q8rMmA2e2YMJS7;P=k?$q$r%4MD+s(uNJ3 z4k6F8P`$#bAoF~i7{6-W9(yOWDCMS`y~ZFViMeK{K%TG*+XbvXW?vU?R&+(0nzE3Q zG!W5L8^-^EqF$&ce_TkH vlr(LyH- z#EDYQsnXnkoJjd*Fgsmp-xX3%FWGpn_GxanAqKoWa{_u~{CkA*9;5+J+TKinoA>S= zAGxoV%cBo-N+0^{EhbnX=PjXp=@HdT9fWu>FlNzzP%B?a+(OUHJ_E8bJ`|SdEfP8` z%FD>Scn7yWRHFT9rzB9HRPwuVpWu|lj_Z Q*@L-se=N>#Z2hJPX=Y3j!)1zl4~;q* z+@!`(VO;9~5`H_}r2L}eU2>6P+?IwF(-Q9V*a F0Bh!I)f)P=~)YF^}g-&FF$E$)vO{=vl{nwjSUwMGz SpryZdY^DrH zS!hFb_n|wyBhGK%x+#JJ+g1fAOvsOgeISs9vMgRU0O{%rPAUsA+V3~9%e_B)_oG9h z9jEk+=W=Ua@~&xD(!Yo-V;(V3oh9g@OKuCo8!Y3pqw`$ON9IJ=Fu>?!FHCXbQ#&ZP z`jMN1OXKLgnVyM_b6KnFK=qM&>kG?%6#Il1NNt)J14BQ Ver#cx~m!OiF@VX+pyKKt^^(@~4wP@%$< zJo6B82<3@?f8kGMbH82yFb=!9C;#cyvNXOeO`f5JAAt^T@~EY=t?q#(RaOR(A7>{G zLGe{m>t~ar&%gne3Pbtf6{?;a`l3XAc;2V2Opcg2?YrAzXA-|WT*%mMhOXSvWQ=2r zP>xDLB%t@+WTB-ePQ}jUg>#gd p`UR+l%p# z8%*vyO;rsglW`TSu5qJ$xTqRy1yfU8{5ZPR=Uj6hI$O^&TZ!q5Y4&lx)B79}F3}%B zxfw~3EzHsJ;V}9B>tSf|89km7>js*<4iyZ0V+!X_Q 4WfN!2c+eV+F_YJ;|b2$s4lE9(%bsh>VTp34s;#-cn2 z=@DJpQcTh$foN##)OMV=ZaB9N4R;MDtJ3z77gH=pbJp^gh-|Ot6oCJNYsc?WJ{M!c zcpz10%0JplUVpe6RhM-*Qu(11wm|v`{nmHgG;VPz@iPjp|DsX;d*O}! ~Yye z8}_eidDzPfOJA% ;M~syGf_K{v4uBW+%q^my1y1qtGKfF|SX&h4Mb> zdDJ5$xsCMX%9HyULZwF!w$Q~qFZw;F80JGsNo4c|H*u?VX@nTpp^mCOxUdkP!0D{s zNzM@$jk_##k!XP|gDL}`UhEtTJ_0u(J@BYLW-&>;ApbU4E*1~ql_=ga8jN4fE_-je z*Hk)WvT2?9&~tATO#Ks-*LTu^{^A^6zo2rLQBR&krL7OqM!TG7beX-fkpHhrx}z|^ zH@0)3-*W1;YR(;KR?a(=G|N{=lg)50vQX$NcY 7$36$qzU|@HHW^wsYdY;}ru%q9 z#B}6UE@L *>eeM-r`-vk#{O<6y FgQ1C=KShom~Xqu#%IwUQDYd|80=9dcUfddZu=?aQ%)n%BHUf+abYI_ z8L&44JJjGoQ%?e*UYH5!qE?uN64rSm`Yd*W_bXT%TK8Gw{`q@NLyv=EhSOAt#i29? zg6FOZ;;UxAj=Zvdpig*B>g!Hc_aTVjqrc)k*9@x#rHWU8xPjN*u$&+5vwgA1rdTbq zv#Wstpn?I bSZBoj2U32SYRRE>Muabi41bjPooGqGs}+M3Uf2YZI^9m5ch9PN z#jH=-!W4(u_H2FXvd=D9(S572%ZNZKdByAJQAv $J;C G0 zFntWaz<^VoA6<(7)dE9I?lBKuE&^~tDX8PqnuX2ysxx -V=)BZlk($f0M?c z?meXQKF%$ KQCo0Ltb-kY zAWq|TYr4h g*Vf13z>INXBs4u&1X&wD zh&>(DJ{GZM46Pd&J%Bwu0d05RH}K1-Jr|c3LP&1PFO!Apo>pG$oHUx%knVgdm=P91 z7l$}~8$?|{uFlU|Pd!8xQC|>(EqkBpeP)>9CSQ@$9hQG-_D`DY-8n?F0!9NQ$D~=1 zV$34elau&mbeY|GG)TJ9xNmxk dm?;jv$)l}%HehU6_T;&>xU^CDQgB)`e>7Yh9; zg?=TKkpsiibEX&p3M3#)zDvb++nF;*YZ>73)^mCQ$s 9tk%@gTdGD*5fT#phRroYeK@hgh%#2Z9Ta!P-^( z({$N@>TeXwz)qEyk|=npnYmhry#B`28ujMJmDJjq0C4i;a>HF98y9v<0lUG(W60>M zH%wrV2C2bHsO2dnfSj0*?|z%mtBr+GAWKO<>j8U^~;QdgPV6ce;X&YvQI>GlyS> zLi>)GRf!+8aSJ$2`?9Y=C$AiAVN% Sun7-I-&7xwAKiAH4%cjGx?V%r38|u&feZ zvj7YQ*{ea*(rj707IUR}R%e>45nes3wS;bpZoLz&I*hmua=lc0#wgGAeK|;T&rYIf z?rEBBC4GzkK>Tyk3Sg`4@t^}uV8!y_Q!+`{^W><8t0!)3zMedl6&(Y{D?VE@|JO3> zxTn5kkIdWIf>Y=IT?qUv#)R$Z1hqd7)+!qbawv^Sq*1+nIq+LG Kg~XS|l7#`I$O#5{vQEUug%?)Rlax0z534Ow!Unck54|hJ?2$8?n-4|R#zcG2 zd` {MSzaao+8_XU~Jq z+kt@efP4Yct>aSqo=bJ4lmJ(@?@Vb^oR0|D#*L@AF`y`Qx{XavPUCo4|G|{I%q?pg zsDz`R?R}U>)Mqe_ji0p?i(YrY7hCM}p54$qI=|4tB+lpH`}6%bES7t^y`RpUeQFwl zO4}@In1`o&9Iv8SEULtAUZRjTZlw?d86#6lKdfN^#f^U4M)1J$RkoVaZq6*hC`T6Pa@d2=`CNoAq5mRuN9>Q#2OKX?Ck_&`<&4?3kUS?-lb z)d`gAkvuI8Te^RhLtnf^ANG5Aw7a{{)R)6UyhtHdyPC_yv}+{0ByN>1D& 6SdVD{Ae*$HR+T(^Dz3SOEy+ZSwBsI=@3B3jJG4^mY|ZUl2B z+?krY(-U)?K&vDaBPuAY5XEqLW5lbPTy23_^hnd5mExw!EH>Kj zX(_D(Ov1RK2GL+$Aae1uk#d{OSAGdR@zX?$Psk*^%mW&@_})q%2Vn{Ap0el3>Kd~K z`~kc9i?u;NvVIfa-Wo&-kl3spuW#|tX@IFN2E*Fv1H^b+l`pz~v8$vu>UkdgzDH%I z;fWhe4Y7@Zck)&F=7lDVxfA*aPX{t02q}_J)&+4+I|Hc^^y|sFkoPr27bv3~#G;w@ zxnhcB!IUFW_Y7m$sprgdyn1GtgTDZ{x@}UgJRxFHi`*-qfkxT283r+1L5!yc;TPuj zQ)%B2`0E3R7fC(#(+N=SfVUY+{+s1k0Om4m=hn@K%Bu}+01P~B`OIJ(VD8RYziL%g z<(!z`l-xdv_Ng7bG+_hL2=x>bMUC9YCT+a 7Ntwu|YRn&>+F9 z-%%ytg0uy$b}&@8#fzUH6WMe0ZW%jw?{J+qe<0(lY5U4o;(Y!~5&6KLt6tIXg%UAz zK8sqeVN_*hDnB+Z4r^Q0$nv6h1FkfGFRq&@5w@oNnCf;M=z{C@C^IlwE_0h53U*pt zzKKj2jTsK|{o8p5C(|$oGFJHw0aUs#*p53BV#ceSpjBJMq5i-n9;zH_b@qSyZ8s@b zd~grG;yYM^$P|eQL8S0!0EHDUD3wmkAlUSBWa>~@?zK`MohTpvf(y;G<^glGl{(3U z5ur&3H=ZB&dPs^mWVA294BZ(qU5qD<=<)i>(#W#Ijxvz^>AJxRL|i}VAHsz4A%65J zMnrLKGwnZ(29eW|*Cu0zQ%bg6o{|5wS!J~#zaqa_?@?u_H!H*T91*XT2(LD)#qR(! z%biGEveX0-1h!clxcD3X_|V(Ude;R9p!NzBccvIKlc@xIoa~U6dI0Y{>}hq|{O|(m zb>3&`zHY-;lR5y2KTw_%H&nJYRKZ^Yjt*4OBNfc@#;Be;SLeK^{^#U%^uO-8*=<>~ zlSZ_^AYoQTj9o526xa2qYHqn6njjPMl3RTb#g6Y{d_p+DC|8cPe6o=sCa)Spz09EY z(gb6~><}-WX}j22AR4%zYVq2}3W(nuq}hwNEMW0jw3p{GMTz$^XGUBx;3WsW0vq29 z`OIR*YNZ)kOj(daGV&eb?^Cb0w)5a#Nyf5N056Zl!T;31dG`~G-QY?a_nqbI&$yz2 zqam7{O#8{-jfbk5kW2NQ4Y5k *8rBHU-MlxT#BG2G3xFlIDNfgejXfk0= z1zTSLHP1Ltc|@HV;Ahx|4A=q` HlbvQg?T3K)@?-T&&NkPpMxLFB zZLG-PV>T!U!{75y1uv;^hb~|dn_tdYai|za`zYC<%|gc}cy2+~3W{2lrt{SYr6}znkGqzipNUAIf*6` z#^jvda^Da 24X>3oJt*&>&I+^P T`*F+?=H_(1xk8@Y0P;Fxe`JMWe8sML;LiR zrJYD (M+|7}89%t43X%3%jf3p*#%&re6d z(W>DqY-Ud%oti`?FV0l$qqsAZ4VF*&f?;W~FD7GEOAm2}V$?_3gyuC!^4XOgIDG%B z1v~l_F|YCPPceQ+f~SiR&03Y N4iJ1^qRjr$9yVfcaSpiValVq!IvhrFL@FMy=*QX3ntx7dwd zSLyNk%bGHeVjn5CiB}sZja;=OLu{cA(o-rJ#zgT^ZV)jzQ#;HmJiO%fFtJVRL-ZcL zM`D$qD0Aq0S}r!=VL)U*C+HE!;1qOatV5P}Rxt(Ib)c=%9SziSkUYC2QF#psZ!dx! z!!^#Xo2U@?Dd%O6=}KbvZ>iPbEXz`I3_n2@SK})y9!)saSgf^fTrHjBy%+1+O=-Oj zcvxI;LSLhGvf@y8KFAZa+ lY&MKs|e! z@iIPKwY*?Nymm4n;C1u?J80;krmh^XJ#wp<)%kfxN(ZW%Yp$Ju7`U^NXmaR^lN^}T zRi&*_RA)I67VN>*R;${W=9I`U8#61$PlE-7OM5WG4))f_fw}$s*%uo!S$$5XRiT-n z;~d(jJ$hShUG1ZITCw&_oEqWdw}npP8`xT{W}is#XshmcdHWu>Axg@K65cFVjEY2k z{^3RVF$Y+cCuX1B v57q&U-R=lOF%EYFdFEYjFt|PxK^#pn{wXg zRvStMy@fCPp`)(0yiff-=ck2jRq>6088$~*6_PC16Aae6xVGQUtqyvIUj7)UfalS< z1$jYbEd~0w>Fw?a?uPcKbj#uJa=y2lN$=~`_0Z0^IK~+>bm=}D;coD9eymD`CU%dd z1D 0Lk7Iql(^*KULw_J+zB443j+a+YH} **X;z!-VB zRyp{1-yIpcVKrjt-=rT`&i4O`F{{;^#351g$Y071Rt@JQ`)}xecduhd4yAe_y!lxD z>OITE{Y_mM@1gf$VYAFU%PKE(+)nTs%&oPr>yEep_i|Z=Vq(Vy=iDp-YiZB0MPJ>8 zKxrIPH2jF_w>@05gaEe=B`&mIy1p&L+h-^|D|L1A_qrK59o$QPOtjmO=Qu+C8#3_8 z>FM@Ob>j|l>)zMbby|wWTjNfnXuuP|J&gMXp<|rn$mud|sodQaF@0yRH-;3a?o`!l zOGEiz0wS-os892vfPWmp!MFcHngr`>4j~-CJuYvb@1XwlnT!38AFg`invl+CC+j9F zd(YQy^LTEAvQDrW3rd#f$m}qeG=yln{PlUXHe1krDBT>8yH|S@%hq>z?(xp8WoczN z$q#zRcT#?nbt-i(ddqNlivOMsT_=*Ke$t0~CVH9=Cf<`?+QK$rBVji-d-<$kg^Aa9 z>jD7mW?WtPQD7l>dhc4l^OoPMtlcHicQ3%C#aOof>BnG}<$bTA(&yZVYvc(prV8>R z#%uAu!S6wN+Sap1k!;QLeAI^!>QMMZ&JzQanhfBgQ=q6fzc)Q!A?#J#Og>}hxd&b- zjv6UHC#pZ8#NfWMo65MK=a?gU)KSEnm<#$j=eTJ#`F?rb$5){*WJVZ)JVHJ*4`anm zpERh G-xwZa*_U$slzzH9)lg#;YYAdE9`(P&x9ZR z`pksI&iU)WY``a)PF&*&$pz)Av`3lLw24=oz}sIU)0QrMzJA!DO*x+1RwwhXRrNDg zrIlq;^Blg~mcQ7T|8;tQe)oqXmqhg!SH{22$ru5EeF-)EF!%ZTS5~DWeOAgHgmv6n z+JJW_C8IGn=(m>|_i->Qqne|qe-0%wJ@2H=t_(HayiSz-v|D*p55DUy4JrqIb`+vQ zK7+TVzgOZ8jrlLG%tWZ7{-W1p($FjV@hVO9m#O^%^-4*$V_qHa?NcyTp@WT4pwGNo zJ@lDZf7rpRT)b!Iv9FP#JFoPX!+|5Y&N>9oU{V?MUdzQ75-5(Kj5oGa9{ VooTB!Umm%v4nMst#tPX^h^(}FDL6~Y0f}Tpv2wo67!iX* zm(hGwW7h;Maf2_Sh73|4Rzs6%^H`a^Vf_wcyz*+5kdS4>LF+5x8dP;PDp?r~St$}t ztmllCBHc_Ef$N|e96O4(ti+4h5t?LGlAN>-ikh%fkXL4l-uxM0!B43>hh%i6>Nk?2 zQ@I2 ?#*h_%Ni2J;2^I%2N@6?cGb?KY{-V2!GWD)YZFI!}-^BIlf X9@AL9u0CR4Zef z8kky8N1Xc94#=R7=u{3t$WaQy;ZI)hrqx%4?6kWgTwD`5&RD?FnV+1{6bz~PGUPDL z7d6ZGMQchBM+Rcx|11pxL*QL9wy^YXnvQl(A0C}p(arzLdWYJsQ18xJHW25ug=td5 z6KMZrt-;KtpF_0^rx#*qKTA0EcQ}Lq=Ty@4M15qC#Gp=q+6ptL{hBBM<1+I)CxKTe z*i2;mET60&s42@drD *}?}BQO6gG;! zBo?4?3oI-_83S*Yd5&h{kcef-`##hLL0c6NI3UvY)J7Va;#4n8iwLIf1=3JoEm0tR zThN5DR+-#X@J7lls}zcy{6SPVh7Lt^GFW(y$YGrv6&(goKUxY{**w!bU#R_o=A!uL zkCXmdAKE7ER6R=lVg)9{n&Ly*;W?a_KIv62cmN+Zr!}3VuPBdkBFN*@0)B<}4tfhv zay}oP4gOJCH$SP;b|ZRbH$dm3GZAv!&f()nzE?kyv+7i`bIP`P(Ihrg9XQ9DxSNjB zyiISwO8E_7jmoPnhDNm?IAAw5;kesZo%Ea91U@tPW?ds#g4E#Q>ot0aUStc0uAC41 z*x917SDGtLHONR%x-At2oGP7VIgN+5HqM`Km4!|4k-gI^+ ) zmRQw_ZvTwhC~Tv;!=Feww#8C(Tn@+-HS$1TVUkR%#jfs5%NTvIq(=3UK!sTwcA6I8 z4FRZ&1&U+ZLqgk%T9!38((>Z!6))d5!YY;Lf@@SrQ=X!Rtm4H;AQM@t`bdz_X{)jf zn`x>ENd^gI7Sx{7YJKh0;e}t>>Jq_rB65N@(xA-`_q$PXvByLSXi&)`97L_oImeq% zL5zDt3B)nm`GdQKZ%o?cka^YwZI%E;nXf+PM0+cUQ1RmDV_HQtw3Oe{m}Jh^lo3%H zsyjob(nhtQ%(b3WSAJvd<`)4a$>VG_tkRD(y*KA{pgf$>H|?zok$rpz;%j=s4FS#{ zm5e@F6@(@dVai19njWMh{H$iVc|XL6M#l5zOi4wVA+iJOBoxGmouYc3Hx#WIlZ+^H z%G8Icaq~)z@qCOXsdZ7sk67Waf4Q&!Y<>i;*KDfL+#86SI6rCdVWmU5wk(E4-rnA) z$??SN?Q1Lp$j&Z%i8}cWG5lETfyPs}mavKZ(Sp47d{&JvZB-`nDlhCNeb+qRiCsCy zX-Z1^Ln4>XPc9EfpC5L6ko(8)4WVtB9ZP8y (!@OqFce%{CZCq-rM6-0-}R zs)9I5@PygfzDHRO1i4in_Mb*#424(Skl^V7P)U-lnYOnNsPdkx9~!JLW(sny qN^Yom;9&F+(+8d& wUNiBQItmVk?$A19TZcx<}}6XQso_e z! `uULa934?#@MS(_O|n0^uba?rKpTb1)hy! zQy?_;TpDQiqjaj7uGHaY;UGx`8>C@W_QPrBjq5_`o2)vf9_H_lY_4e n^-OM!hKvh%RW<2xT45I)|w-jV38G56*dP^Lpx)L~?-b+qf;!HlVo#0ZWQ#y}xz1 zIjq3JRN4cU7`(ZLf0J-1#Dc?W7C8A3XliWi%SqdOJ1EvM!=y$op1$)`m4$lYKGc9d z*#86ezPF0A7Uh@Rp>EpCMoomgh*_iLO}a?p(*d$RFOFxE7fGNgQrHiAdzPu7l8#A> zow NmC0GQyL!Ea|YM#Q;;Tbk)`#w3}nC 195ZzbGrF6*n{|6Q%ybqjUXP?=h3`LpUb7HUJjwvk5V#cSv&Y0Uc% zNluZxo2Q4-hkr(vDp+YD%)+ZK-sZVE-siczb3YmV>YY8CoTtqN0aV3Hdm#r=Ox@K( z0ec!M|B1OT#FYeXH_h!Hj9Ki2YYP>7xI$CLhYW~F!LFQWS_S<{g#l;VvuwRw3#A=Z zr+iL# #3neh3d|>}!Q54DSIupA1zTTamY5?{=82DT^TwN6C8`-Pr97Ab_ zt`^FuA`q1BAcKnH!qEuru^7vZ_9um{cB!i~_jvX={`(!re*X2h2k|{erVGVgs~&GX z+jG@bJvLn>48UFP{_FSXGwYU`!PQ(LmZyD%xBv#qgv1NCusp-`N3Rg1F62 8S?}oQ7iW? MEK{Eic1V|{4ahlk~dxk97RWWdpX3~!w-wG`DihC=H(oI3vb z5qjH8dM*hK27v2Zb#!zC8n5APEJte&G)WwXV|3#FjP{FbR@cRjzKoHbe5GJQVhmnG zjk@mGFZSnc|M^gFncND*loZ&0$}6j_@uaKOn xD(n>< zpe*$7eqbY6WJ1*M<#x&3i!TiDw&RD#iGL%>qyte&{((tNNJ)W#_j6BL;82Mz2hLVZ zxkL0)|3Zr<1i2>X>XcD~nIc(65t QXxIrtIHTOcuM$I2n6^)lF&CqG0r#U*uBl z$) zj8HWfD-A3rzyj46_3>LF$oZWRkaFFY=ksDZi30%6j>!)FI&s{VwiEs&BXXB=TNv6~ z|E+QDtB~0#Yuc%p z+4{JcWYgEv10+@8b|m#=FS8ZYlqMFv=mqodSyJdoWh$L8ir#)b> nWdd$(b5nOKQw<#avG5;kb4bkigd2MNg@ $|fYyMBA6Y;XO36LBFeb(Vh&@G=oF rvz31V ?b+3^UrW>>w@5YY3VJyGeU HClj9Ew^F7w1)dVRwnJ8Q2&kX5e>nGdd4Y&lF#KAI{ z975DL6dy1d`1cr17zhFs(rR1_Y$C>%{mDpG%H|)R>pmC#i|h`3aZDUD(i1}dW!IFd zy-7Un7AdWMGE9lj%iIPm%^!A@7&s0 >LdS2doRe{@dPt@<1MaQ{`ohUvuF zsR}!ayw!s2ne30DZ|lRLUG+Bz8bxD$)yZOOnEIN)KEWr3a*}7hmOGmhh>a7i5fEk4 zD9zn6o{`DgN0RZ|(S1JsmGNor{I2=>faXi(Zbh_bowjjNlL}%$?ZwnJs!>BDp>MEj zPOfD@^^y1~ZQlfks9D}Xs*8a)lyGq5u4=~)JNVpVLz9Nv6>lyrpF?9I!kPEwo_5bs zc|J8kk+OedjG8?2H7(J`c2TUsiA#y@iO|MK3AsD}07TncybxF1^F!QeL~5)t2o@mD zwPd!sLaZgXB8SP#e>vtqbI}1{3AHDu-AwwEG+dG7RhlWkx3+9J=~7-s0qv$6mddK$ zfN{I?YmThlK8gSOs%inO)_PP`xrqW0R*}C?+qfpsE|Gil^4@&HsQo%;n>&VF&-l<( zX0(45-JplX?PrDM9sK^xiKWX8eKnIQs=07bFGPeY!8Ho+{55jGer$QQxM4B91=|eu zytN}33&Hn$y3?wtNPX-858pUeYxBbZsJFs`wGYzT^)g@95*1AK+4OCwFCqAxOFSjG z>>DV_I;t(xc--oJKd3tYUVYRH)N$L`k#m7bXd%;^%N(_^dmfJ23 W3~flW=HK27r-VnKaqQ%Z_9#KPUl}$hNbluZ2IJ||mOiPYwyTYPph-=_d4jFIv-HbcQ?=SYpgxM2FAy`B zqgZ@XBcx}!C4d@LhBejJp#C7M&MMLA2?`Hy^uY&|y^NoRO!pL#;?iq4&FgDae=DGb zsS0gs+t4e;z@IYqLQDGV@aVh@aZ9U?LT*IR7WY-**O}DwkM6I&lb?bQrZ`$nBWv{7 zww07Ov74Jru>uod(s=bc6X3H=I3J#43pBVH=^Z~!AkhU|p$UzZaV00i=^?(5_~VUn zV|DX|nA7Rgkv9-=+w86#{=Qh~#o(u>LWqC%*#*CVn*|x@qvS(NG6))h+6GE-?uO#E zK07K^EaNZ~dIi;{!Q^WavQJG&m=e(2(wX- ?_4b4IQywv#T8rj< z5}tSj9^PGG?}_u-cRpB!;5*Txc)~kZhf$yY+PpWol9HyMCdz>68!o=a#qrWK3JU=U zem2-416xC_$uRPPyt=vC?&@oG 0t^Vhb9ya%Ta|7m`J~Op zNupCLCKBmM62061KG9(>E8lr?;V%C_PFv;&j1lbiEPT888^Bcj&zUSd>GrDO3WTyj z_32FK)^qe@1Z~67mq27>#Z-3zrg04ABtk9vUmvV!#JUpH%Uhv`h!ONxl>CKuGez{6 zf!#Ify_BQHf8y_8jyS@I@cC)GW>k6wDPUw5T3PT9jrRc>DX74Y&FT#_9rHruVHSj4MCX zbIJb6prfu2ip2jYbW#!oiqrUj!-2uBl3`K|nj{=F>X9HPcTyIFfh10}rC;+20(HJ- zGhrw?eD-*@Aw}5}m~Rt)2UsL|vbnnek6@E3D@uLpa}lK*YyoMQEa3>A2{S#*z)$%g z_Jj0GEJHBN&8UxUDF ?)tcPYqx1 z>T7rsKQP81h{FLh0v4yYnjRh@uiL4R(^1$RZJAiw{z`AYP1N|q90h#rgsXhXQ(zB2 zdSCn@LL0h3ySKlIc`^~9bBLAMcv-N c^??Jk$?31>fsgGxbux>6 zprK8dyTFz8thn0;UR>1_hg=sEe?F#r^m-rYDFg%H-9 o@G(c zZG}T w*ne2)vmdf2%0j@W*fNA_<|Hplw}3PX3WexnDNvUsWAv> zh|Q?zdR(DDR#4H2>A}@1NK#>lLGk_qdCLi{R0PX#Jp4}(zhFb7s{T@KJop4y?S~$e z08zCknvzV3{CVo-p8OiXAd*E9rvW0QjWR16$KdXx6jwW#`kyh) zhaKI8^3=;+byuI*oy-G(nR|=~C#74rnI}MGnca#ZI vjjq|8^ysmWm@99*sddr95>KCgix%d$e9}%EZCnN zX|KQAVXW1ji>S&h&9kkZAYYf0Wuq+g%s|yi> !k85m+bqXWT}fk}o5f(~!Xp#4r(AasQYDKc$H zRN0LZYWkm+^Jf+N7#J&qh@P8a By1s_V+KPl&0iP(i|*-O^Ri Lm|K^k3Lr4F)2jvQtQrnI(xh^NHLTB#?~pyRwF4)cp~i(T;q{@`7Uar?t?gUNPf zzSMq~7W{tDzp-j1H`1hi>8B3BPbG5noO!;^nUwMeKEy-bk@E_PUBcu&J4QGxBSOKi zCtlQI*T$sEa=gE0dDIj~NdDub^=OLP$-R +j;TkKqzWD{snh-M(tVQt>G=apW7k zpG~0Cx|n_nj3v2ciqwW5277Tzh~sGhCSTv3epdO(D!A!d@U7I%#z&~`Ao-{ZmTP#< zH}279%O|C8!s!vR@lZv#JF+yd816`?%r&cL3s7Y-O|o#pS#e2L(IZ+-7yA2`Na2e^ zUcHl@jc*=>q!v4Rj{*t$z=8@-- H#yG?}ihcZp! znY-g~;gXSuR$D<>!$t+OLB`VZaAy6Zw94rw%*Q83mnM^#(5ahYHFyUiUY6OYAmP0l z%~tqB6c^4~Icox;g-M}>!6PF}Q^zmWj&~M+Ew)QMa$ztZj?*(9EV!#$pHkF>kyjMl zL0kQD0~x>k%KNx7;E@6H^F?zt!_e!hqak-AZXP+=eQqMY4&HUHnKx0gYV5)(_D~i7t!r*I3!*_Xsl2guT)x$v6D`zWg3Vt zv8L;tt#YhHyhFf=ueStcE*qm+b|XJ{e`eKJ4#p*Akw|(aDA`?kE&9AMWRb9}A2DFb zb2Z9EaPV&IWhl^|F;TI%e=8>8e5HmGxtN2fJCJLdR}YG`j|g_JI&@;ll}+#!wA`9P zHx&9J#9F+t+IT9!D01mTQIp(5CQIDLJAPvM?!yMFBrBy>trMyNnfJb|XX!D`a*V_O zPE)=huPrH&M0pmyi#mI3-kC~qbe@*@wQSSTX34=mJhCGf9D@9*q7w^-uNSUmh1uIH z&-xR!3@~xz6Qc%oOq&0taL&puRl?IXy#={t6;D1S8u)Fs3(+e8R7&tJ&Cs;6)u}3M zeC-pW4{P$P`;Ht)6t{!UTkg^r-{hC|@-g+qg}Br4yz!yJSsZ<%`;yC7uh@Xq>3ue8 z4y1dGuXF@@G(Cz{D;9k`3ceTN7#~b+ETV&9I!#eEU!VL{vnV eSyA_S85G6lV%1A+FEE`q`;#K-+mm*)I+|F zQrI0nGh;1XjR28DawYbg5(M1{G+5~tztUL0q_D*?Ga^R^uvdpyrSY|XoZs^6^r-Dz{jdVe15O{tT*gJk&tvg3ZSiz_>j zH;`laXrX$-97h7(AMC4NT TCF9Aq8C1?wr*ejUWm`p)dRAQl1X!Ph@UEt;L zY2%8CCbMSf736}W9DU)s0y{O+FK)5d Q)tEJqr*n7`P!v_TQSIYZFuAhwsR_2|_Vj z>XZa=lUprg269X)OjR?UR-G~_DH#zJ_J*x;VEs Wh`Ow=*M*JiFwq4AgqYBb1Lnf~-m{dCr^ z?qaMz%RI*rYCIzNbF%dYH*9X?t{VYv0g{KpW_gd=_{|el Fo?$B%bw5&{2w)3+Ie&U)m*mSXgih8=vQ^YK7MYE`dUV$Bl5WhmExQ{u6@Kt z9}^Qd`cuf`N7}~zJlXpc(zrn$Bl!Rv>+$h`n{lzJ5kE?m*ldK2bG(8VkD^@&QAtor zxNvFscxH3t+X*A1T5pPvnjzehS?>ZGxIgmesp$SJh5J&2FMN%Oig0FnEEQZ (Y+R3q4m z2btx;3OLlQz`L$YwSM ^<&Z{+OlDQSWz5; z8rM 7c{z&l#(eUkmKf4kaxEU6q-97FC{6XP}D?zPKAIdk0-jE~$ z{e+AC0oW&$$oV%uK-VLp$D1?1sC^-(M)Y9563jO;K;ry>GOaeP0~wVr=zIiIZfKu* zH6kv+bz%hKN$}vMuOWY4Vg?W4H2Ov=5_}XD_m>saSr3~^? uen1A~3+|P{CtN+5*TiNA(n=iaAKducr z AO2Q5zW!>}^n%-Ei<`+S)t=Ey{`Vr-RJmm)*pD^} zQ8}SLwDxxkM`46C{>gv1h#Bmi1`#mUs-{F?KOWa9-ZC*!oWO-V$7&eo?dT#hhBY-9 zvZSo>`Kp{Z8pK%Yw&5?y8lbWiQ0Aw^;^Y@(zM2ujeAuUNsHgBrh14QSP@ojXne$fO zZ5}4=RFiT_=_5v0%IpBvjH86jk5RkDt$%T6o1^u(1u1Rp2>2gQ%Jf&p9~S7TAf7A< zfKBB^t^WiVMsLgy0|UO x-6#*dwHWd669tUMdQ%+W`ku)F zOxMe#PB?q^d4Pu6P$N8=w-JabAx>-*zm;U~HWG*NB;L*IA|pnfE`cWRr1WC_mA+ z98@5uXVdtrW1osd0dN{o7Vn~()rvk}Ow3e8{mG>U8b(Q8E&{=y^;``~ORFx_sy^G3 zZoa}EFmY{T>%;EUmzCXqve %w z*kxs$bp7D_nDKo_#>QU9ISw?-dMGZ25e2(hcS2+`H#ZZApi1r1?m-DD17f0 AzC3 =lWeGvDRRG(IVFUf>VR`PPREKMnN3Kn?M66 zObCv3NqSMDWyeu0Og|>z~xc}!Sbqn zqIIqqbl}=!WMkm)A}i`gC;J+l&*(sHcb#yqud92p%>@$PY#tY 7mi~4l!?_FN{ z>N|bc_X%cntS(a*o<6}L>x+u>A9()KO2M*PFpUhAW^QNJ?5iJQLD@$4h*H>~X|d_5 z47Ry>2x&E!b}(!YW?OCGtf1WnDdMh;ILITSyzrK1Lc_-^d2!|}#MX>e1(+~dnFTLa zJaTz(s=}_=dN~>-E>#~B741-{eLxBjPk%@KnZ+HqoN9!+Nq4|!HL)2e gGigpjnjLcy?H1(L4- zr|?H^B*VE5x)J|`T@R8%Lqu2O9LW=#@~^P$NT_Dt)!N9DP(lc*&wSPY;#M(MSwF1B z5} %^a)H92@l5#Anmhb~XC#xahf@mLFBOenSjhz-C&=RYYqbSk z)-R}W%nj=4`!)A*(A9kcaTN^^zSt^!)Zb(RvSGW%?EP1RantO#|2VF>)c1w2Zs&R@ zYaZ%_|907u7WK{lGgxKS_U6s!4#Cr(50NWN FJrECc27EU?M61LYpp}Vk5A3Np1 zpSy@Uu1kjv2!$XqH)P4t#-vcoAUH5`EXAPwI#ON^-ZF6`AneWHZqU{?MvbZ3l}M)= zpO_P QsKu-pkV_U16ZC*9bxB2*$U1}c#jGu zsspoRLNM|(NW2JUlIp3Wc0_#M>f5{FhvPO9!Jxui=?1y+i8vT)%D5APlvgJ1mjaO7 zGQ_47yc|N{Db4P=jI1uNYre5X+mazS Q7*bO>{TXCdcR+%QdR<#?eZvb1=m z2^GUwUYjsb`g6rF?60l*g{=-M!eVQqjm@0-ak{L@wGbGjt-?^LnZ?fT$5hptZiZYH zYE8!c1ovwINzPIFKGtj`5jLr!EP^oI9VxY%YFwZ%+H_WsB9LovIE{iV_GL{XxRW&x zC!70nE7!5a6CgFzoAqrZ6Xw>&*?r-2J+TMnusLh^B_cj^Gs-uPQ=^NDA@dDRwON zbRAiGu^I1lK4rO>?3l5GNAHU8f=3rzxkB{JN$gaxgAjP%8cO={HI6{Xh$|pAS|z zHDAN=HSEDQ7$|!pA1Rwn;T@H~nRLNG<`@|j@F>qwPpOQDqvw*hWc+%TEXrI?px>x) zueLgEGUQ4mptXD |R4V&;w9PI;{ZFHCPWEV}Q$Z#FT!nkH)0PBCtwTuV@=>|SPdy1P zfgOteVI^8SOQiK!oiTdg_f`8XH#FTH;jqO;O2HymTt KQPt^J+%II4Xu!usCLVwm52HurM^x)SWkv`<5tf;wq z!XU%mf;2VynT!%Q<9Qj#Qi2Fg7%G~=jd;=@t*tmqJE(9Y3Dn6Go~mE&QlKH@3N{4D ztq4(u1{~P5cSJtHY!Y1?xo}&NACBfDVtry{r3_bBlBY(3Jz9Uf8E=&X;bn4uSlZjy z2gsX}L|an1t1+AgtO%jX(h;6iRe{E3KRJ&l(%2#z$WMUGwVA&dT^1NX8vKyt{qyfh zWmR9hMUwY$U&Z)54iG5}l=ABdir1h>Wjfep3%T}O!;d}P{BVDEO55Pz8@R@*{QGx+ z$9#n$8=a~lFQR9^;idAomE76d%s~#O$QBgjgihk#SkoM1_-|sx>teh{Eipr3P(NtA zymjqPq{*`Ura08RHLFlo(sUfr%en~?<;z5vE%U9l9Hax>%_8#Ru=u!pV1UH`jmP zV-bARlo3ygls%PmmxbQFjsb#clT&L)F>cTz=ac_GnEn-T!NRy~PV>;Y%PgBC4b>7| zq-nbyVfWrC#`(h|4r_pOab|hNgBO>S?1Y|I^AWC|xDj75Ke?39G8%6_GCp295f?QD zUpu+8es{%{ENuOD-{zyVTSz4!K$l+ygKW<13U4&*j#=WUP&C04!Zm841*U?Z={Oer9%^~~nXgHx}Q zwybTftZGzLC?nJ3M>>0uX64OauO%r3kjBQ! &Dta zn&A1bE;(3W;&nR1Frv!z3UDF1K16hOk4<@`csxzR9>c4_6<-K~fsG6$q c6b-eMveVGE@ih=ePQ2e5e*h#2hIiJ%=H9;B+8U;ZhXtZ zdB5OQp54%!I_l^|kXURIL<`9+oM=>Nbe$?mwl*p@b~3!P)cedIdO_N4sI qcBwiVrM$hyqtFozR8vRjQ~+Aqs23nWJ&)QdAdZX&3aqZQ zen=ue`gwZu(1Ypv*_Knh4J^g+d7Wok6LHk4SEEXI_2*plMBL&drNePG+iu4^?t5M> z6Oqlu<>J&-S-|%r;&PLcz`aiaTdYf%+-Alfl fx}?P6&2JFhsxZiWHb>G6c~tBcOpomTM3Tv<{$XtCb-g)Ies (-0IDJfkT3I3F>@6j-fUyH>y3x6`pMOUFlq#JO(bi` zyXjv6r*9g2xBr_^8@~(k(7&7hi$RTc?qJ_Jf!U0I(3PF!>OI`If1G08IOY7*rakWJ zosEg9zR$hmo#013 zSI5a5n@f+EMZfP9srA4Kk5JF^^+F6*vM})w%&&ajle+aUhex?IujXU>S_;Q#4d5&I z^;>?WS~~~Rfv&}7V&LY}>yFhlMdzM@HhMt~T&fo?#a_&ty^aa@xaWv*C&z184YP21 z42^;7uhkvaj_!{d47gI8niPF(Eod-F$@+dL%BOnTl~cv_Fscu-tbVeAmBhrP1QA!V z69LEgd$wZRU~Wp~?ah)~*O6sEcARnVqO3p2%4JXR&>Q2~9|M*--#)N>agnM!pm&t= z(k9jq3mY@M!#zO>b?;=p7dFSddP8Y*-6D1OC;nQ~r 1rZXQPkyh5dx;dJj=L%V2xL6MDQibFziLfj zeVe6b;!^cECtVwS=vkYr1~HD;*MYwFplZj$O<>3vqmAx?*7^$_%zKOw2lt*Y>D>3L zj@sC!O=0gldZA{zFYQfIY~k8N?t2!UhJr(@qlW}mN{1;gO$JuCgSsu7bV4(n2(>wN zzf@Z3+nxfUke1VN04 MUSGJHJOy!E`*xCQU@Su^D(0dzFzS4 zy7Jud?$|Qe WJ*}8fTbsy2eCwD(mg*1m(@tP!wfks!#yR{^W~--!?cO;!O)i z8mBLaeWN#1t%Z2(s_^5=1AI#Hl?V8>O#iLs^c0H|sv&2y3)sgp*Bu~}knCp3iqLMB zgf!v@D`Belu@siqrE>7L?dct*HK!_j@vg7+VQI~GCV^gFET67*){1pcCy)m5;q}^< zfSk8oz-_@#-#<-5N{@}Fr<786Ojoj&pH4h#Y64*~pwI=(BS{xQTqL7zVYV(c&B?1v z#qm@+7upp2rS{31*=K>PB)eVKZdyq3KhNQP$uT%=I|{AB+rMP_(w8;ScDHq@j2BgX zwovf<&a-O%HYi8KJ9q*a$UmEW_Z&`VypDIz5PF}8t#N@>H$^smko=4)_q(4^t-r-8 z4KvkUAa^Aj!p`#yR@j~g`L`%vyv$}hK6=F%1J4k9JJBDMv2v992c-Vfzpen0XAYgy z>GioZ+^?;bySe|;=k%CMhc}`3fmV{vZmNf~B_51tZ+;4j!rpt>WUH1tHvsT%gQjZ$ z0%%pVdtpIH51g|w(m%RNI)*8i+D3nziyCU87ka)4R!G-nup{?DM1hB-bsrp7xx#c7 z=4~HeD{#baOnvmh!;?*M{kb!Y<>kHM@Jw9DcQD%7(0#@1ZdK0v`sG Ggnee7<)yt}`6L%Fd{>*r<&vd%pS(7%d+Ws% z!0QUtKs6*oxl8}jA!v8UqPkwv(G+{b>9)dfz-Vq{`4D`@|Cv+O@90aW6fP$k>-1*+ z-? NRR_E-CZi zpB7pBa@LfI8-G7M@|YU~QX;Z6)^k?wn=4$tvWU4-I~jvS_M*tIh^>EhaC;pSrh4kR zH)Mb*Ag*$}I-7T@srARe@BHC+f-a^{w3iyUuG{t&;wRdrntl&&f{nBrtNqUc3}qrS zo`Xf7_sKYXsT$v?t+kqA0X@I^YrC}Ca}&_rTTNB3jhe0cjh#j6eja1?+%vyV!-qq) z<5Ii#(%1`k$FACR2f#$PI}!@9UF=*Q?!)a}-aQOuyYA08lY9P6m%JfI#COv(fa-c_ zpS!v#Qd_V)a;~ac?9(be)RFKs!&hJ(ibSgPuhLgys~y~pgGzPeJF`}NecQi@M~YW# zyI<(yrJ#@HlRJ*+o;+k(;`r`}RS9SCS>KD5TMVBprH_M(u);l)4Xi_=j&ljI?niQ$ zbkiNR_reMRksedW{@hpnEUzI`O~ M3OSCrDJEPvjX@Ub#!q zh~2 nwNL)ZA zur|&0@f|cL=X|Oto9+c0hrK}4ahq#i_S~7*#jokHi`+C$=)lqL+xNX#?JJ+h=DWUw zNpwQUQKpDm?moGtHE}HCV!m}%H9dMwTint3#@Csaz)jo01JmQ1V&d=ISLrUdew>R7 zD$c9TtbhA?Fk8BZJX(-}KT#d6CpnpO7FZJ<{@{;jHSZIGFW{i@qyBpnulTIT;Em7X zeBLEFrF+BRAYu%)_7C)%L gPM>X$fOd&-jSX}o~Il5fAp}*|9fbxIE`0Yj-R{g=78Eg zm~i837;enH>QjAA9T-pbO2FOFJ+1lO!9uEe9!(!A_kf1Bi5F6v3uQ+VThGM6w)F#I zdJ(6!wffq7U_GeOZhhLtqA<@OuX}B$rQ;zM9Zg@pKf9Tagn?;JaeF&=K=6iFR$9&h z`z!A)hes=My}g6ys?L2kJpK+?J#%aH`L|1OQYz-Cv-!&xj+v;S<8-^3!e-Td^5A*m!1(d`j`7@XTR$W5inmn6xi@*?w!Vk+XmW}twEy~f zWuMaDvC=nl9>UGb`R@2%FwwfLOf+n7Oax_(b%&_D&yJR2@ReieFFK#fvb$YHT=0K( zOKY=1Os@`;)-ahAnKRb&Fte)>abJF3W^A7SAO6YzCnI`l7XE+RqrT(U4k5A0*!o15 zM0@68w?S)mxlLxAa_@PThG0*E)_6emM@YMDephJtb=3~V)DZD+SziW3cjlPmXXNsT zSwKsudLabEK7=m>bYz2a4!u9`6JvtB+~-KU5)0+5|GrAoJVEU2N(`caJC;%hOc~?6 z_4g@|>JWaTF~<8W?2ilIduyaUcDDB?^Y1$tjAm)?5+(p|3tqBZ9duD!4Z1&HE0DxU z9yu5+z9`NP>hH>PS~U^}I7PLgoDD6n+{6DW{#6cc=fIl5fKJjA-8S2N49M$i{%lZC zwW$| LD7FqC(a7+ONV ztzZ$^ai(KHxp1Kyc4XL569Y0$8>k9f3XM-WS1}{)#%oyIn0DY_JwV|Da3Ll{rYQ8^ zX;YBm|BWYJSX|2e+6}PJ0m4;kFDtHg?=UsPW~C)Naf&p4{Zq?YC)!*m{b Sue# zZ#lm?dbro@W;ItEk`bk$)hTkuZ}HPe8 7Eru>07 zLdiudUBhD-CjDYFrio2^B?!G&7C4mjWmS9=rl3ttq0#5BwauB%PFG9TqQiCeWh*9m zVHk;ok4M_!9($YMY*$0`X=02CCL{J5tA?HnQW|nbq{lRmIZcO6q!$A($qe7SB;01b z4!N{=1E0e)e*Ks8whAX8!3pKqq;g0ppqgK^@kgQIdbR~!W`A33oqijV*6BSIZ0*uQ z>;v^K(}yTMt1Vw3$kv0gOp(1!_x}*m=|6-7C ~81(K5#0l+*q?$==CT)BR7{U@OIav0I9Eq=`pi*y{PLSEqXk%@~1wPo5AXg zI}C;EX6}#sN^0BY&uQ6k-^GCYI|E|Q6H`18x_L7ke&<5Gu?A5axYpDZJZkNr9%+tX z;8AJ5n$*IQ29_3#bEE14_Y2&P*296S7d2f8wn^7W$y(@2<-AXfb&j1hW6UQ;B0Hi` z8EOD35W|M8tGt+!+5{PToe@@P6O}yN4x!uUAw`;tAj?Srn%2xIUMXLXDK4KRcJyk4 z_#L*;*Pl-df1?z?_n6Ko%+qcYBzZD4|L#d8d3C%eY0_a;;Nzh9l_zR!0S94oF1-U$ zBv$UY?Jp|m88~ZE+Rd5tg2^H5n}*VVnZLuitke8^mv21<&b8MRzhNO`Ov&kZ!-sQ| zpHoR4BB5z;>lrA1F44(BTL4O*YlrC$>b?p?VjRn|cHQ>ad(O);Q&0DF#rt`20F3Hc z1?) 9=KR~$wLiQSJE~qvCS!1s145^E$=s=!v(T1zAx8x3 zNteGisZlqgbURpK!Y}X7%eyG8MX5Q?fTpCCYzcQZP@azQpEc!<(@&NkK8k9(ZK(^i zcL%-~YlP@vR&H)YH$-aS8VcmEiU&JZGaKHkU5@@0sF>G*@D4vm_jV_WGgc3^=ky-> zH%vNq`hWCU*XU<%yT6b7LB}pDLve1*PbL@kspenDssYf6ywqC)Cq3#3-|Nnyr$f$E z+|lmc3|O%#y|V9f8n)(r0xXnTo8;Gu&^_IqeFoidHwaidlek9+b6zp)(>fx|tzLf} z4tP&*)5|w5pPz%G<^t~F-8Q~F<479Z+y%WHfU*sv_Y6QC7OmSmni${b7;`^CP}a-* zT07m~bz7XIG?H%7Wl9Zi<>b#<)846(cK8X=8YYkIf9?iv&`qjMBMs(m!3sZv{q1O< zciq|rem|g>@jhA(D6x-;DQ0hL*V$Hu<^TjLai}kJSE^4E#uX)B`afOA{`*b%o&AT9 z-8(rA+Td <4S-Q$eld9n37H45)W=*pxQF9zpy%9Z!+Zu)H-^UiP9^UQTylZ#Z?(ELpvmDrQaE8KqB z#$D6vbx6_g{n^?JiJ|>pV>*bC`yaQ~+d8}`DCMr%huzH2-5uWNAR~6aP3a!#V*Osh z4gdB3yT82!)(0|3z}575@o&}$1z}G^%og{{do7A2D!eDn@g>Fo@dD*sKj*#mN=C7h z@3Y#cABMUmzh6k{VY;X|o-KFE-#0uP3)R3V-8YkleEKmmA4l^%u6CVeJkz>IV|V zW}oM_!H)w|X0t!9Hb5WaQLi5! amxAli&p+PWw)vFyo@HoCL)-eHM?QK$ z$FQe;RcWHT62;5FM8Qi }1_JnRqcPdMRIG*?{=Ir9p-UM;i>!7!ziQ&CvNsfJe z$zaO`qp0)fUx&PSc #wht`c=1LZY$k&hg84X3LSdZZF|`nao^^g%+ukZL-`-O2YVPDc-US} z^_x!|R<>^;UGEyKr438arWR7bX<*c|$T_7$y)}=9UWjND7xAkd3$R O^)umT71KHJK zNOLe#A-ug1L%3`N%q(fLEm?xwq~7Ws{&bm|szuDwwpwJ4{F`sevi`?*Z~G9Id?jZ| z=REN{8UEI40MK!3$}7Cd>CK4Pkkx*enQnWe;XA6j8!%SD$r(Ou<&a) >>EFQ9ZFBeHIfVI5f#1u5Rq&u!4 zQFH6hoyfNM-i9VQaCfT!usKQQL4+nmsEOuFbjQU@!4$`)W#iN7FqNam-1nmwY*Idt z6oE6I8g~TR-wQIjia= brc&+hpSZLDaVS7{nFp$gX?Ymr!0meQlDxXoQ*f0n>4} z814F;a!Xs(qBzPpSbrA0_kq{;c*{vl12XjNrQl1!#@Y*WKE|@o(gBm(Q;!$K>HOnJ zg!_>lhsT}XlWm0f@naq99B-j)xoQ}iz=XxdyuGELAU+El570b0ujyWYvQ%s@28?@q zP}YMw$v~U87_siK?#ogq;{R5?D6WIZ=LuB7~p7J}Si05&;qiKwI z*{TF|>R;KVO?JwE0lC&`Vc^)O*_Qk-CsbAUd58XVHEUyl^X$sgZ1xG}fsTcj iuyTt1R(SS?FQ z_JY?`Y&QadiZ3Gv)7|xt@%xjHo_}#WohI!jdXCiRR46G%9y^U51zkSI=gr^bH(lvO zH6aoAsReH|0LL?JO#%Ux;%QV2JhEM6@SbOYWfx9I5Vc VS4-z<_=z^PmT`77D z!Tr&Um9eUf<6uGHoaa%2K);4mPK81LFwR!=gMz&M!_LHg jf;eovBWX&&yEw$((yj z+~kfAta8^?beW2oIy!!)iHOSJz&{!9T<1W5{9C*spX@dMo^T6ct9Xb?1+Ns_q;(m3 z78LT`?kk3OHFX3{0s7%0YO2DX>j+~7(7jWt1(!D;?l?T;x8HbCbGPAKI{^qcQtygp zbgjc8F>~H#qt+@Pem*3{*Um4XY~87@JQw#a!Nv&a;^Ck6g=*Ni18bEBdX@ZWG};^! zrcx!XelX&v`w!g}p;M*w5UKQGo~g6*Q1dg0NIK^&^KIXe2z{o$_H)+&w`Q-txkJPw zZKI+X!oknnKa+B7OjmX9ESvBGf8{Gat%}i8dJ`pm#BQJYs9+B#VeH3%7G`qcg(w{K z0Cr=v=FX455b`t3PTUTT0;Qg`n#r0j(g1 _uA8>{tA2`eMt(SdP*lj4^&mZMG{>}5B|IW3l>6Yqq z_iG>CVlNw~?@Ej@$~}{Oh |(`eTUGUWo9TMDq|hD)0B) z6B;a54WxG?N_g=Mkl%=E(lqj!+<5OjkqI<*@`y12a! 8P#L^8EgOuSl``S^bP%_CaSufZApck2JixhRZ+2wsc>OuPszi zHtyYF?fkv{Vpq9|Qr-sTDlENlo&4<*Cmh_a4|l|bB)}PJYpQup5ud5p=461ps(H*t z>G9#1Z`#CUxBW|-W08elyp7Iuappahb<#rU5FZ;OZ{>t*WGD3ul<^z7=GWv?&Tvp8 zIPoMqVK;=LG0ItlBaIqBLOS}b!NT^wV}EVzC)gNM?UpQpfaaHSE|`oR&8$;YGD%9_ zjEuZtl=6%U#-boD-jq|7u12#mPL2r$la^A7)aN!Ge57^QL!rj>#dBExh3ngX2x@}F z#v)CAvdAr0qg}uaq`Ps5mMtnT1*z+?0KyT|a|4(RjZa}ELE6;`>6|~E|8~zOCQsyO zv~eHLURw2}wG2=Gjo5$mS;5!Mc9+eUqKitcvHYf9p zXbtMA3$Zg`)KK-Y&;R1TI^e%taBS`CjK{VML9cyk`cWR=x&dF{t&vyu9fR#n?LJ+= z2!=RDm|1)% `{!^TlZA*gZKkX@pCcY=D z<*tTyd~+t)Z|KLoo34l4jq$+v{;gE$ur!@UQDN3}mK&Q&4-;{bC&0k5mZm Z)O#aHb^HxiIHv~eEouRs0PSkze6MkORF+*TC&gxK&S4SHy-mbieBqW zhgU!tB^5P+9u#$_jjFZF50W;kjGa{r)K74s^5;*cYM=)vN+&D~?v;epi5$kovt7J- z@xs%h^z`&Q2J_Ksbn*}OE)cdpkbc7b)p5}Sq)2-lIm!#l9Rq-{kd*z0@44BRUbn$O zBI6ds$GT`;x@+^E-hyjm)D&;n^k??36I@SuA;>fLEJ1%=6#2C{5@I487|2jRykBwr zH-4KSv8zgI{7;l%G-u5VbyOVqi ikevP7YeRF7q91gX ze~q$8N`nGL(pgqC2TmIzl0ZhMw4$#AwZ$UR9XE89y6U$_N>00MM%l87b9!z~-qM<6 z=eG*46So`Ktm9fJJa~}Yfe_WGLaBxj5D2&H(ax~H)i*Z^Q@&Qjv0uNP9Rv{h=W3uA z&XRp >szgg|4zCayZ`*J?ea|3tlhV9$(IV@ zPOQzjdO?Y(weAm?>CjN2s;`b;UV%~8U+QXFCRMr@i;8f1hK-O2{T2 )W_FR4Y_j5z6NKg0<6&8 A_xSeU>NOZ-9Rzt&`fdk zM@)PpcC~bhQZH&AO%`