diff --git a/.github/workflows/registry-ci.yml b/.github/workflows/registry-ci.yml
new file mode 100644
index 000000000..a720dfa4d
--- /dev/null
+++ b/.github/workflows/registry-ci.yml
@@ -0,0 +1,153 @@
+name: COmanage Registry setup + PHPUnit (multi-PHP, multi-DB)
+
+on:
+ workflow_dispatch:
+ push:
+ pull_request:
+
+jobs:
+ setup-and-test:
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ php: ["8.3", "8.4", "8.5"]
+ db_engine: ["postgres", "mysql", "mariadb"]
+
+ env:
+ COMANAGE_REGISTRY_DIR: /srv/comanage-registry
+ COMANAGE_REGISTRY_URL_PATH: registry
+ COMANAGE_REGISTRY_VERSION: develop
+ # COMANAGE_REGISTRY_SRC_URL is computed dynamically in a step.
+
+ # Values used by your PHPUnit setup test
+ COMANAGE_REGISTRY_ADMIN_GIVEN_NAME: Admin
+ COMANAGE_REGISTRY_ADMIN_FAMILY_NAME: User
+ COMANAGE_REGISTRY_ADMIN_USERNAME: admin
+ COMANAGE_REGISTRY_SECURITY_SALT: phpunit-security-salt
+
+ # Values used by tests/bootstrap.php to create containers (host/port are set dynamically after start)
+ COMANAGE_REGISTRY_DATABASE: registry_test
+ COMANAGE_REGISTRY_DATABASE_USER: test_user
+ COMANAGE_REGISTRY_DATABASE_USER_PASSWORD: test_password
+ COMANAGE_REGISTRY_DATABASE_PERSISTENT: "false"
+
+ steps:
+ - name: Checkout (only for workflow files)
+ uses: actions/checkout@v4
+
+ - name: Setup PHP (recommended approach)
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ tools: composer:v2
+ coverage: none
+ extensions: >
+ mbstring, json, openssl, intl, ldap, xml, zlib, sodium,
+ pdo, pdo_mysql, pdo_pgsql, gd, xsl, memcached, pcntl, posix
+
+ - name: Compute COMANAGE_REGISTRY_SRC_URL
+ shell: bash
+ run: |
+ set -euo pipefail
+ echo "COMANAGE_REGISTRY_SRC_URL=https://github.internet2.edu/COmanage/registry/archive/${COMANAGE_REGISTRY_VERSION}.tar.gz" >> "$GITHUB_ENV"
+
+ - name: Show versions
+ shell: bash
+ run: |
+ set -euxo pipefail
+ php -v
+ composer --version
+ docker --version
+
+ - name: Install OS packages needed for setup
+ shell: bash
+ run: |
+ set -euxo pipefail
+ sudo apt-get update
+ sudo apt-get install -y --no-install-recommends \
+ wget curl tar ca-certificates \
+ git unzip \
+ libicu-dev \
+ libldap2-dev \
+ libxml2 \
+ zlib1g \
+ libsodium23 \
+ libpng-dev \
+ libjpeg-dev \
+ libfreetype6-dev \
+ libxslt1.1 \
+ libmemcached11
+
+ - name: Create apache user/group (to match your chown step)
+ shell: bash
+ run: |
+ set -euxo pipefail
+ if ! getent group apache >/dev/null; then
+ sudo groupadd --system apache
+ fi
+ if ! id -u apache >/dev/null 2>&1; then
+ sudo useradd --system --no-create-home --gid apache apache
+ fi
+
+ - name: Download and unpack COmanage Registry (${COMANAGE_REGISTRY_VERSION})
+ shell: bash
+ env:
+ GHE_TOKEN: ${{ secrets.GHE_TOKEN }}
+ run: |
+ set -euxo pipefail
+
+ sudo mkdir -p "${COMANAGE_REGISTRY_DIR}"
+ sudo rm -rf "${COMANAGE_REGISTRY_DIR:?}/"*
+
+ # If your GitHub Enterprise requires auth, use token. If not needed, wget/curl will still work.
+ if [ -n "${GHE_TOKEN:-}" ]; then
+ curl -fL \
+ -H "Authorization: token ${GHE_TOKEN}" \
+ -o /tmp/comanage.tar.gz \
+ "${COMANAGE_REGISTRY_SRC_URL}"
+ else
+ wget -O /tmp/comanage.tar.gz "${COMANAGE_REGISTRY_SRC_URL}"
+ fi
+
+ sudo tar -zxf /tmp/comanage.tar.gz -C "${COMANAGE_REGISTRY_DIR}" --strip-components=1
+ rm -f /tmp/comanage.tar.gz
+
+ sudo rm -rf "${COMANAGE_REGISTRY_DIR}/local/"*
+
+ - name: Create local tmp/cache + webroot symlink
+ shell: bash
+ run: |
+ set -euxo pipefail
+
+ sudo mkdir -p "${COMANAGE_REGISTRY_DIR}/local"
+ sudo mkdir -p /var/cache/registry/tmp
+
+ sudo rm -rf "${COMANAGE_REGISTRY_DIR}/local/tmp"
+ sudo ln -s /var/cache/registry/tmp "${COMANAGE_REGISTRY_DIR}/local/tmp"
+
+ sudo chown -h apache:apache "${COMANAGE_REGISTRY_DIR}/local/tmp"
+
+ sudo mkdir -p /var/www/html
+ sudo rm -f "/var/www/html/${COMANAGE_REGISTRY_URL_PATH}"
+ sudo ln -s "${COMANAGE_REGISTRY_DIR}/app/webroot" "/var/www/html/${COMANAGE_REGISTRY_URL_PATH}"
+
+ echo "Registry URL path is: ${COMANAGE_REGISTRY_URL_PATH}"
+ echo "Registry Version is: ${COMANAGE_REGISTRY_VERSION}"
+
+ - name: Composer install (app/)
+ shell: bash
+ working-directory: /srv/comanage-registry/app
+ run: |
+ set -euxo pipefail
+ composer install --no-interaction --no-progress
+
+ - name: Run PHPUnit (DB_ENGINE=${{ matrix.db_engine }})
+ shell: bash
+ working-directory: /srv/comanage-registry/app
+ env:
+ DB_ENGINE: ${{ matrix.db_engine }}
+ run: |
+ set -euxo pipefail
+ DB_ENGINE="${DB_ENGINE}" vendor/bin/phpunit --testsuite app
\ No newline at end of file
diff --git a/app/.github/ISSUE_TEMPLATE.md b/app/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index 660b5399d..000000000
--- a/app/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,23 +0,0 @@
-This is a (multiple allowed):
-
-* [x] bug
-* [ ] enhancement
-* [ ] feature-discussion (RFC)
-
-* CakePHP Application Skeleton Version: EXACT RELEASE VERSION OR COMMIT HASH, HERE.
-* Platform and Target: YOUR WEB-SERVER, DATABASE AND OTHER RELEVANT INFO AND HOW THE REQUEST IS BEING MADE, HERE.
-
-### What you did
-EXPLAIN WHAT YOU DID, PREFERABLY WITH CODE EXAMPLES, HERE.
-
-### What happened
-EXPLAIN WHAT IS ACTUALLY HAPPENING, HERE.
-
-### What you expected to happen
-EXPLAIN WHAT IS TO BE EXPECTED, HERE.
-
-P.S. Remember, an issue is not the place to ask questions. You can use [Stack Overflow](https://stackoverflow.com/questions/tagged/cakephp)
-for that or join the #cakephp channel on irc.freenode.net, where we will be more
-than happy to help answer your questions.
-
-Before you open an issue, please check if a similar issue already exists or has been closed before.
\ No newline at end of file
diff --git a/app/.github/PULL_REQUEST_TEMPLATE.md b/app/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index aae4cbd16..000000000
--- a/app/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/app/.github/workflows/ci.yml b/app/.github/workflows/ci.yml
deleted file mode 100644
index 5f54d2705..000000000
--- a/app/.github/workflows/ci.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-name: CI
-
-on:
- push:
- branches:
- - master
- - '4.next'
- pull_request:
- branches:
- - '*'
-
-jobs:
- testsuite:
- runs-on: ubuntu-18.04
- strategy:
- fail-fast: false
- matrix:
- php-version: ['7.2', '7.4', '8.0']
- name: PHP ${{ matrix.php-version }}
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-version }}
- extensions: mbstring, intl, pdo_sqlite, pdo_mysql
- coverage: none
-
- - name: Composer install
- run: |
- if [[ ${{ matrix.php-version }} == '8.0' ]]; then
- composer install --ignore-platform-reqs
- else
- composer install
- fi
- composer run-script post-install-cmd --no-interaction
-
- - name: Run PHPUnit
- run: |
- vendor/bin/phpunit
-
- coding-standard:
- name: Coding Standard
- runs-on: ubuntu-18.04
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: '7.2'
- extensions: mbstring, intl
- coverage: none
-
- - name: Composer install
- run: composer install
-
- - name: Run PHP CodeSniffer
- run: composer cs-check
-
- static-analysis:
- name: Static Analysis
- runs-on: ubuntu-18.04
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: '7.2'
- extensions: mbstring, intl
- coverage: none
-
- - name: Composer install
- run: composer require --dev phpstan/phpstan:^0.12
-
- - name: Run phpstan
- run: vendor/bin/phpstan.phar analyse
diff --git a/app/.github/workflows/stale.yml b/app/.github/workflows/stale.yml
deleted file mode 100644
index 9192ec78f..000000000
--- a/app/.github/workflows/stale.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Mark stale issues and pull requests
-
-on:
- schedule:
- - cron: "0 0 * * *"
-
-jobs:
- stale:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/stale@v1
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- stale-issue-message: 'This issue is stale because it has been open for 120 days with no activity. Remove the `stale` label or comment or this will be closed in 15 days'
- stale-pr-message: 'This pull request is stale because it has been open 30 days with no activity. Remove the `stale` label or comment on this issue, or it will be closed in 15 days'
- stale-issue-label: 'stale'
- stale-pr-label: 'stale'
- days-before-stale: 120
- days-before-close: 15
- exempt-issue-label: 'pinned'
- exempt-pr-label: 'pinned'
diff --git a/app/composer.json b/app/composer.json
index c60e2c661..f9b594541 100644
--- a/app/composer.json
+++ b/app/composer.json
@@ -25,7 +25,9 @@
"cakephp/debug_kit": "^5.0.0",
"josegonzalez/dotenv": "^4.0",
"phpunit/phpunit": "^10.5.5 || ^11.1.3 || ^12.1",
- "psy/psysh": "@stable"
+ "psy/psysh": "@stable",
+ "symfony/http-client": "^7.4",
+ "testcontainers/testcontainers": "^1.0"
},
"suggest": {
"markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.",
@@ -89,8 +91,9 @@
"config": {
"sort-packages": true,
"allow-plugins": {
+ "cakephp/plugin-installer": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
- "cakephp/plugin-installer": true
+ "php-http/discovery": true
}
}
}
diff --git a/app/composer.lock b/app/composer.lock
index e457db029..4fd524c33 100644
--- a/app/composer.lock
+++ b/app/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "9fe7a17129cc9dbf9c3ad66bbd6c6814",
+ "content-hash": "a9ba2a0e40387b0447c3778a0672d780",
"packages": [
{
"name": "cakephp/authentication",
- "version": "3.3.2",
+ "version": "3.3.5",
"source": {
"type": "git",
"url": "https://github.com/cakephp/authentication.git",
- "reference": "76e859261832866884b8b8d78dc14e6d22fb3451"
+ "reference": "9a12edc97de43f95eb4fecf033b623d5b17b436c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/authentication/zipball/76e859261832866884b8b8d78dc14e6d22fb3451",
- "reference": "76e859261832866884b8b8d78dc14e6d22fb3451",
+ "url": "https://api.github.com/repos/cakephp/authentication/zipball/9a12edc97de43f95eb4fecf033b623d5b17b436c",
+ "reference": "9a12edc97de43f95eb4fecf033b623d5b17b436c",
"shasum": ""
},
"require": {
@@ -33,7 +33,7 @@
"cakephp/cakephp": "^5.1.0",
"cakephp/cakephp-codesniffer": "^5.0",
"firebase/php-jwt": "^6.2",
- "phpunit/phpunit": "^10.5.5 || ^11.1.3 || ^12.0.9"
+ "phpunit/phpunit": "^10.5.58 || ^11.5.3 || ^12.4"
},
"suggest": {
"cakephp/cakephp": "Install full core to use \"CookieAuthenticator\".",
@@ -72,20 +72,20 @@
"issues": "https://github.com/cakephp/authentication/issues",
"source": "https://github.com/cakephp/authentication"
},
- "time": "2025-07-30T20:38:32+00:00"
+ "time": "2026-01-31T00:28:31+00:00"
},
{
"name": "cakephp/cakephp",
- "version": "5.2.7",
+ "version": "5.2.12",
"source": {
"type": "git",
"url": "https://github.com/cakephp/cakephp.git",
- "reference": "6912570c76b7c27410ab7524d119e5a97f851508"
+ "reference": "e2cdc8f1c907d204f4bccf76bac1b2b93eea922e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/cakephp/zipball/6912570c76b7c27410ab7524d119e5a97f851508",
- "reference": "6912570c76b7c27410ab7524d119e5a97f851508",
+ "url": "https://api.github.com/repos/cakephp/cakephp/zipball/e2cdc8f1c907d204f4bccf76bac1b2b93eea922e",
+ "reference": "e2cdc8f1c907d204f4bccf76bac1b2b93eea922e",
"shasum": ""
},
"require": {
@@ -133,7 +133,7 @@
"cakephp/validation": "self.version"
},
"require-dev": {
- "cakephp/cakephp-codesniffer": "^5.2",
+ "cakephp/cakephp-codesniffer": "^5.3",
"http-interop/http-factory-tests": "dev-main",
"mikey179/vfsstream": "^1.6.10",
"mockery/mockery": "^1.6",
@@ -193,20 +193,20 @@
"issues": "https://github.com/cakephp/cakephp/issues",
"source": "https://github.com/cakephp/cakephp"
},
- "time": "2025-08-31T02:18:16+00:00"
+ "time": "2026-01-15T02:54:29+00:00"
},
{
"name": "cakephp/chronos",
- "version": "3.2.0",
+ "version": "3.3.1",
"source": {
"type": "git",
"url": "https://github.com/cakephp/chronos.git",
- "reference": "6c820947bc1372a250288ab164ec1b3bb7afab39"
+ "reference": "1e417fdd4a3c6602b6c4634cf54aa9b065127fa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/chronos/zipball/6c820947bc1372a250288ab164ec1b3bb7afab39",
- "reference": "6c820947bc1372a250288ab164ec1b3bb7afab39",
+ "url": "https://api.github.com/repos/cakephp/chronos/zipball/1e417fdd4a3c6602b6c4634cf54aa9b065127fa2",
+ "reference": "1e417fdd4a3c6602b6c4634cf54aa9b065127fa2",
"shasum": ""
},
"require": {
@@ -218,7 +218,7 @@
},
"require-dev": {
"cakephp/cakephp-codesniffer": "^5.0",
- "phpunit/phpunit": "^10.1.0 || ^11.1.3"
+ "phpunit/phpunit": "^10.5.58 || ^11.1.3"
},
"type": "library",
"autoload": {
@@ -252,31 +252,32 @@
"issues": "https://github.com/cakephp/chronos/issues",
"source": "https://github.com/cakephp/chronos"
},
- "time": "2025-06-28T11:35:59+00:00"
+ "time": "2025-10-30T13:08:23+00:00"
},
{
"name": "cakephp/migrations",
- "version": "4.7.2",
+ "version": "4.9.6",
"source": {
"type": "git",
"url": "https://github.com/cakephp/migrations.git",
- "reference": "69732d98d84b99f9b0a8af94de7dd9ac242aeaff"
+ "reference": "7268abac5834980608579354701f972bcf0edfc8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/migrations/zipball/69732d98d84b99f9b0a8af94de7dd9ac242aeaff",
- "reference": "69732d98d84b99f9b0a8af94de7dd9ac242aeaff",
+ "url": "https://api.github.com/repos/cakephp/migrations/zipball/7268abac5834980608579354701f972bcf0edfc8",
+ "reference": "7268abac5834980608579354701f972bcf0edfc8",
"shasum": ""
},
"require": {
- "cakephp/cache": "^5.2",
- "cakephp/orm": "^5.2",
+ "cakephp/cache": "^5.2.9",
+ "cakephp/database": "^5.2.9",
+ "cakephp/orm": "^5.2.9",
"php": ">=8.1",
"robmorgan/phinx": "^0.16.10"
},
"require-dev": {
"cakephp/bake": "^3.3",
- "cakephp/cakephp": "^5.2.5",
+ "cakephp/cakephp": "^5.2.9",
"cakephp/cakephp-codesniffer": "^5.0",
"phpunit/phpunit": "^10.5.5 || ^11.1.3 || ^12.2.4"
},
@@ -313,7 +314,7 @@
"issues": "https://github.com/cakephp/migrations/issues",
"source": "https://github.com/cakephp/migrations"
},
- "time": "2025-09-01T04:46:50+00:00"
+ "time": "2026-02-24T14:16:38+00:00"
},
{
"name": "cakephp/plugin-installer",
@@ -366,16 +367,16 @@
},
{
"name": "composer/ca-bundle",
- "version": "1.5.8",
+ "version": "1.5.10",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "719026bb30813accb68271fee7e39552a58e9f65"
+ "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65",
- "reference": "719026bb30813accb68271fee7e39552a58e9f65",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/961a5e4056dd2e4a2eedcac7576075947c28bf63",
+ "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63",
"shasum": ""
},
"require": {
@@ -422,7 +423,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.8"
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.10"
},
"funding": [
{
@@ -434,20 +435,20 @@
"type": "github"
}
],
- "time": "2025-08-20T18:49:47+00:00"
+ "time": "2025-12-08T15:06:51+00:00"
},
{
"name": "doctrine/dbal",
- "version": "3.10.2",
+ "version": "3.10.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282"
+ "reference": "95d84866bf3c04b2ddca1df7c049714660959aef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/c6c16cf787eaba3112203dfcd715fa2059c62282",
- "reference": "c6c16cf787eaba3112203dfcd715fa2059c62282",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/95d84866bf3c04b2ddca1df7c049714660959aef",
+ "reference": "95d84866bf3c04b2ddca1df7c049714660959aef",
"shasum": ""
},
"require": {
@@ -463,16 +464,16 @@
},
"require-dev": {
"doctrine/cache": "^1.11|^2.0",
- "doctrine/coding-standard": "13.0.1",
+ "doctrine/coding-standard": "14.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2023.1",
- "phpstan/phpstan": "2.1.22",
+ "phpstan/phpstan": "2.1.30",
"phpstan/phpstan-strict-rules": "^2",
- "phpunit/phpunit": "9.6.23",
- "slevomat/coding-standard": "8.16.2",
- "squizlabs/php_codesniffer": "3.13.1",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/console": "^4.4|^5.4|^6.0|^7.0"
+ "phpunit/phpunit": "9.6.34",
+ "slevomat/coding-standard": "8.27.1",
+ "squizlabs/php_codesniffer": "4.0.1",
+ "symfony/cache": "^5.4|^6.0|^7.0|^8.0",
+ "symfony/console": "^4.4|^5.4|^6.0|^7.0|^8.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -532,7 +533,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.10.2"
+ "source": "https://github.com/doctrine/dbal/tree/3.10.5"
},
"funding": [
{
@@ -548,33 +549,33 @@
"type": "tidelift"
}
],
- "time": "2025-09-04T23:51:27+00:00"
+ "time": "2026-02-24T08:03:57+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "1.1.5",
+ "version": "1.1.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"
+ "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
- "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
+ "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"conflict": {
- "phpunit/phpunit": "<=7.5 || >=13"
+ "phpunit/phpunit": "<=7.5 || >=14"
},
"require-dev": {
- "doctrine/coding-standard": "^9 || ^12 || ^13",
- "phpstan/phpstan": "1.4.10 || 2.1.11",
+ "doctrine/coding-standard": "^9 || ^12 || ^14",
+ "phpstan/phpstan": "1.4.10 || 2.1.30",
"phpstan/phpstan-phpunit": "^1.0 || ^2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0",
"psr/log": "^1 || ^2 || ^3"
},
"suggest": {
@@ -594,22 +595,22 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.5"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.6"
},
- "time": "2025-04-07T20:06:18+00:00"
+ "time": "2026-02-07T07:09:04+00:00"
},
{
"name": "doctrine/event-manager",
- "version": "2.0.1",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e"
+ "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e",
- "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/dda33921b198841ca8dbad2eaa5d4d34769d18cf",
+ "reference": "dda33921b198841ca8dbad2eaa5d4d34769d18cf",
"shasum": ""
},
"require": {
@@ -619,10 +620,10 @@
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^12",
- "phpstan/phpstan": "^1.8.8",
- "phpunit/phpunit": "^10.5",
- "vimeo/psalm": "^5.24"
+ "doctrine/coding-standard": "^14",
+ "phpdocumentor/guides-cli": "^1.4",
+ "phpstan/phpstan": "^2.1.32",
+ "phpunit/phpunit": "^10.5.58"
},
"type": "library",
"autoload": {
@@ -671,7 +672,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/2.0.1"
+ "source": "https://github.com/doctrine/event-manager/tree/2.1.1"
},
"funding": [
{
@@ -687,24 +688,24 @@
"type": "tidelift"
}
],
- "time": "2024-05-22T20:47:39+00:00"
+ "time": "2026-01-29T07:11:08+00:00"
},
{
"name": "laminas/laminas-diactoros",
- "version": "3.6.0",
+ "version": "3.8.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
- "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f"
+ "reference": "60c182916b2749480895601649563970f3f12ec4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b068eac123f21c0e592de41deeb7403b88e0a89f",
- "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4",
+ "reference": "60c182916b2749480895601649563970f3f12ec4",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.1 || ^2.0"
},
@@ -721,11 +722,11 @@
"ext-gd": "*",
"ext-libxml": "*",
"http-interop/http-factory-tests": "^2.2.0",
- "laminas/laminas-coding-standard": "~3.0.0",
+ "laminas/laminas-coding-standard": "~3.1.0",
"php-http/psr7-integration-tests": "^1.4.0",
"phpunit/phpunit": "^10.5.36",
- "psalm/plugin-phpunit": "^0.19.0",
- "vimeo/psalm": "^5.26.1"
+ "psalm/plugin-phpunit": "^0.19.5",
+ "vimeo/psalm": "^6.13"
},
"type": "library",
"extra": {
@@ -775,24 +776,24 @@
"type": "community_bridge"
}
],
- "time": "2025-05-05T16:03:34+00:00"
+ "time": "2025-10-12T15:31:36+00:00"
},
{
"name": "laminas/laminas-httphandlerrunner",
- "version": "2.12.0",
+ "version": "2.13.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-httphandlerrunner.git",
- "reference": "b14da3519c650e9436e410cfedee6f860312eff9"
+ "reference": "181eaeeb838ad3d80fbbcfb0657a46bc212bbd4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/b14da3519c650e9436e410cfedee6f860312eff9",
- "reference": "b14da3519c650e9436e410cfedee6f860312eff9",
+ "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/181eaeeb838ad3d80fbbcfb0657a46bc212bbd4e",
+ "reference": "181eaeeb838ad3d80fbbcfb0657a46bc212bbd4e",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/http-message": "^1.0 || ^2.0",
"psr/http-message-implementation": "^1.0 || ^2.0",
"psr/http-server-handler": "^1.0"
@@ -842,7 +843,7 @@
"type": "community_bridge"
}
],
- "time": "2025-05-13T21:21:16+00:00"
+ "time": "2025-10-12T20:58:29+00:00"
},
{
"name": "league/container",
@@ -928,33 +929,38 @@
},
{
"name": "league/uri",
- "version": "7.5.1",
+ "version": "7.8.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "81fb5145d2644324614cc532b28efd0215bda430"
+ "reference": "4436c6ec8d458e4244448b069cc572d088230b76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430",
- "reference": "81fb5145d2644324614cc532b28efd0215bda430",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76",
+ "reference": "4436c6ec8d458e4244448b069cc572d088230b76",
"shasum": ""
},
"require": {
- "league/uri-interfaces": "^7.5",
- "php": "^8.1"
+ "league/uri-interfaces": "^7.8",
+ "php": "^8.1",
+ "psr/http-factory": "^1"
},
"conflict": {
"league/uri-schemes": "^1.0"
},
"suggest": {
"ext-bcmath": "to improve IPV4 host parsing",
+ "ext-dom": "to convert the URI into an HTML anchor tag",
"ext-fileinfo": "to create Data URI from file contennts",
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
- "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
- "league/uri-components": "Needed to easily manipulate URI objects components",
+ "ext-uri": "to use the PHP native URI class",
+ "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain",
+ "league/uri-components": "to provide additional tools to manipulate URI objects components",
+ "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP",
"php-64bit": "to improve IPV4 host parsing",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
@@ -982,6 +988,7 @@
"description": "URI manipulation library",
"homepage": "https://uri.thephpleague.com",
"keywords": [
+ "URN",
"data-uri",
"file-uri",
"ftp",
@@ -994,9 +1001,11 @@
"psr-7",
"query-string",
"querystring",
+ "rfc2141",
"rfc3986",
"rfc3987",
"rfc6570",
+ "rfc8141",
"uri",
"uri-template",
"url",
@@ -1006,7 +1015,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri/tree/7.5.1"
+ "source": "https://github.com/thephpleague/uri/tree/7.8.0"
},
"funding": [
{
@@ -1014,26 +1023,25 @@
"type": "github"
}
],
- "time": "2024-12-08T08:40:02+00:00"
+ "time": "2026-01-14T17:24:56+00:00"
},
{
"name": "league/uri-interfaces",
- "version": "7.5.0",
+ "version": "7.8.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742"
+ "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
- "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
+ "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
"shasum": ""
},
"require": {
"ext-filter": "*",
"php": "^8.1",
- "psr/http-factory": "^1",
"psr/http-message": "^1.1 || ^2.0"
},
"suggest": {
@@ -1041,6 +1049,7 @@
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
"php-64bit": "to improve IPV4 host parsing",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
@@ -1065,7 +1074,7 @@
"homepage": "https://nyamsprod.com"
}
],
- "description": "Common interfaces and classes for URI representation and interaction",
+ "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI",
"homepage": "https://uri.thephpleague.com",
"keywords": [
"data-uri",
@@ -1090,7 +1099,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0"
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0"
},
"funding": [
{
@@ -1098,7 +1107,7 @@
"type": "github"
}
],
- "time": "2024-12-08T08:18:47+00:00"
+ "time": "2026-01-15T06:54:53+00:00"
},
{
"name": "masterminds/html5",
@@ -1169,29 +1178,28 @@
},
{
"name": "mobiledetect/mobiledetectlib",
- "version": "4.8.09",
+ "version": "4.8.10",
"source": {
"type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git",
- "reference": "a06fe2e546a06bb8c2639d6823d5250b2efb3209"
+ "reference": "96b1e1fa9a968de7660a031106ab529f659d0192"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/a06fe2e546a06bb8c2639d6823d5250b2efb3209",
- "reference": "a06fe2e546a06bb8c2639d6823d5250b2efb3209",
+ "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/96b1e1fa9a968de7660a031106ab529f659d0192",
+ "reference": "96b1e1fa9a968de7660a031106ab529f659d0192",
"shasum": ""
},
"require": {
"php": ">=8.0",
- "psr/cache": "^3.0",
"psr/simple-cache": "^3"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^v3.65.0",
+ "friendsofphp/php-cs-fixer": "^v3.75.0",
"phpbench/phpbench": "^1.2",
- "phpstan/phpstan": "^1.12.x-dev",
- "phpunit/phpunit": "^9.6.18",
- "squizlabs/php_codesniffer": "^3.11.1"
+ "phpstan/phpstan": "^2.1.11",
+ "phpunit/phpunit": "^9.6.22",
+ "squizlabs/php_codesniffer": "^3.12.1"
},
"type": "library",
"autoload": {
@@ -1222,7 +1230,7 @@
],
"support": {
"issues": "https://github.com/serbanghita/Mobile-Detect/issues",
- "source": "https://github.com/serbanghita/Mobile-Detect/tree/4.8.09"
+ "source": "https://github.com/serbanghita/Mobile-Detect/tree/4.8.10"
},
"funding": [
{
@@ -1230,7 +1238,7 @@
"type": "github"
}
],
- "time": "2024-12-10T15:32:06+00:00"
+ "time": "2026-01-09T16:21:59+00:00"
},
{
"name": "psr/cache",
@@ -1845,22 +1853,22 @@
},
{
"name": "symfony/config",
- "version": "v7.3.2",
+ "version": "v7.4.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "faef36e271bbeb74a9d733be4b56419b157762e2"
+ "reference": "6c17162555bfb58957a55bb0e43e00035b6ae3d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/faef36e271bbeb74a9d733be4b56419b157762e2",
- "reference": "faef36e271bbeb74a9d733be4b56419b157762e2",
+ "url": "https://api.github.com/repos/symfony/config/zipball/6c17162555bfb58957a55bb0e43e00035b6ae3d5",
+ "reference": "6c17162555bfb58957a55bb0e43e00035b6ae3d5",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/filesystem": "^7.1",
+ "symfony/filesystem": "^7.1|^8.0",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
@@ -1868,11 +1876,11 @@
"symfony/service-contracts": "<2.5"
},
"require-dev": {
- "symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/finder": "^6.4|^7.0",
- "symfony/messenger": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0|^8.0",
+ "symfony/finder": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^6.4|^7.0"
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -1900,7 +1908,7 @@
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/config/tree/v7.3.2"
+ "source": "https://github.com/symfony/config/tree/v7.4.7"
},
"funding": [
{
@@ -1920,20 +1928,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-26T13:55:06+00:00"
+ "time": "2026-03-06T10:41:14+00:00"
},
{
"name": "symfony/console",
- "version": "v7.3.3",
+ "version": "v7.4.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
+ "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
- "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
+ "url": "https://api.github.com/repos/symfony/console/zipball/e1e6770440fb9c9b0cf725f81d1361ad1835329d",
+ "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d",
"shasum": ""
},
"require": {
@@ -1941,7 +1949,7 @@
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^7.2"
+ "symfony/string": "^7.2|^8.0"
},
"conflict": {
"symfony/dependency-injection": "<6.4",
@@ -1955,16 +1963,16 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^6.4|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/event-dispatcher": "^6.4|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/lock": "^6.4|^7.0",
- "symfony/messenger": "^6.4|^7.0",
- "symfony/process": "^6.4|^7.0",
- "symfony/stopwatch": "^6.4|^7.0",
- "symfony/var-dumper": "^6.4|^7.0"
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/event-dispatcher": "^6.4|^7.0|^8.0",
+ "symfony/http-foundation": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/lock": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/stopwatch": "^6.4|^7.0|^8.0",
+ "symfony/var-dumper": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -1998,7 +2006,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.3.3"
+ "source": "https://github.com/symfony/console/tree/v7.4.7"
},
"funding": [
{
@@ -2018,7 +2026,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-25T06:35:40+00:00"
+ "time": "2026-03-06T14:06:20+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -2089,16 +2097,16 @@
},
{
"name": "symfony/filesystem",
- "version": "v7.3.2",
+ "version": "v7.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd"
+ "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd",
- "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e",
+ "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e",
"shasum": ""
},
"require": {
@@ -2107,7 +2115,7 @@
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
- "symfony/process": "^6.4|^7.0"
+ "symfony/process": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -2135,7 +2143,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v7.3.2"
+ "source": "https://github.com/symfony/filesystem/tree/v7.4.6"
},
"funding": [
{
@@ -2155,27 +2163,28 @@
"type": "tidelift"
}
],
- "time": "2025-07-07T08:17:47+00:00"
+ "time": "2026-02-25T16:50:00+00:00"
},
{
"name": "symfony/html-sanitizer",
- "version": "v7.3.3",
+ "version": "v7.4.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/html-sanitizer.git",
- "reference": "8740fc48979f649dee8b8fc51a2698e5c190bf12"
+ "reference": "e4df2abd9391ce3263baa1aea9e993f6da74a3c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/8740fc48979f649dee8b8fc51a2698e5c190bf12",
- "reference": "8740fc48979f649dee8b8fc51a2698e5c190bf12",
+ "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/e4df2abd9391ce3263baa1aea9e993f6da74a3c7",
+ "reference": "e4df2abd9391ce3263baa1aea9e993f6da74a3c7",
"shasum": ""
},
"require": {
"ext-dom": "*",
"league/uri": "^6.5|^7.0",
"masterminds/html5": "^2.7.2",
- "php": ">=8.2"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -2208,7 +2217,7 @@
"sanitizer"
],
"support": {
- "source": "https://github.com/symfony/html-sanitizer/tree/v7.3.3"
+ "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.7"
},
"funding": [
{
@@ -2228,7 +2237,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-12T10:34:03+00:00"
+ "time": "2026-03-06T13:15:18+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -2567,16 +2576,16 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
+ "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
- "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43",
+ "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43",
"shasum": ""
},
"require": {
@@ -2630,7 +2639,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.6.1"
},
"funding": [
{
@@ -2641,31 +2650,36 @@
"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": "2025-04-25T09:37:31+00:00"
+ "time": "2025-07-15T11:30:57+00:00"
},
{
"name": "symfony/string",
- "version": "v7.3.3",
+ "version": "v7.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
+ "reference": "9f209231affa85aa930a5e46e6eb03381424b30b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
- "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
+ "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b",
+ "reference": "9f209231affa85aa930a5e46e6eb03381424b30b",
"shasum": ""
},
"require": {
"php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-grapheme": "~1.33",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
@@ -2673,12 +2687,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/emoji": "^7.1",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/http-client": "^6.4|^7.0",
- "symfony/intl": "^6.4|^7.0",
+ "symfony/emoji": "^7.1|^8.0",
+ "symfony/http-client": "^6.4|^7.0|^8.0",
+ "symfony/intl": "^6.4|^7.0|^8.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^6.4|^7.0"
+ "symfony/var-exporter": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -2717,7 +2730,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.3.3"
+ "source": "https://github.com/symfony/string/tree/v7.4.6"
},
"funding": [
{
@@ -2737,32 +2750,181 @@
"type": "tidelift"
}
],
- "time": "2025-08-25T06:35:40+00:00"
+ "time": "2026-02-09T09:33:46+00:00"
}
],
"packages-dev": [
+ {
+ "name": "beluga-php/docker-php",
+ "version": "v1.45.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beluga-php/docker-php.git",
+ "reference": "2eaf579e19ed08e8d3360bee545ad85f18deadc0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beluga-php/docker-php/zipball/2eaf579e19ed08e8d3360bee545ad85f18deadc0",
+ "reference": "2eaf579e19ed08e8d3360bee545ad85f18deadc0",
+ "shasum": ""
+ },
+ "require": {
+ "beluga-php/docker-php-api": "7.1.45.*",
+ "nyholm/psr7": "^1.8",
+ "php": ">=8.1",
+ "php-http/client-common": "^2.7",
+ "php-http/discovery": "^1.19",
+ "php-http/socket-client": "^2.3",
+ "psr/http-message": "^2.0",
+ "symfony/filesystem": "^6.3 || ^7.0 || ^8.0",
+ "symfony/process": "^6.3 || ^7.0 || ^8.0",
+ "symfony/serializer": "^6.3 || ^7.0 || ^8.0"
+ },
+ "conflict": {
+ "docker-php/docker-php": "*",
+ "nikic/php-parser": "<4.13",
+ "php-http/message": "<1.15"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42",
+ "friendsofphp/php-cs-fixer": "^3.8",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5.46",
+ "psy/psysh": "^0.12.8",
+ "roave/security-advisories": "dev-latest"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "1.41": "1.41.x-dev",
+ "1.42": "1.42.x-dev",
+ "1.43": "1.43.x-dev",
+ "1.44": "1.44.x-dev",
+ "dev-master": "1.45.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Docker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A Docker PHP client",
+ "support": {
+ "issues": "https://github.com/beluga-php/docker-php/issues",
+ "source": "https://github.com/beluga-php/docker-php/tree/v1.45.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/flavioheleno",
+ "type": "github"
+ }
+ ],
+ "time": "2025-12-27T21:42:50+00:00"
+ },
+ {
+ "name": "beluga-php/docker-php-api",
+ "version": "v7.1.45.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beluga-php/docker-php-api.git",
+ "reference": "8f3ed3b9a69e161489e07664b99eb73258e7eef2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beluga-php/docker-php-api/zipball/8f3ed3b9a69e161489e07664b99eb73258e7eef2",
+ "reference": "8f3ed3b9a69e161489e07664b99eb73258e7eef2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "jane-php/json-schema-runtime": "^7.5",
+ "jane-php/open-api-runtime": "^7.5",
+ "php": ">=8.1",
+ "php-http/client-common": "^2.7",
+ "php-http/discovery": "^1.19",
+ "php-http/multipart-stream-builder": "^1.3",
+ "psr/http-client": "^1.0",
+ "psr/http-client-implementation": "*",
+ "psr/http-factory": "^1.0",
+ "psr/http-factory-implementation": "*",
+ "psr/http-message": "^2.0",
+ "psr/http-message-implementation": "*",
+ "symfony/deprecation-contracts": "^3.3",
+ "symfony/options-resolver": "^6.3 || ^7.0 || ^8.0",
+ "symfony/serializer": "^6.3 || ^7.0 || ^8.0",
+ "symfony/validator": "^6.3 || ^7.0 || ^8.0"
+ },
+ "conflict": {
+ "docker-php/docker-php-api": "*"
+ },
+ "require-dev": {
+ "ergebnis/composer-normalize": "^2.42",
+ "friendsofphp/php-cs-fixer": "^3.8",
+ "jane-php/open-api-3": "^7.4",
+ "roave/security-advisories": "dev-latest"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "6.1.36": "6.1.36.x-dev",
+ "6.1.41": "6.1.41.x-dev",
+ "7.1.41": "7.1.41.x-dev",
+ "7.1.42": "7.1.42.x-dev",
+ "7.1.43": "7.1.43.x-dev",
+ "7.1.44": "7.1.44.x-dev",
+ "7.1.45": "7.1.45.x-dev",
+ "dev-main": "7.1.46.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Docker\\API\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Docker API generated files from OpenAPI Specification",
+ "support": {
+ "issues": "https://github.com/beluga-php/docker-php-api/issues",
+ "source": "https://github.com/beluga-php/docker-php-api/tree/v7.1.45.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/flavioheleno",
+ "type": "github"
+ }
+ ],
+ "time": "2026-01-09T13:29:42+00:00"
+ },
{
"name": "brick/varexporter",
- "version": "0.6.0",
+ "version": "0.7.0",
"source": {
"type": "git",
"url": "https://github.com/brick/varexporter.git",
- "reference": "af98bfc2b702a312abbcaff37656dbe419cec5bc"
+ "reference": "b3a50b8f630a9ed5015ea3e1f00479af261ed80d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/varexporter/zipball/af98bfc2b702a312abbcaff37656dbe419cec5bc",
- "reference": "af98bfc2b702a312abbcaff37656dbe419cec5bc",
+ "url": "https://api.github.com/repos/brick/varexporter/zipball/b3a50b8f630a9ed5015ea3e1f00479af261ed80d",
+ "reference": "b3a50b8f630a9ed5015ea3e1f00479af261ed80d",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": "^8.1"
+ "php": "^8.2"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^10.5",
- "vimeo/psalm": "6.8.4"
+ "phpunit/phpunit": "^11.0",
+ "vimeo/psalm": "6.14.3"
},
"type": "library",
"autoload": {
@@ -2780,7 +2942,7 @@
],
"support": {
"issues": "https://github.com/brick/varexporter/issues",
- "source": "https://github.com/brick/varexporter/tree/0.6.0"
+ "source": "https://github.com/brick/varexporter/tree/0.7.0"
},
"funding": [
{
@@ -2788,33 +2950,33 @@
"type": "github"
}
],
- "time": "2025-02-20T17:42:39+00:00"
+ "time": "2026-01-06T22:56:00+00:00"
},
{
"name": "cakephp/bake",
- "version": "3.4.0",
+ "version": "3.6.2",
"source": {
"type": "git",
"url": "https://github.com/cakephp/bake.git",
- "reference": "a0d2b96486dc5b8547b8e358cd1e218b9ed07d9d"
+ "reference": "40a6208109a6d3922fb10c0446a00b50c1b098f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/bake/zipball/a0d2b96486dc5b8547b8e358cd1e218b9ed07d9d",
- "reference": "a0d2b96486dc5b8547b8e358cd1e218b9ed07d9d",
+ "url": "https://api.github.com/repos/cakephp/bake/zipball/40a6208109a6d3922fb10c0446a00b50c1b098f6",
+ "reference": "40a6208109a6d3922fb10c0446a00b50c1b098f6",
"shasum": ""
},
"require": {
- "brick/varexporter": "^0.6.0",
+ "brick/varexporter": "^0.6.0 || ^0.7.0",
"cakephp/cakephp": "^5.1",
- "cakephp/twig-view": "^2.0.0",
+ "cakephp/twig-view": "^2.0.2",
"nikic/php-parser": "^5.0.0",
"php": ">=8.1"
},
"require-dev": {
"cakephp/cakephp-codesniffer": "^5.0.0",
"cakephp/debug_kit": "^5.0.0",
- "phpunit/phpunit": "^10.5.5 || ^11.1.3"
+ "phpunit/phpunit": "^10.5.40 || ^11.5.20 || ^12.2.4"
},
"type": "cakephp-plugin",
"autoload": {
@@ -2845,30 +3007,31 @@
"issues": "https://github.com/cakephp/bake/issues",
"source": "https://github.com/cakephp/bake"
},
- "time": "2025-06-25T19:18:09+00:00"
+ "time": "2026-02-13T12:33:29+00:00"
},
{
"name": "cakephp/cakephp-codesniffer",
- "version": "5.2.2",
+ "version": "5.3.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/cakephp-codesniffer.git",
- "reference": "3c62979556e98d0330f8af8b103ad1ade0a7067e"
+ "reference": "8c9481165b0f2819ac58894c9a7e5599a55ad678"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/3c62979556e98d0330f8af8b103ad1ade0a7067e",
- "reference": "3c62979556e98d0330f8af8b103ad1ade0a7067e",
+ "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/8c9481165b0f2819ac58894c9a7e5599a55ad678",
+ "reference": "8c9481165b0f2819ac58894c9a7e5599a55ad678",
"shasum": ""
},
"require": {
- "php": ">=8.1.0",
- "phpstan/phpdoc-parser": "^2.1.0",
- "slevomat/coding-standard": "^8.16",
- "squizlabs/php_codesniffer": "^3.9"
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.1.2",
+ "php": ">=8.1",
+ "phpstan/phpdoc-parser": "^2.1",
+ "slevomat/coding-standard": "^8.23",
+ "squizlabs/php_codesniffer": "^4.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3.4"
+ "phpunit/phpunit": "^10.5.32 || ^11.3.3"
},
"type": "phpcodesniffer-standard",
"autoload": {
@@ -2898,32 +3061,32 @@
"issues": "https://github.com/cakephp/cakephp-codesniffer/issues",
"source": "https://github.com/cakephp/cakephp-codesniffer"
},
- "time": "2025-06-07T17:04:07+00:00"
+ "time": "2025-09-19T15:47:28+00:00"
},
{
"name": "cakephp/debug_kit",
- "version": "5.1.3",
+ "version": "5.2.1",
"source": {
"type": "git",
"url": "https://github.com/cakephp/debug_kit.git",
- "reference": "6c33eb2993d790d98a27a47a74a10330d699ac07"
+ "reference": "017d23ba0e05bee6beb9e32569c088959940399d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/6c33eb2993d790d98a27a47a74a10330d699ac07",
- "reference": "6c33eb2993d790d98a27a47a74a10330d699ac07",
+ "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/017d23ba0e05bee6beb9e32569c088959940399d",
+ "reference": "017d23ba0e05bee6beb9e32569c088959940399d",
"shasum": ""
},
"require": {
"cakephp/cakephp": "^5.1",
- "composer/composer": "^2.0",
+ "composer/composer": "^2.7.7",
"doctrine/sql-formatter": "^1.1.3",
"php": ">=8.1"
},
"require-dev": {
"cakephp/authorization": "^3.0",
"cakephp/cakephp-codesniffer": "^5.0",
- "phpunit/phpunit": "^10.5.5 || ^11.1.3"
+ "phpunit/phpunit": "^10.5.32 || ^11.1.3 || ^12.0.9"
},
"suggest": {
"ext-pdo_sqlite": "DebugKit needs to store panel data in a database. SQLite is simple and easy to use."
@@ -2963,25 +3126,26 @@
"issues": "https://github.com/cakephp/debug_kit/issues",
"source": "https://github.com/cakephp/debug_kit"
},
- "time": "2025-08-03T15:06:57+00:00"
+ "time": "2025-12-03T21:25:05+00:00"
},
{
"name": "cakephp/twig-view",
- "version": "2.0.3",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/cakephp/twig-view.git",
- "reference": "b11df8e8734ae556d98b143192377dbc6a6f5360"
+ "reference": "db51ee49c0cb9be4af39497f1724393b7ce51211"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/cakephp/twig-view/zipball/b11df8e8734ae556d98b143192377dbc6a6f5360",
- "reference": "b11df8e8734ae556d98b143192377dbc6a6f5360",
+ "url": "https://api.github.com/repos/cakephp/twig-view/zipball/db51ee49c0cb9be4af39497f1724393b7ce51211",
+ "reference": "db51ee49c0cb9be4af39497f1724393b7ce51211",
"shasum": ""
},
"require": {
"cakephp/cakephp": "^5.0.0",
"jasny/twig-extensions": "^1.3",
+ "php": ">=8.1",
"twig/markdown-extra": "^3.0",
"twig/twig": "^3.11.1"
},
@@ -2993,7 +3157,7 @@
"cakephp/debug_kit": "^5.0",
"michelf/php-markdown": "^1.9",
"mikey179/vfsstream": "^1.6.10",
- "phpunit/phpunit": "^10.5.5 || ^11.1.3"
+ "phpunit/phpunit": "^11.5.3 | ^12.1.3"
},
"type": "cakephp-plugin",
"autoload": {
@@ -3024,26 +3188,92 @@
"issues": "https://github.com/cakephp/twig-view/issues",
"source": "https://github.com/cakephp/twig-view"
},
- "time": "2024-10-11T07:53:08+00:00"
+ "time": "2026-01-05T22:35:06+00:00"
+ },
+ {
+ "name": "clue/stream-filter",
+ "version": "v1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/stream-filter.git",
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7",
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "Clue\\StreamFilter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "A simple and modern approach to stream filtering in PHP",
+ "homepage": "https://github.com/clue/stream-filter",
+ "keywords": [
+ "bucket brigade",
+ "callback",
+ "filter",
+ "php_user_filter",
+ "stream",
+ "stream_filter_append",
+ "stream_filter_register"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/stream-filter/issues",
+ "source": "https://github.com/clue/stream-filter/tree/v1.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-20T15:40:13+00:00"
},
{
"name": "composer/class-map-generator",
- "version": "1.6.2",
+ "version": "1.7.1",
"source": {
"type": "git",
"url": "https://github.com/composer/class-map-generator.git",
- "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076"
+ "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/class-map-generator/zipball/ba9f089655d4cdd64e762a6044f411ccdaec0076",
- "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076",
+ "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8f5fa3cc214230e71f54924bd0197a3bcc705eb1",
+ "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1",
"shasum": ""
},
"require": {
"composer/pcre": "^2.1 || ^3.1",
"php": "^7.2 || ^8.0",
- "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
+ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7 || ^8"
},
"require-dev": {
"phpstan/phpstan": "^1.12 || ^2",
@@ -3051,7 +3281,7 @@
"phpstan/phpstan-phpunit": "^1 || ^2",
"phpstan/phpstan-strict-rules": "^1.1 || ^2",
"phpunit/phpunit": "^8",
- "symfony/filesystem": "^5.4 || ^6"
+ "symfony/filesystem": "^5.4 || ^6 || ^7 || ^8"
},
"type": "library",
"extra": {
@@ -3081,7 +3311,7 @@
],
"support": {
"issues": "https://github.com/composer/class-map-generator/issues",
- "source": "https://github.com/composer/class-map-generator/tree/1.6.2"
+ "source": "https://github.com/composer/class-map-generator/tree/1.7.1"
},
"funding": [
{
@@ -3093,44 +3323,46 @@
"type": "github"
}
],
- "time": "2025-08-20T18:52:43+00:00"
+ "time": "2025-12-29T13:15:25+00:00"
},
{
"name": "composer/composer",
- "version": "2.8.11",
+ "version": "2.9.5",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
- "reference": "00e1a3396eea67033775c4a49c772376f45acd73"
+ "reference": "72a8f8e653710e18d83e5dd531eb5a71fc3223e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/composer/zipball/00e1a3396eea67033775c4a49c772376f45acd73",
- "reference": "00e1a3396eea67033775c4a49c772376f45acd73",
+ "url": "https://api.github.com/repos/composer/composer/zipball/72a8f8e653710e18d83e5dd531eb5a71fc3223e6",
+ "reference": "72a8f8e653710e18d83e5dd531eb5a71fc3223e6",
"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": "^6.3.1",
+ "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.3",
+ "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/polyfill-php84": "^1.30",
+ "symfony/process": "^5.4.47 || ^6.4.25 || ^7.1.10 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.11.8",
@@ -3138,12 +3370,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"
@@ -3156,7 +3389,7 @@
]
},
"branch-alias": {
- "dev-main": "2.8-dev"
+ "dev-main": "2.9-dev"
}
},
"autoload": {
@@ -3191,7 +3424,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.11"
+ "source": "https://github.com/composer/composer/tree/2.9.5"
},
"funding": [
{
@@ -3203,7 +3436,7 @@
"type": "github"
}
],
- "time": "2025-08-21T09:29:39+00:00"
+ "time": "2026-01-29T10:40:53+00:00"
},
{
"name": "composer/metadata-minifier",
@@ -3578,29 +3811,29 @@
},
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v1.1.2",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/composer-installer.git",
- "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1"
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1",
- "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1",
+ "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1",
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1",
"shasum": ""
},
"require": {
"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": "^2.2",
"ext-json": "*",
"ext-zip": "*",
"php-parallel-lint/php-parallel-lint": "^1.4.0",
- "phpcompatibility/php-compatibility": "^9.0",
+ "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev",
"yoast/phpunit-polyfills": "^1.0"
},
"type": "composer-plugin",
@@ -3670,30 +3903,30 @@
"type": "thanks_dev"
}
],
- "time": "2025-07-17T20:45:56+00:00"
+ "time": "2025-11-11T04:32:07+00:00"
},
{
"name": "doctrine/sql-formatter",
- "version": "1.5.2",
+ "version": "1.5.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/sql-formatter.git",
- "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8"
+ "reference": "9563949f5cd3bd12a17d12fb980528bc141c5806"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/d6d00aba6fd2957fe5216fe2b7673e9985db20c8",
- "reference": "d6d00aba6fd2957fe5216fe2b7673e9985db20c8",
+ "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/9563949f5cd3bd12a17d12fb980528bc141c5806",
+ "reference": "9563949f5cd3bd12a17d12fb980528bc141c5806",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^12",
- "ergebnis/phpunit-slow-test-detector": "^2.14",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^10.5"
+ "doctrine/coding-standard": "^14",
+ "ergebnis/phpunit-slow-test-detector": "^2.20",
+ "phpstan/phpstan": "^2.1.31",
+ "phpunit/phpunit": "^10.5.58"
},
"bin": [
"bin/sql-formatter"
@@ -3723,9 +3956,134 @@
],
"support": {
"issues": "https://github.com/doctrine/sql-formatter/issues",
- "source": "https://github.com/doctrine/sql-formatter/tree/1.5.2"
+ "source": "https://github.com/doctrine/sql-formatter/tree/1.5.4"
+ },
+ "time": "2026-02-08T16:21:46+00:00"
+ },
+ {
+ "name": "jane-php/json-schema-runtime",
+ "version": "v7.10.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/janephp/json-schema-runtime.git",
+ "reference": "f1f96868836e7b9cfa45eb40d3afcd989f079a3a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/janephp/json-schema-runtime/zipball/f1f96868836e7b9cfa45eb40d3afcd989f079a3a",
+ "reference": "f1f96868836e7b9cfa45eb40d3afcd989f079a3a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "league/uri": "^6.7.2 || ^7.4",
+ "php": "^8.1",
+ "php-jsonpointer/php-jsonpointer": "^3.0 || ^4.0",
+ "symfony/serializer": "^5.4 || ^6.4 || ^7.0 || ^8.0",
+ "symfony/yaml": "^5.4 || ^6.4 || ^7.0 || ^8.0"
+ },
+ "conflict": {
+ "symfony/framework-bundle": "5.1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-next": "7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jane\\Component\\JsonSchemaRuntime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Joel Wurtz",
+ "email": "jwurtz@jolicode.com"
+ },
+ {
+ "name": "Baptiste Leduc",
+ "email": "baptiste.leduc@gmail.com"
+ }
+ ],
+ "description": "Jane runtime Library",
+ "support": {
+ "source": "https://github.com/janephp/json-schema-runtime/tree/v7.10.4"
+ },
+ "time": "2026-01-12T19:55:34+00:00"
+ },
+ {
+ "name": "jane-php/open-api-runtime",
+ "version": "v7.10.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/janephp/open-api-runtime.git",
+ "reference": "825670a6cbd0e2b8246af0c1b15ce4b986318942"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/janephp/open-api-runtime/zipball/825670a6cbd0e2b8246af0c1b15ce4b986318942",
+ "reference": "825670a6cbd0e2b8246af0c1b15ce4b986318942",
+ "shasum": ""
+ },
+ "require": {
+ "jane-php/json-schema-runtime": "^7.0",
+ "nyholm/psr7": "^1.8",
+ "php": "^8.1",
+ "php-http/client-common": "^2.0",
+ "php-http/discovery": "^1.6",
+ "php-http/multipart-stream-builder": "^1.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5",
+ "symfony/serializer": "^5.4 || ^6.4 || ^7.0 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-next": "7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jane\\Component\\OpenApiRuntime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Joel Wurtz",
+ "email": "jwurtz@jolicode.com"
+ },
+ {
+ "name": "Baptiste Leduc",
+ "email": "baptiste.leduc@gmail.com"
+ }
+ ],
+ "description": "Jane OpenAPI Runtime Library, dependencies and utility class for a library generated by jane/openapi",
+ "support": {
+ "source": "https://github.com/janephp/open-api-runtime/tree/v7.10.4"
},
- "time": "2025-01-24T11:45:48+00:00"
+ "time": "2026-01-12T19:55:34+00:00"
},
{
"name": "jasny/twig-extensions",
@@ -3852,21 +4210,21 @@
},
{
"name": "justinrainbow/json-schema",
- "version": "6.5.2",
+ "version": "v6.7.2",
"source": {
"type": "git",
"url": "https://github.com/jsonrainbow/json-schema.git",
- "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8"
+ "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/ac0d369c09653cf7af561f6d91a705bc617a87b8",
- "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8",
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/6fea66c7204683af437864e7c4e7abf383d14bc0",
+ "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0",
"shasum": ""
},
"require": {
"ext-json": "*",
- "marc-mabe/php-enum": "^4.0",
+ "marc-mabe/php-enum": "^4.4",
"php": "^7.2 || ^8.0"
},
"require-dev": {
@@ -3921,9 +4279,9 @@
],
"support": {
"issues": "https://github.com/jsonrainbow/json-schema/issues",
- "source": "https://github.com/jsonrainbow/json-schema/tree/6.5.2"
+ "source": "https://github.com/jsonrainbow/json-schema/tree/v6.7.2"
},
- "time": "2025-09-09T09:42:27+00:00"
+ "time": "2026-02-15T15:06:22+00:00"
},
{
"name": "m1/env",
@@ -3989,16 +4347,16 @@
},
{
"name": "marc-mabe/php-enum",
- "version": "v4.7.1",
+ "version": "v4.7.2",
"source": {
"type": "git",
"url": "https://github.com/marc-mabe/php-enum.git",
- "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed"
+ "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/7159809e5cfa041dca28e61f7f7ae58063aae8ed",
- "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed",
+ "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef",
+ "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef",
"shasum": ""
},
"require": {
@@ -4056,9 +4414,9 @@
],
"support": {
"issues": "https://github.com/marc-mabe/php-enum/issues",
- "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.1"
+ "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2"
},
- "time": "2024-11-28T04:54:44+00:00"
+ "time": "2025-09-14T11:18:39+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -4122,16 +4480,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v5.6.1",
+ "version": "v5.7.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
- "reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
"shasum": ""
},
"require": {
@@ -4174,57 +4532,135 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
},
- "time": "2025-08-13T20:13:15+00:00"
+ "time": "2025-12-06T11:56:16+00:00"
},
{
- "name": "phar-io/manifest",
- "version": "2.0.4",
+ "name": "nyholm/psr7",
+ "version": "1.8.2",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
- "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
+ "reference": "a71f2b11690f4b24d099d6b16690a90ae14fc6f3",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-phar": "*",
- "ext-xmlwriter": "*",
- "phar-io/version": "^3.0.1",
- "php": "^7.2 || ^8.0"
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.8-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Nyholm\\Psr7\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
+ }
+ ],
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
+ "keywords": [
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-09-09T07:06:30+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
},
{
"name": "Sebastian Bergmann",
@@ -4297,440 +4733,591 @@
"time": "2022-02-21T01:04:05+00:00"
},
{
- "name": "phpstan/phpdoc-parser",
- "version": "2.3.0",
+ "name": "php-http/client-common",
+ "version": "2.7.3",
"source": {
"type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495"
+ "url": "https://github.com/php-http/client-common.git",
+ "reference": "dcc6de29c90dd74faab55f71b79d89409c4bf0c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495",
- "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495",
+ "url": "https://api.github.com/repos/php-http/client-common/zipball/dcc6de29c90dd74faab55f71b79d89409c4bf0c1",
+ "reference": "dcc6de29c90dd74faab55f71b79d89409c4bf0c1",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0"
+ "php": "^7.1 || ^8.0",
+ "php-http/httplug": "^2.0",
+ "php-http/message": "^1.6",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0 || ^8.0",
+ "symfony/polyfill-php80": "^1.17"
},
"require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^5.3.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^2.0",
- "phpstan/phpstan-phpunit": "^2.0",
- "phpstan/phpstan-strict-rules": "^2.0",
- "phpunit/phpunit": "^9.6",
- "symfony/process": "^5.2"
+ "doctrine/instantiator": "^1.1",
+ "guzzlehttp/psr7": "^1.4",
+ "nyholm/psr7": "^1.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
+ },
+ "suggest": {
+ "ext-json": "To detect JSON responses with the ContentTypePlugin",
+ "ext-libxml": "To detect XML responses with the ContentTypePlugin",
+ "php-http/cache-plugin": "PSR-6 Cache plugin",
+ "php-http/logger-plugin": "PSR-3 Logger plugin",
+ "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
},
"type": "library",
"autoload": {
"psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
+ "Http\\Client\\Common\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Common HTTP Client implementations and tools for HTTPlug",
+ "homepage": "http://httplug.io",
+ "keywords": [
+ "client",
+ "common",
+ "http",
+ "httplug"
+ ],
"support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0"
+ "issues": "https://github.com/php-http/client-common/issues",
+ "source": "https://github.com/php-http/client-common/tree/2.7.3"
},
- "time": "2025-08-30T15:50:23+00:00"
+ "time": "2025-11-29T19:12:34+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "12.3.6",
+ "name": "php-http/discovery",
+ "version": "1.20.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "da2cdaff87220fa641e7652364281b736e4347e0"
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/da2cdaff87220fa641e7652364281b736e4347e0",
- "reference": "da2cdaff87220fa641e7652364281b736e4347e0",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d",
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^5.6.1",
- "php": ">=8.3",
- "phpunit/php-file-iterator": "^6.0",
- "phpunit/php-text-template": "^5.0",
- "sebastian/complexity": "^5.0",
- "sebastian/environment": "^8.0.3",
- "sebastian/lines-of-code": "^4.0",
- "sebastian/version": "^6.0",
- "theseer/tokenizer": "^1.2.3"
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": "^7.1 || ^8.0"
},
- "require-dev": {
- "phpunit/phpunit": "^12.3.7"
+ "conflict": {
+ "nyholm/psr7": "<1.0",
+ "zendframework/zend-diactoros": "*"
},
- "suggest": {
- "ext-pcov": "PHP extension that provides line coverage",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "*",
+ "psr/http-factory-implementation": "*",
+ "psr/http-message-implementation": "*"
},
- "type": "library",
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "graham-campbell/phpspec-skip-example-extension": "^5.0",
+ "php-http/httplug": "^1.0 || ^2.0",
+ "php-http/message-factory": "^1.0",
+ "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
+ "sebastian/comparator": "^3.0.5 || ^4.0.8",
+ "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
+ },
+ "type": "composer-plugin",
"extra": {
- "branch-alias": {
- "dev-main": "12.3.x-dev"
- }
+ "class": "Http\\Discovery\\Composer\\Plugin",
+ "plugin-optional": true
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Http\\Discovery\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/Composer/Plugin.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
+ "homepage": "http://php-http.org",
"keywords": [
- "coverage",
- "testing",
- "xunit"
+ "adapter",
+ "client",
+ "discovery",
+ "factory",
+ "http",
+ "message",
+ "psr17",
+ "psr7"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.3.6"
+ "issues": "https://github.com/php-http/discovery/issues",
+ "source": "https://github.com/php-http/discovery/tree/1.20.0"
},
- "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/phpunit/php-code-coverage",
- "type": "tidelift"
- }
- ],
- "time": "2025-09-02T05:23:14+00:00"
+ "time": "2024-10-02T11:20:13+00:00"
},
{
- "name": "phpunit/php-file-iterator",
- "version": "6.0.0",
+ "name": "php-http/httplug",
+ "version": "2.4.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "961bc913d42fe24a257bfff826a5068079ac7782"
+ "url": "https://github.com/php-http/httplug.git",
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782",
- "reference": "961bc913d42fe24a257bfff826a5068079ac7782",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4",
+ "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": "^7.1 || ^8.0",
+ "php-http/promise": "^1.1",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
+ "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Http\\Client\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Eric GELOEN",
+ "email": "geloen.eric@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
}
],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "description": "HTTPlug, the HTTP client abstraction for PHP",
+ "homepage": "http://httplug.io",
"keywords": [
- "filesystem",
- "iterator"
+ "client",
+ "http"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0"
+ "issues": "https://github.com/php-http/httplug/issues",
+ "source": "https://github.com/php-http/httplug/tree/2.4.1"
},
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2025-02-07T04:58:37+00:00"
+ "time": "2024-09-23T11:39:58+00:00"
},
{
- "name": "phpunit/php-invoker",
- "version": "6.0.0",
+ "name": "php-http/message",
+ "version": "1.16.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406"
+ "url": "https://github.com/php-http/message.git",
+ "reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406",
- "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406",
+ "url": "https://api.github.com/repos/php-http/message/zipball/06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
+ "reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "clue/stream-filter": "^1.5",
+ "php": "^7.2 || ^8.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0"
},
"require-dev": {
- "ext-pcntl": "*",
- "phpunit/phpunit": "^12.0"
+ "ergebnis/composer-normalize": "^2.6",
+ "ext-zlib": "*",
+ "guzzlehttp/psr7": "^1.0 || ^2.0",
+ "laminas/laminas-diactoros": "^2.0 || ^3.0",
+ "php-http/message-factory": "^1.0.2",
+ "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
+ "slim/slim": "^3.0"
},
"suggest": {
- "ext-pcntl": "*"
+ "ext-zlib": "Used with compressor/decompressor streams",
+ "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
+ "laminas/laminas-diactoros": "Used with Diactoros Factories",
+ "slim/slim": "Used with Slim Framework PSR-7 implementation"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "files": [
+ "src/filters.php"
+ ],
+ "psr-4": {
+ "Http\\Message\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Invoke callables with a timeout",
- "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "description": "HTTP Message related tools",
+ "homepage": "http://php-http.org",
"keywords": [
- "process"
+ "http",
+ "message",
+ "psr-7"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0"
+ "issues": "https://github.com/php-http/message/issues",
+ "source": "https://github.com/php-http/message/tree/1.16.2"
},
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2025-02-07T04:58:58+00:00"
+ "time": "2024-10-02T11:34:13+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "5.0.0",
+ "name": "php-http/multipart-stream-builder",
+ "version": "1.4.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53"
+ "url": "https://github.com/php-http/multipart-stream-builder.git",
+ "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53",
+ "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e",
+ "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": "^7.1 || ^8.0",
+ "php-http/discovery": "^1.15",
+ "psr/http-factory-implementation": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "nyholm/psr7": "^1.0",
+ "php-http/message": "^1.5",
+ "php-http/message-factory": "^1.0.2",
+ "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.3"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
+ "autoload": {
+ "psr-4": {
+ "Http\\Message\\MultipartStream\\": "src/"
}
},
- "autoload": {
- "classmap": [
- "src/"
- ]
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ }
+ ],
+ "description": "A builder class that help you create a multipart stream",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "multipart stream",
+ "stream"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/multipart-stream-builder/issues",
+ "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2"
+ },
+ "time": "2024-09-04T13:22:54+00:00"
+ },
+ {
+ "name": "php-http/promise",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/promise.git",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3",
+ "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Promise\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Joel Wurtz",
+ "email": "joel.wurtz@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "description": "Promise used for asynchronous HTTP requests",
+ "homepage": "http://httplug.io",
"keywords": [
- "template"
+ "promise"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0"
+ "issues": "https://github.com/php-http/promise/issues",
+ "source": "https://github.com/php-http/promise/tree/1.3.1"
},
- "funding": [
+ "time": "2024-03-15T13:55:21+00:00"
+ },
+ {
+ "name": "php-http/socket-client",
+ "version": "2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/socket-client.git",
+ "reference": "99bb89004e04b92bf4b688d40a1f06494a7063b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/socket-client/zipball/99bb89004e04b92bf4b688d40a1f06494a7063b3",
+ "reference": "99bb89004e04b92bf4b688d40a1f06494a7063b3",
+ "shasum": ""
+ },
+ "require": {
+ "nyholm/psr7": "^1.8.1",
+ "php": "^8.1",
+ "php-http/httplug": "^2.4",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/options-resolver": "^2.6 || ^3.4 || ^4.4 || ^5.0 || ^6.0 || ^7.0 || ^8.0"
+ },
+ "conflict": {
+ "guzzlehttp/psr7": "<2.0"
+ },
+ "provide": {
+ "php-http/client-implementation": "1.0",
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "ext-openssl": "*",
+ "friendsofphp/php-cs-fixer": "^3.51",
+ "php-http/client-common": "^2.7",
+ "php-http/client-integration-tests": "^4.0",
+ "php-http/message": "^1.16",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\Socket\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
{
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
+ "name": "Joel Wurtz",
+ "email": "jwurtz@jolicode.com"
}
],
- "time": "2025-02-07T04:59:16+00:00"
+ "description": "Socket client for PHP-HTTP",
+ "support": {
+ "issues": "https://github.com/php-http/socket-client/issues",
+ "source": "https://github.com/php-http/socket-client/tree/2.4.0"
+ },
+ "time": "2026-01-10T10:45:38+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "8.0.0",
+ "name": "php-jsonpointer/php-jsonpointer",
+ "version": "v4.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc"
+ "url": "https://github.com/raphaelstolt/php-jsonpointer.git",
+ "reference": "fd50fc1aecd80dedb5bc59c9a1d70d4cfec7933b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
- "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
+ "url": "https://api.github.com/repos/raphaelstolt/php-jsonpointer/zipball/fd50fc1aecd80dedb5bc59c9a1d70d4cfec7933b",
+ "reference": "fd50fc1aecd80dedb5bc59c9a1d70d4cfec7933b",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=7.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "phpunit/phpunit": "8.*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-0": {
+ "Rs\\Json": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Raphael Stolt",
+ "email": "raphael.stolt@gmail.com",
+ "homepage": "http://raphaelstolt.blogspot.com/"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "Implementation of JSON Pointer (http://tools.ietf.org/html/rfc6901)",
+ "homepage": "https://github.com/raphaelstolt/php-jsonpointer",
"keywords": [
- "timer"
+ "json",
+ "json pointer",
+ "json traversal"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0"
+ "issues": "https://github.com/raphaelstolt/php-jsonpointer/issues",
+ "source": "https://github.com/raphaelstolt/php-jsonpointer/tree/v4.0.0"
},
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
+ "time": "2022-01-11T14:28:07+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "2.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a",
+ "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^5.3.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "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",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
}
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
],
- "time": "2025-02-07T04:59:38+00:00"
+ "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/2.3.2"
+ },
+ "time": "2026-01-25T14:56:51+00:00"
},
{
- "name": "phpunit/phpunit",
- "version": "12.3.8",
+ "name": "phpunit/php-code-coverage",
+ "version": "12.5.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9d68c1b41fc21aac106c71cde4669fe7b99fca10"
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "b015312f28dd75b75d3422ca37dff2cd1a565e8d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9d68c1b41fc21aac106c71cde4669fe7b99fca10",
- "reference": "9d68c1b41fc21aac106c71cde4669fe7b99fca10",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b015312f28dd75b75d3422ca37dff2cd1a565e8d",
+ "reference": "b015312f28dd75b75d3422ca37dff2cd1a565e8d",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "ext-json": "*",
"ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.13.4",
- "phar-io/manifest": "^2.0.4",
- "phar-io/version": "^3.2.1",
+ "nikic/php-parser": "^5.7.0",
"php": ">=8.3",
- "phpunit/php-code-coverage": "^12.3.6",
- "phpunit/php-file-iterator": "^6.0.0",
- "phpunit/php-invoker": "^6.0.0",
- "phpunit/php-text-template": "^5.0.0",
- "phpunit/php-timer": "^8.0.0",
- "sebastian/cli-parser": "^4.0.0",
- "sebastian/comparator": "^7.1.3",
- "sebastian/diff": "^7.0.0",
+ "phpunit/php-file-iterator": "^6.0",
+ "phpunit/php-text-template": "^5.0",
+ "sebastian/complexity": "^5.0",
"sebastian/environment": "^8.0.3",
- "sebastian/exporter": "^7.0.0",
- "sebastian/global-state": "^8.0.2",
- "sebastian/object-enumerator": "^7.0.0",
- "sebastian/type": "^6.0.3",
- "sebastian/version": "^6.0.0",
- "staabm/side-effects-detector": "^1.0.5"
+ "sebastian/lines-of-code": "^4.0",
+ "sebastian/version": "^6.0",
+ "theseer/tokenizer": "^2.0.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^12.5.1"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
- "bin": [
- "phpunit"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "12.3-dev"
+ "dev-main": "12.5.x-dev"
}
},
"autoload": {
- "files": [
- "src/Framework/Assert/Functions.php"
- ],
"classmap": [
"src/"
]
@@ -4746,23 +5333,19 @@
"role": "lead"
}
],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
"keywords": [
- "phpunit",
+ "coverage",
"testing",
"xunit"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.8"
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.3"
},
"funding": [
- {
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
@@ -4776,187 +5359,113 @@
"type": "thanks_dev"
},
{
- "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage",
"type": "tidelift"
}
],
- "time": "2025-09-03T06:25:17+00:00"
+ "time": "2026-02-06T06:01:44+00:00"
},
{
- "name": "psy/psysh",
- "version": "v0.12.10",
+ "name": "phpunit/php-file-iterator",
+ "version": "6.0.1",
"source": {
"type": "git",
- "url": "https://github.com/bobthecow/psysh.git",
- "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22"
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/6e80abe6f2257121f1eb9a4c55bf29d921025b22",
- "reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5",
+ "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-tokenizer": "*",
- "nikic/php-parser": "^5.0 || ^4.0",
- "php": "^8.0 || ^7.4",
- "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
- "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
- },
- "conflict": {
- "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ "php": ">=8.3"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.2"
- },
- "suggest": {
- "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
+ "phpunit/phpunit": "^12.0"
},
- "bin": [
- "bin/psysh"
- ],
"type": "library",
"extra": {
- "bamarni-bin": {
- "bin-links": false,
- "forward-command": false
- },
"branch-alias": {
- "dev-main": "0.12.x-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Psy\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Justin Hileman",
- "email": "justin@justinhileman.info"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "An interactive shell for modern PHP.",
- "homepage": "https://psysh.org",
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
"keywords": [
- "REPL",
- "console",
- "interactive",
- "shell"
+ "filesystem",
+ "iterator"
],
"support": {
- "issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.10"
- },
- "time": "2025-08-04T12:39:37+00:00"
- },
- {
- "name": "react/promise",
- "version": "v3.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/promise.git",
- "reference": "23444f53a813a3296c1368bb104793ce8d88f04a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a",
- "reference": "23444f53a813a3296c1368bb104793ce8d88f04a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.0"
- },
- "require-dev": {
- "phpstan/phpstan": "1.12.28 || 1.4.10",
- "phpunit/phpunit": "^9.6 || ^7.5"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "psr-4": {
- "React\\Promise\\": "src/"
- }
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1"
},
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
+ "funding": [
{
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
},
{
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
},
{
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
},
{
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "A lightweight implementation of CommonJS Promises/A for PHP",
- "keywords": [
- "promise",
- "promises"
- ],
- "support": {
- "issues": "https://github.com/reactphp/promise/issues",
- "source": "https://github.com/reactphp/promise/tree/v3.3.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator",
+ "type": "tidelift"
}
],
- "time": "2025-08-19T18:57:03+00:00"
+ "time": "2026-02-02T14:04:18+00:00"
},
{
- "name": "sebastian/cli-parser",
- "version": "4.0.0",
+ "name": "phpunit/php-invoker",
+ "version": "6.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c"
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/6d584c727d9114bcdc14c86711cd1cad51778e7c",
- "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406",
+ "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
+ "ext-pcntl": "*",
"phpunit/phpunit": "^12.0"
},
+ "suggest": {
+ "ext-pcntl": "*"
+ },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -4975,12 +5484,15 @@
"role": "lead"
}
],
- "description": "Library for parsing CLI options",
- "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.0.0"
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0"
},
"funding": [
{
@@ -4988,39 +5500,32 @@
"type": "github"
}
],
- "time": "2025-02-07T04:53:50+00:00"
+ "time": "2025-02-07T04:58:58+00:00"
},
{
- "name": "sebastian/comparator",
- "version": "7.1.3",
+ "name": "phpunit/php-text-template",
+ "version": "5.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148"
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148",
- "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53",
+ "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-mbstring": "*",
- "php": ">=8.3",
- "sebastian/diff": "^7.0",
- "sebastian/exporter": "^7.0"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.2"
- },
- "suggest": {
- "ext-bcmath": "For comparing BcMath\\Number objects"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.1-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5035,69 +5540,43 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
"keywords": [
- "comparator",
- "compare",
- "equality"
+ "template"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/comparator/issues",
- "security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3"
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0"
},
"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": "2025-08-20T11:27:00+00:00"
+ "time": "2025-02-07T04:59:16+00:00"
},
{
- "name": "sebastian/complexity",
- "version": "5.0.0",
+ "name": "phpunit/php-timer",
+ "version": "8.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb"
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb",
- "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
+ "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^5.0",
"php": ">=8.3"
},
"require-dev": {
@@ -5106,7 +5585,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -5125,12 +5604,15 @@
"role": "lead"
}
],
- "description": "Library for calculating the complexity of PHP code units",
- "homepage": "https://github.com/sebastianbergmann/complexity",
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/complexity/issues",
- "security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0"
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0"
},
"funding": [
{
@@ -5138,36 +5620,63 @@
"type": "github"
}
],
- "time": "2025-02-07T04:55:25+00:00"
+ "time": "2025-02-07T04:59:38+00:00"
},
{
- "name": "sebastian/diff",
- "version": "7.0.0",
+ "name": "phpunit/phpunit",
+ "version": "12.5.14",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f"
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "47283cfd98d553edcb1353591f4e255dc1bb61f0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/47283cfd98d553edcb1353591f4e255dc1bb61f0",
+ "reference": "47283cfd98d553edcb1353591f4e255dc1bb61f0",
"shasum": ""
},
"require": {
- "php": ">=8.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^12.0",
- "symfony/process": "^7.2"
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.13.4",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=8.3",
+ "phpunit/php-code-coverage": "^12.5.3",
+ "phpunit/php-file-iterator": "^6.0.1",
+ "phpunit/php-invoker": "^6.0.0",
+ "phpunit/php-text-template": "^5.0.0",
+ "phpunit/php-timer": "^8.0.0",
+ "sebastian/cli-parser": "^4.2.0",
+ "sebastian/comparator": "^7.1.4",
+ "sebastian/diff": "^7.0.0",
+ "sebastian/environment": "^8.0.3",
+ "sebastian/exporter": "^7.0.2",
+ "sebastian/global-state": "^8.0.2",
+ "sebastian/object-enumerator": "^7.0.0",
+ "sebastian/recursion-context": "^7.0.1",
+ "sebastian/type": "^6.0.3",
+ "sebastian/version": "^6.0.0",
+ "staabm/side-effects-detector": "^1.0.5"
},
+ "bin": [
+ "phpunit"
+ ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "12.5-dev"
}
},
"autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
"classmap": [
"src/"
]
@@ -5179,215 +5688,222 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
"keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/diff/issues",
- "security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0"
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.14"
},
"funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
{
"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-07T04:55:46+00:00"
+ "time": "2026-02-18T12:38:40+00:00"
},
{
- "name": "sebastian/environment",
- "version": "8.0.3",
+ "name": "psy/psysh",
+ "version": "v0.12.21",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68"
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4821fab5b7cd8c49a673a9fd5754dc9162bb9e97",
+ "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "bamarni/composer-bin-plugin": "^1.2",
+ "composer/class-map-generator": "^1.6"
},
"suggest": {
- "ext-posix": "*"
+ "composer/class-map-generator": "Improved tab completion performance with better class discovery.",
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
},
+ "bin": [
+ "bin/psysh"
+ ],
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ },
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "0.12.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info"
}
],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "https://github.com/sebastianbergmann/environment",
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "https://psysh.org",
"keywords": [
- "Xdebug",
- "environment",
- "hhvm"
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/environment/issues",
- "security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3"
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.21"
},
- "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/environment",
- "type": "tidelift"
- }
- ],
- "time": "2025-08-12T14:11:56+00:00"
+ "time": "2026-03-06T21:21:28+00:00"
},
{
- "name": "sebastian/exporter",
- "version": "7.0.0",
+ "name": "react/promise",
+ "version": "v3.3.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "76432aafc58d50691a00d86d0632f1217a47b688"
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "23444f53a813a3296c1368bb104793ce8d88f04a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/76432aafc58d50691a00d86d0632f1217a47b688",
- "reference": "76432aafc58d50691a00d86d0632f1217a47b688",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a",
+ "reference": "23444f53a813a3296c1368bb104793ce8d88f04a",
"shasum": ""
},
"require": {
- "ext-mbstring": "*",
- "php": ">=8.3",
- "sebastian/recursion-context": "^7.0"
+ "php": ">=7.1.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpstan/phpstan": "1.12.28 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "7.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
},
{
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
},
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
},
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
}
],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
"keywords": [
- "export",
- "exporter"
+ "promise",
+ "promises"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.0"
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.3.0"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
}
],
- "time": "2025-02-07T04:56:42+00:00"
+ "time": "2025-08-19T18:57:03+00:00"
},
{
- "name": "sebastian/global-state",
- "version": "8.0.2",
+ "name": "sebastian/cli-parser",
+ "version": "4.2.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d"
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
+ "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
"shasum": ""
},
"require": {
- "php": ">=8.3",
- "sebastian/object-reflector": "^5.0",
- "sebastian/recursion-context": "^7.0"
+ "php": ">=8.3"
},
"require-dev": {
- "ext-dom": "*",
"phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "4.2-dev"
}
},
"autoload": {
@@ -5402,18 +5918,16 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Snapshotting of global state",
- "homepage": "https://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
- "issues": "https://github.com/sebastianbergmann/global-state/issues",
- "security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2"
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
},
"funding": [
{
@@ -5429,37 +5943,43 @@
"type": "thanks_dev"
},
{
- "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state",
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser",
"type": "tidelift"
}
],
- "time": "2025-08-29T11:29:25+00:00"
+ "time": "2025-09-14T09:36:45+00:00"
},
{
- "name": "sebastian/lines-of-code",
- "version": "4.0.0",
+ "name": "sebastian/comparator",
+ "version": "7.1.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f"
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6",
+ "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^5.0",
- "php": ">=8.3"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.3",
+ "sebastian/diff": "^7.0",
+ "sebastian/exporter": "^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.2"
+ },
+ "suggest": {
+ "ext-bcmath": "For comparing BcMath\\Number objects"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "7.1-dev"
}
},
"autoload": {
@@ -5474,43 +5994,70 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for counting the lines of code in PHP source code",
- "homepage": "https://github.com/sebastianbergmann/lines-of-code",
- "support": {
- "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0"
- },
- "funding": [
+ "email": "sebastian@phpunit.de"
+ },
{
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
}
],
- "time": "2025-02-07T04:57:28+00:00"
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/7.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/comparator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-01-24T09:28:48+00:00"
},
{
- "name": "sebastian/object-enumerator",
- "version": "7.0.0",
+ "name": "sebastian/complexity",
+ "version": "5.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894"
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894",
- "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb",
+ "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb",
"shasum": ""
},
"require": {
- "php": ">=8.3",
- "sebastian/object-reflector": "^5.0",
- "sebastian/recursion-context": "^7.0"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.3"
},
"require-dev": {
"phpunit/phpunit": "^12.0"
@@ -5518,7 +6065,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5533,15 +6080,16 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
- "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0"
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0"
},
"funding": [
{
@@ -5549,32 +6097,33 @@
"type": "github"
}
],
- "time": "2025-02-07T04:57:48+00:00"
+ "time": "2025-02-07T04:55:25+00:00"
},
{
- "name": "sebastian/object-reflector",
- "version": "5.0.0",
+ "name": "sebastian/diff",
+ "version": "7.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "4bfa827c969c98be1e527abd576533293c634f6a"
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "7ab1ea946c012266ca32390913653d844ecd085f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a",
- "reference": "4bfa827c969c98be1e527abd576533293c634f6a",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f",
+ "reference": "7ab1ea946c012266ca32390913653d844ecd085f",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.0",
+ "symfony/process": "^7.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -5590,14 +6139,24 @@
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
}
],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0"
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0"
},
"funding": [
{
@@ -5605,20 +6164,20 @@
"type": "github"
}
],
- "time": "2025-02-07T04:58:17+00:00"
+ "time": "2025-02-07T04:55:46+00:00"
},
{
- "name": "sebastian/recursion-context",
- "version": "7.0.1",
+ "name": "sebastian/environment",
+ "version": "8.0.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c"
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
- "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
+ "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
"shasum": ""
},
"require": {
@@ -5627,10 +6186,13 @@
"require-dev": {
"phpunit/phpunit": "^12.0"
},
+ "suggest": {
+ "ext-posix": "*"
+ },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "7.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -5646,22 +6208,19 @@
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
}
],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "https://github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1"
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3"
},
"funding": [
{
@@ -5677,28 +6236,30 @@
"type": "thanks_dev"
},
{
- "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context",
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
"type": "tidelift"
}
],
- "time": "2025-08-13T04:44:59+00:00"
+ "time": "2025-08-12T14:11:56+00:00"
},
{
- "name": "sebastian/type",
- "version": "6.0.3",
+ "name": "sebastian/exporter",
+ "version": "7.0.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d"
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7",
+ "reference": "016951ae10980765e4e7aee491eb288c64e505b7",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "ext-mbstring": "*",
+ "php": ">=8.3",
+ "sebastian/recursion-context": "^7.0"
},
"require-dev": {
"phpunit/phpunit": "^12.0"
@@ -5706,7 +6267,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -5721,16 +6282,35 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
}
],
- "description": "Collection of value objects that represent the types of the PHP type system",
- "homepage": "https://github.com/sebastianbergmann/type",
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/type/issues",
- "security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/6.0.3"
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2"
},
"funding": [
{
@@ -5746,33 +6326,39 @@
"type": "thanks_dev"
},
{
- "url": "https://tidelift.com/funding/github/packagist/sebastian/type",
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
"type": "tidelift"
}
],
- "time": "2025-08-09T06:57:12+00:00"
+ "time": "2025-09-24T06:16:11+00:00"
},
{
- "name": "sebastian/version",
- "version": "6.0.0",
+ "name": "sebastian/global-state",
+ "version": "8.0.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c"
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "ef1377171613d09edd25b7816f05be8313f9115d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d",
+ "reference": "ef1377171613d09edd25b7816f05be8313f9115d",
"shasum": ""
},
"require": {
- "php": ">=8.3"
+ "php": ">=8.3",
+ "sebastian/object-reflector": "^5.0",
+ "sebastian/recursion-context": "^7.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "8.0-dev"
}
},
"autoload": {
@@ -5787,423 +6373,1522 @@
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "email": "sebastian@phpunit.de"
}
],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
+ "description": "Snapshotting of global state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
"support": {
- "issues": "https://github.com/sebastianbergmann/version/issues",
- "security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/6.0.0"
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2"
},
"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/global-state",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T05:00:38+00:00"
+ "time": "2025-08-29T11:29:25+00:00"
},
{
- "name": "seld/jsonlint",
- "version": "1.11.0",
+ "name": "sebastian/lines-of-code",
+ "version": "4.0.0",
"source": {
"type": "git",
- "url": "https://github.com/Seldaek/jsonlint.git",
- "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2"
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2",
- "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f",
+ "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f",
"shasum": ""
},
"require": {
- "php": "^5.3 || ^7.0 || ^8.0"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.3"
},
"require-dev": {
- "phpstan/phpstan": "^1.11",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
+ "phpunit/phpunit": "^12.0"
},
- "bin": [
- "bin/jsonlint"
- ],
"type": "library",
- "autoload": {
- "psr-4": {
- "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
}
},
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "JSON Linter",
- "keywords": [
- "json",
- "linter",
- "parser",
- "validator"
- ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
- "issues": "https://github.com/Seldaek/jsonlint/issues",
- "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0"
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0"
},
"funding": [
{
- "url": "https://github.com/Seldaek",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
- "type": "tidelift"
}
],
- "time": "2024-07-11T14:55:45+00:00"
+ "time": "2025-02-07T04:57:28+00:00"
},
{
- "name": "seld/phar-utils",
- "version": "1.2.1",
+ "name": "sebastian/object-enumerator",
+ "version": "7.0.0",
"source": {
"type": "git",
- "url": "https://github.com/Seldaek/phar-utils.git",
- "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
- "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894",
+ "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894",
"shasum": ""
},
"require": {
- "php": ">=5.3"
+ "php": ">=8.3",
+ "sebastian/object-reflector": "^5.0",
+ "sebastian/recursion-context": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.x-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Seld\\PharUtils\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "PHAR file format utilities, for when PHP phars you up",
- "keywords": [
- "phar"
- ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
- "issues": "https://github.com/Seldaek/phar-utils/issues",
- "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0"
},
- "time": "2022-08-31T10:31:18+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-07T04:57:48+00:00"
},
{
- "name": "seld/signal-handler",
- "version": "2.0.2",
+ "name": "sebastian/object-reflector",
+ "version": "5.0.0",
"source": {
"type": "git",
- "url": "https://github.com/Seldaek/signal-handler.git",
- "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "4bfa827c969c98be1e527abd576533293c634f6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
- "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a",
+ "reference": "4bfa827c969c98be1e527abd576533293c634f6a",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "php": ">=8.3"
},
"require-dev": {
- "phpstan/phpstan": "^1",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1",
- "phpstan/phpstan-strict-rules": "^1.3",
- "phpunit/phpunit": "^7.5.20 || ^8.5.23",
- "psr/log": "^1 || ^2 || ^3"
+ "phpunit/phpunit": "^12.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.x-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Seld\\Signal\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
}
],
- "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
- "keywords": [
- "posix",
- "sigint",
- "signal",
- "sigterm",
- "unix"
- ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
- "issues": "https://github.com/Seldaek/signal-handler/issues",
- "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0"
},
- "time": "2023-09-03T09:24:00+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-07T04:58:17+00:00"
},
{
- "name": "slevomat/coding-standard",
- "version": "8.22.0",
+ "name": "sebastian/recursion-context",
+ "version": "7.0.1",
"source": {
"type": "git",
- "url": "https://github.com/slevomat/coding-standard.git",
- "reference": "a4cef983bad2e70125612d22b2f6e2bd1333d5c2"
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/a4cef983bad2e70125612d22b2f6e2bd1333d5c2",
- "reference": "a4cef983bad2e70125612d22b2f6e2bd1333d5c2",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
+ "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c",
"shasum": ""
},
"require": {
- "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"
+ "php": ">=8.3"
},
"require-dev": {
- "phing/phing": "3.0.1|3.1.0",
- "php-parallel-lint/php-parallel-lint": "1.4.0",
- "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.8|10.5.48|11.4.4|11.5.36|12.3.8"
+ "phpunit/phpunit": "^12.0"
},
- "type": "phpcodesniffer-standard",
+ "type": "library",
"extra": {
"branch-alias": {
- "dev-master": "8.x-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
- "psr-4": {
- "SlevomatCodingStandard\\": "SlevomatCodingStandard/"
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
- "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
- "keywords": [
- "dev",
- "phpcs"
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
- "issues": "https://github.com/slevomat/coding-standard/issues",
- "source": "https://github.com/slevomat/coding-standard/tree/8.22.0"
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1"
},
"funding": [
{
- "url": "https://github.com/kukulich",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
+ "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": "2025-09-06T09:14:48+00:00"
+ "time": "2025-08-13T04:44:59+00:00"
},
{
- "name": "squizlabs/php_codesniffer",
- "version": "3.13.4",
+ "name": "sebastian/type",
+ "version": "6.0.3",
"source": {
"type": "git",
- "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119"
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ad545ea9c1b7d270ce0fc9cbfb884161cd706119",
- "reference": "ad545ea9c1b7d270ce0fc9cbfb884161cd706119",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d",
+ "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d",
"shasum": ""
},
"require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ "phpunit/phpunit": "^12.0"
},
- "bin": [
- "bin/phpcbf",
- "bin/phpcs"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.x-dev"
+ "dev-main": "6.0-dev"
}
},
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
- "name": "Greg Sherwood",
- "role": "Former lead"
- },
- {
- "name": "Juliette Reinders Folmer",
- "role": "Current lead"
- },
- {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "security": "https://github.com/sebastianbergmann/type/security/policy",
+ "source": "https://github.com/sebastianbergmann/type/tree/6.0.3"
+ },
+ "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/type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-09T06:57:12+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "security": "https://github.com/sebastianbergmann/version/security/policy",
+ "source": "https://github.com/sebastianbergmann/version/tree/6.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-07T05:00:38+00:00"
+ },
+ {
+ "name": "seld/jsonlint",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2",
+ "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
+ },
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-11T14:55:45+00:00"
+ },
+ {
+ "name": "seld/phar-utils",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/phar-utils.git",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Seld\\PharUtils\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "PHAR file format utilities, for when PHP phars you up",
+ "keywords": [
+ "phar"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/phar-utils/issues",
+ "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
+ },
+ "time": "2022-08-31T10:31:18+00:00"
+ },
+ {
+ "name": "seld/signal-handler",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/signal-handler.git",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Seld\\Signal\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
+ "keywords": [
+ "posix",
+ "sigint",
+ "signal",
+ "sigterm",
+ "unix"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/signal-handler/issues",
+ "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
+ },
+ "time": "2023-09-03T09:24:00+00:00"
+ },
+ {
+ "name": "slevomat/coding-standard",
+ "version": "8.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/slevomat/coding-standard.git",
+ "reference": "0cd4b30cc1037eca54091c188d260d570e61770c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/0cd4b30cc1037eca54091c188d260d570e61770c",
+ "reference": "0cd4b30cc1037eca54091c188d260d570e61770c",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.0",
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpdoc-parser": "^2.3.2",
+ "squizlabs/php_codesniffer": "^4.0.1"
+ },
+ "require-dev": {
+ "phing/phing": "3.0.1|3.1.2",
+ "php-parallel-lint/php-parallel-lint": "1.4.0",
+ "phpstan/phpstan": "2.1.40",
+ "phpstan/phpstan-deprecation-rules": "2.0.4",
+ "phpstan/phpstan-phpunit": "2.0.16",
+ "phpstan/phpstan-strict-rules": "2.0.10",
+ "phpunit/phpunit": "9.6.34|10.5.63|11.4.4|11.5.50|12.5.14"
+ },
+ "type": "phpcodesniffer-standard",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "SlevomatCodingStandard\\": "SlevomatCodingStandard/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
+ "keywords": [
+ "dev",
+ "phpcs"
+ ],
+ "support": {
+ "issues": "https://github.com/slevomat/coding-standard/issues",
+ "source": "https://github.com/slevomat/coding-standard/tree/8.28.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kukulich",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-02-23T21:35:24+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5",
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31"
+ },
+ "bin": [
+ "bin/phpcbf",
+ "bin/phpcs"
+ ],
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
"name": "Contributors",
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
}
],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
+ },
+ "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-10T16:43:36+00:00"
+ },
+ {
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v7.4.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
+ "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.4|^7.0|^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v7.4.6"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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": "2026-01-29T09:40:50+00:00"
+ },
+ {
+ "name": "symfony/http-client",
+ "version": "v7.4.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "1010624285470eb60e88ed10035102c75b4ea6af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/1010624285470eb60e88ed10035102c75b4ea6af",
+ "reference": "1010624285470eb60e88ed10035102c75b4ea6af",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-client-contracts": "~3.4.4|^3.5.2",
+ "symfony/polyfill-php83": "^1.29",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "amphp/amp": "<2.5",
+ "amphp/socket": "<1.1",
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.4"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
+ },
+ "require-dev": {
+ "amphp/http-client": "^4.2.1|^5.0",
+ "amphp/http-tunnel": "^1.0|^2.0",
+ "guzzlehttp/promises": "^1.4|^2.0",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/amphp-http-client-meta": "^1.0|^2.0",
+ "symfony/cache": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/rate-limiter": "^6.4|^7.0|^8.0",
+ "symfony/stopwatch": "^6.4|^7.0|^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v7.4.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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": "2026-03-05T11:16:58+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v3.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "75d7043853a42837e68111812f4d964b01e5101c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/75d7043853a42837e68111812f4d964b01e5101c",
+ "reference": "75d7043853a42837e68111812f4d964b01e5101c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-04-29T11:18:49+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v7.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "b38026df55197f9e39a44f3215788edf83187b80"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b38026df55197f9e39a44f3215788edf83187b80",
+ "reference": "b38026df55197f9e39a44f3215788edf83187b80",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v7.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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": "2025-11-12T15:39:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "phpcs",
- "standards",
- "static analysis"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
- "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
- "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
- "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
},
"funding": [
{
- "url": "https://github.com/PHPCSStandards",
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://github.com/jrfnl",
+ "url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-01-02T08:10:11+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "url": "https://thanks.dev/u/gh/phpcsstandards",
- "type": "thanks_dev"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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": "2025-09-05T05:47:09+00:00"
+ "time": "2024-09-09T11:45:10+00:00"
},
{
- "name": "staabm/side-effects-detector",
- "version": "1.0.5",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.33.0",
"source": {
"type": "git",
- "url": "https://github.com/staabm/side-effects-detector.git",
- "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
- "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5",
+ "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": "^7.4 || ^8.0"
+ "php": ">=7.2"
},
- "require-dev": {
- "phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^1.12.6",
- "phpunit/phpunit": "^9.6.21",
- "symfony/var-dumper": "^5.4.43",
- "tomasvotruba/type-coverage": "1.0.0",
- "tomasvotruba/unused-public": "1.0.0"
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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": "2025-07-08T02:45:35+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php84",
+ "version": "v1.33.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php84.git",
+ "reference": "d8ced4d875142b6a7426000426b8abc631d6b191"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191",
+ "reference": "d8ced4d875142b6a7426000426b8abc631d6b191",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
},
"type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php84\\": ""
+ },
"classmap": [
- "lib/"
+ "Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "A static analysis tool to detect side effects in PHP code",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "static analysis"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/staabm/side-effects-detector/issues",
- "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0"
},
"funding": [
{
- "url": "https://github.com/staabm",
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "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-20T05:08:20+00:00"
+ "time": "2025-06-24T13:30:11+00:00"
},
{
- "name": "symfony/finder",
- "version": "v7.3.2",
+ "name": "symfony/process",
+ "version": "v7.4.5",
"source": {
"type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe"
+ "url": "https://github.com/symfony/process.git",
+ "reference": "608476f4604102976d687c483ac63a79ba18cc97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe",
- "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe",
+ "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97",
+ "reference": "608476f4604102976d687c483ac63a79ba18cc97",
"shasum": ""
},
"require": {
"php": ">=8.2"
},
- "require-dev": {
- "symfony/filesystem": "^6.4|^7.0"
- },
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Finder\\": ""
+ "Symfony\\Component\\Process\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -6223,10 +7908,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Finds files and directories via an intuitive fluent interface",
+ "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.3.2"
+ "source": "https://github.com/symfony/process/tree/v7.4.5"
},
"funding": [
{
@@ -6246,41 +7931,71 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T13:41:35+00:00"
+ "time": "2026-01-26T15:07:59+00:00"
},
{
- "name": "symfony/polyfill-php73",
- "version": "v1.33.0",
+ "name": "symfony/serializer",
+ "version": "v7.4.7",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
+ "url": "https://github.com/symfony/serializer.git",
+ "reference": "bd395bbc6fabd136a48e1a6f91b09f88b5050b0b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
- "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/bd395bbc6fabd136a48e1a6f91b09f88b5050b0b",
+ "reference": "bd395bbc6fabd136a48e1a6f91b09f88b5050b0b",
"shasum": ""
},
"require": {
- "php": ">=7.2"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php84": "^1.30"
},
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<5.2|>=7",
+ "phpdocumentor/type-resolver": "<1.5.1",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/property-access": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/type-info": "<7.2.5",
+ "symfony/uid": "<6.4",
+ "symfony/validator": "<6.4",
+ "symfony/yaml": "<6.4"
+ },
+ "require-dev": {
+ "phpdocumentor/reflection-docblock": "^5.2|^6.0",
+ "phpstan/phpdoc-parser": "^1.0|^2.0",
+ "seld/jsonlint": "^1.10",
+ "symfony/cache": "^6.4|^7.0|^8.0",
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^7.2|^8.0",
+ "symfony/error-handler": "^6.4|^7.0|^8.0",
+ "symfony/filesystem": "^6.4|^7.0|^8.0",
+ "symfony/form": "^6.4|^7.0|^8.0",
+ "symfony/http-foundation": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
+ "symfony/mime": "^6.4|^7.0|^8.0",
+ "symfony/property-access": "^6.4|^7.0|^8.0",
+ "symfony/property-info": "^6.4|^7.0|^8.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/type-info": "^7.2.5|^8.0",
+ "symfony/uid": "^6.4|^7.0|^8.0",
+ "symfony/validator": "^6.4|^7.0|^8.0",
+ "symfony/var-dumper": "^6.4|^7.0|^8.0",
+ "symfony/var-exporter": "^6.4|^7.0|^8.0",
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
+ "type": "library",
"autoload": {
- "files": [
- "bootstrap.php"
- ],
"psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
+ "Symfony\\Component\\Serializer\\": ""
},
- "classmap": [
- "Resources/stubs"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -6289,24 +8004,18 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0"
+ "source": "https://github.com/symfony/serializer/tree/v7.4.7"
},
"funding": [
{
@@ -6326,41 +8035,41 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-03-06T13:15:18+00:00"
},
{
- "name": "symfony/polyfill-php80",
- "version": "v1.33.0",
+ "name": "symfony/translation-contracts",
+ "version": "v3.6.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
- "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977",
+ "reference": "65a8bc82080447fae78373aa10f8d13b38338977",
"shasum": ""
},
"require": {
- "php": ">=7.2"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.6-dev"
}
},
"autoload": {
- "files": [
- "bootstrap.php"
- ],
"psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
+ "Symfony\\Contracts\\Translation\\": ""
},
- "classmap": [
- "Resources/stubs"
+ "exclude-from-classmap": [
+ "/Test/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -6368,10 +8077,6 @@
"MIT"
],
"authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -6381,16 +8086,18 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "description": "Generic abstractions related to translation",
"homepage": "https://symfony.com",
"keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1"
},
"funding": [
{
@@ -6410,41 +8117,71 @@
"type": "tidelift"
}
],
- "time": "2025-01-02T08:10:11+00:00"
+ "time": "2025-07-15T13:41:35+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.33.0",
+ "name": "symfony/validator",
+ "version": "v7.4.7",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "3a1a460a9f8c5e5611e15c52c4baa5a62fa3c203"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
- "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/3a1a460a9f8c5e5611e15c52c4baa5a62fa3c203",
+ "reference": "3a1a460a9f8c5e5611e15c52c4baa5a62fa3c203",
"shasum": ""
},
"require": {
- "php": ">=7.2"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php83": "^1.27",
+ "symfony/translation-contracts": "^2.5|^3"
},
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
+ "conflict": {
+ "doctrine/lexer": "<1.1",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<7.0",
+ "symfony/expression-language": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/intl": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/translation": "<6.4.3|>=7.0,<7.0.3",
+ "symfony/var-exporter": "<6.4.25|>=7.0,<7.3.3",
+ "symfony/yaml": "<6.4"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "symfony/cache": "^6.4|^7.0|^8.0",
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/expression-language": "^6.4|^7.0|^8.0",
+ "symfony/finder": "^6.4|^7.0|^8.0",
+ "symfony/http-client": "^6.4|^7.0|^8.0",
+ "symfony/http-foundation": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/intl": "^6.4|^7.0|^8.0",
+ "symfony/mime": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/property-access": "^6.4|^7.0|^8.0",
+ "symfony/property-info": "^6.4|^7.0|^8.0",
+ "symfony/string": "^6.4|^7.0|^8.0",
+ "symfony/translation": "^6.4.3|^7.0.3|^8.0",
+ "symfony/type-info": "^7.1.8",
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
+ "type": "library",
"autoload": {
- "files": [
- "bootstrap.php"
- ],
"psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
+ "Symfony\\Component\\Validator\\": ""
},
- "classmap": [
- "Resources/stubs"
+ "exclude-from-classmap": [
+ "/Tests/",
+ "/Resources/bin/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -6453,24 +8190,18 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Provides tools to validate values",
"homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0"
+ "source": "https://github.com/symfony/validator/tree/v7.4.7"
},
"funding": [
{
@@ -6490,29 +8221,47 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-03-06T11:10:17+00:00"
},
{
- "name": "symfony/process",
- "version": "v7.3.3",
+ "name": "symfony/var-dumper",
+ "version": "v7.4.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
- "reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/045321c440ac18347b136c63d2e9bf28a2dc0291",
+ "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
},
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/uid": "^6.4|^7.0|^8.0",
+ "twig/twig": "^3.12"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
"type": "library",
"autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
"psr-4": {
- "Symfony\\Component\\Process\\": ""
+ "Symfony\\Component\\VarDumper\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -6524,18 +8273,22 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Executes commands in sub-processes",
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
"homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
"support": {
- "source": "https://github.com/symfony/process/tree/v7.3.3"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.4.6"
},
"funding": [
{
@@ -6555,47 +8308,40 @@
"type": "tidelift"
}
],
- "time": "2025-08-18T09:42:54+00:00"
+ "time": "2026-02-15T10:53:20+00:00"
},
{
- "name": "symfony/var-dumper",
- "version": "v7.3.3",
+ "name": "symfony/yaml",
+ "version": "v7.4.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "58751048de17bae71c5aa0d13cb19d79bca26391"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
- "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/58751048de17bae71c5aa0d13cb19d79bca26391",
+ "reference": "58751048de17bae71c5aa0d13cb19d79bca26391",
"shasum": ""
},
"require": {
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.0"
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/console": "<6.4"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/process": "^6.4|^7.0",
- "symfony/uid": "^6.4|^7.0",
- "twig/twig": "^3.12"
+ "symfony/console": "^6.4|^7.0|^8.0"
},
"bin": [
- "Resources/bin/var-dump-server"
+ "Resources/bin/yaml-lint"
],
"type": "library",
"autoload": {
- "files": [
- "Resources/functions/dump.php"
- ],
"psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
+ "Symfony\\Component\\Yaml\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -6607,22 +8353,18 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
- "keywords": [
- "debug",
- "dump"
- ],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.3.3"
+ "source": "https://github.com/symfony/yaml/tree/v7.4.6"
},
"funding": [
{
@@ -6642,27 +8384,88 @@
"type": "tidelift"
}
],
- "time": "2025-08-13T11:49:31+00:00"
+ "time": "2026-02-09T09:33:46+00:00"
+ },
+ {
+ "name": "testcontainers/testcontainers",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/testcontainers/testcontainers-php.git",
+ "reference": "266f0beca7bfc654b763c97b6ba7d228eb4a3d8e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/testcontainers/testcontainers-php/zipball/266f0beca7bfc654b763c97b6ba7d228eb4a3d8e",
+ "reference": "266f0beca7bfc654b763c97b6ba7d228eb4a3d8e",
+ "shasum": ""
+ },
+ "require": {
+ "beluga-php/docker-php": "^1.45",
+ "ext-curl": "*",
+ "php": ">= 8.1"
+ },
+ "require-dev": {
+ "brianium/paratest": "^6.11",
+ "ext-pdo": "*",
+ "ext-pdo_mysql": "*",
+ "ext-pdo_pgsql": "*",
+ "friendsofphp/php-cs-fixer": "^3.92",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "predis/predis": "^3.0 || ^2.0"
+ },
+ "suggest": {
+ "ext-mongodb": "Required for MongoDB container support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Testcontainers\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Soner Sayakci",
+ "email": "github@shyim.de"
+ }
+ ],
+ "description": "Testcontainers implementation in PHP",
+ "keywords": [
+ "docker",
+ "testcontainers"
+ ],
+ "support": {
+ "issues": "https://github.com/testcontainers/testcontainers-php/issues",
+ "source": "https://github.com/testcontainers/testcontainers-php/tree/1.0.8"
+ },
+ "time": "2026-03-12T05:59:42+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.3",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
- "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4",
+ "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
- "php": "^7.2 || ^8.0"
+ "php": "^8.1"
},
"type": "library",
"autoload": {
@@ -6684,7 +8487,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/2.0.1"
},
"funding": [
{
@@ -6692,20 +8495,20 @@
"type": "github"
}
],
- "time": "2024-03-03T12:36:25+00:00"
+ "time": "2025-12-08T11:19:18+00:00"
},
{
"name": "twig/markdown-extra",
- "version": "v3.21.0",
+ "version": "v3.23.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/markdown-extra.git",
- "reference": "f4616e1dd375209dacf6026f846e6b537d036ce4"
+ "reference": "faf069b259e2d3930c73c2f53e2dec8440bd90a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/f4616e1dd375209dacf6026f846e6b537d036ce4",
- "reference": "f4616e1dd375209dacf6026f846e6b537d036ce4",
+ "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/faf069b259e2d3930c73c2f53e2dec8440bd90a2",
+ "reference": "faf069b259e2d3930c73c2f53e2dec8440bd90a2",
"shasum": ""
},
"require": {
@@ -6715,7 +8518,7 @@
},
"require-dev": {
"erusev/parsedown": "dev-master as 1.x-dev",
- "league/commonmark": "^1.0|^2.0",
+ "league/commonmark": "^2.7",
"league/html-to-markdown": "^4.8|^5.0",
"michelf/php-markdown": "^1.8|^2.0",
"symfony/phpunit-bridge": "^6.4|^7.0"
@@ -6752,7 +8555,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/markdown-extra/tree/v3.21.0"
+ "source": "https://github.com/twigphp/markdown-extra/tree/v3.23.0"
},
"funding": [
{
@@ -6764,20 +8567,20 @@
"type": "tidelift"
}
],
- "time": "2025-01-31T20:45:36+00:00"
+ "time": "2025-12-02T14:45:16+00:00"
},
{
"name": "twig/twig",
- "version": "v3.21.1",
+ "version": "v3.23.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d"
+ "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d",
- "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
+ "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
"shasum": ""
},
"require": {
@@ -6831,7 +8634,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.21.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.23.0"
},
"funding": [
{
@@ -6843,7 +8646,7 @@
"type": "tidelift"
}
],
- "time": "2025-05-03T07:21:55+00:00"
+ "time": "2026-01-23T21:00:41+00:00"
}
],
"aliases": [],
@@ -6859,6 +8662,6 @@
"ext-json": "*",
"ext-mbstring": "*"
},
- "platform-dev": {},
- "plugin-api-version": "2.6.0"
+ "platform-dev": [],
+ "plugin-api-version": "2.9.0"
}
diff --git a/app/phpunit.xml b/app/phpunit.xml
new file mode 100644
index 000000000..ef62738b0
--- /dev/null
+++ b/app/phpunit.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tests/TestCase/
+
+
+
+
+
+
+
+
+
+
+
+
+ src/
+ plugins/*/src/
+
+
+ src/Console/Installer.php
+
+
+
diff --git a/app/phpunit.xml.dist b/app/phpunit.xml.dist
deleted file mode 100644
index 710712222..000000000
--- a/app/phpunit.xml.dist
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- tests/TestCase/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- src/
- plugins/*/src/
-
- src/Console/Installer.php
-
-
-
-
diff --git a/app/tests/TestCase/ApplicationTest.php b/app/tests/TestCase/ApplicationTest.php
index 4ba3acf11..63bc3d1bb 100644
--- a/app/tests/TestCase/ApplicationTest.php
+++ b/app/tests/TestCase/ApplicationTest.php
@@ -17,53 +17,52 @@
namespace App\Test\TestCase;
use App\Application;
+use App\Middleware\HostHeaderMiddleware;
+use Cake\Core\Configure;
use Cake\Error\Middleware\ErrorHandlerMiddleware;
use Cake\Http\MiddlewareQueue;
use Cake\Routing\Middleware\AssetMiddleware;
use Cake\Routing\Middleware\RoutingMiddleware;
-use Cake\TestSuite\IntegrationTestCase;
-use InvalidArgumentException;
+use Cake\TestSuite\IntegrationTestTrait;
+use Cake\TestSuite\TestCase;
/**
* ApplicationTest class
*/
-class ApplicationTest extends IntegrationTestCase
+class ApplicationTest extends TestCase
{
+ use IntegrationTestTrait;
+
/**
- * testBootstrap
+ * Test bootstrap in production.
*
* @return void
*/
public function testBootstrap()
{
- $app = new Application(dirname(dirname(__DIR__)) . '/config');
+ Configure::write('debug', false);
+ $app = new Application(dirname(__DIR__, 2) . '/config');
$app->bootstrap();
$plugins = $app->getPlugins();
- $this->assertCount(3, $plugins);
- $this->assertSame('Bake', $plugins->get('Bake')->getName());
- $this->assertSame('DebugKit', $plugins->get('DebugKit')->getName());
- $this->assertSame('Migrations', $plugins->get('Migrations')->getName());
+ $this->assertTrue($plugins->has('Bake'), 'plugins has Bake?');
+ $this->assertFalse($plugins->has('DebugKit'), 'plugins has DebugKit?');
+ $this->assertTrue($plugins->has('Migrations'), 'plugins has Migrations?');
}
/**
- * testBootstrapPluginWitoutHalt
+ * Test bootstrap add DebugKit plugin in debug mode.
*
* @return void
*/
- public function testBootstrapPluginWithoutHalt()
+ public function testBootstrapInDebug()
{
- $this->expectException(InvalidArgumentException::class);
-
- $app = $this->getMockBuilder(Application::class)
- ->setConstructorArgs([dirname(dirname(__DIR__)) . '/config'])
- ->onlyMethods(['addPlugin'])
- ->getMock();
-
- $app->method('addPlugin')
- ->will($this->throwException(new InvalidArgumentException('test exception.')));
-
+ Configure::write('debug', true);
+ $app = new Application(dirname(__DIR__, 2) . '/config');
$app->bootstrap();
+ $plugins = $app->getPlugins();
+
+ $this->assertTrue($plugins->has('DebugKit'), 'plugins has DebugKit?');
}
/**
@@ -73,15 +72,17 @@ public function testBootstrapPluginWithoutHalt()
*/
public function testMiddleware()
{
- $app = new Application(dirname(dirname(__DIR__)) . '/config');
+ $app = new Application(dirname(__DIR__, 2) . '/config');
$middleware = new MiddlewareQueue();
$middleware = $app->middleware($middleware);
$this->assertInstanceOf(ErrorHandlerMiddleware::class, $middleware->current());
$middleware->seek(1);
- $this->assertInstanceOf(AssetMiddleware::class, $middleware->current());
+ $this->assertInstanceOf(HostHeaderMiddleware::class, $middleware->current());
$middleware->seek(2);
+ $this->assertInstanceOf(AssetMiddleware::class, $middleware->current());
+ $middleware->seek(3);
$this->assertInstanceOf(RoutingMiddleware::class, $middleware->current());
}
}
diff --git a/app/tests/TestCase/Command/RegistrySetupTest.php b/app/tests/TestCase/Command/RegistrySetupTest.php
new file mode 100644
index 000000000..111131f7c
--- /dev/null
+++ b/app/tests/TestCase/Command/RegistrySetupTest.php
@@ -0,0 +1,84 @@
+assertFileExists($saltFile, 'security.salt should exist prior to running setup');
+ $this->assertSame($salt, file_get_contents($saltFile));
+
+ // 1) Run database command
+ $this->exec('database');
+ $this->assertExitCode(0, 'bin/cake database should exit successfully');
+
+ // 2) Run setup command
+ $this->exec(sprintf(
+ 'setup --admin-given-name %s --admin-family-name %s --admin-username %s',
+ $adminGiven,
+ $adminFamily,
+ $adminUser,
+ ));
+ $this->assertExitCode(0, 'bin/cake setup should exit successfully');
+
+ // 3) Basic sanity checks
+ $this->assertFileExists($saltFile, 'security.salt should exist after setup');
+ $this->assertSame($salt, file_get_contents($saltFile), 'security.salt should remain the expected value');
+
+ $connection = ConnectionManager::get('test');
+
+ // Verify we can talk to the DB and it has tables.
+ $tables = $connection->getSchemaCollection()->listTables();
+ $this->assertNotEmpty($tables, 'Expected at least one table after running setup/database');
+
+ // 4) Assert schema.json tables exist
+ $schemaFile = $appDir . '/config/schema/schema.json';
+ $this->assertFileExists($schemaFile, 'Expected schema.json to exist at config/schema/schema.json');
+
+ $json = file_get_contents($schemaFile);
+ if ($json === false) {
+ throw new RuntimeException('Failed to read schema file: ' . $schemaFile);
+ }
+
+ $data = json_decode($json, true);
+ $this->assertIsArray($data, 'schema.json did not decode into an array');
+ $this->assertArrayHasKey('tables', $data, 'schema.json is missing the "tables" key');
+ $this->assertIsArray($data['tables'], 'schema.json "tables" should be an object/map');
+
+ $expectedTables = array_keys($data['tables']);
+ $missing = array_values(array_diff($expectedTables, $tables));
+
+ $this->assertSame(
+ [],
+ $missing,
+ "Some tables from config/schema/schema.json are missing in the database.\n"
+ . 'Missing: ' . implode(', ', $missing) . "\n"
+ . 'DB_ENGINE=' . (getenv('DB_ENGINE') ?: '(not set)')
+ );
+ }
+}
diff --git a/app/tests/TestCase/Controller/PagesControllerTest.php b/app/tests/TestCase/Controller/PagesControllerTest.php
index bf018e115..f0f72c9d0 100644
--- a/app/tests/TestCase/Controller/PagesControllerTest.php
+++ b/app/tests/TestCase/Controller/PagesControllerTest.php
@@ -17,31 +17,17 @@
namespace App\Test\TestCase\Controller;
use Cake\Core\Configure;
+use Cake\TestSuite\Constraint\Response\StatusCode;
use Cake\TestSuite\IntegrationTestTrait;
use Cake\TestSuite\TestCase;
/**
* PagesControllerTest class
- *
- * @uses \App\Controller\PagesController
*/
class PagesControllerTest extends TestCase
{
use IntegrationTestTrait;
- /**
- * testMultipleGet method
- *
- * @return void
- */
- public function testMultipleGet()
- {
- $this->get('/');
- $this->assertResponseOk();
- $this->get('/');
- $this->assertResponseOk();
- }
-
/**
* testDisplay method
*
@@ -49,6 +35,7 @@ public function testMultipleGet()
*/
public function testDisplay()
{
+ Configure::write('debug', true);
$this->get('/pages/home');
$this->assertResponseOk();
$this->assertResponseContains('CakePHP');
@@ -81,7 +68,7 @@ public function testMissingTemplateInDebug()
$this->assertResponseFailure();
$this->assertResponseContains('Missing Template');
- $this->assertResponseContains('Stacktrace');
+ $this->assertResponseContains('stack-frames');
$this->assertResponseContains('not_existing.php');
}
@@ -120,7 +107,7 @@ public function testCsrfAppliedOk()
$this->enableCsrfToken();
$this->post('/pages/home', ['hello' => 'world']);
- $this->assertResponseCode(200);
- $this->assertResponseContains('CakePHP');
+ $this->assertThat(403, $this->logicalNot(new StatusCode($this->_response)));
+ $this->assertResponseNotContains('CSRF');
}
}
diff --git a/app/tests/bootstrap.php b/app/tests/bootstrap.php
index 962815cd4..11699fbfb 100644
--- a/app/tests/bootstrap.php
+++ b/app/tests/bootstrap.php
@@ -15,8 +15,17 @@
* @license https://opensource.org/licenses/mit-license.php MIT License
*/
+use Cake\Chronos\Chronos;
use Cake\Core\Configure;
+use Cake\Database\Connection;
+use Cake\Database\Driver\Mysql;
+use Cake\Database\Driver\Postgres;
use Cake\Datasource\ConnectionManager;
+use Cake\TestSuite\ConnectionHelper;
+use Migrations\TestSuite\Migrator;
+use Testcontainers\Modules\MariaDBContainer;
+use Testcontainers\Modules\MySQLContainer;
+use Testcontainers\Modules\PostgresContainer;
/**
* Test runner bootstrap.
@@ -28,25 +37,160 @@
require dirname(__DIR__) . '/config/bootstrap.php';
-$_SERVER['PHP_SELF'] = '/';
+if (empty($_SERVER['HTTP_HOST']) && !Configure::read('App.fullBaseUrl')) {
+ Configure::write('App.fullBaseUrl', 'http://localhost');
+}
-Configure::write('App.fullBaseUrl', 'http://localhost');
-
-// DebugKit skips settings these connection config if PHP SAPI is CLI / PHPDBG.
-// But since PagesControllerTest is run with debug enabled and DebugKit is loaded
-// in application, without setting up these config DebugKit errors out.
-ConnectionManager::setConfig('test_debug_kit', [
- 'className' => 'Cake\Database\Connection',
- 'driver' => 'Cake\Database\Driver\Sqlite',
- 'database' => TMP . 'debug_kit.sqlite',
- 'encoding' => 'utf8',
- 'cacheMetadata' => true,
- 'quoteIdentifiers' => false,
-]);
-
-ConnectionManager::alias('test_debug_kit', 'debug_kit');
+// Fixate now to avoid one-second-leap-issues
+Chronos::setTestNow(Chronos::now());
// Fixate sessionid early on, as php7.2+
// does not allow the sessionid to be set after stdout
// has been written to.
session_id('cli');
+
+/**
+ * Helper to set env vars so getenv(), $_ENV, and $_SERVER all see them.
+ */
+$setEnv = static function (string $key, string $value): void {
+ putenv($key . '=' . $value);
+ $_ENV[$key] = $value;
+ $_SERVER[$key] = $value;
+};
+
+// -----------------------------------------------------
+// Testcontainers Dynamic Database Configuration (mysql/mariadb/postgres)
+// -----------------------------------------------------
+$dbEngine = getenv('DB_ENGINE') ?: 'mysql';
+
+/**
+ * These are expected to be provided via phpunit.xml (or CI env).
+ * Host/port will be overridden dynamically after the container starts.
+ */
+$testDbName = getenv('COMANAGE_REGISTRY_DATABASE') ?: 'registry_test';
+$testDbUser = getenv('COMANAGE_REGISTRY_DATABASE_USER') ?: 'test_user';
+$testDbPass = getenv('COMANAGE_REGISTRY_DATABASE_USER_PASSWORD') ?: 'test_password';
+
+$container = null;
+
+if ($dbEngine === 'postgres') {
+ if (!class_exists(PostgresContainer::class)) {
+ throw new RuntimeException('Testcontainers PostgresContainer class not found. Is testcontainers/testcontainers installed?');
+ }
+
+ $container = (new PostgresContainer('16-alpine'))
+ ->withPostgresDatabase($testDbName)
+ ->withPostgresUser($testDbUser)
+ ->withPostgresPassword($testDbPass)
+ ->start();
+
+ $host = $container->getHost();
+ $port = (int)$container->getFirstMappedPort();
+
+ // Export dynamic DB values for any code that reads COMANAGE_REGISTRY_* env vars (eg setup tests)
+ $setEnv('COMANAGE_REGISTRY_DATABASE', $testDbName);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_HOST', $host);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PORT', (string)$port);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER', $testDbUser);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER_PASSWORD', $testDbPass);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PERSISTENT', 'false');
+
+ ConnectionManager::drop('test');
+ ConnectionManager::setConfig('test', [
+ 'className' => Connection::class,
+ 'driver' => Postgres::class,
+ 'persistent' => false,
+ 'host' => $host,
+ 'port' => $port,
+ 'username' => $testDbUser,
+ 'password' => $testDbPass,
+ 'database' => $testDbName,
+ 'quoteIdentifiers' => false,
+ ]);
+} elseif ($dbEngine === 'mariadb') {
+ if (!class_exists(MariaDBContainer::class)) {
+ throw new RuntimeException('Testcontainers MariaDBContainer class not found. Is testcontainers/testcontainers installed?');
+ }
+
+ $container = (new MariaDBContainer())
+ ->withMariaDBDatabase($testDbName)
+ ->withMariaDBUser($testDbUser, $testDbPass)
+ ->start();
+
+ $host = $container->getHost();
+ $port = (int)$container->getFirstMappedPort();
+
+ $setEnv('COMANAGE_REGISTRY_DATABASE', $testDbName);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_HOST', $host);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PORT', (string)$port);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER', $testDbUser);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER_PASSWORD', $testDbPass);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PERSISTENT', 'false');
+
+ ConnectionManager::drop('test');
+ ConnectionManager::setConfig('test', [
+ 'className' => Connection::class,
+ 'driver' => Mysql::class, // MariaDB uses MySQL driver in CakePHP
+ 'persistent' => false,
+ 'host' => $host,
+ 'port' => $port,
+ 'username' => $testDbUser,
+ 'password' => $testDbPass,
+ 'database' => $testDbName,
+ 'encoding' => 'utf8mb4',
+ 'timezone' => 'UTC',
+ 'quoteIdentifiers' => false,
+ ]);
+} else {
+ // Default to MySQL
+ if (!class_exists(MySQLContainer::class)) {
+ throw new RuntimeException('Testcontainers MySQLContainer class not found. Is testcontainers/testcontainers installed?');
+ }
+
+ $mysqlVersion = getenv('MYSQL_VERSION') ?: '8.0';
+
+ $container = (new MySQLContainer($mysqlVersion))
+ ->withMySQLDatabase($testDbName)
+ ->withMySQLUser($testDbUser, $testDbPass)
+ ->start();
+
+ $host = $container->getHost();
+ $port = (int)$container->getFirstMappedPort();
+
+ $setEnv('COMANAGE_REGISTRY_DATABASE', $testDbName);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_HOST', $host);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PORT', (string)$port);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER', $testDbUser);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_USER_PASSWORD', $testDbPass);
+ $setEnv('COMANAGE_REGISTRY_DATABASE_PERSISTENT', 'false');
+
+ ConnectionManager::drop('test');
+ ConnectionManager::setConfig('test', [
+ 'className' => Connection::class,
+ 'driver' => Mysql::class,
+ 'persistent' => false,
+ 'host' => $host,
+ 'port' => $port,
+ 'username' => $testDbUser,
+ 'password' => $testDbPass,
+ 'database' => $testDbName,
+ 'encoding' => 'utf8mb4',
+ 'timezone' => 'UTC',
+ 'quoteIdentifiers' => false,
+ ]);
+}
+
+register_shutdown_function(function () use (&$container): void {
+ if ($container !== null) {
+ $container->stop();
+ $container = null;
+ }
+});
+// -----------------------------------------------------
+
+// Connection aliasing needs to happen before migrations are run.
+// Otherwise, table objects inside migrations would use the default datasource
+ConnectionHelper::addTestAliases();
+
+// Use migrations to build test database schema.
+(new Migrator())->run();