diff --git a/.ecrc b/.editorconfig-checker.json similarity index 100% rename from .ecrc rename to .editorconfig-checker.json diff --git a/.github/run-phpcbf.sh b/.github/run-phpcbf.sh deleted file mode 100644 index 34b585c9e..000000000 --- a/.github/run-phpcbf.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -./vendor/bin/phpcbf -exit_code=$? - -# Check if phpcbf made changes (non-zero exit code indicates fixes were made) -if [ $exit_code -ne 0 ]; then - echo "🛑 phpcbf made changes to the code." - exit 1 -else - echo "✓ no changes were made by phpcbf." - exit 0 -fi diff --git a/.github/run-sniffer.sh b/.github/run-sniffer.sh deleted file mode 100644 index ed77121dc..000000000 --- a/.github/run-sniffer.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# Note that this does not use pipefail because if the grep later doesn't match I want to be able to show an error first -set -eo - -echo "ℹ︎ PHP version:" -php --version | head -1 - -echo "ℹ︎ Composer version:" -composer --version - -echo "➤ Installing dependencies..." -composer --no-interaction --quiet install - -echo "➤ Running sniffer:" -./vendor/bin/phpcs -s 2>&1 | tee /tmp/sniffer.log - -if grep -q 'ERROR' /tmp/sniffer.log; then - echo "🛑 Sniffer found errors, fix them." - exit 1 -fi - -echo "✓ All checked." diff --git a/.github/workflows/composer-normalize.yml b/.github/workflows/composer-normalize.yml deleted file mode 100644 index cf9936c39..000000000 --- a/.github/workflows/composer-normalize.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Composer Normalize - -on: - pull_request: - push: - branches: [ main, master ] - -jobs: - composer-normalize: - name: Check composer normalization - runs-on: ubuntu-24.04 - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - tools: composer, composer-normalize - - - name: Install Composer dependencies - run: composer install - - - name: Run composer-normalize (dry-run) - run: composer run-script composer:normalize:check diff --git a/.github/workflows/run-audit.yml b/.github/workflows/run-audit.yml deleted file mode 100644 index 4752639a5..000000000 --- a/.github/workflows/run-audit.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Composer security audit -on: - push: - branches: [ main ] - pull_request: -jobs: - audit: - name: Run composer security audit - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v3 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - - - name: Validate PHP Version - run: php -v - - - name: Running composer security audit - shell: bash - run: | - composer install - composer audit - composer install --working-dir=deps-composer - composer audit --working-dir=deps-composer diff --git a/.github/workflows/run-ec-check.yml b/.github/workflows/run-ec-check.yml deleted file mode 100644 index a733b2056..000000000 --- a/.github/workflows/run-ec-check.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: editorconfig check - -on: - push: - branches: [ main ] - pull_request: - -jobs: - editorconfig-check: - runs-on: ubuntu-24.04 - - strategy: - matrix: - php-version: [ '8.1' ] - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: mbstring, intl - coverage: yes - - - name: php version - run: php -v - - - name: Install Composer dependencies - run: composer install - - - name: Run editorconfig check - run: composer check:ec diff --git a/.github/workflows/run-parallel-lint.yml b/.github/workflows/run-parallel-lint.yml index db2e300ca..3ae8727bf 100644 --- a/.github/workflows/run-parallel-lint.yml +++ b/.github/workflows/run-parallel-lint.yml @@ -1,35 +1,35 @@ name: PHP parallel lint on: - push: - branches: [ main ] - pull_request: + push: + branches: [ main ] + pull_request: jobs: - php-parallel-lint: - runs-on: ubuntu-24.04 + php-parallel-lint: + runs-on: ubuntu-24.04 - strategy: - fail-fast: false - matrix: - php-version: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ] + strategy: + fail-fast: false + matrix: + php-version: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ] - steps: - - name: Checkout code - uses: actions/checkout@v2 + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: mbstring, intl - coverage: none + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: mbstring, intl + coverage: none - - name: php version - run: php -v + - name: php version + run: php -v - - name: Install php-parallel-lint - run: composer create-project php-parallel-lint/php-parallel-lint ./temp/php-parallel-lint --no-dev + - name: Install php-parallel-lint + run: composer create-project php-parallel-lint/php-parallel-lint ./temp/php-parallel-lint --no-dev - - name: Run PHP parallel lint - run: ./temp/php-parallel-lint/parallel-lint . --exclude ./tests + - name: Run PHP parallel lint + run: ./temp/php-parallel-lint/parallel-lint . --exclude ./tests diff --git a/.github/workflows/run-phpcbf.yml b/.github/workflows/run-phpcbf.yml deleted file mode 100644 index a63858e20..000000000 --- a/.github/workflows/run-phpcbf.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: phpcbf check - -on: - push: - branches: [ main ] - pull_request: - -jobs: - phpcbf-check: - runs-on: ubuntu-24.04 - - strategy: - matrix: - php-version: [ '8.1' ] - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: mbstring, intl - coverage: yes - - - name: php version - run: php -v - - - name: Install Composer dependencies - run: composer install - - - name: Run phpcbf - run: bash "${GITHUB_WORKSPACE}/.github/run-phpcbf.sh" diff --git a/.github/workflows/run-phpstan.yml b/.github/workflows/run-phpstan.yml index 54500e4a9..fb6e1a335 100644 --- a/.github/workflows/run-phpstan.yml +++ b/.github/workflows/run-phpstan.yml @@ -1,34 +1,31 @@ name: PHPStan Analysis on: - push: - branches: [ main ] - pull_request: + push: + branches: [ main ] + pull_request: jobs: - phpstan: - runs-on: ubuntu-24.04 + phpstan: + runs-on: ubuntu-24.04 - strategy: - matrix: - php-version: [ '8.1', '8.2', '8.3', '8.4' ] + strategy: + matrix: + php-version: [ '8.1' ] - steps: - - name: Checkout code - uses: actions/checkout@v2 + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: mbstring, intl - coverage: none + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: mbstring, intl + coverage: none - - name: php version - run: php -v + - name: Install Composer dependencies + run: composer install --no-interaction --no-progress --prefer-dist - - name: Install Composer dependencies - run: composer install - - - name: Run PHPStan with PHP version 7.4 - 8.4 - run: composer run phpstan:all + - name: Run PHPStan + run: composer run phpstan:all diff --git a/.github/workflows/run-phpunit.yml b/.github/workflows/run-phpunit.yml index ef1890200..e028fd83f 100644 --- a/.github/workflows/run-phpunit.yml +++ b/.github/workflows/run-phpunit.yml @@ -7,61 +7,34 @@ on: jobs: phpunit: + name: PHPUnit (with coverage on PR) runs-on: ubuntu-24.04 - continue-on-error: true - - strategy: - matrix: - php-version: [ '8.1' ] - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: mbstring, intl - coverage: no - - - name: php version - run: php -v - - - name: Install Composer dependencies - run: composer install - - - name: Run PHPUnit - run: composer run tests:unit - - # job for code coverage - code-coverage: - runs-on: ubuntu-24.04 - if: github.event_name == 'pull_request' steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.1 + php-version: '8.1' extensions: mbstring, intl - coverage: yes + coverage: ${{ github.event_name == 'pull_request' && 'xdebug' || 'none' }} - name: php version run: php -v - name: Install Composer dependencies - run: composer install + run: composer install --no-interaction --no-progress --prefer-dist - - name: Run PHPUnit with code coverage + - name: Run PHPUnit with coverage + if: github.event_name == 'pull_request' run: | composer run tests:coverage cat tests-coverage/coverage.txt > tests-coverage/coverage-summary.txt - name: Post coverage report as comment in PR + if: github.event_name == 'pull_request' uses: actions/github-script@v6 with: script: | @@ -97,12 +70,14 @@ jobs: } - name: Upload test results + if: github.event_name == 'pull_request' uses: actions/upload-artifact@v4 with: name: junit-results path: ./tests-coverage/log/junit.xml - name: Upload coverage report + if: github.event_name == 'pull_request' uses: actions/upload-artifact@v4 with: name: coverage-report diff --git a/.github/workflows/run-quality.yml b/.github/workflows/run-quality.yml new file mode 100644 index 000000000..ab2647a46 --- /dev/null +++ b/.github/workflows/run-quality.yml @@ -0,0 +1,40 @@ +name: Quality checks + +on: + push: + branches: [ main ] + pull_request: + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + quality: + runs-on: ubuntu-24.04 + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + extensions: mbstring, intl + coverage: none + + - name: Install dependencies + run: composer install --no-interaction --no-progress --prefer-dist + + - name: Run sniffer + run: composer run check:phpcs + + - name: EditorConfig check + run: composer check:ec + + - name: Composer Normalize (dry-run) + run: composer run-script composer:normalize:check + + - name: Composer security audit (root) + run: composer audit diff --git a/.github/workflows/run-sniffer.yml b/.github/workflows/run-sniffer.yml deleted file mode 100644 index a5fdbc51f..000000000 --- a/.github/workflows/run-sniffer.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Code checking by sniffer -on: - push: - branches: [ main ] - pull_request: -jobs: - sniff: - name: Run sniffer - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@master - - name: Running sniffer - shell: bash - run: | - # make file runnable, might not be necessary - chmod +x "${GITHUB_WORKSPACE}/.github/run-sniffer.sh" - - # run script - "${GITHUB_WORKSPACE}/.github/run-sniffer.sh" diff --git a/.wordpress-org/banner-772x250.png b/.wordpress-org/banner-772x250.png index e8f95c5db..39b07ad73 100644 Binary files a/.wordpress-org/banner-772x250.png and b/.wordpress-org/banner-772x250.png differ diff --git a/.wordpress-org/icon-256x256.png b/.wordpress-org/icon-256x256.png index 30b7270ff..b2f9eda95 100644 Binary files a/.wordpress-org/icon-256x256.png and b/.wordpress-org/icon-256x256.png differ diff --git a/composer.json b/composer.json index 59a0a4e30..6138cf008 100644 --- a/composer.json +++ b/composer.json @@ -4,10 +4,10 @@ }, "require-dev": { "composer/composer": "^2.6", - "editorconfig-checker/editorconfig-checker": "^10.6", + "editorconfig-checker/editorconfig-checker": "^10.7", "ergebnis/composer-normalize": "^2.47", - "php-stubs/woocommerce-stubs": "^9.5", - "php-stubs/wordpress-stubs": "^6.7", + "php-stubs/woocommerce-stubs": "^10.3", + "php-stubs/wordpress-stubs": "^6.8", "phpstan/extension-installer": "^1.4", "phpstan/phpstan": "^2.1", "phpstan/phpstan-nette": "^2.0", @@ -17,8 +17,8 @@ "squizlabs/php_codesniffer": "^3.11", "szepeviktor/phpstan-wordpress": "^2.0", "woocommerce/woocommerce-sniffs": "^1.0", - "wp-cli/wp-cli-bundle": "^2.11", - "wpify/scoper": "3.2.13" + "wp-cli/wp-cli-bundle": "2.11", + "wpify/scoper": "3.2.21" }, "autoload": { "psr-4": { @@ -63,7 +63,8 @@ "@check:phpcs", "@composer:normalize:check", "@phpstan:all", - "@tests:unit" + "@tests:unit", + "echo \"\n➤ Don't forget to run and update integration tests if needed!\n\"" ], "check:ec": "vendor/bin/ec .", "check:phpcs": "vendor/bin/phpcs", @@ -80,6 +81,7 @@ "tests:coverage": "export XDEBUG_MODE=coverage && php -d memory_limit=200M ./vendor/bin/phpunit -c phpunit.xml.dist --log-junit ./tests-coverage/log/junit.xml --testsuite unit --coverage-clover tests-coverage/clover.xml --coverage-html ./tests-coverage --coverage-cobertura tests-coverage/cobertura.xml --coverage-text=./tests-coverage/coverage.txt", "tests:integration": "vendor/bin/phpunit --testsuite integration", "tests:integration-coverage": "export XDEBUG_MODE=coverage && php -d memory_limit=200M ./vendor/bin/phpunit -c phpunit.xml.dist --log-junit ./tests-coverage/integration/log/junit.xml --testsuite integration --coverage-clover tests-coverage/integration/clover.xml --coverage-html ./tests-coverage/integration --coverage-cobertura tests-coverage/integration/cobertura.xml --coverage-text=./tests-coverage/integration/coverage.txt", - "tests:unit": "vendor/bin/phpunit --testsuite unit" + "tests:unit": "vendor/bin/phpunit --testsuite unit", + "wpify-scoper": "wpify-scoper" } } diff --git a/composer.lock b/composer.lock index 045e16776..5e5e330f7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,21 +4,21 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "abce401e90f72b33e44f56acb23f7e1b", + "content-hash": "b55c7334e70a196b9e3c67e705795bdb", "packages": [], "packages-dev": [ { "name": "composer/ca-bundle", - "version": "1.5.5", + "version": "1.5.9", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "08c50d5ec4c6ced7d0271d2862dec8c1033283e6" + "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/08c50d5ec4c6ced7d0271d2862dec8c1033283e6", - "reference": "08c50d5ec4c6ced7d0271d2862dec8c1033283e6", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/1905981ee626e6f852448b7aaa978f8666c5bc54", + "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54", "shasum": "" }, "require": { @@ -65,7 +65,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.5" + "source": "https://github.com/composer/ca-bundle/tree/1.5.9" }, "funding": [ { @@ -75,26 +75,22 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2025-01-08T16:17:16+00:00" + "time": "2025-11-06T11:46:17+00:00" }, { "name": "composer/class-map-generator", - "version": "1.6.0", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "ffe442c5974c44a9343e37a0abcb1cc37319f5b9" + "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/ffe442c5974c44a9343e37a0abcb1cc37319f5b9", - "reference": "ffe442c5974c44a9343e37a0abcb1cc37319f5b9", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/ba9f089655d4cdd64e762a6044f411ccdaec0076", + "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076", "shasum": "" }, "require": { @@ -138,7 +134,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.6.0" + "source": "https://github.com/composer/class-map-generator/tree/1.6.2" }, "funding": [ { @@ -148,50 +144,47 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2025-02-05T10:05:34+00:00" + "time": "2025-08-20T18:52:43+00:00" }, { "name": "composer/composer", - "version": "2.8.5", + "version": "2.9.1", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "ae208dc1e182bd45d99fcecb956501da212454a1" + "reference": "35cb6d47d03b0cae52dc12d686f941365b20f08b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/ae208dc1e182bd45d99fcecb956501da212454a1", - "reference": "ae208dc1e182bd45d99fcecb956501da212454a1", + "url": "https://api.github.com/repos/composer/composer/zipball/35cb6d47d03b0cae52dc12d686f941365b20f08b", + "reference": "35cb6d47d03b0cae52dc12d686f941365b20f08b", "shasum": "" }, "require": { "composer/ca-bundle": "^1.5", "composer/class-map-generator": "^1.4.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.2 || ^3.2", + "composer/pcre": "^2.3 || ^3.3", "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.3", + "ext-json": "*", + "justinrainbow/json-schema": "^6.5.1", "php": "^7.2.5 || ^8.0", "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.11 || ^3.2", + "react/promise": "^3.3", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.2", "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.35 || ^6.3.12 || ^7.0.3", - "symfony/filesystem": "^5.4.35 || ^6.3.12 || ^7.0.3", - "symfony/finder": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/console": "^5.4.47 || ^6.4.25 || ^7.1.10 || ^8.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.1.10 || ^8.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.1.10 || ^8.0", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4.35 || ^6.3.12 || ^7.0.3" + "symfony/process": "^5.4.47 || ^6.4.25 || ^7.1.10 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^1.11.8", @@ -199,12 +192,13 @@ "phpstan/phpstan-phpunit": "^1.4.0", "phpstan/phpstan-strict-rules": "^1.6.0", "phpstan/phpstan-symfony": "^1.4.0", - "symfony/phpunit-bridge": "^6.4.3 || ^7.0.1" + "symfony/phpunit-bridge": "^6.4.25 || ^7.3.3 || ^8.0" }, "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" + "ext-curl": "Provides HTTP support (will fallback to PHP streams if missing)", + "ext-openssl": "Enables access to repositories and packages over HTTPS", + "ext-zip": "Allows direct extraction of ZIP archives (unzip/7z binaries will be used instead if available)", + "ext-zlib": "Enables gzip for HTTP requests" }, "bin": [ "bin/composer" @@ -217,7 +211,7 @@ ] }, "branch-alias": { - "dev-main": "2.8-dev" + "dev-main": "2.9-dev" } }, "autoload": { @@ -252,7 +246,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.8.5" + "source": "https://github.com/composer/composer/tree/2.9.1" }, "funding": [ { @@ -262,13 +256,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2025-01-21T14:23:40+00:00" + "time": "2025-11-13T15:10:38+00:00" }, { "name": "composer/metadata-minifier", @@ -420,16 +410,16 @@ }, { "name": "composer/semver", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { @@ -481,7 +471,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.3" + "source": "https://github.com/composer/semver/tree/3.4.4" }, "funding": [ { @@ -491,34 +481,30 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-09-19T14:15:21+00:00" + "time": "2025-08-20T19:15:30+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.8", + "version": "1.5.9", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a" + "reference": "edf364cefe8c43501e21e88110aac10b284c3c9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", - "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/edf364cefe8c43501e21e88110aac10b284c3c9f", + "reference": "edf364cefe8c43501e21e88110aac10b284c3c9f", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -561,7 +547,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.8" + "source": "https://github.com/composer/spdx-licenses/tree/1.5.9" }, "funding": [ { @@ -577,7 +563,7 @@ "type": "tidelift" } ], - "time": "2023-11-20T07:44:33+00:00" + "time": "2025-05-12T21:07:07+00:00" }, { "name": "composer/xdebug-handler", @@ -647,29 +633,29 @@ }, { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", + "composer-plugin-api": "^2.2", "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { - "composer/composer": "*", + "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", @@ -688,9 +674,9 @@ "authors": [ { "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" }, { "name": "Contributors", @@ -698,7 +684,6 @@ } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", "keywords": [ "PHPCodeSniffer", "PHP_CodeSniffer", @@ -719,22 +704,41 @@ ], "support": { "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2023-01-05T11:28:13+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-11-11T04:32:07+00:00" }, { "name": "editorconfig-checker/editorconfig-checker", - "version": "10.6.0", + "version": "10.7.0", "source": { "type": "git", "url": "https://github.com/editorconfig-checker/editorconfig-checker.php.git", - "reference": "c51272f825bf0aa02421d47825a8d5f1f2c15049" + "reference": "eb2581bee39d10e776e69048a88fb10a76a0cc9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/editorconfig-checker/editorconfig-checker.php/zipball/c51272f825bf0aa02421d47825a8d5f1f2c15049", - "reference": "c51272f825bf0aa02421d47825a8d5f1f2c15049", + "url": "https://api.github.com/repos/editorconfig-checker/editorconfig-checker.php/zipball/eb2581bee39d10e776e69048a88fb10a76a0cc9f", + "reference": "eb2581bee39d10e776e69048a88fb10a76a0cc9f", "shasum": "" }, "require": { @@ -773,7 +777,7 @@ "issues": "https://github.com/editorconfig-checker/editorconfig-checker.php/issues", "source": "https://github.com/editorconfig-checker/editorconfig-checker.php" }, - "time": "2024-03-04T12:55:53+00:00" + "time": "2025-03-17T14:59:08+00:00" }, { "name": "eftec/bladeone", @@ -835,16 +839,16 @@ }, { "name": "ergebnis/composer-normalize", - "version": "2.47.0", + "version": "2.48.2", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "ed24b9f8901f8fbafeca98f662eaca39427f0544" + "reference": "86dc9731b8320f49e9be9ad6d8e4de9b8b0e9b8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/ed24b9f8901f8fbafeca98f662eaca39427f0544", - "reference": "ed24b9f8901f8fbafeca98f662eaca39427f0544", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/86dc9731b8320f49e9be9ad6d8e4de9b8b0e9b8b", + "reference": "86dc9731b8320f49e9be9ad6d8e4de9b8b0e9b8b", "shasum": "" }, "require": { @@ -854,30 +858,31 @@ "ergebnis/json-printer": "^3.7.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", - "localheinz/diff": "^1.2.0", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "localheinz/diff": "^1.3.0", + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "composer/composer": "^2.8.3", - "ergebnis/license": "^2.6.0", - "ergebnis/php-cs-fixer-config": "^6.46.0", - "ergebnis/phpunit-slow-test-detector": "^2.19.1", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.53.0", + "ergebnis/phpstan-rules": "^2.11.0", + "ergebnis/phpunit-slow-test-detector": "^2.20.0", "fakerphp/faker": "^1.24.1", "infection/infection": "~0.26.6", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.1.11", - "phpstan/phpstan-deprecation-rules": "^2.0.1", - "phpstan/phpstan-phpunit": "^2.0.6", - "phpstan/phpstan-strict-rules": "^2.0.4", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.6", "phpunit/phpunit": "^9.6.20", - "rector/rector": "^2.0.11", + "rector/rector": "^2.1.4", "symfony/filesystem": "^5.4.41" }, "type": "composer-plugin", "extra": { "class": "Ergebnis\\Composer\\Normalize\\NormalizePlugin", "branch-alias": { - "dev-main": "2.44-dev" + "dev-main": "2.49-dev" }, "plugin-optional": true, "composer-normalize": { @@ -914,43 +919,48 @@ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/composer-normalize" }, - "time": "2025-04-15T11:09:27+00:00" + "time": "2025-09-06T11:42:34+00:00" }, { "name": "ergebnis/json", - "version": "1.4.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json.git", - "reference": "7656ac2aa6c2ca4408f96f599e9a17a22c464f69" + "reference": "7b56d2b5d9e897e75b43e2e753075a0904c921b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json/zipball/7656ac2aa6c2ca4408f96f599e9a17a22c464f69", - "reference": "7656ac2aa6c2ca4408f96f599e9a17a22c464f69", + "url": "https://api.github.com/repos/ergebnis/json/zipball/7b56d2b5d9e897e75b43e2e753075a0904c921b1", + "reference": "7b56d2b5d9e897e75b43e2e753075a0904c921b1", "shasum": "" }, "require": { "ext-json": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { + "ergebnis/composer-normalize": "^2.44.0", "ergebnis/data-provider": "^3.3.0", "ergebnis/license": "^2.5.0", "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpstan-rules": "^2.11.0", "ergebnis/phpunit-slow-test-detector": "^2.16.1", "fakerphp/faker": "^1.24.0", "infection/infection": "~0.26.6", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.10", - "phpstan/phpstan-deprecation-rules": "^1.2.1", - "phpstan/phpstan-phpunit": "^1.4.0", - "phpstan/phpstan-strict-rules": "^1.6.1", - "phpunit/phpunit": "^9.6.18", - "rector/rector": "^1.2.10" + "phpstan/phpstan": "^2.1.22", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.6", + "phpunit/phpunit": "^9.6.24", + "rector/rector": "^2.1.4" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "1.7-dev" + }, "composer-normalize": { "indent-size": 2, "indent-style": "space" @@ -982,20 +992,20 @@ "security": "https://github.com/ergebnis/json/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json" }, - "time": "2024-11-17T11:51:22+00:00" + "time": "2025-09-06T09:08:45+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "4.9.0", + "version": "4.10.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "cc4dcf3890448572a2d9bea97133c4d860e59fb1" + "reference": "77961faf2c651c3f05977b53c6c68e8434febf62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/cc4dcf3890448572a2d9bea97133c4d860e59fb1", - "reference": "cc4dcf3890448572a2d9bea97133c4d860e59fb1", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/77961faf2c651c3f05977b53c6c68e8434febf62", + "reference": "77961faf2c651c3f05977b53c6c68e8434febf62", "shasum": "" }, "require": { @@ -1005,7 +1015,7 @@ "ergebnis/json-schema-validator": "^4.2.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "composer/semver": "^3.4.3", @@ -1030,7 +1040,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.8-dev" + "dev-main": "4.11-dev" }, "composer-normalize": { "indent-size": 2, @@ -1064,24 +1074,24 @@ "security": "https://github.com/ergebnis/json-normalizer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-normalizer" }, - "time": "2025-04-10T13:13:04+00:00" + "time": "2025-09-06T09:18:13+00:00" }, { "name": "ergebnis/json-pointer", - "version": "3.6.0", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-pointer.git", - "reference": "4fc85d8edb74466d282119d8d9541ec7cffc0798" + "reference": "43bef355184e9542635e35dd2705910a3df4c236" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/4fc85d8edb74466d282119d8d9541ec7cffc0798", - "reference": "4fc85d8edb74466d282119d8d9541ec7cffc0798", + "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/43bef355184e9542635e35dd2705910a3df4c236", + "reference": "43bef355184e9542635e35dd2705910a3df4c236", "shasum": "" }, "require": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "ergebnis/composer-normalize": "^2.43.0", @@ -1102,7 +1112,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.8-dev" }, "composer-normalize": { "indent-size": 2, @@ -1137,28 +1147,29 @@ "security": "https://github.com/ergebnis/json-pointer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-pointer" }, - "time": "2024-11-17T12:37:06+00:00" + "time": "2025-09-06T09:28:19+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.7.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "ced41fce7854152f0e8f38793c2ffe59513cdd82" + "reference": "211d73fc7ec6daf98568ee6ed6e6d133dee8503e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/ced41fce7854152f0e8f38793c2ffe59513cdd82", - "reference": "ced41fce7854152f0e8f38793c2ffe59513cdd82", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/211d73fc7ec6daf98568ee6ed6e6d133dee8503e", + "reference": "211d73fc7ec6daf98568ee6ed6e6d133dee8503e", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { + "ergebnis/composer-normalize": "^2.44.0", "ergebnis/data-provider": "^3.3.0", "ergebnis/license": "^2.5.0", "ergebnis/php-cs-fixer-config": "^6.37.0", @@ -1174,6 +1185,15 @@ "rector/rector": "^1.2.10" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.9-dev" + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Ergebnis\\Json\\Printer\\": "src/" @@ -1202,20 +1222,20 @@ "security": "https://github.com/ergebnis/json-printer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-printer" }, - "time": "2024-11-17T11:20:51+00:00" + "time": "2025-09-06T09:59:26+00:00" }, { "name": "ergebnis/json-schema-validator", - "version": "4.4.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/ergebnis/json-schema-validator.git", - "reference": "85f90c81f718aebba1d738800af83eeb447dc7ec" + "reference": "b739527a480a9e3651360ad351ea77e7e9019df2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/85f90c81f718aebba1d738800af83eeb447dc7ec", - "reference": "85f90c81f718aebba1d738800af83eeb447dc7ec", + "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/b739527a480a9e3651360ad351ea77e7e9019df2", + "reference": "b739527a480a9e3651360ad351ea77e7e9019df2", "shasum": "" }, "require": { @@ -1223,7 +1243,7 @@ "ergebnis/json-pointer": "^3.4.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.12 || ^6.0.0", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "ergebnis/composer-normalize": "^2.44.0", @@ -1244,7 +1264,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.4-dev" + "dev-main": "4.6-dev" }, "composer-normalize": { "indent-size": 2, @@ -1279,7 +1299,7 @@ "security": "https://github.com/ergebnis/json-schema-validator/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-schema-validator" }, - "time": "2024-11-18T06:32:28+00:00" + "time": "2025-09-06T11:37:35+00:00" }, { "name": "gettext/gettext", @@ -1364,16 +1384,16 @@ }, { "name": "gettext/languages", - "version": "2.10.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/php-gettext/Languages.git", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab" + "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/0b0b0851c55168e1dfb14305735c64019732b5f1", + "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1", "shasum": "" }, "require": { @@ -1383,7 +1403,8 @@ "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" }, "bin": [ - "bin/export-plural-rules" + "bin/export-plural-rules", + "bin/import-cldr-data" ], "type": "library", "autoload": { @@ -1422,7 +1443,7 @@ ], "support": { "issues": "https://github.com/php-gettext/Languages/issues", - "source": "https://github.com/php-gettext/Languages/tree/2.10.0" + "source": "https://github.com/php-gettext/Languages/tree/2.12.1" }, "funding": [ { @@ -1434,34 +1455,44 @@ "type": "github" } ], - "time": "2022-10-18T15:00:10+00:00" + "time": "2025-03-19T11:14:02+00:00" }, { "name": "justinrainbow/json-schema", - "version": "5.3.0", + "version": "6.6.1", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" + "reference": "fd8e5c6b1badb998844ad34ce0abcd71a0aeb396" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", - "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/fd8e5c6b1badb998844ad34ce0abcd71a0aeb396", + "reference": "fd8e5c6b1badb998844ad34ce0abcd71a0aeb396", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-json": "*", + "marc-mabe/php-enum": "^4.0", + "php": "^7.2 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" + "friendsofphp/php-cs-fixer": "3.3.0", + "json-schema/json-schema-test-suite": "^23.2", + "marc-mabe/php-enum-phpstan": "^2.0", + "phpspec/prophecy": "^1.19", + "phpstan/phpstan": "^1.12", + "phpunit/phpunit": "^8.5" }, "bin": [ "bin/validate-json" ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + } + }, "autoload": { "psr-4": { "JsonSchema\\": "src/JsonSchema/" @@ -1490,33 +1521,33 @@ } ], "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", + "homepage": "https://github.com/jsonrainbow/json-schema", "keywords": [ "json", "schema" ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.6.1" }, - "time": "2024-07-06T21:00:26+00:00" + "time": "2025-11-07T18:30:29+00:00" }, { "name": "localheinz/diff", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/localheinz/diff.git", - "reference": "ec413943c2b518464865673fd5b38f7df867a010" + "reference": "33bd840935970cda6691c23fc7d94ae764c0734c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/localheinz/diff/zipball/ec413943c2b518464865673fd5b38f7df867a010", - "reference": "ec413943c2b518464865673fd5b38f7df867a010", + "url": "https://api.github.com/repos/localheinz/diff/zipball/33bd840935970cda6691c23fc7d94ae764c0734c", + "reference": "33bd840935970cda6691c23fc7d94ae764c0734c", "shasum": "" }, "require": { - "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "phpunit/phpunit": "^7.5.0 || ^8.5.23", @@ -1552,41 +1583,48 @@ ], "support": { "issues": "https://github.com/localheinz/diff/issues", - "source": "https://github.com/localheinz/diff/tree/1.2.0" + "source": "https://github.com/localheinz/diff/tree/1.3.0" }, - "time": "2024-12-04T14:16:01+00:00" + "time": "2025-08-30T09:44:18+00:00" }, { - "name": "mck89/peast", - "version": "v1.16.3", + "name": "marc-mabe/php-enum", + "version": "v4.7.2", "source": { "type": "git", - "url": "https://github.com/mck89/peast.git", - "reference": "645ec21b650bc2aced18285c85f220d22afc1430" + "url": "https://github.com/marc-mabe/php-enum.git", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mck89/peast/zipball/645ec21b650bc2aced18285c85f220d22afc1430", - "reference": "645ec21b650bc2aced18285c85f220d22afc1430", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": ">=5.4.0" + "ext-reflection": "*", + "php": "^7.1 | ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpbench/phpbench": "^0.16.10 || ^1.0.4", + "phpstan/phpstan": "^1.3.1", + "phpunit/phpunit": "^7.5.20 | ^8.5.22 | ^9.5.11", + "vimeo/psalm": "^4.17.0 | ^5.26.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.16.3-dev" + "dev-3.x": "3.2-dev", + "dev-master": "4.7-dev" } }, "autoload": { "psr-4": { - "Peast\\": "lib/Peast/" - } + "MabeEnum\\": "src/" + }, + "classmap": [ + "stubs/Stringable.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1594,79 +1632,95 @@ ], "authors": [ { - "name": "Marco Marchiò", - "email": "marco.mm89@gmail.com" + "name": "Marc Bennewitz", + "email": "dev@mabe.berlin", + "homepage": "https://mabe.berlin/", + "role": "Lead" } ], - "description": "Peast is PHP library that generates AST for JavaScript code", + "description": "Simple and fast implementation of enumerations with native PHP", + "homepage": "https://github.com/marc-mabe/php-enum", + "keywords": [ + "enum", + "enum-map", + "enum-set", + "enumeration", + "enumerator", + "enummap", + "enumset", + "map", + "set", + "type", + "type-hint", + "typehint" + ], "support": { - "issues": "https://github.com/mck89/peast/issues", - "source": "https://github.com/mck89/peast/tree/v1.16.3" + "issues": "https://github.com/marc-mabe/php-enum/issues", + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "time": "2024-07-23T14:00:32+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { - "name": "mustache/mustache", - "version": "v2.14.2", + "name": "mck89/peast", + "version": "v1.17.4", "source": { "type": "git", - "url": "https://github.com/bobthecow/mustache.php.git", - "reference": "e62b7c3849d22ec55f3ec425507bf7968193a6cb" + "url": "https://github.com/mck89/peast.git", + "reference": "c6a63f32410d2e4ee2cd20fe94b35af147fb852d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/mustache.php/zipball/e62b7c3849d22ec55f3ec425507bf7968193a6cb", - "reference": "e62b7c3849d22ec55f3ec425507bf7968193a6cb", + "url": "https://api.github.com/repos/mck89/peast/zipball/c6a63f32410d2e4ee2cd20fe94b35af147fb852d", + "reference": "c6a63f32410d2e4ee2cd20fe94b35af147fb852d", "shasum": "" }, "require": { - "php": ">=5.2.4" + "ext-mbstring": "*", + "php": ">=5.4.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~1.11", - "phpunit/phpunit": "~3.7|~4.0|~5.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17.4-dev" + } + }, "autoload": { - "psr-0": { - "Mustache": "src/" + "psr-4": { + "Peast\\": "lib/Peast/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "name": "Marco Marchiò", + "email": "marco.mm89@gmail.com" } ], - "description": "A Mustache implementation in PHP.", - "homepage": "https://github.com/bobthecow/mustache.php", - "keywords": [ - "mustache", - "templating" - ], + "description": "Peast is PHP library that generates AST for JavaScript code", "support": { - "issues": "https://github.com/bobthecow/mustache.php/issues", - "source": "https://github.com/bobthecow/mustache.php/tree/v2.14.2" + "issues": "https://github.com/mck89/peast/issues", + "source": "https://github.com/mck89/peast/tree/v1.17.4" }, - "time": "2022-08-23T13:07:01+00:00" + "time": "2025-10-10T12:53:17+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -1705,7 +1759,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -1713,7 +1767,7 @@ "type": "tidelift" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nb/oxymel", @@ -1762,16 +1816,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.4.0", + "version": "v5.6.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494" + "reference": "3a454ca033b9e06b63282ce19562e892747449bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", - "reference": "447a020a1f875a434d62f2a401f53b82a396e494", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb", "shasum": "" }, "require": { @@ -1790,7 +1844,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "5.x-dev" } }, "autoload": { @@ -1814,9 +1868,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" }, - "time": "2024-12-30T11:07:19+00:00" + "time": "2025-10-21T19:32:17+00:00" }, { "name": "phar-io/manifest", @@ -1938,16 +1992,16 @@ }, { "name": "php-stubs/woocommerce-stubs", - "version": "v9.5.0", + "version": "v10.3.5", "source": { "type": "git", "url": "https://github.com/php-stubs/woocommerce-stubs.git", - "reference": "813f3cad9892bd3b6ffae9334a4ccaa73692b439" + "reference": "4758987631eaa4cce89781bffb4ae7602d00a4cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/woocommerce-stubs/zipball/813f3cad9892bd3b6ffae9334a4ccaa73692b439", - "reference": "813f3cad9892bd3b6ffae9334a4ccaa73692b439", + "url": "https://api.github.com/repos/php-stubs/woocommerce-stubs/zipball/4758987631eaa4cce89781bffb4ae7602d00a4cd", + "reference": "4758987631eaa4cce89781bffb4ae7602d00a4cd", "shasum": "" }, "require": { @@ -1976,31 +2030,34 @@ ], "support": { "issues": "https://github.com/php-stubs/woocommerce-stubs/issues", - "source": "https://github.com/php-stubs/woocommerce-stubs/tree/v9.5.0" + "source": "https://github.com/php-stubs/woocommerce-stubs/tree/v10.3.5" }, - "time": "2024-12-17T03:31:31+00:00" + "time": "2025-11-13T23:04:57+00:00" }, { "name": "php-stubs/wordpress-stubs", - "version": "v6.7.2", + "version": "v6.8.3", "source": { "type": "git", "url": "https://github.com/php-stubs/wordpress-stubs.git", - "reference": "c04f96cb232fab12a3cbcccf5a47767f0665c3f4" + "reference": "abeb5a8b58fda7ac21f15ee596f302f2959a7114" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/c04f96cb232fab12a3cbcccf5a47767f0665c3f4", - "reference": "c04f96cb232fab12a3cbcccf5a47767f0665c3f4", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/abeb5a8b58fda7ac21f15ee596f302f2959a7114", + "reference": "abeb5a8b58fda7ac21f15ee596f302f2959a7114", "shasum": "" }, + "conflict": { + "phpdocumentor/reflection-docblock": "5.6.1" + }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0", - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^5.5", "php": "^7.4 || ^8.0", "php-stubs/generator": "^0.8.3", "phpdocumentor/reflection-docblock": "^5.4.1", - "phpstan/phpstan": "^1.11", + "phpstan/phpstan": "^2.1", "phpunit/phpunit": "^9.5", "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1", "wp-coding-standards/wpcs": "3.1.0 as 2.3.0" @@ -2024,9 +2081,9 @@ ], "support": { "issues": "https://github.com/php-stubs/wordpress-stubs/issues", - "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.7.2" + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.8.3" }, - "time": "2025-02-12T04:51:58+00:00" + "time": "2025-09-30T20:58:47+00:00" }, { "name": "phpcompatibility/php-compatibility", @@ -2092,16 +2149,16 @@ }, { "name": "phpcompatibility/phpcompatibility-paragonie", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git", - "reference": "293975b465e0e709b571cbf0c957c6c0a7b9a2ac" + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/293975b465e0e709b571cbf0c957c6c0a7b9a2ac", - "reference": "293975b465e0e709b571cbf0c957c6c0a7b9a2ac", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", + "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf", "shasum": "" }, "require": { @@ -2158,27 +2215,32 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" } ], - "time": "2024-04-24T21:30:46+00:00" + "time": "2025-09-19T17:43:28+00:00" }, { "name": "phpcompatibility/phpcompatibility-wp", - "version": "2.1.6", + "version": "2.1.8", "source": { "type": "git", "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git", - "reference": "80ccb1a7640995edf1b87a4409fa584cd5869469" + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/80ccb1a7640995edf1b87a4409fa584cd5869469", - "reference": "80ccb1a7640995edf1b87a4409fa584cd5869469", + "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa", + "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa", "shasum": "" }, "require": { "phpcompatibility/php-compatibility": "^9.0", - "phpcompatibility/phpcompatibility-paragonie": "^1.0" + "phpcompatibility/phpcompatibility-paragonie": "^1.0", + "squizlabs/php_codesniffer": "^3.3" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^1.0" @@ -2228,35 +2290,39 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcompatibility", + "type": "thanks_dev" } ], - "time": "2025-01-16T22:34:19+00:00" + "time": "2025-10-18T00:05:59+00:00" }, { "name": "phpcsstandards/phpcsextra", - "version": "1.2.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSExtra.git", - "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489" + "reference": "b598aa890815b8df16363271b659d73280129101" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", - "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/b598aa890815b8df16363271b659d73280129101", + "reference": "b598aa890815b8df16363271b659d73280129101", "shasum": "" }, "require": { "php": ">=5.4", - "phpcsstandards/phpcsutils": "^1.0.9", - "squizlabs/php_codesniffer": "^3.8.0" + "phpcsstandards/phpcsutils": "^1.2.0", + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.6", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", "phpcsstandards/phpcsdevtools": "^1.2.1", - "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "type": "phpcodesniffer-standard", "extra": { @@ -2306,35 +2372,39 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2023-12-08T16:49:07+00:00" + "time": "2025-11-12T23:06:57+00:00" }, { "name": "phpcsstandards/phpcsutils", - "version": "1.0.12", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHPCSUtils.git", - "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c" + "reference": "d71128c702c180ca3b27c761b6773f883394f162" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/87b233b00daf83fb70f40c9a28692be017ea7c6c", - "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c", + "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/d71128c702c180ca3b27c761b6773f883394f162", + "reference": "d71128c702c180ca3b27c761b6773f883394f162", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0", "php": ">=5.4", - "squizlabs/php_codesniffer": "^3.10.0 || 4.0.x-dev@dev" + "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1" }, "require-dev": { "ext-filter": "*", "php-parallel-lint/php-console-highlighter": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcsstandards/phpcsdevcs": "^1.1.6", - "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0" + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpcsstandards/phpcsdevcs": "^1.2.0", + "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0" }, "type": "phpcodesniffer-standard", "extra": { @@ -2371,6 +2441,7 @@ "phpcodesniffer-standard", "phpcs", "phpcs3", + "phpcs4", "standards", "static analysis", "tokens", @@ -2394,9 +2465,13 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-05-20T13:34:27+00:00" + "time": "2025-11-17T12:58:33+00:00" }, { "name": "phpstan/extension-installer", @@ -2448,30 +2523,30 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.33.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -2489,22 +2564,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" }, - "time": "2024-10-13T11:25:22+00:00" + "time": "2025-08-30T15:50:23+00:00" }, { "name": "phpstan/phpstan", - "version": "2.1.5", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "451b17f9665481ee502adc39be987cb71067ece2" - }, + "version": "2.1.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/451b17f9665481ee502adc39be987cb71067ece2", - "reference": "451b17f9665481ee502adc39be987cb71067ece2", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227", + "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227", "shasum": "" }, "require": { @@ -2549,25 +2619,25 @@ "type": "github" } ], - "time": "2025-02-13T12:49:56+00:00" + "time": "2025-11-11T15:18:17+00:00" }, { "name": "phpstan/phpstan-nette", - "version": "2.0.3", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-nette.git", - "reference": "4b291c9f4c41fed86f5a7e308f0ac6a6664839bf" + "reference": "aa6c413df9587c355a744c3a84ecf9736987b607" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-nette/zipball/4b291c9f4c41fed86f5a7e308f0ac6a6664839bf", - "reference": "4b291c9f4c41fed86f5a7e308f0ac6a6664839bf", + "url": "https://api.github.com/repos/phpstan/phpstan-nette/zipball/aa6c413df9587c355a744c3a84ecf9736987b607", + "reference": "aa6c413df9587c355a744c3a84ecf9736987b607", "shasum": "" }, "require": { "php": "^7.4 || ^8.0", - "phpstan/phpstan": "^2.1.3" + "phpstan/phpstan": "^2.1.12" }, "conflict": { "nette/application": "<2.3.0", @@ -2583,6 +2653,7 @@ "nette/forms": "^3.0", "nette/utils": "^2.3.0 || ^3.0.0", "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^9.6" @@ -2608,27 +2679,27 @@ "description": "Nette Framework class reflection extension for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-nette/issues", - "source": "https://github.com/phpstan/phpstan-nette/tree/2.0.3" + "source": "https://github.com/phpstan/phpstan-nette/tree/2.0.6" }, - "time": "2025-02-12T09:01:49+00:00" + "time": "2025-09-19T19:54:10+00:00" }, { "name": "phpstan/phpstan-strict-rules", - "version": "2.0.3", + "version": "2.0.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-strict-rules.git", - "reference": "8b88b5f818bfa301e0c99154ab622dace071c3ba" + "reference": "d6211c46213d4181054b3d77b10a5c5cb0d59538" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/8b88b5f818bfa301e0c99154ab622dace071c3ba", - "reference": "8b88b5f818bfa301e0c99154ab622dace071c3ba", + "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/d6211c46213d4181054b3d77b10a5c5cb0d59538", + "reference": "d6211c46213d4181054b3d77b10a5c5cb0d59538", "shasum": "" }, "require": { "php": "^7.4 || ^8.0", - "phpstan/phpstan": "^2.0.4" + "phpstan/phpstan": "^2.1.29" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", @@ -2656,9 +2727,9 @@ "description": "Extra strict and opinionated rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-strict-rules/issues", - "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.3" + "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.7" }, - "time": "2025-01-21T10:52:14+00:00" + "time": "2025-09-26T11:19:08+00:00" }, { "name": "phpunit/php-code-coverage", @@ -2983,16 +3054,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.45", + "version": "10.5.58", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8" + "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e24fb46da450d8e6a5788670513c1af1424f16ca", + "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca", "shasum": "" }, "require": { @@ -3002,7 +3073,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -3013,13 +3084,13 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", + "sebastian/comparator": "^5.0.4", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.2", + "sebastian/exporter": "^5.1.4", "sebastian/global-state": "^6.0.2", "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.0", + "sebastian/recursion-context": "^5.0.1", "sebastian/type": "^4.0.0", "sebastian/version": "^4.0.1" }, @@ -3064,7 +3135,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.58" }, "funding": [ { @@ -3075,12 +3146,20 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2025-02-06T16:08:12+00:00" + "time": "2025-09-28T12:04:46+00:00" }, { "name": "psr/container", @@ -3187,23 +3266,23 @@ }, { "name": "react/promise", - "version": "v3.2.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { "php": ">=7.1.0" }, "require-dev": { - "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpstan/phpstan": "1.12.28 || 1.4.10", "phpunit/phpunit": "^9.6 || ^7.5" }, "type": "library", @@ -3248,7 +3327,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.2.0" + "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { @@ -3256,7 +3335,7 @@ "type": "open_collective" } ], - "time": "2024-05-24T10:39:05+00:00" + "time": "2025-08-19T18:57:03+00:00" }, { "name": "sebastian/cli-parser", @@ -3428,16 +3507,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "5.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", "shasum": "" }, "require": { @@ -3493,15 +3572,27 @@ "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.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2025-09-07T05:25:07+00:00" }, { "name": "sebastian/complexity", @@ -3694,16 +3785,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.2", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + "reference": "0735b90f4da94969541dac1da743446e276defa6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", + "reference": "0735b90f4da94969541dac1da743446e276defa6", "shasum": "" }, "require": { @@ -3712,7 +3803,7 @@ "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -3760,15 +3851,27 @@ "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.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T07:17:12+00:00" + "time": "2025-09-24T06:09:11+00:00" }, { "name": "sebastian/global-state", @@ -4004,23 +4107,23 @@ }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -4055,15 +4158,28 @@ "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" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2025-08-10T07:50:56+00:00" }, { "name": "sebastian/type", @@ -4349,32 +4465,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.15.0", + "version": "8.22.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "7d1d957421618a3803b593ec31ace470177d7817" + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", - "reference": "7d1d957421618a3803b593ec31ace470177d7817", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/1dd80bf3b93692bedb21a6623c496887fad05fec", + "reference": "1dd80bf3b93692bedb21a6623c496887fad05fec", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.23.1", - "squizlabs/php_codesniffer": "^3.9.0" + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", + "php": "^7.4 || ^8.0", + "phpstan/phpdoc-parser": "^2.3.0", + "squizlabs/php_codesniffer": "^3.13.4" }, "require-dev": { - "phing/phing": "2.17.4", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.10.60", - "phpstan/phpstan-deprecation-rules": "1.1.4", - "phpstan/phpstan-phpunit": "1.3.16", - "phpstan/phpstan-strict-rules": "1.5.2", - "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + "phing/phing": "3.0.1|3.1.0", + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/phpstan": "2.1.24", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan-strict-rules": "2.0.6", + "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.10" }, "type": "phpcodesniffer-standard", "extra": { @@ -4398,7 +4514,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.22.1" }, "funding": [ { @@ -4410,20 +4526,20 @@ "type": "tidelift" } ], - "time": "2024-03-09T15:20:58+00:00" + "time": "2025-09-13T08:53:30+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.3", + "version": "3.13.5", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4", + "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4", "shasum": "" }, "require": { @@ -4440,11 +4556,6 @@ "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -4490,24 +4601,24 @@ "type": "open_collective" }, { - "url": "https://thanks.dev/phpcsstandards", + "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" } ], - "time": "2025-01-23T17:04:15+00:00" + "time": "2025-11-04T16:30:35+00:00" }, { "name": "symfony/console", - "version": "v6.4.17", + "version": "v6.4.27", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" + "reference": "13d3176cf8ad8ced24202844e9f95af11e2959fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", + "url": "https://api.github.com/repos/symfony/console/zipball/13d3176cf8ad8ced24202844e9f95af11e2959fc", + "reference": "13d3176cf8ad8ced24202844e9f95af11e2959fc", "shasum": "" }, "require": { @@ -4572,7 +4683,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.17" + "source": "https://github.com/symfony/console/tree/v6.4.27" }, "funding": [ { @@ -4583,25 +4694,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-12-07T12:07:30+00:00" + "time": "2025-10-06T10:25:16+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -4614,7 +4729,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -4639,7 +4754,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -4655,20 +4770,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" + "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", + "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", "shasum": "" }, "require": { @@ -4705,7 +4820,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" + "source": "https://github.com/symfony/filesystem/tree/v6.4.24" }, "funding": [ { @@ -4716,25 +4831,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/finder", - "version": "v6.4.17", + "version": "v6.4.27", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" + "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b6aa435d2fba50793b994a839c32b6064f063b", + "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b", "shasum": "" }, "require": { @@ -4769,7 +4888,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.17" + "source": "https://github.com/symfony/finder/tree/v6.4.27" }, "funding": [ { @@ -4780,16 +4899,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-12-29T13:51:37+00:00" + "time": "2025-10-15T18:32:00+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -4848,7 +4971,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -4859,6 +4982,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -4868,16 +4995,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -4926,7 +5053,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -4937,16 +5064,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -5007,7 +5138,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -5018,6 +5149,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5027,19 +5162,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -5087,7 +5223,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -5098,16 +5234,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -5163,7 +5303,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0" }, "funding": [ { @@ -5174,6 +5314,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5183,16 +5327,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -5243,7 +5387,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -5254,16 +5398,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -5319,7 +5467,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" }, "funding": [ { @@ -5330,6 +5478,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5339,16 +5491,16 @@ }, { "name": "symfony/process", - "version": "v6.4.15", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" + "reference": "48bad913268c8cafabbf7034b39c8bb24fbc5ab8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", - "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", + "url": "https://api.github.com/repos/symfony/process/zipball/48bad913268c8cafabbf7034b39c8bb24fbc5ab8", + "reference": "48bad913268c8cafabbf7034b39c8bb24fbc5ab8", "shasum": "" }, "require": { @@ -5380,7 +5532,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.15" + "source": "https://github.com/symfony/process/tree/v6.4.26" }, "funding": [ { @@ -5391,25 +5543,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.1", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -5427,7 +5583,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -5463,7 +5619,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -5474,25 +5630,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v6.4.15", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "url": "https://api.github.com/repos/symfony/string/zipball/5621f039a71a11c87c106c1c598bdcd04a19aeea", + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea", "shasum": "" }, "require": { @@ -5506,7 +5666,6 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", "symfony/http-client": "^5.4|^6.0|^7.0", "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -5549,7 +5708,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.15" + "source": "https://github.com/symfony/string/tree/v6.4.26" }, "funding": [ { @@ -5560,25 +5719,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-11-13T13:31:12+00:00" + "time": "2025-09-11T14:32:46+00:00" }, { "name": "szepeviktor/phpstan-wordpress", - "version": "v2.0.1", + "version": "v2.0.3", "source": { "type": "git", "url": "https://github.com/szepeviktor/phpstan-wordpress.git", - "reference": "f7beb13cd22998e3d913fdb897a1e2553ccd637e" + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/f7beb13cd22998e3d913fdb897a1e2553ccd637e", - "reference": "f7beb13cd22998e3d913fdb897a1e2553ccd637e", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/aa722f037b2d034828cd6c55ebe9e5c74961927e", + "reference": "aa722f037b2d034828cd6c55ebe9e5c74961927e", "shasum": "" }, "require": { @@ -5588,6 +5751,7 @@ }, "require-dev": { "composer/composer": "^2.1.14", + "composer/semver": "^3.4", "dealerdirect/phpcodesniffer-composer-installer": "^1.0", "php-parallel-lint/php-parallel-lint": "^1.1", "phpstan/phpstan-strict-rules": "^2.0", @@ -5625,22 +5789,22 @@ ], "support": { "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", - "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.1" + "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.3" }, - "time": "2024-12-01T02:13:05+00:00" + "time": "2025-09-14T02:58:22+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -5669,7 +5833,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -5677,20 +5841,20 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "woocommerce/woocommerce-sniffs", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/woocommerce/woocommerce-sniffs.git", - "reference": "3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8" + "reference": "e6da0c372573724806b270ec1d5d94988b8aec52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/woocommerce/woocommerce-sniffs/zipball/3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8", - "reference": "3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8", + "url": "https://api.github.com/repos/woocommerce/woocommerce-sniffs/zipball/e6da0c372573724806b270ec1d5d94988b8aec52", + "reference": "e6da0c372573724806b270ec1d5d94988b8aec52", "shasum": "" }, "require": { @@ -5714,26 +5878,26 @@ ], "support": { "issues": "https://github.com/woocommerce/woocommerce-sniffs/issues", - "source": "https://github.com/woocommerce/woocommerce-sniffs/tree/1.0.0" + "source": "https://github.com/woocommerce/woocommerce-sniffs/tree/1.0.1" }, - "time": "2023-09-29T13:52:33+00:00" + "time": "2025-09-03T13:34:27+00:00" }, { "name": "wp-cli/cache-command", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/wp-cli/cache-command.git", - "reference": "1dbb59e5ed126b9a2fa9d521d29910f3f4eb0f97" + "reference": "14f76b0bc8f9fa0a680e9c70e18fcf627774d055" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/cache-command/zipball/1dbb59e5ed126b9a2fa9d521d29910f3f4eb0f97", - "reference": "1dbb59e5ed126b9a2fa9d521d29910f3f4eb0f97", + "url": "https://api.github.com/repos/wp-cli/cache-command/zipball/14f76b0bc8f9fa0a680e9c70e18fcf627774d055", + "reference": "14f76b0bc8f9fa0a680e9c70e18fcf627774d055", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -5751,6 +5915,8 @@ "cache flush-group", "cache get", "cache incr", + "cache patch", + "cache pluck", "cache replace", "cache set", "cache supports", @@ -5758,9 +5924,11 @@ "transient", "transient delete", "transient get", + "transient list", + "transient patch", + "transient pluck", "transient set", - "transient type", - "transient list" + "transient type" ], "branch-alias": { "dev-main": "2.x-dev" @@ -5789,26 +5957,26 @@ "homepage": "https://github.com/wp-cli/cache-command", "support": { "issues": "https://github.com/wp-cli/cache-command/issues", - "source": "https://github.com/wp-cli/cache-command/tree/v2.1.3" + "source": "https://github.com/wp-cli/cache-command/tree/v2.2.0" }, - "time": "2024-04-26T14:54:22+00:00" + "time": "2025-05-06T01:43:20+00:00" }, { "name": "wp-cli/checksum-command", - "version": "v2.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/wp-cli/checksum-command.git", - "reference": "bc82cfb0b1e24eec99cd1bfa515a62c63bd46936" + "reference": "39992dbd66835f8d5c2cc5bfeacf9d2c450cbafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/checksum-command/zipball/bc82cfb0b1e24eec99cd1bfa515a62c63bd46936", - "reference": "bc82cfb0b1e24eec99cd1bfa515a62c63bd46936", + "url": "https://api.github.com/repos/wp-cli/checksum-command/zipball/39992dbd66835f8d5c2cc5bfeacf9d2c450cbafe", + "reference": "39992dbd66835f8d5c2cc5bfeacf9d2c450cbafe", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/extension-command": "^1.2 || ^2", @@ -5848,26 +6016,26 @@ "homepage": "https://github.com/wp-cli/checksum-command", "support": { "issues": "https://github.com/wp-cli/checksum-command/issues", - "source": "https://github.com/wp-cli/checksum-command/tree/v2.3.0" + "source": "https://github.com/wp-cli/checksum-command/tree/v2.3.1" }, - "time": "2024-10-01T21:53:46+00:00" + "time": "2025-04-10T11:02:20+00:00" }, { "name": "wp-cli/config-command", - "version": "v2.3.7", + "version": "v2.3.8", "source": { "type": "git", "url": "https://github.com/wp-cli/config-command.git", - "reference": "effb7898bc6ffdaf8a0666432f3c8e35b715858e" + "reference": "994b3dc9e8284fc978366920d5c5ae0dde3a004e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/config-command/zipball/effb7898bc6ffdaf8a0666432f3c8e35b715858e", - "reference": "effb7898bc6ffdaf8a0666432f3c8e35b715858e", + "url": "https://api.github.com/repos/wp-cli/config-command/zipball/994b3dc9e8284fc978366920d5c5ae0dde3a004e", + "reference": "994b3dc9e8284fc978366920d5c5ae0dde3a004e", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5", + "wp-cli/wp-cli": "^2.12", "wp-cli/wp-config-transformer": "^1.4.0" }, "require-dev": { @@ -5922,34 +6090,34 @@ "homepage": "https://github.com/wp-cli/config-command", "support": { "issues": "https://github.com/wp-cli/config-command/issues", - "source": "https://github.com/wp-cli/config-command/tree/v2.3.7" + "source": "https://github.com/wp-cli/config-command/tree/v2.3.8" }, - "time": "2024-10-01T10:19:18+00:00" + "time": "2025-04-11T09:37:43+00:00" }, { "name": "wp-cli/core-command", - "version": "v2.1.18", + "version": "v2.1.22", "source": { "type": "git", "url": "https://github.com/wp-cli/core-command.git", - "reference": "f7580f93fe66a5584fa7b7c42bd2c0c1435c9d2e" + "reference": "ac6f8d742808e11e349ce099c7de2fc3c7009b84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/core-command/zipball/f7580f93fe66a5584fa7b7c42bd2c0c1435c9d2e", - "reference": "f7580f93fe66a5584fa7b7c42bd2c0c1435c9d2e", + "url": "https://api.github.com/repos/wp-cli/core-command/zipball/ac6f8d742808e11e349ce099c7de2fc3c7009b84", + "reference": "ac6f8d742808e11e349ce099c7de2fc3c7009b84", "shasum": "" }, "require": { "composer/semver": "^1.4 || ^2 || ^3", - "wp-cli/wp-cli": "^2.5.1" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/checksum-command": "^1 || ^2", "wp-cli/db-command": "^1.3 || ^2", "wp-cli/entity-command": "^1.3 || ^2", "wp-cli/extension-command": "^1.2 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "wp-cli-package", "extra": { @@ -5993,26 +6161,26 @@ "homepage": "https://github.com/wp-cli/core-command", "support": { "issues": "https://github.com/wp-cli/core-command/issues", - "source": "https://github.com/wp-cli/core-command/tree/v2.1.18" + "source": "https://github.com/wp-cli/core-command/tree/v2.1.22" }, - "time": "2024-04-12T09:36:36+00:00" + "time": "2025-09-04T08:14:53+00:00" }, { "name": "wp-cli/cron-command", - "version": "v2.3.1", + "version": "v2.3.2", "source": { "type": "git", "url": "https://github.com/wp-cli/cron-command.git", - "reference": "46f849f2f0ba859c6acd356eefc76769c8381ae5" + "reference": "6f450028a75ebd275f12cad62959a0709bf3e7c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/cron-command/zipball/46f849f2f0ba859c6acd356eefc76769c8381ae5", - "reference": "46f849f2f0ba859c6acd356eefc76769c8381ae5", + "url": "https://api.github.com/repos/wp-cli/cron-command/zipball/6f450028a75ebd275f12cad62959a0709bf3e7c1", + "reference": "6f450028a75ebd275f12cad62959a0709bf3e7c1", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -6062,26 +6230,26 @@ "homepage": "https://github.com/wp-cli/cron-command", "support": { "issues": "https://github.com/wp-cli/cron-command/issues", - "source": "https://github.com/wp-cli/cron-command/tree/v2.3.1" + "source": "https://github.com/wp-cli/cron-command/tree/v2.3.2" }, - "time": "2024-10-01T10:30:28+00:00" + "time": "2025-04-02T11:55:20+00:00" }, { "name": "wp-cli/db-command", - "version": "v2.1.2", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/wp-cli/db-command.git", - "reference": "d4c0dd25ec8b3d0118a2400cf6b87e8d08b77c43" + "reference": "f857c91454d7092fa672bc388512a51752d9264a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/db-command/zipball/d4c0dd25ec8b3d0118a2400cf6b87e8d08b77c43", - "reference": "d4c0dd25ec8b3d0118a2400cf6b87e8d08b77c43", + "url": "https://api.github.com/repos/wp-cli/db-command/zipball/f857c91454d7092fa672bc388512a51752d9264a", + "reference": "f857c91454d7092fa672bc388512a51752d9264a", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -6136,26 +6304,26 @@ "homepage": "https://github.com/wp-cli/db-command", "support": { "issues": "https://github.com/wp-cli/db-command/issues", - "source": "https://github.com/wp-cli/db-command/tree/v2.1.2" + "source": "https://github.com/wp-cli/db-command/tree/v2.1.3" }, - "time": "2024-10-01T10:48:48+00:00" + "time": "2025-04-10T11:02:04+00:00" }, { "name": "wp-cli/embed-command", - "version": "v2.0.17", + "version": "v2.0.18", "source": { "type": "git", "url": "https://github.com/wp-cli/embed-command.git", - "reference": "ece56cafcb8ef0a05dac9e41b5ab852ecd57b02c" + "reference": "52f59a1dacf1d4a1c68fd685f27909e1f493816b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/embed-command/zipball/ece56cafcb8ef0a05dac9e41b5ab852ecd57b02c", - "reference": "ece56cafcb8ef0a05dac9e41b5ab852ecd57b02c", + "url": "https://api.github.com/repos/wp-cli/embed-command/zipball/52f59a1dacf1d4a1c68fd685f27909e1f493816b", + "reference": "52f59a1dacf1d4a1c68fd685f27909e1f493816b", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -6203,26 +6371,26 @@ "homepage": "https://github.com/wp-cli/embed-command", "support": { "issues": "https://github.com/wp-cli/embed-command/issues", - "source": "https://github.com/wp-cli/embed-command/tree/v2.0.17" + "source": "https://github.com/wp-cli/embed-command/tree/v2.0.18" }, - "time": "2024-10-01T10:30:42+00:00" + "time": "2025-04-10T11:01:32+00:00" }, { "name": "wp-cli/entity-command", - "version": "v2.8.2", + "version": "v2.8.4", "source": { "type": "git", "url": "https://github.com/wp-cli/entity-command.git", - "reference": "9dad0753ecba347d5fbdb6b80d01e38768bca4ea" + "reference": "213611f8ab619ca137d983e9b987f7fbf1ac21d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/entity-command/zipball/9dad0753ecba347d5fbdb6b80d01e38768bca4ea", - "reference": "9dad0753ecba347d5fbdb6b80d01e38768bca4ea", + "url": "https://api.github.com/repos/wp-cli/entity-command/zipball/213611f8ab619ca137d983e9b987f7fbf1ac21d4", + "reference": "213611f8ab619ca137d983e9b987f7fbf1ac21d4", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.11" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/cache-command": "^1 || ^2", @@ -6440,26 +6608,26 @@ "homepage": "https://github.com/wp-cli/entity-command", "support": { "issues": "https://github.com/wp-cli/entity-command/issues", - "source": "https://github.com/wp-cli/entity-command/tree/v2.8.2" + "source": "https://github.com/wp-cli/entity-command/tree/v2.8.4" }, - "time": "2024-10-01T10:44:33+00:00" + "time": "2025-05-06T16:12:49+00:00" }, { "name": "wp-cli/eval-command", - "version": "v2.2.5", + "version": "v2.2.6", "source": { "type": "git", "url": "https://github.com/wp-cli/eval-command.git", - "reference": "1fd2dc9ae74f5fcde7a9b861a1073d6f19952b74" + "reference": "20ec428a7b9bc604fab0bd33ee8fa20662650455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/1fd2dc9ae74f5fcde7a9b861a1073d6f19952b74", - "reference": "1fd2dc9ae74f5fcde7a9b861a1073d6f19952b74", + "url": "https://api.github.com/repos/wp-cli/eval-command/zipball/20ec428a7b9bc604fab0bd33ee8fa20662650455", + "reference": "20ec428a7b9bc604fab0bd33ee8fa20662650455", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/wp-cli-tests": "^4" @@ -6498,27 +6666,27 @@ "homepage": "https://github.com/wp-cli/eval-command", "support": { "issues": "https://github.com/wp-cli/eval-command/issues", - "source": "https://github.com/wp-cli/eval-command/tree/v2.2.5" + "source": "https://github.com/wp-cli/eval-command/tree/v2.2.6" }, - "time": "2024-10-01T10:30:51+00:00" + "time": "2024-11-24T17:28:06+00:00" }, { "name": "wp-cli/export-command", - "version": "v2.1.13", + "version": "v2.1.14", "source": { "type": "git", "url": "https://github.com/wp-cli/export-command.git", - "reference": "eeafa03095b80d2648d1a67b00c688be9d418aff" + "reference": "2af32bf12c1bccd6561a215dbbafc2f272647ee8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/export-command/zipball/eeafa03095b80d2648d1a67b00c688be9d418aff", - "reference": "eeafa03095b80d2648d1a67b00c688be9d418aff", + "url": "https://api.github.com/repos/wp-cli/export-command/zipball/2af32bf12c1bccd6561a215dbbafc2f272647ee8", + "reference": "2af32bf12c1bccd6561a215dbbafc2f272647ee8", "shasum": "" }, "require": { "nb/oxymel": "~0.1.0", - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/db-command": "^1.3 || ^2", @@ -6561,34 +6729,34 @@ "homepage": "https://github.com/wp-cli/export-command", "support": { "issues": "https://github.com/wp-cli/export-command/issues", - "source": "https://github.com/wp-cli/export-command/tree/v2.1.13" + "source": "https://github.com/wp-cli/export-command/tree/v2.1.14" }, - "time": "2024-10-01T10:31:03+00:00" + "time": "2025-04-02T15:29:08+00:00" }, { "name": "wp-cli/extension-command", - "version": "v2.1.23", + "version": "v2.1.24", "source": { "type": "git", "url": "https://github.com/wp-cli/extension-command.git", - "reference": "c307a11e7ea078cfd52177eefeef9906aa69edcd" + "reference": "d21a2f504ac43a86b6b08697669b5b0844748133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/extension-command/zipball/c307a11e7ea078cfd52177eefeef9906aa69edcd", - "reference": "c307a11e7ea078cfd52177eefeef9906aa69edcd", + "url": "https://api.github.com/repos/wp-cli/extension-command/zipball/d21a2f504ac43a86b6b08697669b5b0844748133", + "reference": "d21a2f504ac43a86b6b08697669b5b0844748133", "shasum": "" }, "require": { "composer/semver": "^1.4 || ^2 || ^3", - "wp-cli/wp-cli": "^2.10" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/cache-command": "^2.0", "wp-cli/entity-command": "^1.3 || ^2", "wp-cli/language-command": "^2.0", "wp-cli/scaffold-command": "^1.2 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^4.3.7" }, "type": "wp-cli-package", "extra": { @@ -6659,33 +6827,33 @@ "homepage": "https://github.com/wp-cli/extension-command", "support": { "issues": "https://github.com/wp-cli/extension-command/issues", - "source": "https://github.com/wp-cli/extension-command/tree/v2.1.23" + "source": "https://github.com/wp-cli/extension-command/tree/v2.1.24" }, - "time": "2024-10-01T10:44:18+00:00" + "time": "2025-05-06T19:17:53+00:00" }, { "name": "wp-cli/i18n-command", - "version": "v2.6.3", + "version": "v2.6.5", "source": { "type": "git", "url": "https://github.com/wp-cli/i18n-command.git", - "reference": "065bb3758fcbff922f1b7a01ab702aab0da79803" + "reference": "5e73d417398993625331a9f69f6c2ef60f234070" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/065bb3758fcbff922f1b7a01ab702aab0da79803", - "reference": "065bb3758fcbff922f1b7a01ab702aab0da79803", + "url": "https://api.github.com/repos/wp-cli/i18n-command/zipball/5e73d417398993625331a9f69f6c2ef60f234070", + "reference": "5e73d417398993625331a9f69f6c2ef60f234070", "shasum": "" }, "require": { "eftec/bladeone": "3.52", "gettext/gettext": "^4.8", "mck89/peast": "^1.13.11", - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/scaffold-command": "^1.2 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^4.3.9" }, "suggest": { "ext-json": "Used for reading and generating JSON translation files", @@ -6728,26 +6896,26 @@ "homepage": "https://github.com/wp-cli/i18n-command", "support": { "issues": "https://github.com/wp-cli/i18n-command/issues", - "source": "https://github.com/wp-cli/i18n-command/tree/v2.6.3" + "source": "https://github.com/wp-cli/i18n-command/tree/v2.6.5" }, - "time": "2024-10-01T11:16:25+00:00" + "time": "2025-04-25T21:49:29+00:00" }, { "name": "wp-cli/import-command", - "version": "v2.0.13", + "version": "v2.0.14", "source": { "type": "git", "url": "https://github.com/wp-cli/import-command.git", - "reference": "22f32451046c1d8e7963ff96d95942af14fbb4e9" + "reference": "b2c48f3e51683e825738df62bf8ccc7004c5f0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/import-command/zipball/22f32451046c1d8e7963ff96d95942af14fbb4e9", - "reference": "22f32451046c1d8e7963ff96d95942af14fbb4e9", + "url": "https://api.github.com/repos/wp-cli/import-command/zipball/b2c48f3e51683e825738df62bf8ccc7004c5f0f9", + "reference": "b2c48f3e51683e825738df62bf8ccc7004c5f0f9", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -6788,32 +6956,32 @@ "homepage": "https://github.com/wp-cli/import-command", "support": { "issues": "https://github.com/wp-cli/import-command/issues", - "source": "https://github.com/wp-cli/import-command/tree/v2.0.13" + "source": "https://github.com/wp-cli/import-command/tree/v2.0.14" }, - "time": "2024-10-01T10:44:58+00:00" + "time": "2025-04-02T16:47:25+00:00" }, { "name": "wp-cli/language-command", - "version": "v2.0.22", + "version": "v2.0.25", "source": { "type": "git", "url": "https://github.com/wp-cli/language-command.git", - "reference": "27db28eca5f7627c7fbd8da82c6c51eb05e7858e" + "reference": "ad1bbfbf2699eff415436a00bb4195900fa1cfe5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/language-command/zipball/27db28eca5f7627c7fbd8da82c6c51eb05e7858e", - "reference": "27db28eca5f7627c7fbd8da82c6c51eb05e7858e", + "url": "https://api.github.com/repos/wp-cli/language-command/zipball/ad1bbfbf2699eff415436a00bb4195900fa1cfe5", + "reference": "ad1bbfbf2699eff415436a00bb4195900fa1cfe5", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/db-command": "^1.3 || ^2", "wp-cli/entity-command": "^1.3 || ^2", "wp-cli/extension-command": "^1.2 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "wp-cli-package", "extra": { @@ -6868,26 +7036,26 @@ "homepage": "https://github.com/wp-cli/language-command", "support": { "issues": "https://github.com/wp-cli/language-command/issues", - "source": "https://github.com/wp-cli/language-command/tree/v2.0.22" + "source": "https://github.com/wp-cli/language-command/tree/v2.0.25" }, - "time": "2024-10-01T10:45:06+00:00" + "time": "2025-09-04T10:30:12+00:00" }, { "name": "wp-cli/maintenance-mode-command", - "version": "v2.1.2", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/wp-cli/maintenance-mode-command.git", - "reference": "d560d7f42fb21e1fc182d69e0cdf06c69891791d" + "reference": "b947e094e00b7b68c6376ec9bd03303515864062" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/maintenance-mode-command/zipball/d560d7f42fb21e1fc182d69e0cdf06c69891791d", - "reference": "d560d7f42fb21e1fc182d69e0cdf06c69891791d", + "url": "https://api.github.com/repos/wp-cli/maintenance-mode-command/zipball/b947e094e00b7b68c6376ec9bd03303515864062", + "reference": "b947e094e00b7b68c6376ec9bd03303515864062", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/wp-cli-tests": "^4" @@ -6929,26 +7097,26 @@ "homepage": "https://github.com/wp-cli/maintenance-mode-command", "support": { "issues": "https://github.com/wp-cli/maintenance-mode-command/issues", - "source": "https://github.com/wp-cli/maintenance-mode-command/tree/v2.1.2" + "source": "https://github.com/wp-cli/maintenance-mode-command/tree/v2.1.3" }, - "time": "2024-10-01T10:45:18+00:00" + "time": "2024-11-24T17:26:30+00:00" }, { "name": "wp-cli/media-command", - "version": "v2.2.1", + "version": "v2.2.2", "source": { "type": "git", "url": "https://github.com/wp-cli/media-command.git", - "reference": "5e2d34d7d01c87d1f50b4838512b3501f5ca6f9a" + "reference": "a810ea0e68473fce6a234e67c6c5f19bb820a753" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/media-command/zipball/5e2d34d7d01c87d1f50b4838512b3501f5ca6f9a", - "reference": "5e2d34d7d01c87d1f50b4838512b3501f5ca6f9a", + "url": "https://api.github.com/repos/wp-cli/media-command/zipball/a810ea0e68473fce6a234e67c6c5f19bb820a753", + "reference": "a810ea0e68473fce6a234e67c6c5f19bb820a753", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -6991,9 +7159,61 @@ "homepage": "https://github.com/wp-cli/media-command", "support": { "issues": "https://github.com/wp-cli/media-command/issues", - "source": "https://github.com/wp-cli/media-command/tree/v2.2.1" + "source": "https://github.com/wp-cli/media-command/tree/v2.2.2" }, - "time": "2024-10-01T10:45:30+00:00" + "time": "2025-04-11T09:28:29+00:00" + }, + { + "name": "wp-cli/mustache", + "version": "v2.14.99", + "source": { + "type": "git", + "url": "https://github.com/wp-cli/mustache.php.git", + "reference": "ca23b97ac35fbe01c160549eb634396183d04a59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-cli/mustache.php/zipball/ca23b97ac35fbe01c160549eb634396183d04a59", + "reference": "ca23b97ac35fbe01c160549eb634396183d04a59", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "replace": { + "mustache/mustache": "^2.14.2" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.19.3", + "yoast/phpunit-polyfills": "^2.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Mustache": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "A Mustache implementation in PHP.", + "homepage": "https://github.com/bobthecow/mustache.php", + "keywords": [ + "mustache", + "templating" + ], + "support": { + "source": "https://github.com/wp-cli/mustache.php/tree/v2.14.99" + }, + "time": "2025-05-06T16:15:37+00:00" }, { "name": "wp-cli/mustangostang-spyc", @@ -7048,26 +7268,26 @@ }, { "name": "wp-cli/package-command", - "version": "v2.5.3", + "version": "v2.6.1", "source": { "type": "git", "url": "https://github.com/wp-cli/package-command.git", - "reference": "9dc4084c66547049ab863e293f427f8c0d099b18" + "reference": "17ede348446844c20da199683e96f7a3e70c5559" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/package-command/zipball/9dc4084c66547049ab863e293f427f8c0d099b18", - "reference": "9dc4084c66547049ab863e293f427f8c0d099b18", + "url": "https://api.github.com/repos/wp-cli/package-command/zipball/17ede348446844c20da199683e96f7a3e70c5559", + "reference": "17ede348446844c20da199683e96f7a3e70c5559", "shasum": "" }, "require": { - "composer/composer": "^1.10.23 || ^2.2.17", + "composer/composer": "^2.2.25", "ext-json": "*", - "wp-cli/wp-cli": "^2.8" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/scaffold-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "wp-cli-package", "extra": { @@ -7107,35 +7327,35 @@ "homepage": "https://github.com/wp-cli/package-command", "support": { "issues": "https://github.com/wp-cli/package-command/issues", - "source": "https://github.com/wp-cli/package-command/tree/v2.5.3" + "source": "https://github.com/wp-cli/package-command/tree/v2.6.1" }, - "time": "2024-10-01T11:13:44+00:00" + "time": "2025-08-25T13:32:31+00:00" }, { "name": "wp-cli/php-cli-tools", - "version": "v0.11.22", + "version": "v0.12.6", "source": { "type": "git", "url": "https://github.com/wp-cli/php-cli-tools.git", - "reference": "a6bb94664ca36d0962f9c2ff25591c315a550c51" + "reference": "f12b650d3738e471baed6dd47982d53c5c0ab1c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/a6bb94664ca36d0962f9c2ff25591c315a550c51", - "reference": "a6bb94664ca36d0962f9c2ff25591c315a550c51", + "url": "https://api.github.com/repos/wp-cli/php-cli-tools/zipball/f12b650d3738e471baed6dd47982d53c5c0ab1c3", + "reference": "f12b650d3738e471baed6dd47982d53c5c0ab1c3", "shasum": "" }, "require": { - "php": ">= 5.3.0" + "php": ">= 7.2.24" }, "require-dev": { "roave/security-advisories": "dev-latest", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.11.x-dev" + "dev-master": "0.12.x-dev" } }, "autoload": { @@ -7170,26 +7390,26 @@ ], "support": { "issues": "https://github.com/wp-cli/php-cli-tools/issues", - "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.11.22" + "source": "https://github.com/wp-cli/php-cli-tools/tree/v0.12.6" }, - "time": "2023-12-03T19:25:05+00:00" + "time": "2025-09-11T12:43:04+00:00" }, { "name": "wp-cli/rewrite-command", - "version": "v2.0.14", + "version": "v2.0.15", "source": { "type": "git", "url": "https://github.com/wp-cli/rewrite-command.git", - "reference": "0dd0d11918eaaf2fcad5bc13646ecf266ffa83e9" + "reference": "277ec689b7c268680ff429f52558508622c9b34c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/rewrite-command/zipball/0dd0d11918eaaf2fcad5bc13646ecf266ffa83e9", - "reference": "0dd0d11918eaaf2fcad5bc13646ecf266ffa83e9", + "url": "https://api.github.com/repos/wp-cli/rewrite-command/zipball/277ec689b7c268680ff429f52558508622c9b34c", + "reference": "277ec689b7c268680ff429f52558508622c9b34c", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -7231,26 +7451,26 @@ "homepage": "https://github.com/wp-cli/rewrite-command", "support": { "issues": "https://github.com/wp-cli/rewrite-command/issues", - "source": "https://github.com/wp-cli/rewrite-command/tree/v2.0.14" + "source": "https://github.com/wp-cli/rewrite-command/tree/v2.0.15" }, - "time": "2024-10-01T10:45:45+00:00" + "time": "2025-04-02T12:09:09+00:00" }, { "name": "wp-cli/role-command", - "version": "v2.0.15", + "version": "v2.0.16", "source": { "type": "git", "url": "https://github.com/wp-cli/role-command.git", - "reference": "f92efbf92a0bb4b34e1de9523d9cbd393d406ba2" + "reference": "ed57fb5436b4d47954b07e56c734d19deb4fc491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/role-command/zipball/f92efbf92a0bb4b34e1de9523d9cbd393d406ba2", - "reference": "f92efbf92a0bb4b34e1de9523d9cbd393d406ba2", + "url": "https://api.github.com/repos/wp-cli/role-command/zipball/ed57fb5436b4d47954b07e56c734d19deb4fc491", + "reference": "ed57fb5436b4d47954b07e56c734d19deb4fc491", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/wp-cli-tests": "^4" @@ -7297,30 +7517,30 @@ "homepage": "https://github.com/wp-cli/role-command", "support": { "issues": "https://github.com/wp-cli/role-command/issues", - "source": "https://github.com/wp-cli/role-command/tree/v2.0.15" + "source": "https://github.com/wp-cli/role-command/tree/v2.0.16" }, - "time": "2024-10-01T10:46:02+00:00" + "time": "2025-04-02T12:24:15+00:00" }, { "name": "wp-cli/scaffold-command", - "version": "v2.4.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/wp-cli/scaffold-command.git", - "reference": "d67d8348f653d00438535ec4389ab9259ef6fb8f" + "reference": "cd1e49a393b1af4eee4f5ccc3ac562862c65ccdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/d67d8348f653d00438535ec4389ab9259ef6fb8f", - "reference": "d67d8348f653d00438535ec4389ab9259ef6fb8f", + "url": "https://api.github.com/repos/wp-cli/scaffold-command/zipball/cd1e49a393b1af4eee4f5ccc3ac562862c65ccdf", + "reference": "cd1e49a393b1af4eee4f5ccc3ac562862c65ccdf", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/extension-command": "^1.2 || ^2", - "wp-cli/wp-cli-tests": "^4" + "wp-cli/wp-cli-tests": "^5" }, "type": "wp-cli-package", "extra": { @@ -7363,26 +7583,26 @@ "homepage": "https://github.com/wp-cli/scaffold-command", "support": { "issues": "https://github.com/wp-cli/scaffold-command/issues", - "source": "https://github.com/wp-cli/scaffold-command/tree/v2.4.0" + "source": "https://github.com/wp-cli/scaffold-command/tree/v2.5.1" }, - "time": "2024-10-01T11:13:37+00:00" + "time": "2025-09-05T04:13:09+00:00" }, { "name": "wp-cli/search-replace-command", - "version": "v2.1.7", + "version": "v2.1.8", "source": { "type": "git", "url": "https://github.com/wp-cli/search-replace-command.git", - "reference": "89e1653c9b888179a121a8354c75fc5e8ca7931d" + "reference": "65397a7bfdd5ba2cff26f3ab03ef0bcb916c0057" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/89e1653c9b888179a121a8354c75fc5e8ca7931d", - "reference": "89e1653c9b888179a121a8354c75fc5e8ca7931d", + "url": "https://api.github.com/repos/wp-cli/search-replace-command/zipball/65397a7bfdd5ba2cff26f3ab03ef0bcb916c0057", + "reference": "65397a7bfdd5ba2cff26f3ab03ef0bcb916c0057", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/db-command": "^1.3 || ^2", @@ -7423,26 +7643,26 @@ "homepage": "https://github.com/wp-cli/search-replace-command", "support": { "issues": "https://github.com/wp-cli/search-replace-command/issues", - "source": "https://github.com/wp-cli/search-replace-command/tree/v2.1.7" + "source": "https://github.com/wp-cli/search-replace-command/tree/v2.1.8" }, - "time": "2024-06-28T09:30:38+00:00" + "time": "2025-04-02T13:07:50+00:00" }, { "name": "wp-cli/server-command", - "version": "v2.0.14", + "version": "v2.0.15", "source": { "type": "git", "url": "https://github.com/wp-cli/server-command.git", - "reference": "012e10d3281866235cbf626f38a27169d6c6e13b" + "reference": "80a9243f94e0ac073f9bfdb516d2ac7e1fa01a71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/server-command/zipball/012e10d3281866235cbf626f38a27169d6c6e13b", - "reference": "012e10d3281866235cbf626f38a27169d6c6e13b", + "url": "https://api.github.com/repos/wp-cli/server-command/zipball/80a9243f94e0ac073f9bfdb516d2ac7e1fa01a71", + "reference": "80a9243f94e0ac073f9bfdb516d2ac7e1fa01a71", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^2", @@ -7481,26 +7701,26 @@ "homepage": "https://github.com/wp-cli/server-command", "support": { "issues": "https://github.com/wp-cli/server-command/issues", - "source": "https://github.com/wp-cli/server-command/tree/v2.0.14" + "source": "https://github.com/wp-cli/server-command/tree/v2.0.15" }, - "time": "2024-10-01T10:46:38+00:00" + "time": "2025-04-10T11:03:13+00:00" }, { "name": "wp-cli/shell-command", - "version": "v2.0.15", + "version": "v2.0.16", "source": { "type": "git", "url": "https://github.com/wp-cli/shell-command.git", - "reference": "2c38ef12a912b23224c7f2abd5bc716a889340fb" + "reference": "3af53a9f4b240e03e77e815b2ee10f229f1aa591" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/shell-command/zipball/2c38ef12a912b23224c7f2abd5bc716a889340fb", - "reference": "2c38ef12a912b23224c7f2abd5bc716a889340fb", + "url": "https://api.github.com/repos/wp-cli/shell-command/zipball/3af53a9f4b240e03e77e815b2ee10f229f1aa591", + "reference": "3af53a9f4b240e03e77e815b2ee10f229f1aa591", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/wp-cli-tests": "^4" @@ -7538,26 +7758,26 @@ "homepage": "https://github.com/wp-cli/shell-command", "support": { "issues": "https://github.com/wp-cli/shell-command/issues", - "source": "https://github.com/wp-cli/shell-command/tree/v2.0.15" + "source": "https://github.com/wp-cli/shell-command/tree/v2.0.16" }, - "time": "2024-10-01T10:46:50+00:00" + "time": "2025-04-11T09:39:33+00:00" }, { "name": "wp-cli/super-admin-command", - "version": "v2.0.15", + "version": "v2.0.16", "source": { "type": "git", "url": "https://github.com/wp-cli/super-admin-command.git", - "reference": "ecd9cee09918eb34f60c05944cc188f4916cb026" + "reference": "54ac063c384743ee414806d42cb8c61c6aa1fa8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/super-admin-command/zipball/ecd9cee09918eb34f60c05944cc188f4916cb026", - "reference": "ecd9cee09918eb34f60c05944cc188f4916cb026", + "url": "https://api.github.com/repos/wp-cli/super-admin-command/zipball/54ac063c384743ee414806d42cb8c61c6aa1fa8e", + "reference": "54ac063c384743ee414806d42cb8c61c6aa1fa8e", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/entity-command": "^1.3 || ^2", @@ -7599,26 +7819,26 @@ "homepage": "https://github.com/wp-cli/super-admin-command", "support": { "issues": "https://github.com/wp-cli/super-admin-command/issues", - "source": "https://github.com/wp-cli/super-admin-command/tree/v2.0.15" + "source": "https://github.com/wp-cli/super-admin-command/tree/v2.0.16" }, - "time": "2024-10-01T10:48:29+00:00" + "time": "2025-04-02T13:07:32+00:00" }, { "name": "wp-cli/widget-command", - "version": "v2.1.11", + "version": "v2.1.12", "source": { "type": "git", "url": "https://github.com/wp-cli/widget-command.git", - "reference": "c50cd32e4e3d16bf29821ae0208b7154ef6f9031" + "reference": "73084053f7b32d92583e44d870b81f287beea6a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/widget-command/zipball/c50cd32e4e3d16bf29821ae0208b7154ef6f9031", - "reference": "c50cd32e4e3d16bf29821ae0208b7154ef6f9031", + "url": "https://api.github.com/repos/wp-cli/widget-command/zipball/73084053f7b32d92583e44d870b81f287beea6a9", + "reference": "73084053f7b32d92583e44d870b81f287beea6a9", "shasum": "" }, "require": { - "wp-cli/wp-cli": "^2.5" + "wp-cli/wp-cli": "^2.12" }, "require-dev": { "wp-cli/extension-command": "^1.2 || ^2", @@ -7666,39 +7886,38 @@ "homepage": "https://github.com/wp-cli/widget-command", "support": { "issues": "https://github.com/wp-cli/widget-command/issues", - "source": "https://github.com/wp-cli/widget-command/tree/v2.1.11" + "source": "https://github.com/wp-cli/widget-command/tree/v2.1.12" }, - "time": "2024-10-01T10:48:21+00:00" + "time": "2025-04-11T09:29:37+00:00" }, { "name": "wp-cli/wp-cli", - "version": "v2.11.0", + "version": "v2.12.0", "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "53f0df112901fcf95099d0f501912a209429b6a9" + "reference": "03d30d4138d12b4bffd8b507b82e56e129e0523f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/53f0df112901fcf95099d0f501912a209429b6a9", - "reference": "53f0df112901fcf95099d0f501912a209429b6a9", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/03d30d4138d12b4bffd8b507b82e56e129e0523f", + "reference": "03d30d4138d12b4bffd8b507b82e56e129e0523f", "shasum": "" }, "require": { "ext-curl": "*", - "mustache/mustache": "^2.14.1", "php": "^5.6 || ^7.0 || ^8.0", "symfony/finder": ">2.7", + "wp-cli/mustache": "^2.14.99", "wp-cli/mustangostang-spyc": "^0.6.3", - "wp-cli/php-cli-tools": "~0.11.2" + "wp-cli/php-cli-tools": "~0.12.4" }, "require-dev": { - "roave/security-advisories": "dev-latest", "wp-cli/db-command": "^1.3 || ^2", "wp-cli/entity-command": "^1.2 || ^2", "wp-cli/extension-command": "^1.1 || ^2", "wp-cli/package-command": "^1 || ^2", - "wp-cli/wp-cli-tests": "^4.0.1" + "wp-cli/wp-cli-tests": "^4.3.10" }, "suggest": { "ext-readline": "Include for a better --prompt implementation", @@ -7711,7 +7930,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.11.x-dev" + "dev-main": "2.12.x-dev" } }, "autoload": { @@ -7738,7 +7957,7 @@ "issues": "https://github.com/wp-cli/wp-cli/issues", "source": "https://github.com/wp-cli/wp-cli" }, - "time": "2024-08-08T03:04:55+00:00" + "time": "2025-05-07T01:16:12+00:00" }, { "name": "wp-cli/wp-cli-bundle", @@ -7815,16 +8034,16 @@ }, { "name": "wp-cli/wp-config-transformer", - "version": "v1.4.1", + "version": "v1.4.2", "source": { "type": "git", "url": "https://github.com/wp-cli/wp-config-transformer.git", - "reference": "9da378b5a4e28bba3bce4ff4ff04a54d8c9f1a01" + "reference": "b78cab1159b43eb5ee097e2cfafe5eab573d2a8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-config-transformer/zipball/9da378b5a4e28bba3bce4ff4ff04a54d8c9f1a01", - "reference": "9da378b5a4e28bba3bce4ff4ff04a54d8c9f1a01", + "url": "https://api.github.com/repos/wp-cli/wp-config-transformer/zipball/b78cab1159b43eb5ee097e2cfafe5eab573d2a8a", + "reference": "b78cab1159b43eb5ee097e2cfafe5eab573d2a8a", "shasum": "" }, "require": { @@ -7858,22 +8077,22 @@ "homepage": "https://github.com/wp-cli/wp-config-transformer", "support": { "issues": "https://github.com/wp-cli/wp-config-transformer/issues", - "source": "https://github.com/wp-cli/wp-config-transformer/tree/v1.4.1" + "source": "https://github.com/wp-cli/wp-config-transformer/tree/v1.4.2" }, - "time": "2024-10-16T12:50:47+00:00" + "time": "2025-03-31T08:37:05+00:00" }, { "name": "wp-coding-standards/wpcs", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7" + "reference": "d2421de7cec3274ae622c22c744de9a62c7925af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7", - "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/d2421de7cec3274ae622c22c744de9a62c7925af", + "reference": "d2421de7cec3274ae622c22c744de9a62c7925af", "shasum": "" }, "require": { @@ -7882,13 +8101,13 @@ "ext-tokenizer": "*", "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.2.1", - "phpcsstandards/phpcsutils": "^1.0.10", - "squizlabs/php_codesniffer": "^3.9.0" + "phpcsstandards/phpcsextra": "^1.4.0", + "phpcsstandards/phpcsutils": "^1.1.0", + "squizlabs/php_codesniffer": "^3.13.0" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", - "php-parallel-lint/php-parallel-lint": "^1.3.2", + "php-parallel-lint/php-parallel-lint": "^1.4.0", "phpcompatibility/php-compatibility": "^9.0", "phpcsstandards/phpcsdevtools": "^1.2.0", "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" @@ -7926,7 +8145,7 @@ "type": "custom" } ], - "time": "2024-03-25T16:39:00+00:00" + "time": "2025-07-24T20:08:31+00:00" }, { "name": "wpify/php-scoper", @@ -7967,16 +8186,16 @@ }, { "name": "wpify/scoper", - "version": "3.2.13", + "version": "3.2.21", "source": { "type": "git", "url": "https://github.com/wpify/scoper.git", - "reference": "6f8ab7091235eca9ed49c1f57d0c205dca013a14" + "reference": "b00d52321d244beb6668d8d07c3b431e0a713b70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wpify/scoper/zipball/6f8ab7091235eca9ed49c1f57d0c205dca013a14", - "reference": "6f8ab7091235eca9ed49c1f57d0c205dca013a14", + "url": "https://api.github.com/repos/wpify/scoper/zipball/b00d52321d244beb6668d8d07c3b431e0a713b70", + "reference": "b00d52321d244beb6668d8d07c3b431e0a713b70", "shasum": "" }, "require": { @@ -7986,12 +8205,13 @@ "wpify/php-scoper": "^0.18" }, "require-dev": { - "jetbrains/phpstorm-stubs": "^v2023.3", - "johnpbloch/wordpress": "^6.4", - "nikic/php-parser": "^v4.17", - "woocommerce/action-scheduler": "^3.7.2", - "wpackagist-plugin/woocommerce": "^8.6", - "yahnis-elsts/plugin-update-checker": "^v5.4" + "jetbrains/phpstorm-stubs": "*", + "johnpbloch/wordpress": "*", + "nikic/php-parser": "^v5.3.1", + "woocommerce/action-scheduler": "*", + "wp-cli/wp-cli": "*", + "wpackagist-plugin/woocommerce": "*", + "yahnis-elsts/plugin-update-checker": "*" }, "bin": [ "bin/wpify-scoper" @@ -8030,9 +8250,9 @@ "description": "Composer plugin that scopes WordPress and WooCommerce dependencies for usage in WordPress plugins and themes.", "support": { "issues": "https://github.com/wpify/scoper/issues", - "source": "https://github.com/wpify/scoper/tree/3.2.13" + "source": "https://github.com/wpify/scoper/tree/3.2.21" }, - "time": "2024-04-22T17:02:29+00:00" + "time": "2025-05-07T08:14:33+00:00" } ], "aliases": [], diff --git a/deps-composer/composer.json b/deps-composer/composer.json index 77a5d37e7..37f074a8b 100644 --- a/deps-composer/composer.json +++ b/deps-composer/composer.json @@ -1,14 +1,14 @@ { "require": { - "php": ">=7.2", + "php": ">=7.4", "nette/di": "3.1.10", - "nette/robot-loader": "3.4.0", + "nette/robot-loader": "3.4.2", "nette/php-generator": "3.6.9", - "nette/neon": "3.3.3", + "nette/neon": "3.3.4", "nette/utils": "3.2.8", "nette/forms": "3.1.6", "nette/bootstrap": "3.1.4", "latte/latte": "2.11.7", - "tracy/tracy": "2.9.7" + "tracy/tracy": "2.9.8" } } diff --git a/deps-composer/composer.lock b/deps-composer/composer.lock index 1fb01263d..8b3c047b9 100644 --- a/deps-composer/composer.lock +++ b/deps-composer/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c565d9f804ece6eb62e4821ef4e6957c", + "content-hash": "71b11fa8e15fc52e1a5947e405993484", "packages": [ { "name": "latte/latte", @@ -530,21 +530,21 @@ }, { "name": "nette/neon", - "version": "v3.3.3", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" + "reference": "bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/22e384da162fab42961d48eb06c06d3ad0c11b95", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", + "url": "https://api.github.com/repos/nette/neon/zipball/bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda", + "reference": "bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=7.1" + "php": "7.1 - 8.4" }, "require-dev": { "nette/tester": "^2.0", @@ -592,9 +592,9 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.3.3" + "source": "https://github.com/nette/neon/tree/v3.3.4" }, - "time": "2022-03-10T02:04:26+00:00" + "time": "2024-10-04T22:17:24+00:00" }, { "name": "nette/php-generator", @@ -666,16 +666,16 @@ }, { "name": "nette/robot-loader", - "version": "v3.4.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "3973cf3970d1de7b30888fd10b92dac9e0c2fd82" + "reference": "970c8f82be98ec54180c88a468cd2b057855d993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/3973cf3970d1de7b30888fd10b92dac9e0c2fd82", - "reference": "3973cf3970d1de7b30888fd10b92dac9e0c2fd82", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/970c8f82be98ec54180c88a468cd2b057855d993", + "reference": "970c8f82be98ec54180c88a468cd2b057855d993", "shasum": "" }, "require": { @@ -727,9 +727,9 @@ ], "support": { "issues": "https://github.com/nette/robot-loader/issues", - "source": "https://github.com/nette/robot-loader/tree/v3.4.0" + "source": "https://github.com/nette/robot-loader/tree/v3.4.2" }, - "time": "2021-03-07T15:12:01+00:00" + "time": "2022-12-14T15:41:06+00:00" }, { "name": "nette/schema", @@ -880,16 +880,16 @@ }, { "name": "tracy/tracy", - "version": "v2.9.7", + "version": "v2.9.8", "source": { "type": "git", "url": "https://github.com/nette/tracy.git", - "reference": "1c6e9b5bad030fdf49194154c9674201fa6372bb" + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/tracy/zipball/1c6e9b5bad030fdf49194154c9674201fa6372bb", - "reference": "1c6e9b5bad030fdf49194154c9674201fa6372bb", + "url": "https://api.github.com/repos/nette/tracy/zipball/d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", "shasum": "" }, "require": { @@ -948,9 +948,9 @@ ], "support": { "issues": "https://github.com/nette/tracy/issues", - "source": "https://github.com/nette/tracy/tree/v2.9.7" + "source": "https://github.com/nette/tracy/tree/v2.9.8" }, - "time": "2023-02-28T13:01:54+00:00" + "time": "2023-09-25T10:36:51+00:00" } ], "packages-dev": [], @@ -960,8 +960,8 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.2" + "php": ">=7.4" }, "platform-dev": {}, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/deps/autoload.php b/deps/autoload.php index 7aea6bebd..9e10c1c21 100644 --- a/deps/autoload.php +++ b/deps/autoload.php @@ -14,12 +14,9 @@ echo $err; } } - trigger_error( - $err, - E_USER_ERROR - ); + throw new RuntimeException($err); } require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitc565d9f804ece6eb62e4821ef4e6957c::getLoader(); +return ComposerAutoloaderInit71b11fa8e15fc52e1a5947e405993484::getLoader(); diff --git a/deps/composer/InstalledVersions.php b/deps/composer/InstalledVersions.php index ce1abc902..db3c5c554 100644 --- a/deps/composer/InstalledVersions.php +++ b/deps/composer/InstalledVersions.php @@ -24,11 +24,20 @@ */ class InstalledVersions { + /** + * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to + * @internal + */ + private static $selfDir = null; /** * @var mixed[]|null * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null */ private static $installed; + /** + * @var bool + */ + private static $installedIsLocalDir; /** * @var bool|null */ @@ -269,6 +278,21 @@ public static function reload($data) { self::$installed = $data; self::$installedByVendor = array(); + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = \false; + } + /** + * @return string + */ + private static function getSelfDir() + { + if (self::$selfDir === null) { + self::$selfDir = \strtr(__DIR__, '\\', '/'); + } + return self::$selfDir; } /** * @return array[] @@ -282,7 +306,9 @@ private static function getInstalled() $installed = array(); $copiedLocalDir = \false; if (self::$canGetVendors) { + $selfDir = self::getSelfDir(); foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = \strtr($vendorDir, '\\', '/'); if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (\is_file($vendorDir . '/composer/installed.php')) { @@ -290,11 +316,14 @@ private static function getInstalled() $required = (require $vendorDir . '/composer/installed.php'); self::$installedByVendor[$vendorDir] = $required; $installed[] = $required; - if (\strtr($vendorDir . '/composer', '\\', '/') === \strtr(__DIR__, '\\', '/')) { + if (self::$installed === null && $vendorDir . '/composer' === $selfDir) { self::$installed = $required; - $copiedLocalDir = \true; + self::$installedIsLocalDir = \true; } } + if (self::$installedIsLocalDir && $vendorDir . '/composer' === $selfDir) { + $copiedLocalDir = \true; + } } } if (null === self::$installed) { diff --git a/deps/composer/autoload_real.php b/deps/composer/autoload_real.php index 91cc7b3b6..1519758a0 100644 --- a/deps/composer/autoload_real.php +++ b/deps/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitc565d9f804ece6eb62e4821ef4e6957c +class ComposerAutoloaderInit71b11fa8e15fc52e1a5947e405993484 { private static $loader; @@ -24,16 +24,16 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInitc565d9f804ece6eb62e4821ef4e6957c', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit71b11fa8e15fc52e1a5947e405993484', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitc565d9f804ece6eb62e4821ef4e6957c', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit71b11fa8e15fc52e1a5947e405993484', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitc565d9f804ece6eb62e4821ef4e6957c::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit71b11fa8e15fc52e1a5947e405993484::getInitializer($loader)); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitc565d9f804ece6eb62e4821ef4e6957c::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit71b11fa8e15fc52e1a5947e405993484::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/deps/composer/autoload_static.php b/deps/composer/autoload_static.php index f23e7ef1d..bb7eb50cb 100644 --- a/deps/composer/autoload_static.php +++ b/deps/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitc565d9f804ece6eb62e4821ef4e6957c +class ComposerStaticInit71b11fa8e15fc52e1a5947e405993484 { public static $files = array ( 'packeteryd507e002f7fce7f0c6dbf1f22edcb902' => __DIR__ . '/..' . '/tracy/tracy/src/Tracy/functions.php', @@ -302,7 +302,7 @@ class ComposerStaticInitc565d9f804ece6eb62e4821ef4e6957c public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->classMap = ComposerStaticInitc565d9f804ece6eb62e4821ef4e6957c::$classMap; + $loader->classMap = ComposerStaticInit71b11fa8e15fc52e1a5947e405993484::$classMap; }, null, ClassLoader::class); } diff --git a/deps/composer/installed.json b/deps/composer/installed.json index f663a7f7c..b3ee625b1 100644 --- a/deps/composer/installed.json +++ b/deps/composer/installed.json @@ -545,29 +545,29 @@ }, { "name": "nette\/neon", - "version": "v3.3.3", - "version_normalized": "3.3.3.0", + "version": "v3.3.4", + "version_normalized": "3.3.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/nette\/neon.git", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" + "reference": "bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nette\/neon\/zipball\/22e384da162fab42961d48eb06c06d3ad0c11b95", - "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", + "url": "https:\/\/api.github.com\/repos\/nette\/neon\/zipball\/bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda", + "reference": "bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=7.1" + "php": "7.1 - 8.4" }, "require-dev": { "nette\/tester": "^2.0", "phpstan\/phpstan": "^0.12", "tracy\/tracy": "^2.7" }, - "time": "2022-03-10T02:04:26+00:00", + "time": "2024-10-04T22:17:24+00:00", "bin": [ "bin\/neon-lint" ], @@ -610,7 +610,7 @@ ], "support": { "issues": "https:\/\/github.com\/nette\/neon\/issues", - "source": "https:\/\/github.com\/nette\/neon\/tree\/v3.3.3" + "source": "https:\/\/github.com\/nette\/neon\/tree\/v3.3.4" }, "install-path": "..\/nette\/neon" }, @@ -687,17 +687,17 @@ }, { "name": "nette\/robot-loader", - "version": "v3.4.0", - "version_normalized": "3.4.0.0", + "version": "v3.4.2", + "version_normalized": "3.4.2.0", "source": { "type": "git", "url": "https:\/\/github.com\/nette\/robot-loader.git", - "reference": "3973cf3970d1de7b30888fd10b92dac9e0c2fd82" + "reference": "970c8f82be98ec54180c88a468cd2b057855d993" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nette\/robot-loader\/zipball\/3973cf3970d1de7b30888fd10b92dac9e0c2fd82", - "reference": "3973cf3970d1de7b30888fd10b92dac9e0c2fd82", + "url": "https:\/\/api.github.com\/repos\/nette\/robot-loader\/zipball\/970c8f82be98ec54180c88a468cd2b057855d993", + "reference": "970c8f82be98ec54180c88a468cd2b057855d993", "shasum": "" }, "require": { @@ -711,7 +711,7 @@ "phpstan\/phpstan": "^0.12", "tracy\/tracy": "^2.3" }, - "time": "2021-03-07T15:12:01+00:00", + "time": "2022-12-14T15:41:06+00:00", "type": "library", "extra": { "branch-alias": { @@ -751,7 +751,7 @@ ], "support": { "issues": "https:\/\/github.com\/nette\/robot-loader\/issues", - "source": "https:\/\/github.com\/nette\/robot-loader\/tree\/v3.4.0" + "source": "https:\/\/github.com\/nette\/robot-loader\/tree\/v3.4.2" }, "install-path": "..\/nette\/robot-loader" }, @@ -910,17 +910,17 @@ }, { "name": "tracy\/tracy", - "version": "v2.9.7", - "version_normalized": "2.9.7.0", + "version": "v2.9.8", + "version_normalized": "2.9.8.0", "source": { "type": "git", "url": "https:\/\/github.com\/nette\/tracy.git", - "reference": "1c6e9b5bad030fdf49194154c9674201fa6372bb" + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nette\/tracy\/zipball\/1c6e9b5bad030fdf49194154c9674201fa6372bb", - "reference": "1c6e9b5bad030fdf49194154c9674201fa6372bb", + "url": "https:\/\/api.github.com\/repos\/nette\/tracy\/zipball\/d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", "shasum": "" }, "require": { @@ -940,7 +940,7 @@ "phpstan\/phpstan": "^1.0", "psr\/log": "^1.0 || ^2.0 || ^3.0" }, - "time": "2023-02-28T13:01:54+00:00", + "time": "2023-09-25T10:36:51+00:00", "type": "library", "extra": { "branch-alias": { @@ -981,7 +981,7 @@ ], "support": { "issues": "https:\/\/github.com\/nette\/tracy\/issues", - "source": "https:\/\/github.com\/nette\/tracy\/tree\/v2.9.7" + "source": "https:\/\/github.com\/nette\/tracy\/tree\/v2.9.8" }, "install-path": "..\/tracy\/tracy" } diff --git a/deps/composer/installed.php b/deps/composer/installed.php index 72ebe1a4e..47ee1d505 100644 --- a/deps/composer/installed.php +++ b/deps/composer/installed.php @@ -2,4 +2,4 @@ namespace Packetery; -return array('root' => array('name' => '__root__', 'pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'latte/latte' => array('pretty_version' => 'v2.11.7', 'version' => '2.11.7.0', 'reference' => '0ac0843a459790d471821f6a82f5d13db831a0d3', 'type' => 'library', 'install_path' => __DIR__ . '/../latte/latte', 'aliases' => array(), 'dev_requirement' => \false), 'nette/bootstrap' => array('pretty_version' => 'v3.1.4', 'version' => '3.1.4.0', 'reference' => '1a7965b4ee401ad0e3f673b9c016d2481afdc280', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/bootstrap', 'aliases' => array(), 'dev_requirement' => \false), 'nette/component-model' => array('pretty_version' => 'v3.0.3', 'version' => '3.0.3.0', 'reference' => '9d97c0e1916bbf8e306283ab187834501fd4b1f5', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/component-model', 'aliases' => array(), 'dev_requirement' => \false), 'nette/di' => array('pretty_version' => 'v3.1.10', 'version' => '3.1.10.0', 'reference' => '2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/di', 'aliases' => array(), 'dev_requirement' => \false), 'nette/finder' => array('pretty_version' => 'v2.6.0', 'version' => '2.6.0.0', 'reference' => '991aefb42860abeab8e003970c3809a9d83cb932', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/finder', 'aliases' => array(), 'dev_requirement' => \false), 'nette/forms' => array('pretty_version' => 'v3.1.6', 'version' => '3.1.6.0', 'reference' => '4ed52434b61d7e532cb3bc77b048717703b91b0b', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/forms', 'aliases' => array(), 'dev_requirement' => \false), 'nette/http' => array('pretty_version' => 'v3.2.4', 'version' => '3.2.4.0', 'reference' => 'd7cc833ee186d5139cde5aab43b39ee7aedd6f22', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/http', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.3.3', 'version' => '3.3.3.0', 'reference' => '22e384da162fab42961d48eb06c06d3ad0c11b95', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/php-generator' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'd31782f7bd2ae84ad06f863391ec3fb77ca4d0a6', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/php-generator', 'aliases' => array(), 'dev_requirement' => \false), 'nette/robot-loader' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '3973cf3970d1de7b30888fd10b92dac9e0c2fd82', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/robot-loader', 'aliases' => array(), 'dev_requirement' => \false), 'nette/schema' => array('pretty_version' => 'v1.2.5', 'version' => '1.2.5.0', 'reference' => '0462f0166e823aad657c9224d0f849ecac1ba10a', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/schema', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.8', 'version' => '3.2.8.0', 'reference' => '02a54c4c872b99e4ec05c4aec54b5a06eb0f6368', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.9.7', 'version' => '2.9.7.0', 'reference' => '1c6e9b5bad030fdf49194154c9674201fa6372bb', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => '__root__', 'pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \true), 'versions' => array('__root__' => array('pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'latte/latte' => array('pretty_version' => 'v2.11.7', 'version' => '2.11.7.0', 'reference' => '0ac0843a459790d471821f6a82f5d13db831a0d3', 'type' => 'library', 'install_path' => __DIR__ . '/../latte/latte', 'aliases' => array(), 'dev_requirement' => \false), 'nette/bootstrap' => array('pretty_version' => 'v3.1.4', 'version' => '3.1.4.0', 'reference' => '1a7965b4ee401ad0e3f673b9c016d2481afdc280', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/bootstrap', 'aliases' => array(), 'dev_requirement' => \false), 'nette/component-model' => array('pretty_version' => 'v3.0.3', 'version' => '3.0.3.0', 'reference' => '9d97c0e1916bbf8e306283ab187834501fd4b1f5', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/component-model', 'aliases' => array(), 'dev_requirement' => \false), 'nette/di' => array('pretty_version' => 'v3.1.10', 'version' => '3.1.10.0', 'reference' => '2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/di', 'aliases' => array(), 'dev_requirement' => \false), 'nette/finder' => array('pretty_version' => 'v2.6.0', 'version' => '2.6.0.0', 'reference' => '991aefb42860abeab8e003970c3809a9d83cb932', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/finder', 'aliases' => array(), 'dev_requirement' => \false), 'nette/forms' => array('pretty_version' => 'v3.1.6', 'version' => '3.1.6.0', 'reference' => '4ed52434b61d7e532cb3bc77b048717703b91b0b', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/forms', 'aliases' => array(), 'dev_requirement' => \false), 'nette/http' => array('pretty_version' => 'v3.2.4', 'version' => '3.2.4.0', 'reference' => 'd7cc833ee186d5139cde5aab43b39ee7aedd6f22', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/http', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.3.4', 'version' => '3.3.4.0', 'reference' => 'bb88bf3a54dd21bf4dbddb5cd525d7b0c61b7cda', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/php-generator' => array('pretty_version' => 'v3.6.9', 'version' => '3.6.9.0', 'reference' => 'd31782f7bd2ae84ad06f863391ec3fb77ca4d0a6', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/php-generator', 'aliases' => array(), 'dev_requirement' => \false), 'nette/robot-loader' => array('pretty_version' => 'v3.4.2', 'version' => '3.4.2.0', 'reference' => '970c8f82be98ec54180c88a468cd2b057855d993', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/robot-loader', 'aliases' => array(), 'dev_requirement' => \false), 'nette/schema' => array('pretty_version' => 'v1.2.5', 'version' => '1.2.5.0', 'reference' => '0462f0166e823aad657c9224d0f849ecac1ba10a', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/schema', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.8', 'version' => '3.2.8.0', 'reference' => '02a54c4c872b99e4ec05c4aec54b5a06eb0f6368', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'tracy/tracy' => array('pretty_version' => 'v2.9.8', 'version' => '2.9.8.0', 'reference' => 'd84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e', 'type' => 'library', 'install_path' => __DIR__ . '/../tracy/tracy', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/deps/composer/platform_check.php b/deps/composer/platform_check.php index 589e9e770..d2225c7df 100644 --- a/deps/composer/platform_check.php +++ b/deps/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 70200)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 70400)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { @@ -19,8 +19,7 @@ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; } } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR + throw new \RuntimeException( + 'Composer detected issues in your platform: ' . implode(' ', $issues) ); } diff --git a/deps/nette/neon/composer.json b/deps/nette/neon/composer.json index 33922a1e1..a4bbc6602 100644 --- a/deps/nette/neon/composer.json +++ b/deps/nette/neon/composer.json @@ -25,7 +25,7 @@ } ], "require": { - "php": ">=7.1", + "php": "7.1 - 8.4", "ext-json": "*" }, "require-dev": { diff --git a/deps/nette/neon/contributing.md b/deps/nette/neon/contributing.md deleted file mode 100644 index 184152c02..000000000 --- a/deps/nette/neon/contributing.md +++ /dev/null @@ -1,33 +0,0 @@ -How to contribute & use the issue tracker -========================================= - -Nette welcomes your contributions. There are several ways to help out: - -* Create an issue on GitHub, if you have found a bug -* Write test cases for open bug issues -* Write fixes for open bug/feature issues, preferably with test cases included -* Contribute to the [documentation](https://nette.org/en/writing) - -Issues ------- - -Please **do not use the issue tracker to ask questions**. We will be happy to help you -on [Nette forum](https://forum.nette.org) or chat with us on [Gitter](https://gitter.im/nette/nette). - -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. - -**Feature requests** are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to *you* to make a strong -case to convince the project's developers of the merits of this feature. - -Contributing ------------- - -If you'd like to contribute, please take a moment to read [the contributing guide](https://nette.org/en/contributing). - -The best way to propose a feature is to discuss your ideas on [Nette forum](https://forum.nette.org) before implementing them. - -Please do not fix whitespace, format code, or make a purely cosmetic patch. - -Thanks! :heart: diff --git a/deps/nette/neon/readme.md b/deps/nette/neon/readme.md index 6938bb738..2111772b9 100644 --- a/deps/nette/neon/readme.md +++ b/deps/nette/neon/readme.md @@ -37,7 +37,7 @@ Install via Composer: composer require nette/neon ``` -It requires PHP version 7.1 and supports PHP up to 8.1. Documentation can be found on the [website](https://doc.nette.org/neon). +It requires PHP version 7.1 up to 8.4. Documentation can be found on the [website](https://doc.nette.org/neon). `Neon::encode()` returns `$value` converted to NEON. As the second parameter `$blockMode` you can pass true, which will create multiline output. The third parameter `$indentation` specifies the characters used for indentation (default is tab). diff --git a/deps/nette/neon/src/Neon/Neon.php b/deps/nette/neon/src/Neon/Neon.php index 5931bd1d1..2fb502564 100644 --- a/deps/nette/neon/src/Neon/Neon.php +++ b/deps/nette/neon/src/Neon/Neon.php @@ -41,10 +41,12 @@ public static function decode(string $input) */ public static function decodeFile(string $file) { - if (!\is_file($file)) { - throw new Exception("File '{$file}' does not exist."); + $input = @\file_get_contents($file); + // @ is escalated to exception + if ($input === \false) { + $error = \preg_replace('#^\\w+\\(.*?\\): #', '', \error_get_last()['message'] ?? ''); + throw new Exception("Unable to read file '{$file}'. {$error}"); } - $input = \file_get_contents($file); if (\substr($input, 0, 3) === "") { // BOM $input = \substr($input, 3); diff --git a/deps/nette/neon/src/Neon/Node/StringNode.php b/deps/nette/neon/src/Neon/Node/StringNode.php index 5963d7043..2d0a64536 100644 --- a/deps/nette/neon/src/Neon/Node/StringNode.php +++ b/deps/nette/neon/src/Neon/Node/StringNode.php @@ -59,12 +59,12 @@ public static function parse(string $s) : string public function toString() : string { if (\strpos($this->value, "\n") === \false) { - return "'" . \str_replace("'", "''", $this->value) . "'"; - } elseif (\preg_match('~\\n[\\t ]+\'{3}~', $this->value)) { - $s = \json_encode($this->value, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES); + return \preg_match('~[\\x00-\\x08\\x0B-\\x1F]~', $this->value) ? \json_encode($this->value, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES) : "'" . \str_replace("'", "''", $this->value) . "'"; + } elseif (\preg_match('~[\\x00-\\x08\\x0B-\\x1F]|\\n[\\t ]+\'{3}~', $this->value)) { + $s = \substr(\json_encode($this->value, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES), 1, -1); $s = \preg_replace_callback('#[^\\\\]|\\\\(.)#s', function ($m) { return ['n' => "\n", 't' => "\t", '"' => '"'][$m[1] ?? ''] ?? $m[0]; - }, \substr($s, 1, -1)); + }, $s); $s = \str_replace('"""', '""\\"', $s); $delim = '"""'; } else { diff --git a/deps/nette/neon/src/Neon/Parser.php b/deps/nette/neon/src/Neon/Parser.php index b3583ea09..9b39208a2 100644 --- a/deps/nette/neon/src/Neon/Parser.php +++ b/deps/nette/neon/src/Neon/Parser.php @@ -188,7 +188,7 @@ private function checkArrayKey(Node $key, array &$arr) : void } $arr[$k] = \true; } - private function injectPos(Node $node, int $start = null, int $end = null) : Node + private function injectPos(Node $node, ?int $start = null, ?int $end = null) : Node { $node->startTokenPos = $start ?? $this->tokens->getPos(); $node->startLine = $this->posToLine[$node->startTokenPos]; diff --git a/deps/nette/robot-loader/contributing.md b/deps/nette/robot-loader/contributing.md deleted file mode 100644 index 184152c02..000000000 --- a/deps/nette/robot-loader/contributing.md +++ /dev/null @@ -1,33 +0,0 @@ -How to contribute & use the issue tracker -========================================= - -Nette welcomes your contributions. There are several ways to help out: - -* Create an issue on GitHub, if you have found a bug -* Write test cases for open bug issues -* Write fixes for open bug/feature issues, preferably with test cases included -* Contribute to the [documentation](https://nette.org/en/writing) - -Issues ------- - -Please **do not use the issue tracker to ask questions**. We will be happy to help you -on [Nette forum](https://forum.nette.org) or chat with us on [Gitter](https://gitter.im/nette/nette). - -A good bug report shouldn't leave others needing to chase you up for more -information. Please try to be as detailed as possible in your report. - -**Feature requests** are welcome. But take a moment to find out whether your idea -fits with the scope and aims of the project. It's up to *you* to make a strong -case to convince the project's developers of the merits of this feature. - -Contributing ------------- - -If you'd like to contribute, please take a moment to read [the contributing guide](https://nette.org/en/contributing). - -The best way to propose a feature is to discuss your ideas on [Nette forum](https://forum.nette.org) before implementing them. - -Please do not fix whitespace, format code, or make a purely cosmetic patch. - -Thanks! :heart: diff --git a/deps/nette/robot-loader/ncs.php b/deps/nette/robot-loader/ncs.php new file mode 100644 index 000000000..7c270a0af --- /dev/null +++ b/deps/nette/robot-loader/ncs.php @@ -0,0 +1,13 @@ + \false, +]; diff --git a/deps/nette/robot-loader/readme.md b/deps/nette/robot-loader/readme.md index fa79076a3..f506ec806 100644 --- a/deps/nette/robot-loader/readme.md +++ b/deps/nette/robot-loader/readme.md @@ -47,7 +47,7 @@ The recommended way to install is via Composer: composer require nette/robot-loader ``` -It requires PHP version 7.1 and supports PHP up to 8.0. +It requires PHP version 7.1 and supports PHP up to 8.2. Usage diff --git a/deps/nette/robot-loader/src/RobotLoader/RobotLoader.php b/deps/nette/robot-loader/src/RobotLoader/RobotLoader.php index c8ebf366d..c07f2c589 100644 --- a/deps/nette/robot-loader/src/RobotLoader/RobotLoader.php +++ b/deps/nette/robot-loader/src/RobotLoader/RobotLoader.php @@ -23,7 +23,7 @@ class RobotLoader { use \Packetery\Nette\SmartObject; - private const RETRY_LIMIT = 3; + private const RetryLimit = 3; /** @var string[] */ public $ignoreDirs = ['.*', '*.old', '*.bak', '*.tmp', 'temp']; /** @var string[] */ @@ -77,7 +77,7 @@ public function tryLoad(string $type) : void { $this->loadCache(); $missing = $this->missingClasses[$type] ?? null; - if ($missing >= self::RETRY_LIMIT) { + if ($missing >= self::RetryLimit) { return; } [$file, $mtime] = $this->classes[$type] ?? null; @@ -95,7 +95,7 @@ public function tryLoad(string $type) : void } if (!$file || !\is_file($file)) { $this->missingClasses[$type] = ++$missing; - $this->needSave = $this->needSave || $file || $missing <= self::RETRY_LIMIT; + $this->needSave = $this->needSave || $file || $missing <= self::RetryLimit; unset($this->classes[$type]); $file = null; } @@ -200,7 +200,7 @@ private function refreshClasses() : void // prevents the error when adding the same file twice foreach ($foundClasses as $class) { if (isset($this->classes[$class])) { - throw new \Packetery\Nette\InvalidStateException("Ambiguous class {$class} resolution; defined in {$this->classes[$class][0]} and in {$file}."); + throw new \Packetery\Nette\InvalidStateException(\sprintf('Ambiguous class %s resolution; defined in %s and in %s.', $class, $this->classes[$class][0], $file)); } $this->classes[$class] = [$file, $mtime]; unset($this->missingClasses[$class]); @@ -215,7 +215,7 @@ private function refreshClasses() : void private function createFileIterator(string $dir) : \Packetery\Nette\Utils\Finder { if (!\is_dir($dir)) { - throw new \Packetery\Nette\IOException("File or directory '{$dir}' not found."); + throw new \Packetery\Nette\IOException(\sprintf("File or directory '%s' not found.", $dir)); } $dir = \realpath($dir) ?: $dir; // realpath does not work in phar @@ -233,9 +233,9 @@ private function createFileIterator(string $dir) : \Packetery\Nette\Utils\Finder \trigger_error(self::class . ': $acceptFiles must be an array.', \E_USER_WARNING); $acceptFiles = \preg_split('#[,\\s]+#', $acceptFiles); } - $iterator = \Packetery\Nette\Utils\Finder::findFiles($acceptFiles)->filter(function (SplFileInfo $file) use(&$disallow) { + $iterator = \Packetery\Nette\Utils\Finder::findFiles(...$acceptFiles)->filter(function (SplFileInfo $file) use(&$disallow) { return $file->getRealPath() === \false ? \true : !isset($disallow[\str_replace('\\', '/', $file->getRealPath())]); - })->from($dir)->exclude($ignoreDirs)->filter($filter = function (SplFileInfo $dir) use(&$disallow) { + })->from($dir)->exclude(...$ignoreDirs)->filter($filter = function (SplFileInfo $dir) use(&$disallow) { if ($dir->getRealPath() === \false) { return \true; } @@ -268,7 +268,7 @@ private function updateFile(string $file) : void [$prevFile] = $this->classes[$class] ?? null; } if (isset($prevFile)) { - throw new \Packetery\Nette\InvalidStateException("Ambiguous class {$class} resolution; defined in {$prevFile} and in {$file}."); + throw new \Packetery\Nette\InvalidStateException(\sprintf('Ambiguous class %s resolution; defined in %s and in %s.', $class, $prevFile, $file)); } $this->classes[$class] = [$file, \filemtime($file)]; } @@ -312,6 +312,7 @@ private function scanPhp(string $file) : array case \T_CLASS: case \T_INTERFACE: case \T_TRAIT: + case \PHP_VERSION_ID < 80100 ? \T_CLASS : \T_ENUM: $expected = $token[0]; $name = ''; continue 2; @@ -321,17 +322,11 @@ private function scanPhp(string $file) : array } } if ($expected) { - switch ($expected) { - case \T_CLASS: - case \T_INTERFACE: - case \T_TRAIT: - if ($name && $level === $minLevel) { - $classes[] = $namespace . $name; - } - break; - case \T_NAMESPACE: - $namespace = $name ? $name . '\\' : ''; - $minLevel = $token === '{' ? 1 : 0; + if ($expected === \T_NAMESPACE) { + $namespace = $name ? $name . '\\' : ''; + $minLevel = $token === '{' ? 1 : 0; + } elseif ($name && $level === $minLevel) { + $classes[] = $namespace . $name; } $expected = null; } @@ -370,7 +365,7 @@ private function loadCache() : void return; } $this->cacheLoaded = \true; - $file = $this->getCacheFile(); + $file = $this->generateCacheFileName(); // Solving atomicity to work everywhere is really pain in the ass. // 1) We want to do as little as possible IO calls on production and also directory and file can be not writable (#19) // so on Linux we include the file directly without shared lock, therefore, the file must be created atomically by renaming. @@ -397,8 +392,8 @@ private function loadCache() : void $this->classes = $this->missingClasses = $this->emptyFiles = []; $this->refreshClasses(); $this->saveCache($lock); - // On Windows concurrent creation and deletion of a file can cause a error 'permission denied', - // therefore, we will not delete the lock file. Windows is peace of shit. + // On Windows concurrent creation and deletion of a file can cause a 'permission denied' error, + // therefore, we will not delete the lock file. Windows is really annoying. } /** * Writes class list to cache. @@ -409,13 +404,13 @@ private function saveCache($lock = null) : void // we have to acquire a lock to be able safely rename file // on Linux: that another thread does not rename the same named file earlier // on Windows: that the file is not read by another thread - $file = $this->getCacheFile(); + $file = $this->generateCacheFileName(); $lock = $lock ?: $this->acquireLock("{$file}.lock", \LOCK_EX); $code = "classes, $this->missingClasses, $this->emptyFiles], \true) . ";\n"; if (\file_put_contents("{$file}.tmp", $code) !== \strlen($code) || !\rename("{$file}.tmp", $file)) { @\unlink("{$file}.tmp"); // @ file may not exist - throw new \RuntimeException("Unable to create '{$file}'."); + throw new \RuntimeException(\sprintf("Unable to create '%s'.", $file)); } if (\function_exists('opcache_invalidate')) { @\opcache_invalidate($file, \true); @@ -428,14 +423,14 @@ private function acquireLock(string $file, int $mode) $handle = @\fopen($file, 'w'); // @ is escalated to exception if (!$handle) { - throw new \RuntimeException("Unable to create file '{$file}'. " . \error_get_last()['message']); + throw new \RuntimeException(\sprintf("Unable to create file '%s'. %s", $file, \error_get_last()['message'])); } elseif (!@\flock($handle, $mode)) { // @ is escalated to exception - throw new \RuntimeException('Unable to acquire ' . ($mode & \LOCK_EX ? 'exclusive' : 'shared') . " lock on file '{$file}'. " . \error_get_last()['message']); + throw new \RuntimeException(\sprintf("Unable to acquire %s lock on file '%s'. %s", $mode & \LOCK_EX ? 'exclusive' : 'shared', $file, \error_get_last()['message'])); } return $handle; } - private function getCacheFile() : string + private function generateCacheFileName() : string { if (!$this->tempDirectory) { throw new \LogicException('Set path to temporary directory using setTempDirectory().'); diff --git a/deps/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php b/deps/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php index a5c673736..6ca646404 100644 --- a/deps/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php +++ b/deps/tracy/tracy/src/Tracy/BlueScreen/BlueScreen.php @@ -192,14 +192,15 @@ private function renderActions(\Throwable $ex) : array } if (\preg_match('# ([\'"])(\\w{3,}(?:\\\\\\w{3,})+)\\1#i', $ex->getMessage(), $m)) { $class = $m[2]; - if (!\class_exists($class, \false) && !\interface_exists($class, \false) && !\trait_exists($class, \false) && ($file = Helpers::guessClassFile($class)) && !\is_file($file)) { + if (!\class_exists($class, \false) && !\interface_exists($class, \false) && !\trait_exists($class, \false) && ($file = Helpers::guessClassFile($class)) && !@\is_file($file)) { [$content, $line] = $this->generateNewFileContents($file, $class); $actions[] = ['link' => Helpers::editorUri($file, $line, 'create', '', $content), 'label' => 'create class']; } } if (\preg_match('# ([\'"])((?:/|[a-z]:[/\\\\])\\w[^\'"]+\\.\\w{2,5})\\1#i', $ex->getMessage(), $m)) { $file = $m[2]; - if (\is_file($file)) { + if (@\is_file($file)) { + // @ - may trigger error $label = 'open'; $content = ''; $line = 1; @@ -251,7 +252,7 @@ public static function highlightPhp(string $source, int $line, int $lines = 15, // $source = \str_replace('
', "\n", $source[1]); $out .= static::highlightLine($source, $line, $lines, $column); - $out = \str_replace(' ', ' ', $out); + $out = \str_replace(' ', ' ', $out) . '
'; return "
{$out}
"; } /** @@ -290,7 +291,7 @@ public static function highlightLine(string $html, int $line, int $lines = 15, i $out .= \sprintf("%{$numWidth}s: %s\n", $n, $s); } } - $out .= \str_repeat('', $spans) . ''; + $out .= \str_repeat('', $spans); return $out; } /** diff --git a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-cli.phtml b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-cli.phtml index c0f95e46d..b30d6202e 100644 --- a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-cli.phtml +++ b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-cli.phtml @@ -18,15 +18,19 @@ if (!Helpers::isCli()) {

Process ID

-
php
+ +
php
+ +

Arguments

- $v): ?> + $v): ?> - +
+
diff --git a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-lastMutedError.phtml b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-lastMutedError.phtml index 40fc6b70a..4b5e0fb51 100644 --- a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-lastMutedError.phtml +++ b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-lastMutedError.phtml @@ -19,7 +19,7 @@ if (!$lastError) {

:

Note: the last muted error may have nothing to do with the thrown exception.

- +

diff --git a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-callStack.phtml b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-callStack.phtml index aaa432fff..be158aa62 100644 --- a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-callStack.phtml +++ b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-callStack.phtml @@ -21,10 +21,10 @@ if (!$stack) {
$row): ?> - +
- + inner-code @@ -42,7 +42,7 @@ if (!$stack) {
- +
diff --git a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-sourceFile.phtml b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-sourceFile.phtml index 26b425361..eb87ed52d 100644 --- a/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-sourceFile.phtml +++ b/deps/tracy/tracy/src/Tracy/BlueScreen/assets/section-stack-sourceFile.phtml @@ -10,7 +10,7 @@ namespace Packetery\Tracy; * @var int $expanded */ -$sourceOriginal = $file && is_file($file) ? [$file, $line] : null; +$sourceOriginal = $file && @is_file($file) ? [$file, $line] : null; // @ - may trigger error $sourceMapped = $sourceOriginal ? Debugger::mapSource($file, $line) : null; ?> diff --git a/deps/tracy/tracy/src/Tracy/Debugger/Debugger.php b/deps/tracy/tracy/src/Tracy/Debugger/Debugger.php index f4c183a80..8af47f931 100644 --- a/deps/tracy/tracy/src/Tracy/Debugger/Debugger.php +++ b/deps/tracy/tracy/src/Tracy/Debugger/Debugger.php @@ -13,7 +13,7 @@ */ class Debugger { - public const VERSION = '2.9.7'; + public const VERSION = '2.9.8'; /** server modes for Debugger::enable() */ public const Development = \false, Production = \true, Detect = null; public const DEVELOPMENT = self::Development, PRODUCTION = self::Production, DETECT = self::Detect; @@ -392,7 +392,7 @@ public static function barDump($var, ?string $title = null, array $options = []) if (!$panel) { self::getBar()->addPanel($panel = new DefaultBarPanel('dumps'), 'Tracy:dumps'); } - $panel->data[] = ['title' => $title, 'dump' => Dumper::toHtml($var, $options + [Dumper::DEPTH => self::$maxDepth, Dumper::TRUNCATE => self::$maxLength, Dumper::LOCATION => self::$showLocation ?: Dumper::LOCATION_CLASS | Dumper::LOCATION_SOURCE, Dumper::LAZY => \true])]; + $panel->data[] = ['title' => $title, 'dump' => Dumper::toHtml($var, $options + [Dumper::DEPTH => self::$maxDepth, Dumper::ITEMS => self::$maxItems, Dumper::TRUNCATE => self::$maxLength, Dumper::LOCATION => self::$showLocation ?: Dumper::LOCATION_CLASS | Dumper::LOCATION_SOURCE, Dumper::LAZY => \true])]; } return $var; } diff --git a/deps/tracy/tracy/src/Tracy/Dumper/Describer.php b/deps/tracy/tracy/src/Tracy/Dumper/Describer.php index a85cb2e62..b7c9a8f5d 100644 --- a/deps/tracy/tracy/src/Tracy/Dumper/Describer.php +++ b/deps/tracy/tracy/src/Tracy/Dumper/Describer.php @@ -274,7 +274,8 @@ private static function findLocation() : ?array } break; } - if (isset($location['file'], $location['line']) && \is_file($location['file'])) { + if (isset($location['file'], $location['line']) && @\is_file($location['file'])) { + // @ - may trigger error $lines = \file($location['file']); $line = $lines[$location['line'] - 1]; return [$location['file'], $location['line'], \trim(\preg_match('#\\w*dump(er::\\w+)?\\(.*\\)#i', $line, $m) ? $m[0] : $line)]; diff --git a/deps/tracy/tracy/src/Tracy/Dumper/Exposer.php b/deps/tracy/tracy/src/Tracy/Dumper/Exposer.php index 3377e8671..e53da1a5e 100644 --- a/deps/tracy/tracy/src/Tracy/Dumper/Exposer.php +++ b/deps/tracy/tracy/src/Tracy/Dumper/Exposer.php @@ -168,7 +168,7 @@ public static function exposePhpIncompleteClass(\__PHP_Incomplete_Class $obj, Va } public static function exposeDsCollection(Ds\Collection $obj, Value $value, Describer $describer) : void { - foreach ($obj as $k => $v) { + foreach (clone $obj as $k => $v) { $describer->addPropertyTo($value, (string) $k, $v, Value::PropertyVirtual); } } diff --git a/deps/tracy/tracy/src/Tracy/Helpers.php b/deps/tracy/tracy/src/Tracy/Helpers.php index abd743402..a6bfccb4a 100644 --- a/deps/tracy/tracy/src/Tracy/Helpers.php +++ b/deps/tracy/tracy/src/Tracy/Helpers.php @@ -37,7 +37,8 @@ public static function editorLink(string $file, ?int $line = null) : string */ public static function editorUri(string $file, ?int $line = null, string $action = 'open', string $search = '', string $replace = '') : ?string { - if (Debugger::$editor && $file && ($action === 'create' || \is_file($file))) { + if (Debugger::$editor && $file && ($action === 'create' || @\is_file($file))) { + // @ - may trigger error $file = \strtr($file, '/', \DIRECTORY_SEPARATOR); $file = \strtr($file, Debugger::$editorMapping); $search = \str_replace("\n", \PHP_EOL, $search); diff --git a/deps/tracy/tracy/src/Tracy/assets/table-sort.js b/deps/tracy/tracy/src/Tracy/assets/table-sort.js index 3a6ac2697..02a524729 100644 --- a/deps/tracy/tracy/src/Tracy/assets/table-sort.js +++ b/deps/tracy/tracy/src/Tracy/assets/table-sort.js @@ -7,7 +7,9 @@ class TableSort { static init() { document.documentElement.addEventListener('click', (e) => { - if (e.target.matches('.tracy-sortable > :first-child > tr:first-child *')) { + if ((window.getSelection().type !== 'Range') + && e.target.matches('.tracy-sortable > :first-child > tr:first-child *') + ) { TableSort.sort(e.target.closest('td,th')); } }); diff --git a/deps/tracy/tracy/tools/create-phar/create-phar.php b/deps/tracy/tracy/tools/create-phar/create-phar.php index 1bdeaa4fc..80d4bb89b 100644 --- a/deps/tracy/tracy/tools/create-phar/create-phar.php +++ b/deps/tracy/tracy/tools/create-phar/create-phar.php @@ -42,6 +42,8 @@ function compressCss(string $s) : string $s = \file_get_contents($file->getPathname()); if (\strpos($s, '@tracySkipLocation') === \false) { $s = \php_strip_whitespace($file->getPathname()); + $s = \preg_replace('~#\\[.*?\\]~', "\$0\n", $s); + // so that attributes are not treated as comments in PHP 7 } if ($file->getExtension() === 'js') { $s = compressJs($s); diff --git a/phpcs.xml b/phpcs.xml index 808a3083d..a2de26825 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -66,7 +66,9 @@ - + + + diff --git a/phpstan/phpstan-baseline-module.neon b/phpstan/phpstan-baseline-module.neon index 470422f42..ab8335c2e 100644 --- a/phpstan/phpstan-baseline-module.neon +++ b/phpstan/phpstan-baseline-module.neon @@ -42,18 +42,6 @@ parameters: count: 1 path: ../src/Packetery/Module/Blocks/WidgetIntegration.php - - - message: '#^Path in require_once\(\) "\.//woocommerce/packages/woocommerce\-blocks/src/Integrations/IntegrationInterface\.php" is not a file or it does not exist\.$#' - identifier: requireOnce.fileNotFound - count: 1 - path: ../src/Packetery/Module/Blocks/WidgetIntegration.php - - - - message: '#^Path in require_once\(\) "\.//woocommerce/src/Blocks/Integrations/IntegrationInterface\.php" is not a file or it does not exist\.$#' - identifier: requireOnce.fileNotFound - count: 1 - path: ../src/Packetery/Module/Blocks/WidgetIntegration.php - - message: '#^Method Packetery\\Module\\Carrier\\CarrierActivityBridge\:\:getActiveCarrierIds\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -1056,12 +1044,6 @@ parameters: count: 1 path: ../src/Packetery/Module/Framework/WcAdapter.php - - - message: '#^Method Packetery\\Module\\Framework\\WcAdapter\:\:taxGetShippingTaxRates\(\) should return array\\> but returns array\\.$#' - identifier: return.type - count: 1 - path: ../src/Packetery/Module/Framework/WcAdapter.php - - message: '#^Method Packetery\\Module\\Framework\\WpAdapter\:\:enqueueScript\(\) has parameter \$args with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue @@ -1320,12 +1302,6 @@ parameters: count: 1 path: ../src/Packetery/Module/ModuleHelper.php - - - message: '#^Path in require_once\(\) "\./wp\-admin/includes/plugin\.php" is not a file or it does not exist\.$#' - identifier: requireOnce.fileNotFound - count: 1 - path: ../src/Packetery/Module/ModuleHelper.php - - message: '#^Binary operation "\." between mixed and "\\n"\|"\\r\\n" results in an error\.$#' identifier: binaryOp.invalid @@ -2100,6 +2076,12 @@ parameters: count: 1 path: ../src/Packetery/Module/Order/Metabox.php + - + message: '#^Offset bool\|string might not exist on non\-empty\-array\\.$#' + identifier: offsetAccess.notFound + count: 1 + path: ../src/Packetery/Module/Order/Metabox.php + - message: '#^Only booleans are allowed in &&, float\|int\|string\|true\|null given on the left side\.$#' identifier: booleanAnd.leftNotBoolean @@ -2317,13 +2299,13 @@ parameters: path: ../src/Packetery/Module/Order/Repository.php - - message: '#^Offset ''file'' might not exist on array\{function\: string, line\?\: int, file\?\: string, class\?\: class\-string, type\?\: ''\-\>''\|''\:\:'', args\?\: array\, object\?\: object\}\.$#' + message: '#^Offset ''file'' might not exist on array\{function\: string, line\?\: int, file\?\: string, class\?\: class\-string, type\?\: ''\-\>''\|''\:\:'', args\?\: list\, object\?\: object\}\.$#' identifier: offsetAccess.notFound count: 1 path: ../src/Packetery/Module/Order/Repository.php - - message: '#^Offset ''line'' might not exist on array\{function\: string, line\?\: int, file\?\: string, class\?\: class\-string, type\?\: ''\-\>''\|''\:\:'', args\?\: array\, object\?\: object\}\.$#' + message: '#^Offset ''line'' might not exist on array\{function\: string, line\?\: int, file\?\: string, class\?\: class\-string, type\?\: ''\-\>''\|''\:\:'', args\?\: list\, object\?\: object\}\.$#' identifier: offsetAccess.notFound count: 1 path: ../src/Packetery/Module/Order/Repository.php @@ -2472,12 +2454,6 @@ parameters: count: 2 path: ../src/Packetery/Module/Shipping/ShippingProvider.php - - - message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 2 - path: ../src/Packetery/Module/Shipping/ShippingProvider.php - - message: '#^Method Packetery\\Module\\Shipping\\ShippingProvider\:\:addActiveCarrierMethod\(\) should return array\ but returns array\\.$#' identifier: return.type @@ -2760,12 +2736,6 @@ parameters: count: 1 path: ../src/Packetery/Module/WpdbAdapter.php - - - message: '#^Path in require_once\(\) "\./wp\-admin/includes/upgrade\.php" is not a file or it does not exist\.$#' - identifier: requireOnce.fileNotFound - count: 1 - path: ../src/Packetery/Module/WpdbAdapter.php - - message: '#^Binary operation "\*" between mixed and 1000 results in an error\.$#' identifier: binaryOp.invalid diff --git a/public/images/corner-grey-on-grey.svg b/public/images/corner-grey-on-grey.svg index 8853d41f2..e05612507 100644 --- a/public/images/corner-grey-on-grey.svg +++ b/public/images/corner-grey-on-grey.svg @@ -1,12 +1 @@ - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/corner-lightgrey-border.svg b/public/images/corner-lightgrey-border.svg index 4a8d8a25a..6419f7224 100644 --- a/public/images/corner-lightgrey-border.svg +++ b/public/images/corner-lightgrey-border.svg @@ -1,6 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/corner-lightred.svg b/public/images/corner-lightred.svg index f80376303..8fa655967 100644 --- a/public/images/corner-lightred.svg +++ b/public/images/corner-lightred.svg @@ -1,6 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/corner-red.svg b/public/images/corner-red.svg index aadfca4c8..4cd618668 100644 --- a/public/images/corner-red.svg +++ b/public/images/corner-red.svg @@ -1,6 +1 @@ - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/logo-packeta.svg b/public/images/logo-packeta.svg index 10809466c..6ca6fe6c1 100644 --- a/public/images/logo-packeta.svg +++ b/public/images/logo-packeta.svg @@ -1,7 +1 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/images/logo-zasilkovna.svg b/public/images/logo-zasilkovna.svg index 4868069f2..eea14dc36 100644 --- a/public/images/logo-zasilkovna.svg +++ b/public/images/logo-zasilkovna.svg @@ -1,55 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/public/images/packeta-logo.svg b/public/images/packeta-logo.svg new file mode 100644 index 000000000..463ac9c1f --- /dev/null +++ b/public/images/packeta-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/packeta-symbol.png b/public/images/packeta-symbol.png deleted file mode 100644 index fba6a5cd7..000000000 Binary files a/public/images/packeta-symbol.png and /dev/null differ diff --git a/public/images/survey-illustration.png b/public/images/survey-illustration.png index daa812fdb..0a7d1e68b 100644 Binary files a/public/images/survey-illustration.png and b/public/images/survey-illustration.png differ diff --git a/src/Packetery/Module/Checkout/CheckoutRenderer.php b/src/Packetery/Module/Checkout/CheckoutRenderer.php index 4aed9d598..514879b25 100644 --- a/src/Packetery/Module/Checkout/CheckoutRenderer.php +++ b/src/Packetery/Module/Checkout/CheckoutRenderer.php @@ -98,7 +98,7 @@ public function actionRenderWidgetButtonAfterShippingRate( $shippingRate ): void PACKETERY_PLUGIN_DIR . '/template/checkout/widget-button.latte', [ 'renderer' => self::BUTTON_RENDERER_AFTER_RATE, - 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-symbol.png' ), + 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-logo.svg' ), 'showLogo' => $this->optionsProvider->isCheckoutLogoShown(), 'translations' => [ 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ), @@ -121,7 +121,7 @@ public function actionRenderWidgetButtonTableRow(): void { PACKETERY_PLUGIN_DIR . '/template/checkout/widget-button-row.latte', [ 'renderer' => self::BUTTON_RENDERER_TABLE_ROW, - 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-symbol.png' ), + 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-logo.svg' ), 'showLogo' => $this->optionsProvider->isCheckoutLogoShown(), 'translations' => [ 'packeta' => $this->wpAdapter->__( 'Packeta', 'packeta' ), diff --git a/src/Packetery/Module/Checkout/CheckoutSettings.php b/src/Packetery/Module/Checkout/CheckoutSettings.php index e06c86630..ab20dd3bf 100644 --- a/src/Packetery/Module/Checkout/CheckoutSettings.php +++ b/src/Packetery/Module/Checkout/CheckoutSettings.php @@ -168,7 +168,7 @@ public function createSettings(): array { $settings = [ 'language' => $language, - 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-symbol.png' ), + 'logo' => $this->urlBuilder->buildAssetUrl( 'public/images/packeta-logo.svg' ), 'showLogo' => $this->optionsProvider->isCheckoutLogoShown(), 'country' => $this->checkoutService->getCustomerCountry() ?? '', 'weight' => $widgetWeight, diff --git a/src/Packetery/Module/Framework/WpAdapter.php b/src/Packetery/Module/Framework/WpAdapter.php index 7a98e64a8..d85f71fc7 100644 --- a/src/Packetery/Module/Framework/WpAdapter.php +++ b/src/Packetery/Module/Framework/WpAdapter.php @@ -206,6 +206,9 @@ public function addMenuPage( ); } + /** + * @param non-empty-string $tag + */ public function addShortcode( string $tag, callable $callback ): void { add_shortcode( $tag, $callback ); } diff --git a/src/Packetery/Module/Order/Metabox.php b/src/Packetery/Module/Order/Metabox.php index 3c13b9b17..fc71c2392 100644 --- a/src/Packetery/Module/Order/Metabox.php +++ b/src/Packetery/Module/Order/Metabox.php @@ -443,7 +443,7 @@ private function prepareMetaboxParts(): array { 'isCodPayment' => $order->hasCod(), 'allowsAdultContent' => $order->allowsAdultContent(), 'requiresSizeDimensions' => $order->getCarrier()->requiresSize(), - 'logo' => plugin_dir_url( PACKETERY_PLUGIN_DIR . '/packeta.php' ) . 'public/images/packeta-symbol.png', + 'logo' => plugin_dir_url( PACKETERY_PLUGIN_DIR . '/packeta.php' ) . 'public/images/packeta-logo.svg', 'showLogsLink' => $showLogsLink, 'hasOrderManualWeight' => $order->hasManualWeight(), 'hasOrderManualCod' => $order->hasManualCod(), diff --git a/src/Packetery/Module/Order/MetaboxesWrapper.php b/src/Packetery/Module/Order/MetaboxesWrapper.php index f43532f2c..29482298d 100644 --- a/src/Packetery/Module/Order/MetaboxesWrapper.php +++ b/src/Packetery/Module/Order/MetaboxesWrapper.php @@ -73,12 +73,20 @@ public function register(): void { * @return void */ public function beforeOrderSave( WC_Order $wcOrder ): void { - $order = $this->orderRepository->getByIdWithValidCarrier( $wcOrder->get_id() ); + static $processedOrders = []; + + $orderId = (int) $wcOrder->get_id(); + if ( isset( $processedOrders[ $orderId ] ) ) { + return; + } + + $order = $this->orderRepository->getByIdWithValidCarrier( $orderId ); if ( $order === null ) { return; } $this->generalMetabox->saveFields( $order, $wcOrder ); + $processedOrders[ $orderId ] = true; } /** diff --git a/src/Packetery/Module/Shipping/Generated/ShippingMethod_29738.php b/src/Packetery/Module/Shipping/Generated/ShippingMethod_29738.php new file mode 100644 index 000000000..d645933dd --- /dev/null +++ b/src/Packetery/Module/Shipping/Generated/ShippingMethod_29738.php @@ -0,0 +1,19 @@ + 'Business XYZ', Attribute::CARRIER_ID => 'carrier_1', Attribute::POINT_URL => 'dummyUrl', + Attribute::POINT_TYPE => 'dummyType', ] ); } diff --git a/tests/Integration/Module/Checkout/CheckoutStorageTest.php b/tests/Integration/Module/Checkout/CheckoutStorageTest.php index e4b17ac96..0b690fa3e 100644 --- a/tests/Integration/Module/Checkout/CheckoutStorageTest.php +++ b/tests/Integration/Module/Checkout/CheckoutStorageTest.php @@ -86,6 +86,7 @@ public static function enrichmentProvider(): array { Attr::POINT_PLACE => 'Business XYZ', Attr::CARRIER_ID => 'carrier_1', Attr::POINT_URL => 'dummyUrl', + Attr::POINT_TYPE => 'dummyType', ], ], 'rateId' => $ratePp, diff --git a/tests/Module/Order/MetaboxesWrapperTest.php b/tests/Module/Order/MetaboxesWrapperTest.php new file mode 100644 index 000000000..acceeb6e1 --- /dev/null +++ b/tests/Module/Order/MetaboxesWrapperTest.php @@ -0,0 +1,118 @@ +generalMetabox = $this->createMock( Metabox::class ); + $this->customDeclarationMetabox = $this->createMock( CustomsDeclarationMetabox::class ); + $this->orderRepository = $this->createMock( Repository::class ); + + return new MetaboxesWrapper( $this->generalMetabox, $this->customDeclarationMetabox, $this->orderRepository ); + } + + public function testBeforeOrderSaveProcessesOrderOnce(): void { + $metaboxesWrapper = $this->createMetaboxesWrapper(); + + $wcOrder = $this->createMock( WC_Order::class ); + $wcOrder->method( 'get_id' )->willReturn( 100 ); + + $order = $this->createMock( Order::class ); + $this->orderRepository + ->method( 'getByIdWithValidCarrier' ) + ->with( 100 ) + ->willReturn( $order ); + + $this->generalMetabox + ->expects( $this->once() ) + ->method( 'saveFields' ) + ->with( $order, $wcOrder ); + + $metaboxesWrapper->beforeOrderSave( $wcOrder ); + } + + public function testBeforeOrderSaveSkipsProcessingWhenOrderNotFound(): void { + $metaboxesWrapper = $this->createMetaboxesWrapper(); + + $wcOrder = $this->createMock( WC_Order::class ); + $wcOrder->method( 'get_id' )->willReturn( 200 ); + + $this->orderRepository + ->method( 'getByIdWithValidCarrier' ) + ->with( 200 ) + ->willReturn( null ); + + $this->generalMetabox + ->expects( $this->never() ) + ->method( 'saveFields' ); + + $metaboxesWrapper->beforeOrderSave( $wcOrder ); + } + + public function testBeforeOrderSavePreventsDuplicateProcessing(): void { + $metaboxesWrapper = $this->createMetaboxesWrapper(); + + $wcOrder1 = $this->createMock( WC_Order::class ); + $wcOrder1->method( 'get_id' )->willReturn( 300 ); + + $wcOrder2 = $this->createMock( WC_Order::class ); + $wcOrder2->method( 'get_id' )->willReturn( 300 ); + + $order = $this->createMock( Order::class ); + $this->orderRepository + ->method( 'getByIdWithValidCarrier' ) + ->with( 300 ) + ->willReturn( $order ); + + $this->generalMetabox + ->expects( $this->once() ) + ->method( 'saveFields' ); + + $metaboxesWrapper->beforeOrderSave( $wcOrder1 ); + $metaboxesWrapper->beforeOrderSave( $wcOrder2 ); + } + + public function testBeforeOrderSaveProcessesDifferentOrders(): void { + $metaboxesWrapper = $this->createMetaboxesWrapper(); + + $wcOrder1 = $this->createMock( WC_Order::class ); + $wcOrder1->method( 'get_id' )->willReturn( 400 ); + + $wcOrder2 = $this->createMock( WC_Order::class ); + $wcOrder2->method( 'get_id' )->willReturn( 500 ); + + $order1 = $this->createMock( Order::class ); + $order2 = $this->createMock( Order::class ); + + $this->orderRepository + ->method( 'getByIdWithValidCarrier' ) + ->willReturnMap( + [ + [ 400, $order1 ], + [ 500, $order2 ], + ] + ); + + $this->generalMetabox + ->expects( $this->exactly( 2 ) ) + ->method( 'saveFields' ); + + $metaboxesWrapper->beforeOrderSave( $wcOrder1 ); + $metaboxesWrapper->beforeOrderSave( $wcOrder2 ); + } +}