From 1c1a5fd2a5d768388b2ba59f693b9ba6eada3193 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 17:58:47 +0100 Subject: [PATCH 01/23] Add CI steps to create database. --- .github/workflows/ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5c0d8209..0ea973d39 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -341,3 +341,13 @@ jobs: - name: Run JS security checker run: yarn audit --groups dependencies + + mariadb: + name: mariadb + runs-on: ubuntu-latest + steps: + - uses: getong/mariadb-action@v1.11 + with: + mysql database: 'bewelcome' + mysql user: 'bewelcome' + mysql password: 'bewelcome' From f9e54dd9f43483efaa300aa8e3374441cddbf7d6 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 18:08:30 +0100 Subject: [PATCH 02/23] Create MariaDB and test database as part of the test workflow. --- .github/workflows/ci.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ea973d39..9d6157996 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,14 +76,22 @@ jobs: - name: Install project dependencies run: composer install --prefer-dist --no-progress --no-suggest --no-interaction --no-scripts + - name: Install MariaDB and create test database + uses: getong/mariadb-action@v1.11 + with: + mysql database: 'bewelcome' + mysql user: 'bewelcome' + mysql password: 'bewelcome' + run: bin/console test:database:create + - name: Run phpunit tests run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration # - name: Run Infection tests # run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 -# - name: Run Integration tests -# run: bin/phpunit --log-junit=build/logs/phpunit/integration.xml --colors=never --order-by=random --group=integration + - name: Run Integration tests + run: bin/phpunit --log-junit=build/logs/phpunit/integration.xml --colors=never --order-by=random --group=integration # - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # tag=v4.6.2 # if: ${{ always() }} @@ -342,12 +350,3 @@ jobs: - name: Run JS security checker run: yarn audit --groups dependencies - mariadb: - name: mariadb - runs-on: ubuntu-latest - steps: - - uses: getong/mariadb-action@v1.11 - with: - mysql database: 'bewelcome' - mysql user: 'bewelcome' - mysql password: 'bewelcome' From c46c4dbed1041e9c96092ceff22536f88690c75d Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 18:10:53 +0100 Subject: [PATCH 03/23] Update ci.yml --- .github/workflows/ci.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9d6157996..83d3c564f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,8 +48,8 @@ jobs: - name: Run phpcpd tests run: vendor/bin/phpcpd src --exclude=src/Entity --exclude=src/Repository - phpunit: - name: PHPUnit + tests: + name: Tests runs-on: ubuntu-latest steps: - name: Checkout @@ -76,12 +76,13 @@ jobs: - name: Install project dependencies run: composer install --prefer-dist --no-progress --no-suggest --no-interaction --no-scripts - - name: Install MariaDB and create test database + - name: Install MariaDB uses: getong/mariadb-action@v1.11 with: mysql database: 'bewelcome' mysql user: 'bewelcome' mysql password: 'bewelcome' + - name: Create test database run: bin/console test:database:create - name: Run phpunit tests @@ -350,3 +351,4 @@ jobs: - name: Run JS security checker run: yarn audit --groups dependencies + From 21990da775162220d422e2e3feca7e23935c91e4 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 18:15:08 +0100 Subject: [PATCH 04/23] Update .env.test --- .env.test | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.env.test b/.env.test index 4900ea2fd..495aff4d8 100644 --- a/.env.test +++ b/.env.test @@ -5,7 +5,7 @@ MANTICORE_HOST="127.0.0.1" MANTICORE_PORT="9308" DB_HOST="127.0.0.1" DB_PORT="3306" -DB_USER="root" -DB_PASS="" -DB_NAME="bewelcome_test" -DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}?serverVersion=10.11.2-MariaDB&charset=utf8mb4" \ No newline at end of file +DB_USER="bewelcome" +DB_PASS="bewelcome" +DB_NAME="bewelcome" +DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}?serverVersion=10.11.2-MariaDB&charset=utf8mb4" From 486f5bcd10743f005dd700987ae2797c98c7425c Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 18:15:52 +0100 Subject: [PATCH 05/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83d3c564f..bbeb8ca40 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,7 +83,7 @@ jobs: mysql user: 'bewelcome' mysql password: 'bewelcome' - name: Create test database - run: bin/console test:database:create + run: bin/console test:database:create --env=test - name: Run phpunit tests run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration @@ -352,3 +352,4 @@ jobs: run: yarn audit --groups dependencies + From c420ce77c8e694c7fe6263563c886b9336a8f303 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sun, 7 Dec 2025 18:28:33 +0100 Subject: [PATCH 06/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bbeb8ca40..004ff4d26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,7 @@ jobs: - name: Install MariaDB uses: getong/mariadb-action@v1.11 with: - mysql database: 'bewelcome' + mysql database: 'bewelcome_test' mysql user: 'bewelcome' mysql password: 'bewelcome' - name: Create test database @@ -353,3 +353,4 @@ jobs: + From 5dd06a00174857b340fbd809ebdf599d149ec21c Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 18:35:58 +0100 Subject: [PATCH 07/23] Install dependencies and run encore to create needed files for integration tests. --- .github/workflows/ci.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 004ff4d26..511d001f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,20 +76,24 @@ jobs: - name: Install project dependencies run: composer install --prefer-dist --no-progress --no-suggest --no-interaction --no-scripts + - name: Run phpunit tests + run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration + +# - name: Run Infection tests +# run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 + - name: Install MariaDB uses: getong/mariadb-action@v1.11 with: mysql database: 'bewelcome_test' mysql user: 'bewelcome' mysql password: 'bewelcome' + - name: Create test database run: bin/console test:database:create --env=test - - name: Run phpunit tests - run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration - -# - name: Run Infection tests -# run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 + - name: Install yarn dependencies and run webpack + run: yarn install --frozen-lock & yarn encore dev - name: Run Integration tests run: bin/phpunit --log-junit=build/logs/phpunit/integration.xml --colors=never --order-by=random --group=integration @@ -354,3 +358,4 @@ jobs: + From c1978ad83660f366888f847663422a5202780192 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 18:56:02 +0100 Subject: [PATCH 08/23] Update ci.yml --- .github/workflows/ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 511d001f7..277417e26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,8 +92,13 @@ jobs: - name: Create test database run: bin/console test:database:create --env=test + - name: Setup Yarn + uses: threeal/setup-yarn-action@v2.0.0 + with: + version: classic + - name: Install yarn dependencies and run webpack - run: yarn install --frozen-lock & yarn encore dev + run: yarn install --frozen-lock ; yarn encore dev - name: Run Integration tests run: bin/phpunit --log-junit=build/logs/phpunit/integration.xml --colors=never --order-by=random --group=integration @@ -359,3 +364,4 @@ jobs: + From 025ab3d0cc62a3d995d8802c0a7ad191d534bf25 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:00:23 +0100 Subject: [PATCH 09/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 277417e26..f6838fee7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,7 +95,7 @@ jobs: - name: Setup Yarn uses: threeal/setup-yarn-action@v2.0.0 with: - version: classic + version: latest - name: Install yarn dependencies and run webpack run: yarn install --frozen-lock ; yarn encore dev @@ -365,3 +365,4 @@ jobs: + From 50a3993d311576fd08313ab781f6783d1b71bb1c Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:30:14 +0100 Subject: [PATCH 10/23] Update ci.yml --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6838fee7..9c7814026 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -96,6 +96,7 @@ jobs: uses: threeal/setup-yarn-action@v2.0.0 with: version: latest + cache: false - name: Install yarn dependencies and run webpack run: yarn install --frozen-lock ; yarn encore dev @@ -366,3 +367,4 @@ jobs: + From 66c1a98a336eb9e286f3ba173bdb8c529bd1cc50 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:43:32 +0100 Subject: [PATCH 11/23] Updating ci.yml to use --- .github/workflows/ci.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c7814026..1d4a4783e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,8 +79,8 @@ jobs: - name: Run phpunit tests run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration -# - name: Run Infection tests -# run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 + - name: Run Infection tests + run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 - name: Install MariaDB uses: getong/mariadb-action@v1.11 @@ -104,11 +104,11 @@ jobs: - name: Run Integration tests run: bin/phpunit --log-junit=build/logs/phpunit/integration.xml --colors=never --order-by=random --group=integration -# - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # tag=v4.6.2 -# if: ${{ always() }} -# with: -# name: infection.log -# path: infection.log + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # tag=v4.6.2 + if: ${{ always() }} + with: + name: infection.log + path: infection.log phploc: name: PHPLoc @@ -125,7 +125,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -156,7 +156,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT: - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -217,7 +217,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -247,7 +247,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -277,7 +277,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -307,7 +307,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -341,7 +341,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 From 72e404914716b3132c763d815c223f735a037bea Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:44:30 +0100 Subject: [PATCH 12/23] Updating ci.yml to use --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d4a4783e..ac439958d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -156,7 +156,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT: + run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 From 848556d5dfc9f1b876c14824a66bf96fbc87f66a Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:48:29 +0100 Subject: [PATCH 13/23] Updating ci.yml to use $GITHUB_OUTPUT --- .github/workflows/ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac439958d..c8e0408d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "::set-output dir=$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -64,7 +64,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" + run: echo "::set-output dir=$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -125,7 +125,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -156,7 +156,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -187,7 +187,7 @@ jobs: # # - name: Get Composer Cache Directory # id: composer-cache -# run: echo "::set-output name=dir::$(composer config cache-files-dir)" +# run: echo "::set-output dir=$(composer config cache-files-dir)" # # - name: Cache dependencies # uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -217,7 +217,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -247,7 +247,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -277,7 +277,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -307,7 +307,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -341,7 +341,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "name=dir::$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 From 4897f081cfcce2dd11343d709e1d664dfa765fff Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:50:19 +0100 Subject: [PATCH 14/23] Updating ci.yml to use $GITHUB_OUTPUT --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8e0408d9..5112b3f07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output dir=$(composer config cache-files-dir)" + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 From 4cbfe0656439846f6ea4987a2badcf17b0bec75f Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:52:36 +0100 Subject: [PATCH 15/23] Updating ci.yml to use $GITHUB_OUTPUT --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5112b3f07..a782c04d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,7 +64,7 @@ jobs: - name: Get Composer Cache Directory id: composer-cache - run: echo "::set-output dir=$(composer config cache-files-dir)" + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 @@ -187,7 +187,7 @@ jobs: # # - name: Get Composer Cache Directory # id: composer-cache -# run: echo "::set-output dir=$(composer config cache-files-dir)" +# run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT # # - name: Cache dependencies # uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # tag=v4.2.4 From 3bef25826d9f96ec3375a378c545e77108358a97 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 19:56:19 +0100 Subject: [PATCH 16/23] Ignore SignupController for infection (mutating integration tests is meaningless). --- infection.json5.dist | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/infection.json5.dist b/infection.json5.dist index 70e88a274..aa44c1935 100644 --- a/infection.json5.dist +++ b/infection.json5.dist @@ -2,7 +2,10 @@ "source": { "directories": [ "src/Model" - ] + ], + "excludes": { + "src/Controller/SignupController" + } }, "timeout": 30, "logs": { From ca738166a464a0989c469668fb7adfbe064f54d5 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 20:06:27 +0100 Subject: [PATCH 17/23] Enabling infection run. --- .github/workflows/ci.yml | 2 +- Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a782c04d9..67c23fcca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration - name: Run Infection tests - run: vendor/bin/infection --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 + run: vendor/bin/infection --sjip-intial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 - name: Install MariaDB uses: getong/mariadb-action@v1.11 diff --git a/Makefile b/Makefile index febfd9637..6ba7cf4a9 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ int-test: "./bin/phpunit" --log-junit=build/logs/phpunit/junit.xml --colors=never --order-by=random --group=integration infection: phpunit - "./vendor/bin/infection" --coverage=build/logs/phpunit --min-covered-msi=85 --threads=30 + "./vendor/bin/infection" --skip-initial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 #behat: encore # bin/console doctrine:database:create --env=test --if-not-exists From df991813722c73de5f9aec4a9f92577fa90b2551 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 20:08:02 +0100 Subject: [PATCH 18/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67c23fcca..f5cd832ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration - name: Run Infection tests - run: vendor/bin/infection --sjip-intial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 + run: vendor/bin/infection --skip-intial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 - name: Install MariaDB uses: getong/mariadb-action@v1.11 @@ -368,3 +368,4 @@ jobs: + From c533c6645788cdd943024638182d2e27a3189fd7 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 20:09:10 +0100 Subject: [PATCH 19/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5cd832ed..a858d4c15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration - name: Run Infection tests - run: vendor/bin/infection --skip-intial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 + run: vendor/bin/infection --skip-initial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 - name: Install MariaDB uses: getong/mariadb-action@v1.11 @@ -369,3 +369,4 @@ jobs: + From 739d4201925bdea5e9634809fb70c9ad011f2658 Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 20:11:53 +0100 Subject: [PATCH 20/23] Update infection.json5.dist --- infection.json5.dist | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infection.json5.dist b/infection.json5.dist index aa44c1935..e54533397 100644 --- a/infection.json5.dist +++ b/infection.json5.dist @@ -3,9 +3,9 @@ "directories": [ "src/Model" ], - "excludes": { + "excludes": [ "src/Controller/SignupController" - } + ] }, "timeout": 30, "logs": { From 7003d91320d180e6dc13534bc5c3962833bf1a2a Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Mon, 8 Dec 2025 20:15:50 +0100 Subject: [PATCH 21/23] Update ci.yml --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a858d4c15..b465e8fcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: run: composer install --prefer-dist --no-progress --no-suggest --no-interaction --no-scripts - name: Run phpunit tests - run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/unit.xml --colors=never --order-by=random --exclude-group=integration + run: bin/phpunit --coverage-text --coverage-xml=build/logs/phpunit/coverage-xml --coverage-clover=build/logs/phpunit/clover.xml --log-junit=build/logs/phpunit/junit.xml --colors=never --order-by=random --exclude-group=integration - name: Run Infection tests run: vendor/bin/infection --skip-initial-tests --coverage=build/logs/phpunit --min-covered-msi=80 --threads=30 @@ -370,3 +370,4 @@ jobs: + From 4d486b004919f533ca1e8dfd42570e5746e994fd Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Sat, 20 Dec 2025 11:11:02 +0100 Subject: [PATCH 22/23] Bump versions. --- .gitignore | 2 + .php-version | 1 - composer.json | 8 +- composer.lock | 695 ++++++++------- config/reference.php | 2000 ------------------------------------------ yarn.lock | 255 +++--- 6 files changed, 497 insertions(+), 2464 deletions(-) delete mode 100644 .php-version delete mode 100644 config/reference.php diff --git a/.gitignore b/.gitignore index 1c6fe3180..eac97c2c5 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Here is a sample: https://gist.github.com/vincentchalamon/d5defad563ed49d9306a4aa57dfd4498 errors.log rox_local.ini +.php-version *.cache.ini .php_cs.cache .php-cs-fixer.cache @@ -59,6 +60,7 @@ allCountries.zip /public/bundles/ /var/ /vendor/ +/config/reference.php ###< symfony/framework-bundle ### ###> symfony/webpack-encore-bundle ### /node_modules/ diff --git a/.php-version b/.php-version deleted file mode 100644 index cf022018d..000000000 --- a/.php-version +++ /dev/null @@ -1 +0,0 @@ -8.3 diff --git a/composer.json b/composer.json index a03752920..d7922fd1a 100644 --- a/composer.json +++ b/composer.json @@ -89,9 +89,9 @@ "alexandresalome/mailcatcher": "^1.3", "behat/behat": "^3.7", "cmgmyr/phploc": "^8.0", - "dama/doctrine-test-bundle": "8.*", - "doctrine/data-fixtures": "2.*", - "fakerphp/faker": "^v1.14.1", + "dama/doctrine-test-bundle": "^8.0", + "doctrine/data-fixtures": "^2.0", + "fakerphp/faker": "^v1.14", "friends-of-behat/mink": "^1.8", "friends-of-behat/mink-browserkit-driver": "^1.4", "friends-of-behat/mink-extension": "^2.4", @@ -152,7 +152,7 @@ "config": { "sort-packages": true, "platform": { - "php": "8.5" + "php": "8.4" }, "allow-plugins": { "infection/extension-installer": true, diff --git a/composer.lock b/composer.lock index a0f8dd0b5..daaa8cd38 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ac8e98825eeee5eaa574dfd9c0748582", + "content-hash": "20620215c2aa77f1e985232120a67091", "packages": [ { "name": "amphp/amp", @@ -1407,16 +1407,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.9", + "version": "1.5.10", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54" + "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/1905981ee626e6f852448b7aaa978f8666c5bc54", - "reference": "1905981ee626e6f852448b7aaa978f8666c5bc54", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/961a5e4056dd2e4a2eedcac7576075947c28bf63", + "reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63", "shasum": "" }, "require": { @@ -1463,7 +1463,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.9" + "source": "https://github.com/composer/ca-bundle/tree/1.5.10" }, "funding": [ { @@ -1475,7 +1475,7 @@ "type": "github" } ], - "time": "2025-11-06T11:46:17+00:00" + "time": "2025-12-08T15:06:51+00:00" }, { "name": "daverandom/libdns", @@ -2395,16 +2395,16 @@ }, { "name": "doctrine/orm", - "version": "3.5.8", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "78dd074266e8b47a83bcf60ab5fe06c91a639168" + "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/78dd074266e8b47a83bcf60ab5fe06c91a639168", - "reference": "78dd074266e8b47a83bcf60ab5fe06c91a639168", + "url": "https://api.github.com/repos/doctrine/orm/zipball/d4e9276e79602b1eb4c4029c6c999b0d93478e2f", + "reference": "d4e9276e79602b1eb4c4029c6c999b0d93478e2f", "shasum": "" }, "require": { @@ -2477,9 +2477,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/3.5.8" + "source": "https://github.com/doctrine/orm/tree/3.6.0" }, - "time": "2025-11-29T23:11:02+00:00" + "time": "2025-12-19T20:36:14+00:00" }, { "name": "doctrine/persistence", @@ -2698,21 +2698,21 @@ }, { "name": "eluceo/ical", - "version": "2.14.0", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/markuspoerschke/iCal.git", - "reference": "3123533f7ff0af015da1d788476204f936d18135" + "reference": "1324190463b502f9aaad64333b737071c0107ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/markuspoerschke/iCal/zipball/3123533f7ff0af015da1d788476204f936d18135", - "reference": "3123533f7ff0af015da1d788476204f936d18135", + "url": "https://api.github.com/repos/markuspoerschke/iCal/zipball/1324190463b502f9aaad64333b737071c0107ab1", + "reference": "1324190463b502f9aaad64333b737071c0107ab1", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.3.0 || ~8.4.0", "symfony/deprecation-contracts": "^2.1 || ^3.0" }, "conflict": { @@ -2720,11 +2720,11 @@ }, "require-dev": { "ergebnis/composer-normalize": "^2.23.1", - "friendsofphp/php-cs-fixer": "^3.4", - "infection/infection": "^0.23 || ^0.26 || ^0.27", + "friendsofphp/php-cs-fixer": "^3.75", + "infection/infection": "^0.27 || ^0.29", "phpmd/phpmd": "^2.13", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^4.8 || ^5.0" + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.0 || ^6.0" }, "type": "library", "autoload": { @@ -2758,7 +2758,7 @@ "issues": "https://github.com/markuspoerschke/iCal/issues", "source": "https://github.com/markuspoerschke/iCal" }, - "time": "2024-07-11T22:33:13+00:00" + "time": "2025-08-15T18:19:43+00:00" }, { "name": "exercise/htmlpurifier-bundle", @@ -2947,16 +2947,16 @@ }, { "name": "foolz/sphinxql-query-builder", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/FoolCode/SphinxQL-Query-Builder.git", - "reference": "6c1b1b44c941989e39034a7b6a3f987e938cca7a" + "reference": "b1eb01cd2e2cae2c451fb60088221d8ce8d284c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FoolCode/SphinxQL-Query-Builder/zipball/6c1b1b44c941989e39034a7b6a3f987e938cca7a", - "reference": "6c1b1b44c941989e39034a7b6a3f987e938cca7a", + "url": "https://api.github.com/repos/FoolCode/SphinxQL-Query-Builder/zipball/b1eb01cd2e2cae2c451fb60088221d8ce8d284c4", + "reference": "b1eb01cd2e2cae2c451fb60088221d8ce8d284c4", "shasum": "" }, "require": { @@ -2998,9 +2998,9 @@ "email": "support@foolz.us", "irc": "irc://irc.irchighway.net/fooldriver", "issues": "https://github.com/FoolCode/SphinxQL-Query-Builder/issues", - "source": "https://github.com/FoolCode/SphinxQL-Query-Builder/tree/3.0.2" + "source": "https://github.com/FoolCode/SphinxQL-Query-Builder/tree/3.0.3" }, - "time": "2022-02-26T00:40:55+00:00" + "time": "2025-12-18T18:49:34+00:00" }, { "name": "friendsofphp/proxy-manager-lts", @@ -3086,16 +3086,16 @@ }, { "name": "gedmo/doctrine-extensions", - "version": "v3.21.0", + "version": "v3.22.0", "source": { "type": "git", "url": "https://github.com/doctrine-extensions/DoctrineExtensions.git", - "reference": "eb53dfcb2b592327b76ac5226fbb003d32aea37e" + "reference": "e4350ee2daa7f34aa5806f2e1ea11fa4b5800e57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/eb53dfcb2b592327b76ac5226fbb003d32aea37e", - "reference": "eb53dfcb2b592327b76ac5226fbb003d32aea37e", + "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/e4350ee2daa7f34aa5806f2e1ea11fa4b5800e57", + "reference": "e4350ee2daa7f34aa5806f2e1ea11fa4b5800e57", "shasum": "" }, "require": { @@ -3106,8 +3106,8 @@ "php": "^7.4 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "psr/clock": "^1", - "symfony/cache": "^5.4 || ^6.0 || ^7.0", - "symfony/string": "^5.4 || ^6.0 || ^7.0" + "symfony/cache": "^5.4 || ^6.4 || ^7.3 || ^8.0", + "symfony/string": "^5.4 || ^6.4 || ^7.3 || ^8.0" }, "conflict": { "behat/transliterator": "<1.2 || >=2.0", @@ -3123,21 +3123,21 @@ "doctrine/cache": "^1.11 || ^2.0", "doctrine/common": "^2.13 || ^3.0", "doctrine/dbal": "^3.7 || ^4.0", - "doctrine/doctrine-bundle": "^2.3", + "doctrine/doctrine-bundle": "^2.3 || ^3.0", "doctrine/mongodb-odm": "^2.3", "doctrine/orm": "^2.20 || ^3.3", - "friendsofphp/php-cs-fixer": "^3.70", + "friendsofphp/php-cs-fixer": "^3.89", "nesbot/carbon": "^2.71 || ^3.0", - "phpstan/phpstan": "^2.1.1", + "phpstan/phpstan": "^2.1.31", "phpstan/phpstan-doctrine": "^2.0.1", "phpstan/phpstan-phpunit": "^2.0.3", "phpunit/phpunit": "^9.6", - "rector/rector": "^2.0.6", - "symfony/console": "^5.4 || ^6.0 || ^7.0", - "symfony/doctrine-bridge": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.4 || ^7.0", - "symfony/uid": "^5.4 || ^6.0 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + "rector/rector": "^2.2.6", + "symfony/console": "^5.4 || ^6.4 || ^7.3 || ^8.0", + "symfony/doctrine-bridge": "^5.4 || ^6.4 || ^7.3 || ^8.0", + "symfony/phpunit-bridge": "^6.4 || ^7.3 || ^8.0", + "symfony/uid": "^5.4 || ^6.4 || ^7.3 || ^8.0", + "symfony/yaml": "^5.4 || ^6.4 || ^7.3 || ^8.0" }, "suggest": { "doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM", @@ -3194,7 +3194,7 @@ "support": { "docs": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/main/doc", "issues": "https://github.com/doctrine-extensions/DoctrineExtensions/issues", - "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.21.0" + "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.22.0" }, "funding": [ { @@ -3214,7 +3214,7 @@ "type": "github" } ], - "time": "2025-09-22T17:04:34+00:00" + "time": "2025-12-13T19:37:35+00:00" }, { "name": "gregwar/captcha", @@ -3563,16 +3563,16 @@ }, { "name": "intervention/image", - "version": "3.11.5", + "version": "3.11.6", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "76e96d3809d53dd8d597005634a733d4b2f6c2c3" + "reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/76e96d3809d53dd8d597005634a733d4b2f6c2c3", - "reference": "76e96d3809d53dd8d597005634a733d4b2f6c2c3", + "url": "https://api.github.com/repos/Intervention/image/zipball/5f6d27d9fd56312c47f347929e7ac15345c605a1", + "reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1", "shasum": "" }, "require": { @@ -3619,7 +3619,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.5" + "source": "https://github.com/Intervention/image/tree/3.11.6" }, "funding": [ { @@ -3635,7 +3635,7 @@ "type": "ko_fi" } ], - "time": "2025-11-29T11:18:34+00:00" + "time": "2025-12-17T13:38:29+00:00" }, { "name": "jfcherng/php-levenshtein-distance", @@ -4257,16 +4257,16 @@ }, { "name": "laminas/laminas-validator", - "version": "3.11.0", + "version": "3.12.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-validator.git", - "reference": "6450abcaba92711e36bb4cab5630b7e22e7028a8" + "reference": "eb972023dfdad6ba87482ccaa3c9e937686ea759" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/6450abcaba92711e36bb4cab5630b7e22e7028a8", - "reference": "6450abcaba92711e36bb4cab5630b7e22e7028a8", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/eb972023dfdad6ba87482ccaa3c9e937686ea759", + "reference": "eb972023dfdad6ba87482ccaa3c9e937686ea759", "shasum": "" }, "require": { @@ -4286,9 +4286,9 @@ "require-dev": { "laminas/laminas-coding-standard": "^3.1.0", "laminas/laminas-diactoros": "^3.8.0", - "phpunit/phpunit": "^10.5.58", + "phpunit/phpunit": "^10.5.60", "psalm/plugin-phpunit": "^0.19.5", - "vimeo/psalm": "^6.13.1" + "vimeo/psalm": "^6.14.2" }, "suggest": { "laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages", @@ -4330,7 +4330,7 @@ "type": "community_bridge" } ], - "time": "2025-11-15T22:03:14+00:00" + "time": "2025-12-15T10:21:07+00:00" }, { "name": "league/html-to-markdown", @@ -4420,20 +4420,20 @@ }, { "name": "league/uri", - "version": "7.6.0", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "f625804987a0a9112d954f9209d91fec52182344" + "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", - "reference": "f625804987a0a9112d954f9209d91fec52182344", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/8d587cddee53490f9b82bf203d3a9aa7ea4f9807", + "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.6", + "league/uri-interfaces": "^7.7", "php": "^8.1", "psr/http-factory": "^1" }, @@ -4506,7 +4506,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.6.0" + "source": "https://github.com/thephpleague/uri/tree/7.7.0" }, "funding": [ { @@ -4514,24 +4514,24 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2025-12-07T16:02:06+00:00" }, { "name": "league/uri-components", - "version": "7.6.0", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-components.git", - "reference": "ffa1215dbee72ee4b7bc08d983d25293812456c2" + "reference": "005f8693ce8c1f16f80e88a05cbf08da04c1c374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/ffa1215dbee72ee4b7bc08d983d25293812456c2", - "reference": "ffa1215dbee72ee4b7bc08d983d25293812456c2", + "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/005f8693ce8c1f16f80e88a05cbf08da04c1c374", + "reference": "005f8693ce8c1f16f80e88a05cbf08da04c1c374", "shasum": "" }, "require": { - "league/uri": "^7.6", + "league/uri": "^7.7", "php": "^8.1" }, "suggest": { @@ -4591,7 +4591,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-components/tree/7.6.0" + "source": "https://github.com/thephpleague/uri-components/tree/7.7.0" }, "funding": [ { @@ -4599,20 +4599,20 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2025-12-07T16:02:56+00:00" }, { "name": "league/uri-interfaces", - "version": "7.6.0", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" + "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/62ccc1a0435e1c54e10ee6022df28d6c04c2946c", + "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c", "shasum": "" }, "require": { @@ -4675,7 +4675,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.7.0" }, "funding": [ { @@ -4683,7 +4683,7 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2025-12-07T16:03:21+00:00" }, { "name": "lorenzo/pinky", @@ -5040,41 +5040,40 @@ }, { "name": "nelmio/alice", - "version": "3.14.2", + "version": "3.16.1", "source": { "type": "git", "url": "https://github.com/nelmio/alice.git", - "reference": "f353866956ac4760514e24e8d51902d261d50489" + "reference": "56dd770a6ba7f43cea91375f4b7d1b4bed80d6b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nelmio/alice/zipball/f353866956ac4760514e24e8d51902d261d50489", - "reference": "f353866956ac4760514e24e8d51902d261d50489", + "url": "https://api.github.com/repos/nelmio/alice/zipball/56dd770a6ba7f43cea91375f4b7d1b4bed80d6b9", + "reference": "56dd770a6ba7f43cea91375f4b7d1b4bed80d6b9", "shasum": "" }, "require": { "fakerphp/faker": "^1.10", "myclabs/deep-copy": "^1.10", - "php": "^8.1", + "php": "^8.2", "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0", "symfony/polyfill-php84": "^1.31", - "symfony/property-access": "^6.4 || ^7.0", - "symfony/yaml": "^6.0 || ^7.0" + "symfony/property-access": "^7.4 || ^8.0", + "symfony/yaml": "^7.4 || ^8.0" }, "conflict": { - "symfony/framework-bundle": "<6.4.0" + "symfony/framework-bundle": "<7.4.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "phpspec/prophecy": "^1.6", "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.3", - "symfony/config": "^6.4 || ^7.0", - "symfony/dependency-injection": "^6.4 || ^7.0", - "symfony/finder": "^6.4 || ^7.0", - "symfony/http-kernel": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^6.4 || ^7.0", - "symfony/var-dumper": "^6.4 || ^7.0" + "phpunit/phpunit": "^11", + "symfony/config": "^7.4 || ^8.0", + "symfony/dependency-injection": "^7.4 || ^8.0", + "symfony/finder": "^7.4 || ^8.0", + "symfony/http-kernel": "^7.4 || ^8.0", + "symfony/var-dumper": "^7.4 || ^8.0" }, "suggest": { "theofidry/alice-data-fixtures": "Wrapper for Alice to provide a persistence layer." @@ -5124,7 +5123,7 @@ ], "support": { "issues": "https://github.com/nelmio/alice/issues", - "source": "https://github.com/nelmio/alice/tree/3.14.2" + "source": "https://github.com/nelmio/alice/tree/3.16.1" }, "funding": [ { @@ -5132,7 +5131,7 @@ "type": "github" } ], - "time": "2025-02-26T09:01:07+00:00" + "time": "2025-12-17T08:56:35+00:00" }, { "name": "nelmio/cors-bundle", @@ -6210,20 +6209,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.1", + "version": "4.9.2", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + "reference": "8429c78ca35a09f27565311b98101e2826affde0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", + "reference": "8429c78ca35a09f27565311b98101e2826affde0", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -6282,9 +6281,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.1" + "source": "https://github.com/ramsey/uuid/tree/4.9.2" }, - "time": "2025-09-04T20:59:21+00:00" + "time": "2025-12-14T04:43:48+00:00" }, { "name": "ramsey/uuid-doctrine", @@ -6769,26 +6768,26 @@ }, { "name": "stof/doctrine-extensions-bundle", - "version": "v1.14.0", + "version": "v1.15.2", "source": { "type": "git", "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git", - "reference": "bdf3eb10baeb497ac5985b8f78a6cf55862c2662" + "reference": "4f7b4b4230b1c872e77fdca90f02905da7e050f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/bdf3eb10baeb497ac5985b8f78a6cf55862c2662", - "reference": "bdf3eb10baeb497ac5985b8f78a6cf55862c2662", + "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/4f7b4b4230b1c872e77fdca90f02905da7e050f5", + "reference": "4f7b4b4230b1c872e77fdca90f02905da7e050f5", "shasum": "" }, "require": { - "gedmo/doctrine-extensions": "^3.20.0", + "gedmo/doctrine-extensions": "^3.21.0", "php": "^8.1", - "symfony/cache": "^6.4 || ^7.0", - "symfony/config": "^6.4 || ^7.0", - "symfony/dependency-injection": "^6.4 || ^7.0", - "symfony/event-dispatcher": "^6.4 || ^7.0", - "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/cache": "^6.4 || ^7.0 || ^8.0", + "symfony/config": "^6.4 || ^7.0 || ^8.0", + "symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^6.4 || ^7.0 || ^8.0", + "symfony/http-kernel": "^6.4 || ^7.0 || ^8.0", "symfony/translation-contracts": "^2.5 || ^3.5" }, "require-dev": { @@ -6797,9 +6796,10 @@ "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", "phpstan/phpstan-symfony": "^2.0", - "symfony/mime": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^v6.4.1 || ^7.0.1", - "symfony/security-core": "^6.4 || ^7.0" + "phpunit/phpunit": "^9.6.31", + "symfony/mime": "^6.4 || ^7.0 || ^8.0", + "symfony/phpunit-bridge": "^v6.4.1 || ^7.0.1 || ^8.0", + "symfony/security-core": "^6.4 || ^7.0 || ^8.0" }, "suggest": { "doctrine/doctrine-bundle": "to use the ORM extensions", @@ -6844,9 +6844,9 @@ ], "support": { "issues": "https://github.com/stof/StofDoctrineExtensionsBundle/issues", - "source": "https://github.com/stof/StofDoctrineExtensionsBundle/tree/v1.14.0" + "source": "https://github.com/stof/StofDoctrineExtensionsBundle/tree/v1.15.2" }, - "time": "2025-05-01T08:00:32+00:00" + "time": "2025-12-18T17:03:44+00:00" }, { "name": "symfony/apache-pack", @@ -6949,16 +6949,16 @@ }, { "name": "symfony/cache", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "a7a1325a5de2e54ddb45fda002ff528162e48293" + "reference": "21e0755783bbbab58f2bb6a7a57896d21d27a366" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/a7a1325a5de2e54ddb45fda002ff528162e48293", - "reference": "a7a1325a5de2e54ddb45fda002ff528162e48293", + "url": "https://api.github.com/repos/symfony/cache/zipball/21e0755783bbbab58f2bb6a7a57896d21d27a366", + "reference": "21e0755783bbbab58f2bb6a7a57896d21d27a366", "shasum": "" }, "require": { @@ -7029,7 +7029,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.4.0" + "source": "https://github.com/symfony/cache/tree/v7.4.1" }, "funding": [ { @@ -7049,7 +7049,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:14:42+00:00" + "time": "2025-12-04T18:11:45+00:00" }, { "name": "symfony/cache-contracts", @@ -7207,16 +7207,16 @@ }, { "name": "symfony/config", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f76c74e93bce2b9285f2dad7fbd06fa8182a7a41" + "reference": "2c323304c354a43a48b61c5fa760fc4ed60ce495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f76c74e93bce2b9285f2dad7fbd06fa8182a7a41", - "reference": "f76c74e93bce2b9285f2dad7fbd06fa8182a7a41", + "url": "https://api.github.com/repos/symfony/config/zipball/2c323304c354a43a48b61c5fa760fc4ed60ce495", + "reference": "2c323304c354a43a48b61c5fa760fc4ed60ce495", "shasum": "" }, "require": { @@ -7262,7 +7262,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.4.0" + "source": "https://github.com/symfony/config/tree/v7.4.1" }, "funding": [ { @@ -7282,20 +7282,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T07:52:08+00:00" }, { "name": "symfony/console", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "url": "https://api.github.com/repos/symfony/console/zipball/6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", "shasum": "" }, "require": { @@ -7360,7 +7360,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.0" + "source": "https://github.com/symfony/console/tree/v7.4.1" }, "funding": [ { @@ -7380,7 +7380,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T15:23:39+00:00" }, { "name": "symfony/css-selector", @@ -7528,16 +7528,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v7.4.0", + "version": "v7.4.2", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "3972ca7bbd649467b21a54870721b9e9f3652f9b" + "reference": "baf614f7c15b30ba6762d4b1ddabdf83dbf0d29b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3972ca7bbd649467b21a54870721b9e9f3652f9b", - "reference": "3972ca7bbd649467b21a54870721b9e9f3652f9b", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/baf614f7c15b30ba6762d4b1ddabdf83dbf0d29b", + "reference": "baf614f7c15b30ba6762d4b1ddabdf83dbf0d29b", "shasum": "" }, "require": { @@ -7588,7 +7588,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/v7.4.0" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.2" }, "funding": [ { @@ -7608,7 +7608,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-08T06:57:04+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7679,16 +7679,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "7b511891a81ca14e993b6c88fd35d6bf656085f7" + "reference": "7acd7ce1b71601b25d698bc2da6b52e43f3c72b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/7b511891a81ca14e993b6c88fd35d6bf656085f7", - "reference": "7b511891a81ca14e993b6c88fd35d6bf656085f7", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/7acd7ce1b71601b25d698bc2da6b52e43f3c72b3", + "reference": "7acd7ce1b71601b25d698bc2da6b52e43f3c72b3", "shasum": "" }, "require": { @@ -7768,7 +7768,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v7.4.0" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.4.1" }, "funding": [ { @@ -7788,7 +7788,7 @@ "type": "tidelift" } ], - "time": "2025-11-04T03:05:49+00:00" + "time": "2025-12-04T17:15:58+00:00" }, { "name": "symfony/dotenv", @@ -8392,16 +8392,16 @@ }, { "name": "symfony/form", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "00b8d61709b323749aef317950abd276f309597b" + "reference": "04984c79b08c70dc106498fc250917060d88aee2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/00b8d61709b323749aef317950abd276f309597b", - "reference": "00b8d61709b323749aef317950abd276f309597b", + "url": "https://api.github.com/repos/symfony/form/zipball/04984c79b08c70dc106498fc250917060d88aee2", + "reference": "04984c79b08c70dc106498fc250917060d88aee2", "shasum": "" }, "require": { @@ -8471,7 +8471,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v7.4.0" + "source": "https://github.com/symfony/form/tree/v7.4.1" }, "funding": [ { @@ -8491,20 +8491,20 @@ "type": "tidelift" } ], - "time": "2025-11-20T12:20:24+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "3c62a3437267ac55bcd40175689c74772250e943" + "reference": "2fa3b3ad6ed75ce0cc8cad8a5027b4f25b990bc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3c62a3437267ac55bcd40175689c74772250e943", - "reference": "3c62a3437267ac55bcd40175689c74772250e943", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/2fa3b3ad6ed75ce0cc8cad8a5027b4f25b990bc3", + "reference": "2fa3b3ad6ed75ce0cc8cad8a5027b4f25b990bc3", "shasum": "" }, "require": { @@ -8629,7 +8629,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/v7.4.0" + "source": "https://github.com/symfony/framework-bundle/tree/v7.4.1" }, "funding": [ { @@ -8649,20 +8649,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/http-client", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "ee5e0e0139ab506f6063a230e631bed677c650a4" + "reference": "26cc224ea7103dda90e9694d9e139a389092d007" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/ee5e0e0139ab506f6063a230e631bed677c650a4", - "reference": "ee5e0e0139ab506f6063a230e631bed677c650a4", + "url": "https://api.github.com/repos/symfony/http-client/zipball/26cc224ea7103dda90e9694d9e139a389092d007", + "reference": "26cc224ea7103dda90e9694d9e139a389092d007", "shasum": "" }, "require": { @@ -8730,7 +8730,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.4.0" + "source": "https://github.com/symfony/http-client/tree/v7.4.1" }, "funding": [ { @@ -8750,7 +8750,7 @@ "type": "tidelift" } ], - "time": "2025-11-20T12:32:50+00:00" + "time": "2025-12-04T21:12:57+00:00" }, { "name": "symfony/http-client-contracts", @@ -8832,16 +8832,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b" + "reference": "bd1af1e425811d6f077db240c3a588bdb405cd27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/bd1af1e425811d6f077db240c3a588bdb405cd27", + "reference": "bd1af1e425811d6f077db240c3a588bdb405cd27", "shasum": "" }, "require": { @@ -8890,7 +8890,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.1" }, "funding": [ { @@ -8910,20 +8910,20 @@ "type": "tidelift" } ], - "time": "2025-11-13T08:49:24+00:00" + "time": "2025-12-07T11:13:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.0", + "version": "v7.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7348193cd384495a755554382e4526f27c456085" + "reference": "f6e6f0a5fa8763f75a504b930163785fb6dd055f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", - "reference": "7348193cd384495a755554382e4526f27c456085", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6e6f0a5fa8763f75a504b930163785fb6dd055f", + "reference": "f6e6f0a5fa8763f75a504b930163785fb6dd055f", "shasum": "" }, "require": { @@ -9009,7 +9009,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/v7.4.0" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.2" }, "funding": [ { @@ -9029,7 +9029,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:38:24+00:00" + "time": "2025-12-08T07:43:37+00:00" }, { "name": "symfony/intl", @@ -9379,16 +9379,16 @@ }, { "name": "symfony/monolog-bundle", - "version": "v3.11.0", + "version": "v3.11.1", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "e12eb92655b234cd50c21cda648088847a7ec777" + "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e12eb92655b234cd50c21cda648088847a7ec777", - "reference": "e12eb92655b234cd50c21cda648088847a7ec777", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/0e675a6e08f791ef960dc9c7e392787111a3f0c1", + "reference": "0e675a6e08f791ef960dc9c7e392787111a3f0c1", "shasum": "" }, "require": { @@ -9435,7 +9435,7 @@ ], "support": { "issues": "https://github.com/symfony/monolog-bundle/issues", - "source": "https://github.com/symfony/monolog-bundle/tree/v3.11.0" + "source": "https://github.com/symfony/monolog-bundle/tree/v3.11.1" }, "funding": [ { @@ -9455,7 +9455,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T09:16:19+00:00" + "time": "2025-12-08T07:58:26+00:00" }, { "name": "symfony/options-resolver", @@ -10437,23 +10437,23 @@ }, { "name": "symfony/property-info", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "c3c686e3d3a33a99f6967e69d6d5832acb7c25a1" + "reference": "912aafe70bee5cfd09fec5916fe35b83f04ae6ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/c3c686e3d3a33a99f6967e69d6d5832acb7c25a1", - "reference": "c3c686e3d3a33a99f6967e69d6d5832acb7c25a1", + "url": "https://api.github.com/repos/symfony/property-info/zipball/912aafe70bee5cfd09fec5916fe35b83f04ae6ae", + "reference": "912aafe70bee5cfd09fec5916fe35b83f04ae6ae", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/string": "^6.4|^7.0|^8.0", - "symfony/type-info": "^7.3.5|^8.0" + "symfony/type-info": "~7.3.8|^7.4.1|^8.0.1" }, "conflict": { "phpdocumentor/reflection-docblock": "<5.2", @@ -10503,7 +10503,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.4.0" + "source": "https://github.com/symfony/property-info/tree/v7.4.1" }, "funding": [ { @@ -10523,7 +10523,7 @@ "type": "tidelift" } ], - "time": "2025-11-13T08:38:49+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/routing", @@ -10612,16 +10612,16 @@ }, { "name": "symfony/runtime", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "e3dd6c0f46a6810b3245726e8452cee45754e628" + "reference": "876f902a6cb6b26c003de244188c06b2ba1c172f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/e3dd6c0f46a6810b3245726e8452cee45754e628", - "reference": "e3dd6c0f46a6810b3245726e8452cee45754e628", + "url": "https://api.github.com/repos/symfony/runtime/zipball/876f902a6cb6b26c003de244188c06b2ba1c172f", + "reference": "876f902a6cb6b26c003de244188c06b2ba1c172f", "shasum": "" }, "require": { @@ -10671,7 +10671,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v7.4.0" + "source": "https://github.com/symfony/runtime/tree/v7.4.1" }, "funding": [ { @@ -10691,7 +10691,7 @@ "type": "tidelift" } ], - "time": "2025-11-04T03:05:49+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/security-bundle", @@ -10972,16 +10972,16 @@ }, { "name": "symfony/security-http", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "92f9cc6494f3d29042ac35c2ee5209191bbbb781" + "reference": "46a4432ad2fab65735216d113e18f1f9eb6d28ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/92f9cc6494f3d29042ac35c2ee5209191bbbb781", - "reference": "92f9cc6494f3d29042ac35c2ee5209191bbbb781", + "url": "https://api.github.com/repos/symfony/security-http/zipball/46a4432ad2fab65735216d113e18f1f9eb6d28ea", + "reference": "46a4432ad2fab65735216d113e18f1f9eb6d28ea", "shasum": "" }, "require": { @@ -11040,7 +11040,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v7.4.0" + "source": "https://github.com/symfony/security-http/tree/v7.4.1" }, "funding": [ { @@ -11060,7 +11060,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-12-05T08:41:26+00:00" }, { "name": "symfony/service-contracts", @@ -11490,16 +11490,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "e96998da928007554b8b8c02e677861877daced9" + "reference": "9103559ef3e9f06708d8bff6810f6335b8f1eee8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/e96998da928007554b8b8c02e677861877daced9", - "reference": "e96998da928007554b8b8c02e677861877daced9", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9103559ef3e9f06708d8bff6810f6335b8f1eee8", + "reference": "9103559ef3e9f06708d8bff6810f6335b8f1eee8", "shasum": "" }, "require": { @@ -11531,7 +11531,7 @@ "symfony/emoji": "^7.1|^8.0", "symfony/expression-language": "^6.4|^7.0|^8.0", "symfony/finder": "^6.4|^7.0|^8.0", - "symfony/form": "^6.4.20|^7.2.5|^8.0", + "symfony/form": "^6.4.30|~7.3.8|^7.4.1|^8.0.1", "symfony/html-sanitizer": "^6.4|^7.0|^8.0", "symfony/http-foundation": "^7.3|^8.0", "symfony/http-kernel": "^6.4|^7.0|^8.0", @@ -11581,7 +11581,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.4.0" + "source": "https://github.com/symfony/twig-bridge/tree/v7.4.1" }, "funding": [ { @@ -11601,7 +11601,7 @@ "type": "tidelift" } ], - "time": "2025-11-05T14:29:59+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/twig-bundle", @@ -11694,16 +11694,16 @@ }, { "name": "symfony/type-info", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "7f9743e921abcce92a03fc693530209c59e73076" + "reference": "ac5ab66b21c758df71b7210cf1033d1ac807f202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/7f9743e921abcce92a03fc693530209c59e73076", - "reference": "7f9743e921abcce92a03fc693530209c59e73076", + "url": "https://api.github.com/repos/symfony/type-info/zipball/ac5ab66b21c758df71b7210cf1033d1ac807f202", + "reference": "ac5ab66b21c758df71b7210cf1033d1ac807f202", "shasum": "" }, "require": { @@ -11753,7 +11753,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.4.0" + "source": "https://github.com/symfony/type-info/tree/v7.4.1" }, "funding": [ { @@ -11773,20 +11773,20 @@ "type": "tidelift" } ], - "time": "2025-11-07T09:36:46+00:00" + "time": "2025-12-05T14:04:53+00:00" }, { "name": "symfony/validator", - "version": "v7.4.0", + "version": "v7.4.2", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "829d4acbecc6a9c097ca9cb118d7f96f46d33da9" + "reference": "569b71d1243ccc58e8f1d21e279669239e78f60d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/829d4acbecc6a9c097ca9cb118d7f96f46d33da9", - "reference": "829d4acbecc6a9c097ca9cb118d7f96f46d33da9", + "url": "https://api.github.com/repos/symfony/validator/zipball/569b71d1243ccc58e8f1d21e279669239e78f60d", + "reference": "569b71d1243ccc58e8f1d21e279669239e78f60d", "shasum": "" }, "require": { @@ -11857,7 +11857,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.4.0" + "source": "https://github.com/symfony/validator/tree/v7.4.2" }, "funding": [ { @@ -11877,7 +11877,7 @@ "type": "tidelift" } ], - "time": "2025-11-18T13:23:20+00:00" + "time": "2025-12-07T17:35:40+00:00" }, { "name": "symfony/var-dumper", @@ -12302,16 +12302,16 @@ }, { "name": "symfony/yaml", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810" + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6c84a4b55aee4cd02034d1c528e83f69ddf63810", - "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810", + "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", + "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", "shasum": "" }, "require": { @@ -12354,7 +12354,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.0" + "source": "https://github.com/symfony/yaml/tree/v7.4.1" }, "funding": [ { @@ -12374,20 +12374,20 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:14:42+00:00" + "time": "2025-12-04T18:11:45+00:00" }, { "name": "theofidry/alice-data-fixtures", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/theofidry/AliceDataFixtures.git", - "reference": "2098f47253571fab4bce13f75cd96da9ff5139ab" + "reference": "e18232e62904b043044bed919b9915e06944abc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/AliceDataFixtures/zipball/2098f47253571fab4bce13f75cd96da9ff5139ab", - "reference": "2098f47253571fab4bce13f75cd96da9ff5139ab", + "url": "https://api.github.com/repos/theofidry/AliceDataFixtures/zipball/e18232e62904b043044bed919b9915e06944abc2", + "reference": "e18232e62904b043044bed919b9915e06944abc2", "shasum": "" }, "require": { @@ -12408,7 +12408,7 @@ "doctrine/phpcr-odm": "<2.0.0", "illuminate/database": "<10.0", "ocramius/proxy-manager": "<2.1", - "symfony/framework-bundle": ">=6.0 <6.4.19", + "symfony/framework-bundle": ">=6.0 <6.4.19 || >=7.0 <7.4.0", "zendframework/zend-code": "<3.3.1" }, "require-dev": { @@ -12416,10 +12416,9 @@ "phpspec/prophecy": "^1.20.0", "phpspec/prophecy-phpunit": "^2.3.0", "phpunit/phpunit": "^11.5.12", - "symfony/phpunit-bridge": "^7.2" + "symfony/runtime": "^6.4 || ^7.4 || ^8.0" }, "suggest": { - "alcaeus/mongo-php-adapter": "To use Doctrine with the MongoDB flavour", "doctrine/data-fixtures": "To use Doctrine", "doctrine/dbal": "To use Doctrine with the PHPCR flavour", "doctrine/mongodb": "To use Doctrine with the MongoDB flavour", @@ -12467,7 +12466,7 @@ ], "support": { "issues": "https://github.com/theofidry/AliceDataFixtures/issues", - "source": "https://github.com/theofidry/AliceDataFixtures/tree/1.9.0" + "source": "https://github.com/theofidry/AliceDataFixtures/tree/1.10.0" }, "funding": [ { @@ -12475,27 +12474,27 @@ "type": "github" } ], - "time": "2025-03-09T12:39:40+00:00" + "time": "2025-12-18T21:59:14+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0d72ac1c00084279c1816675284073c5a337c20d" + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", - "reference": "0d72ac1c00084279c1816675284073c5a337c20d", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/f0292ccf0ec75843d65027214426b6b163b48b41", + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^7.4 || ^8.0", - "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^2.0", @@ -12528,9 +12527,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.4.0" }, - "time": "2024-12-21T16:25:41+00:00" + "time": "2025-12-02T11:56:42+00:00" }, { "name": "twig/cssinliner-extra", @@ -12603,16 +12602,16 @@ }, { "name": "twig/extra-bundle", - "version": "v3.22.1", + "version": "v3.22.2", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "b6534bc925bec930004facca92fccebd0c809247" + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/b6534bc925bec930004facca92fccebd0c809247", - "reference": "b6534bc925bec930004facca92fccebd0c809247", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", + "reference": "09de9be7f6c0d19ede7b5a1dbfcfb2e9d1e0ea9e", "shasum": "" }, "require": { @@ -12661,7 +12660,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.1" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.22.2" }, "funding": [ { @@ -12673,7 +12672,7 @@ "type": "tidelift" } ], - "time": "2025-11-02T11:00:49+00:00" + "time": "2025-12-05T08:51:53+00:00" }, { "name": "twig/inky-extra", @@ -12883,16 +12882,16 @@ }, { "name": "twig/twig", - "version": "v3.22.1", + "version": "v3.22.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3" + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", - "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2", + "reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2", "shasum": "" }, "require": { @@ -12946,7 +12945,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.22.1" + "source": "https://github.com/twigphp/Twig/tree/v3.22.2" }, "funding": [ { @@ -12958,7 +12957,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T16:01:12+00:00" + "time": "2025-12-14T11:28:47+00:00" }, { "name": "ua-parser/uap-php", @@ -13238,16 +13237,16 @@ }, { "name": "behat/behat", - "version": "v3.27.0", + "version": "v3.29.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "3282ad774358e4eaf533855e9a1f48559894d1b5" + "reference": "51bdf81639a14645c5d2c06926f4aa37d204921b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/3282ad774358e4eaf533855e9a1f48559894d1b5", - "reference": "3282ad774358e4eaf533855e9a1f48559894d1b5", + "url": "https://api.github.com/repos/Behat/Behat/zipball/51bdf81639a14645c5d2c06926f4aa37d204921b", + "reference": "51bdf81639a14645c5d2c06926f4aa37d204921b", "shasum": "" }, "require": { @@ -13266,8 +13265,8 @@ "symfony/yaml": "^5.4 || ^6.4 || ^7.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.68", "opis/json-schema": "^2.5", + "php-cs-fixer/shim": "^3.89", "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^9.6", "rector/rector": "2.1.7", @@ -13283,11 +13282,6 @@ "bin/behat" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { "psr-4": { "Behat\\Hook\\": "src/Behat/Hook/", @@ -13327,22 +13321,36 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.27.0" + "source": "https://github.com/Behat/Behat/tree/v3.29.0" }, - "time": "2025-11-23T12:12:41+00:00" + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2025-12-11T09:51:30+00:00" }, { "name": "behat/gherkin", - "version": "v4.15.0", + "version": "v4.16.1", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "05a7459283e8e6af0d46ec25b8bb5960ca3cfa7b" + "reference": "e26037937dfd48528746764dd870bc5d0836665f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/05a7459283e8e6af0d46ec25b8bb5960ca3cfa7b", - "reference": "05a7459283e8e6af0d46ec25b8bb5960ca3cfa7b", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/e26037937dfd48528746764dd870bc5d0836665f", + "reference": "e26037937dfd48528746764dd870bc5d0836665f", "shasum": "" }, "require": { @@ -13350,7 +13358,7 @@ "php": ">=8.1 <8.6" }, "require-dev": { - "cucumber/gherkin-monorepo": "dev-gherkin-v36.0.0", + "cucumber/gherkin-monorepo": "dev-gherkin-v37.0.0", "friendsofphp/php-cs-fixer": "^3.77", "mikey179/vfsstream": "^1.6", "phpstan/extension-installer": "^1", @@ -13396,9 +13404,23 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.15.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.16.1" }, - "time": "2025-11-05T15:34:04+00:00" + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2025-12-08T16:12:58+00:00" }, { "name": "clue/ndjson-react", @@ -13841,16 +13863,16 @@ }, { "name": "dama/doctrine-test-bundle", - "version": "v8.4.0", + "version": "v8.4.1", "source": { "type": "git", "url": "https://github.com/dmaicher/doctrine-test-bundle.git", - "reference": "ce7cd44126c36694e2f2d92c4aedd4fc5b0874f2" + "reference": "d9f4fb01a43da2e279ca190fa25ab9e26f15a0c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/ce7cd44126c36694e2f2d92c4aedd4fc5b0874f2", - "reference": "ce7cd44126c36694e2f2d92c4aedd4fc5b0874f2", + "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/d9f4fb01a43da2e279ca190fa25ab9e26f15a0c8", + "reference": "d9f4fb01a43da2e279ca190fa25ab9e26f15a0c8", "shasum": "" }, "require": { @@ -13904,9 +13926,9 @@ ], "support": { "issues": "https://github.com/dmaicher/doctrine-test-bundle/issues", - "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v8.4.0" + "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v8.4.1" }, - "time": "2025-10-11T15:24:02+00:00" + "time": "2025-12-07T21:48:15+00:00" }, { "name": "doctrine/data-fixtures", @@ -14362,16 +14384,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.91.3", + "version": "v3.92.3", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "9f10aa6390cea91da175ea608880e942d7c0226e" + "reference": "2ba8f5a60f6f42fb65758cfb3768434fa2d1c7e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/9f10aa6390cea91da175ea608880e942d7c0226e", - "reference": "9f10aa6390cea91da175ea608880e942d7c0226e", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/2ba8f5a60f6f42fb65758cfb3768434fa2d1c7e8", + "reference": "2ba8f5a60f6f42fb65758cfb3768434fa2d1c7e8", "shasum": "" }, "require": { @@ -14411,6 +14433,7 @@ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", + "symfony/polyfill-php85": "^1.33", "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2 || ^8.0", "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2 || ^8.0" }, @@ -14453,7 +14476,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.91.3" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.92.3" }, "funding": [ { @@ -14461,7 +14484,7 @@ "type": "github" } ], - "time": "2025-12-05T19:45:37+00:00" + "time": "2025-12-18T10:45:02+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -15451,18 +15474,18 @@ "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "61cb6eb692eee492a28342c582c1c5d5defef9db" + "reference": "548d7f950e996858b602a865b33547e71c766ae5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/61cb6eb692eee492a28342c582c1c5d5defef9db", - "reference": "61cb6eb692eee492a28342c582c1c5d5defef9db", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/548d7f950e996858b602a865b33547e71c766ae5", + "reference": "548d7f950e996858b602a865b33547e71c766ae5", "shasum": "" }, "require": { "composer/xdebug-handler": "^3.0", "ext-xml": "*", - "pdepend/pdepend": "3.x-dev#b4646098599162a3c171c7e0b544c8fa86a87638", + "pdepend/pdepend": "3.x-dev#e2be111bb7e474bdc882d0a46b666e10a9528f4d", "php": "^8.1" }, "require-dev": { @@ -15530,7 +15553,7 @@ "type": "tidelift" } ], - "time": "2025-12-03T13:36:11+00:00" + "time": "2025-12-07T10:56:53+00:00" }, { "name": "phpstan/extension-installer", @@ -15828,23 +15851,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "12.5.0", + "version": "12.5.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bca180c050dd3ae15f87c26d25cabb34fe1a0a5a" + "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bca180c050dd3ae15f87c26d25cabb34fe1a0a5a", - "reference": "bca180c050dd3ae15f87c26d25cabb34fe1a0a5a", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c467c59a4f6e04b942be422844e7a6352fa01b57", + "reference": "c467c59a4f6e04b942be422844e7a6352fa01b57", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.6.2", + "nikic/php-parser": "^5.7.0", "php": ">=8.3", "phpunit/php-file-iterator": "^6.0", "phpunit/php-text-template": "^5.0", @@ -15852,10 +15875,10 @@ "sebastian/environment": "^8.0.3", "sebastian/lines-of-code": "^4.0", "sebastian/version": "^6.0", - "theseer/tokenizer": "^1.3.1" + "theseer/tokenizer": "^2.0" }, "require-dev": { - "phpunit/phpunit": "^12.4.4" + "phpunit/phpunit": "^12.5.1" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -15893,7 +15916,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.0" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.1" }, "funding": [ { @@ -15913,7 +15936,7 @@ "type": "tidelift" } ], - "time": "2025-11-29T07:15:54+00:00" + "time": "2025-12-08T07:17:58+00:00" }, { "name": "phpunit/php-file-iterator", @@ -16162,16 +16185,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.1", + "version": "12.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e33a5132ea24119400f6ce5bce6665922e968bad" + "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e33a5132ea24119400f6ce5bce6665922e968bad", - "reference": "e33a5132ea24119400f6ce5bce6665922e968bad", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4ba0e923f9d3fc655de22f9547c01d15a41fc93a", + "reference": "4ba0e923f9d3fc655de22f9547c01d15a41fc93a", "shasum": "" }, "require": { @@ -16185,7 +16208,7 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.3", - "phpunit/php-code-coverage": "^12.5.0", + "phpunit/php-code-coverage": "^12.5.1", "phpunit/php-file-iterator": "^6.0.0", "phpunit/php-invoker": "^6.0.0", "phpunit/php-text-template": "^5.0.0", @@ -16239,7 +16262,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.1" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.4" }, "funding": [ { @@ -16263,7 +16286,7 @@ "type": "tidelift" } ], - "time": "2025-12-06T12:19:17+00:00" + "time": "2025-12-15T06:05:34+00:00" }, { "name": "react/cache", @@ -16793,21 +16816,21 @@ }, { "name": "rector/rector", - "version": "2.2.11", + "version": "2.2.14", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "7bd21a40b0332b93d4bfee284093d7400696902d" + "reference": "6d56bb0e94d4df4f57a78610550ac76ab403657d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/7bd21a40b0332b93d4bfee284093d7400696902d", - "reference": "7bd21a40b0332b93d4bfee284093d7400696902d", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/6d56bb0e94d4df4f57a78610550ac76ab403657d", + "reference": "6d56bb0e94d4df4f57a78610550ac76ab403657d", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.32" + "phpstan/phpstan": "^2.1.33" }, "conflict": { "rector/rector-doctrine": "*", @@ -16841,7 +16864,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.2.11" + "source": "https://github.com/rectorphp/rector/tree/2.2.14" }, "funding": [ { @@ -16849,7 +16872,7 @@ "type": "github" } ], - "time": "2025-12-02T11:23:46+00:00" + "time": "2025-12-09T10:57:55+00:00" }, { "name": "sanmai/di-container", @@ -17056,16 +17079,16 @@ }, { "name": "sanmai/pipeline", - "version": "7.5", + "version": "7.6", "source": { "type": "git", "url": "https://github.com/sanmai/pipeline.git", - "reference": "c3b87db671ee0bc286860bd13bdb7cfc108b7d7e" + "reference": "f7aeb6e1c9572f366c6035c79d715a2a73eeb1c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sanmai/pipeline/zipball/c3b87db671ee0bc286860bd13bdb7cfc108b7d7e", - "reference": "c3b87db671ee0bc286860bd13bdb7cfc108b7d7e", + "url": "https://api.github.com/repos/sanmai/pipeline/zipball/f7aeb6e1c9572f366c6035c79d715a2a73eeb1c9", + "reference": "f7aeb6e1c9572f366c6035c79d715a2a73eeb1c9", "shasum": "" }, "require": { @@ -17112,7 +17135,7 @@ "description": "General-purpose collections pipeline", "support": { "issues": "https://github.com/sanmai/pipeline/issues", - "source": "https://github.com/sanmai/pipeline/tree/7.5" + "source": "https://github.com/sanmai/pipeline/tree/7.6" }, "funding": [ { @@ -17120,7 +17143,7 @@ "type": "github" } ], - "time": "2025-11-05T10:54:07+00:00" + "time": "2025-12-20T07:22:08+00:00" }, { "name": "sebastian/cli-parser", @@ -17963,16 +17986,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v7.4.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4" + "reference": "0c5e8f20c74c78172a8ee72b125909b505033597" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8f3e7464fe7e77294686e935956a6a8ccf7442c4", - "reference": "8f3e7464fe7e77294686e935956a6a8ccf7442c4", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0c5e8f20c74c78172a8ee72b125909b505033597", + "reference": "0c5e8f20c74c78172a8ee72b125909b505033597", "shasum": "" }, "require": { @@ -18011,7 +18034,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.4.0" + "source": "https://github.com/symfony/dom-crawler/tree/v7.4.1" }, "funding": [ { @@ -18031,7 +18054,7 @@ "type": "tidelift" } ], - "time": "2025-10-31T09:30:03+00:00" + "time": "2025-12-06T15:47:47+00:00" }, { "name": "symfony/maker-bundle", @@ -18581,23 +18604,23 @@ }, { "name": "theseer/tokenizer", - "version": "1.3.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/7989e43bf381af0eac72e4f0ca5bcbfa81658be4", + "reference": "7989e43bf381af0eac72e4f0ca5bcbfa81658be4", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, "type": "library", "autoload": { @@ -18619,7 +18642,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" + "source": "https://github.com/theseer/tokenizer/tree/2.0.1" }, "funding": [ { @@ -18627,7 +18650,7 @@ "type": "github" } ], - "time": "2025-11-17T20:03:58+00:00" + "time": "2025-12-08T11:19:18+00:00" } ], "aliases": [], @@ -18654,7 +18677,7 @@ }, "platform-dev": {}, "platform-overrides": { - "php": "8.5" + "php": "8.4" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/config/reference.php b/config/reference.php deleted file mode 100644 index f867d55c9..000000000 --- a/config/reference.php +++ /dev/null @@ -1,2000 +0,0 @@ - [ - * 'App\\' => [ - * 'resource' => '../src/', - * ], - * ], - * ]); - * ``` - * - * @psalm-type ImportsConfig = list - * @psalm-type ParametersConfig = array|null>|null> - * @psalm-type ArgumentsType = list|array - * @psalm-type CallType = array|array{0:string, 1?:ArgumentsType, 2?:bool}|array{method:string, arguments?:ArgumentsType, returns_clone?:bool} - * @psalm-type TagsType = list>> // arrays inside the list must have only one element, with the tag name as the key - * @psalm-type CallbackType = string|array{0:string|ReferenceConfigurator,1:string}|\Closure|ReferenceConfigurator|ExpressionConfigurator - * @psalm-type DeprecationType = array{package: string, version: string, message?: string} - * @psalm-type DefaultsType = array{ - * public?: bool, - * tags?: TagsType, - * resource_tags?: TagsType, - * autowire?: bool, - * autoconfigure?: bool, - * bind?: array, - * } - * @psalm-type InstanceofType = array{ - * shared?: bool, - * lazy?: bool|string, - * public?: bool, - * properties?: array, - * configurator?: CallbackType, - * calls?: list, - * tags?: TagsType, - * resource_tags?: TagsType, - * autowire?: bool, - * bind?: array, - * constructor?: string, - * } - * @psalm-type DefinitionType = array{ - * class?: string, - * file?: string, - * parent?: string, - * shared?: bool, - * synthetic?: bool, - * lazy?: bool|string, - * public?: bool, - * abstract?: bool, - * deprecated?: DeprecationType, - * factory?: CallbackType, - * configurator?: CallbackType, - * arguments?: ArgumentsType, - * properties?: array, - * calls?: list, - * tags?: TagsType, - * resource_tags?: TagsType, - * decorates?: string, - * decoration_inner_name?: string, - * decoration_priority?: int, - * decoration_on_invalid?: 'exception'|'ignore'|null, - * autowire?: bool, - * autoconfigure?: bool, - * bind?: array, - * constructor?: string, - * from_callable?: CallbackType, - * } - * @psalm-type AliasType = string|array{ - * alias: string, - * public?: bool, - * deprecated?: DeprecationType, - * } - * @psalm-type PrototypeType = array{ - * resource: string, - * namespace?: string, - * exclude?: string|list, - * parent?: string, - * shared?: bool, - * lazy?: bool|string, - * public?: bool, - * abstract?: bool, - * deprecated?: DeprecationType, - * factory?: CallbackType, - * arguments?: ArgumentsType, - * properties?: array, - * configurator?: CallbackType, - * calls?: list, - * tags?: TagsType, - * resource_tags?: TagsType, - * autowire?: bool, - * autoconfigure?: bool, - * bind?: array, - * constructor?: string, - * } - * @psalm-type StackType = array{ - * stack: list>, - * public?: bool, - * deprecated?: DeprecationType, - * } - * @psalm-type ServicesConfig = array{ - * _defaults?: DefaultsType, - * _instanceof?: InstanceofType, - * ... - * } - * @psalm-type ExtensionType = array - * @psalm-type SecurityConfig = array{ - * access_denied_url?: scalar|null, // Default: null - * session_fixation_strategy?: "none"|"migrate"|"invalidate", // Default: "migrate" - * hide_user_not_found?: bool, // Deprecated: The "hide_user_not_found" option is deprecated and will be removed in 8.0. Use the "expose_security_errors" option instead. - * expose_security_errors?: \Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::None|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::AccountStatus|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::All, // Default: "none" - * erase_credentials?: bool, // Default: true - * access_decision_manager?: array{ - * strategy?: "affirmative"|"consensus"|"unanimous"|"priority", - * service?: scalar|null, - * strategy_service?: scalar|null, - * allow_if_all_abstain?: bool, // Default: false - * allow_if_equal_granted_denied?: bool, // Default: true - * }, - * password_hashers?: array, - * hash_algorithm?: scalar|null, // Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. // Default: "sha512" - * key_length?: scalar|null, // Default: 40 - * ignore_case?: bool, // Default: false - * encode_as_base64?: bool, // Default: true - * iterations?: scalar|null, // Default: 5000 - * cost?: int, // Default: null - * memory_cost?: scalar|null, // Default: null - * time_cost?: scalar|null, // Default: null - * id?: scalar|null, - * }>, - * providers?: array, - * }, - * memory?: array{ - * users?: array, - * }>, - * }, - * ldap?: array{ - * service: scalar|null, - * base_dn: scalar|null, - * search_dn?: scalar|null, // Default: null - * search_password?: scalar|null, // Default: null - * extra_fields?: list, - * default_roles?: list, - * role_fetcher?: scalar|null, // Default: null - * uid_key?: scalar|null, // Default: "sAMAccountName" - * filter?: scalar|null, // Default: "({uid_key}={user_identifier})" - * password_attribute?: scalar|null, // Default: null - * }, - * entity?: array{ - * class: scalar|null, // The full entity class name of your user class. - * property?: scalar|null, // Default: null - * manager_name?: scalar|null, // Default: null - * }, - * }>, - * firewalls: array, - * security?: bool, // Default: true - * user_checker?: scalar|null, // The UserChecker to use when authenticating users in this firewall. // Default: "security.user_checker" - * request_matcher?: scalar|null, - * access_denied_url?: scalar|null, - * access_denied_handler?: scalar|null, - * entry_point?: scalar|null, // An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface". - * provider?: scalar|null, - * stateless?: bool, // Default: false - * lazy?: bool, // Default: false - * context?: scalar|null, - * logout?: array{ - * enable_csrf?: bool|null, // Default: null - * csrf_token_id?: scalar|null, // Default: "logout" - * csrf_parameter?: scalar|null, // Default: "_csrf_token" - * csrf_token_manager?: scalar|null, - * path?: scalar|null, // Default: "/logout" - * target?: scalar|null, // Default: "/" - * invalidate_session?: bool, // Default: true - * clear_site_data?: list<"*"|"cache"|"cookies"|"storage"|"executionContexts">, - * delete_cookies?: array, - * }, - * switch_user?: array{ - * provider?: scalar|null, - * parameter?: scalar|null, // Default: "_switch_user" - * role?: scalar|null, // Default: "ROLE_ALLOWED_TO_SWITCH" - * target_route?: scalar|null, // Default: null - * }, - * required_badges?: list, - * custom_authenticators?: list, - * login_throttling?: array{ - * limiter?: scalar|null, // A service id implementing "Symfony\Component\HttpFoundation\RateLimiter\RequestRateLimiterInterface". - * max_attempts?: int, // Default: 5 - * interval?: scalar|null, // Default: "1 minute" - * lock_factory?: scalar|null, // The service ID of the lock factory used by the login rate limiter (or null to disable locking). // Default: null - * cache_pool?: string, // The cache pool to use for storing the limiter state // Default: "cache.rate_limiter" - * storage_service?: string, // The service ID of a custom storage implementation, this precedes any configured "cache_pool" // Default: null - * }, - * x509?: array{ - * provider?: scalar|null, - * user?: scalar|null, // Default: "SSL_CLIENT_S_DN_Email" - * credentials?: scalar|null, // Default: "SSL_CLIENT_S_DN" - * user_identifier?: scalar|null, // Default: "emailAddress" - * }, - * remote_user?: array{ - * provider?: scalar|null, - * user?: scalar|null, // Default: "REMOTE_USER" - * }, - * login_link?: array{ - * check_route: scalar|null, // Route that will validate the login link - e.g. "app_login_link_verify". - * check_post_only?: scalar|null, // If true, only HTTP POST requests to "check_route" will be handled by the authenticator. // Default: false - * signature_properties: list, - * lifetime?: int, // The lifetime of the login link in seconds. // Default: 600 - * max_uses?: int, // Max number of times a login link can be used - null means unlimited within lifetime. // Default: null - * used_link_cache?: scalar|null, // Cache service id used to expired links of max_uses is set. - * success_handler?: scalar|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface. - * failure_handler?: scalar|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface. - * provider?: scalar|null, // The user provider to load users from. - * secret?: scalar|null, // Default: "%kernel.secret%" - * always_use_default_target_path?: bool, // Default: false - * default_target_path?: scalar|null, // Default: "/" - * login_path?: scalar|null, // Default: "/login" - * target_path_parameter?: scalar|null, // Default: "_target_path" - * use_referer?: bool, // Default: false - * failure_path?: scalar|null, // Default: null - * failure_forward?: bool, // Default: false - * failure_path_parameter?: scalar|null, // Default: "_failure_path" - * }, - * form_login?: array{ - * provider?: scalar|null, - * remember_me?: bool, // Default: true - * success_handler?: scalar|null, - * failure_handler?: scalar|null, - * check_path?: scalar|null, // Default: "/login_check" - * use_forward?: bool, // Default: false - * login_path?: scalar|null, // Default: "/login" - * username_parameter?: scalar|null, // Default: "_username" - * password_parameter?: scalar|null, // Default: "_password" - * csrf_parameter?: scalar|null, // Default: "_csrf_token" - * csrf_token_id?: scalar|null, // Default: "authenticate" - * enable_csrf?: bool, // Default: false - * post_only?: bool, // Default: true - * form_only?: bool, // Default: false - * always_use_default_target_path?: bool, // Default: false - * default_target_path?: scalar|null, // Default: "/" - * target_path_parameter?: scalar|null, // Default: "_target_path" - * use_referer?: bool, // Default: false - * failure_path?: scalar|null, // Default: null - * failure_forward?: bool, // Default: false - * failure_path_parameter?: scalar|null, // Default: "_failure_path" - * }, - * form_login_ldap?: array{ - * provider?: scalar|null, - * remember_me?: bool, // Default: true - * success_handler?: scalar|null, - * failure_handler?: scalar|null, - * check_path?: scalar|null, // Default: "/login_check" - * use_forward?: bool, // Default: false - * login_path?: scalar|null, // Default: "/login" - * username_parameter?: scalar|null, // Default: "_username" - * password_parameter?: scalar|null, // Default: "_password" - * csrf_parameter?: scalar|null, // Default: "_csrf_token" - * csrf_token_id?: scalar|null, // Default: "authenticate" - * enable_csrf?: bool, // Default: false - * post_only?: bool, // Default: true - * form_only?: bool, // Default: false - * always_use_default_target_path?: bool, // Default: false - * default_target_path?: scalar|null, // Default: "/" - * target_path_parameter?: scalar|null, // Default: "_target_path" - * use_referer?: bool, // Default: false - * failure_path?: scalar|null, // Default: null - * failure_forward?: bool, // Default: false - * failure_path_parameter?: scalar|null, // Default: "_failure_path" - * service?: scalar|null, // Default: "ldap" - * dn_string?: scalar|null, // Default: "{user_identifier}" - * query_string?: scalar|null, - * search_dn?: scalar|null, // Default: "" - * search_password?: scalar|null, // Default: "" - * }, - * json_login?: array{ - * provider?: scalar|null, - * remember_me?: bool, // Default: true - * success_handler?: scalar|null, - * failure_handler?: scalar|null, - * check_path?: scalar|null, // Default: "/login_check" - * use_forward?: bool, // Default: false - * login_path?: scalar|null, // Default: "/login" - * username_path?: scalar|null, // Default: "username" - * password_path?: scalar|null, // Default: "password" - * }, - * json_login_ldap?: array{ - * provider?: scalar|null, - * remember_me?: bool, // Default: true - * success_handler?: scalar|null, - * failure_handler?: scalar|null, - * check_path?: scalar|null, // Default: "/login_check" - * use_forward?: bool, // Default: false - * login_path?: scalar|null, // Default: "/login" - * username_path?: scalar|null, // Default: "username" - * password_path?: scalar|null, // Default: "password" - * service?: scalar|null, // Default: "ldap" - * dn_string?: scalar|null, // Default: "{user_identifier}" - * query_string?: scalar|null, - * search_dn?: scalar|null, // Default: "" - * search_password?: scalar|null, // Default: "" - * }, - * access_token?: array{ - * provider?: scalar|null, - * remember_me?: bool, // Default: true - * success_handler?: scalar|null, - * failure_handler?: scalar|null, - * realm?: scalar|null, // Default: null - * token_extractors?: list, - * token_handler: string|array{ - * id?: scalar|null, - * oidc_user_info?: string|array{ - * base_uri: scalar|null, // Base URI of the userinfo endpoint on the OIDC server, or the OIDC server URI to use the discovery (require "discovery" to be configured). - * discovery?: array{ // Enable the OIDC discovery. - * cache?: array{ - * id: scalar|null, // Cache service id to use to cache the OIDC discovery configuration. - * }, - * }, - * claim?: scalar|null, // Claim which contains the user identifier (e.g. sub, email, etc.). // Default: "sub" - * client?: scalar|null, // HttpClient service id to use to call the OIDC server. - * }, - * oidc?: array{ - * discovery?: array{ // Enable the OIDC discovery. - * base_uri: list, - * cache?: array{ - * id: scalar|null, // Cache service id to use to cache the OIDC discovery configuration. - * }, - * }, - * claim?: scalar|null, // Claim which contains the user identifier (e.g.: sub, email..). // Default: "sub" - * audience: scalar|null, // Audience set in the token, for validation purpose. - * issuers: list, - * algorithm?: array, - * algorithms: list, - * key?: scalar|null, // Deprecated: The "key" option is deprecated and will be removed in 8.0. Use the "keyset" option instead. // JSON-encoded JWK used to sign the token (must contain a "kty" key). - * keyset?: scalar|null, // JSON-encoded JWKSet used to sign the token (must contain a list of valid public keys). - * encryption?: bool|array{ - * enabled?: bool, // Default: false - * enforce?: bool, // When enabled, the token shall be encrypted. // Default: false - * algorithms: list, - * keyset: scalar|null, // JSON-encoded JWKSet used to decrypt the token (must contain a list of valid private keys). - * }, - * }, - * cas?: array{ - * validation_url: scalar|null, // CAS server validation URL - * prefix?: scalar|null, // CAS prefix // Default: "cas" - * http_client?: scalar|null, // HTTP Client service // Default: null - * }, - * oauth2?: scalar|null, - * }, - * }, - * http_basic?: array{ - * provider?: scalar|null, - * realm?: scalar|null, // Default: "Secured Area" - * }, - * http_basic_ldap?: array{ - * provider?: scalar|null, - * realm?: scalar|null, // Default: "Secured Area" - * service?: scalar|null, // Default: "ldap" - * dn_string?: scalar|null, // Default: "{user_identifier}" - * query_string?: scalar|null, - * search_dn?: scalar|null, // Default: "" - * search_password?: scalar|null, // Default: "" - * }, - * remember_me?: array{ - * secret?: scalar|null, // Default: "%kernel.secret%" - * service?: scalar|null, - * user_providers?: list, - * catch_exceptions?: bool, // Default: true - * signature_properties?: list, - * token_provider?: string|array{ - * service?: scalar|null, // The service ID of a custom remember-me token provider. - * doctrine?: bool|array{ - * enabled?: bool, // Default: false - * connection?: scalar|null, // Default: null - * }, - * }, - * token_verifier?: scalar|null, // The service ID of a custom rememberme token verifier. - * name?: scalar|null, // Default: "REMEMBERME" - * lifetime?: int, // Default: 31536000 - * path?: scalar|null, // Default: "/" - * domain?: scalar|null, // Default: null - * secure?: true|false|"auto", // Default: false - * httponly?: bool, // Default: true - * samesite?: null|"lax"|"strict"|"none", // Default: "lax" - * always_remember_me?: bool, // Default: false - * remember_me_parameter?: scalar|null, // Default: "_remember_me" - * }, - * }>, - * access_control?: list, - * attributes?: array, - * route?: scalar|null, // Default: null - * methods?: list, - * allow_if?: scalar|null, // Default: null - * roles?: list, - * }>, - * role_hierarchy?: array>, - * } - * @psalm-type MonologConfig = array{ - * use_microseconds?: scalar|null, // Default: true - * channels?: list, - * handlers?: array, - * excluded_http_codes?: list, - * }>, - * accepted_levels?: list, - * min_level?: scalar|null, // Default: "DEBUG" - * max_level?: scalar|null, // Default: "EMERGENCY" - * buffer_size?: scalar|null, // Default: 0 - * flush_on_overflow?: bool, // Default: false - * handler?: scalar|null, - * url?: scalar|null, - * exchange?: scalar|null, - * exchange_name?: scalar|null, // Default: "log" - * room?: scalar|null, - * message_format?: scalar|null, // Default: "text" - * api_version?: scalar|null, // Default: null - * channel?: scalar|null, // Default: null - * bot_name?: scalar|null, // Default: "Monolog" - * use_attachment?: scalar|null, // Default: true - * use_short_attachment?: scalar|null, // Default: false - * include_extra?: scalar|null, // Default: false - * icon_emoji?: scalar|null, // Default: null - * webhook_url?: scalar|null, - * exclude_fields?: list, - * team?: scalar|null, - * notify?: scalar|null, // Default: false - * nickname?: scalar|null, // Default: "Monolog" - * token?: scalar|null, - * region?: scalar|null, - * source?: scalar|null, - * use_ssl?: bool, // Default: true - * user?: mixed, - * title?: scalar|null, // Default: null - * host?: scalar|null, // Default: null - * port?: scalar|null, // Default: 514 - * config?: list, - * members?: list, - * connection_string?: scalar|null, - * timeout?: scalar|null, - * time?: scalar|null, // Default: 60 - * deduplication_level?: scalar|null, // Default: 400 - * store?: scalar|null, // Default: null - * connection_timeout?: scalar|null, - * persistent?: bool, - * dsn?: scalar|null, - * hub_id?: scalar|null, // Default: null - * client_id?: scalar|null, // Default: null - * auto_log_stacks?: scalar|null, // Default: false - * release?: scalar|null, // Default: null - * environment?: scalar|null, // Default: null - * message_type?: scalar|null, // Default: 0 - * parse_mode?: scalar|null, // Default: null - * disable_webpage_preview?: bool|null, // Default: null - * disable_notification?: bool|null, // Default: null - * split_long_messages?: bool, // Default: false - * delay_between_messages?: bool, // Default: false - * topic?: int, // Default: null - * factor?: int, // Default: 1 - * tags?: list, - * console_formater_options?: mixed, // Deprecated: "monolog.handlers..console_formater_options.console_formater_options" is deprecated, use "monolog.handlers..console_formater_options.console_formatter_options" instead. - * console_formatter_options?: mixed, // Default: [] - * formatter?: scalar|null, - * nested?: bool, // Default: false - * publisher?: string|array{ - * id?: scalar|null, - * hostname?: scalar|null, - * port?: scalar|null, // Default: 12201 - * chunk_size?: scalar|null, // Default: 1420 - * encoder?: "json"|"compressed_json", - * }, - * mongo?: string|array{ - * id?: scalar|null, - * host?: scalar|null, - * port?: scalar|null, // Default: 27017 - * user?: scalar|null, - * pass?: scalar|null, - * database?: scalar|null, // Default: "monolog" - * collection?: scalar|null, // Default: "logs" - * }, - * mongodb?: string|array{ - * id?: scalar|null, // ID of a MongoDB\Client service - * uri?: scalar|null, - * username?: scalar|null, - * password?: scalar|null, - * database?: scalar|null, // Default: "monolog" - * collection?: scalar|null, // Default: "logs" - * }, - * elasticsearch?: string|array{ - * id?: scalar|null, - * hosts?: list, - * host?: scalar|null, - * port?: scalar|null, // Default: 9200 - * transport?: scalar|null, // Default: "Http" - * user?: scalar|null, // Default: null - * password?: scalar|null, // Default: null - * }, - * index?: scalar|null, // Default: "monolog" - * document_type?: scalar|null, // Default: "logs" - * ignore_error?: scalar|null, // Default: false - * redis?: string|array{ - * id?: scalar|null, - * host?: scalar|null, - * password?: scalar|null, // Default: null - * port?: scalar|null, // Default: 6379 - * database?: scalar|null, // Default: 0 - * key_name?: scalar|null, // Default: "monolog_redis" - * }, - * predis?: string|array{ - * id?: scalar|null, - * host?: scalar|null, - * }, - * from_email?: scalar|null, - * to_email?: list, - * subject?: scalar|null, - * content_type?: scalar|null, // Default: null - * headers?: list, - * mailer?: scalar|null, // Default: null - * email_prototype?: string|array{ - * id: scalar|null, - * method?: scalar|null, // Default: null - * }, - * lazy?: bool, // Default: true - * verbosity_levels?: array{ - * VERBOSITY_QUIET?: scalar|null, // Default: "ERROR" - * VERBOSITY_NORMAL?: scalar|null, // Default: "WARNING" - * VERBOSITY_VERBOSE?: scalar|null, // Default: "NOTICE" - * VERBOSITY_VERY_VERBOSE?: scalar|null, // Default: "INFO" - * VERBOSITY_DEBUG?: scalar|null, // Default: "DEBUG" - * }, - * channels?: string|array{ - * type?: scalar|null, - * elements?: list, - * }, - * }>, - * } - * @psalm-type DoctrineConfig = array{ - * dbal?: array{ - * default_connection?: scalar|null, - * types?: array, - * driver_schemes?: array, - * connections?: array, - * mapping_types?: array, - * default_table_options?: array, - * schema_manager_factory?: scalar|null, // Default: "doctrine.dbal.default_schema_manager_factory" - * result_cache?: scalar|null, - * replicas?: array, - * }>, - * }, - * orm?: array{ - * default_entity_manager?: scalar|null, - * enable_native_lazy_objects?: bool, // Deprecated: The "enable_native_lazy_objects" option is deprecated and will be removed in DoctrineBundle 4.0, as native lazy objects are now always enabled. // Default: true - * controller_resolver?: bool|array{ - * enabled?: bool, // Default: true - * auto_mapping?: bool, // Deprecated: The "auto_mapping" option is deprecated and will be removed in DoctrineBundle 4.0, as it only accepts `false` since 3.0. // Set to true to enable using route placeholders as lookup criteria when the primary key doesn't match the argument name // Default: false - * evict_cache?: bool, // Set to true to fetch the entity from the database instead of using the cache, if any // Default: false - * }, - * entity_managers?: array, - * }>, - * }>, - * }, - * connection?: scalar|null, - * class_metadata_factory_name?: scalar|null, // Default: "Doctrine\\ORM\\Mapping\\ClassMetadataFactory" - * default_repository_class?: scalar|null, // Default: "Doctrine\\ORM\\EntityRepository" - * auto_mapping?: scalar|null, // Default: false - * naming_strategy?: scalar|null, // Default: "doctrine.orm.naming_strategy.default" - * quote_strategy?: scalar|null, // Default: "doctrine.orm.quote_strategy.default" - * typed_field_mapper?: scalar|null, // Default: "doctrine.orm.typed_field_mapper.default" - * entity_listener_resolver?: scalar|null, // Default: null - * fetch_mode_subselect_batch_size?: scalar|null, - * repository_factory?: scalar|null, // Default: "doctrine.orm.container_repository_factory" - * schema_ignore_classes?: list, - * validate_xml_mapping?: bool, // Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/6728. // Default: false - * second_level_cache?: array{ - * region_cache_driver?: string|array{ - * type?: scalar|null, // Default: null - * id?: scalar|null, - * pool?: scalar|null, - * }, - * region_lock_lifetime?: scalar|null, // Default: 60 - * log_enabled?: bool, // Default: true - * region_lifetime?: scalar|null, // Default: 3600 - * enabled?: bool, // Default: true - * factory?: scalar|null, - * regions?: array, - * loggers?: array, - * }, - * hydrators?: array, - * mappings?: array, - * dql?: array{ - * string_functions?: array, - * numeric_functions?: array, - * datetime_functions?: array, - * }, - * filters?: array, - * }>, - * identity_generation_preferences?: array, - * }>, - * resolve_target_entities?: array, - * }, - * } - * @psalm-type NelmioAliceConfig = array{ - * locale?: scalar|null, // Default locale for the Faker Generator // Default: "en_US" - * seed?: scalar|null, // Value used make sure Faker generates data consistently across runs, set to null to disable. // Default: 1 - * functions_blacklist?: list, - * loading_limit?: int, // Alice may do some recursion to resolve certain values. This parameter defines a limit which will stop the resolution once reached. // Default: 5 - * max_unique_values_retry?: int, // Maximum number of time Alice can try to generate a unique value before stopping and failing. // Default: 150 - * } - * @psalm-type FidryAliceDataFixturesConfig = array{ - * default_purge_mode?: scalar|null, // Default: "delete" - * db_drivers?: array{ // The list of enabled drivers. - * doctrine_orm?: bool|null, // Default: null - * doctrine_mongodb_odm?: bool|null, // Default: null - * doctrine_phpcr_odm?: bool|null, // Default: null - * eloquent_orm?: bool|null, // Default: null - * }, - * } - * @psalm-type HautelookAliceConfig = array{ - * fixtures_path?: list, - * root_dirs?: list, - * } - * @psalm-type DebugConfig = array{ - * max_items?: int, // Max number of displayed items past the first level, -1 means no limit. // Default: 2500 - * min_depth?: int, // Minimum tree depth to clone all the items, 1 is default. // Default: 1 - * max_string_length?: int, // Max length of displayed strings, -1 means no limit. // Default: -1 - * dump_destination?: scalar|null, // A stream URL where dumps should be written to. // Default: null - * theme?: "dark"|"light", // Changes the color of the dump() output when rendered directly on the templating. "dark" (default) or "light". // Default: "dark" - * } - * @psalm-type FrameworkConfig = array{ - * secret?: scalar|null, - * http_method_override?: bool, // Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. // Default: false - * allowed_http_method_override?: list|null, - * trust_x_sendfile_type_header?: scalar|null, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%" - * ide?: scalar|null, // Default: "%env(default::SYMFONY_IDE)%" - * test?: bool, - * default_locale?: scalar|null, // Default: "en" - * set_locale_from_accept_language?: bool, // Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). // Default: false - * set_content_language_from_locale?: bool, // Whether to set the Content-Language HTTP header on the Response using the Request locale. // Default: false - * enabled_locales?: list, - * trusted_hosts?: list, - * trusted_proxies?: mixed, // Default: ["%env(default::SYMFONY_TRUSTED_PROXIES)%"] - * trusted_headers?: list, - * error_controller?: scalar|null, // Default: "error_controller" - * handle_all_throwables?: bool, // HttpKernel will handle all kinds of \Throwable. // Default: true - * csrf_protection?: bool|array{ - * enabled?: scalar|null, // Default: null - * stateless_token_ids?: list, - * check_header?: scalar|null, // Whether to check the CSRF token in a header in addition to a cookie when using stateless protection. // Default: false - * cookie_name?: scalar|null, // The name of the cookie to use when using stateless protection. // Default: "csrf-token" - * }, - * form?: bool|array{ // Form configuration - * enabled?: bool, // Default: true - * csrf_protection?: array{ - * enabled?: scalar|null, // Default: null - * token_id?: scalar|null, // Default: null - * field_name?: scalar|null, // Default: "_token" - * field_attr?: array, - * }, - * }, - * http_cache?: bool|array{ // HTTP cache configuration - * enabled?: bool, // Default: false - * debug?: bool, // Default: "%kernel.debug%" - * trace_level?: "none"|"short"|"full", - * trace_header?: scalar|null, - * default_ttl?: int, - * private_headers?: list, - * skip_response_headers?: list, - * allow_reload?: bool, - * allow_revalidate?: bool, - * stale_while_revalidate?: int, - * stale_if_error?: int, - * terminate_on_cache_hit?: bool, - * }, - * esi?: bool|array{ // ESI configuration - * enabled?: bool, // Default: false - * }, - * ssi?: bool|array{ // SSI configuration - * enabled?: bool, // Default: false - * }, - * fragments?: bool|array{ // Fragments configuration - * enabled?: bool, // Default: false - * hinclude_default_template?: scalar|null, // Default: null - * path?: scalar|null, // Default: "/_fragment" - * }, - * profiler?: bool|array{ // Profiler configuration - * enabled?: bool, // Default: false - * collect?: bool, // Default: true - * collect_parameter?: scalar|null, // The name of the parameter to use to enable or disable collection on a per request basis. // Default: null - * only_exceptions?: bool, // Default: false - * only_main_requests?: bool, // Default: false - * dsn?: scalar|null, // Default: "file:%kernel.cache_dir%/profiler" - * collect_serializer_data?: bool, // Enables the serializer data collector and profiler panel. // Default: false - * }, - * workflows?: bool|array{ - * enabled?: bool, // Default: false - * workflows?: array, - * definition_validators?: list, - * support_strategy?: scalar|null, - * initial_marking?: list, - * events_to_dispatch?: list|null, - * places?: list, - * }>, - * transitions: list, - * to?: list, - * weight?: int, // Default: 1 - * metadata?: list, - * }>, - * metadata?: list, - * }>, - * }, - * router?: bool|array{ // Router configuration - * enabled?: bool, // Default: false - * resource: scalar|null, - * type?: scalar|null, - * cache_dir?: scalar|null, // Deprecated: Setting the "framework.router.cache_dir.cache_dir" configuration option is deprecated. It will be removed in version 8.0. // Default: "%kernel.build_dir%" - * default_uri?: scalar|null, // The default URI used to generate URLs in a non-HTTP context. // Default: null - * http_port?: scalar|null, // Default: 80 - * https_port?: scalar|null, // Default: 443 - * strict_requirements?: scalar|null, // set to true to throw an exception when a parameter does not match the requirements set to false to disable exceptions when a parameter does not match the requirements (and return null instead) set to null to disable parameter checks against requirements 'true' is the preferred configuration in development mode, while 'false' or 'null' might be preferred in production // Default: true - * utf8?: bool, // Default: true - * }, - * session?: bool|array{ // Session configuration - * enabled?: bool, // Default: false - * storage_factory_id?: scalar|null, // Default: "session.storage.factory.native" - * handler_id?: scalar|null, // Defaults to using the native session handler, or to the native *file* session handler if "save_path" is not null. - * name?: scalar|null, - * cookie_lifetime?: scalar|null, - * cookie_path?: scalar|null, - * cookie_domain?: scalar|null, - * cookie_secure?: true|false|"auto", // Default: "auto" - * cookie_httponly?: bool, // Default: true - * cookie_samesite?: null|"lax"|"strict"|"none", // Default: "lax" - * use_cookies?: bool, - * gc_divisor?: scalar|null, - * gc_probability?: scalar|null, - * gc_maxlifetime?: scalar|null, - * save_path?: scalar|null, // Defaults to "%kernel.cache_dir%/sessions" if the "handler_id" option is not null. - * metadata_update_threshold?: int, // Seconds to wait between 2 session metadata updates. // Default: 0 - * sid_length?: int, // Deprecated: Setting the "framework.session.sid_length.sid_length" configuration option is deprecated. It will be removed in version 8.0. No alternative is provided as PHP 8.4 has deprecated the related option. - * sid_bits_per_character?: int, // Deprecated: Setting the "framework.session.sid_bits_per_character.sid_bits_per_character" configuration option is deprecated. It will be removed in version 8.0. No alternative is provided as PHP 8.4 has deprecated the related option. - * }, - * request?: bool|array{ // Request configuration - * enabled?: bool, // Default: false - * formats?: array>, - * }, - * assets?: bool|array{ // Assets configuration - * enabled?: bool, // Default: true - * strict_mode?: bool, // Throw an exception if an entry is missing from the manifest.json. // Default: false - * version_strategy?: scalar|null, // Default: null - * version?: scalar|null, // Default: null - * version_format?: scalar|null, // Default: "%%s?%%s" - * json_manifest_path?: scalar|null, // Default: null - * base_path?: scalar|null, // Default: "" - * base_urls?: list, - * packages?: array, - * }>, - * }, - * asset_mapper?: bool|array{ // Asset Mapper configuration - * enabled?: bool, // Default: false - * paths?: array, - * excluded_patterns?: list, - * exclude_dotfiles?: bool, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true - * server?: bool, // If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default). // Default: true - * public_prefix?: scalar|null, // The public path where the assets will be written to (and served from when "server" is true). // Default: "/assets/" - * missing_import_mode?: "strict"|"warn"|"ignore", // Behavior if an asset cannot be found when imported from JavaScript or CSS files - e.g. "import './non-existent.js'". "strict" means an exception is thrown, "warn" means a warning is logged, "ignore" means the import is left as-is. // Default: "warn" - * extensions?: array, - * importmap_path?: scalar|null, // The path of the importmap.php file. // Default: "%kernel.project_dir%/importmap.php" - * importmap_polyfill?: scalar|null, // The importmap name that will be used to load the polyfill. Set to false to disable. // Default: "es-module-shims" - * importmap_script_attributes?: array, - * vendor_dir?: scalar|null, // The directory to store JavaScript vendors. // Default: "%kernel.project_dir%/assets/vendor" - * precompress?: bool|array{ // Precompress assets with Brotli, Zstandard and gzip. - * enabled?: bool, // Default: false - * formats?: list, - * extensions?: list, - * }, - * }, - * translator?: bool|array{ // Translator configuration - * enabled?: bool, // Default: true - * fallbacks?: list, - * logging?: bool, // Default: false - * formatter?: scalar|null, // Default: "translator.formatter.default" - * cache_dir?: scalar|null, // Default: "%kernel.cache_dir%/translations" - * default_path?: scalar|null, // The default path used to load translations. // Default: "%kernel.project_dir%/translations" - * paths?: list, - * pseudo_localization?: bool|array{ - * enabled?: bool, // Default: false - * accents?: bool, // Default: true - * expansion_factor?: float, // Default: 1.0 - * brackets?: bool, // Default: true - * parse_html?: bool, // Default: false - * localizable_html_attributes?: list, - * }, - * providers?: array, - * locales?: list, - * }>, - * globals?: array, - * domain?: string, - * }>, - * }, - * validation?: bool|array{ // Validation configuration - * enabled?: bool, // Default: true - * cache?: scalar|null, // Deprecated: Setting the "framework.validation.cache.cache" configuration option is deprecated. It will be removed in version 8.0. - * enable_attributes?: bool, // Default: true - * static_method?: list, - * translation_domain?: scalar|null, // Default: "validators" - * email_validation_mode?: "html5"|"html5-allow-no-tld"|"strict"|"loose", // Default: "html5" - * mapping?: array{ - * paths?: list, - * }, - * not_compromised_password?: bool|array{ - * enabled?: bool, // When disabled, compromised passwords will be accepted as valid. // Default: true - * endpoint?: scalar|null, // API endpoint for the NotCompromisedPassword Validator. // Default: null - * }, - * disable_translation?: bool, // Default: false - * auto_mapping?: array, - * }>, - * }, - * annotations?: bool|array{ - * enabled?: bool, // Default: false - * }, - * serializer?: bool|array{ // Serializer configuration - * enabled?: bool, // Default: false - * enable_attributes?: bool, // Default: true - * name_converter?: scalar|null, - * circular_reference_handler?: scalar|null, - * max_depth_handler?: scalar|null, - * mapping?: array{ - * paths?: list, - * }, - * default_context?: list, - * named_serializers?: array, - * include_built_in_normalizers?: bool, // Whether to include the built-in normalizers // Default: true - * include_built_in_encoders?: bool, // Whether to include the built-in encoders // Default: true - * }>, - * }, - * property_access?: bool|array{ // Property access configuration - * enabled?: bool, // Default: true - * magic_call?: bool, // Default: false - * magic_get?: bool, // Default: true - * magic_set?: bool, // Default: true - * throw_exception_on_invalid_index?: bool, // Default: false - * throw_exception_on_invalid_property_path?: bool, // Default: true - * }, - * type_info?: bool|array{ // Type info configuration - * enabled?: bool, // Default: true - * aliases?: array, - * }, - * property_info?: bool|array{ // Property info configuration - * enabled?: bool, // Default: true - * with_constructor_extractor?: bool, // Registers the constructor extractor. - * }, - * cache?: array{ // Cache configuration - * prefix_seed?: scalar|null, // Used to namespace cache keys when using several apps with the same shared backend. // Default: "_%kernel.project_dir%.%kernel.container_class%" - * app?: scalar|null, // App related cache pools configuration. // Default: "cache.adapter.filesystem" - * system?: scalar|null, // System related cache pools configuration. // Default: "cache.adapter.system" - * directory?: scalar|null, // Default: "%kernel.share_dir%/pools/app" - * default_psr6_provider?: scalar|null, - * default_redis_provider?: scalar|null, // Default: "redis://localhost" - * default_valkey_provider?: scalar|null, // Default: "valkey://localhost" - * default_memcached_provider?: scalar|null, // Default: "memcached://localhost" - * default_doctrine_dbal_provider?: scalar|null, // Default: "database_connection" - * default_pdo_provider?: scalar|null, // Default: null - * pools?: array, - * tags?: scalar|null, // Default: null - * public?: bool, // Default: false - * default_lifetime?: scalar|null, // Default lifetime of the pool. - * provider?: scalar|null, // Overwrite the setting from the default provider for this adapter. - * early_expiration_message_bus?: scalar|null, - * clearer?: scalar|null, - * }>, - * }, - * php_errors?: array{ // PHP errors handling configuration - * log?: mixed, // Use the application logger instead of the PHP logger for logging PHP errors. // Default: true - * throw?: bool, // Throw PHP errors as \ErrorException instances. // Default: true - * }, - * exceptions?: array, - * web_link?: bool|array{ // Web links configuration - * enabled?: bool, // Default: true - * }, - * lock?: bool|string|array{ // Lock configuration - * enabled?: bool, // Default: false - * resources?: array>, - * }, - * semaphore?: bool|string|array{ // Semaphore configuration - * enabled?: bool, // Default: false - * resources?: array, - * }, - * messenger?: bool|array{ // Messenger configuration - * enabled?: bool, // Default: false - * routing?: array, - * }>, - * serializer?: array{ - * default_serializer?: scalar|null, // Service id to use as the default serializer for the transports. // Default: "messenger.transport.native_php_serializer" - * symfony_serializer?: array{ - * format?: scalar|null, // Serialization format for the messenger.transport.symfony_serializer service (which is not the serializer used by default). // Default: "json" - * context?: array, - * }, - * }, - * transports?: array, - * failure_transport?: scalar|null, // Transport name to send failed messages to (after all retries have failed). // Default: null - * retry_strategy?: string|array{ - * service?: scalar|null, // Service id to override the retry strategy entirely. // Default: null - * max_retries?: int, // Default: 3 - * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000 - * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries)). // Default: 2 - * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0 - * jitter?: float, // Randomness to apply to the delay (between 0 and 1). // Default: 0.1 - * }, - * rate_limiter?: scalar|null, // Rate limiter name to use when processing messages. // Default: null - * }>, - * failure_transport?: scalar|null, // Transport name to send failed messages to (after all retries have failed). // Default: null - * stop_worker_on_signals?: list, - * default_bus?: scalar|null, // Default: null - * buses?: array, - * }>, - * }>, - * }, - * scheduler?: bool|array{ // Scheduler configuration - * enabled?: bool, // Default: false - * }, - * disallow_search_engine_index?: bool, // Enabled by default when debug is enabled. // Default: true - * http_client?: bool|array{ // HTTP Client configuration - * enabled?: bool, // Default: true - * max_host_connections?: int, // The maximum number of connections to a single host. - * default_options?: array{ - * headers?: array, - * vars?: list, - * max_redirects?: int, // The maximum number of redirects to follow. - * http_version?: scalar|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * resolve?: array, - * proxy?: scalar|null, // The URL of the proxy to pass requests through or null for automatic detection. - * no_proxy?: scalar|null, // A comma separated list of hosts that do not require a proxy to be reached. - * timeout?: float, // The idle timeout, defaults to the "default_socket_timeout" ini parameter. - * max_duration?: float, // The maximum execution time for the request+response as a whole. - * bindto?: scalar|null, // A network interface name, IP address, a host name or a UNIX socket to bind to. - * verify_peer?: bool, // Indicates if the peer should be verified in a TLS context. - * verify_host?: bool, // Indicates if the host should exist as a certificate common name. - * cafile?: scalar|null, // A certificate authority file. - * capath?: scalar|null, // A directory that contains multiple certificate authority files. - * local_cert?: scalar|null, // A PEM formatted certificate file. - * local_pk?: scalar|null, // A private key file. - * passphrase?: scalar|null, // The passphrase used to encrypt the "local_pk" file. - * ciphers?: scalar|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...) - * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es). - * sha1?: mixed, - * pin-sha256?: mixed, - * md5?: mixed, - * }, - * crypto_method?: scalar|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. - * extra?: list, - * rate_limiter?: scalar|null, // Rate limiter name to use for throttling requests. // Default: null - * caching?: bool|array{ // Caching configuration. - * enabled?: bool, // Default: false - * cache_pool?: string, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client" - * shared?: bool, // Indicates whether the cache is shared (public) or private. // Default: true - * max_ttl?: int, // The maximum TTL (in seconds) allowed for cached responses. Null means no cap. // Default: null - * }, - * retry_failed?: bool|array{ - * enabled?: bool, // Default: false - * retry_strategy?: scalar|null, // service id to override the retry strategy. // Default: null - * http_codes?: array, - * }>, - * max_retries?: int, // Default: 3 - * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000 - * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2 - * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0 - * jitter?: float, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1 - * }, - * }, - * mock_response_factory?: scalar|null, // The id of the service that should generate mock responses. It should be either an invokable or an iterable. - * scoped_clients?: array, - * headers?: array, - * max_redirects?: int, // The maximum number of redirects to follow. - * http_version?: scalar|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version. - * resolve?: array, - * proxy?: scalar|null, // The URL of the proxy to pass requests through or null for automatic detection. - * no_proxy?: scalar|null, // A comma separated list of hosts that do not require a proxy to be reached. - * timeout?: float, // The idle timeout, defaults to the "default_socket_timeout" ini parameter. - * max_duration?: float, // The maximum execution time for the request+response as a whole. - * bindto?: scalar|null, // A network interface name, IP address, a host name or a UNIX socket to bind to. - * verify_peer?: bool, // Indicates if the peer should be verified in a TLS context. - * verify_host?: bool, // Indicates if the host should exist as a certificate common name. - * cafile?: scalar|null, // A certificate authority file. - * capath?: scalar|null, // A directory that contains multiple certificate authority files. - * local_cert?: scalar|null, // A PEM formatted certificate file. - * local_pk?: scalar|null, // A private key file. - * passphrase?: scalar|null, // The passphrase used to encrypt the "local_pk" file. - * ciphers?: scalar|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...). - * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es). - * sha1?: mixed, - * pin-sha256?: mixed, - * md5?: mixed, - * }, - * crypto_method?: scalar|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants. - * extra?: list, - * rate_limiter?: scalar|null, // Rate limiter name to use for throttling requests. // Default: null - * caching?: bool|array{ // Caching configuration. - * enabled?: bool, // Default: false - * cache_pool?: string, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client" - * shared?: bool, // Indicates whether the cache is shared (public) or private. // Default: true - * max_ttl?: int, // The maximum TTL (in seconds) allowed for cached responses. Null means no cap. // Default: null - * }, - * retry_failed?: bool|array{ - * enabled?: bool, // Default: false - * retry_strategy?: scalar|null, // service id to override the retry strategy. // Default: null - * http_codes?: array, - * }>, - * max_retries?: int, // Default: 3 - * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000 - * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2 - * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0 - * jitter?: float, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1 - * }, - * }>, - * }, - * mailer?: bool|array{ // Mailer configuration - * enabled?: bool, // Default: true - * message_bus?: scalar|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null - * dsn?: scalar|null, // Default: null - * transports?: array, - * envelope?: array{ // Mailer Envelope configuration - * sender?: scalar|null, - * recipients?: list, - * allowed_recipients?: list, - * }, - * headers?: array, - * dkim_signer?: bool|array{ // DKIM signer configuration - * enabled?: bool, // Default: false - * key?: scalar|null, // Key content, or path to key (in PEM format with the `file://` prefix) // Default: "" - * domain?: scalar|null, // Default: "" - * select?: scalar|null, // Default: "" - * passphrase?: scalar|null, // The private key passphrase // Default: "" - * options?: array, - * }, - * smime_signer?: bool|array{ // S/MIME signer configuration - * enabled?: bool, // Default: false - * key?: scalar|null, // Path to key (in PEM format) // Default: "" - * certificate?: scalar|null, // Path to certificate (in PEM format without the `file://` prefix) // Default: "" - * passphrase?: scalar|null, // The private key passphrase // Default: null - * extra_certificates?: scalar|null, // Default: null - * sign_options?: int, // Default: null - * }, - * smime_encrypter?: bool|array{ // S/MIME encrypter configuration - * enabled?: bool, // Default: false - * repository?: scalar|null, // S/MIME certificate repository service. This service shall implement the `Symfony\Component\Mailer\EventListener\SmimeCertificateRepositoryInterface`. // Default: "" - * cipher?: int, // A set of algorithms used to encrypt the message // Default: null - * }, - * }, - * secrets?: bool|array{ - * enabled?: bool, // Default: true - * vault_directory?: scalar|null, // Default: "%kernel.project_dir%/config/secrets/%kernel.runtime_environment%" - * local_dotenv_file?: scalar|null, // Default: "%kernel.project_dir%/.env.%kernel.runtime_environment%.local" - * decryption_env_var?: scalar|null, // Default: "base64:default::SYMFONY_DECRYPTION_SECRET" - * }, - * notifier?: bool|array{ // Notifier configuration - * enabled?: bool, // Default: false - * message_bus?: scalar|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null - * chatter_transports?: array, - * texter_transports?: array, - * notification_on_failed_messages?: bool, // Default: false - * channel_policy?: array>, - * admin_recipients?: list, - * }, - * rate_limiter?: bool|array{ // Rate limiter configuration - * enabled?: bool, // Default: false - * limiters?: array, - * limit?: int, // The maximum allowed hits in a fixed interval or burst. - * interval?: scalar|null, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). - * rate?: array{ // Configures the fill rate if "policy" is set to "token_bucket". - * interval?: scalar|null, // Configures the rate interval. The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). - * amount?: int, // Amount of tokens to add each interval. // Default: 1 - * }, - * }>, - * }, - * uid?: bool|array{ // Uid configuration - * enabled?: bool, // Default: false - * default_uuid_version?: 7|6|4|1, // Default: 7 - * name_based_uuid_version?: 5|3, // Default: 5 - * name_based_uuid_namespace?: scalar|null, - * time_based_uuid_version?: 7|6|1, // Default: 7 - * time_based_uuid_node?: scalar|null, - * }, - * html_sanitizer?: bool|array{ // HtmlSanitizer configuration - * enabled?: bool, // Default: false - * sanitizers?: array, - * block_elements?: list, - * drop_elements?: list, - * allow_attributes?: array, - * drop_attributes?: array, - * force_attributes?: array>, - * force_https_urls?: bool, // Transforms URLs using the HTTP scheme to use the HTTPS scheme instead. // Default: false - * allowed_link_schemes?: list, - * allowed_link_hosts?: list|null, - * allow_relative_links?: bool, // Allows relative URLs to be used in links href attributes. // Default: false - * allowed_media_schemes?: list, - * allowed_media_hosts?: list|null, - * allow_relative_medias?: bool, // Allows relative URLs to be used in media source attributes (img, audio, video, ...). // Default: false - * with_attribute_sanitizers?: list, - * without_attribute_sanitizers?: list, - * max_input_length?: int, // The maximum length allowed for the sanitized input. // Default: 0 - * }>, - * }, - * webhook?: bool|array{ // Webhook configuration - * enabled?: bool, // Default: false - * message_bus?: scalar|null, // The message bus to use. // Default: "messenger.default_bus" - * routing?: array, - * }, - * remote-event?: bool|array{ // RemoteEvent configuration - * enabled?: bool, // Default: false - * }, - * json_streamer?: bool|array{ // JSON streamer configuration - * enabled?: bool, // Default: false - * }, - * } - * @psalm-type TwigConfig = array{ - * form_themes?: list, - * globals?: array, - * autoescape_service?: scalar|null, // Default: null - * autoescape_service_method?: scalar|null, // Default: null - * base_template_class?: scalar|null, // Deprecated: The child node "base_template_class" at path "twig.base_template_class" is deprecated. - * cache?: scalar|null, // Default: true - * charset?: scalar|null, // Default: "%kernel.charset%" - * debug?: bool, // Default: "%kernel.debug%" - * strict_variables?: bool, // Default: "%kernel.debug%" - * auto_reload?: scalar|null, - * optimizations?: int, - * default_path?: scalar|null, // The default path used to load templates. // Default: "%kernel.project_dir%/templates" - * file_name_pattern?: list, - * paths?: array, - * date?: array{ // The default format options used by the date filter. - * format?: scalar|null, // Default: "F j, Y H:i" - * interval_format?: scalar|null, // Default: "%d days" - * timezone?: scalar|null, // The timezone used when formatting dates, when set to null, the timezone returned by date_default_timezone_get() is used. // Default: null - * }, - * number_format?: array{ // The default format options for the number_format filter. - * decimals?: int, // Default: 0 - * decimal_point?: scalar|null, // Default: "." - * thousands_separator?: scalar|null, // Default: "," - * }, - * mailer?: array{ - * html_to_text_converter?: scalar|null, // A service implementing the "Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface". // Default: null - * }, - * } - * @psalm-type WebProfilerConfig = array{ - * toolbar?: bool|array{ // Profiler toolbar configuration - * enabled?: bool, // Default: false - * ajax_replace?: bool, // Replace toolbar on AJAX requests // Default: false - * }, - * intercept_redirects?: bool, // Default: false - * excluded_ajax_paths?: scalar|null, // Default: "^/((index|app(_[\\w]+)?)\\.php/)?_wdt" - * } - * @psalm-type ExerciseHtmlPurifierConfig = array{ - * default_cache_serializer_path?: scalar|null, // Default: "%kernel.cache_dir%/htmlpurifier" - * default_cache_serializer_permissions?: scalar|null, // Default: 493 - * html_profiles?: array, - * attributes?: array>, - * elements?: array>, - * blank_elements?: list, - * parents?: list, - * }>, - * } - * @psalm-type WebpackEncoreConfig = array{ - * output_path: scalar|null, // The path where Encore is building the assets - i.e. Encore.setOutputPath() - * crossorigin?: false|"anonymous"|"use-credentials", // crossorigin value when Encore.enableIntegrityHashes() is used, can be false (default), anonymous or use-credentials // Default: false - * preload?: bool, // preload all rendered script and link tags automatically via the http2 Link header. // Default: false - * cache?: bool, // Enable caching of the entry point file(s) // Default: false - * strict_mode?: bool, // Throw an exception if the entrypoints.json file is missing or an entry is missing from the data // Default: true - * builds?: array, - * script_attributes?: array, - * link_attributes?: array, - * } - * @psalm-type TwigExtraConfig = array{ - * cache?: bool|array{ - * enabled?: bool, // Default: false - * }, - * html?: bool|array{ - * enabled?: bool, // Default: false - * }, - * markdown?: bool|array{ - * enabled?: bool, // Default: true - * }, - * intl?: bool|array{ - * enabled?: bool, // Default: true - * }, - * cssinliner?: bool|array{ - * enabled?: bool, // Default: true - * }, - * inky?: bool|array{ - * enabled?: bool, // Default: true - * }, - * string?: bool|array{ - * enabled?: bool, // Default: false - * }, - * commonmark?: array{ - * renderer?: array{ // Array of options for rendering HTML. - * block_separator?: scalar|null, - * inner_separator?: scalar|null, - * soft_break?: scalar|null, - * }, - * html_input?: "strip"|"allow"|"escape", // How to handle HTML input. - * allow_unsafe_links?: bool, // Remove risky link and image URLs by setting this to false. // Default: true - * max_nesting_level?: int, // The maximum nesting level for blocks. // Default: 9223372036854775807 - * max_delimiters_per_line?: int, // The maximum number of strong/emphasis delimiters per line. // Default: 9223372036854775807 - * slug_normalizer?: array{ // Array of options for configuring how URL-safe slugs are created. - * instance?: mixed, - * max_length?: int, // Default: 255 - * unique?: mixed, - * }, - * commonmark?: array{ // Array of options for configuring the CommonMark core extension. - * enable_em?: bool, // Default: true - * enable_strong?: bool, // Default: true - * use_asterisk?: bool, // Default: true - * use_underscore?: bool, // Default: true - * unordered_list_markers?: list, - * }, - * ... - * }, - * } - * @psalm-type DoctrineMigrationsConfig = array{ - * enable_service_migrations?: bool, // Whether to enable fetching migrations from the service container. // Default: false - * migrations_paths?: array, - * services?: array, - * factories?: array, - * storage?: array{ // Storage to use for migration status metadata. - * table_storage?: array{ // The default metadata storage, implemented as a table in the database. - * table_name?: scalar|null, // Default: null - * version_column_name?: scalar|null, // Default: null - * version_column_length?: scalar|null, // Default: null - * executed_at_column_name?: scalar|null, // Default: null - * execution_time_column_name?: scalar|null, // Default: null - * }, - * }, - * migrations?: list, - * connection?: scalar|null, // Connection name to use for the migrations database. // Default: null - * em?: scalar|null, // Entity manager name to use for the migrations database (available when doctrine/orm is installed). // Default: null - * all_or_nothing?: scalar|null, // Run all migrations in a transaction. // Default: false - * check_database_platform?: scalar|null, // Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on. // Default: true - * custom_template?: scalar|null, // Custom template path for generated migration classes. // Default: null - * organize_migrations?: scalar|null, // Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false // Default: false - * enable_profiler?: bool, // Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead. // Default: false - * transactional?: bool, // Whether or not to wrap migrations in a single transaction. // Default: true - * } - * @psalm-type NelmioCorsConfig = array{ - * defaults?: array{ - * allow_credentials?: bool, // Default: false - * allow_origin?: list, - * allow_headers?: list, - * allow_methods?: list, - * allow_private_network?: bool, // Default: false - * expose_headers?: list, - * max_age?: scalar|null, // Default: 0 - * hosts?: list, - * origin_regex?: bool, // Default: false - * forced_allow_origin_value?: scalar|null, // Default: null - * skip_same_as_origin?: bool, // Default: true - * }, - * paths?: array, - * allow_headers?: list, - * allow_methods?: list, - * allow_private_network?: bool, - * expose_headers?: list, - * max_age?: scalar|null, // Default: 0 - * hosts?: list, - * origin_regex?: bool, - * forced_allow_origin_value?: scalar|null, // Default: null - * skip_same_as_origin?: bool, - * }>, - * } - * @psalm-type DamaDoctrineTestConfig = array{ - * enable_static_connection?: mixed, // Default: true - * enable_static_meta_data_cache?: bool, // Default: true - * enable_static_query_cache?: bool, // Default: true - * connection_keys?: list, - * } - * @psalm-type GregwarCaptchaConfig = array{ - * length?: scalar|null, // Default: 5 - * width?: scalar|null, // Default: 130 - * height?: scalar|null, // Default: 50 - * font?: scalar|null, // Default: "C:\\webdev\\sources\\develop\\vendor\\gregwar\\captcha-bundle\\DependencyInjection/../Generator/Font/captcha.ttf" - * keep_value?: scalar|null, // Default: false - * charset?: scalar|null, // Default: "abcdefhjkmnprstuvwxyz23456789" - * as_file?: scalar|null, // Default: false - * as_url?: scalar|null, // Default: false - * reload?: scalar|null, // Default: false - * image_folder?: scalar|null, // Default: "captcha" - * web_path?: scalar|null, // Default: "%kernel.project_dir%/public" - * gc_freq?: scalar|null, // Default: 100 - * expiration?: scalar|null, // Default: 60 - * quality?: scalar|null, // Default: 50 - * invalid_message?: scalar|null, // Default: "Bad code value" - * bypass_code?: scalar|null, // Default: null - * whitelist_key?: scalar|null, // Default: "captcha_whitelist_key" - * humanity?: scalar|null, // Default: 0 - * distortion?: scalar|null, // Default: true - * max_front_lines?: scalar|null, // Default: null - * max_behind_lines?: scalar|null, // Default: null - * interpolation?: scalar|null, // Default: true - * text_color?: list, - * background_color?: list, - * background_images?: list, - * disabled?: scalar|null, // Default: false - * ignore_all_effects?: scalar|null, // Default: false - * session_key?: scalar|null, // Default: "captcha" - * } - * @psalm-type NelmioSecurityConfig = array{ - * signed_cookie?: array{ - * names?: list, - * secret?: scalar|null, // Default: "%kernel.secret%" - * hash_algo?: scalar|null, - * legacy_hash_algo?: scalar|null, // Fallback algorithm to allow for frictionless hash algorithm upgrades. Use with caution and as a temporary measure as it allows for downgrade attacks. // Default: null - * separator?: scalar|null, // Default: "." - * }, - * clickjacking?: array{ - * hosts?: list, - * paths?: array, - * content_types?: list, - * }, - * external_redirects?: array{ - * abort?: bool, // Default: false - * override?: scalar|null, // Default: null - * forward_as?: scalar|null, // Default: null - * log?: bool, // Default: false - * allow_list?: list, - * }, - * flexible_ssl?: bool|array{ - * enabled?: bool, // Default: false - * cookie_name?: scalar|null, // Default: "auth" - * unsecured_logout?: bool, // Default: false - * }, - * forced_ssl?: bool|array{ - * enabled?: bool, // Default: false - * hsts_max_age?: scalar|null, // Default: null - * hsts_subdomains?: bool, // Default: false - * hsts_preload?: bool, // Default: false - * allow_list?: list, - * hosts?: list, - * redirect_status_code?: scalar|null, // Default: 302 - * }, - * content_type?: array{ - * nosniff?: bool, // Default: false - * }, - * xss_protection?: array{ // Deprecated: The "xss_protection" option is deprecated, use Content Security Policy without allowing "unsafe-inline" scripts instead. - * enabled?: bool, // Default: false - * mode_block?: bool, // Default: false - * report_uri?: scalar|null, // Default: null - * }, - * csp?: bool|array{ - * enabled?: bool, // Default: true - * request_matcher?: scalar|null, // Default: null - * hosts?: list, - * content_types?: list, - * report_endpoint?: array{ - * log_channel?: scalar|null, // Default: null - * log_formatter?: scalar|null, // Default: "nelmio_security.csp_report.log_formatter" - * log_level?: "alert"|"critical"|"debug"|"emergency"|"error"|"info"|"notice"|"warning", // Default: "notice" - * filters?: array{ - * domains?: bool, // Default: true - * schemes?: bool, // Default: true - * browser_bugs?: bool, // Default: true - * injected_scripts?: bool, // Default: true - * }, - * dismiss?: list>, - * }, - * compat_headers?: bool, // Default: true - * report_logger_service?: scalar|null, // Default: "logger" - * hash?: array{ - * algorithm?: "sha256"|"sha384"|"sha512", // The algorithm to use for hashes // Default: "sha256" - * }, - * report?: array{ - * level1_fallback?: bool, // Provides CSP Level 1 fallback when using hash or nonce (CSP level 2) by adding 'unsafe-inline' source. See https://www.w3.org/TR/CSP2/#directive-script-src and https://www.w3.org/TR/CSP2/#directive-style-src // Default: true - * browser_adaptive?: bool|array{ // Do not send directives that browser do not support - * enabled?: bool, // Default: false - * parser?: scalar|null, // Default: "nelmio_security.ua_parser.ua_php" - * }, - * default-src?: list, - * base-uri?: list, - * block-all-mixed-content?: bool, // Default: false - * child-src?: list, - * connect-src?: list, - * font-src?: list, - * form-action?: list, - * frame-ancestors?: list, - * frame-src?: list, - * img-src?: list, - * manifest-src?: list, - * media-src?: list, - * object-src?: list, - * plugin-types?: list, - * script-src?: list, - * style-src?: list, - * upgrade-insecure-requests?: bool, // Default: false - * report-uri?: list, - * worker-src?: list, - * prefetch-src?: list, - * report-to?: scalar|null, - * }, - * enforce?: array{ - * level1_fallback?: bool, // Provides CSP Level 1 fallback when using hash or nonce (CSP level 2) by adding 'unsafe-inline' source. See https://www.w3.org/TR/CSP2/#directive-script-src and https://www.w3.org/TR/CSP2/#directive-style-src // Default: true - * browser_adaptive?: bool|array{ // Do not send directives that browser do not support - * enabled?: bool, // Default: false - * parser?: scalar|null, // Default: "nelmio_security.ua_parser.ua_php" - * }, - * default-src?: list, - * base-uri?: list, - * block-all-mixed-content?: bool, // Default: false - * child-src?: list, - * connect-src?: list, - * font-src?: list, - * form-action?: list, - * frame-ancestors?: list, - * frame-src?: list, - * img-src?: list, - * manifest-src?: list, - * media-src?: list, - * object-src?: list, - * plugin-types?: list, - * script-src?: list, - * style-src?: list, - * upgrade-insecure-requests?: bool, // Default: false - * report-uri?: list, - * worker-src?: list, - * prefetch-src?: list, - * report-to?: scalar|null, - * }, - * }, - * referrer_policy?: bool|array{ - * enabled?: bool, // Default: false - * policies?: list, - * }, - * permissions_policy?: bool|array{ - * enabled?: bool, // Default: false - * policies?: array{ - * accelerometer?: mixed, // Default: null - * ambient_light_sensor?: mixed, // Default: null - * attribution_reporting?: mixed, // Default: null - * autoplay?: mixed, // Default: null - * bluetooth?: mixed, // Default: null - * browsing_topics?: mixed, // Default: null - * camera?: mixed, // Default: null - * captured_surface_control?: mixed, // Default: null - * compute_pressure?: mixed, // Default: null - * cross_origin_isolated?: mixed, // Default: null - * deferred_fetch?: mixed, // Default: null - * deferred_fetch_minimal?: mixed, // Default: null - * display_capture?: mixed, // Default: null - * encrypted_media?: mixed, // Default: null - * fullscreen?: mixed, // Default: null - * gamepad?: mixed, // Default: null - * geolocation?: mixed, // Default: null - * gyroscope?: mixed, // Default: null - * hid?: mixed, // Default: null - * identity_credentials_get?: mixed, // Default: null - * idle_detection?: mixed, // Default: null - * interest_cohort?: mixed, // Default: null - * language_detector?: mixed, // Default: null - * local_fonts?: mixed, // Default: null - * magnetometer?: mixed, // Default: null - * microphone?: mixed, // Default: null - * midi?: mixed, // Default: null - * otp_credentials?: mixed, // Default: null - * payment?: mixed, // Default: null - * picture_in_picture?: mixed, // Default: null - * publickey_credentials_create?: mixed, // Default: null - * publickey_credentials_get?: mixed, // Default: null - * screen_wake_lock?: mixed, // Default: null - * serial?: mixed, // Default: null - * speaker_selection?: mixed, // Default: null - * storage_access?: mixed, // Default: null - * summarizer?: mixed, // Default: null - * translator?: mixed, // Default: null - * usb?: mixed, // Default: null - * web_share?: mixed, // Default: null - * window_management?: mixed, // Default: null - * xr_spatial_tracking?: mixed, // Default: null - * }, - * }, - * } - * @psalm-type BabdevPagerfantaConfig = array{ - * default_view?: scalar|null, // Default: "default" - * default_twig_template?: scalar|null, // Default: "@BabDevPagerfanta/default.html.twig" - * exceptions_strategy?: array{ - * out_of_range_page?: "to_http_not_found"|"custom", // Default: "to_http_not_found" - * not_valid_current_page?: "to_http_not_found"|"custom", // Default: "to_http_not_found" - * }, - * } - * @psalm-type StofDoctrineExtensionsConfig = array{ - * orm?: array, - * mongodb?: array, - * class?: array{ - * translatable?: scalar|null, // Default: "Gedmo\\Translatable\\TranslatableListener" - * timestampable?: scalar|null, // Default: "Gedmo\\Timestampable\\TimestampableListener" - * blameable?: scalar|null, // Default: "Gedmo\\Blameable\\BlameableListener" - * sluggable?: scalar|null, // Default: "Gedmo\\Sluggable\\SluggableListener" - * tree?: scalar|null, // Default: "Gedmo\\Tree\\TreeListener" - * loggable?: scalar|null, // Default: "Gedmo\\Loggable\\LoggableListener" - * sortable?: scalar|null, // Default: "Gedmo\\Sortable\\SortableListener" - * softdeleteable?: scalar|null, // Default: "Gedmo\\SoftDeleteable\\SoftDeleteableListener" - * uploadable?: scalar|null, // Default: "Gedmo\\Uploadable\\UploadableListener" - * reference_integrity?: scalar|null, // Default: "Gedmo\\ReferenceIntegrity\\ReferenceIntegrityListener" - * }, - * uploadable?: array{ - * default_file_path?: scalar|null, // Default: null - * mime_type_guesser_class?: scalar|null, // Default: "Stof\\DoctrineExtensionsBundle\\Uploadable\\MimeTypeGuesserAdapter" - * default_file_info_class?: scalar|null, // Default: "Stof\\DoctrineExtensionsBundle\\Uploadable\\UploadedFileInfo" - * validate_writable_directory?: bool, // Default: true - * }, - * default_locale?: scalar|null, // Default: "en" - * translation_fallback?: bool, // Default: false - * persist_default_translation?: bool, // Default: false - * skip_translation_on_load?: bool, // Default: false - * metadata_cache_pool?: scalar|null, // Default: null - * } - * @psalm-type MakerConfig = array{ - * root_namespace?: scalar|null, // Default: "App" - * generate_final_classes?: bool, // Default: true - * generate_final_entities?: bool, // Default: false - * } - * @psalm-type ConfigType = array{ - * imports?: ImportsConfig, - * parameters?: ParametersConfig, - * services?: ServicesConfig, - * security?: SecurityConfig, - * monolog?: MonologConfig, - * doctrine?: DoctrineConfig, - * framework?: FrameworkConfig, - * twig?: TwigConfig, - * exercise_html_purifier?: ExerciseHtmlPurifierConfig, - * webpack_encore?: WebpackEncoreConfig, - * twig_extra?: TwigExtraConfig, - * doctrine_migrations?: DoctrineMigrationsConfig, - * nelmio_cors?: NelmioCorsConfig, - * gregwar_captcha?: GregwarCaptchaConfig, - * nelmio_security?: NelmioSecurityConfig, - * babdev_pagerfanta?: BabdevPagerfantaConfig, - * stof_doctrine_extensions?: StofDoctrineExtensionsConfig, - * "when@dev"?: array{ - * imports?: ImportsConfig, - * parameters?: ParametersConfig, - * services?: ServicesConfig, - * security?: SecurityConfig, - * monolog?: MonologConfig, - * doctrine?: DoctrineConfig, - * nelmio_alice?: NelmioAliceConfig, - * fidry_alice_data_fixtures?: FidryAliceDataFixturesConfig, - * hautelook_alice?: HautelookAliceConfig, - * debug?: DebugConfig, - * framework?: FrameworkConfig, - * twig?: TwigConfig, - * web_profiler?: WebProfilerConfig, - * maker?: MakerConfig, - * exercise_html_purifier?: ExerciseHtmlPurifierConfig, - * webpack_encore?: WebpackEncoreConfig, - * twig_extra?: TwigExtraConfig, - * doctrine_migrations?: DoctrineMigrationsConfig, - * nelmio_cors?: NelmioCorsConfig, - * gregwar_captcha?: GregwarCaptchaConfig, - * nelmio_security?: NelmioSecurityConfig, - * babdev_pagerfanta?: BabdevPagerfantaConfig, - * stof_doctrine_extensions?: StofDoctrineExtensionsConfig, - * }, - * "when@prod"?: array{ - * imports?: ImportsConfig, - * parameters?: ParametersConfig, - * services?: ServicesConfig, - * security?: SecurityConfig, - * monolog?: MonologConfig, - * doctrine?: DoctrineConfig, - * framework?: FrameworkConfig, - * twig?: TwigConfig, - * exercise_html_purifier?: ExerciseHtmlPurifierConfig, - * webpack_encore?: WebpackEncoreConfig, - * twig_extra?: TwigExtraConfig, - * doctrine_migrations?: DoctrineMigrationsConfig, - * nelmio_cors?: NelmioCorsConfig, - * gregwar_captcha?: GregwarCaptchaConfig, - * nelmio_security?: NelmioSecurityConfig, - * babdev_pagerfanta?: BabdevPagerfantaConfig, - * stof_doctrine_extensions?: StofDoctrineExtensionsConfig, - * }, - * "when@test"?: array{ - * imports?: ImportsConfig, - * parameters?: ParametersConfig, - * services?: ServicesConfig, - * security?: SecurityConfig, - * monolog?: MonologConfig, - * doctrine?: DoctrineConfig, - * nelmio_alice?: NelmioAliceConfig, - * fidry_alice_data_fixtures?: FidryAliceDataFixturesConfig, - * hautelook_alice?: HautelookAliceConfig, - * debug?: DebugConfig, - * framework?: FrameworkConfig, - * twig?: TwigConfig, - * web_profiler?: WebProfilerConfig, - * exercise_html_purifier?: ExerciseHtmlPurifierConfig, - * webpack_encore?: WebpackEncoreConfig, - * twig_extra?: TwigExtraConfig, - * doctrine_migrations?: DoctrineMigrationsConfig, - * nelmio_cors?: NelmioCorsConfig, - * dama_doctrine_test?: DamaDoctrineTestConfig, - * gregwar_captcha?: GregwarCaptchaConfig, - * nelmio_security?: NelmioSecurityConfig, - * babdev_pagerfanta?: BabdevPagerfantaConfig, - * stof_doctrine_extensions?: StofDoctrineExtensionsConfig, - * }, - * ..., - * }> - * } - */ -final class App -{ - /** - * @param ConfigType $config - * - * @psalm-return ConfigType - */ - public static function config(array $config): array - { - return AppReference::config($config); - } -} - -namespace Symfony\Component\Routing\Loader\Configurator; - -/** - * This class provides array-shapes for configuring the routes of an application. - * - * Example: - * - * ```php - * // config/routes.php - * namespace Symfony\Component\Routing\Loader\Configurator; - * - * return Routes::config([ - * 'controllers' => [ - * 'resource' => 'routing.controllers', - * ], - * ]); - * ``` - * - * @psalm-type RouteConfig = array{ - * path: string|array, - * controller?: string, - * methods?: string|list, - * requirements?: array, - * defaults?: array, - * options?: array, - * host?: string|array, - * schemes?: string|list, - * condition?: string, - * locale?: string, - * format?: string, - * utf8?: bool, - * stateless?: bool, - * } - * @psalm-type ImportConfig = array{ - * resource: string, - * type?: string, - * exclude?: string|list, - * prefix?: string|array, - * name_prefix?: string, - * trailing_slash_on_root?: bool, - * controller?: string, - * methods?: string|list, - * requirements?: array, - * defaults?: array, - * options?: array, - * host?: string|array, - * schemes?: string|list, - * condition?: string, - * locale?: string, - * format?: string, - * utf8?: bool, - * stateless?: bool, - * } - * @psalm-type AliasConfig = array{ - * alias: string, - * deprecated?: array{package:string, version:string, message?:string}, - * } - * @psalm-type RoutesConfig = array{ - * "when@dev"?: array, - * "when@prod"?: array, - * "when@test"?: array, - * ... - * } - */ -final class Routes -{ - /** - * @param RoutesConfig $config - * - * @psalm-return RoutesConfig - */ - public static function config(array $config): array - { - return $config; - } -} diff --git a/yarn.lock b/yarn.lock index 8330c15d8..632bc7d66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1639,24 +1639,33 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== dependencies: - "@sinclair/typebox" "^0.27.8" + "@types/node" "*" + jest-regex-util "30.0.1" + +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== + dependencies: + "@sinclair/typebox" "^0.34.0" -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.2.0.tgz#1c678a7924b8f59eafd4c77d56b6d0ba976d62b8" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" @@ -1874,10 +1883,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@sinclair/typebox@^0.34.0": + version "0.34.41" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.41.tgz#aa51a6c1946df2c5a11494a2cdb9318e026db16c" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" @@ -1912,9 +1921,9 @@ yargs-parser "^21.0.0" "@tailwindcss/forms@^0.5": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.10.tgz#0a1cd67b6933402f1985a04595bd24f9785aa302" - integrity sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw== + version "0.5.11" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.11.tgz#e77039e96fa7b87c3d001a991f77f9418e666700" + integrity sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA== dependencies: mini-svg-data-uri "^1.2.3" @@ -1990,7 +1999,7 @@ dependencies: "@types/unist" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== @@ -2002,7 +2011,7 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": +"@types/istanbul-reports@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== @@ -2041,9 +2050,9 @@ integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node@*": - version "24.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== + version "25.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.3.tgz#79b9ac8318f373fbfaaf6e2784893efa9701f269" + integrity sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA== dependencies: undici-types "~7.16.0" @@ -2069,14 +2078,14 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^17.0.8": +"@types/yargs@^17.0.33": version "17.0.35" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" -"@ungap/structured-clone@^1.0.0": +"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== @@ -2366,14 +2375,13 @@ attr-accept@^2.2.4: integrity sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ== autoprefixer@^10.4.20: - version "10.4.22" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.22.tgz#90b27ab55ec0cf0684210d1f056f7d65dac55f16" - integrity sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg== + version "10.4.23" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.23.tgz#c6aa6db8e7376fcd900f9fd79d143ceebad8c4e6" + integrity sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA== dependencies: - browserslist "^4.27.0" - caniuse-lite "^1.0.30001754" + browserslist "^4.28.1" + caniuse-lite "^1.0.30001760" fraction.js "^5.3.4" - normalize-range "^0.1.2" picocolors "^1.1.1" postcss-value-parser "^4.2.0" @@ -2425,10 +2433,10 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -baseline-browser-mapping@^2.8.25: - version "2.8.32" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz#5de72358cf363ac41e7d642af239f6ac5ed1270a" - integrity sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw== +baseline-browser-mapping@^2.9.0: + version "2.9.11" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz#53724708c8db5f97206517ecfe362dbe5181deea" + integrity sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ== big.js@^5.2.2: version "5.2.2" @@ -2501,16 +2509,16 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.24.0, browserslist@^4.26.3, browserslist@^4.27.0, browserslist@^4.28.0: - version "4.28.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.0.tgz#9cefece0a386a17a3cd3d22ebf67b9deca1b5929" - integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== +browserslist@^4.0.0, browserslist@^4.24.0, browserslist@^4.27.0, browserslist@^4.28.0, browserslist@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - baseline-browser-mapping "^2.8.25" - caniuse-lite "^1.0.30001754" - electron-to-chromium "^1.5.249" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" node-releases "^2.0.27" - update-browserslist-db "^1.1.4" + update-browserslist-db "^1.2.0" bs-custom-file-input@^1.3.4: version "1.3.4" @@ -2573,10 +2581,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001754: - version "1.0.30001757" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz#a46ff91449c69522a462996c6aac4ef95d7ccc5e" - integrity sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001760: + version "1.0.30001761" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz#4ca4c6e3792b24e8e2214baa568fc0e43de28191" + integrity sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g== ccount@^2.0.0: version "2.0.1" @@ -2592,7 +2600,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2647,14 +2655,14 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== +ci-info@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== "circle-flags@https://github.com/HatScripts/circle-flags": version "1.0.0" - resolved "https://github.com/HatScripts/circle-flags#c888ec17d0fb23ad9131fe1de34b7bf88ff5d9fc" + resolved "https://github.com/HatScripts/circle-flags#287e4c3899993cee572bb848379ddb6ec590b724" ckeditor5@47.2.0: version "47.2.0" @@ -2918,13 +2926,13 @@ css-loader@^7.1.0: semver "^7.5.4" css-minimizer-webpack-plugin@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.2.tgz#aa1b01c6033f5b2f86ddb60c1f5bddd012b50cac" - integrity sha512-nBRWZtI77PBZQgcXMNqiIXVshiQOVLGSf2qX/WZfG8IQfMbeHUMXaBWQmiiSTmPJUflQxHjZjzAmuyO7tpL2Jg== + version "7.0.4" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-7.0.4.tgz#92d2643e3658e3f484a70382a5dba18e51997f2e" + integrity sha512-2iACis+P8qdLj1tHcShtztkGhCNIRUajJj7iX0IM9a5FA0wXGwjV8Nf6+HsBjBfb4LO8TTAVoetBbM54V6f3+Q== dependencies: "@jridgewell/trace-mapping" "^0.3.25" cssnano "^7.0.4" - jest-worker "^29.7.0" + jest-worker "^30.0.5" postcss "^8.4.40" schema-utils "^4.2.0" serialize-javascript "^6.0.2" @@ -3227,10 +3235,10 @@ ekko-lightbox@^5.3.0: resolved "https://registry.yarnpkg.com/ekko-lightbox/-/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew== -electron-to-chromium@^1.5.249: - version "1.5.262" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz#c31eed591c6628908451c9ca0f0758ed514aa003" - integrity sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ== +electron-to-chromium@^1.5.263: + version "1.5.267" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz#5d84f2df8cdb6bfe7e873706bb21bd4bfb574dc7" + integrity sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw== emoji-regex@^8.0.0: version "8.0.0" @@ -3242,10 +3250,10 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.3: - version "5.18.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" - integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.4: + version "5.18.4" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz#c22d33055f3952035ce6a144ce092447c525f828" + integrity sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -3280,9 +3288,9 @@ error-stack-parser@^2.1.4: stackframe "^1.3.4" es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: - version "1.24.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" - integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== + version "1.24.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.1.tgz#f0c131ed5ea1bb2411134a8dd94def09c46c7899" + integrity sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw== dependencies: array-buffer-byte-length "^1.0.2" arraybuffer.prototype.slice "^1.0.4" @@ -3349,10 +3357,10 @@ es-errors@^1.3.0: resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-module-lexer@^1.2.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== +es-module-lexer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.0.0.tgz#f657cd7a9448dcdda9c070a3cb75e5dc1e85f5b1" + integrity sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw== es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" @@ -3716,15 +3724,15 @@ gopd@^1.0.1, gopd@^1.2.0: resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== gsap@^3.7.1: - version "3.13.0" - resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.13.0.tgz#597d4e019a2bb487785387d91296adebf92db9dd" - integrity sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw== + version "3.14.2" + resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.14.2.tgz#6a9ea31e5046948e0be61eae006ae576ca5937d6" + integrity sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA== has-bigints@^1.0.2: version "1.1.0" @@ -4282,17 +4290,22 @@ jarallax@^1.12.4: lite-ready "^1.0.4" video-worker "^1.1.17" -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.2.0.tgz#5142adbcad6f4e53c2776c067a4db3c14f913705" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" jest-worker@^26.2.1: version "26.6.2" @@ -4312,15 +4325,16 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== +jest-worker@^30.0.5: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.2.0.tgz#fd5c2a36ff6058ec8f74366ec89538cc99539d26" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== dependencies: "@types/node" "*" - jest-util "^29.7.0" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" jiti@^1.20.0, jiti@^1.21.7: version "1.21.7" @@ -5152,11 +5166,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" @@ -5309,12 +5318,12 @@ picocolors@^1.1.0, picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.3: +picomatch@^4.0.2, picomatch@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== @@ -6083,9 +6092,9 @@ sass-loader@16.*: neo-async "^2.6.2" sass@1.*: - version "1.94.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.94.2.tgz#198511fc6fdd2fc0a71b8d1261735c12608d4ef3" - integrity sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A== + version "1.97.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.1.tgz#f36e492baf8ccdd08d591b58d3d8b53ea35ab905" + integrity sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -6445,7 +6454,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -6471,9 +6480,9 @@ svgo@^4.0.0: sax "^1.4.1" tailwindcss@^3.1: - version "3.4.18" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.18.tgz#9fa9650aace186644b608242f1e57d2d55593301" - integrity sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ== + version "3.4.19" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.19.tgz#af2a0a4ae302d52ebe078b6775e799e132500ee2" + integrity sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -6535,10 +6544,10 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -terser-webpack-plugin@^5.3.0, terser-webpack-plugin@^5.3.11: - version "5.3.14" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" - integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== +terser-webpack-plugin@^5.3.0, terser-webpack-plugin@^5.3.16: + version "5.3.16" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz#741e448cc3f93d8026ebe4f7ef9e4afacfd56330" + integrity sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -6820,10 +6829,10 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" - integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -6954,9 +6963,9 @@ webpack-sources@^3.3.3: integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== webpack@5.*: - version "5.103.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.103.0.tgz#17a7c5a5020d5a3a37c118d002eade5ee2c6f3da" - integrity sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw== + version "5.104.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.104.1.tgz#94bd41eb5dbf06e93be165ba8be41b8260d4fb1a" + integrity sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.8" @@ -6966,10 +6975,10 @@ webpack@5.*: "@webassemblyjs/wasm-parser" "^1.14.1" acorn "^8.15.0" acorn-import-phases "^1.0.3" - browserslist "^4.26.3" + browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.17.3" - es-module-lexer "^1.2.1" + enhanced-resolve "^5.17.4" + es-module-lexer "^2.0.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -6980,7 +6989,7 @@ webpack@5.*: neo-async "^2.6.2" schema-utils "^4.3.3" tapable "^2.3.0" - terser-webpack-plugin "^5.3.11" + terser-webpack-plugin "^5.3.16" watchpack "^2.4.4" webpack-sources "^3.3.3" From 1329d61d30c21d32f0986c1b053b7442559b028a Mon Sep 17 00:00:00 2001 From: thisismeonmounteverest Date: Wed, 24 Dec 2025 15:51:50 +0100 Subject: [PATCH 23/23] Moving docker setup from nginx and php to Frankenphp. --- Dockerfile | 65 +++++--------------------------- composer.json | 2 +- docker-compose.override.yml.dist | 2 +- docker-compose.yml | 26 +++++-------- docker/frankenphp/Caddyfile | 10 +++++ docker/nginx/conf.d/default.conf | 43 --------------------- docker/php/docker-entrypoint.sh | 6 +-- docker/php/docker-healthcheck.sh | 12 ------ 8 files changed, 34 insertions(+), 132 deletions(-) create mode 100644 docker/frankenphp/Caddyfile delete mode 100644 docker/nginx/conf.d/default.conf delete mode 100755 docker/php/docker-healthcheck.sh diff --git a/Dockerfile b/Dockerfile index c5a184618..d5d0e59d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,11 @@ # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact ARG PHP_VERSION=8.5 -ARG NGINX_VERSION=1.29 +ARG FRANKENPHP_VERSION=1.11 # "php" stage -FROM php:${PHP_VERSION}-fpm-alpine AS bewelcome_php +FROM dunglas/frankenphp:${FRANKENPHP_VERSION}-php${PHP_VERSION}-alpine AS bewelcome_php # persistent / runtime deps RUN apk add --no-cache \ @@ -25,22 +25,9 @@ RUN apk add --no-cache \ python3 \ ; -ARG APCU_VERSION=5.1.24 RUN set -eux; \ - apk add --no-cache --virtual .build-deps \ - $PHPIZE_DEPS \ - freetype-dev \ - icu-dev \ - libjpeg-turbo-dev \ - libpng-dev \ - libxslt-dev \ - libzip-dev \ - zlib-dev \ - ; \ - \ - docker-php-ext-configure zip; \ - docker-php-ext-configure gd --with-freetype --with-jpeg=/usr/include/ --enable-gd; \ - docker-php-ext-install -j$(nproc) \ + install-php-extensions \ + apcu \ intl \ gd \ mysqli \ @@ -48,26 +35,9 @@ RUN set -eux; \ pdo_mysql \ xsl \ zip \ - exif \ - ; \ - pecl install \ - apcu-${APCU_VERSION} \ - ; \ - pecl clear-cache; \ - docker-php-ext-enable \ - apcu \ + exif \ opcache \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-cache --virtual .phpexts-rundeps $runDeps; \ - \ - apk del .build-deps + ; # https://github.com/nodejs/docker-node/issues/1126 RUN set -eux; \ @@ -80,12 +50,6 @@ RUN export PATH="/usr/local/bin:$PATH" RUN ln -s $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini COPY docker/php/conf.d/bewelcome.prod.ini $PHP_INI_DIR/conf.d/bewelcome.ini -RUN set -eux; \ - { \ - echo '[www]'; \ - echo 'ping.path = /ping'; \ - } | tee /usr/local/etc/php-fpm.d/docker-healthcheck.conf - # https://getcomposer.org/doc/03-cli.md#composer-allow-superuser ENV COMPOSER_ALLOW_SUPERUSER=1 @@ -143,27 +107,16 @@ RUN set -eux; \ VOLUME /srv/bewelcome/var VOLUME /srv/bewelcome/data -COPY docker/php/docker-healthcheck.sh /usr/local/bin/docker-healthcheck -RUN chmod +x /usr/local/bin/docker-healthcheck +COPY docker/frankenphp/Caddyfile /etc/caddy/Caddyfile -HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD ["docker-healthcheck"] +HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD ["frankenphp", "php-cli", "-r", "echo 1;"] COPY docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint RUN chmod +x /usr/local/bin/docker-entrypoint ENTRYPOINT ["docker-entrypoint"] -CMD ["php-fpm"] - - -# "nginx" stage -# depends on the "php" stage above -FROM nginx:${NGINX_VERSION}-alpine AS bewelcome_nginx - -COPY docker/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf - -WORKDIR /srv/bewelcome/public +CMD ["frankenphp", "run", "--config", "/etc/caddy/Caddyfile"] -COPY --from=bewelcome_php /srv/bewelcome/public ./ # "php" dev stage # depends on the "php" stage above diff --git a/composer.json b/composer.json index d7922fd1a..74893943e 100644 --- a/composer.json +++ b/composer.json @@ -152,7 +152,7 @@ "config": { "sort-packages": true, "platform": { - "php": "8.4" + "php": "8.5" }, "allow-plugins": { "infection/extension-installer": true, diff --git a/docker-compose.override.yml.dist b/docker-compose.override.yml.dist index eb4a8e4e6..ce160ccc1 100644 --- a/docker-compose.override.yml.dist +++ b/docker-compose.override.yml.dist @@ -1,5 +1,5 @@ services: - web: + app: ports: - target: 80 published: 8080 diff --git a/docker-compose.yml b/docker-compose.yml index f54ff15f7..ba6525010 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,22 +1,23 @@ x-cache-from: - &cache-from cache_from: - - ${NGINX_IMAGE:-bewelcome/nginx} - - ${PHP_IMAGE:-bewelcome/php} + - ${APP_IMAGE:-bewelcome/app} services: - php: + app: build: context: . target: bewelcome_php_dev <<: *cache-from - image: ${PHP_IMAGE:-bewelcome/php} + image: ${APP_IMAGE:-bewelcome/app} + environment: + SERVER_NAME: :80 healthcheck: interval: 10s timeout: 3s retries: 3 start_period: 30s - test: ["NONE"] + test: ["CMD", "frankenphp", "php-cli", "-r", "echo 1;"] depends_on: - db - manticore @@ -25,17 +26,10 @@ services: - .:/srv/bewelcome:rw,cached # if you develop on Linux, you may use a bind-mounted host directory instead # - ./var:/srv/bewelcome/var:rw - - web: - build: - context: . - target: bewelcome_nginx - <<: *cache-from - image: ${NGINX_IMAGE:-bewelcome/nginx} - depends_on: - - php - volumes: - - ./public:/srv/bewelcome/public:ro + ports: + - "8080:80" + - "8043:443" + - "8043:443/udp" db: image: mariadb:12.0.2 diff --git a/docker/frankenphp/Caddyfile b/docker/frankenphp/Caddyfile new file mode 100644 index 000000000..e5410915b --- /dev/null +++ b/docker/frankenphp/Caddyfile @@ -0,0 +1,10 @@ +{ + frankenphp + order php_server before file_server +} + +:80 { + root * /srv/bewelcome/public + encode zstd gzip + php_server +} diff --git a/docker/nginx/conf.d/default.conf b/docker/nginx/conf.d/default.conf deleted file mode 100644 index 8af09dc1e..000000000 --- a/docker/nginx/conf.d/default.conf +++ /dev/null @@ -1,43 +0,0 @@ -server { - root /srv/bewelcome/public; - - location / { - # try to serve file directly, fallback to index.php - try_files $uri /index.php$is_args$args; - } - - location ~ ^/index\.php(/|$) { - # Comment the next line and uncomment the next to enable dynamic resolution (incompatible with Kubernetes) - fastcgi_pass php:9000; - #resolver 127.0.0.11; - #set $upstream_host php; - #fastcgi_pass $upstream_host:9000; - - # Increase the buffer size to handle large cache invalidation headers - fastcgi_buffer_size 32k; - fastcgi_buffers 32 4k; - - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - - # When you are using symlinks to link the document root to the - # current version of your application, you should pass the real - # application path instead of the path to the symlink to PHP - # FPM. - # Otherwise, PHP's OPcache may not properly detect changes to - # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 - # for more information). - fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; - fastcgi_param DOCUMENT_ROOT $realpath_root; - # Prevents URIs that include the front controller. This will 404: - # http://domain.tld/index.php/some-path - # Remove the internal directive to allow URIs like this - internal; - } - - # return 404 for all other php files not matching the front controller - # this prevents access to other php files you don't want to be accessible. - location ~ \.php$ { - return 404; - } -} diff --git a/docker/php/docker-entrypoint.sh b/docker/php/docker-entrypoint.sh index f9c3d0b07..13143e825 100755 --- a/docker/php/docker-entrypoint.sh +++ b/docker/php/docker-entrypoint.sh @@ -3,10 +3,10 @@ set -e # first arg is `-f` or `--some-option` if [ "${1#-}" != "$1" ]; then - set -- php-fpm "$@" + set -- frankenphp run "$@" fi -if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then +if [ "$1" = 'frankenphp' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ] || [ "$1" = 'ls' ]; then PHP_INI_RECOMMENDED="$PHP_INI_DIR/php.ini-production" if [ "$APP_ENV" != 'prod' ]; then PHP_INI_RECOMMENDED="$PHP_INI_DIR/php.ini-development" @@ -81,4 +81,4 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then bin/console manticore:indices:geonames fi -exec docker-php-entrypoint "$@" +exec "$@" diff --git a/docker/php/docker-healthcheck.sh b/docker/php/docker-healthcheck.sh deleted file mode 100755 index cb566eee7..000000000 --- a/docker/php/docker-healthcheck.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -set -e - -export SCRIPT_NAME=/ping -export SCRIPT_FILENAME=/ping -export REQUEST_METHOD=GET - -if cgi-fcgi -bind -connect 127.0.0.1:9000; then - exit 0 -fi - -exit 1