diff --git a/.github/workflows/coding-standard.yml b/.github/workflows/coding-standard.yml
index 0834f336..250ba610 100644
--- a/.github/workflows/coding-standard.yml
+++ b/.github/workflows/coding-standard.yml
@@ -26,10 +26,10 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: "pcov"
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/docs-build-try.yml b/.github/workflows/docs-build-try.yml
deleted file mode 100644
index bd943e1c..00000000
--- a/.github/workflows/docs-build-try.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: Try build docs
-
-on:
- pull_request:
- push:
- branches:
- - "renovate/*"
-
-jobs:
- build-try:
- name: Deploy docs
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Set up Python
- uses: actions/setup-python@v6
- with:
- python-version: "3.x"
-
- - name: Install dependencies
- run: pip install -r docs/requirements.txt
-
- - name: Build docs
- working-directory: docs/
- run: |
- mkdocs build --strict
\ No newline at end of file
diff --git a/.github/workflows/docs-build.yml b/.github/workflows/docs-build.yml
deleted file mode 100644
index 6856b35a..00000000
--- a/.github/workflows/docs-build.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-name: Publish docs
-
-on:
- push:
- branches:
- - "[0-9]+.[0-9]+.x"
- release:
- types:
- - published
-
-jobs:
- build:
- name: Deploy docs
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v6
- with:
- fetch-depth: 0
-
- - name: Set up Python
- uses: actions/setup-python@v6
- with:
- python-version: "3.x"
-
- - name: Install dependencies
- run: pip install -r docs/requirements.txt
-
- - name: Set up git author
- uses: oleksiyrudenko/gha-git-credentials@v2
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Find latest release
- id: latest_release
- uses: pozetroninc/github-action-get-latest-release@v0.8.0
- with:
- repository: ${{ github.repository }}
- excludes: draft,prerelease
-
- - name: Normalize current versions
- id: current
- uses: actions/github-script@v9
- with:
- script: return context.ref.match(/([0-9]+\.[0-9]+)\.(x|[0-9]+)/i)[1];
- result-encoding: string
-
- - name: Normalize latest versions
- id: latest
- uses: actions/github-script@v9
- with:
- script: return "${{steps.latest_release.outputs.release}}".match(/([0-9]+\.[0-9]+)\.[0-9]+/i)[1];
- result-encoding: string
-
- - name: Setup deploy key
- env:
- DEPLOY_DOCS_KEY: ${{ secrets.DEPLOY_DOCS_KEY }}
- run: |
- # Setup SSH deploy key
- mkdir -p ~/.ssh
- echo "${DEPLOY_DOCS_KEY}" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-keyscan -H github.com > ~/.ssh/known_hosts
-
- - run: git remote add doc git@github.com:patchlevel/event-sourcing-bundle-docs.git
- - run: git fetch doc gh-pages --verbose
-
- - run: |
- current_major=$(echo "${{ steps.current.outputs.result }}" | cut -d '.' -f 1)
- current_minor=$(echo "${{ steps.current.outputs.result }}" | cut -d '.' -f 2)
-
- latest_major=$(echo "${{ steps.latest.outputs.result }}" | cut -d '.' -f 1)
- latest_minor=$(echo "${{ steps.latest.outputs.result }}" | cut -d '.' -f 2)
-
- if [ "${{ steps.current.outputs.result }}" = "${{ steps.latest.outputs.result }}" ]
- then
- # Here we deploy a new latest version
- mike deploy latest --config-file docs/mkdocs.yml --title="${{ steps.current.outputs.result }} (latest)" --push --remote doc
- elif [ "$current_major" -lt "$latest_major" ] || \
- { [ "$current_major" -eq "$latest_major" ] && [ "$current_minor" -lt "$latest_minor" ]; }
- then
- # Here we deploy a version that's not the latest one and smaller as the latest version
- mike deploy ${{ steps.current.outputs.result }} --config-file docs/mkdocs.yml --push --remote doc
- fi
- - run: |
- # Check if the "latest" alias exists
- HAS_LATEST=$(mike list --config-file docs/mkdocs.yml --rebase --remote doc | grep latest) || true
-
- # If so then it is set as the default version (to enable the index redirect)
- if [ "${HAS_LATEST}" != "" ]
- then
- echo "Set latest as default"
- mike set-default latest --config-file docs/mkdocs.yml --remote doc
- fi
\ No newline at end of file
diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml
index 6951b621..2e3df1c3 100644
--- a/.github/workflows/docs-check.yml
+++ b/.github/workflows/docs-check.yml
@@ -25,10 +25,10 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: none
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml
new file mode 100644
index 00000000..7cb425e0
--- /dev/null
+++ b/.github/workflows/docs-deploy.yml
@@ -0,0 +1,22 @@
+name: Publish docs
+
+on:
+ push:
+ branches:
+ - "[0-9]+.[0-9]+.x"
+ release:
+ types:
+ - published
+
+jobs:
+ trigger:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Trigger workflow in other repo
+ run: |
+ curl -L -X POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "Authorization: Bearer ${{ secrets.ORGANIZATION_ADMIN_TOKEN }}" \
+ -H "X-GitHub-Api-Version: 2026-03-10" \
+ https://api.github.com/repos/patchlevel/patchlevel.dev/actions/workflows/prod-deployment.yaml/dispatches \
+ -d '{"ref":"main"}'
\ No newline at end of file
diff --git a/.github/workflows/mutation-tests-diff.yml b/.github/workflows/mutation-tests-diff.yml
index a76343c8..b4ddb05b 100644
--- a/.github/workflows/mutation-tests-diff.yml
+++ b/.github/workflows/mutation-tests-diff.yml
@@ -22,12 +22,12 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
with:
fetch-depth: 0
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: "pcov"
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/mutation-tests.yml b/.github/workflows/mutation-tests.yml
index 8e6f3f0a..7bf87c04 100644
--- a/.github/workflows/mutation-tests.yml
+++ b/.github/workflows/mutation-tests.yml
@@ -26,10 +26,10 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: "pcov"
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
index d88b7ed3..afcec7bb 100644
--- a/.github/workflows/phpstan.yml
+++ b/.github/workflows/phpstan.yml
@@ -26,10 +26,10 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: "pcov"
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml
index 15fe285e..dd2ab725 100644
--- a/.github/workflows/phpunit.yml
+++ b/.github/workflows/phpunit.yml
@@ -37,10 +37,10 @@ jobs:
operating-system: "windows-latest"
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Install PHP"
- uses: "shivammathur/setup-php@2.37.0"
+ uses: "shivammathur/setup-php@2.37.2"
with:
coverage: "pcov"
php-version: "${{ matrix.php-version }}"
diff --git a/.github/workflows/release-on-milestone-closed-triggering-release-event.yml b/.github/workflows/release-on-milestone-closed-triggering-release-event.yml
index 8af28e8f..923ca3fe 100644
--- a/.github/workflows/release-on-milestone-closed-triggering-release-event.yml
+++ b/.github/workflows/release-on-milestone-closed-triggering-release-event.yml
@@ -18,7 +18,7 @@ jobs:
steps:
- name: "Checkout"
- uses: actions/checkout@v6
+ uses: actions/checkout@v7
- name: "Release"
uses: "laminas/automatic-releases@v1"
diff --git a/bin/docs-extract-php-code b/bin/docs-extract-php-code
index efcbf252..d50b642d 100755
--- a/bin/docs-extract-php-code
+++ b/bin/docs-extract-php-code
@@ -23,7 +23,7 @@ if (file_exists($targetDir)) {
mkdir($targetDir);
$finder = new Symfony\Component\Finder\Finder();
-$finder->files()->in(__DIR__ . '/../docs/pages')->name('*.md');
+$finder->files()->in(__DIR__ . '/../docs')->name('*.md');
foreach ($finder as $file) {
$fileName = pathinfo($file->getBasename(), PATHINFO_FILENAME);
diff --git a/bin/docs-inject-php-code b/bin/docs-inject-php-code
index 8cd0e05f..e4e81ead 100755
--- a/bin/docs-inject-php-code
+++ b/bin/docs-inject-php-code
@@ -25,7 +25,7 @@ if (!file_exists($targetDir)) {
}
$finder = new Symfony\Component\Finder\Finder();
-$finder->files()->in(__DIR__ . '/../docs/pages')->name('*.md');
+$finder->files()->in(__DIR__ . '/../docs')->name('*.md');
foreach ($finder as $file) {
$fileName = pathinfo($file->getBasename(), PATHINFO_FILENAME);
diff --git a/composer.lock b/composer.lock
index 94b298e8..55fe9211 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,27 +4,26 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "429b61c8f0dc5ed6ee31e7218e501904",
+ "content-hash": "0e3fa28fe7ed5a005faf5d26aaae1ca2",
"packages": [
{
"name": "brick/math",
- "version": "0.14.8",
+ "version": "0.18.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629"
+ "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629",
- "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629",
+ "url": "https://api.github.com/repos/brick/math/zipball/82944324d1c1bdb2c2618e89978d4e2ad78d69ad",
+ "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad",
"shasum": ""
},
"require": {
"php": "^8.2"
},
"require-dev": {
- "php-coveralls/php-coveralls": "^2.2",
"phpstan/phpstan": "2.1.22",
"phpunit/phpunit": "^11.5"
},
@@ -56,7 +55,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.14.8"
+ "source": "https://github.com/brick/math/tree/0.18.0"
},
"funding": [
{
@@ -64,7 +63,7 @@
"type": "github"
}
],
- "time": "2026-02-10T14:33:43+00:00"
+ "time": "2026-06-14T18:21:03+00:00"
},
{
"name": "doctrine/dbal",
@@ -416,16 +415,16 @@
},
{
"name": "patchlevel/event-sourcing",
- "version": "3.19.1",
+ "version": "3.20.0",
"source": {
"type": "git",
"url": "https://github.com/patchlevel/event-sourcing.git",
- "reference": "bb9a5a7e8b9abcc6d5d527471d6d3b9bf125dc67"
+ "reference": "584f17b3c8e87e6f1b9b7872dab694ed0e402551"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/patchlevel/event-sourcing/zipball/bb9a5a7e8b9abcc6d5d527471d6d3b9bf125dc67",
- "reference": "bb9a5a7e8b9abcc6d5d527471d6d3b9bf125dc67",
+ "url": "https://api.github.com/repos/patchlevel/event-sourcing/zipball/584f17b3c8e87e6f1b9b7872dab694ed0e402551",
+ "reference": "584f17b3c8e87e6f1b9b7872dab694ed0e402551",
"shasum": ""
},
"require": {
@@ -503,22 +502,22 @@
],
"support": {
"issues": "https://github.com/patchlevel/event-sourcing/issues",
- "source": "https://github.com/patchlevel/event-sourcing/tree/3.19.1"
+ "source": "https://github.com/patchlevel/event-sourcing/tree/3.20.0"
},
- "time": "2026-04-06T08:13:41+00:00"
+ "time": "2026-06-30T07:36:29+00:00"
},
{
"name": "patchlevel/hydrator",
- "version": "1.23.1",
+ "version": "1.24.0",
"source": {
"type": "git",
"url": "https://github.com/patchlevel/hydrator.git",
- "reference": "7c15b9bdab2bb4f5be631cc0602d558955c8051c"
+ "reference": "b33d9f92b25114156e9935c12c563195afdbeb13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/patchlevel/hydrator/zipball/7c15b9bdab2bb4f5be631cc0602d558955c8051c",
- "reference": "7c15b9bdab2bb4f5be631cc0602d558955c8051c",
+ "url": "https://api.github.com/repos/patchlevel/hydrator/zipball/b33d9f92b25114156e9935c12c563195afdbeb13",
+ "reference": "b33d9f92b25114156e9935c12c563195afdbeb13",
"shasum": ""
},
"require": {
@@ -567,9 +566,9 @@
],
"support": {
"issues": "https://github.com/patchlevel/hydrator/issues",
- "source": "https://github.com/patchlevel/hydrator/tree/1.23.1"
+ "source": "https://github.com/patchlevel/hydrator/tree/1.24.0"
},
- "time": "2026-04-28T09:27:47+00:00"
+ "time": "2026-06-13T11:46:58+00:00"
},
{
"name": "patchlevel/worker",
@@ -1010,20 +1009,20 @@
},
{
"name": "ramsey/uuid",
- "version": "4.9.2",
+ "version": "4.9.3",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "8429c78ca35a09f27565311b98101e2826affde0"
+ "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0",
- "reference": "8429c78ca35a09f27565311b98101e2826affde0",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/1df15849d00943a67d677dc9cfd80795f038c9f8",
+ "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14",
+ "brick/math": ">=0.8.16 <=0.18",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -1082,34 +1081,33 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.9.2"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.3"
},
- "time": "2025-12-14T04:43:48+00:00"
+ "time": "2026-06-18T03:57:49+00:00"
},
{
"name": "symfony/cache",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "8abf3ccbeae9d3071b81a3ae7ee11b209f9e1e78"
+ "reference": "c14decc1b0755b1e8ab6babeef56e1880348e817"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/8abf3ccbeae9d3071b81a3ae7ee11b209f9e1e78",
- "reference": "8abf3ccbeae9d3071b81a3ae7ee11b209f9e1e78",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/c14decc1b0755b1e8ab6babeef56e1880348e817",
+ "reference": "c14decc1b0755b1e8ab6babeef56e1880348e817",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/cache": "^2.0|^3.0",
"psr/log": "^1.1|^2|^3",
"symfony/cache-contracts": "^3.6",
"symfony/service-contracts": "^2.5|^3",
- "symfony/var-exporter": "^7.4|^8.0"
+ "symfony/var-exporter": "^8.1"
},
"conflict": {
- "doctrine/dbal": "<4.3",
"ext-redis": "<6.1",
"ext-relay": "<0.12.1"
},
@@ -1164,7 +1162,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v8.0.8"
+ "source": "https://github.com/symfony/cache/tree/v8.1.1"
},
"funding": [
{
@@ -1184,20 +1182,20 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:18:51+00:00"
+ "time": "2026-06-17T15:04:37+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v3.6.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868"
+ "reference": "9789738bc19af1106dc54d6afba9a0b467516cf2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868",
- "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/9789738bc19af1106dc54d6afba9a0b467516cf2",
+ "reference": "9789738bc19af1106dc54d6afba9a0b467516cf2",
"shasum": ""
},
"require": {
@@ -1211,7 +1209,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -1244,7 +1242,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -1255,29 +1253,33 @@
"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-03-13T15:25:07+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/clock",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3"
+ "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/b55a638b189a6faa875e0ccdb00908fb87af95b3",
- "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/701ef4de9705d6c32292ebee5e8044094a09fbf6",
+ "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/clock": "^1.0"
},
"provide": {
@@ -1317,7 +1319,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v8.0.8"
+ "source": "https://github.com/symfony/clock/tree/v8.1.0"
},
"funding": [
{
@@ -1337,24 +1339,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/config",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "c7369cc1da250fcbfe0c5a9d109e419661549c39"
+ "reference": "c18ae45733f9a5006ba81a13047d08a93e0dea1c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/c7369cc1da250fcbfe0c5a9d109e419661549c39",
- "reference": "c7369cc1da250fcbfe0c5a9d109e419661549c39",
+ "url": "https://api.github.com/repos/symfony/config/zipball/c18ae45733f9a5006ba81a13047d08a93e0dea1c",
+ "reference": "c18ae45733f9a5006ba81a13047d08a93e0dea1c",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/filesystem": "^7.4|^8.0",
"symfony/polyfill-ctype": "^1.8"
@@ -1395,7 +1397,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/v8.0.8"
+ "source": "https://github.com/symfony/config/tree/v8.1.1"
},
"funding": [
{
@@ -1415,27 +1417,33 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-09T10:54:51+00:00"
},
{
"name": "symfony/console",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "5b66d385dc58f69652e56f78a4184615e3f2b7f7"
+ "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/5b66d385dc58f69652e56f78a4184615e3f2b7f7",
- "reference": "5b66d385dc58f69652e56f78a4184615e3f2b7f7",
+ "url": "https://api.github.com/repos/symfony/console/zipball/b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d",
+ "reference": "b711a8ab808b6c074c6b8caef70d0fd8d6b6d07d",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php85": "^1.32",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^7.4|^8.0"
+ "symfony/string": "^7.4.6|^8.0.6"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<8.1",
+ "symfony/event-dispatcher": "<8.1"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
@@ -1443,14 +1451,18 @@
"require-dev": {
"psr/log": "^1|^2|^3",
"symfony/config": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
- "symfony/event-dispatcher": "^7.4|^8.0",
+ "symfony/dependency-injection": "^8.1",
+ "symfony/event-dispatcher": "^8.1",
+ "symfony/filesystem": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
"symfony/http-kernel": "^7.4|^8.0",
"symfony/lock": "^7.4|^8.0",
"symfony/messenger": "^7.4|^8.0",
+ "symfony/mime": "^7.4|^8.0",
"symfony/process": "^7.4|^8.0",
"symfony/stopwatch": "^7.4|^8.0",
+ "symfony/uid": "^7.4|^8.0",
+ "symfony/validator": "^7.4|^8.0",
"symfony/var-dumper": "^7.4|^8.0"
},
"type": "library",
@@ -1485,7 +1497,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v8.0.8"
+ "source": "https://github.com/symfony/console/tree/v8.1.1"
},
"funding": [
{
@@ -1505,28 +1517,28 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-16T12:55:20+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "3ce58b0fa844dc647ca1d66ea34748af985728c5"
+ "reference": "99ced9d6305c43b25a7d48fe6a7d169df275a597"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3ce58b0fa844dc647ca1d66ea34748af985728c5",
- "reference": "3ce58b0fa844dc647ca1d66ea34748af985728c5",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/99ced9d6305c43b25a7d48fe6a7d169df275a597",
+ "reference": "99ced9d6305c43b25a7d48fe6a7d169df275a597",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/container": "^1.1|^2.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^3.6",
- "symfony/var-exporter": "^7.4|^8.0"
+ "symfony/var-exporter": "^8.1"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -1566,7 +1578,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dependency-injection/tree/v8.0.8"
+ "source": "https://github.com/symfony/dependency-injection/tree/v8.1.1"
},
"funding": [
{
@@ -1586,20 +1598,20 @@
"type": "tidelift"
}
],
- "time": "2026-03-31T07:15:36+00:00"
+ "time": "2026-06-27T06:18:14+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.6.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
+ "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
- "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d",
+ "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d",
"shasum": ""
},
"require": {
@@ -1612,7 +1624,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -1637,7 +1649,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -1648,29 +1660,33 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:21:43+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517"
+ "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
- "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/d8aeb1abd3fef84795567850d3a567bdb5945ee5",
+ "reference": "d8aeb1abd3fef84795567850d3a567bdb5945ee5",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/log": "^1|^2|^3",
"symfony/polyfill-php85": "^1.32",
"symfony/var-dumper": "^7.4|^8.0"
@@ -1714,7 +1730,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v8.0.8"
+ "source": "https://github.com/symfony/error-handler/tree/v8.1.0"
},
"funding": [
{
@@ -1734,24 +1750,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v8.0.4",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "99301401da182b6cfaa4700dbe9987bb75474b47"
+ "reference": "abd6c11dc468725d1627302ad10f6cd486e9e3d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47",
- "reference": "99301401da182b6cfaa4700dbe9987bb75474b47",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abd6c11dc468725d1627302ad10f6cd486e9e3d0",
+ "reference": "abd6c11dc468725d1627302ad10f6cd486e9e3d0",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
@@ -1799,7 +1816,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v8.1.1"
},
"funding": [
{
@@ -1819,20 +1836,20 @@
"type": "tidelift"
}
],
- "time": "2026-01-05T11:45:55+00:00"
+ "time": "2026-06-09T12:28:30+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.6.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "59eb412e93815df44f05f342958efa9f46b1e586"
+ "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586",
- "reference": "59eb412e93815df44f05f342958efa9f46b1e586",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e",
+ "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e",
"shasum": ""
},
"require": {
@@ -1846,7 +1863,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -1879,7 +1896,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -1890,29 +1907,34 @@
"url": "https://github.com/fabpot",
"type": "github"
},
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2024-09-25T14:21:43+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "66b769ae743ce2d13e435528fbef4af03d623e5a"
+ "reference": "99aec13b82b4967ec5088222c4a3ecca955949c2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/66b769ae743ce2d13e435528fbef4af03d623e5a",
- "reference": "66b769ae743ce2d13e435528fbef4af03d623e5a",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/99aec13b82b4967ec5088222c4a3ecca955949c2",
+ "reference": "99aec13b82b4967ec5088222c4a3ecca955949c2",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@@ -1945,7 +1967,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v8.0.8"
+ "source": "https://github.com/symfony/filesystem/tree/v8.1.0"
},
"funding": [
{
@@ -1965,24 +1987,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/finder",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "8da41214757b87d97f181e3d14a4179286151007"
+ "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/8da41214757b87d97f181e3d14a4179286151007",
- "reference": "8da41214757b87d97f181e3d14a4179286151007",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/e2989e762c70f9490fa3a00a0ac0fae5aa97a531",
+ "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"require-dev": {
"symfony/filesystem": "^7.4|^8.0"
@@ -2013,7 +2035,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v8.0.8"
+ "source": "https://github.com/symfony/finder/tree/v8.1.1"
},
"funding": [
{
@@ -2033,24 +2055,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-27T09:05:56+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b"
+ "reference": "6a168c8fcee806b57ac020244da14293d1f9a883"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/02656f7ebeae5c155d659e946f6b3a33df24051b",
- "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6a168c8fcee806b57ac020244da14293d1f9a883",
+ "reference": "6a168c8fcee806b57ac020244da14293d1f9a883",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "^1.1"
},
"conflict": {
@@ -2093,7 +2116,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v8.0.8"
+ "source": "https://github.com/symfony/http-foundation/tree/v8.1.1"
},
"funding": [
{
@@ -2113,34 +2136,38 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-12T08:43:41+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "1770f6818d83b2fddc12185025b93f39a90cb628"
+ "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1770f6818d83b2fddc12185025b93f39a90cb628",
- "reference": "1770f6818d83b2fddc12185025b93f39a90cb628",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2",
+ "reference": "89d8d6e7fbab3d9eda89ccb5ecdf44a74c4ec9d2",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^7.4|^8.0",
"symfony/event-dispatcher": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
+ "symfony/dependency-injection": "<8.1",
"symfony/flex": "<2.10",
"symfony/http-client-contracts": "<2.5",
"symfony/translation-contracts": "<2.5",
+ "symfony/var-dumper": "<8.1",
+ "symfony/web-profiler-bundle": "<8.1",
"twig/twig": "<3.21"
},
"provide": {
@@ -2153,13 +2180,14 @@
"symfony/config": "^7.4|^8.0",
"symfony/console": "^7.4|^8.0",
"symfony/css-selector": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/dependency-injection": "^8.1",
"symfony/dom-crawler": "^7.4|^8.0",
"symfony/expression-language": "^7.4|^8.0",
"symfony/finder": "^7.4|^8.0",
"symfony/http-client-contracts": "^2.5|^3",
"symfony/process": "^7.4|^8.0",
"symfony/property-access": "^7.4|^8.0",
+ "symfony/rate-limiter": "^7.4|^8.0",
"symfony/routing": "^7.4|^8.0",
"symfony/serializer": "^7.4|^8.0",
"symfony/stopwatch": "^7.4|^8.0",
@@ -2167,7 +2195,7 @@
"symfony/translation-contracts": "^2.5|^3",
"symfony/uid": "^7.4|^8.0",
"symfony/validator": "^7.4|^8.0",
- "symfony/var-dumper": "^7.4|^8.0",
+ "symfony/var-dumper": "^8.1",
"symfony/var-exporter": "^7.4|^8.0",
"twig/twig": "^3.21"
},
@@ -2197,7 +2225,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v8.0.8"
+ "source": "https://github.com/symfony/http-kernel/tree/v8.1.1"
},
"funding": [
{
@@ -2217,29 +2245,31 @@
"type": "tidelift"
}
],
- "time": "2026-03-31T21:14:05+00:00"
+ "time": "2026-06-27T09:27:36+00:00"
},
{
"name": "symfony/messenger",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/messenger.git",
- "reference": "8d0e6b2d5e5dc9d484c6e45117395ae98f0a497a"
+ "reference": "6518d975287e79d5a15392ac9184966f7418175a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/messenger/zipball/8d0e6b2d5e5dc9d484c6e45117395ae98f0a497a",
- "reference": "8d0e6b2d5e5dc9d484c6e45117395ae98f0a497a",
+ "url": "https://api.github.com/repos/symfony/messenger/zipball/6518d975287e79d5a15392ac9184966f7418175a",
+ "reference": "6518d975287e79d5a15392ac9184966f7418175a",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/log": "^1|^2|^3",
- "symfony/clock": "^7.4|^8.0"
+ "symfony/clock": "^7.4|^8.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"symfony/console": "<7.4",
+ "symfony/dependency-injection": "<8.1",
"symfony/event-dispatcher-contracts": "<2.5",
"symfony/lock": "<7.4",
"symfony/serializer": "<7.4.4|>=8.0,<8.0.4"
@@ -2247,7 +2277,7 @@
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
"symfony/console": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/dependency-injection": "^8.1",
"symfony/event-dispatcher": "^7.4|^8.0",
"symfony/http-kernel": "^7.4|^8.0",
"symfony/lock": "^7.4|^8.0",
@@ -2287,7 +2317,7 @@
"description": "Helps applications send and receive messages to/from other applications or via message queues",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/messenger/tree/v8.0.8"
+ "source": "https://github.com/symfony/messenger/tree/v8.1.1"
},
"funding": [
{
@@ -2307,7 +2337,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-16T19:38:37+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -2392,18 +2422,105 @@
],
"time": "2026-04-10T16:19:22+00:00"
},
+ {
+ "name": "symfony/polyfill-deepclone",
+ "version": "v1.40.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-deepclone.git",
+ "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-deepclone/zipball/dca4ccba5f360070b574414dce4c1e7a559844fa",
+ "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "provide": {
+ "ext-deepclone": "*"
+ },
+ "suggest": {
+ "ext-deepclone": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\DeepClone\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the deepclone extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "deepclone",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-deepclone/tree/v1.40.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": "2026-06-12T07:27:17+00:00"
+ },
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.37.0",
+ "version": "v1.38.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e"
+ "reference": "e9247d281d694a5120554d9afaf54e070e88a603"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e",
- "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/e9247d281d694a5120554d9afaf54e070e88a603",
+ "reference": "e9247d281d694a5120554d9afaf54e070e88a603",
"shasum": ""
},
"require": {
@@ -2452,7 +2569,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.38.1"
},
"funding": [
{
@@ -2472,20 +2589,20 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T13:13:48+00:00"
+ "time": "2026-05-26T05:58:03+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.37.0",
+ "version": "v1.38.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b",
+ "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b",
"shasum": ""
},
"require": {
@@ -2537,7 +2654,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0"
},
"funding": [
{
@@ -2557,20 +2674,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-05-25T13:48:31+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.37.0",
+ "version": "v1.38.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315"
+ "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315",
- "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
+ "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
"shasum": ""
},
"require": {
@@ -2622,7 +2739,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2"
},
"funding": [
{
@@ -2642,20 +2759,20 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T17:25:58+00:00"
+ "time": "2026-05-27T06:59:30+00:00"
},
{
"name": "symfony/polyfill-php85",
- "version": "v1.37.0",
+ "version": "v1.38.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php85.git",
- "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee"
+ "reference": "ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee",
- "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee",
+ "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1",
+ "reference": "ba2ba04f3352cfa2dcbbcb90aee13ed967f505b1",
"shasum": ""
},
"require": {
@@ -2702,7 +2819,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php85/tree/v1.38.1"
},
"funding": [
{
@@ -2722,20 +2839,20 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T13:10:57+00:00"
+ "time": "2026-05-26T02:25:22+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.6.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43"
+ "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43",
- "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0",
+ "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0",
"shasum": ""
},
"require": {
@@ -2753,7 +2870,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -2789,7 +2906,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.6.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -2809,24 +2926,24 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T11:30:57+00:00"
+ "time": "2026-06-16T09:55:08+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "85954ed72d5440ea4dc9a10b7e49e01df766ffa3"
+ "reference": "21c07b026905d596e8379caeb115d87aa479499d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/85954ed72d5440ea4dc9a10b7e49e01df766ffa3",
- "reference": "85954ed72d5440ea4dc9a10b7e49e01df766ffa3",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/21c07b026905d596e8379caeb115d87aa479499d",
+ "reference": "21c07b026905d596e8379caeb115d87aa479499d",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/service-contracts": "^2.5|^3"
},
"type": "library",
@@ -2855,7 +2972,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v8.0.8"
+ "source": "https://github.com/symfony/stopwatch/tree/v8.1.0"
},
"funding": [
{
@@ -2875,24 +2992,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/string",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "ae9488f874d7603f9d2dfbf120203882b645d963"
+ "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/ae9488f874d7603f9d2dfbf120203882b645d963",
- "reference": "ae9488f874d7603f9d2dfbf120203882b645d963",
+ "url": "https://api.github.com/repos/symfony/string/zipball/afd5944f4005862d961efb85c8bbd5c523c4e3c9",
+ "reference": "afd5944f4005862d961efb85c8bbd5c523c4e3c9",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-intl-grapheme": "^1.33",
"symfony/polyfill-intl-normalizer": "^1.0",
@@ -2945,7 +3062,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v8.0.8"
+ "source": "https://github.com/symfony/string/tree/v8.1.0"
},
"funding": [
{
@@ -2965,24 +3082,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/type-info",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/type-info.git",
- "reference": "622d81551770029d44d16be68969712eb47892f1"
+ "reference": "9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/type-info/zipball/622d81551770029d44d16be68969712eb47892f1",
- "reference": "622d81551770029d44d16be68969712eb47892f1",
+ "url": "https://api.github.com/repos/symfony/type-info/zipball/9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7",
+ "reference": "9f24df8a79781b9b9f030fea7dfd2f3bd1e7e7e7",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/container": "^1.1|^2.0"
},
"conflict": {
@@ -3027,7 +3144,7 @@
"type"
],
"support": {
- "source": "https://github.com/symfony/type-info/tree/v8.0.8"
+ "source": "https://github.com/symfony/type-info/tree/v8.1.0"
},
"funding": [
{
@@ -3047,24 +3164,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1"
+ "reference": "40096a2515a979f3125c5c928603995b8664c62a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
- "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/40096a2515a979f3125c5c928603995b8664c62a",
+ "reference": "40096a2515a979f3125c5c928603995b8664c62a",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
@@ -3114,7 +3231,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v8.0.8"
+ "source": "https://github.com/symfony/var-dumper/tree/v8.1.1"
},
"funding": [
{
@@ -3134,24 +3251,26 @@
"type": "tidelift"
}
],
- "time": "2026-03-31T07:15:36+00:00"
+ "time": "2026-06-09T10:54:51+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "15776bb07a91b089037da89f8832fa41d5fa6ec6"
+ "reference": "75b74315b4e4be40e5534cf9c5cc30dd0907ed71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/15776bb07a91b089037da89f8832fa41d5fa6ec6",
- "reference": "15776bb07a91b089037da89f8832fa41d5fa6ec6",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/75b74315b4e4be40e5534cf9c5cc30dd0907ed71",
+ "reference": "75b74315b4e4be40e5534cf9c5cc30dd0907ed71",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-deepclone": "^1.40"
},
"require-dev": {
"symfony/property-access": "^7.4|^8.0",
@@ -3181,11 +3300,12 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "description": "Provides tools to export, instantiate, hydrate, clone and lazy-load PHP objects",
"homepage": "https://symfony.com",
"keywords": [
"clone",
"construct",
+ "deep-clone",
"export",
"hydrate",
"instantiate",
@@ -3194,7 +3314,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v8.0.8"
+ "source": "https://github.com/symfony/var-exporter/tree/v8.1.1"
},
"funding": [
{
@@ -3214,7 +3334,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-27T09:05:56+00:00"
}
],
"packages-dev": [
@@ -3308,28 +3428,29 @@
},
{
"name": "composer/pcre",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"conflict": {
- "phpstan/phpstan": "<1.11.10"
+ "phpstan/phpstan": "<2.2.2"
},
"require-dev": {
- "phpstan/phpstan": "^1.12 || ^2",
- "phpstan/phpstan-strict-rules": "^1 || ^2",
- "phpunit/phpunit": "^8 || ^9"
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^9"
},
"type": "library",
"extra": {
@@ -3367,7 +3488,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.3.2"
+ "source": "https://github.com/composer/pcre/tree/3.4.0"
},
"funding": [
{
@@ -3377,13 +3498,9 @@
{
"url": "https://github.com/composer",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
}
],
- "time": "2024-11-12T16:29:46+00:00"
+ "time": "2026-06-07T11:47:49+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -3453,16 +3570,16 @@
},
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v1.2.0",
+ "version": "v1.2.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/composer-installer.git",
- "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1"
+ "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1",
- "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1",
+ "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/963f0c67bffde0eac41b56be71ac0e8ba132f0bd",
+ "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd",
"shasum": ""
},
"require": {
@@ -3545,7 +3662,7 @@
"type": "thanks_dev"
}
],
- "time": "2025-11-11T04:32:07+00:00"
+ "time": "2026-05-06T08:26:05+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -3946,16 +4063,16 @@
},
{
"name": "doctrine/orm",
- "version": "3.6.3",
+ "version": "3.6.7",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "e88cd591f0786089dee22b972c28aa2076df51c0"
+ "reference": "bc217c0e19c3a9eadfa67697143b87c9ba01272c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/e88cd591f0786089dee22b972c28aa2076df51c0",
- "reference": "e88cd591f0786089dee22b972c28aa2076df51c0",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/bc217c0e19c3a9eadfa67697143b87c9ba01272c",
+ "reference": "bc217c0e19c3a9eadfa67697143b87c9ba01272c",
"shasum": ""
},
"require": {
@@ -4028,9 +4145,9 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
- "source": "https://github.com/doctrine/orm/tree/3.6.3"
+ "source": "https://github.com/doctrine/orm/tree/3.6.7"
},
- "time": "2026-04-02T06:53:27+00:00"
+ "time": "2026-05-25T16:45:47+00:00"
},
{
"name": "doctrine/persistence",
@@ -4189,25 +4306,27 @@
},
{
"name": "infection/abstract-testframework-adapter",
- "version": "0.5.0",
+ "version": "0.5.1",
"source": {
"type": "git",
"url": "https://github.com/infection/abstract-testframework-adapter.git",
- "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b"
+ "reference": "b24bf3e850f70cd20a10621f08c3cef66f147ac8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/18925e20d15d1a5995bb85c9dc09e8751e1e069b",
- "reference": "18925e20d15d1a5995bb85c9dc09e8751e1e069b",
+ "url": "https://api.github.com/repos/infection/abstract-testframework-adapter/zipball/b24bf3e850f70cd20a10621f08c3cef66f147ac8",
+ "reference": "b24bf3e850f70cd20a10621f08c3cef66f147ac8",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0"
+ "php": "^8.3"
},
"require-dev": {
- "ergebnis/composer-normalize": "^2.8",
- "friendsofphp/php-cs-fixer": "^2.17",
- "phpunit/phpunit": "^9.5"
+ "ergebnis/composer-normalize": "^2.18",
+ "fidry/makefile": "^1.0",
+ "friendsofphp/php-cs-fixer": "^3.95.2",
+ "phpunit/phpunit": "^12.0 || ^13.0",
+ "rector/rector": "^2.4.5"
},
"type": "library",
"autoload": {
@@ -4228,7 +4347,7 @@
"description": "Abstract Test Framework Adapter for Infection",
"support": {
"issues": "https://github.com/infection/abstract-testframework-adapter/issues",
- "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.0"
+ "source": "https://github.com/infection/abstract-testframework-adapter/tree/0.5.1"
},
"funding": [
{
@@ -4240,7 +4359,7 @@
"type": "open_collective"
}
],
- "time": "2021-08-17T18:49:12+00:00"
+ "time": "2026-05-28T19:10:29+00:00"
},
{
"name": "infection/extension-installer",
@@ -4557,16 +4676,16 @@
},
{
"name": "justinrainbow/json-schema",
- "version": "6.8.0",
+ "version": "6.10.0",
"source": {
"type": "git",
"url": "https://github.com/jsonrainbow/json-schema.git",
- "reference": "89ac92bcfe5d0a8a4433c7b89d394553ae7250cc"
+ "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/89ac92bcfe5d0a8a4433c7b89d394553ae7250cc",
- "reference": "89ac92bcfe5d0a8a4433c7b89d394553ae7250cc",
+ "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33",
+ "reference": "8b1308a9d7bdbdb20ce87ef920f82b4564bb2d33",
"shasum": ""
},
"require": {
@@ -4576,7 +4695,7 @@
},
"require-dev": {
"friendsofphp/php-cs-fixer": "3.3.0",
- "json-schema/json-schema-test-suite": "^23.2",
+ "json-schema/json-schema-test-suite": "dev-main",
"marc-mabe/php-enum-phpstan": "^2.0",
"phpspec/prophecy": "^1.19",
"phpstan/phpstan": "^1.12",
@@ -4626,22 +4745,22 @@
],
"support": {
"issues": "https://github.com/jsonrainbow/json-schema/issues",
- "source": "https://github.com/jsonrainbow/json-schema/tree/6.8.0"
+ "source": "https://github.com/jsonrainbow/json-schema/tree/6.10.0"
},
- "time": "2026-04-02T12:43:11+00:00"
+ "time": "2026-06-16T20:50:26+00:00"
},
{
"name": "league/commonmark",
- "version": "2.8.2",
+ "version": "2.8.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "59fb075d2101740c337c7216e3f32b36c204218b"
+ "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b",
- "reference": "59fb075d2101740c337c7216e3f32b36c204218b",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/1902f60f984235023acbe03db6ad614a37b3c3e7",
+ "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7",
"shasum": ""
},
"require": {
@@ -4663,8 +4782,8 @@
"github/gfm": "0.29.0",
"michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
- "phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+ "phpstan/phpstan": "^2.0.0",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0",
"scrutinizer/ocular": "^1.8.1",
"symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0",
"symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0",
@@ -4735,7 +4854,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-19T13:16:38+00:00"
+ "time": "2026-07-12T15:29:16+00:00"
},
{
"name": "league/config",
@@ -5021,16 +5140,16 @@
},
{
"name": "nette/utils",
- "version": "v4.1.3",
+ "version": "v4.1.4",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe"
+ "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe",
+ "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7",
+ "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7",
"shasum": ""
},
"require": {
@@ -5106,26 +5225,25 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.1.3"
+ "source": "https://github.com/nette/utils/tree/v4.1.4"
},
- "time": "2026-02-13T03:05:33+00:00"
+ "time": "2026-05-11T20:49:54+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v5.7.0",
+ "version": "v5.8.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
+ "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f",
+ "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f",
"shasum": ""
},
"require": {
- "ext-ctype": "*",
"ext-json": "*",
"ext-tokenizer": "*",
"php": ">=7.4"
@@ -5164,9 +5282,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0"
},
- "time": "2025-12-06T11:56:16+00:00"
+ "time": "2026-07-04T14:30:18+00:00"
},
{
"name": "ondram/ci-detector",
@@ -5421,16 +5539,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.3.2",
+ "version": "2.3.3",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a"
+ "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a",
- "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3",
+ "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3",
"shasum": ""
},
"require": {
@@ -5462,17 +5580,17 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3"
},
- "time": "2026-01-25T14:56:51+00:00"
+ "time": "2026-07-08T07:01:06+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "2.1.53",
+ "version": "2.2.5",
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ef67586798c003274797b288a68b221e4270dca7",
- "reference": "ef67586798c003274797b288a68b221e4270dca7",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0",
+ "reference": "909c1e5fef7989ac0d0c1c5c42e32a5c4f6198a0",
"shasum": ""
},
"require": {
@@ -5495,6 +5613,17 @@
"license": [
"MIT"
],
+ "authors": [
+ {
+ "name": "Ondřej Mirtes"
+ },
+ {
+ "name": "Markus Staab"
+ },
+ {
+ "name": "Vincent Langlet"
+ }
+ ],
"description": "PHPStan - PHP Static Analysis Tool",
"keywords": [
"dev",
@@ -5517,20 +5646,20 @@
"type": "github"
}
],
- "time": "2026-04-28T16:09:00+00:00"
+ "time": "2026-07-05T06:31:06+00:00"
},
{
"name": "phpstan/phpstan-symfony",
- "version": "2.0.15",
+ "version": "2.0.20",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-symfony.git",
- "reference": "9b85ab476969b87bbe2253b69e265a9359b2f395"
+ "reference": "53f1a6462dbe71fad36ce054caf5e1b725b740fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/9b85ab476969b87bbe2253b69e265a9359b2f395",
- "reference": "9b85ab476969b87bbe2253b69e265a9359b2f395",
+ "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/53f1a6462dbe71fad36ce054caf5e1b725b740fd",
+ "reference": "53f1a6462dbe71fad36ce054caf5e1b725b740fd",
"shasum": ""
},
"require": {
@@ -5589,9 +5718,9 @@
],
"support": {
"issues": "https://github.com/phpstan/phpstan-symfony/issues",
- "source": "https://github.com/phpstan/phpstan-symfony/tree/2.0.15"
+ "source": "https://github.com/phpstan/phpstan-symfony/tree/2.0.20"
},
- "time": "2026-02-26T10:15:59+00:00"
+ "time": "2026-06-16T09:17:35+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -5942,24 +6071,24 @@
},
{
"name": "phpunit/phpunit",
- "version": "11.5.55",
+ "version": "11.5.56",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00"
+ "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00",
- "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256",
+ "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-filter": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
- "ext-xml": "*",
"ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
@@ -6024,31 +6153,15 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56"
},
"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"
+ "url": "https://phpunit.de/sponsoring.html",
+ "type": "other"
}
],
- "time": "2026-02-18T12:37:06+00:00"
+ "time": "2026-07-06T14:52:39+00:00"
},
{
"name": "roave/security-advisories",
@@ -6056,18 +6169,18 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "87a281378fdad8f5926efe259f6ca72e7a395e68"
+ "reference": "2259e3e6e7d3f4962e60a23d1cb3cfcb36b0e0b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/87a281378fdad8f5926efe259f6ca72e7a395e68",
- "reference": "87a281378fdad8f5926efe259f6ca72e7a395e68",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/2259e3e6e7d3f4962e60a23d1cb3cfcb36b0e0b4",
+ "reference": "2259e3e6e7d3f4962e60a23d1cb3cfcb36b0e0b4",
"shasum": ""
},
"conflict": {
"3f/pygmentize": "<1.2",
"adaptcms/adaptcms": "<=1.3",
- "admidio/admidio": "<5.0.8",
+ "admidio/admidio": "<=5.0.11",
"adodb/adodb-php": "<=5.22.9",
"aheinze/cockpit": "<2.2",
"aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2",
@@ -6078,6 +6191,7 @@
"aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7",
"aimeos/aimeos-laravel": "==2021.10",
"aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
+ "aimeos/pagible": "<0.10.4",
"airesvsg/acf-to-rest-api": "<=3.1",
"akaunting/akaunting": "<2.1.13",
"akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
@@ -6100,8 +6214,10 @@
"aoe/restler": "<1.7.1",
"apache-solr-for-typo3/solr": "<2.8.3",
"apereo/phpcas": "<1.6",
- "api-platform/core": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5",
+ "api-platform/core": "<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8",
"api-platform/graphql": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5",
+ "api-platform/hal": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8",
+ "api-platform/json-api": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8",
"appwrite/server-ce": "<=1.2.1",
"arc/web": "<3",
"area17/twill": "<1.2.5|>=2,<2.5.3",
@@ -6114,21 +6230,21 @@
"austintoddj/canvas": "<=3.4.2",
"auth0/auth0-php": ">=3.3,<=8.18",
"auth0/login": "<=7.20",
- "auth0/symfony": "<=5.7",
+ "auth0/symfony": "<=5.8",
"auth0/wordpress": "<=5.5",
- "automad/automad": "<2.0.0.0-alpha5",
+ "automad/automad": "<=2.0.0.0-beta27",
"automattic/jetpack": "<9.8",
"awesome-support/awesome-support": "<=6.0.7",
"aws/aws-sdk-php": "<=3.371.3",
"ayacoo/redirect-tab": "<2.1.2|>=3,<3.1.7|>=4,<4.0.5",
- "azuracast/azuracast": "<=0.23.3",
+ "azuracast/azuracast": "<=0.23.5",
"b13/seo_basics": "<0.8.2",
"backdrop/backdrop": "<=1.32",
- "backpack/crud": "<3.4.9",
+ "backpack/crud": "<4.0.63|>=4.1,<4.1.69|>=5,<5.0.13",
"backpack/filemanager": "<2.0.2|>=3,<3.0.9",
"bacula-web/bacula-web": "<9.7.1",
"badaso/core": "<=2.9.11",
- "bagisto/bagisto": "<2.3.10",
+ "bagisto/bagisto": "<=2.3.15",
"barrelstrength/sprout-base-email": "<1.2.7",
"barrelstrength/sprout-forms": "<3.9",
"barryvdh/laravel-translation-manager": "<0.6.8",
@@ -6141,6 +6257,7 @@
"bedita/bedita": "<4",
"bednee/cooluri": "<1.0.30",
"bigfork/silverstripe-form-capture": ">=3,<3.1.1",
+ "billabear/billabear": "<=2025.01.03",
"billz/raspap-webgui": "<3.3.6",
"binarytorch/larecipe": "<2.8.1",
"bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
@@ -6161,13 +6278,14 @@
"bytefury/crater": "<6.0.2",
"cachethq/cachet": "<2.5.1",
"cadmium-org/cadmium-cms": "<=0.4.9",
- "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10|>=5.2.10,<5.2.12|==5.3",
+ "cakephp/authentication": "<3.3.6|>=4,<4.1.1",
+ "cakephp/cakephp": "<4.5.11|>=4.6,<4.6.4|>=5,<5.1.7|>=5.2,<5.2.13|>=5.3,<5.3.6",
"cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
"cardgate/magento2": "<2.0.33",
"cardgate/woocommerce": "<=3.1.15",
- "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
+ "cart2quote/module-quotation": ">=4.1.6,<4.4.6|>=5,<5.4.4",
"cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
- "cartalyst/sentry": "<=2.1.6",
+ "cartalyst/sentry": "<2.1.7",
"catfan/medoo": "<1.7.5",
"causal/oidc": "<4",
"cecil/cecil": "<7.47.1",
@@ -6176,41 +6294,42 @@
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
"chriskacerguis/codeigniter-restserver": "<=2.7.1",
"chrome-php/chrome": "<1.14",
- "ci4-cms-erp/ci4ms": "<0.31.5",
+ "ci4-cms-erp/ci4ms": "<=0.31.8",
"civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
"ckeditor/ckeditor": "<4.25",
"clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3",
"co-stack/fal_sftp": "<0.2.6",
- "cockpit-hq/cockpit": "<2.14",
- "code16/sharp": "<9.20",
+ "cockpit-hq/cockpit": "<=2.14",
+ "code16/sharp": "<9.22.3",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
"codeigniter/framework": "<3.1.10",
- "codeigniter4/framework": "<4.6.2",
+ "codeigniter4/framework": "<4.7.2",
"codeigniter4/shield": "<1.0.0.0-beta8",
"codiad/codiad": "<=2.8.4",
"codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9",
"codingms/modules": "<4.3.11|>=5,<5.7.4|>=6,<6.4.2|>=7,<7.5.5",
"commerceteam/commerce": ">=0.9.6,<0.9.9",
"components/jquery": ">=1.0.3,<3.5",
- "composer/composer": "<2.2.27|>=2.3,<2.9.6",
- "concrete5/concrete5": "<9.4.8",
+ "composer/composer": "<2.2.28|>=2.3,<2.9.8",
+ "concrete5/concrete5": "<9.5.2",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
"contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
- "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.13.56|>=5,<5.3.38|>=5.4.0.0-RC1-dev,<5.6.1",
+ "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<5.3.48|>=5.4,<5.7.9",
"contao/core": "<3.5.39",
- "contao/core-bundle": "<4.13.57|>=5,<5.3.42|>=5.4,<5.6.5",
+ "contao/core-bundle": "<5.3.48|>=5.4,<5.7.9",
"contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
"contao/managed-edition": "<=1.5",
- "coreshop/core-shop": "<4.1.9",
+ "coreshop/core-shop": "<4.1.9|==5",
"corveda/phpsandbox": "<1.3.5",
"cosenary/instagram": "<=2.3",
+ "cotonti/cotonti": "<=1",
"couleurcitron/tarteaucitron-wp": "<0.3",
"cpsit/typo3-mailqueue": "<0.4.5|>=0.5,<0.5.2",
"craftcms/aws-s3": ">=2.0.2,<=2.2.4",
"craftcms/azure-blob": ">=2.0.0.0-beta1,<=2.1",
- "craftcms/cms": "<=4.17.8|>=5,<5.9.15",
- "craftcms/commerce": ">=4,<4.11|>=5,<5.6",
+ "craftcms/cms": "<4.18|>=5,<5.10",
+ "craftcms/commerce": ">=4,<=4.11.1|>=5,<=5.6.4",
"craftcms/composer": ">=4.0.0.0-RC1-dev,<=4.10|>=5.0.0.0-RC1-dev,<=5.5.1",
"craftcms/craft": ">=3.5,<=4.16.17|>=5.0.0.0-RC1-dev,<=5.8.21",
"craftcms/google-cloud": ">=2.0.0.0-beta1,<=2.2",
@@ -6228,6 +6347,7 @@
"david-garcia/phpwhois": "<=4.3.1",
"dbrisinajumi/d2files": "<1",
"dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta",
+ "dedoc/scramble": ">=0.13.2,<0.13.22",
"derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
"derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
"desperado/xml-bundle": "<=0.1.7",
@@ -6249,7 +6369,7 @@
"doctrine/mongodb-odm": "<1.0.2",
"doctrine/mongodb-odm-bundle": "<3.0.1",
"doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
- "dolibarr/dolibarr": "<=22.0.4",
+ "dolibarr/dolibarr": "<=23.0.2",
"dompdf/dompdf": "<2.0.4",
"doublethreedigital/guest-entries": "<3.1.2",
"dreamfactory/df-core": "<1.0.4",
@@ -6264,7 +6384,7 @@
"drupal/commerce_alphabank_redirect": "<1.0.3",
"drupal/commerce_eurobank_redirect": "<2.1.1",
"drupal/config_split": "<1.10|>=2,<2.0.2",
- "drupal/core": ">=6,<6.38|>=7,<7.103|>=8,<10.4.9|>=10.5,<10.5.6|>=11,<11.1.9|>=11.2,<11.2.8",
+ "drupal/core": ">=6,<6.38|>=7,<7.103|>=8,<10.5.10|>=10.6,<10.6.9|>=11,<11.2.12|>=11.3,<11.3.10",
"drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8",
"drupal/currency": "<3.5",
"drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8",
@@ -6291,10 +6411,11 @@
"drupal/umami_analytics": "<1.0.1",
"duncanmcclean/guest-entries": "<3.1.2",
"dweeves/magmi": "<=0.7.24",
+ "easycorp/easyadmin-bundle": ">=4,<4.29.10|>=5,<5.0.13",
"ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.3.1",
"ecodev/newsletter": "<=4",
"ectouch/ectouch": "<=2.7.2",
- "egroupware/egroupware": "<23.1.20260113|>=26.0.20251208,<26.0.20260113",
+ "egroupware/egroupware": "<23.1.20260601|>=26.0.20251208,<26.5.20260507",
"elefant/cms": "<2.0.7",
"elgg/elgg": "<3.3.24|>=4,<4.0.5",
"elijaa/phpmemcacheadmin": "<=1.3",
@@ -6306,6 +6427,7 @@
"erusev/parsedown": "<1.7.2",
"ether/logs": "<3.0.4",
"evolutioncms/evolution": "<=3.2.3",
+ "evoweb/sf-register": "<13.2.4|>=14,<14.0.2",
"exceedone/exment": "<4.4.3|>=5,<5.0.3",
"exceedone/laravel-admin": "<2.2.3|==3",
"ezsystems/demobundle": ">=5.4,<5.4.6.1-dev",
@@ -6328,15 +6450,16 @@
"ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
"ezyang/htmlpurifier": "<=4.2",
"facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
- "facturascripts/facturascripts": "<2025.81",
+ "facturascripts/facturascripts": "<=2026.2",
"fastly/magento2": "<1.2.26",
"feehi/cms": "<=2.1.1",
"feehi/feehicms": "<=2.1.1",
"fenom/fenom": "<=2.12.1",
- "filament/actions": ">=3.2,<3.2.123",
- "filament/filament": ">=4,<4.3.1",
- "filament/infolists": ">=3,<3.2.115",
- "filament/tables": ">=3,<3.2.115|>=4,<4.8.5|>=5,<5.3.5",
+ "filament/actions": ">=3.2,<3.2.123|>=4,<=4.11.3|>=5,<=5.6.3",
+ "filament/filament": ">=3,<=3.3.51|>=4,<4.11.5|>=5,<5.6.5",
+ "filament/forms": ">=3,<=3.3.52",
+ "filament/infolists": ">=3,<3.2.115|>=4,<=4.11.4|>=5,<=5.6.4",
+ "filament/tables": ">=3,<=3.3.50|>=4,<=4.11.4|>=5,<=5.6.4",
"filegator/filegator": "<7.8",
"filp/whoops": "<2.1.13",
"fineuploader/php-traditional-server": "<=1.2.2",
@@ -6351,6 +6474,7 @@
"flarum/nicknames": "<1.8.3",
"flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
"flarum/tags": "<=0.1.0.0-beta13",
+ "flightphp/core": "<3.18.1",
"floriangaerber/magnesium": "<0.3.1",
"fluidtypo3/vhs": "<5.1.1",
"fof/byobu": ">=0.3.0.0-beta2,<1.1.7",
@@ -6369,19 +6493,22 @@
"friendsofsymfony1/symfony1": ">=1.1,<1.5.19",
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
"friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
+ "friendsoftypo3/tt-address": "<8.1.2|>=9,<9.1.1|>=10,<10.0.1",
"froala/wysiwyg-editor": "<=4.3",
"frosh/adminer-platform": "<2.2.1",
- "froxlor/froxlor": "<2.3.6",
+ "froxlor/froxlor": "<2.3.7",
"frozennode/administrator": "<=5.0.12",
"fuel/core": "<1.8.1",
- "funadmin/funadmin": "<=7.1.0.0-RC4",
+ "funadmin/funadmin": "<=7.1.0.0-RC6",
"gaoming13/wechat-php-sdk": "<=1.10.2",
"genix/cms": "<=1.1.11",
- "georgringer/news": "<1.3.3",
+ "georgringer/news": "<10.0.4|>=11,<11.4.4|>=12,<12.3.2|>=13,<13.0.2|>=14,<14.0.3",
"geshi/geshi": "<=1.0.9.1",
"getformwork/formwork": "<=2.3.3",
- "getgrav/grav": "<1.11.0.0-beta1",
- "getkirby/cms": "<5.4",
+ "getgrav/grav": "<=2.0.0.0-RC8",
+ "getgrav/grav-plugin-api": "<1.0.0.0-beta15",
+ "getgrav/grav-plugin-form": "<9.1",
+ "getkirby/cms": "<=4.9.3|>=5,<=5.4.3",
"getkirby/kirby": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1",
"getkirby/panel": "<2.5.14",
"getkirby/starterkit": "<=3.7.0.2",
@@ -6396,11 +6523,12 @@
"gp247/core": "<1.1.24",
"gree/jose": "<2.2.1",
"gregwar/rst": "<1.0.3",
- "grumpydictator/firefly-iii": "<6.1.17|>=6.4.23,<=6.5",
+ "grumpydictator/firefly-iii": "<=6.6.2",
"gugoan/economizzer": "<=0.9.0.0-beta1",
- "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
+ "guzzlehttp/guzzle": "<7.12.1",
+ "guzzlehttp/guzzle-services": "<1.5.4",
"guzzlehttp/oauth-subscriber": "<0.8.1",
- "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
+ "guzzlehttp/psr7": "<2.12.1",
"haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
"handcraftedinthealps/goodby-csv": "<1.4.3",
"harvesthq/chosen": "<1.8.7",
@@ -6429,6 +6557,7 @@
"illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4",
"illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40",
"illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
+ "illuminate/mail": ">=9,<12.60|>=13,<13.10",
"illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
"imdbphp/imdbphp": "<=5.1.1",
"impresscms/impresscms": "<=1.4.5",
@@ -6440,8 +6569,9 @@
"innologi/typo3-appointments": "<2.0.6",
"intelliants/subrion": "<4.2.2",
"inter-mediator/inter-mediator": "==5.5",
+ "intercom/intercom-php": "==5.0.2",
"invoiceninja/invoiceninja": "<5.13.4",
- "ipl/web": "<0.10.1",
+ "ipl/web": "<=0.10.2|>=0.11,<=0.13",
"islandora/crayfish": "<4.1",
"islandora/islandora": ">=2,<2.4.1",
"ivankristianto/phpwhois": "<=4.3",
@@ -6453,6 +6583,7 @@
"jasig/phpcas": "<1.3.3",
"jbartels/wec-map": "<3.0.3",
"jcbrand/converse.js": "<3.3.3",
+ "jleehr/canto-saas-api": "<=2",
"joedolson/my-calendar": "<3.7.7",
"joelbutcher/socialstream": "<5.6|>=6,<6.2",
"johnbillion/query-monitor": "<3.20.4",
@@ -6479,23 +6610,24 @@
"kelvinmo/simplexrd": "<3.1.1",
"kevinpapst/kimai2": "<1.16.7",
"khodakhah/nodcms": "<=3.4.1",
- "kimai/kimai": "<2.54",
+ "kimai/kimai": "<2.59",
"kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
"klaviyo/magento2-extension": ">=1,<3",
- "knplabs/knp-snappy": "<=1.4.2",
+ "knplabs/knp-snappy": "<=1.7",
"kohana/core": "<3.3.3",
"koillection/koillection": "<1.6.12",
"krayin/laravel-crm": "<=2.2",
"kreait/firebase-php": ">=3.2,<3.8.1",
"kumbiaphp/kumbiapp": "<=1.1.1",
"la-haute-societe/tcpdf": "<6.2.22",
+ "laktak/hjson": "<2.3",
"laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
"laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
"laminas/laminas-http": "<2.14.2",
"lara-zeus/artemis": ">=1,<=1.0.6",
"lara-zeus/dynamic-dashboard": ">=3,<=3.0.1",
"laravel/fortify": "<1.11.1",
- "laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1",
+ "laravel/framework": "<12.61.1|>=13,<13.12",
"laravel/laravel": ">=5.4,<5.4.22",
"laravel/passport": ">=13,<13.7.1",
"laravel/pulse": "<1.3.1",
@@ -6537,21 +6669,23 @@
"maikuolan/phpmussel": ">=1,<1.6",
"mainwp/mainwp": "<=4.4.3.3",
"manogi/nova-tiptap": "<=3.2.6",
- "mantisbt/mantisbt": "<2.28.1",
+ "mantisbt/mantisbt": "<2.28.2",
"marcwillmann/turn": "<0.3.3",
"markhuot/craftql": "<=1.3.7",
"marshmallow/nova-tiptap": "<5.7",
"matomo/matomo": "<1.11",
"matyhtf/framework": "<3.0.6",
- "mautic/core": "<5.2.10|>=6,<6.0.8|>=7.0.0.0-alpha,<7.0.1",
+ "mautic/core": "<5.2.11|>=6,<6.0.9|>=7,<7.1.2",
"mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
"mautic/grapes-js-builder-bundle": ">=4,<4.4.18|>=5,<5.2.9|>=6,<6.0.7",
"maximebf/debugbar": "<1.19",
+ "mckenziearts/livewire-markdown-editor": "<1.3",
"mdanter/ecc": "<2",
"mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2",
"mediawiki/cargo": "<3.8.3",
"mediawiki/core": "<1.39.5|==1.40",
"mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2",
+ "mediawiki/maps": "<12.1.3",
"mediawiki/matomo": "<2.4.3",
"mediawiki/semantic-media-wiki": "<4.0.2",
"mehrwert/phpmyadmin": "<3.2",
@@ -6571,6 +6705,8 @@
"miniorange/miniorange-saml": "<1.4.3",
"miraheze/ts-portal": "<=33",
"mittwald/typo3_forum": "<1.2.1",
+ "mix/mix": ">=2,<=2.2.17",
+ "mmc/ceselector": "<3.0.3|>=4,<4.0.2|>=5,<5.0.1|>=6,<6.0.1",
"mobiledetect/mobiledetectlib": "<2.8.32",
"modx/revolution": "<=3.1",
"mojo42/jirafeau": "<4.4",
@@ -6583,6 +6719,7 @@
"movim/moxl": ">=0.8,<=0.10",
"movingbytes/social-network": "<=1.2.1",
"mpdf/mpdf": "<=7.1.7",
+ "mtdowling/jmespath.php": "<2.9.1",
"munkireport/comment": "<4",
"munkireport/managedinstalls": "<2.6",
"munkireport/munki_facts": "<1.5",
@@ -6590,6 +6727,7 @@
"munkireport/softwareupdate": "<1.6",
"mustache/mustache": ">=2,<2.14.1",
"mwdelaney/wp-enable-svg": "<=0.2",
+ "nabeel/phpvms": "<7.0.6",
"namshi/jose": "<2.2",
"nasirkhan/laravel-starter": "<11.11",
"nategood/httpful": "<1",
@@ -6609,11 +6747,11 @@
"nilsteampassnet/teampass": "<3.1.3.1-dev",
"nitsan/ns-backup": "<13.0.1",
"nonfiction/nterchange": "<4.1.1",
- "notrinos/notrinos-erp": "<=0.7",
+ "notrinos/notrinos-erp": "<=1",
"noumo/easyii": "<=0.9",
"novaksolutions/infusionsoft-php-sdk": "<1",
"novosga/novosga": "<=2.2.12",
- "nukeviet/nukeviet": "<4.5.02",
+ "nukeviet/nukeviet": "<4.6.00",
"nyholm/psr7": "<1.6.1",
"nystudio107/craft-seomatic": "<3.4.12",
"nzedb/nzedb": "<0.8",
@@ -6630,7 +6768,7 @@
"open-web-analytics/open-web-analytics": "<1.8.1",
"opencart/opencart": ">=0",
"openid/php-openid": "<2.3",
- "openmage/magento-lts": "<20.17",
+ "openmage/magento-lts": "<=20.17",
"opensolutions/vimbadmin": "<=3.0.15",
"opensource-workshop/connect-cms": "<1.41.1|>=2,<2.41.1",
"orchid/platform": ">=8,<14.43",
@@ -6651,6 +6789,7 @@
"paragonie/random_compat": "<2",
"paragonie/sodium_compat": "<1.24|>=2,<2.5",
"passbolt/passbolt_api": "<4.6.2",
+ "paymenter/paymenter": "<=1.5.4",
"paypal/adaptivepayments-sdk-php": "<=3.9.2",
"paypal/invoice-sdk-php": "<=3.9",
"paypal/merchant-sdk-php": "<3.12",
@@ -6663,23 +6802,26 @@
"pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1",
"personnummer/personnummer": "<3.0.2",
"ph7software/ph7builder": "<=17.9.1",
- "phanan/koel": "<5.1.4",
+ "phanan/koel": "<=9.3.4",
+ "pheditor/pheditor": ">=2.0.1,<=2.0.3",
"phenx/php-svg-lib": "<0.5.2",
"php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5",
"php-mod/curl": "<2.3.2",
- "phpbb/phpbb": "<3.3.11",
+ "php-standard-library/h2": ">=6.1,<6.1.2|>=6.2,<6.2.1",
+ "php-standard-library/php-standard-library": ">=6.1,<6.1.2|>=6.2,<6.2.1",
+ "phpbb/phpbb": "<3.3.16|==4.0.0.0-alpha1",
"phpems/phpems": ">=6,<=6.1.3",
"phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
"phpmailer/phpmailer": "<6.5",
"phpmussel/phpmussel": ">=1,<1.6",
"phpmyadmin/phpmyadmin": "<5.2.2",
- "phpmyfaq/phpmyfaq": "<=4.1",
+ "phpmyfaq/phpmyfaq": "<4.1.4",
"phpoffice/common": "<0.2.9",
"phpoffice/math": "<=0.2",
"phpoffice/phpexcel": "<=1.8.2",
- "phpoffice/phpspreadsheet": "<=1.30.3|>=2,<=2.1.15|>=2.2,<=2.4.4|>=3,<=3.10.4|>=4,<=5.6",
+ "phpoffice/phpspreadsheet": "<=1.30.4|>=2,<=2.1.15|>=2.2,<=2.4.4|>=3,<=3.10.4|>=4,<=5.6",
"phppgadmin/phppgadmin": "<=7.13",
- "phpseclib/phpseclib": "<2.0.53|>=3,<3.0.51",
+ "phpseclib/phpseclib": "<=2.0.54|>=3,<=3.0.53",
"phpservermon/phpservermon": "<3.6",
"phpsysinfo/phpsysinfo": "<3.4.3",
"phpunit/phpunit": "<8.5.52|>=9,<9.6.33|>=10,<10.5.62|>=11,<11.5.50|>=12,<12.5.8|>=12.5.21,<12.5.22|>=13.1.5,<13.1.6",
@@ -6688,14 +6830,14 @@
"phpxmlrpc/phpxmlrpc": "<4.9.2",
"phraseanet/phraseanet": "==4.0.3",
"pi/pi": "<=2.5",
- "pimcore/admin-ui-classic-bundle": "<=1.7.15|>=2.0.0.0-RC1-dev,<=2.2.2",
+ "pimcore/admin-ui-classic-bundle": "<1.7.18|>=2.0.0.0-RC1-dev,<=2.3.5",
"pimcore/customer-management-framework-bundle": "<4.2.1",
"pimcore/data-hub": "<1.2.4",
"pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3",
"pimcore/demo": "<10.3",
"pimcore/ecommerce-framework-bundle": "<1.0.10",
"pimcore/perspective-editor": "<1.5.1",
- "pimcore/pimcore": "<=11.5.14.1|>=12,<12.3.3",
+ "pimcore/pimcore": "<=12.3.8|>=2026.1,<2026.1.3",
"pimcore/web2print-tools-bundle": "<=5.2.1|>=6.0.0.0-RC1-dev,<=6.1",
"piwik/piwik": "<1.11",
"pixelfed/pixelfed": "<0.12.5",
@@ -6703,25 +6845,27 @@
"pocketmine/bedrock-protocol": "<8.0.2",
"pocketmine/pocketmine-mp": "<5.42.1",
"pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
+ "pontedilana/php-weasyprint": "<=2.5.1",
+ "poweradmin/poweradmin": "<4.2.4|>=4.3,<4.3.3",
"pressbooks/pressbooks": "<5.18",
"prestashop/autoupgrade": ">=4,<4.10.1",
"prestashop/blockreassurance": "<=5.1.3",
"prestashop/blockwishlist": ">=2,<2.1.1",
"prestashop/contactform": ">=1.0.1,<4.3",
"prestashop/gamification": "<2.3.2",
- "prestashop/prestashop": "<8.2.5|>=9.0.0.0-alpha1,<9.1",
+ "prestashop/prestashop": "<8.2.6|>=9,<9.1.1",
"prestashop/productcomments": "<5.0.2",
- "prestashop/ps_checkout": "<4.4.1|>=5,<5.0.5",
+ "prestashop/ps_checkout": "<5.3",
"prestashop/ps_contactinfo": "<=3.3.2",
"prestashop/ps_emailsubscription": "<2.6.1",
- "prestashop/ps_facetedsearch": "<3.4.1",
+ "prestashop/ps_facetedsearch": "<4.0.4",
"prestashop/ps_linklist": "<3.1",
"privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.3",
"processwire/processwire": "<=3.0.255",
- "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
- "propel/propel1": ">=1,<=1.7.1",
+ "propel/propel": ">=2.0.0.0-alpha1,<2.0.0.0-alpha8",
+ "propel/propel1": ">=1,<1.7.2",
"psy/psysh": "<=0.11.22|>=0.12,<=0.12.18",
- "pterodactyl/panel": "<1.12.1",
+ "pterodactyl/panel": "<1.12.3",
"ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
"ptrofimov/beanstalk_console": "<1.7.14",
"pubnub/pubnub": "<6.1",
@@ -6748,6 +6892,7 @@
"rhukster/dom-sanitizer": "<1.0.10",
"rmccue/requests": ">=1.6,<1.8",
"roadiz/documents": "<2.3.42|>=2.4,<2.5.44|>=2.6,<2.6.28|>=2.7,<2.7.9",
+ "roadiz/openid": "<2.3.43|>=2.5,<2.5.45|>=2.6,<2.6.31|>=2.7,<2.7.18",
"robrichards/xmlseclibs": "<3.1.5",
"roots/soil": "<4.1",
"roundcube/roundcubemail": "<1.5.10|>=1.6,<1.6.11|>=1.7.0.0-beta,<1.7.0.0-RC5-dev",
@@ -6763,24 +6908,26 @@
"scheb/two-factor-bundle": "<3.26|>=4,<4.11",
"sensiolabs/connect": "<4.2.3",
"serluck/phpwhois": "<=4.2.6",
- "setasign/fpdi": "<2.6.4",
+ "setasign/fpdi": "<2.6.7",
"sfroemken/url_redirect": "<=1.2.1",
"sheng/yiicms": "<1.2.1",
- "shopware/core": "<6.6.10.15-dev|>=6.7,<6.7.8.1-dev",
- "shopware/platform": "<6.6.10.15-dev|>=6.7,<6.7.8.1-dev",
+ "shopper/cart": "<2.8",
+ "shopper/framework": "<2.8",
+ "shopware/core": "<6.6.10.18-dev|>=6.7,<6.7.10.1-dev",
+ "shopware/platform": "<6.6.10.18-dev|>=6.7,<6.7.10.1-dev",
"shopware/production": "<=6.3.5.2",
- "shopware/shopware": "<=5.7.17|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.6.1-dev",
+ "shopware/shopware": "<=6.3.5.2|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.6.1-dev",
"shopware/storefront": "<6.6.10.10-dev|>=6.7,<6.7.5.1-dev",
"shopxo/shopxo": "<=6.4",
- "showdoc/showdoc": "<2.10.4",
+ "showdoc/showdoc": "<3.8.1",
"shuchkin/simplexlsx": ">=1.0.12,<1.1.13",
"silverstripe-australia/advancedreports": ">=1,<=2",
"silverstripe/admin": "<1.13.19|>=2,<2.1.8",
"silverstripe/assets": "<2.4.5|>=3,<3.1.3",
- "silverstripe/cms": "<4.11.3",
+ "silverstripe/cms": "<6.2.1",
"silverstripe/comments": ">=1.3,<3.1.1",
- "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
- "silverstripe/framework": "<5.3.23",
+ "silverstripe/forum": "<0.6.2|>=0.7,<0.7.4",
+ "silverstripe/framework": "<6.2.2",
"silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
"silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
"silverstripe/recipe-cms": ">=4.5,<4.5.3",
@@ -6790,13 +6937,15 @@
"silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1",
"silverstripe/subsites": ">=2,<2.6.1",
"silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1",
- "silverstripe/userforms": "<3|>=5,<5.4.2",
+ "silverstripe/userforms": "<6.4.9|>=7,<7.0.7|>=7.1,<7.1.1",
+ "silverstripe/versioned": "<3.2.1",
"silverstripe/versioned-admin": ">=1,<1.11.1",
"simogeo/filemanager": "<=2.5",
"simple-updates/phpwhois": "<=1",
- "simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19",
- "simplesamlphp/saml2-legacy": "<=4.16.15",
- "simplesamlphp/simplesamlphp": "<1.18.6",
+ "simplesamlphp/saml2": "<=4.20.2|>=5,<5.0.6|>=6,<6.2.1",
+ "simplesamlphp/saml2-legacy": "<=4.20.2",
+ "simplesamlphp/simplesamlphp": "<=2.4.6|>=2.5,<=2.5.1",
+ "simplesamlphp/simplesamlphp-module-casserver": "<=7.0.2",
"simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
"simplesamlphp/simplesamlphp-module-openid": "<1",
"simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
@@ -6808,19 +6957,23 @@
"sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3",
"sjbr/static-info-tables": "<2.3.1",
"slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
- "slim/slim": "<2.6",
+ "slim/slim": "<2.6|>=4.4,<=4.15.1",
"slub/slub-events": "<3.0.3",
"smarty/smarty": "<4.5.3|>=5,<5.1.1",
- "snipe/snipe-it": "<8.3.7",
+ "snipe/snipe-it": "<=8.6.1",
"socalnick/scn-social-auth": "<1.15.2",
"socialiteproviders/steam": "<1.1",
+ "solidinvoice/solidinvoice": "<=2.3.15",
"solspace/craft-freeform": "<4.1.29|>=5,<=5.14.6",
"soosyze/soosyze": "<=2",
"spatie/browsershot": "<5.0.5",
"spatie/image-optimizer": "<1.7.3",
+ "spatie/laravel-medialibrary": "<11.23",
+ "spatie/schema-org": ">=3.23.1,<3.23.2|>=4,<4.0.2",
"spencer14420/sp-php-email-handler": "<1",
"spipu/html2pdf": "<5.2.8",
"spiral/roadrunner": "<2025.1",
+ "spomky-labs/otphp": "<11.4.3",
"spoon/library": "<1.4.1",
"spoonity/tcpdf": "<6.2.22",
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
@@ -6829,14 +6982,14 @@
"starcitizentools/short-description": ">=4,<4.0.1",
"starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1",
"starcitizenwiki/embedvideo": "<=4",
- "statamic/cms": "<5.73.20|>=6,<6.13",
+ "statamic/cms": "<5.74|>=6,<6.20.3",
"stormpath/sdk": "<9.9.99",
- "studio-42/elfinder": "<2.1.67",
+ "studio-42/elfinder": "<=2.1.67",
"studiomitte/friendlycaptcha": "<0.1.4",
"subhh/libconnect": "<7.0.8|>=8,<8.1",
"sukohi/surpass": "<1",
"sulu/form-bundle": ">=2,<2.5.3",
- "sulu/sulu": "<2.6.22|>=3,<3.0.5",
+ "sulu/sulu": "<=2.6.22|>=3,<=3.0.5",
"sumocoders/framework-user-bundle": "<1.4",
"superbig/craft-audit": "<3.0.2",
"svewap/a21glossary": "<=0.4.10",
@@ -6848,48 +7001,62 @@
"sylius/grid-bundle": "<1.10.1",
"sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2",
"sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
- "sylius/sylius": "<1.9.12|>=1.10,<1.10.16|>=1.11,<1.11.17|>=1.12,<=1.12.22|>=1.13,<=1.13.14|>=1.14,<=1.14.17|>=2,<=2.0.15|>=2.1,<=2.1.11|>=2.2,<=2.2.2",
+ "sylius/sylius": "<1.9.12|>=1.10,<1.10.16|>=1.11,<1.11.17|>=1.12,<=1.12.22|>=1.13,<=1.13.14|>=1.14,<=1.14.17|>=2,<2.0.18|>=2.1,<2.1.15|>=2.2,<2.2.6",
+ "symbiote/silverstripe-advancedworkflow": "<6.4.5|>=7,<7.1.3|>=7.2,<7.2.1",
"symbiote/silverstripe-multivaluefield": ">=3,<3.1",
"symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4",
"symbiote/silverstripe-seed": "<6.0.3",
"symbiote/silverstripe-versionedfiles": "<=2.0.3",
"symfont/process": ">=0",
- "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8",
+ "symfony/cache": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
"symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
+ "symfony/dom-crawler": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
"symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
"symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
"symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4",
- "symfony/http-client": ">=4.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8",
- "symfony/http-foundation": "<5.4.50|>=6,<6.4.29|>=7,<7.3.7",
- "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/html-sanitizer": ">=6.1,<6.4.41|>=7,<7.4.13|>=8,<8.0.13",
+ "symfony/http-client": ">=4.3,<5.4.53|>=6,<6.4.15|>=7,<7.1.8",
+ "symfony/http-foundation": "<5.4.50|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13",
+ "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6|>=7.4,<7.4.12|>=8,<8.0.12",
"symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
+ "symfony/json-path": ">=7.3,<7.4.12|>=8,<8.0.12",
+ "symfony/lox24-notifier": ">=7.1,<7.4.12|>=8,<8.0.12",
+ "symfony/mailer": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
+ "symfony/mailjet-mailer": ">=6.4,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
+ "symfony/mailomat-mailer": ">=7.2,<7.4.13|>=8,<8.0.13",
+ "symfony/mailtrap-mailer": ">=7.2,<7.4.12|>=8,<8.0.12",
"symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1",
- "symfony/mime": ">=4.3,<4.3.8",
+ "symfony/mime": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
+ "symfony/monolog-bridge": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
"symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
- "symfony/polyfill": ">=1,<1.10",
+ "symfony/polyfill": ">=1,<1.10|>=1.17.1,<1.38.1",
+ "symfony/polyfill-intl-idn": ">=1.17.1,<1.38.1",
"symfony/polyfill-php55": ">=1,<1.10",
"symfony/process": "<5.4.51|>=6,<6.4.33|>=7,<7.1.7|>=7.3,<7.3.11|>=7.4,<7.4.5|>=8,<8.0.5",
"symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
- "symfony/routing": ">=2,<2.0.19",
- "symfony/runtime": ">=5.3,<5.4.46|>=6,<6.4.14|>=7,<7.1.7",
+ "symfony/routing": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13",
+ "symfony/runtime": ">=5.3,<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
"symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8",
"symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.4.10|>=7,<7.0.10|>=7.1,<7.1.3",
"symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
"symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
"symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
- "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8",
+ "symfony/security-http": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13",
"symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
- "symfony/symfony": "<5.4.51|>=6,<6.4.33|>=7,<7.3.11|>=7.4,<7.4.5|>=8,<8.0.5",
+ "symfony/symfony": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13",
"symfony/translation": ">=2,<2.0.17",
- "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
- "symfony/ux-autocomplete": "<2.11.2",
- "symfony/ux-live-component": "<2.25.1",
+ "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8|>=6.4.24,<6.4.40",
+ "symfony/twilio-notifier": ">=6.4,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
+ "symfony/ux-autocomplete": "<2.36|>=3,<3.1",
+ "symfony/ux-icons": ">=2.17,<2.36.1|>=3,<3.2",
+ "symfony/ux-live-component": "<2.36|>=3,<3.1",
+ "symfony/ux-toolkit": ">=2.32,<2.36.1|>=3,<3.2",
"symfony/ux-twig-component": "<2.25.1",
"symfony/validator": "<5.4.43|>=6,<6.4.11|>=7,<7.1.4",
"symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
- "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
+ "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4|>=7.2.9,<7.4.12|>=8,<8.0.12",
"symfony/webhook": ">=6.3,<6.3.8",
- "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2",
+ "symfony/yaml": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12",
"symphonycms/symphony-2": "<2.6.4",
"t3/dce": "<0.11.5|>=2.2,<2.6.2",
"t3g/svg-sanitizer": "<1.0.3",
@@ -6903,42 +7070,47 @@
"thelia/thelia": ">=2.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
"thinkcmf/thinkcmf": "<6.0.8",
- "thorsten/phpmyfaq": "<4.1.1",
+ "thorsten/phpmyfaq": "<4.1.4",
"tikiwiki/tiki-manager": "<=17.1",
"timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
- "tinymce/tinymce": "<7.2",
+ "tinymce/tinymce": "<7.9.3|>=8,<8.5.1",
"tinymighty/wiki-seo": "<1.2.2",
"titon/framework": "<9.9.99",
"tltneon/lgsl": "<7",
"tobiasbg/tablepress": "<=2.0.0.0-RC1",
+ "tomasnorre/crawler": "<11.0.13|>=12,<12.0.11",
"topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
"topthink/think": "<=6.1.1",
"topthink/thinkphp": "<=3.2.3|>=6.1.3,<=8.0.4",
"torrentpier/torrentpier": "<=2.8.8",
- "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
+ "tpwd/ke_search": "<5.6.2|>=6,<6.6.1|>=7,<7.0.1",
"tribalsystems/zenario": "<=9.7.61188",
"truckersmp/phpwhois": "<=4.3.1",
"ttskch/pagination-service-provider": "<1",
"twbs/bootstrap": "<3.4.1|>=4,<4.3.1",
- "twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19",
- "typicms/core": "<16.1.7",
+ "twig/cssinliner-extra": "<3.26",
+ "twig/intl-extra": "<3.26",
+ "twig/markdown-extra": "<3.26",
+ "twig/twig": "<3.27",
+ "typicms/core": "<12.0.5|>=13,<13.0.9|>=14,<14.0.27|>=15,<15.0.29|>=16,<16.1.7",
"typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
- "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1|==14.2",
+ "typo3/cms-backend": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18",
- "typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1",
+ "typo3/cms-core": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-dashboard": ">=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18",
"typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
"typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
"typo3/cms-felogin": ">=4.2,<4.2.3",
+ "typo3/cms-filelist": ">=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
- "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+ "typo3/cms-form": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
- "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+ "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2",
"typo3/cms-lowlevel": ">=11,<=11.5.41",
"typo3/cms-recordlist": ">=11,<11.5.48",
- "typo3/cms-recycler": ">=9,<9.5.55|>=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1",
+ "typo3/cms-recycler": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3",
"typo3/cms-redirects": ">=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1",
"typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
"typo3/cms-scheduler": ">=11,<=11.5.41",
@@ -6946,7 +7118,7 @@
"typo3/cms-webhooks": ">=12,<=12.4.30|>=13,<=13.4.11",
"typo3/cms-workspaces": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18",
"typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
- "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
+ "typo3/html-sanitizer": "<2.3.2",
"typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
"typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
"typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
@@ -6962,7 +7134,7 @@
"uvdesk/core-framework": "<=1.1.1",
"vanilla/safecurl": "<0.9.2",
"verbb/comments": "<1.5.5",
- "verbb/formie": "<=2.1.43",
+ "verbb/formie": "<3.1.27",
"verbb/image-resizer": "<2.0.9",
"verbb/knock-knock": "<1.2.8",
"verot/class.upload.php": "<=2.1.6",
@@ -6976,16 +7148,20 @@
"wallabag/wallabag": "<2.6.11",
"wanglelecc/laracms": "<=1.0.3",
"wapplersystems/a21glossary": "<=0.4.10",
- "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9|>=5.2,<5.2.4",
- "web-auth/webauthn-lib": ">=4.5,<4.9|>=5.2,<5.2.4",
- "web-auth/webauthn-symfony-bundle": ">=5.2,<5.2.4",
+ "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9|>=5.2,<5.2.4|>=5.3,<5.3.1",
+ "web-auth/webauthn-lib": ">=4.5,<5.3.5",
+ "web-auth/webauthn-symfony-bundle": "<5.3.4",
"web-feet/coastercms": "==5.5",
+ "web-token/jwt-bundle": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7",
+ "web-token/jwt-experimental": "<4.1.7",
+ "web-token/jwt-framework": "<4.1.7",
+ "web-token/jwt-library": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7",
"web-tp3/wec_map": "<3.0.3",
"webbuilders-group/silverstripe-kapost-bridge": "<0.4",
"webcoast/deferred-image-processing": "<1.0.2",
"webklex/laravel-imap": "<5.3",
"webklex/php-imap": "<5.3",
- "webonyx/graphql-php": "<=15.31.4",
+ "webonyx/graphql-php": "<=15.32.2",
"webpa/webpa": "<3.1.2",
"webreinvent/vaahcms": "<=2.3.1",
"wikibase/wikibase": "<=1.39.3",
@@ -6997,6 +7173,7 @@
"winter/wn-system-module": "<1.2.4",
"wintercms/winter": "<=1.2.3",
"wireui/wireui": "<1.19.3|>=2,<2.1.3",
+ "wnx/laravel-backup-restore": "<=1.9.3",
"woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3",
"wp-cli/wp-cli": ">=0.12,<2.5",
"wp-graphql/wp-graphql": "<=1.14.5",
@@ -7010,12 +7187,12 @@
"xpressengine/xpressengine": "<3.0.15",
"yab/quarx": "<2.4.5",
"yansongda/pay": "<=3.7.19",
- "yeswiki/yeswiki": "<=4.6",
+ "yeswiki/yeswiki": "<4.6.6",
"yetiforce/yetiforce-crm": "<6.5",
"yidashi/yii2cmf": "<=2",
"yii2mod/yii2-cms": "<1.9.2",
"yiisoft/yii": "<1.1.31",
- "yiisoft/yii2": "<2.0.52",
+ "yiisoft/yii2": "<2.0.55",
"yiisoft/yii2-authclient": "<2.2.15",
"yiisoft/yii2-bootstrap": "<2.0.4",
"yiisoft/yii2-dev": "<=2.0.45",
@@ -7104,20 +7281,20 @@
"type": "tidelift"
}
],
- "time": "2026-04-28T23:21:55+00:00"
+ "time": "2026-07-14T20:10:54+00:00"
},
{
"name": "sanmai/di-container",
- "version": "0.1.12",
+ "version": "0.1.17",
"source": {
"type": "git",
"url": "https://github.com/sanmai/di-container.git",
- "reference": "8b9ad72f6ac1f9e185e5bd060dc9479cb5191d8b"
+ "reference": "a901c4a8778c9212ef4d66607525281af2f787bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sanmai/di-container/zipball/8b9ad72f6ac1f9e185e5bd060dc9479cb5191d8b",
- "reference": "8b9ad72f6ac1f9e185e5bd060dc9479cb5191d8b",
+ "url": "https://api.github.com/repos/sanmai/di-container/zipball/a901c4a8778c9212ef4d66607525281af2f787bd",
+ "reference": "a901c4a8778c9212ef4d66607525281af2f787bd",
"shasum": ""
},
"require": {
@@ -7175,7 +7352,7 @@
],
"support": {
"issues": "https://github.com/sanmai/di-container/issues",
- "source": "https://github.com/sanmai/di-container/tree/0.1.12"
+ "source": "https://github.com/sanmai/di-container/tree/0.1.17"
},
"funding": [
{
@@ -7183,7 +7360,7 @@
"type": "github"
}
],
- "time": "2026-01-27T08:25:46+00:00"
+ "time": "2026-06-01T08:52:14+00:00"
},
{
"name": "sanmai/duoclock",
@@ -8564,44 +8741,47 @@
},
{
"name": "symfony/framework-bundle",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "ce3ee5db0a9c1b6c52f5e3ba16b63a677b18b7df"
+ "reference": "a3ca5c9df0bb88c1378d230570746ef6271c812e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ce3ee5db0a9c1b6c52f5e3ba16b63a677b18b7df",
- "reference": "ce3ee5db0a9c1b6c52f5e3ba16b63a677b18b7df",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a3ca5c9df0bb88c1378d230570746ef6271c812e",
+ "reference": "a3ca5c9df0bb88c1378d230570746ef6271c812e",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/cache": "^7.4|^8.0",
"symfony/config": "^7.4.4|^8.0.4",
- "symfony/dependency-injection": "^7.4.4|^8.0.4",
+ "symfony/dependency-injection": "^8.1",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^7.4|^8.0",
- "symfony/event-dispatcher": "^7.4|^8.0",
+ "symfony/event-dispatcher": "^8.1",
"symfony/filesystem": "^7.4|^8.0",
"symfony/finder": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
- "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/http-kernel": "^8.1",
"symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php85": "^1.32",
- "symfony/routing": "^7.4|^8.0"
+ "symfony/polyfill-php85": "^1.33",
+ "symfony/routing": "^7.4|^8.0",
+ "symfony/service-contracts": "^3.7.1",
+ "symfony/var-exporter": "^8.1"
},
"conflict": {
"doctrine/persistence": "<1.3",
"phpdocumentor/reflection-docblock": "<5.2|>=7",
"phpdocumentor/type-resolver": "<1.5.1",
- "symfony/console": "<7.4",
+ "symfony/console": "<8.1",
"symfony/form": "<7.4",
"symfony/json-streamer": "<7.4",
- "symfony/messenger": "<7.4",
+ "symfony/messenger": "<7.4.10|>=8.0,<8.0.10",
+ "symfony/mime": "<7.4.9|>=8.0,<8.0.9",
"symfony/security-csrf": "<7.4",
"symfony/serializer": "<7.4",
"symfony/translation": "<7.4",
@@ -8618,7 +8798,7 @@
"symfony/asset-mapper": "^7.4|^8.0",
"symfony/browser-kit": "^7.4|^8.0",
"symfony/clock": "^7.4|^8.0",
- "symfony/console": "^7.4|^8.0",
+ "symfony/console": "^8.1",
"symfony/css-selector": "^7.4|^8.0",
"symfony/dom-crawler": "^7.4|^8.0",
"symfony/dotenv": "^7.4|^8.0",
@@ -8629,10 +8809,10 @@
"symfony/json-streamer": "^7.4|^8.0",
"symfony/lock": "^7.4|^8.0",
"symfony/mailer": "^7.4|^8.0",
- "symfony/messenger": "^7.4|^8.0",
- "symfony/mime": "^7.4|^8.0",
+ "symfony/messenger": "^7.4.10|^8.0.10",
+ "symfony/mime": "^7.4.9|^8.0.9",
"symfony/notifier": "^7.4|^8.0",
- "symfony/object-mapper": "^7.4|^8.0",
+ "symfony/object-mapper": "^7.4.9|^8.0.9",
"symfony/polyfill-intl-icu": "^1.0",
"symfony/process": "^7.4|^8.0",
"symfony/property-info": "^7.4|^8.0",
@@ -8680,7 +8860,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/framework-bundle/tree/v8.0.8"
+ "source": "https://github.com/symfony/framework-bundle/tree/v8.1.1"
},
"funding": [
{
@@ -8700,7 +8880,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-27T09:05:56+00:00"
},
{
"name": "symfony/polyfill-php80",
@@ -8788,16 +8968,16 @@
},
{
"name": "symfony/polyfill-php84",
- "version": "v1.37.0",
+ "version": "v1.38.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php84.git",
- "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06"
+ "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06",
- "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
+ "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
"shasum": ""
},
"require": {
@@ -8844,7 +9024,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1"
},
"funding": [
{
@@ -8864,7 +9044,7 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T18:47:49+00:00"
+ "time": "2026-05-26T12:51:13+00:00"
},
{
"name": "symfony/polyfill-uuid",
@@ -8951,20 +9131,20 @@
},
{
"name": "symfony/process",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc"
+ "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc",
- "reference": "cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc",
+ "url": "https://api.github.com/repos/symfony/process/zipball/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5",
+ "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"type": "library",
"autoload": {
@@ -8992,7 +9172,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v8.0.8"
+ "source": "https://github.com/symfony/process/tree/v8.1.0"
},
"funding": [
{
@@ -9012,24 +9192,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/routing",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "0de330ec2ea922a7b08ec45615bd51179de7fda4"
+ "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/0de330ec2ea922a7b08ec45615bd51179de7fda4",
- "reference": "0de330ec2ea922a7b08ec45615bd51179de7fda4",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3",
+ "reference": "fe0bfec72c8a806109fb9c3a5f2b898fe0c76eb3",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
@@ -9072,7 +9252,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v8.0.8"
+ "source": "https://github.com/symfony/routing/tree/v8.1.0"
},
"funding": [
{
@@ -9092,20 +9272,20 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.6.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "65a8bc82080447fae78373aa10f8d13b38338977"
+ "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977",
- "reference": "65a8bc82080447fae78373aa10f8d13b38338977",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621",
+ "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621",
"shasum": ""
},
"require": {
@@ -9118,7 +9298,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -9154,7 +9334,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -9174,32 +9354,32 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T13:41:35+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/twig-bridge",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "a892d0b7f3d5d51b35895467e48aafbd1f2612a0"
+ "reference": "471e3b9537f514664ab8595668cd34c65cfa5d93"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/a892d0b7f3d5d51b35895467e48aafbd1f2612a0",
- "reference": "a892d0b7f3d5d51b35895467e48aafbd1f2612a0",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/471e3b9537f514664ab8595668cd34c65cfa5d93",
+ "reference": "471e3b9537f514664ab8595668cd34c65cfa5d93",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/translation-contracts": "^2.5|^3",
- "twig/twig": "^3.21"
+ "twig/twig": "^3.25"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<5.2|>=7",
"phpdocumentor/type-resolver": "<1.5.1",
"symfony/form": "<7.4.4|>8.0,<8.0.4",
- "symfony/mime": "<7.4.8|>8.0,<8.0.8"
+ "symfony/mime": "<7.4.9|>8.0,<8.0.9"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3|^4",
@@ -9217,7 +9397,7 @@
"symfony/http-foundation": "^7.4|^8.0",
"symfony/http-kernel": "^7.4|^8.0",
"symfony/intl": "^7.4|^8.0",
- "symfony/mime": "^7.4.8|^8.0.8",
+ "symfony/mime": "^7.4.9|^8.0.9",
"symfony/polyfill-intl-icu": "^1.0",
"symfony/property-info": "^7.4|^8.0",
"symfony/routing": "^7.4|^8.0",
@@ -9262,7 +9442,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v8.0.8"
+ "source": "https://github.com/symfony/twig-bridge/tree/v8.1.1"
},
"funding": [
{
@@ -9282,25 +9462,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-17T15:04:37+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "f83767b78e2580ca9fe9a2cf6fcff19cd5389bc1"
+ "reference": "b7f4a471a07b8b52174d153e4db12f46954192ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/f83767b78e2580ca9fe9a2cf6fcff19cd5389bc1",
- "reference": "f83767b78e2580ca9fe9a2cf6fcff19cd5389bc1",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/b7f4a471a07b8b52174d153e4db12f46954192ed",
+ "reference": "b7f4a471a07b8b52174d153e4db12f46954192ed",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/config": "^7.4|^8.0",
"symfony/dependency-injection": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
@@ -9346,7 +9526,7 @@
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bundle/tree/v8.0.8"
+ "source": "https://github.com/symfony/twig-bundle/tree/v8.1.0"
},
"funding": [
{
@@ -9366,24 +9546,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/uid",
- "version": "v8.0.8",
+ "version": "v8.1.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "f63fa6096a24147283bce4d29327d285326438e0"
+ "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/f63fa6096a24147283bce4d29327d285326438e0",
- "reference": "f63fa6096a24147283bce4d29327d285326438e0",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/7393f157a55f7e70a4de0334435c55a5a8fe749a",
+ "reference": "7393f157a55f7e70a4de0334435c55a5a8fe749a",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
@@ -9424,7 +9604,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v8.0.8"
+ "source": "https://github.com/symfony/uid/tree/v8.1.0"
},
"funding": [
{
@@ -9444,28 +9624,28 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-05-29T05:06:50+00:00"
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v8.0.8",
+ "version": "v8.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "8a8614df26c6436b47fbb9debeca74ddfa5b8e46"
+ "reference": "eb4cf71d8fc496d790ec85b1b684a7ac30d57a96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/8a8614df26c6436b47fbb9debeca74ddfa5b8e46",
- "reference": "8a8614df26c6436b47fbb9debeca74ddfa5b8e46",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/eb4cf71d8fc496d790ec85b1b684a7ac30d57a96",
+ "reference": "eb4cf71d8fc496d790ec85b1b684a7ac30d57a96",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/config": "^7.4|^8.0",
"symfony/framework-bundle": "^7.4|^8.0",
- "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/http-kernel": "^8.1",
"symfony/routing": "^7.4|^8.0",
"symfony/twig-bundle": "^7.4|^8.0"
},
@@ -9509,7 +9689,7 @@
"dev"
],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v8.0.8"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v8.1.1"
},
"funding": [
{
@@ -9529,7 +9709,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "thecodingmachine/safe",
@@ -9726,16 +9906,16 @@
},
{
"name": "twig/twig",
- "version": "v3.24.0",
+ "version": "v3.28.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "a6769aefb305efef849dc25c9fd1653358c148f0"
+ "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6769aefb305efef849dc25c9fd1653358c148f0",
- "reference": "a6769aefb305efef849dc25c9fd1653358c148f0",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/597c12ed286fb9d1701a36684ce6e0cbe28ebc8b",
+ "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b",
"shasum": ""
},
"require": {
@@ -9790,7 +9970,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.24.0"
+ "source": "https://github.com/twigphp/Twig/tree/v3.28.0"
},
"funding": [
{
@@ -9802,20 +9982,20 @@
"type": "tidelift"
}
],
- "time": "2026-03-17T21:31:11+00:00"
+ "time": "2026-07-03T20:44:34+00:00"
},
{
"name": "webmozart/assert",
- "version": "2.3.0",
+ "version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
- "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4"
+ "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
- "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70",
+ "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70",
"shasum": ""
},
"require": {
@@ -9831,7 +10011,11 @@
},
"type": "library",
"extra": {
+ "psalm": {
+ "pluginClass": "Webmozart\\Assert\\PsalmPlugin"
+ },
"branch-alias": {
+ "dev-master": "2.0-dev",
"dev-feature/2-0": "2.0-dev"
}
},
@@ -9862,9 +10046,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/2.3.0"
+ "source": "https://github.com/webmozarts/assert/tree/2.4.1"
},
- "time": "2026-04-11T10:33:05+00:00"
+ "time": "2026-06-15T15:31:57+00:00"
},
{
"name": "wnx/commonmark-markdown-renderer",
diff --git a/docs/pages/configuration.md b/docs/configuration.md
similarity index 72%
rename from docs/pages/configuration.md
rename to docs/configuration.md
index 019668ab..2ed5e628 100644
--- a/docs/pages/configuration.md
+++ b/docs/configuration.md
@@ -1,15 +1,15 @@
# Configuration
-!!! info
+:::note
+You can find out more about event sourcing in the library
+[documentation](/docs/event-sourcing/latest).
+This documentation is limited to bundle integration and configuration.
+:::
- You can find out more about event sourcing in the library
- [documentation](https://event-sourcing.patchlevel.io/latest/).
- This documentation is limited to bundle integration and configuration.
-
-!!! tip
+:::tip
+We provide a [default configuration](installation.md#configuration-file) that should work for most projects.
+:::
- We provide a [default configuration](./installation.md#configuration-file) that should work for most projects.
-
## Aggregate
A path must be specified for Event Sourcing to know where to look for your aggregates.
@@ -27,14 +27,15 @@ patchlevel_event_sourcing:
- '%kernel.project_dir%/src/Hotel/Domain'
- '%kernel.project_dir%/src/Room/Domain'
```
-!!! note
- The library will automatically register all classes marked with the `#[Aggregate]` attribute in the specified paths.
-
-!!! tip
+:::note
+The library will automatically register all classes marked with the `#[Aggregate]` attribute in the specified paths.
+:::
+
+:::tip
+If you want to learn more about aggregates, read the [library documentation](/docs/event-sourcing/latest/aggregate).
+:::
- If you want to learn more about aggregates, read the [library documentation](https://event-sourcing.patchlevel.io/latest/aggregate/).
-
## Events
A path must be specified for Event Sourcing to know where to look for your events.
@@ -52,10 +53,11 @@ patchlevel_event_sourcing:
- '%kernel.project_dir%/src/Hotel/Domain/Event'
- '%kernel.project_dir%/src/Room/Domain/Event'
```
-!!! tip
- If you want to learn more about events, read the [library documentation](https://event-sourcing.patchlevel.io/latest/events/).
-
+:::tip
+If you want to learn more about events, read the [library documentation](/docs/event-sourcing/latest/events).
+:::
+
## Custom Headers
If you want to implement custom headers for your application, you must specify the
@@ -74,10 +76,11 @@ patchlevel_event_sourcing:
- '%kernel.project_dir%/src/Hotel/Domain/Header'
- '%kernel.project_dir%/src/Room/Domain/Header'
```
-!!! tip
- If you want to learn more about custom headers, read the [library documentation](https://event-sourcing.patchlevel.io/latest/message/#custom-headers).
-
+:::tip
+If you want to learn more about custom headers, read the [library documentation](/docs/event-sourcing/latest/message/#custom-headers).
+:::
+
## Connection
You have to specify the connection url to the event store.
@@ -87,11 +90,12 @@ patchlevel_event_sourcing:
connection:
url: '%env(EVENTSTORE_URL)%'
```
-!!! note
- You can find out more about how to create a connection
- [here](https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html)
-
+:::note
+You can find out more about how to create a connection
+[here](https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html)
+:::
+
### Connection for Projections
Per default, our event sourcing connection is not available to use in your application.
@@ -103,24 +107,28 @@ patchlevel_event_sourcing:
url: '%env(EVENTSTORE_URL)%'
provide_dedicated_connection: true
```
-!!! warning
- If you use doctrine migrations, you should exclude you projection tables from the schema generation.
- The schema is managed by the subscription engine and should not be managed by doctrine.
-
-!!! tip
+:::warning
+If you use doctrine migrations, you should exclude you projection tables from the schema generation.
+The schema is managed by the subscription engine and should not be managed by doctrine.
+:::
+
+:::tip
+You can autowire the connection in your services like this:
- You can autowire the connection in your services like this:
-
- ```php
- use Doctrine\DBAL\Connection;
-
+```php
+use Doctrine\DBAL\Connection;
+
+class YourService
+{
public function __construct(
private readonly Connection $projectionConnection,
) {
}
- ```
-
+}
+```
+:::
+
### Doctrine Bundle
If you have installed the [doctrine bundle](https://github.com/doctrine/DoctrineBundle),
@@ -137,21 +145,22 @@ patchlevel_event_sourcing:
connection:
service: doctrine.dbal.eventstore_connection
```
-!!! danger
- Do not use the same connection for event sourcing and your projections,
- otherwise you may run into transaction problems.
-
-!!! warning
+:::danger
+Do not use the same connection for event sourcing and your projections,
+otherwise you may run into transaction problems.
+:::
+
+:::warning
+If you want to use the same connection as doctrine orm, then you have to set the flag `merge_orm_schema`.
+Otherwise you should avoid using the same connection as other tools.
+:::
- If you want to use the same connection as doctrine orm, then you have to set the flag `merge_orm_schema`.
- Otherwise you should avoid using the same connection as other tools.
-
-!!! note
+:::note
+You can find out more about the dbal configuration
+[here](https://symfony.com/bundles/DoctrineBundle/current/configuration.html).
+:::
- You can find out more about the dbal configuration
- [here](https://symfony.com/bundles/DoctrineBundle/current/configuration.html).
-
If you are using Doctrine for your projections too, you need to create a dedicated connection for this.
You can do this by defining a new connection named `projection` in the `doctrine.yaml` file
and use the same connection url as for the event store.
@@ -169,16 +178,17 @@ patchlevel_event_sourcing:
connection:
service: doctrine.dbal.eventstore_connection
```
-!!! warning
- You should exclude your projection tables from the schema generation.
-
- ```yaml
- doctrine:
- dbal:
- schema_filter: ~^(projection_)~
- ```
-
+:::warning
+You should exclude your projection tables from the schema generation.
+
+```yaml
+doctrine:
+ dbal:
+ schema_filter: ~^(projection_)~
+```
+:::
+
Then you can use this connection in your projections.
If you are using autowiring you can inject the right connection `Connection $projectionConnection` parameter name.
The prefix `projection` is used to identify the connection.
@@ -218,10 +228,10 @@ Following store types are available:
- `in_memory`
- `custom`
-!!! note
+:::note
+If you use `custom` store type, you need to set the service id under `patchlevel_event_sourcing.store.service`.
+:::
- If you use `custom` store type, you need to set the service id under `patchlevel_event_sourcing.store.service`.
-
### Change table Name
You can change the table name of the event store.
@@ -242,10 +252,11 @@ patchlevel_event_sourcing:
store:
read_only: true
```
-!!! tip
- This is useful if you have maintenance work on the event store and you want to avoid side effects.
-
+:::tip
+This is useful if you have maintenance work on the event store and you want to avoid side effects.
+:::
+
### Merge ORM Schema
You can also merge the schema with doctrine orm. You have to set the following flag for this:
@@ -255,19 +266,20 @@ patchlevel_event_sourcing:
store:
merge_orm_schema: true
```
-!!! warning
- If you want to merge the schema, then the same doctrine connection must be used as with the doctrine orm.
- Otherwise errors may occur!
-
-!!! note
+:::warning
+If you want to merge the schema, then the same doctrine connection must be used as with the doctrine orm.
+Otherwise errors may occur!
+:::
+
+:::note
+All schema relevant commands are removed if you activate this option. You should use the doctrine commands then.
+:::
- All schema relevant commands are removed if you activate this option. You should use the doctrine commands then.
-
-!!! tip
+:::tip
+If you want to learn more about store, read the [library documentation](/docs/event-sourcing/latest/store).
+:::
- If you want to learn more about store, read the [library documentation](https://event-sourcing.patchlevel.io/latest/store/).
-
### Kernel Reset
Only available in `in_memory` store. If you want to reset the store after each kernel request, you can activate this option.
@@ -295,16 +307,17 @@ patchlevel_event_sourcing:
translators:
- Patchlevel\EventSourcing\Message\Translator\AggregateToStreamHeaderTranslator
```
-!!! danger
- Make sure that you use different table names for the old and new store.
- Otherwise your event store will be destroyed.
-
-!!! tip
+:::danger
+Make sure that you use different table names for the old and new store.
+Otherwise your event store will be destroyed.
+:::
+
+:::tip
+Set the `read_only` flag to `true` for the old store to avoid side effects
+and missing events during the migration.
+:::
- Set the `read_only` flag to `true` for the old store to avoid side effects
- and missing events during the migration.
-
## Migration
You can use [doctrine migrations](https://www.doctrine-project.org/projects/migrations.html) to manage the schema.
@@ -317,11 +330,11 @@ patchlevel_event_sourcing:
```
## Subscription
-!!! tip
+:::tip
+You can find out more about subscriptions in the library
+[documentation](/docs/event-sourcing/latest/subscription).
+:::
- You can find out more about subscriptions in the library
- [documentation](https://event-sourcing.patchlevel.io/latest/subscription/).
-
### Store
You can change where the subscription engine stores its necessary information about the subscription.
@@ -343,11 +356,12 @@ patchlevel_event_sourcing:
options:
table_name: 'my_subscription_store'
```
-!!! tip
- If you are using the [doctrine-test-bundle](https://github.com/dmaicher/doctrine-test-bundle),
- you can use the `static_in_memory` store for testing.
-
+:::tip
+If you are using the [doctrine-test-bundle](https://github.com/dmaicher/doctrine-test-bundle),
+you can use the `static_in_memory` store for testing.
+:::
+
### Catch Up
If aggregates are used in the processors and new events are generated there,
@@ -371,10 +385,11 @@ patchlevel_event_sourcing:
subscription:
throw_on_error: true
```
-!!! warning
- This option should not be used in production. The normal behavior is to log the error and continue.
-
+:::warning
+This option should not be used in production. The normal behavior is to log the error and continue.
+:::
+
### Run After Aggregate Save
If you want to run the subscription engine after an aggregate is saved, you can activate this option.
@@ -395,10 +410,11 @@ patchlevel_event_sourcing:
subscription:
auto_setup: true
```
-!!! note
- This works only before each http requests and not if you use the console commands.
-
+:::note
+This works only before each http requests and not if you use the console commands.
+:::
+
### Rebuild After File Change
If you want to rebuild the subscription engine after a file change, you can activate this option.
@@ -409,14 +425,15 @@ patchlevel_event_sourcing:
subscription:
rebuild_after_file_change: true
```
-!!! note
- This works only before each http requests and not if you use the console commands.
-
-!!! tip
+:::note
+This works only before each http requests and not if you use the console commands.
+:::
+
+:::tip
+This is using the cache system to store the latest file change time. You can change the cache pool with the `cache_pool` option.
+:::
- This is using the cache system to store the latest file change time. You can change the cache pool with the `cache_pool` option.
-
### Gap Detection
Depending on the database you are using for the eventstore it may be happening that your subscriptions are skipping some
@@ -431,14 +448,15 @@ patchlevel_event_sourcing:
subscription:
gap_detection: ~
```
-!!! info
- For more context you can read more about this in [this issue](https://github.com/patchlevel/event-sourcing/issues/727#issuecomment-2757297536).
-
-!!! tip
+:::note
+For more context you can read more about this in [this issue](https://github.com/patchlevel/event-sourcing/issues/727#issuecomment-2757297536).
+:::
+
+:::tip
+You can use both techniques locking and gap detecion to mitigate gaps happening in the subscriptions.
+:::
- You can use both techniques locking and gap detecion to mitigate gaps happening in the subscriptions.
-
You can also define how often the gap detection should re-check the gap and how long it should wait, in this example we
instantly retry the first time, then we wait 500ms and after that we check a last time after 1 second.
@@ -479,10 +497,11 @@ patchlevel_event_sourcing:
command_bus:
service: command.bus
```
-!!! note
- You can find out more about the command bus and the aggregate handlers [here](https://event-sourcing.patchlevel.io/latest/command_bus/).
-
+:::note
+You can find out more about the command bus and the aggregate handlers [here](/docs/event-sourcing/latest/command-bus).
+:::
+
### Instant Retry
You can define the default instant retry configuration for the command bus.
@@ -496,10 +515,11 @@ patchlevel_event_sourcing:
default_exceptions:
- Patchlevel\EventSourcing\Repository\AggregateOutdated
```
-!!! note
- You can find out more about instant retry [here](https://event-sourcing.patchlevel.io/latest/command_bus/#instant-retry).
-
+:::note
+You can find out more about instant retry [here](/docs/event-sourcing/latest/command-bus/#instant-retry).
+:::
+
## Query Bus
You can enable the query bus integration to use queries to retrieve data from your system. For this bundle we provide
@@ -519,10 +539,11 @@ patchlevel_event_sourcing:
query_bus:
service: query.bus
```
-!!! note
- You can find out more about the query bus [here](https://event-sourcing.patchlevel.io/latest/query_bus/).
-
+:::note
+You can find out more about the query bus [here](/docs/event-sourcing/latest/query-bus).
+:::
+
## Event Bus
You can enable the event bus to listen for events and messages synchronously.
@@ -532,10 +553,11 @@ But you should consider using the subscription engine for this.
patchlevel_event_sourcing:
event_bus: ~
```
-!!! note
- Default is the patchlevel [event bus](https://event-sourcing.patchlevel.io/latest/event_bus/).
-
+:::note
+Default is the patchlevel [event bus](/docs/event-sourcing/latest/event-bus).
+:::
+
### Patchlevel (Default) Event Bus
First of all we have our own default event bus.
@@ -546,10 +568,11 @@ patchlevel_event_sourcing:
event_bus:
type: default
```
-!!! note
- You don't have to specify this as it is the default value.
-
+:::note
+You don't have to specify this as it is the default value.
+:::
+
### Symfony Event Bus
But you can also use [Symfony Messenger](https://symfony.com/doc/current/messenger.html).
@@ -602,11 +625,12 @@ patchlevel_event_sourcing:
type: psr14
service: my.event.bus.service
```
-!!! note
- Like the Symfony event bus, the event sourcing attributes no longer work here.
- You have to use the system that comes with the respective psr14 implementation.
-
+:::note
+Like the Symfony event bus, the event sourcing attributes no longer work here.
+You have to use the system that comes with the respective psr14 implementation.
+:::
+
### Custom Event Bus
You can also use your own event bus that implements the `Patchlevel\EventSourcing\EventBus\EventBus` interface.
@@ -617,11 +641,12 @@ patchlevel_event_sourcing:
type: custom
service: my.event.bus.service
```
-!!! note
- Like the Symfony event bus, the event sourcing attributes no longer work here.
- You have to use the system that comes with the respective custom implementation.
-
+:::note
+Like the Symfony event bus, the event sourcing attributes no longer work here.
+You have to use the system that comes with the respective custom implementation.
+:::
+
## Snapshot
You can use symfony cache to define the target of the snapshot store.
@@ -660,10 +685,11 @@ final class Profile extends BasicAggregateRoot
// ...
}
```
-!!! note
- You can find out more about snapshots [here](https://event-sourcing.patchlevel.io/latest/snapshots/).
-
+:::note
+You can find out more about snapshots [here](/docs/event-sourcing/latest/snapshots).
+:::
+
## Cryptography
You can use the library to encrypt and decrypt personal data.
@@ -674,12 +700,13 @@ patchlevel_event_sourcing:
cryptography:
use_encrypted_field_name: true
```
-!!! tip
- You should activate `use_encrypted_field_name` to mark the fields that are encrypted.
- That allows you later to migrate not encrypted fields to encrypted fields.
- If you have already encrypted fields, you can activate `fallback_to_field_name` to use the old field name as fallback.
-
+:::tip
+You should activate `use_encrypted_field_name` to mark the fields that are encrypted.
+That allows you later to migrate not encrypted fields to encrypted fields.
+If you have already encrypted fields, you can activate `fallback_to_field_name` to use the old field name as fallback.
+:::
+
If you want to use another algorithm, you can specify this here:
```yaml
@@ -687,10 +714,11 @@ patchlevel_event_sourcing:
cryptography:
algorithm: 'aes-256-gcm'
```
-!!! note
- You can find out more about personal data [here](https://event-sourcing.patchlevel.io/latest/personal_data/).
-
+:::note
+You can find out more about personal data [here](/docs/event-sourcing/latest/personal-data).
+:::
+
## Clock
The clock is used to return the current time as DateTimeImmutable.
@@ -705,10 +733,11 @@ when@test:
clock:
freeze: '2020-01-01 22:00:00'
```
-!!! note
- If freeze is not set, then the system clock is used.
-
+:::note
+If freeze is not set, then the system clock is used.
+:::
+
### Symfony Clock
Since symfony 6.2 there is a [clock](https://symfony.com/doc/current/components/clock.html) implementation
diff --git a/docs/pages/getting_started.md b/docs/getting-started.md
similarity index 83%
rename from docs/pages/getting_started.md
rename to docs/getting-started.md
index 43c33b95..96ed22f8 100644
--- a/docs/pages/getting_started.md
+++ b/docs/getting-started.md
@@ -5,11 +5,11 @@ We keep the example small, so we can only create hotels and let guests check in
For this example we use [symfony/mailer](https://symfony.com/doc/current/mailer.html).
-!!! info
+:::note
+First of all, the bundle has to be installed and configured.
+If you haven't already done so, see the [installation introduction](installation.md).
+:::
- First of all, the bundle has to be installed and configured.
- If you haven't already done so, see the [installation introduction](installation.md).
-
## Define some events
First we define the events that happen in our system.
@@ -68,10 +68,11 @@ final class GuestIsCheckedOut
}
}
```
-!!! note
- You can find out more about events in the [library](https://event-sourcing.patchlevel.io/latest/events/).
-
+:::note
+You can find out more about events in the [library](/docs/event-sourcing/latest/events).
+:::
+
## Define aggregates
Next we need to define the hotel aggregate.
@@ -168,10 +169,11 @@ final class Hotel extends BasicAggregateRoot
}
}
```
-!!! note
- You can find out more about aggregates in the [library](https://event-sourcing.patchlevel.io/latest/aggregate/).
-
+:::note
+You can find out more about aggregates in the [library](/docs/event-sourcing/latest/aggregate).
+:::
+
## Define projections
Now we want to see which guests are currently checked in at a hotel or when a guest checked in and out.
@@ -189,7 +191,8 @@ use Patchlevel\EventSourcing\Attribute\Projector;
use Patchlevel\EventSourcing\Attribute\Setup;
use Patchlevel\EventSourcing\Attribute\Subscribe;
use Patchlevel\EventSourcing\Attribute\Teardown;
-use Patchlevel\EventSourcing\Subscription\Subscriber\SubscriberUtil;
+
+use function sprintf;
/**
* @psalm-type GuestData = array{
@@ -199,10 +202,10 @@ use Patchlevel\EventSourcing\Subscription\Subscriber\SubscriberUtil;
* check_out_date: string|null
* }
*/
-#[Projector('guests')]
+#[Projector(self::SUBSCRIBER_ID)]
final class GuestProjection
{
- use SubscriberUtil;
+ private const SUBSCRIBER_ID = 'guests';
public function __construct(
private Connection $db,
@@ -214,7 +217,7 @@ final class GuestProjection
{
return $this->db->createQueryBuilder()
->select('*')
- ->from($this->table())
+ ->from(self::SUBSCRIBER_ID)
->where('hotel_id = :hotel_id')
->setParameter('hotel_id', $hotelId->toString())
->fetchAllAssociative();
@@ -226,7 +229,7 @@ final class GuestProjection
DateTimeImmutable $recordedOn,
): void {
$this->db->insert(
- $this->table(),
+ self::SUBSCRIBER_ID,
[
'hotel_id' => $event->hotelId->toString(),
'guest_name' => $event->guestName,
@@ -242,7 +245,7 @@ final class GuestProjection
DateTimeImmutable $recordedOn,
): void {
$this->db->update(
- $this->table(),
+ self::SUBSCRIBER_ID,
[
'check_out_date' => $recordedOn->format('Y-m-d H:i:s'),
],
@@ -257,36 +260,33 @@ final class GuestProjection
#[Setup]
public function create(): void
{
- $this->db->executeStatement(
- "CREATE TABLE {$this->table()} (
+ $this->db->executeStatement(sprintf(
+ 'CREATE TABLE %s (
hotel_id VARCHAR(36) NOT NULL,
guest_name VARCHAR(255) NOT NULL,
check_in_date TIMESTAMP NOT NULL,
check_out_date TIMESTAMP NULL
- );",
- );
+ );',
+ self::SUBSCRIBER_ID,
+ ));
}
#[Teardown]
public function drop(): void
{
- $this->db->executeStatement("DROP TABLE IF EXISTS {$this->table()};");
- }
-
- private function table(): string
- {
- return 'projection_' . $this->subscriberId();
+ $this->db->executeStatement(sprintf('DROP TABLE IF EXISTS %s;', self::SUBSCRIBER_ID));
}
}
```
-!!! warning
- autoconfigure need to be enabled, otherwise you need add the `event_sourcing.subscriber` tag.
-
-!!! note
+:::warning
+autoconfigure need to be enabled, otherwise you need add the `event_sourcing.subscriber` tag.
+:::
+
+:::note
+You can find out more about projections in the [library](/docs/event-sourcing/latest/subscription).
+:::
- You can find out more about projections in the [library](https://event-sourcing.patchlevel.io/latest/subscription/).
-
## Processor
In our example we also want to send an email to the head office as soon as a guest is checked in.
@@ -323,14 +323,15 @@ final class SendCheckInEmailProcessor
}
}
```
-!!! warning
- autoconfigure need to be enabled, otherwise you need add the `event_sourcing.subscriber` tag.
-
-!!! note
+:::warning
+autoconfigure need to be enabled, otherwise you need add the `event_sourcing.subscriber` tag.
+:::
+
+:::note
+You can find out more about processor in the [library](/docs/event-sourcing/latest/subscription)
+:::
- You can find out more about processor in the [library](https://event-sourcing.patchlevel.io/latest/subscription/)
-
## Database setup
So that we can actually write the data to a database, we need the associated schema and databases.
@@ -345,10 +346,11 @@ or you can use doctrine migrations:
bin/console event-sourcing:migrations:diff
bin/console event-sourcing:migrations:migrate
```
-!!! note
- You can find out more about the cli in the [library](https://event-sourcing.patchlevel.io/latest/cli/).
-
+:::note
+You can find out more about the cli in the [library](/docs/event-sourcing/latest/cli).
+:::
+
## Usage
We are now ready to use the Event Sourcing System. We can load, change and save aggregates.
@@ -422,15 +424,14 @@ final class HotelController
```
## Result
-!!! success
+:::success
+We have successfully implemented and used event sourcing.
- We have successfully implemented and used event sourcing.
-
- Feel free to browse further in the documentation for more detailed information.
- If there are still open questions, create a ticket on Github and we will try to help you.
-
-!!! note
+Feel free to browse further in the documentation for more detailed information.
+If there are still open questions, create a ticket on Github and we will try to help you.
+:::
- This documentation is limited to the bundle integration.
- You should also read the [library documentation](https://event-sourcing.patchlevel.io/latest/).
-
\ No newline at end of file
+:::note
+This documentation is limited to the bundle integration.
+You should also read the [library documentation](/docs/event-sourcing/latest).
+:::
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 00000000..56e3b402
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,40 @@
+# Event-Sourcing-Bundle
+
+An event sourcing bundle, complete with all the essential features,
+powered by the reliable Doctrine ecosystem and focused on developer experience.
+This bundle is a [symfony](https://symfony.com/) integration
+for [event-sourcing](https://github.com/patchlevel/event-sourcing) library.
+
+## Features
+
+* Everything is included in the package for event sourcing
+* Based on [doctrine dbal](https://github.com/doctrine/dbal) and their ecosystem
+* Developer experience oriented and fully typed
+* Automatic [snapshot](/docs/event-sourcing/latest/snapshots)-system to boost your performance
+* [Split](/docs/event-sourcing/latest/split-stream) big aggregates into multiple streams
+* Versioned and managed lifecycle of [subscriptions](/docs/event-sourcing/latest/subscription) like projections and processors
+* Safe usage of [Personal Data](/docs/event-sourcing/latest/personal-data) with crypto-shredding
+* Smooth [upcasting](/docs/event-sourcing/latest/upcasting) of old events
+* Simple setup with [scheme management](/docs/event-sourcing/latest/store) and [doctrine migration](/docs/event-sourcing/latest/store)
+* Built in [cli commands](/docs/event-sourcing/latest/cli) with [symfony](https://symfony.com/)
+* and much more...
+
+## Installation
+
+```bash
+composer require patchlevel/event-sourcing-bundle
+```
+
+:::note
+If you don't use the symfony flex recipe for this bundle, you need to follow
+this [installation documentation](installation.md).
+:::
+
+:::tip
+Start with the [quickstart](getting-started.md) to get a feeling for the bundle.
+:::
+
+## Integration
+
+* [Psalm](https://github.com/patchlevel/event-sourcing-psalm-plugin)
+* [Admin Bundle](https://github.com/patchlevel/event-sourcing-admin-bundle)
diff --git a/docs/pages/installation.md b/docs/installation.md
similarity index 87%
rename from docs/pages/installation.md
rename to docs/installation.md
index b9432835..f7e57de4 100644
--- a/docs/pages/installation.md
+++ b/docs/installation.md
@@ -11,10 +11,11 @@ The first thing to do is to install packet if it has not already been done.
```bash
composer require patchlevel/event-sourcing-bundle
```
-!!! note
- how to install [composer](https://getcomposer.org/doc/00-intro.md)
-
+:::note
+how to install [composer](https://getcomposer.org/doc/00-intro.md)
+:::
+
## Enable bundle
Then we have to activate the bundle in the `config/bundles.php`:
@@ -77,10 +78,11 @@ Finally, we have to fill the ENV variable with a connection url.
```dotenv
EVENTSTORE_URL="pdo-pgsql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
```
-!!! note
- You can find out more about what a connection url looks like [here](https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url).
-
+:::note
+You can find out more about what a connection url looks like [here](https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url).
+:::
+
## Database with Docker
If you are using docker, you can use the following `compose.yaml` file to start a postgres database.
@@ -120,7 +122,7 @@ For this you have to add the following configuration to the `.symfony.local.yaml
workers:
docker_compose: ~
```
-!!! success
- You have successfully installed the bundle. Now you can start with the [quickstart](./getting_started.md) to get a feeling for the bundle.
-
\ No newline at end of file
+:::success
+You have successfully installed the bundle. Now you can start with the [quickstart](getting-started.md) to get a feeling for the bundle.
+:::
\ No newline at end of file
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
deleted file mode 100644
index f8343080..00000000
--- a/docs/mkdocs.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-# yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json
-
-site_name: Event Sourcing Symfony Bundle
-site_description: A lightweight but also all-inclusive event sourcing bundle with a focus on developer experience and based on doctrine dbal.
-site_author: patchlevel
-site_url: https://event-sourcing-bundle.patchlevel.io/
-repo_url: https://github.com/patchlevel/event-sourcing-bundle
-repo_name: patchlevel/event-sourcing-bundle
-edit_uri: edit/2.0.x/docs/pages/
-docs_dir: pages
-
-extra:
- meta:
- title: Event Sourcing Symfony Bundle
- description: An event sourcing bundle, complete with all the essential features, powered by the reliable Doctrine ecosystem and focused on developer experience.
- image: img/patchlevel-banner.png
- social:
- - icon: fontawesome/brands/github
- link: https://github.com/patchlevel
- - icon: fontawesome/solid/globe
- link: https://patchlevel.de
- - icon: fontawesome/brands/twitter
- link: https://twitter.com/patchlevelhq
- version:
- provider: mike
- analytics:
- provider: custom
-
-extra_css:
- - stylesheets/extra.css
-
-theme:
- name: material
- custom_dir: overrides
- logo: assets/logo.png
- favicon: assets/favicon.png
- features:
- - navigation.sections
- - navigation.top
- - navigation.indexes
- - navigation.footer
- - content.code.annotate
- - content.code.copy
- palette:
- - media: "(prefers-color-scheme: light)"
- scheme: default
- primary: black
- accent: blue
- toggle:
- icon: material/brightness-7
- name: Switch to dark mode
- - media: "(prefers-color-scheme: dark)"
- scheme: slate
- primary: black
- accent: blue
- toggle:
- icon: material/brightness-4
- name: Switch to light mode
-
-plugins:
- - search:
- - mike:
- canonical_version: latest
-
-markdown_extensions:
- - meta
- - pymdownx.highlight:
- anchor_linenums: true
- extend_pygments_lang:
- - name: php
- lang: php
- options:
- startinline: true
- - pymdownx.inlinehilite
- - pymdownx.snippets:
- auto_append:
- - docs/includes/links.md
- - admonition
- - pymdownx.emoji:
- emoji_index: !!python/name:materialx.emoji.twemoji
- emoji_generator: !!python/name:materialx.emoji.to_svg
- - def_list
- - pymdownx.tasklist:
- custom_checkbox: true
- - pymdownx.superfences:
- custom_fences:
- - name: mermaid
- class: mermaid
- format: !!python/name:pymdownx.superfences.fence_code_format
-
-nav:
- - Introduction: index.md
- - Installation: installation.md
- - Getting Started: getting_started.md
- - Configuration: configuration.md
- - Usage: usage.md
- - Links:
- - Blog: https://patchlevel.de/blog
- - Library Documentation: https://event-sourcing.patchlevel.io/latest/
- - Admin Bundle: https://github.com/patchlevel/event-sourcing-admin-bundle
- - Psalm Plugin: https://github.com/patchlevel/event-sourcing-psalm-plugin
- - Hydrator: https://github.com/patchlevel/hydrator
diff --git a/docs/overrides/assets/favicon.png b/docs/overrides/assets/favicon.png
deleted file mode 100644
index 86e8fb7b..00000000
Binary files a/docs/overrides/assets/favicon.png and /dev/null differ
diff --git a/docs/overrides/assets/logo.png b/docs/overrides/assets/logo.png
deleted file mode 100644
index be170fed..00000000
Binary files a/docs/overrides/assets/logo.png and /dev/null differ
diff --git a/docs/overrides/main.html b/docs/overrides/main.html
deleted file mode 100644
index 9cfcb55a..00000000
--- a/docs/overrides/main.html
+++ /dev/null
@@ -1,18 +0,0 @@
-{% extends "base.html" %}
-
-{% block extrahead %}
-
-
-
-
-
-
-
-{% endblock %}
-
-{% block outdated %}
-You're not viewing the latest version.
-
- Click here to go to latest.
-
-{% endblock %}
\ No newline at end of file
diff --git a/docs/overrides/partials/integrations/analytics/custom.html b/docs/overrides/partials/integrations/analytics/custom.html
deleted file mode 100644
index af4cc148..00000000
--- a/docs/overrides/partials/integrations/analytics/custom.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/pages/index.md b/docs/pages/index.md
deleted file mode 100644
index 04cd6ab3..00000000
--- a/docs/pages/index.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# Event-Sourcing-Bundle
-
-An event sourcing bundle, complete with all the essential features,
-powered by the reliable Doctrine ecosystem and focused on developer experience.
-This bundle is a [symfony](https://symfony.com/) integration
-for [event-sourcing](https://github.com/patchlevel/event-sourcing) library.
-
-## Features
-
-* Everything is included in the package for event sourcing
-* Based on [doctrine dbal](https://github.com/doctrine/dbal) and their ecosystem
-* Developer experience oriented and fully typed
-* Automatic [snapshot](https://event-sourcing.patchlevel.io/latest/snapshots/)-system to boost your performance
-* [Split](https://event-sourcing.patchlevel.io/latest/split_stream/) big aggregates into multiple streams
-* Versioned and managed lifecycle of [subscriptions](https://event-sourcing.patchlevel.io/latest/subscription/) like projections and processors
-* Safe usage of [Personal Data](https://event-sourcing.patchlevel.io/latest/personal_data/) with crypto-shredding
-* Smooth [upcasting](https://event-sourcing.patchlevel.io/latest/upcasting/) of old events
-* Simple setup with [scheme management](https://event-sourcing.patchlevel.io/latest/store/) and [doctrine migration](https://event-sourcing.patchlevel.io/latest/store/)
-* Built in [cli commands](https://event-sourcing.patchlevel.io/latest/cli/) with [symfony](https://symfony.com/)
-* and much more...
-
-## Installation
-
-```bash
-composer require patchlevel/event-sourcing-bundle
-```
-!!! info
-
- If you don't use the symfony flex recipe for this bundle, you need to follow
- this [installation documentation](installation.md).
-
-!!! tip
-
- Start with the [quickstart](./getting_started.md) to get a feeling for the bundle.
-
-## Integration
-
-* [Psalm](https://github.com/patchlevel/event-sourcing-psalm-plugin)
-* [Admin Bundle](https://github.com/patchlevel/event-sourcing-admin-bundle)
diff --git a/docs/pages/stylesheets/extra.css b/docs/pages/stylesheets/extra.css
deleted file mode 100644
index 26494c71..00000000
--- a/docs/pages/stylesheets/extra.css
+++ /dev/null
@@ -1,43 +0,0 @@
-:root > * {
- --md-code-hl-number-color: #6897BB;
- --md-code-hl-special-color: #C7CDD7;
- --md-code-hl-function-color: #FFC66D;
- --md-code-hl-constant-color: #9876AA;
- --md-code-hl-keyword-color: #CC7832;
- --md-code-hl-string-color: #6A8759;
- --md-code-hl-name-color: red;
- --md-code-hl-operator-color: #C7CDD7;
- --md-code-hl-punctuation-color: #C7CDD7;
- --md-code-hl-comment-color: #629755;
- --md-code-hl-generic-color: red;
- --md-code-hl-variable-color: #9876AA;
-
- --md-code-fg-color: #C7CDD7;
- --md-code-bg-color: rgb(39, 42, 53);
- --md-code-hl-color: red;
-}
-
-p {
- margin-block-start: 2em;
- margin-block-end: 2em;
-}
-
-.md-typeset code {
- padding: .2em .4em;
- font-size: .9em;
- line-height: 1.8;
- border-radius: .2rem;
-}
-
-[data-md-color-scheme=default] .md-typeset code:not(pre code) {
- background-color: #f5f5f5;
- color: #36464e;
-}
-
-.admonition-title {
- margin-bottom: -1em !important;
-}
-
-.md-nav__link--active {
- font-weight: bold;
-}
\ No newline at end of file
diff --git a/docs/project.json b/docs/project.json
new file mode 100644
index 00000000..cfdca365
--- /dev/null
+++ b/docs/project.json
@@ -0,0 +1,24 @@
+{
+ "navigation": [
+ {
+ "title": "Introduction",
+ "file": "index.md"
+ },
+ {
+ "title": "Installation",
+ "file": "installation.md"
+ },
+ {
+ "title": "Getting Started",
+ "file": "getting-started.md"
+ },
+ {
+ "title": "Configuration",
+ "file": "configuration.md"
+ },
+ {
+ "title": "Usage",
+ "file": "usage.md"
+ }
+ ]
+}
diff --git a/docs/requirements.txt b/docs/requirements.txt
deleted file mode 100644
index 4e1342ff..00000000
--- a/docs/requirements.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-mkdocs==1.6.1
-mike==2.2.0
-markdown==3.10.2
-mkdocs-material==9.7.6
-
-# Markdown extensions
-Pygments==2.20.0
-pymdown-extensions==10.21.2
-
-# MkDocs plugins
-mkdocs-material-extensions==1.3.1
\ No newline at end of file
diff --git a/docs/pages/usage.md b/docs/usage.md
similarity index 86%
rename from docs/pages/usage.md
rename to docs/usage.md
index 93b698cd..c11720b4 100644
--- a/docs/pages/usage.md
+++ b/docs/usage.md
@@ -3,12 +3,12 @@
Here you will find some examples of how to use the bundle.
But we provide only examples for specific symfony features.
-!!! info
+:::note
+You can find out more about event sourcing in the library
+[documentation](/docs/event-sourcing/latest).
+This documentation is limited to bundle integration and configuration.
+:::
- You can find out more about event sourcing in the library
- [documentation](https://event-sourcing.patchlevel.io/latest/).
- This documentation is limited to bundle integration and configuration.
-
## Repository
You can access the specific repositories using the `RepositoryManager::get`. Or inject directly the right repository via
@@ -140,24 +140,25 @@ services:
- name: event_sourcing.listener
priority: 16
```
-!!! warning
- You have to deactivate the `autoconfigure` for this service,
- otherwise the service will be added twice.
-
+:::warning
+You have to deactivate the `autoconfigure` for this service,
+otherwise the service will be added twice.
+:::
+
## Normalizer
This bundle adds more Symfony specific normalizers in addition to the existing built-in normalizers.
-!!! note
+:::note
+You can find the other build-in normalizers [here](/docs/event-sourcing/latest/normalizer/#built-in-normalizer)
+:::
- You can find the other build-in normalizers [here](https://event-sourcing.patchlevel.io/latest/normalizer/#built-in-normalizer)
-
-!!! tip
+:::tip
+The Hydrator can automatically determine the appropriate normalizer based on the data type and annotations.
+You don't have to specify the normalizer manually like in the example below.
+:::
- The Hydrator can automatically determine the appropriate normalizer based on the data type and annotations.
- You don't have to specify the normalizer manually like in the example below.
-
### Uid
With the `Uid` Normalizer, as the name suggests, you can convert Symfony Uuid and Ulid objects to a string and back again.
@@ -172,15 +173,16 @@ final class DTO
public Uuid $id;
}
```
-!!! warning
- The symfony uuid don't implement the `AggregateId` interface, so it can not be used as an aggregate id directly.
- Use instead the `Patchlevel\EventSourcing\Aggregate\Uuid` class.
-
-!!! tip
+:::warning
+The symfony uuid don't implement the `AggregateId` interface, so it can not be used as an aggregate id directly.
+Use instead the `Patchlevel\EventSourcing\Aggregate\Uuid` class.
+:::
+
+:::tip
+Use the `Uuid` implementation and `IdNormalizer` from the library to use it as an aggregate id.
+:::
- Use the `Uuid` implementation and `IdNormalizer` from the library to use it as an aggregate id.
-
### DatePoint
With the `DatePoint` Normalizer, you can convert a `DatePoint` object to a string and back again.
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index e9cf1917..9eb870ca 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -37,7 +37,7 @@ parameters:
path: src/Normalizer/UidNormalizer.php
-
- message: '#^Method Fixtures\\DummyGuesser\:\:guess\(\) has parameter \$type with generic class Symfony\\Component\\TypeInfo\\Type\\ObjectType but does not specify its types\: T$#'
+ message: '#^Method Patchlevel\\EventSourcingBundle\\Tests\\Fixtures\\DummyGuesser\:\:guess\(\) has parameter \$type with generic class Symfony\\Component\\TypeInfo\\Type\\ObjectType but does not specify its types\: T$#'
identifier: missingType.generics
count: 1
path: tests/Fixtures/DummyGuesser.php
diff --git a/src/CommandBus/SymfonyCommandBus.php b/src/CommandBus/SymfonyCommandBus.php
index 958d0f7c..47cc2fe8 100644
--- a/src/CommandBus/SymfonyCommandBus.php
+++ b/src/CommandBus/SymfonyCommandBus.php
@@ -8,6 +8,8 @@
use Symfony\Component\Messenger\Exception\HandlerFailedException;
use Symfony\Component\Messenger\MessageBusInterface;
+use function array_values;
+
final class SymfonyCommandBus implements CommandBus
{
public function __construct(
@@ -20,7 +22,7 @@ public function dispatch(object $command): void
try {
$this->messageBus->dispatch($command);
} catch (HandlerFailedException $e) {
- throw $e->getWrappedExceptions(null, true)[0] ?? $e;
+ throw array_values($e->getWrappedExceptions(null, true))[0] ?? $e;
}
}
}
diff --git a/src/Resources/views/Collector/icon.svg b/src/Resources/views/Collector/icon.svg
index 469b780e..1279805b 100644
--- a/src/Resources/views/Collector/icon.svg
+++ b/src/Resources/views/Collector/icon.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/tests/Fixtures/DummyExtension.php b/tests/Fixtures/DummyExtension.php
index 89bd3420..d935d252 100644
--- a/tests/Fixtures/DummyExtension.php
+++ b/tests/Fixtures/DummyExtension.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Fixtures;
+namespace Patchlevel\EventSourcingBundle\Tests\Fixtures;
use Patchlevel\Hydrator\Extension;
use Patchlevel\Hydrator\StackHydratorBuilder;
diff --git a/tests/Fixtures/DummyGuesser.php b/tests/Fixtures/DummyGuesser.php
index 9760c810..26db1ffe 100644
--- a/tests/Fixtures/DummyGuesser.php
+++ b/tests/Fixtures/DummyGuesser.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Fixtures;
+namespace Patchlevel\EventSourcingBundle\Tests\Fixtures;
use Patchlevel\Hydrator\Guesser\Guesser;
use Patchlevel\Hydrator\Normalizer\Normalizer;
diff --git a/tests/Unit/PatchlevelEventSourcingBundleTest.php b/tests/Unit/PatchlevelEventSourcingBundleTest.php
index 2dcd00ec..1046a80d 100644
--- a/tests/Unit/PatchlevelEventSourcingBundleTest.php
+++ b/tests/Unit/PatchlevelEventSourcingBundleTest.php
@@ -13,8 +13,6 @@
use Doctrine\Migrations\Tools\Console\Command\MigrateCommand;
use Doctrine\Migrations\Tools\Console\Command\StatusCommand;
use Doctrine\Persistence\ManagerRegistry;
-use Fixtures\DummyExtension;
-use Fixtures\DummyGuesser;
use InvalidArgumentException;
use Patchlevel\EventSourcing\Attribute\Aggregate;
use Patchlevel\EventSourcing\Attribute\Event;
@@ -102,6 +100,8 @@
use Patchlevel\EventSourcingBundle\Tests\Fixtures\CreateProfile;
use Patchlevel\EventSourcingBundle\Tests\Fixtures\CustomHeader;
use Patchlevel\EventSourcingBundle\Tests\Fixtures\DummyArgumentResolver;
+use Patchlevel\EventSourcingBundle\Tests\Fixtures\DummyExtension;
+use Patchlevel\EventSourcingBundle\Tests\Fixtures\DummyGuesser;
use Patchlevel\EventSourcingBundle\Tests\Fixtures\Listener1;
use Patchlevel\EventSourcingBundle\Tests\Fixtures\Listener2;
use Patchlevel\EventSourcingBundle\Tests\Fixtures\Profile;