From 0e20ab95a70adf55f5d5191bdce31c71ea028f96 Mon Sep 17 00:00:00 2001
From: Christian Moser
Date: Mon, 9 Dec 2024 08:44:47 +0100
Subject: [PATCH] 2024.12.09 08:44:47
---
PO/LINGUAS | 1 -
PO/POTFILES | 16 -
PO/POTFILES.webroot | 10 -
PO/PTOFILES | 1 -
PO/compilemessages | 19 -
PO/de.po | 151 --
PO/makemessages | 35 -
PO/messages.pot | 150 --
PO/webroot/de.po | 18 -
PO/webroot/messages.pot | 18 -
composer.json | 87 +-
composer.lock | 2133 +++++++++--------
config/bundles.php | 1 +
config/packages/csrf.yaml | 11 +
config/packages/mailer.yaml | 1 +
config/packages/reset_password.yaml | 4 +
config/packages/uid.yaml | 4 -
migrations/Version20241201211313.php | 32 -
...01030110.php => Version20241204160251.php} | 25 +-
migrations/Version20241206014353.php | 41 +
security.yaml | 1 +
src/Controller/Admin/DashboardController.php | 46 +
.../Admin/WebrootFileCrudController.php | 28 +
.../WebrootFilePermissionCrudController.php | 28 +
.../Admin/WebrootRoleCrudController.php | 28 +
.../Admin/WebrootUserCrudController.php | 28 +
src/Controller/MainController.php | 41 +
src/Controller/ResetPasswordController.php | 181 ++
src/Controller/SecurityController.php | 15 +-
src/Controller/SetupController.php | 30 +-
src/Controller/WebrootController.php | 144 +-
src/Controller/WebrootSetupController.php | 110 +-
src/Entity/ResetPasswordRequest.php | 39 +
src/Entity/WebrootFile.php | 13 +-
src/Entity/WebrootUser.php | 1 +
src/Form/ChangePasswordFormType.php | 58 +
src/Form/ResetPasswordRequestFormType.php | 31 +
.../ResetPasswordRequestRepository.php | 32 +
src/Repository/WebrootFileRepository.php | 104 +
symfony.lock | 39 +-
templates/main/index.html.twig | 7 +
.../reset_password/check_email.html.twig | 11 +
templates/reset_password/de.email.html.twig | 9 +
templates/reset_password/email.html.twig | 9 +
templates/reset_password/request.html.twig | 22 +
templates/reset_password/reset.html.twig | 12 +
templates/security/login.html.twig | 9 +-
templates/setup/initial-setup.run.html.twig | 7 +-
templates/webroot/de.directory.html.twig | 12 +-
templates/webroot/directory.html.twig | 32 +-
translations/ResetPasswordBundle.de.yaml | 13 +
translations/ResetPasswordBundle.en.yaml | 13 +
translations/mydevel.webroot.en.yaml | 13 -
.../mydevel.webroot.role+intl-icu.en de.po | 35 +
.../mydevel.webroot.setup+intl-icu.en de.po | 173 ++
translations/security.de.yaml | 11 +-
translations/security.en.yaml | 11 +-
v7.2.0 | 0
58 files changed, 2569 insertions(+), 1585 deletions(-)
delete mode 100644 PO/LINGUAS
delete mode 100644 PO/POTFILES
delete mode 100644 PO/POTFILES.webroot
delete mode 100644 PO/PTOFILES
delete mode 100644 PO/compilemessages
delete mode 100644 PO/de.po
delete mode 100644 PO/makemessages
delete mode 100644 PO/messages.pot
delete mode 100644 PO/webroot/de.po
delete mode 100644 PO/webroot/messages.pot
create mode 100644 config/packages/csrf.yaml
create mode 100644 config/packages/reset_password.yaml
delete mode 100644 config/packages/uid.yaml
delete mode 100644 migrations/Version20241201211313.php
rename migrations/{Version20241201030110.php => Version20241204160251.php} (76%)
create mode 100644 migrations/Version20241206014353.php
create mode 100644 security.yaml
create mode 100644 src/Controller/Admin/DashboardController.php
create mode 100644 src/Controller/Admin/WebrootFileCrudController.php
create mode 100644 src/Controller/Admin/WebrootFilePermissionCrudController.php
create mode 100644 src/Controller/Admin/WebrootRoleCrudController.php
create mode 100644 src/Controller/Admin/WebrootUserCrudController.php
create mode 100644 src/Controller/ResetPasswordController.php
create mode 100644 src/Entity/ResetPasswordRequest.php
create mode 100644 src/Form/ChangePasswordFormType.php
create mode 100644 src/Form/ResetPasswordRequestFormType.php
create mode 100644 src/Repository/ResetPasswordRequestRepository.php
create mode 100644 templates/reset_password/check_email.html.twig
create mode 100644 templates/reset_password/de.email.html.twig
create mode 100644 templates/reset_password/email.html.twig
create mode 100644 templates/reset_password/request.html.twig
create mode 100644 templates/reset_password/reset.html.twig
create mode 100644 translations/ResetPasswordBundle.de.yaml
create mode 100644 translations/ResetPasswordBundle.en.yaml
create mode 100644 translations/mydevel.webroot.role+intl-icu.en de.po
create mode 100644 translations/mydevel.webroot.setup+intl-icu.en de.po
create mode 100644 v7.2.0
diff --git a/PO/LINGUAS b/PO/LINGUAS
deleted file mode 100644
index 0a29054..0000000
--- a/PO/LINGUAS
+++ /dev/null
@@ -1 +0,0 @@
-de
diff --git a/PO/POTFILES b/PO/POTFILES
deleted file mode 100644
index f1229f0..0000000
--- a/PO/POTFILES
+++ /dev/null
@@ -1,16 +0,0 @@
-../src/Constants/const.php
-../src/Controller/MainController.php
-../src/Controller/SecurityController.php
-../src/Controller/SetupController.php
-../src/Controller/WebrootController.php
-../src/Controller/WebrootSetupController.php
-../src/Entity/WebrootFile.php
-../src/Entity/WebrootFilePermission.php
-../src/Entity/WebrootRole.php
-../src/Entity/WebrootUser.php
-../src/Kernel.php
-../src/Repository/WebrootFilePermissionRepository.php
-../src/Repository/WebrootFileRepository.php
-../src/Repository/WebrootRoleRepository.php
-../src/Repository/WebrootUserRepository.php
-../src/Utility/i18n.php
diff --git a/PO/POTFILES.webroot b/PO/POTFILES.webroot
deleted file mode 100644
index 2ef3a3a..0000000
--- a/PO/POTFILES.webroot
+++ /dev/null
@@ -1,10 +0,0 @@
-../src/MyDevel/Webroot/Controller/WebrootController.php
-../src/MyDevel/Webroot/Controller/WebrootSetupController.php
-../src/MyDevel/Webroot/Entity/WebrootFile.php
-../src/MyDevel/Webroot/Entity/WebrootFilePermission.php
-../src/MyDevel/Webroot/Entity/WebrootRole.php
-../src/MyDevel/Webroot/Entity/WebrootUser.php
-../src/MyDevel/Webroot/Repository/WebrootFilePermissionRepository.php
-../src/MyDevel/Webroot/Repository/WebrootFileRepository.php
-../src/MyDevel/Webroot/Repository/WebrootRoleRepository.php
-../src/MyDevel/Webroot/Repository/WebrootUserRepository.php
diff --git a/PO/PTOFILES b/PO/PTOFILES
deleted file mode 100644
index 8b13789..0000000
--- a/PO/PTOFILES
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/PO/compilemessages b/PO/compilemessages
deleted file mode 100644
index 54f499d..0000000
--- a/PO/compilemessages
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-SELF="$(realpath "$0")"
-PO_DIR="$(dirname "$SELF")"
-PROJECT_ROOT="$(dirname "$PO_DIR")"
-
-cd "$PO_DIR"
-
-for i in `cat LINGUAS`; do
- msgdir="$PROJECT_ROOT/translations/$i/LC_MESSAGES";
- if [ ! -d "$msgdir" ]; then
- mkdir -p "$msgdir"
- fi
-
- if [ -f $i.po ]; then
- msgfmt -o "$msgdir/mydevel-webroot.mo" $i.po
- fi
-done
-
diff --git a/PO/de.po b/PO/de.po
deleted file mode 100644
index e8a5ee7..0000000
--- a/PO/de.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-27 19:03+0100\n"
-"PO-Revision-Date: 2024-11-27 19:12+0100\n"
-"Last-Translator: Christian Moser \n"
-"Language-Team: \n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 3.5\n"
-
-#: ../src/Controller/SetupController.php:45
-msgid "Email Settings"
-msgstr "Email Einstellungen"
-
-#: ../src/Controller/SetupController.php:46
-msgid "Site Settings"
-msgstr "Site Einstellungen"
-
-#: ../src/Controller/SetupController.php:47
-msgid "Database Settings"
-msgstr "Datenbank Einstellungen"
-
-#: ../src/Controller/SetupController.php:48
-msgid "User Settings"
-msgstr "Nutzer Einstellungen"
-
-#: ../src/Controller/SetupController.php:56
-msgid "Enter the site name that should be displayed in titles."
-msgstr "Gib den Setiennamen and, der in Titeln angezeigt werden soll."
-
-#: ../src/Controller/SetupController.php:57
-msgid "Site name"
-msgstr "Name der Site"
-
-#: ../src/Controller/SetupController.php:61
-msgid "Site root directory"
-msgstr "Wurzelverzeichnis"
-
-#: ../src/Controller/SetupController.php:65
-msgid "Contact email"
-msgstr "Kontakt Email"
-
-#: ../src/Controller/SetupController.php:69
-msgid "Username"
-msgstr "Nutzername"
-
-#: ../src/Controller/SetupController.php:73
-msgid "Email"
-msgstr "Email"
-
-#: ../src/Controller/SetupController.php:77
-#: ../src/Controller/SetupController.php:117
-#: ../src/Controller/SetupController.php:144
-msgid "Password"
-msgstr "Passwort"
-
-#: ../src/Controller/SetupController.php:81
-msgid "Confirm Password"
-msgstr "Passwort bestätigen"
-
-#: ../src/Controller/SetupController.php:84
-msgid "Run Migrations?"
-msgstr "Migrationen anwenden?"
-
-#: ../src/Controller/SetupController.php:93
-msgid "SQLite3"
-msgstr "SQLite3"
-
-#: ../src/Controller/SetupController.php:94
-msgid "MySQL/MariaDB"
-msgstr "MySQL/MariaDB"
-
-#: ../src/Controller/SetupController.php:95
-msgid "PostgreSQL"
-msgstr "PostgreSQL"
-
-#: ../src/Controller/SetupController.php:96
-#: ../src/Controller/SetupController.php:120
-msgid "Database URL"
-msgstr "Datenbank URL"
-
-#: ../src/Controller/SetupController.php:101
-msgid "Database"
-msgstr "Datenbank"
-
-#: ../src/Controller/SetupController.php:105
-msgid "Host"
-msgstr "Host"
-
-#: ../src/Controller/SetupController.php:109
-msgid "Port"
-msgstr "Port"
-
-#: ../src/Controller/SetupController.php:113
-#: ../src/Controller/SetupController.php:140
-msgid "User"
-msgstr "Nutzer"
-
-#: ../src/Controller/SetupController.php:124
-msgid "Backend"
-msgstr "Backend"
-
-#: ../src/Controller/SetupController.php:127
-msgid "No email support"
-msgstr "Keine Emailunterstützung"
-
-#: ../src/Controller/SetupController.php:128
-msgid "SMTP"
-msgstr "SMTP"
-
-#: ../src/Controller/SetupController.php:129
-msgid "Sendmail"
-msgstr "Sendmail"
-
-#: ../src/Controller/SetupController.php:130
-msgid "Naitve"
-msgstr "Nativ"
-
-#: ../src/Controller/SetupController.php:131
-msgid "User DSN"
-msgstr "Nutzer DSN"
-
-#: ../src/Controller/SetupController.php:136
-msgid "Email Path"
-msgstr "Email-Pfad"
-
-#: ../src/Controller/SetupController.php:148
-msgid "SMTP Host"
-msgstr "SMTP Host"
-
-#: ../src/Controller/SetupController.php:152
-msgid "SMTP Port"
-msgstr "SMTP Port"
-
-#: ../src/Controller/SetupController.php:156
-msgid "DSN"
-msgstr "DSN"
-
-#: ../src/Controller/SetupController.php:160
-msgid "Sender address"
-msgstr "Adresse des Senders"
diff --git a/PO/makemessages b/PO/makemessages
deleted file mode 100644
index c036930..0000000
--- a/PO/makemessages
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-SELF="$(realpath "$0")"
-PODIR="$(dirname "$SELF")"
-PROJECT_ROOT="$(dirname "$PODIR")"
-
-cd "$PODIR"
-
-echo "Creating POTFILES"
-rm -v POTFILES
-
-for i in $(find ../src | grep '\.*php$'); do
- echo $i >> POTFILES
-done
-if [ -f messages.pot ]; then
- JOIN="--join-existing"
-else
- JOIN=""
-fi
-echo "extracting messages"
-
-xgettext -f POTFILES -d mydevel.webroot -L PHP $JOIN --force-po -o messages.pot
-if [ -z "$JOIN" ]; then
- sed -i s/charset=CHARSET/charset=UTF-8/g messages.pot
-fi
-
-for i in `cat LINGUAS`; do
- if [ ! -f $i.po ]; then
- cp messages.pot $i.po
- else
- msgmerge $i.po messages.pot
- fi
-done
-
-
diff --git a/PO/messages.pot b/PO/messages.pot
deleted file mode 100644
index c5fc16e..0000000
--- a/PO/messages.pot
+++ /dev/null
@@ -1,150 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-27 19:03+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/Controller/SetupController.php:45
-msgid "Email Settings"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:46
-msgid "Site Settings"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:47
-msgid "Database Settings"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:48
-msgid "User Settings"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:56
-msgid "Enter the site name that should be displayed in titles."
-msgstr ""
-
-#: ../src/Controller/SetupController.php:57
-msgid "Site name"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:61
-msgid "Site root directory"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:65
-msgid "Contact email"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:69
-msgid "Username"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:73
-msgid "Email"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:77
-#: ../src/Controller/SetupController.php:117
-#: ../src/Controller/SetupController.php:144
-msgid "Password"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:81
-msgid "Confirm Password"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:84
-msgid "Run Migrations?"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:93
-msgid "SQLite3"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:94
-msgid "MySQL/MariaDB"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:95
-msgid "PostgreSQL"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:96
-#: ../src/Controller/SetupController.php:120
-msgid "Database URL"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:101
-msgid "Database"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:105
-msgid "Host"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:109
-msgid "Port"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:113
-#: ../src/Controller/SetupController.php:140
-msgid "User"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:124
-msgid "Backend"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:127
-msgid "No email support"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:128
-msgid "SMTP"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:129
-msgid "Sendmail"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:130
-msgid "Naitve"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:131
-msgid "User DSN"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:136
-msgid "Email Path"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:148
-msgid "SMTP Host"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:152
-msgid "SMTP Port"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:156
-msgid "DSN"
-msgstr ""
-
-#: ../src/Controller/SetupController.php:160
-msgid "Sender address"
-msgstr ""
diff --git a/PO/webroot/de.po b/PO/webroot/de.po
deleted file mode 100644
index 4ee1245..0000000
--- a/PO/webroot/de.po
+++ /dev/null
@@ -1,18 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-26 20:44+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
diff --git a/PO/webroot/messages.pot b/PO/webroot/messages.pot
deleted file mode 100644
index 4ee1245..0000000
--- a/PO/webroot/messages.pot
+++ /dev/null
@@ -1,18 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-26 20:44+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
diff --git a/composer.json b/composer.json
index 5f29e91..48adda3 100644
--- a/composer.json
+++ b/composer.json
@@ -7,44 +7,45 @@
"php": ">=8.1",
"ext-ctype": "*",
"ext-iconv": "*",
- "doctrine/dbal": "^3",
- "doctrine/doctrine-bundle": "^2.13",
- "doctrine/doctrine-migrations-bundle": "^3.3",
+ "doctrine/dbal": "^3.9.3",
+ "doctrine/doctrine-bundle": "^2.13.1",
+ "doctrine/doctrine-migrations-bundle": "^3.3.1",
"doctrine/orm": "^3.3",
- "easycorp/easyadmin-bundle": "^4.18",
+ "easycorp/easyadmin-bundle": "4.x-dev",
"phpdocumentor/reflection-docblock": "^5.6",
"phpstan/phpdoc-parser": "^2.0",
- "symfony/asset": "6.4.*",
- "symfony/asset-mapper": "6.4.*",
- "symfony/console": "6.4.*",
- "symfony/doctrine-messenger": "6.4.*",
- "symfony/dotenv": "6.4.*",
- "symfony/expression-language": "6.4.*",
- "symfony/flex": "^2",
- "symfony/form": "6.4.*",
- "symfony/framework-bundle": "6.4.*",
- "symfony/http-client": "6.4.*",
- "symfony/intl": "6.4.*",
- "symfony/mailer": "6.4.*",
- "symfony/mime": "6.4.*",
+ "symfony/asset": "7.2.*",
+ "symfony/asset-mapper": "7.2.*",
+ "symfony/console": "7.2.*",
+ "symfony/doctrine-messenger": "7.2.*",
+ "symfony/dotenv": "7.2.*",
+ "symfony/expression-language": "7.2.*",
+ "symfony/flex": "^2.4",
+ "symfony/form": "7.2.*",
+ "symfony/framework-bundle": "7.2.*",
+ "symfony/http-client": "7.2.*",
+ "symfony/intl": "7.2.*",
+ "symfony/mailer": "7.2.*",
+ "symfony/mime": "7.2.*",
"symfony/monolog-bundle": "^3.10",
- "symfony/notifier": "6.4.*",
- "symfony/process": "6.4.*",
- "symfony/property-access": "6.4.*",
- "symfony/property-info": "6.4.*",
- "symfony/runtime": "6.4.*",
- "symfony/security-bundle": "6.4.*",
- "symfony/serializer": "6.4.*",
- "symfony/stimulus-bundle": "^2.21",
- "symfony/string": "6.4.*",
- "symfony/translation": "6.4.*",
- "symfony/twig-bundle": "6.4.*",
- "symfony/ux-turbo": "^2.21",
- "symfony/validator": "6.4.*",
- "symfony/web-link": "6.4.*",
- "symfony/yaml": "6.4.*",
- "twig/extra-bundle": "^2.12|^3.0",
- "twig/twig": "^2.12|^3.0"
+ "symfony/notifier": "7.2.*",
+ "symfony/process": "7.2.*",
+ "symfony/property-access": "7.2.*",
+ "symfony/property-info": "7.2.*",
+ "symfony/runtime": "^7.2",
+ "symfony/security-bundle": "7.2.*",
+ "symfony/serializer": "7.2.*",
+ "symfony/stimulus-bundle": "^2.22",
+ "symfony/string": "7.2.*",
+ "symfony/translation": "7.2.*",
+ "symfony/twig-bundle": "7.2.*",
+ "symfony/ux-turbo": "^2.22",
+ "symfony/validator": "7.2.*",
+ "symfony/web-link": "7.2.*",
+ "symfony/yaml": "7.2.*",
+ "symfonycasts/reset-password-bundle": "^1.23",
+ "twig/extra-bundle": "^2.12|^3.16",
+ "twig/twig": "^2.12|^3.16"
},
"config": {
"allow-plugins": {
@@ -92,17 +93,17 @@
"extra": {
"symfony": {
"allow-contrib": false,
- "require": "6.4.*"
+ "require": "7.2.*"
}
},
"require-dev": {
- "phpunit/phpunit": "^9.5",
- "symfony/browser-kit": "6.4.*",
- "symfony/css-selector": "6.4.*",
- "symfony/debug-bundle": "6.4.*",
- "symfony/maker-bundle": "^1.0",
- "symfony/phpunit-bridge": "^7.1",
- "symfony/stopwatch": "6.4.*",
- "symfony/web-profiler-bundle": "6.4.*"
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/browser-kit": "7.2.*",
+ "symfony/css-selector": "7.2.*",
+ "symfony/debug-bundle": "7.2.*",
+ "symfony/maker-bundle": "^1.61",
+ "symfony/phpunit-bridge": "^7.2",
+ "symfony/stopwatch": "7.2.*",
+ "symfony/web-profiler-bundle": "7.2.*"
}
}
diff --git a/composer.lock b/composer.lock
index 432b419..680d767 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": "bc953808482a0b93397e27bda2670bdc",
+ "content-hash": "d3eb6c56978520e103cd887dbbf36a88",
"packages": [
{
"name": "composer/semver",
@@ -1315,16 +1315,16 @@
},
{
"name": "easycorp/easyadmin-bundle",
- "version": "v4.18.0",
+ "version": "4.x-dev",
"source": {
"type": "git",
"url": "https://github.com/EasyCorp/EasyAdminBundle.git",
- "reference": "c1b694c1890d6f20858802d201cd7199212dc42a"
+ "reference": "2b49b51ccd128ac3983ef1c585d74d60ee5c6efa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/EasyCorp/EasyAdminBundle/zipball/c1b694c1890d6f20858802d201cd7199212dc42a",
- "reference": "c1b694c1890d6f20858802d201cd7199212dc42a",
+ "url": "https://api.github.com/repos/EasyCorp/EasyAdminBundle/zipball/2b49b51ccd128ac3983ef1c585d74d60ee5c6efa",
+ "reference": "2b49b51ccd128ac3983ef1c585d74d60ee5c6efa",
"shasum": ""
},
"require": {
@@ -1369,6 +1369,7 @@
"symfony/expression-language": "^5.4|^6.0|^7.0",
"symfony/phpunit-bridge": "^6.1|^7.0"
},
+ "default-branch": true,
"type": "symfony-bundle",
"extra": {
"branch-alias": {
@@ -1399,7 +1400,7 @@
],
"support": {
"issues": "https://github.com/EasyCorp/EasyAdminBundle/issues",
- "source": "https://github.com/EasyCorp/EasyAdminBundle/tree/v4.18.0"
+ "source": "https://github.com/EasyCorp/EasyAdminBundle/tree/4.x"
},
"funding": [
{
@@ -1407,7 +1408,7 @@
"type": "github"
}
],
- "time": "2024-11-28T19:54:15+00:00"
+ "time": "2024-12-02T19:53:15+00:00"
},
{
"name": "egulias/email-validator",
@@ -2109,28 +2110,28 @@
},
{
"name": "symfony/asset",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset.git",
- "reference": "2466c17d61d14539cddf77e57ebb9cc971185302"
+ "reference": "cb926cd59fefa1f9b4900b3695f0f846797ba5c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset/zipball/2466c17d61d14539cddf77e57ebb9cc971185302",
- "reference": "2466c17d61d14539cddf77e57ebb9cc971185302",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/cb926cd59fefa1f9b4900b3695f0f846797ba5c0",
+ "reference": "cb926cd59fefa1f9b4900b3695f0f846797ba5c0",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"conflict": {
- "symfony/http-foundation": "<5.4"
+ "symfony/http-foundation": "<6.4"
},
"require-dev": {
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0"
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2158,7 +2159,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset/tree/v6.4.13"
+ "source": "https://github.com/symfony/asset/tree/v7.2.0"
},
"funding": [
{
@@ -2174,42 +2175,42 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-10-25T15:15:23+00:00"
},
{
"name": "symfony/asset-mapper",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset-mapper.git",
- "reference": "21fe29b637ddaada739d3d6cd55694a7b95d2343"
+ "reference": "ffb733232bb6bb85ef6a994f47c817e7c2ecab9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/21fe29b637ddaada739d3d6cd55694a7b95d2343",
- "reference": "21fe29b637ddaada739d3d6cd55694a7b95d2343",
+ "url": "https://api.github.com/repos/symfony/asset-mapper/zipball/ffb733232bb6bb85ef6a994f47c817e7c2ecab9c",
+ "reference": "ffb733232bb6bb85ef6a994f47c817e7c2ecab9c",
"shasum": ""
},
"require": {
"composer/semver": "^3.0",
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/filesystem": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^6.3|^7.0"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/filesystem": "^7.1",
+ "symfony/http-client": "^6.4|^7.0"
},
"conflict": {
"symfony/framework-bundle": "<6.4"
},
"require-dev": {
- "symfony/asset": "^5.4|^6.0|^7.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/asset": "^6.4|^7.0",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
"symfony/event-dispatcher-contracts": "^3.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^6.4|^7.0",
"symfony/framework-bundle": "^6.4|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/web-link": "^5.4|^6.0|^7.0"
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/web-link": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2237,7 +2238,7 @@
"description": "Maps directories of assets & makes them available in a public directory with versioned filenames.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset-mapper/tree/v6.4.15"
+ "source": "https://github.com/symfony/asset-mapper/tree/v7.2.0"
},
"funding": [
{
@@ -2253,35 +2254,36 @@
"type": "tidelift"
}
],
- "time": "2024-11-09T07:17:14+00:00"
+ "time": "2024-11-20T11:17:29+00:00"
},
{
"name": "symfony/cache",
- "version": "v6.4.14",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613"
+ "reference": "2c926bc348184b4b235f2200fcbe8fcf3c8c5b8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/36fb8aa88833708e9f29014b6f15fac051a8b613",
- "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/2c926bc348184b4b235f2200fcbe8fcf3c8c5b8a",
+ "reference": "2c926bc348184b4b235f2200fcbe8fcf3c8c5b8a",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/cache": "^2.0|^3.0",
"psr/log": "^1.1|^2|^3",
"symfony/cache-contracts": "^2.5|^3",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/var-exporter": "^6.3.6|^7.0"
+ "symfony/var-exporter": "^6.4|^7.0"
},
"conflict": {
- "doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/var-dumper": "<5.4"
+ "doctrine/dbal": "<3.6",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/var-dumper": "<6.4"
},
"provide": {
"psr/cache-implementation": "2.0|3.0",
@@ -2290,15 +2292,16 @@
},
"require-dev": {
"cache/integration-tests": "dev-master",
- "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/filesystem": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/filesystem": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2333,7 +2336,7 @@
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v6.4.14"
+ "source": "https://github.com/symfony/cache/tree/v7.2.0"
},
"funding": [
{
@@ -2349,20 +2352,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-05T15:34:40+00:00"
+ "time": "2024-11-25T15:21:05+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197"
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
- "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
+ "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b",
"shasum": ""
},
"require": {
@@ -2409,7 +2412,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -2425,24 +2428,24 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/clock",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b"
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/b2bf55c4dd115003309eafa87ee7df9ed3dde81b",
- "reference": "b2bf55c4dd115003309eafa87ee7df9ed3dde81b",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
+ "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/clock": "^1.0",
"symfony/polyfill-php83": "^1.28"
},
@@ -2483,7 +2486,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v6.4.13"
+ "source": "https://github.com/symfony/clock/tree/v7.2.0"
},
"funding": [
{
@@ -2499,38 +2502,38 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/config",
- "version": "v6.4.14",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef"
+ "reference": "bcd3c4adf0144dee5011bb35454728c38adec055"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/4e55e7e4ffddd343671ea972216d4509f46c22ef",
- "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef",
+ "url": "https://api.github.com/repos/symfony/config/zipball/bcd3c4adf0144dee5011bb35454728c38adec055",
+ "reference": "bcd3c4adf0144dee5011bb35454728c38adec055",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/filesystem": "^5.4|^6.0|^7.0",
+ "symfony/filesystem": "^7.1",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
- "symfony/finder": "<5.4",
+ "symfony/finder": "<6.4",
"symfony/service-contracts": "<2.5"
},
"require-dev": {
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2558,7 +2561,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/v6.4.14"
+ "source": "https://github.com/symfony/config/tree/v7.2.0"
},
"funding": [
{
@@ -2574,51 +2577,50 @@
"type": "tidelift"
}
],
- "time": "2024-11-04T11:33:53+00:00"
+ "time": "2024-11-04T11:36:24+00:00"
},
{
"name": "symfony/console",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd"
+ "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
- "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd",
+ "url": "https://api.github.com/repos/symfony/console/zipball/23c8aae6d764e2bae02d2a99f7532a7f6ed619cf",
+ "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0|^7.0"
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/lock": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2652,7 +2654,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.4.15"
+ "source": "https://github.com/symfony/console/tree/v7.2.0"
},
"funding": [
{
@@ -2668,44 +2670,43 @@
"type": "tidelift"
}
],
- "time": "2024-11-06T14:19:14+00:00"
+ "time": "2024-11-06T14:24:19+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36"
+ "reference": "a475747af1a1c98272a5471abc35f3da81197c5d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36",
- "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a475747af1a1c98272a5471abc35f3da81197c5d",
+ "reference": "a475747af1a1c98272a5471abc35f3da81197c5d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/container": "^1.1|^2.0",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/service-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^6.2.10|^7.0"
+ "symfony/service-contracts": "^3.5",
+ "symfony/var-exporter": "^6.4|^7.0"
},
"conflict": {
"ext-psr": "<1.1|>=2",
- "symfony/config": "<6.1",
- "symfony/finder": "<5.4",
- "symfony/proxy-manager-bridge": "<6.3",
- "symfony/yaml": "<5.4"
+ "symfony/config": "<6.4",
+ "symfony/finder": "<6.4",
+ "symfony/yaml": "<6.4"
},
"provide": {
"psr/container-implementation": "1.1|2.0",
"symfony/service-implementation": "1.1|2.0|3.0"
},
"require-dev": {
- "symfony/config": "^6.1|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2733,7 +2734,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/v6.4.15"
+ "source": "https://github.com/symfony/dependency-injection/tree/v7.2.0"
},
"funding": [
{
@@ -2749,20 +2750,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-09T06:56:25+00:00"
+ "time": "2024-11-25T15:45:00+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -2800,7 +2801,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -2816,71 +2817,72 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/doctrine-bridge",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
- "reference": "402d5831a73217ea76ab7e032cc05045cd3fa678"
+ "reference": "09dbb7c731430335e9ae89ee5054b5f5580c49bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/402d5831a73217ea76ab7e032cc05045cd3fa678",
- "reference": "402d5831a73217ea76ab7e032cc05045cd3fa678",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/09dbb7c731430335e9ae89ee5054b5f5580c49bf",
+ "reference": "09dbb7c731430335e9ae89ee5054b5f5580c49bf",
"shasum": ""
},
"require": {
- "doctrine/event-manager": "^1.2|^2",
+ "doctrine/event-manager": "^2",
"doctrine/persistence": "^3.1",
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/dbal": "<2.13.1",
+ "doctrine/collections": "<1.8",
+ "doctrine/dbal": "<3.6",
"doctrine/lexer": "<1.1",
"doctrine/orm": "<2.15",
- "symfony/cache": "<5.4",
- "symfony/dependency-injection": "<6.2",
- "symfony/form": "<5.4.38|>=6,<6.4.6|>=7,<7.0.6",
- "symfony/http-foundation": "<6.3",
- "symfony/http-kernel": "<6.2",
- "symfony/lock": "<6.3",
- "symfony/messenger": "<5.4",
- "symfony/property-info": "<5.4",
- "symfony/security-bundle": "<5.4",
+ "symfony/cache": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/form": "<6.4.6|>=7,<7.0.6",
+ "symfony/http-foundation": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/security-bundle": "<6.4",
"symfony/security-core": "<6.4",
"symfony/validator": "<6.4"
},
"require-dev": {
- "doctrine/collections": "^1.0|^2.0",
- "doctrine/data-fixtures": "^1.1",
- "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/collections": "^1.8|^2.0",
+ "doctrine/data-fixtures": "^1.1|^2",
+ "doctrine/dbal": "^3.6|^4",
"doctrine/orm": "^2.15|^3",
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^6.2|^7.0",
- "symfony/doctrine-messenger": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/form": "^5.4.38|^6.4.6|^7.0.6",
- "symfony/http-kernel": "^6.3|^7.0",
- "symfony/lock": "^6.3|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
- "symfony/proxy-manager-bridge": "^6.4",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/doctrine-messenger": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/form": "^6.4.6|^7.0.6",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
"symfony/security-core": "^6.4|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
- "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/type-info": "^7.1",
+ "symfony/uid": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -2908,7 +2910,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.13"
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v7.2.0"
},
"funding": [
{
@@ -2924,26 +2926,26 @@
"type": "tidelift"
}
],
- "time": "2024-10-18T09:23:39+00:00"
+ "time": "2024-11-25T12:10:02+00:00"
},
{
"name": "symfony/doctrine-messenger",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-messenger.git",
- "reference": "c4afe708134a4506316955d1c009bc6091b16b2d"
+ "reference": "533e664a37b4208c5a26f1f7894f212690e806f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/c4afe708134a4506316955d1c009bc6091b16b2d",
- "reference": "c4afe708134a4506316955d1c009bc6091b16b2d",
+ "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/533e664a37b4208c5a26f1f7894f212690e806f5",
+ "reference": "533e664a37b4208c5a26f1f7894f212690e806f5",
"shasum": ""
},
"require": {
- "doctrine/dbal": "^2.13|^3|^4",
- "php": ">=8.1",
- "symfony/messenger": "^5.4|^6.0|^7.0",
+ "doctrine/dbal": "^3.6|^4",
+ "php": ">=8.2",
+ "symfony/messenger": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
@@ -2951,8 +2953,8 @@
},
"require-dev": {
"doctrine/persistence": "^1.3|^2|^3",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^5.4|^6.0|^7.0"
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0"
},
"type": "symfony-messenger-bridge",
"autoload": {
@@ -2980,7 +2982,7 @@
"description": "Symfony Doctrine Messenger Bridge",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-messenger/tree/v6.4.13"
+ "source": "https://github.com/symfony/doctrine-messenger/tree/v7.2.0"
},
"funding": [
{
@@ -2996,32 +2998,32 @@
"type": "tidelift"
}
],
- "time": "2024-10-18T09:45:38+00:00"
+ "time": "2024-10-18T09:50:33+00:00"
},
{
"name": "symfony/dotenv",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
- "reference": "436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4"
+ "reference": "28347a897771d0c28e99b75166dd2689099f3045"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4",
- "reference": "436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/28347a897771d0c28e99b75166dd2689099f3045",
+ "reference": "28347a897771d0c28e99b75166dd2689099f3045",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"conflict": {
- "symfony/console": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/console": "<6.4",
+ "symfony/process": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3054,7 +3056,7 @@
"environment"
],
"support": {
- "source": "https://github.com/symfony/dotenv/tree/v6.4.13"
+ "source": "https://github.com/symfony/dotenv/tree/v7.2.0"
},
"funding": [
{
@@ -3070,26 +3072,26 @@
"type": "tidelift"
}
],
- "time": "2024-09-28T07:43:51+00:00"
+ "time": "2024-11-27T11:18:42+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v6.4.14",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9"
+ "reference": "672b3dd1ef8b87119b446d67c58c106c43f965fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9",
- "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/672b3dd1ef8b87119b446d67c58c106c43f965fe",
+ "reference": "672b3dd1ef8b87119b446d67c58c106c43f965fe",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/var-dumper": "^6.4|^7.0"
},
"conflict": {
"symfony/deprecation-contracts": "<2.5",
@@ -3098,7 +3100,7 @@
"require-dev": {
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/serializer": "^5.4|^6.0|^7.0"
+ "symfony/serializer": "^6.4|^7.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -3129,7 +3131,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.4.14"
+ "source": "https://github.com/symfony/error-handler/tree/v7.2.0"
},
"funding": [
{
@@ -3145,28 +3147,28 @@
"type": "tidelift"
}
],
- "time": "2024-11-05T15:34:40+00:00"
+ "time": "2024-11-05T15:35:02+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
- "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
@@ -3175,13 +3177,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0|^7.0"
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3209,7 +3211,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -3225,20 +3227,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
@@ -3285,7 +3287,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3301,25 +3303,25 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/expression-language",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
- "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df"
+ "reference": "26f4884a455e755e630a5fc372df124a3578da2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/3524904fb026356a5230cd197f9a4e6a61e0e7df",
- "reference": "3524904fb026356a5230cd197f9a4e6a61e0e7df",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/26f4884a455e755e630a5fc372df124a3578da2e",
+ "reference": "26f4884a455e755e630a5fc372df124a3578da2e",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/cache": "^5.4|^6.0|^7.0",
+ "php": ">=8.2",
+ "symfony/cache": "^6.4|^7.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/service-contracts": "^2.5|^3"
},
@@ -3349,7 +3351,7 @@
"description": "Provides an engine that can compile and evaluate expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/expression-language/tree/v6.4.13"
+ "source": "https://github.com/symfony/expression-language/tree/v7.2.0"
},
"funding": [
{
@@ -3365,29 +3367,29 @@
"type": "tidelift"
}
],
- "time": "2024-10-09T08:40:40+00:00"
+ "time": "2024-10-15T11:52:45+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3"
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3",
- "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
+ "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
- "symfony/process": "^5.4|^6.4|^7.0"
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3415,7 +3417,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.4.13"
+ "source": "https://github.com/symfony/filesystem/tree/v7.2.0"
},
"funding": [
{
@@ -3431,27 +3433,27 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-10-25T15:15:23+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958"
+ "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
- "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49",
+ "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0|^7.0"
+ "symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3479,7 +3481,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.4.13"
+ "source": "https://github.com/symfony/finder/tree/v7.2.0"
},
"funding": [
{
@@ -3495,7 +3497,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:30:56+00:00"
+ "time": "2024-10-23T06:56:12+00:00"
},
{
"name": "symfony/flex",
@@ -3567,56 +3569,56 @@
},
{
"name": "symfony/form",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
- "reference": "0fe17f90af23908ddc11dc23507db98e66572046"
+ "reference": "264cff30f52f12149aff92bbc23e78160a45c2f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/form/zipball/0fe17f90af23908ddc11dc23507db98e66572046",
- "reference": "0fe17f90af23908ddc11dc23507db98e66572046",
+ "url": "https://api.github.com/repos/symfony/form/zipball/264cff30f52f12149aff92bbc23e78160a45c2f3",
+ "reference": "264cff30f52f12149aff92bbc23e78160a45c2f3",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/options-resolver": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/options-resolver": "^6.4|^7.0",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-icu": "^1.21",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<5.4",
- "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7",
- "symfony/error-handler": "<5.4",
- "symfony/framework-bundle": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3",
+ "symfony/console": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<6.4",
+ "symfony/error-handler": "<6.4",
+ "symfony/framework-bundle": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/translation": "<6.4.3|>=7.0,<7.0.3",
"symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<6.3"
+ "symfony/twig-bridge": "<6.4"
},
"require-dev": {
"doctrine/collections": "^1.0|^2.0",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/html-sanitizer": "^6.1|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/intl": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^6.2|^7.0",
- "symfony/security-csrf": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3",
- "symfony/uid": "^5.4|^6.0|^7.0",
- "symfony/validator": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/html-sanitizer": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/security-core": "^6.4|^7.0",
+ "symfony/security-csrf": "^6.4|^7.0",
+ "symfony/translation": "^6.4.3|^7.0.3",
+ "symfony/uid": "^6.4|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3644,7 +3646,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/form/tree/v6.4.13"
+ "source": "https://github.com/symfony/form/tree/v7.2.0"
},
"funding": [
{
@@ -3660,112 +3662,113 @@
"type": "tidelift"
}
],
- "time": "2024-10-09T08:40:40+00:00"
+ "time": "2024-11-27T11:55:00+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418"
+ "reference": "a8d0da4110fe643ab3cde7c938a03e222fe787c6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e8b0bd921f9bd35ea4d1508067c3f3f6e2036418",
- "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a8d0da4110fe643ab3cde7c938a03e222fe787c6",
+ "reference": "a8d0da4110fe643ab3cde7c938a03e222fe787c6",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
- "php": ">=8.1",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/config": "^6.1|^7.0",
- "symfony/dependency-injection": "^6.4.12|^7.0",
+ "php": ">=8.2",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^7.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.1|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/filesystem": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/filesystem": "^7.1",
+ "symfony/finder": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4",
+ "symfony/http-kernel": "^7.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/routing": "^6.4|^7.0"
},
"conflict": {
- "doctrine/annotations": "<1.13.1",
"doctrine/persistence": "<1.3",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/asset": "<5.4",
+ "symfony/asset": "<6.4",
"symfony/asset-mapper": "<6.4",
- "symfony/clock": "<6.3",
- "symfony/console": "<5.4|>=7.0",
+ "symfony/clock": "<6.4",
+ "symfony/console": "<6.4",
"symfony/dom-crawler": "<6.4",
- "symfony/dotenv": "<5.4",
- "symfony/form": "<5.4",
- "symfony/http-client": "<6.3",
- "symfony/lock": "<5.4",
- "symfony/mailer": "<5.4",
- "symfony/messenger": "<6.3",
+ "symfony/dotenv": "<6.4",
+ "symfony/form": "<6.4",
+ "symfony/http-client": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/mailer": "<6.4",
+ "symfony/messenger": "<6.4",
"symfony/mime": "<6.4",
- "symfony/property-access": "<5.4",
- "symfony/property-info": "<5.4",
- "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6",
+ "symfony/property-access": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/runtime": "<6.4.13|>=7.0,<7.1.6",
"symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4",
- "symfony/security-core": "<5.4",
- "symfony/security-csrf": "<5.4",
- "symfony/serializer": "<6.4",
- "symfony/stopwatch": "<5.4",
+ "symfony/security-core": "<6.4",
+ "symfony/security-csrf": "<7.2",
+ "symfony/serializer": "<7.1",
+ "symfony/stopwatch": "<6.4",
"symfony/translation": "<6.4",
- "symfony/twig-bridge": "<5.4",
- "symfony/twig-bundle": "<5.4",
+ "symfony/twig-bridge": "<6.4",
+ "symfony/twig-bundle": "<6.4",
"symfony/validator": "<6.4",
"symfony/web-profiler-bundle": "<6.4",
+ "symfony/webhook": "<7.2",
"symfony/workflow": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.13.1|^2",
"doctrine/persistence": "^1.3|^2|^3",
"dragonmantank/cron-expression": "^3.1",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"seld/jsonlint": "^1.10",
- "symfony/asset": "^5.4|^6.0|^7.0",
+ "symfony/asset": "^6.4|^7.0",
"symfony/asset-mapper": "^6.4|^7.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/clock": "^6.2|^7.0",
- "symfony/console": "^5.4.9|^6.0.9|^7.0",
- "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/css-selector": "^6.4|^7.0",
"symfony/dom-crawler": "^6.4|^7.0",
- "symfony/dotenv": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/form": "^5.4|^6.0|^7.0",
- "symfony/html-sanitizer": "^6.1|^7.0",
- "symfony/http-client": "^6.3|^7.0",
- "symfony/lock": "^5.4|^6.0|^7.0",
- "symfony/mailer": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^6.3|^7.0",
+ "symfony/dotenv": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/form": "^6.4|^7.0",
+ "symfony/html-sanitizer": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/mailer": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
"symfony/mime": "^6.4|^7.0",
- "symfony/notifier": "^5.4|^6.0|^7.0",
+ "symfony/notifier": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
"symfony/scheduler": "^6.4.4|^7.0.4",
- "symfony/security-bundle": "^5.4|^6.0|^7.0",
- "symfony/semaphore": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^6.4|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/string": "^5.4|^6.0|^7.0",
+ "symfony/security-bundle": "^6.4|^7.0",
+ "symfony/semaphore": "^6.4|^7.0",
+ "symfony/serializer": "^7.1",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/string": "^6.4|^7.0",
"symfony/translation": "^6.4|^7.0",
- "symfony/twig-bundle": "^5.4|^6.0|^7.0",
- "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/twig-bundle": "^6.4|^7.0",
+ "symfony/type-info": "^7.1",
+ "symfony/uid": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
- "symfony/web-link": "^5.4|^6.0|^7.0",
+ "symfony/web-link": "^6.4|^7.0",
+ "symfony/webhook": "^7.2",
"symfony/workflow": "^6.4|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0",
- "twig/twig": "^2.10|^3.0.4"
+ "symfony/yaml": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"type": "symfony-bundle",
"autoload": {
@@ -3793,7 +3796,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/v6.4.13"
+ "source": "https://github.com/symfony/framework-bundle/tree/v7.2.0"
},
"funding": [
{
@@ -3809,32 +3812,33 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-20T16:27:35+00:00"
},
{
"name": "symfony/http-client",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "cb4073c905cd12b8496d24ac428a9228c1750670"
+ "reference": "955e43336aff03df1e8a8e17daefabb0127a313b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/cb4073c905cd12b8496d24ac428a9228c1750670",
- "reference": "cb4073c905cd12b8496d24ac428a9228c1750670",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/955e43336aff03df1e8a8e17daefabb0127a313b",
+ "reference": "955e43336aff03df1e8a8e17daefabb0127a313b",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-client-contracts": "^3.4.1",
+ "symfony/http-client-contracts": "~3.4.3|^3.5.1",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
+ "amphp/amp": "<2.5",
"php-http/discovery": "<1.15",
- "symfony/http-foundation": "<6.3"
+ "symfony/http-foundation": "<6.4"
},
"provide": {
"php-http/async-client-implementation": "*",
@@ -3843,19 +3847,20 @@
"symfony/http-client-implementation": "3.0"
},
"require-dev": {
- "amphp/amp": "^2.5",
- "amphp/http-client": "^4.2.1",
- "amphp/http-tunnel": "^1.0",
+ "amphp/http-client": "^4.2.1|^5.0",
+ "amphp/http-tunnel": "^1.0|^2.0",
"amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4|^2.0",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0"
+ "symfony/amphp-http-client-meta": "^1.0|^2.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3886,7 +3891,7 @@
"http"
],
"support": {
- "source": "https://github.com/symfony/http-client/tree/v6.4.15"
+ "source": "https://github.com/symfony/http-client/tree/v7.2.0"
},
"funding": [
{
@@ -3902,20 +3907,20 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:40:18+00:00"
+ "time": "2024-11-29T08:22:02+00:00"
},
{
"name": "symfony/http-client-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "20414d96f391677bf80078aa55baece78b82647d"
+ "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
- "reference": "20414d96f391677bf80078aa55baece78b82647d",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/c2f3ad828596624ca39ea40f83617ef51ca8bbf9",
+ "reference": "c2f3ad828596624ca39ea40f83617ef51ca8bbf9",
"shasum": ""
},
"require": {
@@ -3964,7 +3969,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -3980,40 +3985,41 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-11-25T12:02:18+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6"
+ "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6",
- "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e88a66c3997859532bc2ddd6dd8f35aba2711744",
+ "reference": "e88a66c3997859532bc2ddd6dd8f35aba2711744",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-mbstring": "~1.1",
"symfony/polyfill-php83": "^1.27"
},
"conflict": {
+ "doctrine/dbal": "<3.6",
"symfony/cache": "<6.4.12|>=7.0,<7.1.5"
},
"require-dev": {
- "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
"symfony/cache": "^6.4.12|^7.1.5",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4041,7 +4047,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.4.15"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.2.0"
},
"funding": [
{
@@ -4057,77 +4063,77 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T16:09:24+00:00"
+ "time": "2024-11-13T18:58:46+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5"
+ "reference": "6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5",
- "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d",
+ "reference": "6b4722a25e0aed1ccb4914b9bcbd493cc4676b4d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^6.4|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.4",
- "symfony/config": "<6.1",
- "symfony/console": "<5.4",
+ "symfony/browser-kit": "<6.4",
+ "symfony/cache": "<6.4",
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
"symfony/dependency-injection": "<6.4",
- "symfony/doctrine-bridge": "<5.4",
- "symfony/form": "<5.4",
- "symfony/http-client": "<5.4",
+ "symfony/doctrine-bridge": "<6.4",
+ "symfony/form": "<6.4",
+ "symfony/http-client": "<6.4",
"symfony/http-client-contracts": "<2.5",
- "symfony/mailer": "<5.4",
- "symfony/messenger": "<5.4",
- "symfony/translation": "<5.4",
+ "symfony/mailer": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/translation": "<6.4",
"symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<5.4",
+ "symfony/twig-bridge": "<6.4",
"symfony/validator": "<6.4",
- "symfony/var-dumper": "<6.3",
- "twig/twig": "<2.13"
+ "symfony/var-dumper": "<6.4",
+ "twig/twig": "<3.12"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/clock": "^6.2|^7.0",
- "symfony/config": "^6.1|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/css-selector": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
- "symfony/dom-crawler": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/dom-crawler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^6.4.4|^7.0.4",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^7.1",
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/serializer": "^7.1",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.4|^7.0",
- "symfony/var-exporter": "^6.2|^7.0",
- "twig/twig": "^2.13|^3.0.4"
+ "symfony/var-dumper": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"type": "library",
"autoload": {
@@ -4155,7 +4161,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/v6.4.15"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.2.0"
},
"funding": [
{
@@ -4171,29 +4177,32 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:57:37+00:00"
+ "time": "2024-11-29T08:42:40+00:00"
},
{
"name": "symfony/intl",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/intl.git",
- "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6"
+ "reference": "76bb3462c6c308f8bd97d3c178c2626ae44d4dea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/intl/zipball/b1d5e8d82615b60f229216edfee0b59e2ef66da6",
- "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/76bb3462c6c308f8bd97d3c178c2626ae44d4dea",
+ "reference": "76bb3462c6c308f8bd97d3c178c2626ae44d4dea",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/string": "<7.1"
},
"require-dev": {
- "symfony/filesystem": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
- "symfony/var-exporter": "^5.4|^6.0|^7.0"
+ "symfony/filesystem": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4238,7 +4247,7 @@
"localization"
],
"support": {
- "source": "https://github.com/symfony/intl/tree/v6.4.15"
+ "source": "https://github.com/symfony/intl/tree/v7.2.0"
},
"funding": [
{
@@ -4254,43 +4263,43 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T15:28:48+00:00"
+ "time": "2024-11-25T14:26:33+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663"
+ "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/c2f7e0d8d7ac8fe25faccf5d8cac462805db2663",
- "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc",
+ "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc",
"shasum": ""
},
"require": {
"egulias/email-validator": "^2.1.10|^3|^4",
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/mime": "^6.2|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/mime": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<5.4",
- "symfony/messenger": "<6.2",
- "symfony/mime": "<6.2",
- "symfony/twig-bridge": "<6.2.1"
+ "symfony/http-kernel": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/mime": "<6.4",
+ "symfony/twig-bridge": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^6.2|^7.0",
- "symfony/twig-bridge": "^6.2|^7.0"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4318,7 +4327,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.4.13"
+ "source": "https://github.com/symfony/mailer/tree/v7.2.0"
},
"funding": [
{
@@ -4334,50 +4343,50 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-11-25T15:21:05+00:00"
},
{
"name": "symfony/messenger",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/messenger.git",
- "reference": "f9d4bae8301dced6f12e110a7956d2fd441573f1"
+ "reference": "2512b9bc1e7093c8bd5adec579a364a198059f4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/messenger/zipball/f9d4bae8301dced6f12e110a7956d2fd441573f1",
- "reference": "f9d4bae8301dced6f12e110a7956d2fd441573f1",
+ "url": "https://api.github.com/repos/symfony/messenger/zipball/2512b9bc1e7093c8bd5adec579a364a198059f4d",
+ "reference": "2512b9bc1e7093c8bd5adec579a364a198059f4d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
- "symfony/clock": "^6.3|^7.0",
+ "symfony/clock": "^6.4|^7.0",
"symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/console": "<6.3",
- "symfony/event-dispatcher": "<5.4",
+ "symfony/console": "<7.2",
+ "symfony/event-dispatcher": "<6.4",
"symfony/event-dispatcher-contracts": "<2.5",
- "symfony/framework-bundle": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/serializer": "<5.4"
+ "symfony/framework-bundle": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/serializer": "<6.4"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/console": "^6.3|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^5.4|^6.0|^7.0",
+ "symfony/console": "^7.2",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/validator": "^5.4|^6.0|^7.0"
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/validator": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4405,7 +4414,7 @@
"description": "Helps applications send and receive messages to/from other applications or via message queues",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/messenger/tree/v6.4.15"
+ "source": "https://github.com/symfony/messenger/tree/v7.2.0"
},
"funding": [
{
@@ -4421,25 +4430,24 @@
"type": "tidelift"
}
],
- "time": "2024-11-09T07:05:35+00:00"
+ "time": "2024-11-26T10:00:31+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855"
+ "reference": "cc84a4b81f62158c3846ac7ff10f696aae2b524d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
- "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/cc84a4b81f62158c3846ac7ff10f696aae2b524d",
+ "reference": "cc84a4b81f62158c3846ac7ff10f696aae2b524d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0"
},
@@ -4447,17 +4455,17 @@
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<5.4",
+ "symfony/mailer": "<6.4",
"symfony/serializer": "<6.4.3|>7.0,<7.0.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.4|^7.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
"symfony/serializer": "^6.4.3|^7.0.3"
},
"type": "library",
@@ -4490,7 +4498,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.4.13"
+ "source": "https://github.com/symfony/mime/tree/v7.2.0"
},
"funding": [
{
@@ -4506,42 +4514,41 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-23T09:19:39+00:00"
},
{
"name": "symfony/monolog-bridge",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452"
+ "reference": "bbae784f0456c5a87c89d7c1a3fcc9cbee976c1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9d14621e59f22c2b6d030d92d37ffe5ae1e60452",
- "reference": "9d14621e59f22c2b6d030d92d37ffe5ae1e60452",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/bbae784f0456c5a87c89d7c1a3fcc9cbee976c1d",
+ "reference": "bbae784f0456c5a87c89d7c1a3fcc9cbee976c1d",
"shasum": ""
},
"require": {
- "monolog/monolog": "^1.25.1|^2|^3",
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "monolog/monolog": "^3",
+ "php": ">=8.2",
+ "symfony/http-kernel": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/console": "<5.4",
- "symfony/http-foundation": "<5.4",
- "symfony/security-core": "<5.4"
+ "symfony/console": "<6.4",
+ "symfony/http-foundation": "<6.4",
+ "symfony/security-core": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/mailer": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/mailer": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/security-core": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -4569,7 +4576,7 @@
"description": "Provides integration for Monolog with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/v6.4.13"
+ "source": "https://github.com/symfony/monolog-bridge/tree/v7.2.0"
},
"funding": [
{
@@ -4585,7 +4592,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-14T08:49:08+00:00"
+ "time": "2024-10-14T18:16:08+00:00"
},
{
"name": "symfony/monolog-bundle",
@@ -4670,33 +4677,33 @@
},
{
"name": "symfony/notifier",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/notifier.git",
- "reference": "c46321b53391088861bf627cd9e24873d216cf00"
+ "reference": "b5104341c0b0d78fe2cfc8a7a0a185d544ee5c1c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/notifier/zipball/c46321b53391088861bf627cd9e24873d216cf00",
- "reference": "c46321b53391088861bf627cd9e24873d216cf00",
+ "url": "https://api.github.com/repos/symfony/notifier/zipball/b5104341c0b0d78fe2cfc8a7a0a185d544ee5c1c",
+ "reference": "b5104341c0b0d78fe2cfc8a7a0a185d544ee5c1c",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3"
},
"conflict": {
- "symfony/event-dispatcher": "<5.4",
+ "symfony/event-dispatcher": "<6.4",
"symfony/event-dispatcher-contracts": "<2.5",
"symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<5.4"
+ "symfony/http-kernel": "<6.4"
},
"require-dev": {
"symfony/event-dispatcher-contracts": "^2.5|^3",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0"
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4728,7 +4735,7 @@
"notifier"
],
"support": {
- "source": "https://github.com/symfony/notifier/tree/v6.4.13"
+ "source": "https://github.com/symfony/notifier/tree/v7.2.0"
},
"funding": [
{
@@ -4744,24 +4751,24 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-11-15T13:52:25+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "0a62a9f2504a8dd27083f89d21894ceb01cc59db"
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0a62a9f2504a8dd27083f89d21894ceb01cc59db",
- "reference": "0a62a9f2504a8dd27083f89d21894ceb01cc59db",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
+ "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
@@ -4795,7 +4802,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.4.13"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.2.0"
},
"funding": [
{
@@ -4811,31 +4818,31 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-11-20T11:17:29+00:00"
},
{
"name": "symfony/password-hasher",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/password-hasher.git",
- "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47"
+ "reference": "d8bd3d66d074c0acba1214a0d42f5941a8e1e94d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47",
- "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/d8bd3d66d074c0acba1214a0d42f5941a8e1e94d",
+ "reference": "d8bd3d66d074c0acba1214a0d42f5941a8e1e94d",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"conflict": {
- "symfony/security-core": "<5.4"
+ "symfony/security-core": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/security-core": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -4867,7 +4874,7 @@
"password"
],
"support": {
- "source": "https://github.com/symfony/password-hasher/tree/v6.4.13"
+ "source": "https://github.com/symfony/password-hasher/tree/v7.2.0"
},
"funding": [
{
@@ -4883,7 +4890,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -5448,20 +5455,20 @@
},
{
"name": "symfony/process",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "3cb242f059c14ae08591c5c4087d1fe443564392"
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392",
- "reference": "3cb242f059c14ae08591c5c4087d1fe443564392",
+ "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
+ "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -5489,7 +5496,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.4.15"
+ "source": "https://github.com/symfony/process/tree/v7.2.0"
},
"funding": [
{
@@ -5505,29 +5512,28 @@
"type": "tidelift"
}
],
- "time": "2024-11-06T14:19:14+00:00"
+ "time": "2024-11-06T14:24:19+00:00"
},
{
"name": "symfony/property-access",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "8cc779d88d12e440adaa26387bcfc25744064afe"
+ "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/8cc779d88d12e440adaa26387bcfc25744064afe",
- "reference": "8cc779d88d12e440adaa26387bcfc25744064afe",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/3ae42efba01e45aaedecf5c93c8d6a3ab3a82276",
+ "reference": "3ae42efba01e45aaedecf5c93c8d6a3ab3a82276",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/property-info": "^5.4|^6.0|^7.0"
+ "php": ">=8.2",
+ "symfony/property-info": "^6.4|^7.0"
},
"require-dev": {
- "symfony/cache": "^5.4|^6.0|^7.0"
+ "symfony/cache": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -5566,7 +5572,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v6.4.13"
+ "source": "https://github.com/symfony/property-access/tree/v7.2.0"
},
"funding": [
{
@@ -5582,37 +5588,37 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-26T12:28:35+00:00"
},
{
"name": "symfony/property-info",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "9d7b576bb643c72bf3b60eb8e89c98725d00afd0"
+ "reference": "b00580d9d7c9654e1df95df85105d0da67418b3f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/9d7b576bb643c72bf3b60eb8e89c98725d00afd0",
- "reference": "9d7b576bb643c72bf3b60eb8e89c98725d00afd0",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/b00580d9d7c9654e1df95df85105d0da67418b3f",
+ "reference": "b00580d9d7c9654e1df95df85105d0da67418b3f",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/string": "^5.4|^6.0|^7.0"
+ "php": ">=8.2",
+ "symfony/string": "^6.4|^7.0",
+ "symfony/type-info": "^7.1"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<5.2",
"phpdocumentor/type-resolver": "<1.5.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/serializer": "<6.4"
+ "symfony/dependency-injection": "<6.4"
},
"require-dev": {
"phpdocumentor/reflection-docblock": "^5.2",
"phpstan/phpdoc-parser": "^1.0|^2.0",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
"symfony/serializer": "^6.4|^7.0"
},
"type": "library",
@@ -5649,7 +5655,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v6.4.15"
+ "source": "https://github.com/symfony/property-info/tree/v7.2.0"
},
"funding": [
{
@@ -5665,40 +5671,38 @@
"type": "tidelift"
}
],
- "time": "2024-11-07T16:39:46+00:00"
+ "time": "2024-11-27T09:50:52+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278"
+ "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e",
+ "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<6.2",
- "symfony/dependency-injection": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/config": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/yaml": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^6.2|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -5732,7 +5736,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.4.13"
+ "source": "https://github.com/symfony/routing/tree/v7.2.0"
},
"funding": [
{
@@ -5748,35 +5752,35 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:30:56+00:00"
+ "time": "2024-11-25T11:08:51+00:00"
},
{
"name": "symfony/runtime",
- "version": "v6.4.14",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/runtime.git",
- "reference": "4facd4174f45cd37c65860403412b67c7381136a"
+ "reference": "2c350568f3eaccb25fbbbf962bd67cde273121a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/runtime/zipball/4facd4174f45cd37c65860403412b67c7381136a",
- "reference": "4facd4174f45cd37c65860403412b67c7381136a",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/2c350568f3eaccb25fbbbf962bd67cde273121a7",
+ "reference": "2c350568f3eaccb25fbbbf962bd67cde273121a7",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0|^2.0",
- "php": ">=8.1"
+ "php": ">=8.2"
},
"conflict": {
- "symfony/dotenv": "<5.4"
+ "symfony/dotenv": "<6.4"
},
"require-dev": {
- "composer/composer": "^1.0.2|^2.0",
- "symfony/console": "^5.4.9|^6.0.9|^7.0",
- "symfony/dotenv": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0"
+ "composer/composer": "^2.6",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dotenv": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "composer-plugin",
"extra": {
@@ -5811,7 +5815,7 @@
"runtime"
],
"support": {
- "source": "https://github.com/symfony/runtime/tree/v6.4.14"
+ "source": "https://github.com/symfony/runtime/tree/v7.2.0"
},
"funding": [
{
@@ -5827,75 +5831,69 @@
"type": "tidelift"
}
],
- "time": "2024-11-05T16:39:55+00:00"
+ "time": "2024-11-06T11:43:25+00:00"
},
{
"name": "symfony/security-bundle",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-bundle.git",
- "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3"
+ "reference": "4bed2029576bf02a6915c5a58bc8a174af338e6f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-bundle/zipball/181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3",
- "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4bed2029576bf02a6915c5a58bc8a174af338e6f",
+ "reference": "4bed2029576bf02a6915c5a58bc8a174af338e6f",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
"ext-xml": "*",
- "php": ">=8.1",
- "symfony/clock": "^6.3|^7.0",
- "symfony/config": "^6.1|^7.0",
+ "php": ">=8.2",
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4.11|^7.1.4",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^6.2|^7.0",
- "symfony/http-kernel": "^6.2",
- "symfony/password-hasher": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^6.2|^7.0",
- "symfony/security-csrf": "^5.4|^6.0|^7.0",
- "symfony/security-http": "^6.3.6|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/password-hasher": "^6.4|^7.0",
+ "symfony/security-core": "^7.2",
+ "symfony/security-csrf": "^6.4|^7.0",
+ "symfony/security-http": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/console": "<5.4",
+ "symfony/browser-kit": "<6.4",
+ "symfony/console": "<6.4",
"symfony/framework-bundle": "<6.4",
- "symfony/http-client": "<5.4",
- "symfony/ldap": "<5.4",
+ "symfony/http-client": "<6.4",
+ "symfony/ldap": "<6.4",
"symfony/serializer": "<6.4",
- "symfony/twig-bundle": "<5.4",
+ "symfony/twig-bundle": "<6.4",
"symfony/validator": "<6.4"
},
"require-dev": {
- "symfony/asset": "^5.4|^6.0|^7.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/css-selector": "^5.4|^6.0|^7.0",
- "symfony/dom-crawler": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/form": "^5.4|^6.0|^7.0",
+ "symfony/asset": "^6.4|^7.0",
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/dom-crawler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/form": "^6.4|^7.0",
"symfony/framework-bundle": "^6.4|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/ldap": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/ldap": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
"symfony/serializer": "^6.4|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
- "symfony/twig-bridge": "^5.4|^6.0|^7.0",
- "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0",
+ "symfony/twig-bundle": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0",
- "twig/twig": "^2.13|^3.0.4",
- "web-token/jwt-checker": "^3.1",
- "web-token/jwt-signature-algorithm-ecdsa": "^3.1",
- "web-token/jwt-signature-algorithm-eddsa": "^3.1",
- "web-token/jwt-signature-algorithm-hmac": "^3.1",
- "web-token/jwt-signature-algorithm-none": "^3.1",
- "web-token/jwt-signature-algorithm-rsa": "^3.1"
+ "symfony/yaml": "^6.4|^7.0",
+ "twig/twig": "^3.12",
+ "web-token/jwt-library": "^3.3.2|^4.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -5923,7 +5921,7 @@
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-bundle/tree/v6.4.13"
+ "source": "https://github.com/symfony/security-bundle/tree/v7.2.0"
},
"funding": [
{
@@ -5939,48 +5937,49 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-10-23T08:31:32+00:00"
},
{
"name": "symfony/security-core",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-core.git",
- "reference": "bbd1a919aec8696a95bf8749d5577fbe74de973c"
+ "reference": "fdbf318b939a86f89b0c071f60b9d551261d3cc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-core/zipball/bbd1a919aec8696a95bf8749d5577fbe74de973c",
- "reference": "bbd1a919aec8696a95bf8749d5577fbe74de973c",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/fdbf318b939a86f89b0c071f60b9d551261d3cc1",
+ "reference": "fdbf318b939a86f89b0c071f60b9d551261d3cc1",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3",
- "symfony/password-hasher": "^5.4|^6.0|^7.0",
+ "symfony/password-hasher": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/event-dispatcher": "<5.4",
- "symfony/http-foundation": "<5.4",
- "symfony/ldap": "<5.4",
- "symfony/security-guard": "<5.4",
- "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3",
- "symfony/validator": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/http-foundation": "<6.4",
+ "symfony/ldap": "<6.4",
+ "symfony/translation": "<6.4.3|>=7.0,<7.0.3",
+ "symfony/validator": "<6.4"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
"psr/container": "^1.1|^2.0",
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/ldap": "^5.4|^6.0|^7.0",
- "symfony/string": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/ldap": "^6.4|^7.0",
+ "symfony/string": "^6.4|^7.0",
+ "symfony/translation": "^6.4.3|^7.0.3",
"symfony/validator": "^6.4|^7.0"
},
"type": "library",
@@ -6009,7 +6008,7 @@
"description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-core/tree/v6.4.13"
+ "source": "https://github.com/symfony/security-core/tree/v7.2.0"
},
"funding": [
{
@@ -6025,31 +6024,33 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-27T09:50:52+00:00"
},
{
"name": "symfony/security-csrf",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-csrf.git",
- "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3"
+ "reference": "5d884aff316bd4f24c4c2ab4d5f02a00df4b08cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-csrf/zipball/c34421b7d34efbaef5d611ab2e646a0ec464ffe3",
- "reference": "c34421b7d34efbaef5d611ab2e646a0ec464ffe3",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/5d884aff316bd4f24c4c2ab4d5f02a00df4b08cf",
+ "reference": "5d884aff316bd4f24c4c2ab4d5f02a00df4b08cf",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/security-core": "^5.4|^6.0|^7.0"
+ "php": ">=8.2",
+ "symfony/security-core": "^6.4|^7.0"
},
"conflict": {
- "symfony/http-foundation": "<5.4"
+ "symfony/http-foundation": "<6.4"
},
"require-dev": {
- "symfony/http-foundation": "^5.4|^6.0|^7.0"
+ "psr/log": "^1|^2|^3",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6077,7 +6078,7 @@
"description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-csrf/tree/v6.4.13"
+ "source": "https://github.com/symfony/security-csrf/tree/v7.2.0"
},
"funding": [
{
@@ -6093,51 +6094,51 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-10-08T13:08:31+00:00"
},
{
"name": "symfony/security-http",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-http.git",
- "reference": "ded1e078f952e686b058d9eac98e497bea47b308"
+ "reference": "0d0ab4d491f22306c893b2d30ce73ea911201a61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-http/zipball/ded1e078f952e686b058d9eac98e497bea47b308",
- "reference": "ded1e078f952e686b058d9eac98e497bea47b308",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/0d0ab4d491f22306c893b2d30ce73ea911201a61",
+ "reference": "0d0ab4d491f22306c893b2d30ce73ea911201a61",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-foundation": "^6.2|^7.0",
- "symfony/http-kernel": "^6.3|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/security-core": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/security-core": "^7.2",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/clock": "<6.3",
- "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9",
+ "symfony/clock": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
"symfony/http-client-contracts": "<3.0",
- "symfony/security-bundle": "<5.4",
- "symfony/security-csrf": "<5.4"
+ "symfony/security-bundle": "<6.4",
+ "symfony/security-csrf": "<6.4"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/clock": "^6.3|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/clock": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
"symfony/http-client-contracts": "^3.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/security-csrf": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
- "web-token/jwt-checker": "^3.1",
- "web-token/jwt-signature-algorithm-ecdsa": "^3.1"
+ "symfony/rate-limiter": "^6.4|^7.0",
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/security-csrf": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "web-token/jwt-library": "^3.3.2|^4.0"
},
"type": "library",
"autoload": {
@@ -6165,7 +6166,7 @@
"description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-http/tree/v6.4.15"
+ "source": "https://github.com/symfony/security-http/tree/v7.2.0"
},
"funding": [
{
@@ -6181,61 +6182,61 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:40:18+00:00"
+ "time": "2024-11-13T13:40:36+00:00"
},
{
"name": "symfony/serializer",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e"
+ "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e",
- "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0",
+ "reference": "3f5ed9f5e6c02e3853109190ba38408f5e1d2dd0",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8"
},
"conflict": {
- "doctrine/annotations": "<1.12",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/dependency-injection": "<5.4",
- "symfony/property-access": "<5.4",
- "symfony/property-info": "<5.4.24|>=6,<6.2.11",
- "symfony/uid": "<5.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/property-access": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/uid": "<6.4",
"symfony/validator": "<6.4",
- "symfony/yaml": "<5.4"
+ "symfony/yaml": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12|^2",
"phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
+ "phpstan/phpdoc-parser": "^1.0|^2.0",
"seld/jsonlint": "^1.10",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^5.4|^6.0|^7.0",
- "symfony/filesystem": "^5.4|^6.0|^7.0",
- "symfony/form": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4.26|^6.3|^7.0",
- "symfony/property-info": "^5.4.24|^6.2.11|^7.0",
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^7.2",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/filesystem": "^6.4|^7.0",
+ "symfony/form": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/type-info": "^7.1",
+ "symfony/uid": "^6.4|^7.0",
"symfony/validator": "^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0",
- "symfony/var-exporter": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/var-dumper": "^6.4|^7.0",
+ "symfony/var-exporter": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6263,7 +6264,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v6.4.15"
+ "source": "https://github.com/symfony/serializer/tree/v7.2.0"
},
"funding": [
{
@@ -6279,20 +6280,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-23T13:25:59+00:00"
+ "time": "2024-11-25T15:21:05+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
@@ -6346,7 +6347,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -6362,20 +6363,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/stimulus-bundle",
- "version": "v2.21.0",
+ "version": "v2.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stimulus-bundle.git",
- "reference": "e5f7747b514865719e0990389ce35a9b71bebb48"
+ "reference": "2e840a3b12f06b33441cc3eb8907f51b806a7e4b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/e5f7747b514865719e0990389ce35a9b71bebb48",
- "reference": "e5f7747b514865719e0990389ce35a9b71bebb48",
+ "url": "https://api.github.com/repos/symfony/stimulus-bundle/zipball/2e840a3b12f06b33441cc3eb8907f51b806a7e4b",
+ "reference": "2e840a3b12f06b33441cc3eb8907f51b806a7e4b",
"shasum": ""
},
"require": {
@@ -6415,7 +6416,7 @@
"symfony-ux"
],
"support": {
- "source": "https://github.com/symfony/stimulus-bundle/tree/v2.21.0"
+ "source": "https://github.com/symfony/stimulus-bundle/tree/v2.22.0"
},
"funding": [
{
@@ -6431,24 +6432,24 @@
"type": "tidelift"
}
],
- "time": "2024-10-05T22:11:16+00:00"
+ "time": "2024-11-20T07:57:38+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "2cae0a6f8d04937d02f6d19806251e2104d54f92"
+ "reference": "696f418b0d722a4225e1c3d95489d262971ca924"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2cae0a6f8d04937d02f6d19806251e2104d54f92",
- "reference": "2cae0a6f8d04937d02f6d19806251e2104d54f92",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/696f418b0d722a4225e1c3d95489d262971ca924",
+ "reference": "696f418b0d722a4225e1c3d95489d262971ca924",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/service-contracts": "^2.5|^3"
},
"type": "library",
@@ -6477,7 +6478,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.4.13"
+ "source": "https://github.com/symfony/stopwatch/tree/v7.2.0"
},
"funding": [
{
@@ -6493,24 +6494,24 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/string",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f"
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
- "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f",
+ "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
@@ -6520,11 +6521,12 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/intl": "^6.2|^7.0",
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0|^7.0"
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6563,7 +6565,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.15"
+ "source": "https://github.com/symfony/string/tree/v7.2.0"
},
"funding": [
{
@@ -6579,37 +6581,37 @@
"type": "tidelift"
}
],
- "time": "2024-11-13T13:31:12+00:00"
+ "time": "2024-11-13T13:31:26+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66"
+ "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66",
- "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5",
+ "reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
- "symfony/config": "<5.4",
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<5.4",
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<5.4",
+ "symfony/http-kernel": "<6.4",
"symfony/service-contracts": "<2.5",
- "symfony/twig-bundle": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/twig-bundle": "<6.4",
+ "symfony/yaml": "<6.4"
},
"provide": {
"symfony/translation-implementation": "2.3|3.0"
@@ -6617,17 +6619,17 @@
"require-dev": {
"nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6658,7 +6660,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.4.13"
+ "source": "https://github.com/symfony/translation/tree/v7.2.0"
},
"funding": [
{
@@ -6674,20 +6676,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-27T18:14:25+00:00"
+ "time": "2024-11-12T20:47:56+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@@ -6736,7 +6738,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -6752,69 +6754,70 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/twig-bridge",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "ec3511eef0576f378b2758da9e1c157086babd59"
+ "reference": "9958f5a5b6640734fe4b24c18897191f77a02c61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ec3511eef0576f378b2758da9e1c157086babd59",
- "reference": "ec3511eef0576f378b2758da9e1c157086babd59",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9958f5a5b6640734fe4b24c18897191f77a02c61",
+ "reference": "9958f5a5b6640734fe4b24c18897191f77a02c61",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/translation-contracts": "^2.5|^3",
- "twig/twig": "^2.13|^3.0.4"
+ "twig/twig": "^3.12"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/console": "<5.4",
- "symfony/form": "<6.3",
- "symfony/http-foundation": "<5.4",
+ "symfony/console": "<6.4",
+ "symfony/form": "<6.4",
+ "symfony/http-foundation": "<6.4",
"symfony/http-kernel": "<6.4",
- "symfony/mime": "<6.2",
+ "symfony/mime": "<6.4",
"symfony/serializer": "<6.4",
- "symfony/translation": "<5.4",
- "symfony/workflow": "<5.4"
+ "symfony/translation": "<6.4",
+ "symfony/workflow": "<6.4"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3|^4",
"league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^5.4|^6.0|^7.0",
- "symfony/asset-mapper": "^6.3|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/asset": "^6.4|^7.0",
+ "symfony/asset-mapper": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/emoji": "^7.1",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
"symfony/form": "^6.4|^7.0",
- "symfony/html-sanitizer": "^6.1|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/html-sanitizer": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/intl": "^5.4|^6.0|^7.0",
- "symfony/mime": "^6.2|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/routing": "^6.4|^7.0",
"symfony/security-acl": "^2.8|^3.0",
- "symfony/security-core": "^5.4|^6.0|^7.0",
- "symfony/security-csrf": "^5.4|^6.0|^7.0",
- "symfony/security-http": "^5.4|^6.0|^7.0",
+ "symfony/security-core": "^6.4|^7.0",
+ "symfony/security-csrf": "^6.4|^7.0",
+ "symfony/security-http": "^6.4|^7.0",
"symfony/serializer": "^6.4.3|^7.0.3",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/translation": "^6.1|^7.0",
- "symfony/web-link": "^5.4|^6.0|^7.0",
- "symfony/workflow": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/web-link": "^6.4|^7.0",
+ "symfony/workflow": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0",
"twig/cssinliner-extra": "^2.12|^3",
"twig/inky-extra": "^2.12|^3",
"twig/markdown-extra": "^2.12|^3"
@@ -6845,7 +6848,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v6.4.13"
+ "source": "https://github.com/symfony/twig-bridge/tree/v7.2.0"
},
"funding": [
{
@@ -6861,47 +6864,47 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-25T14:26:33+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4"
+ "reference": "cd2be4563afaef5285bb6e0a06c5445e644a5c01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c3beeb5336aba1ea03c37e526968c2fde3ef25c4",
- "reference": "c3beeb5336aba1ea03c37e526968c2fde3ef25c4",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/cd2be4563afaef5285bb6e0a06c5445e644a5c01",
+ "reference": "cd2be4563afaef5285bb6e0a06c5445e644a5c01",
"shasum": ""
},
"require": {
"composer-runtime-api": ">=2.1",
- "php": ">=8.1",
- "symfony/config": "^6.1|^7.0",
- "symfony/dependency-injection": "^6.1|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^6.2",
- "symfony/twig-bridge": "^6.4",
- "twig/twig": "^2.13|^3.0.4"
+ "php": ">=8.2",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"conflict": {
- "symfony/framework-bundle": "<5.4",
- "symfony/translation": "<5.4"
+ "symfony/framework-bundle": "<6.4",
+ "symfony/translation": "<6.4"
},
"require-dev": {
- "symfony/asset": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
- "symfony/form": "^5.4|^6.0|^7.0",
- "symfony/framework-bundle": "^5.4|^6.0|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
- "symfony/web-link": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/asset": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/form": "^6.4|^7.0",
+ "symfony/framework-bundle": "^6.4|^7.0",
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/translation": "^6.4|^7.0",
+ "symfony/web-link": "^6.4|^7.0",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -6929,7 +6932,7 @@
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bundle/tree/v6.4.13"
+ "source": "https://github.com/symfony/twig-bundle/tree/v7.2.0"
},
"funding": [
{
@@ -6945,28 +6948,108 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-10-23T08:11:15+00:00"
},
{
- "name": "symfony/uid",
- "version": "v6.4.13",
+ "name": "symfony/type-info",
+ "version": "v7.2.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/uid.git",
- "reference": "18eb207f0436a993fffbdd811b5b8fa35fa5e007"
+ "url": "https://github.com/symfony/type-info.git",
+ "reference": "e0bfd95bceb3886c59487828537691aecb7d9c6b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/18eb207f0436a993fffbdd811b5b8fa35fa5e007",
- "reference": "18eb207f0436a993fffbdd811b5b8fa35fa5e007",
+ "url": "https://api.github.com/repos/symfony/type-info/zipball/e0bfd95bceb3886c59487828537691aecb7d9c6b",
+ "reference": "e0bfd95bceb3886c59487828537691aecb7d9c6b",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
+ "psr/container": "^1.1|^2.0"
+ },
+ "conflict": {
+ "phpstan/phpdoc-parser": "<1.0",
+ "symfony/dependency-injection": "<6.4"
+ },
+ "require-dev": {
+ "phpstan/phpdoc-parser": "^1.0|^2.0",
+ "symfony/dependency-injection": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\TypeInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mathias Arlaud",
+ "email": "mathias.arlaud@gmail.com"
+ },
+ {
+ "name": "Baptiste LEDUC",
+ "email": "baptiste.leduc@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts PHP types information.",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "PHPStan",
+ "phpdoc",
+ "symfony",
+ "type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/type-info/tree/v7.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-18T09:51:31+00:00"
+ },
+ {
+ "name": "symfony/uid",
+ "version": "v7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426",
+ "reference": "2d294d0c48df244c71c105a169d0190bfb080426",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7003,7 +7086,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.4.13"
+ "source": "https://github.com/symfony/uid/tree/v7.2.0"
},
"funding": [
{
@@ -7019,20 +7102,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/ux-turbo",
- "version": "v2.21.0",
+ "version": "v2.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/ux-turbo.git",
- "reference": "075c609e54fc421c6b1c1974e46e9a8b2d44277c"
+ "reference": "f7af0aa09190354dd4630ea330d8a3fc3e8ef278"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/075c609e54fc421c6b1c1974e46e9a8b2d44277c",
- "reference": "075c609e54fc421c6b1c1974e46e9a8b2d44277c",
+ "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/f7af0aa09190354dd4630ea330d8a3fc3e8ef278",
+ "reference": "f7af0aa09190354dd4630ea330d8a3fc3e8ef278",
"shasum": ""
},
"require": {
@@ -7067,8 +7150,8 @@
"type": "symfony-bundle",
"extra": {
"thanks": {
- "name": "symfony/ux",
- "url": "https://github.com/symfony/ux"
+ "url": "https://github.com/symfony/ux",
+ "name": "symfony/ux"
}
},
"autoload": {
@@ -7101,7 +7184,7 @@
"turbo-stream"
],
"support": {
- "source": "https://github.com/symfony/ux-turbo/tree/v2.21.0"
+ "source": "https://github.com/symfony/ux-turbo/tree/v2.22.0"
},
"funding": [
{
@@ -7117,20 +7200,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-21T19:07:02+00:00"
+ "time": "2024-11-29T15:25:16+00:00"
},
{
"name": "symfony/ux-twig-component",
- "version": "v2.21.0",
+ "version": "v2.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/ux-twig-component.git",
- "reference": "5b60b239fffcb04fc8bdb2a5a4001d19442d575d"
+ "reference": "03177a494399fbdcbb1f5f2aee017ccf8df581d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/5b60b239fffcb04fc8bdb2a5a4001d19442d575d",
- "reference": "5b60b239fffcb04fc8bdb2a5a4001d19442d575d",
+ "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/03177a494399fbdcbb1f5f2aee017ccf8df581d9",
+ "reference": "03177a494399fbdcbb1f5f2aee017ccf8df581d9",
"shasum": ""
},
"require": {
@@ -7157,8 +7240,8 @@
"type": "symfony-bundle",
"extra": {
"thanks": {
- "name": "symfony/ux",
- "url": "https://github.com/symfony/ux"
+ "url": "https://github.com/symfony/ux",
+ "name": "symfony/ux"
}
},
"autoload": {
@@ -7184,7 +7267,7 @@
"twig"
],
"support": {
- "source": "https://github.com/symfony/ux-twig-component/tree/v2.21.0"
+ "source": "https://github.com/symfony/ux-twig-component/tree/v2.22.0"
},
"funding": [
{
@@ -7200,24 +7283,24 @@
"type": "tidelift"
}
],
- "time": "2024-10-05T22:11:16+00:00"
+ "time": "2024-11-23T06:59:34+00:00"
},
{
"name": "symfony/validator",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b"
+ "reference": "ddad20aa8cf7a45a9d6300e5776b8d252dc3524b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b",
- "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/ddad20aa8cf7a45a9d6300e5776b8d252dc3524b",
+ "reference": "ddad20aa8cf7a45a9d6300e5776b8d252dc3524b",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0",
@@ -7225,34 +7308,34 @@
"symfony/translation-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/annotations": "<1.13",
"doctrine/lexer": "<1.1",
- "symfony/dependency-injection": "<5.4",
- "symfony/expression-language": "<5.4",
- "symfony/http-kernel": "<5.4",
- "symfony/intl": "<5.4",
- "symfony/property-info": "<5.4",
- "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3|>=7.0,<7.0.3",
- "symfony/yaml": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<7.0",
+ "symfony/expression-language": "<6.4",
+ "symfony/http-kernel": "<6.4",
+ "symfony/intl": "<6.4",
+ "symfony/property-info": "<6.4",
+ "symfony/translation": "<6.4.3|>=7.0,<7.0.3",
+ "symfony/yaml": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.13|^2",
"egulias/email-validator": "^2.1.10|^3|^4",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/intl": "^5.4|^6.0|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4.35|~6.3.12|^6.4.3|^7.0.3",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/finder": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/property-info": "^6.4|^7.0",
+ "symfony/translation": "^6.4.3|^7.0.3",
+ "symfony/type-info": "^7.1",
+ "symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7281,7 +7364,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v6.4.15"
+ "source": "https://github.com/symfony/validator/tree/v7.2.0"
},
"funding": [
{
@@ -7297,38 +7380,36 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T15:28:48+00:00"
+ "time": "2024-11-27T09:50:52+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.4.15",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80"
+ "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
- "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c",
+ "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/console": "<5.4"
+ "symfony/console": "<6.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^6.3|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/uid": "^5.4|^6.0|^7.0",
- "twig/twig": "^2.13|^3.0.4"
+ "symfony/console": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/uid": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -7366,7 +7447,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.4.15"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.2.0"
},
"funding": [
{
@@ -7382,30 +7463,29 @@
"type": "tidelift"
}
],
- "time": "2024-11-08T15:28:48+00:00"
+ "time": "2024-11-08T15:48:14+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "0f605f72a363f8743001038a176eeb2a11223b51"
+ "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51",
- "reference": "0f605f72a363f8743001038a176eeb2a11223b51",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a6a89f95a46af0f142874c9d650a6358d13070d",
+ "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3"
+ "php": ">=8.2"
},
"require-dev": {
"symfony/property-access": "^6.4|^7.0",
"symfony/serializer": "^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7443,7 +7523,7 @@
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v6.4.13"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.2.0"
},
"funding": [
{
@@ -7459,34 +7539,34 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-10-18T07:58:17+00:00"
},
{
"name": "symfony/web-link",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-link.git",
- "reference": "4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94"
+ "reference": "f537556a885e14a1d28f6c759d41e57e93d0a532"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-link/zipball/4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94",
- "reference": "4d188b64bb9a9c5e2e4d20c8d5fdce6bbbb32c94",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/f537556a885e14a1d28f6c759d41e57e93d0a532",
+ "reference": "f537556a885e14a1d28f6c759d41e57e93d0a532",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/link": "^1.1|^2.0"
},
"conflict": {
- "symfony/http-kernel": "<5.4"
+ "symfony/http-kernel": "<6.4"
},
"provide": {
"psr/link-implementation": "1.0|2.0"
},
"require-dev": {
- "symfony/http-kernel": "^5.4|^6.0|^7.0"
+ "symfony/http-kernel": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7526,7 +7606,7 @@
"push"
],
"support": {
- "source": "https://github.com/symfony/web-link/tree/v6.4.13"
+ "source": "https://github.com/symfony/web-link/tree/v7.2.0"
},
"funding": [
{
@@ -7542,32 +7622,32 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9"
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
- "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22",
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<5.4"
+ "symfony/console": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -7598,7 +7678,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.4.13"
+ "source": "https://github.com/symfony/yaml/tree/v7.2.0"
},
"funding": [
{
@@ -7614,11 +7694,59 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-10-23T06:56:12+00:00"
+ },
+ {
+ "name": "symfonycasts/reset-password-bundle",
+ "version": "v1.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/SymfonyCasts/reset-password-bundle.git",
+ "reference": "419a3283beb66392eca7030cf7c5c363b39b12b1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/SymfonyCasts/reset-password-bundle/zipball/419a3283beb66392eca7030cf7c5c363b39b12b1",
+ "reference": "419a3283beb66392eca7030cf7c5c363b39b12b1",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": ">=8.1.10",
+ "symfony/config": "^5.4 | ^6.0 | ^7.0",
+ "symfony/dependency-injection": "^5.4 | ^6.0 | ^7.0",
+ "symfony/deprecation-contracts": "^2.2 | ^3.0",
+ "symfony/http-kernel": "^5.4 | ^6.0 | ^7.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.0",
+ "doctrine/doctrine-bundle": "^2.8",
+ "doctrine/orm": "^2.13",
+ "symfony/framework-bundle": "^5.4 | ^6.0 | ^7.0",
+ "symfony/phpunit-bridge": "^5.4 | ^6.0 | ^7.0",
+ "symfony/process": "^6.4 | ^7.0 | ^7.1",
+ "symfonycasts/internal-test-helpers": "dev-main"
+ },
+ "type": "symfony-bundle",
+ "autoload": {
+ "psr-4": {
+ "SymfonyCasts\\Bundle\\ResetPassword\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Symfony bundle that adds password reset functionality.",
+ "support": {
+ "issues": "https://github.com/SymfonyCasts/reset-password-bundle/issues",
+ "source": "https://github.com/SymfonyCasts/reset-password-bundle/tree/v1.23.0"
+ },
+ "time": "2024-11-08T11:57:33+00:00"
},
{
"name": "twig/extra-bundle",
- "version": "v3.15.0",
+ "version": "v3.16.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
@@ -7676,7 +7804,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.15.0"
+ "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.16.0"
},
"funding": [
{
@@ -7692,16 +7820,16 @@
},
{
"name": "twig/twig",
- "version": "v3.15.0",
+ "version": "v3.16.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02"
+ "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02",
- "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561",
+ "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561",
"shasum": ""
},
"require": {
@@ -7712,6 +7840,7 @@
"symfony/polyfill-php81": "^1.29"
},
"require-dev": {
+ "phpstan/phpstan": "^2.0",
"psr/container": "^1.0|^2.0",
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
},
@@ -7755,7 +7884,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.15.0"
+ "source": "https://github.com/twigphp/Twig/tree/v3.16.0"
},
"funding": [
{
@@ -7767,7 +7896,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-17T15:59:19+00:00"
+ "time": "2024-11-29T08:27:05+00:00"
},
{
"name": "webmozart/assert",
@@ -9519,27 +9648,27 @@
},
{
"name": "symfony/browser-kit",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab"
+ "reference": "8d64d17e198082f8f198d023a6b634e7b5fdda94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/65d4b3fd9556e4b5b41287bef93c671f8f9f86ab",
- "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/8d64d17e198082f8f198d023a6b634e7b5fdda94",
+ "reference": "8d64d17e198082f8f198d023a6b634e7b5fdda94",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/dom-crawler": "^5.4|^6.0|^7.0"
+ "php": ">=8.2",
+ "symfony/dom-crawler": "^6.4|^7.0"
},
"require-dev": {
- "symfony/css-selector": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0"
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -9567,7 +9696,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v6.4.13"
+ "source": "https://github.com/symfony/browser-kit/tree/v7.2.0"
},
"funding": [
{
@@ -9583,24 +9712,24 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-10-25T15:15:23+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e"
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/cb23e97813c5837a041b73a6d63a9ddff0778f5e",
- "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2",
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -9632,7 +9761,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.4.13"
+ "source": "https://github.com/symfony/css-selector/tree/v7.2.0"
},
"funding": [
{
@@ -9648,37 +9777,37 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/debug-bundle",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
- "reference": "7bcfaff39e094cc09455201916d016d9b2ae08ff"
+ "reference": "2dade0d1415c08b627379b5ec214ec8424cb2e32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/7bcfaff39e094cc09455201916d016d9b2ae08ff",
- "reference": "7bcfaff39e094cc09455201916d016d9b2ae08ff",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/2dade0d1415c08b627379b5ec214ec8424cb2e32",
+ "reference": "2dade0d1415c08b627379b5ec214ec8424cb2e32",
"shasum": ""
},
"require": {
"ext-xml": "*",
- "php": ">=8.1",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/twig-bridge": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "php": ">=8.2",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/twig-bridge": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"conflict": {
- "symfony/config": "<5.4",
- "symfony/dependency-injection": "<5.4"
+ "symfony/config": "<6.4",
+ "symfony/dependency-injection": "<6.4"
},
"require-dev": {
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/web-profiler-bundle": "^6.4|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -9706,7 +9835,7 @@
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug-bundle/tree/v6.4.13"
+ "source": "https://github.com/symfony/debug-bundle/tree/v7.2.0"
},
"funding": [
{
@@ -9722,30 +9851,30 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v6.4.13",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "ae074dffb018c37a57071990d16e6152728dd972"
+ "reference": "b176e1f1f550ef44c94eb971bf92488de08f7c6b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ae074dffb018c37a57071990d16e6152728dd972",
- "reference": "ae074dffb018c37a57071990d16e6152728dd972",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b176e1f1f550ef44c94eb971bf92488de08f7c6b",
+ "reference": "b176e1f1f550ef44c94eb971bf92488de08f7c6b",
"shasum": ""
},
"require": {
"masterminds/html5": "^2.6",
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
- "symfony/css-selector": "^5.4|^6.0|^7.0"
+ "symfony/css-selector": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -9773,7 +9902,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v6.4.13"
+ "source": "https://github.com/symfony/dom-crawler/tree/v7.2.0"
},
"funding": [
{
@@ -9789,7 +9918,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-11-13T16:15:23+00:00"
},
{
"name": "symfony/maker-bundle",
@@ -9885,16 +10014,16 @@
},
{
"name": "symfony/phpunit-bridge",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f"
+ "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6b9d8f52d3e276bedb49612aa4a2a046171287f",
- "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2bbde92ab25a0e2c88160857af7be9db5da0d145",
+ "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145",
"shasum": ""
},
"require": {
@@ -9914,8 +10043,8 @@
"type": "symfony-bridge",
"extra": {
"thanks": {
- "name": "phpunit/phpunit",
- "url": "https://github.com/sebastianbergmann/phpunit"
+ "url": "https://github.com/sebastianbergmann/phpunit",
+ "name": "phpunit/phpunit"
}
},
"autoload": {
@@ -9947,7 +10076,7 @@
"description": "Provides utilities for PHPUnit, especially user deprecation notices management",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/phpunit-bridge/tree/v7.1.6"
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v7.2.0"
},
"funding": [
{
@@ -9963,42 +10092,42 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-11-13T16:15:23+00:00"
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v6.4.14",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "bfbade623f1cc7f1e243ce5488af33861a8f5be7"
+ "reference": "8843019fa7140a4aa079f1a8d71fd010f61de5f2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/bfbade623f1cc7f1e243ce5488af33861a8f5be7",
- "reference": "bfbade623f1cc7f1e243ce5488af33861a8f5be7",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/8843019fa7140a4aa079f1a8d71fd010f61de5f2",
+ "reference": "8843019fa7140a4aa079f1a8d71fd010f61de5f2",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/config": "^5.4|^6.0|^7.0",
+ "php": ">=8.2",
+ "symfony/config": "^6.4|^7.0",
"symfony/framework-bundle": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/twig-bundle": "^5.4|^6.0",
- "twig/twig": "^2.13|^3.0.4"
+ "symfony/routing": "^6.4|^7.0",
+ "symfony/twig-bundle": "^6.4|^7.0",
+ "twig/twig": "^3.12"
},
"conflict": {
- "symfony/form": "<5.4",
- "symfony/mailer": "<5.4",
- "symfony/messenger": "<5.4",
- "symfony/twig-bundle": ">=7.0"
+ "symfony/form": "<6.4",
+ "symfony/mailer": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/serializer": "<7.2"
},
"require-dev": {
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/css-selector": "^5.4|^6.0|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0"
+ "symfony/browser-kit": "^6.4|^7.0",
+ "symfony/console": "^6.4|^7.0",
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -10029,7 +10158,7 @@
"dev"
],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.4.14"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.2.0"
},
"funding": [
{
@@ -10045,7 +10174,7 @@
"type": "tidelift"
}
],
- "time": "2024-11-04T11:33:53+00:00"
+ "time": "2024-11-19T10:12:55+00:00"
},
{
"name": "theseer/tokenizer",
@@ -10100,7 +10229,9 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {},
+ "stability-flags": {
+ "easycorp/easyadmin-bundle": 20
+ },
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
diff --git a/config/bundles.php b/config/bundles.php
index 1737743..e95cf69 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -15,4 +15,5 @@ return [
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Symfony\UX\TwigComponent\TwigComponentBundle::class => ['all' => true],
EasyCorp\Bundle\EasyAdminBundle\EasyAdminBundle::class => ['all' => true],
+ SymfonyCasts\Bundle\ResetPassword\SymfonyCastsResetPasswordBundle::class => ['all' => true],
];
diff --git a/config/packages/csrf.yaml b/config/packages/csrf.yaml
new file mode 100644
index 0000000..40d4040
--- /dev/null
+++ b/config/packages/csrf.yaml
@@ -0,0 +1,11 @@
+# Enable stateless CSRF protection for forms and logins/logouts
+framework:
+ form:
+ csrf_protection:
+ token_id: submit
+
+ csrf_protection:
+ stateless_token_ids:
+ - submit
+ - authenticate
+ - logout
diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml
index 56a650d..7c4498e 100644
--- a/config/packages/mailer.yaml
+++ b/config/packages/mailer.yaml
@@ -1,3 +1,4 @@
framework:
mailer:
dsn: '%env(MAILER_DSN)%'
+ message_bus: false
diff --git a/config/packages/reset_password.yaml b/config/packages/reset_password.yaml
new file mode 100644
index 0000000..d04ef3a
--- /dev/null
+++ b/config/packages/reset_password.yaml
@@ -0,0 +1,4 @@
+symfonycasts_reset_password:
+ request_password_repository: App\Repository\ResetPasswordRequestRepository
+ lifetime: 3600
+ throttle_limit: 3600
diff --git a/config/packages/uid.yaml b/config/packages/uid.yaml
deleted file mode 100644
index 0152094..0000000
--- a/config/packages/uid.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-framework:
- uid:
- default_uuid_version: 7
- time_based_uuid_version: 7
diff --git a/migrations/Version20241201211313.php b/migrations/Version20241201211313.php
deleted file mode 100644
index 352b455..0000000
--- a/migrations/Version20241201211313.php
+++ /dev/null
@@ -1,32 +0,0 @@
-addSql('CREATE TABLE rememberme_token (series VARCHAR(88) NOT NULL, value VARCHAR(88) NOT NULL, lastUsed DATETIME NOT NULL --(DC2Type:datetime_immutable)
- , class VARCHAR(100) NOT NULL, username VARCHAR(200) NOT NULL, PRIMARY KEY(series))');
- }
-
- public function down(Schema $schema): void
- {
- // this down() migration is auto-generated, please modify it to your needs
- $this->addSql('DROP TABLE rememberme_token');
- }
-}
diff --git a/migrations/Version20241201030110.php b/migrations/Version20241204160251.php
similarity index 76%
rename from migrations/Version20241201030110.php
rename to migrations/Version20241204160251.php
index b80f465..ec90e2d 100644
--- a/migrations/Version20241201030110.php
+++ b/migrations/Version20241204160251.php
@@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
-final class Version20241201030110 extends AbstractMigration
+final class Version20241204160251 extends AbstractMigration
{
public function getDescription(): string
{
@@ -58,6 +58,18 @@ final class Version20241201030110 extends AbstractMigration
)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_A6BDD54BE7927C74 ON mydevel_webroot_user (email)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_IDENTIFIER_USERNAME ON mydevel_webroot_user (username)');
+ $this->addSql('CREATE TABLE reset_password_request (
+ id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
+ user_id INTEGER NOT NULL,
+ selector VARCHAR(20) NOT NULL,
+ hashed_token VARCHAR(100) NOT NULL,
+ requested_at DATETIME NOT NULL --(DC2Type:datetime_immutable)
+ ,
+ expires_at DATETIME NOT NULL --(DC2Type:datetime_immutable)
+ ,
+ CONSTRAINT FK_7CE748AA76ED395 FOREIGN KEY (user_id) REFERENCES mydevel_webroot_user (id) NOT DEFERRABLE INITIALLY IMMEDIATE
+ )');
+ $this->addSql('CREATE INDEX IDX_7CE748AA76ED395 ON reset_password_request (user_id)');
$this->addSql('CREATE TABLE messenger_messages (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
body CLOB NOT NULL,
@@ -72,6 +84,15 @@ final class Version20241201030110 extends AbstractMigration
$this->addSql('CREATE INDEX IDX_75EA56E0FB7336F0 ON messenger_messages (queue_name)');
$this->addSql('CREATE INDEX IDX_75EA56E0E3BD61CE ON messenger_messages (available_at)');
$this->addSql('CREATE INDEX IDX_75EA56E016BA31DB ON messenger_messages (delivered_at)');
+ $this->addSql('CREATE TABLE rememberme_token (
+ series VARCHAR(88) NOT NULL,
+ value VARCHAR(88) NOT NULL,
+ lastUsed DATETIME NOT NULL --(DC2Type:datetime_immutable)
+ ,
+ class VARCHAR(100) NOT NULL,
+ username VARCHAR(200) NOT NULL,
+ PRIMARY KEY(series)
+ )');
}
public function down(Schema $schema): void
@@ -81,6 +102,8 @@ final class Version20241201030110 extends AbstractMigration
$this->addSql('DROP TABLE mydevel_webroot_file_permission');
$this->addSql('DROP TABLE mydevel_webroot_role');
$this->addSql('DROP TABLE mydevel_webroot_user');
+ $this->addSql('DROP TABLE reset_password_request');
$this->addSql('DROP TABLE messenger_messages');
+ $this->addSql('DROP TABLE rememberme_token');
}
}
diff --git a/migrations/Version20241206014353.php b/migrations/Version20241206014353.php
new file mode 100644
index 0000000..88f01a3
--- /dev/null
+++ b/migrations/Version20241206014353.php
@@ -0,0 +1,41 @@
+addSql('CREATE TEMPORARY TABLE __temp__mydevel_webroot_file AS SELECT id, owner_id, url, abspath, description FROM mydevel_webroot_file');
+ $this->addSql('DROP TABLE mydevel_webroot_file');
+ $this->addSql('CREATE TABLE mydevel_webroot_file (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, owner_id INTEGER NOT NULL, url_path CLOB NOT NULL, abspath CLOB NOT NULL, description CLOB DEFAULT NULL, section VARCHAR(1024) DEFAULT \'webroot\' NOT NULL, CONSTRAINT FK_A7B135127E3C61F9 FOREIGN KEY (owner_id) REFERENCES mydevel_webroot_user (id) ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE)');
+ $this->addSql('INSERT INTO mydevel_webroot_file (id, owner_id, url_path, abspath, description) SELECT id, owner_id, url, abspath, description FROM __temp__mydevel_webroot_file');
+ $this->addSql('DROP TABLE __temp__mydevel_webroot_file');
+ $this->addSql('CREATE UNIQUE INDEX UNIQ_A7B135127E3C61F9 ON mydevel_webroot_file (owner_id)');
+ }
+
+ public function down(Schema $schema): void
+ {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql('CREATE TEMPORARY TABLE __temp__mydevel_webroot_file AS SELECT id, owner_id, url_path, abspath, description FROM mydevel_webroot_file');
+ $this->addSql('DROP TABLE mydevel_webroot_file');
+ $this->addSql('CREATE TABLE mydevel_webroot_file (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, owner_id INTEGER NOT NULL, url CLOB NOT NULL, abspath CLOB NOT NULL, description CLOB DEFAULT NULL, CONSTRAINT FK_A7B135127E3C61F9 FOREIGN KEY (owner_id) REFERENCES mydevel_webroot_user (id) NOT DEFERRABLE INITIALLY IMMEDIATE)');
+ $this->addSql('INSERT INTO mydevel_webroot_file (id, owner_id, url, abspath, description) SELECT id, owner_id, url_path, abspath, description FROM __temp__mydevel_webroot_file');
+ $this->addSql('DROP TABLE __temp__mydevel_webroot_file');
+ $this->addSql('CREATE UNIQUE INDEX UNIQ_A7B135127E3C61F9 ON mydevel_webroot_file (owner_id)');
+ }
+}
diff --git a/security.yaml b/security.yaml
new file mode 100644
index 0000000..3edec0e
--- /dev/null
+++ b/security.yaml
@@ -0,0 +1 @@
+# vim syn=yaml ts=2 sts=2 sw=2 smartindent expandtab
diff --git a/src/Controller/Admin/DashboardController.php b/src/Controller/Admin/DashboardController.php
new file mode 100644
index 0000000..ebc2e42
--- /dev/null
+++ b/src/Controller/Admin/DashboardController.php
@@ -0,0 +1,46 @@
+container->get(AdminUrlGenerator::class);
+ // return $this->redirect($adminUrlGenerator->setController(OneOfYourCrudController::class)->generateUrl());
+
+ // Option 2. You can make your dashboard redirect to different pages depending on the user
+ //
+ // if ('jane' === $this->getUser()->getUsername()) {
+ // return $this->redirect('...');
+ // }
+
+ // Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
+ // (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
+ //
+ // return $this->render('some/path/my-dashboard.html.twig');
+ }
+
+ public function configureDashboard(): Dashboard
+ {
+ return Dashboard::new()
+ ->setTitle('Webroot');
+ }
+
+ public function configureMenuItems(): iterable
+ {
+ yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
+ // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
+ }
+}
diff --git a/src/Controller/Admin/WebrootFileCrudController.php b/src/Controller/Admin/WebrootFileCrudController.php
new file mode 100644
index 0000000..9d833ac
--- /dev/null
+++ b/src/Controller/Admin/WebrootFileCrudController.php
@@ -0,0 +1,28 @@
+ $user,
]));
}
+
+ #[Route('/webroot',name:"app_webroot")]
+ public function webroot(): Response
+ {
+ $is_allowed = false;
+ $user = $this->getUser();
+
+
+ if (!$is_allowed) {
+ throw new AccessDeniedHttpException();
+ }
+
+ $routeconfig = [
+ "parent"=>null,
+ "url"=> $this->generateUrl("app_webroot"),
+ "child"=>"app_webroot_target",
+ ];
+
+ return new Response("it works ");
+ }
+
+ #[Route('/webroot/{target}',name:"app_webroot_target")]
+ public function webrootTarget(?string $target): Response
+ {
+ $is_allowed = false;
+ $user = $this->getUser();
+
+ if ($user) {
+ if (in_array("ROLE_SUPERADMIN",$user->getRoles()) || in_array("ROLE_ADMIN",$user->getRoles())) {
+ $is_allowed = true;
+ }
+ }
+ if (!$is_allowed) {
+ throw new AccessDeniedHttpException();
+ }
+
+
+ return new Response("it works ");
+ }
}
diff --git a/src/Controller/ResetPasswordController.php b/src/Controller/ResetPasswordController.php
new file mode 100644
index 0000000..5604c03
--- /dev/null
+++ b/src/Controller/ResetPasswordController.php
@@ -0,0 +1,181 @@
+createForm(ResetPasswordRequestFormType::class);
+ $form->handleRequest($request);
+
+ if ($form->isSubmitted() && $form->isValid()) {
+ /** @var string $email */
+ $email = $form->get('email')->getData();
+
+ return $this->processSendingPasswordResetEmail($email, $mailer, $translator
+ );
+ }
+
+ return $this->render('reset_password/request.html.twig', [
+ 'requestForm' => $form,
+ ]);
+ }
+
+ /**
+ * Confirmation page after a user has requested a password reset.
+ */
+ #[Route('/check-email', name: 'app_check_email')]
+ public function checkEmail(): Response
+ {
+ // Generate a fake token if the user does not exist or someone hit this page directly.
+ // This prevents exposing whether or not a user was found with the given email address or not
+ if (null === ($resetToken = $this->getTokenObjectFromSession())) {
+ $resetToken = $this->resetPasswordHelper->generateFakeResetToken();
+ }
+
+ return $this->render('reset_password/check_email.html.twig', [
+ 'resetToken' => $resetToken,
+ ]);
+ }
+
+ /**
+ * Validates and process the reset URL that the user clicked in their email.
+ */
+ #[Route('/reset/{token}', name: 'app_reset_password')]
+ public function reset(Request $request, UserPasswordHasherInterface $passwordHasher, TranslatorInterface $translator, ?string $token = null): Response
+ {
+ if ($token) {
+ // We store the token in session and remove it from the URL, to avoid the URL being
+ // loaded in a browser and potentially leaking the token to 3rd party JavaScript.
+ $this->storeTokenInSession($token);
+
+ return $this->redirectToRoute('app_reset_password');
+ }
+
+ $token = $this->getTokenFromSession();
+
+ if (null === $token) {
+ throw $this->createNotFoundException('No reset password token found in the URL or in the session.');
+ }
+
+ try {
+ /** @var WebrootUser $user */
+ $user = $this->resetPasswordHelper->validateTokenAndFetchUser($token);
+ } catch (ResetPasswordExceptionInterface $e) {
+ $this->addFlash('reset_password_error', sprintf(
+ '%s - %s',
+ $translator->trans(ResetPasswordExceptionInterface::MESSAGE_PROBLEM_VALIDATE, [], 'ResetPasswordBundle'),
+ $translator->trans($e->getReason(), [], 'ResetPasswordBundle')
+ ));
+
+ return $this->redirectToRoute('app_forgot_password_request');
+ }
+
+ // The token is valid; allow the user to change their password.
+ $form = $this->createForm(ChangePasswordFormType::class);
+ $form->handleRequest($request);
+
+ if ($form->isSubmitted() && $form->isValid()) {
+ // A password reset token should be used only once, remove it.
+ $this->resetPasswordHelper->removeResetRequest($token);
+
+ /** @var string $plainPassword */
+ $plainPassword = $form->get('plainPassword')->getData();
+
+ // Encode(hash) the plain password, and set it.
+ $user->setPassword($passwordHasher->hashPassword($user, $plainPassword));
+ $this->entityManager->flush();
+
+ // The session is cleaned up after the password has been changed.
+ $this->cleanSessionAfterReset();
+
+ return $this->redirectToRoute('app_index');
+ }
+
+ return $this->render('reset_password/reset.html.twig', [
+ 'resetForm' => $form,
+ ]);
+ }
+
+ private function processSendingPasswordResetEmail(string $emailFormData, TransportInterface $mailer, TranslatorInterface $translator): RedirectResponse
+ {
+ $user = $this->entityManager->getRepository(WebrootUser::class)->findOneBy([
+ 'email' => $emailFormData,
+ ]);
+
+ // Do not reveal whether a user account was found or not.
+ if (!$user) {
+ return $this->redirectToRoute('app_check_email');
+ }
+
+ try {
+ $resetToken = $this->resetPasswordHelper->generateResetToken($user);
+ } catch (ResetPasswordExceptionInterface $e) {
+ // If you want to tell the user why a reset email was not sent, uncomment
+ // the lines below and change the redirect to 'app_forgot_password_request'.
+ // Caution: This may reveal if a user is registered or not.
+ //
+ /*
+ $this->addFlash('reset_password_error', sprintf(
+ '%s - %s',
+ $translator->trans(ResetPasswordExceptionInterface::MESSAGE_PROBLEM_HANDLE, [], 'ResetPasswordBundle'),
+ $translator->trans($e->getReason(), [], 'ResetPasswordBundle')
+ ));
+ return $this->redirectToRoute('app_forgot_password_request');
+ */
+ return $this->redirectToRoute('app_check_email');
+ }
+
+ $email = (new TemplatedEmail())
+ ->from(new Address('noreply@mydevel.at',"MyDevel.at"))
+ ->to((string) $user->getEmail())
+ ->subject($translator->trans('Your password reset request',domain:'ResetPasswordBundle'))
+ ->htmlTemplate($translator->trans('reset_password/email.html.twig',domain:'ResetPasswordBundle'))
+ ->context([
+ 'resetToken' => $resetToken,
+ 'username' => $user->getUsername(),
+ ])
+ ;
+
+ $mailer->send($email);
+
+ // Store the token object in session for retrieval in check-email route.
+ $this->setTokenObjectInSession($resetToken);
+
+ return $this->redirectToRoute('app_check_email');
+ }
+}
diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php
index dc7de33..4ef0325 100644
--- a/src/Controller/SecurityController.php
+++ b/src/Controller/SecurityController.php
@@ -6,6 +6,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
+use Symfony\Bundle\SecurityBundle\Security;
use App\Controller\WebrootController;
@@ -27,14 +28,20 @@ class SecurityController extends WebrootController
'login_username' => $this->trans("login.username",domain:"security"),
'login_password' => $this->trans("login.password",domain:"security"),
'login_remember_me' => $this->trans("login.remember_me",domain:"security"),
+ 'login_forgotten_password' => $this->trans("login.forgotten_password",domain:"security"),
'last_username' => $lastUsername,
'error' => $error,
]));
}
-
- #[Route(path: '/logout', name: 'app_logout')]
- public function logout(): void
+
+ #[Route('/logout',name:'app_logout')]
+ public function logout(Security $security): Response
{
- throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
+ if ($this->getUser()) {
+ $response = $security->logout(false);
+ } else {
+ $response = $this->redirect("Login");
+ }
+ return $response;
}
}
diff --git a/src/Controller/SetupController.php b/src/Controller/SetupController.php
index 5f938ec..8b5d420 100644
--- a/src/Controller/SetupController.php
+++ b/src/Controller/SetupController.php
@@ -122,6 +122,7 @@ class SetupController extends WebrootSetupController
$data= $this->getDataFromInitialSetupDataCookie($request);
$commands=$data["__commands__"];
+ $error=null;
if ($step >= count($commands)) {
return $this->redirectToRoute("app_login");
@@ -133,14 +134,26 @@ class SetupController extends WebrootSetupController
$output = $this->trans("command.createdb",domain:"mydevel.webroot.setup");
try {
$this->runCreateDatabase();
- } catch (\Throwable $ex) {
+ $status="SUCCESS";
+ } catch (\Exception $ex) {
$status = "FAILED";
- $status_message = $this->trans("command.failed",domain:"mydevel.webroot.setup");
+ $status_message = $this->translate("command.failed",domain:"mydevel.webroot.setup");
+ $error = $ex->getMessage();
+ } catch (\Throwable $ex) {
+ $status = "FAILED";
+ if (function_exists([$ex,'getMessage'])) {
+ $error=$ex->getMessage();
+ }
+ $status_message = $this->trans("command.failed",domain:"mydevel.webroot.setup");
}
} elseif ($commands[$step] === "make-migrations") {
$output = $this->trans("command.makemigrations",domain:"mydevel.webroot.setup");
try {
$this->runMakeMigration();
+ } catch (\Exception $ex) {
+ $status = "FAILED";
+ $status_message = $this->translate("command.failed",domain:"mydevel.webroot.setup");
+ $error = $ex->getMessage();
} catch (\Throwable $ex) {
$status = "FAILED";
$status_message = $this->trans("command.success",domain:"mydevel.webroot.setup");
@@ -149,6 +162,10 @@ class SetupController extends WebrootSetupController
$output = $this->trans("command.migrate",domain:"mydevel.webroot.setup");
try {
$this->runMigrate();
+ } catch (\Exception $ex) {
+ $status = "FAILED";
+ $status_message = $this->translate("command.failed",domain:"mydevel.webroot.setup");
+ $error = $ex->getMessage();
} catch (\Throwable $ex) {
$status_message = $this->trans("command.failed",domain:"mydevel.webroot.setup");
$status = "FAILED";
@@ -161,10 +178,14 @@ class SetupController extends WebrootSetupController
$this->addRootDir($data);
$status = "SUCCESS";
$status_message = $this->trans("command.success",domain:"mydevel.webroot.setup");
- } catch (\Throwable $ex) {
+ } catch (\Exception $ex) {
$status = "FAILED";
$status_message = $this->translate("command.failed",domain:"mydevel.webroot.setup");
- }
+ $error = $ex->getMessage();
+ } catch (\throwable $ex) {
+ $status_message = $this->trans("command.failed");
+ $status = "FAILED";
+ }
} else {
$output = "Unknown command \"" . $commands[$step] . "\"";
$status = "FAILED";
@@ -177,6 +198,7 @@ class SetupController extends WebrootSetupController
'status' => $status,
'status_message' => $status_message,
'output' => $output,
+ 'error' => $error,
'failed_button' => $this->trans("button.return-setup",domain:"mydevel.webroot.setup"),
]);
}
diff --git a/src/Controller/WebrootController.php b/src/Controller/WebrootController.php
index 6afe151..74ce38b 100644
--- a/src/Controller/WebrootController.php
+++ b/src/Controller/WebrootController.php
@@ -4,24 +4,33 @@ namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\BinaryFileResponse;
+use Symfony\Component\HttpFoundation\ResponseHeaderBag;
+use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Symfony\Component\Routing\Attribute\Route;
+use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
-
+use Doctrine\ORM\EntityManagerInterface;
+use App\Entity\WebrootFile;
use App\Utility\NullTranslator;
abstract class WebrootController extends AbstractController
{
private ?string $project_dir = null;
private ?TranslatorInterface $tranlsator = null;
+ private ?EntityManager $entitymanager = null;
protected ?NullTranslator $nulltranslator = null;
- public function __construct(KernelInterface $kernel,TranslatorInterface $translator)
+ public function __construct(KernelInterface $kernel,TranslatorInterface $translator,EntityManagerInterface $entitymanager)
{
+ $this->entity_manager = $entitymanager;
$this->project_dir = $kernel->getProjectDir();
$this->translator = $translator;
- $this->nulltranslator = new NullTranslator();
+ $this->nulltranslator = new NullTranslator();
+ $this->entitymanager = $entitymanager;
}
public function getHeaderTitleFiglet(): ?string
@@ -51,4 +60,133 @@ abstract class WebrootController extends AbstractController
{
return $this->translator->trans($message,$args,domain:$domain,locale:$locale);
}
+
+ protected function getFilePermissions($section,string $url_path): array
+ {
+ return $this->entitymanager->getRepositiory(WebrootFile::class)
+ ->findFilePermissionsBySectionPath($this->getUser(),$section,$url_path);
+ }
+
+ protected function getFileResponse($abspath): Response
+ {
+ if (!is_file($abspath)) {
+ throw new FileException();
+ }
+ $response = new BinaryFileResponse();
+ $response->setFile($abspath);
+ $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE);
+ return response;
+ }
+
+ protected function getDirectoryList(string $abspath,string $section,string $url_path,array $routeconfig): array
+ {
+ if (!is_directory("abspath")) {
+ throw new FileException();
+ }
+ $file_repos = $this->entitymanager->getRepository(WebrootFile::class);
+ $user = $this->getUser();
+ $roles = $user->getRoles();
+ if (in_array('ROLE_SUPERADMIN', $roles) || in_array('ROLE_ADMIN',$roles)) {
+ $show_dotfiles = true;
+ } else {
+ $show_dotfiles = false;
+ }
+
+ $dirlist = [];
+
+ if (key_exists("child",$routeconfig)) {
+ $child_route=$routeconfig["child"];
+ } else {
+ $child_route=$routeconfig["route"];
+ }
+
+ if (key_exists("parent_href",$routeconfig)) {
+ $parent_href=$routeconfig["parent"];
+ } else {
+ $parent_href=null;
+ }
+
+ foreach (scandir($abspath) as $dirent) {
+ if ($dirent === '.' || $dirent === '..') {
+ continue;
+ }
+ if ($dirent[0] === '.' && ! $show_dotfiles) {
+ continue;
+ }
+
+ $file_urlpath = $url_path . '/' . $dirent;
+ $file_abspath = $abspath . DIRECTORY_SEPARATOR . $dirent;
+ $fileperm = $file_repos->findFilePermissionsBySectionPath($user,$section,$file_urlpath);
+
+ if (!$fileperm['read']) {
+ continue;
+ }
+
+ if (is_file($file_abspath)) {
+ $dirlist[] = [
+ "name" => $dirent,
+ "icon" => "icons/file.svg",
+ "href" => $this->generateUrl($child_route, ["path"=>"file_urlpath"]),
+ "size" => filesize($file_abspath),
+ "delete" => $fileperm['delete'],
+ "write" => $fileperm['write'],
+ "mtime" => filemtime($file_abspath),
+ "read" => true,
+ "dir" => false,
+ ];
+ } elseif (is_dir($file_abspath)) {
+ $dirlist[] = [
+ "name" => $dirent,
+ "icon"=>"icons/dir.svg",
+ "href" => $this->generateUrl($child_route, ["path"=>"file_urlpath"]),
+ "size" => "-",
+ "delete" => $fileperm['delete'],
+ "write" => $fileperm['write'],
+ "mtime" => filemtime($file_abspath),
+ "read" => true,
+ "dir" => true,
+ ];
+ }
+ }
+ return $dirlist;
+ }
+
+ protected function getDirectoryResponse($abspath,$fileperm,$section,$url_path) : Response
+ {
+ $dirlist = $this->getDirectoryList($abspath, $fileperm, $section, $url_path);
+
+ return new Response();
+ }
+
+ protected function getSectionPathResponse(string $section,string $url_path,array $routeconfig): Response
+ {
+ if (!getFilePermissions($section,$urlPath)) {
+ throw AccessDeniedHttpException();
+ }
+
+ $path = $this->buildPath($section,$url_path);
+ if (!$path || !file_exists($path)) {
+ throw NotFoundHttpException();
+ }
+
+ $file_repos = $this->entitymanager->getRepository(WebrootFile::class);
+ $abspath = $file_repos->findAbspathBySectionPath($section,$path);
+
+ if (!file_exists($abspath)) {
+ throw new NotFoundHttpException();
+ }
+ $fileperm = $file_repos->findFilePermissionsBySectionPath($this->getUser(),$section,$path);
+ if (!$fileperm['read']) {
+ throw AccessDeniedHttpException();
+ }
+
+ if (is_file($abspath)) {
+ return $this->getFileResponse($abspath);
+ }
+ if (is_dir($abspath)) {
+ return $this->getDirectoryListResponse($abspath,$section,$url_path,$routeconfig);
+ }
+
+ throw FileException();
+ }
}
diff --git a/src/Controller/WebrootSetupController.php b/src/Controller/WebrootSetupController.php
index c42eab6..0c3b872 100644
--- a/src/Controller/WebrootSetupController.php
+++ b/src/Controller/WebrootSetupController.php
@@ -208,6 +208,54 @@ abstract class WebrootSetupController extends AbstractController
return $content;
}
+ /**
+ *
+ * @return string
+ */
+ protected function runCacheClear(): string
+ {
+ $application = new Application($this->kernel);
+ $application->setAutoExit(false);
+
+ $input = new ArrayInput([
+ "command" => "cache:clear",
+ "--no-interaction" => true,
+ "--quiet" => true,
+ ]);
+
+ $output = new BufferedOutput();
+ $errcode = $application->run($input,$output);
+ if ($errcode) {
+ throw new \Exception("runMigrate failed!\n". $output->fetch());
+ }
+
+ $content = $output->fetch();
+
+ return $content;
+ }
+
+ protected function runDatabaseUpdate(): string
+ {
+ $application = new Application($this->kernel);
+ $application->setAutoExit(false);
+
+ $input = new ArrayInput([
+ "command" => "doctrine:schema:update",
+ "--no-interaction" => true,
+ "--quiet" => true,
+ ]);
+
+ $output = new BufferedOutput();
+ $errcode = $application->run($input,$output);
+ if ($errcode) {
+ throw new \Exception("runMigrate failed!\n". $output->fetch());
+ }
+
+ $content = $output->fetch();
+
+ return $content;
+ }
+
public function getInitialRoles(bool $translated=true): array
{
@@ -543,8 +591,9 @@ abstract class WebrootSetupController extends AbstractController
public function getDataFromSetupForm(Form $form) : array
{
- $data=[];
- $data['env'] = $form->get('env')->getNormData();
+ $data=[
+ 'env' => $form->get('env')->getNormData()
+ ];
$locale = $form->get('locale')->getNormData();
if ($locale && strlen($locale)) {
@@ -632,22 +681,23 @@ abstract class WebrootSetupController extends AbstractController
if ($email_path && strlen($email_path)) {
$email["path"] = $email_path;
}
-
$email_user = $form->get("email_user")->getNormData();
if ($email_user && strlen($email_user)) {
$email["user"] = $email_user;
}
+ $email_password = $form->get("email_password")->getNormData();
+ if ($email_password && strlen($email_password)) {
+ $email["password"] = $email_password;
+ }
$email_host = $form->get('email_host')->getNormData();
if ($email_host && strlen($email_host)) {
$email["host"] = $email_host;
}
-
$email_port = $form->get('email_port')->getNormData();
if ($email_port && (int) $email_port) {
$email["port"] = $email_port;
}
-
$email_dsn = $form->get('email_dsn')->getNormData();
if ($email_dsn && strlen($email_dsn)) {
$email["dsn"] = $email_dsn;
@@ -749,7 +799,14 @@ abstract class WebrootSetupController extends AbstractController
$response->headers->removeCookie(WebrootSetupController::INITIAL_SETUP_COOKIE,"/setup/");
}
}
+ public function envencode(string $str): string
+ {
+ return preg_replace('/%/','%%',urlencode($str));
+ }
+
public function writeDotEnvLocal(array $data,bool $generate_app_secret=true) {
+
+
$file = fopen(join(DIRECTORY_SEPARATOR,[$this->project_dir,".env.local"]),"w");
fwrite($file,"APP_ENV=" . $data["env"] . "\n");
@@ -764,7 +821,7 @@ abstract class WebrootSetupController extends AbstractController
$db_backend=$data['database']['backend'];
if ($db_backend === "sqlite") {
- fwrite($file,"DATABASE_URL=\"sqlite://" . $data['database']['database'] . "\"\n");
+ fwrite($file,"DATABASE_URL=\"sqlite:///" . $data['database']['database'] . "\"\n");
} elseif ($db_backend === "mysql") {
fwrite($file,"DATABASE_URL=\"msysql://"
. urlencode($data['database']['user'])
@@ -784,8 +841,30 @@ abstract class WebrootSetupController extends AbstractController
} elseif ($db_backend === "url") {
fwrite($file,"DATABASE_URL=\"" . $data["database"]["url"] . "\"\n");
}
+
+ $mail_backend = $data["email"]["backend"];
+ if ($mail_backend === "none") {
+ $MAILER_DSN="null://null";
+ } elseif ($mail_backend === "smtp") {
+ $MAILER_DSN="smtp://"
+ . urlencode($data['email']['user'])
+ . ':' . urlencode($data['email']['password'])
+ . '@' . urlencode($data['email']['host'])
+ . ':' . $data['email']['port'];
+ } elseif ($mail_backend === "sendmail") {
+ $MAILER_DSN="sendmail://default";
+ } elseif ($mail_backend === "native") {
+ $MAILER_DSN="native://default";
+ } elseif ($mail_backend === "dsn") {
+ $MAILER_DSN=$data['email']['dsn'];
+ }
+ fwrite($file,"MAILER_DSN=\"" . $MAILER_DSN . "\"\n");
+
+ fclose($file);
}
+
+
protected function addRoles()
{
foreach ($this->getInitialRoles(false) as $roledata) {
@@ -804,6 +883,7 @@ abstract class WebrootSetupController extends AbstractController
$user->setUsername($setup_data["user"]["username"]);
$user->setEmail($setup_data["user"]["email"]);
$user->setAdmin(true);
+ $user->setRoles(["ROLE_SUPERADMIN","ROLE_ADMIN","ROLE_USER"]);
$user->setPassword($setup_data["user"]["password"]);
$this->entitymanager->persist($user);
$this->entitymanager->flush();
@@ -814,7 +894,7 @@ abstract class WebrootSetupController extends AbstractController
->getRepository(WebrootUser::class)
->findByUsername($setup_data['user']['username']);
$wrf = new WebrootFile();
- $wrf->setUrl('/root');
+ $wrf->setUrl('/webroot');
$wrf->setAbspath($setup_data["site"]["rootdir"]);
$wrf->setOwner($admin);
$this->entitymanager->persist($wrf);
@@ -822,14 +902,26 @@ abstract class WebrootSetupController extends AbstractController
$superadmin_role = $this->entitymanager
->getRepository(WebrootRole::class)
->findByRolename("ROLE_SUPERADMIN");
+
$rootperm = new WebrootFilePermission();
$rootperm->setWebrootFile($wrf);
$rootperm->setRole($superadmin_role);
$rootperm->setDeleteable(true);
$rootperm->setReadable(true);
- $rootperm->setWriteable(false);
-
+ $rootperm->setWriteable(true);
$this->entitymanager->persist($rootperm);
+
+ $admin_role = $this->entitymanager
+ ->getRepository(WebrootRole::class)
+ ->findByRolename("ROLE_ADMIN");
+ $adminperm = new WebrootFilePermission();
+ $adminperm->setWebrootFile($wrf);
+ $adminperm->setRole($admin_role);
+ $adminperm->setReadable(true);
+ $adminperm->setWriteable(false);
+ $adminperm->setDeleteable(false);
+ $this->entitymanager->persist($adminperm);
+
$this->entitymanager->flush();
}
}
diff --git a/src/Entity/ResetPasswordRequest.php b/src/Entity/ResetPasswordRequest.php
new file mode 100644
index 0000000..537f76c
--- /dev/null
+++ b/src/Entity/ResetPasswordRequest.php
@@ -0,0 +1,39 @@
+user = $user;
+ $this->initialize($expiresAt, $selector, $hashedToken);
+ }
+
+ public function getId(): ?int
+ {
+ return $this->id;
+ }
+
+ public function getUser(): WebrootUser
+ {
+ return $this->user;
+ }
+}
diff --git a/src/Entity/WebrootFile.php b/src/Entity/WebrootFile.php
index f3d469d..c3794f1 100644
--- a/src/Entity/WebrootFile.php
+++ b/src/Entity/WebrootFile.php
@@ -16,9 +16,14 @@ class WebrootFile
#[ORM\Column]
private ?int $id = null;
- #[ORM\Column(length: 65535,nullable:false)]
- private ?string $url = null;
+ #[ORM\Column(length:1024,nullable:false,options:["default"=>"webroot"])]
+ private ?string $section = null;
+
+ #[ORM\Column(length: 65535,nullable:false)]
+ private ?string $url_path = null;
+
+
#[ORM\Column(length: 65535,nullable:false)]
private ?string $abspath = null;
@@ -46,12 +51,12 @@ class WebrootFile
return $this->id;
}
- public function getUrl(): ?string
+ public function getUrlPath(): ?string
{
return $this->url;
}
- public function setUrl(string $url): static
+ public function setUrlPath(string $url): static
{
$this->url = $url;
diff --git a/src/Entity/WebrootUser.php b/src/Entity/WebrootUser.php
index 4f7c9a5..96c2d5f 100644
--- a/src/Entity/WebrootUser.php
+++ b/src/Entity/WebrootUser.php
@@ -75,6 +75,7 @@ class WebrootUser implements UserInterface, PasswordAuthenticatedUserInterface
$roles = $this->roles;
// guarantee every user at least has ROLE_USER
$roles[] = 'ROLE_USER';
+ $roles[] = 'ROLE_PUBLIC';
return array_unique($roles);
}
diff --git a/src/Form/ChangePasswordFormType.php b/src/Form/ChangePasswordFormType.php
new file mode 100644
index 0000000..42c6c0f
--- /dev/null
+++ b/src/Form/ChangePasswordFormType.php
@@ -0,0 +1,58 @@
+add('plainPassword', RepeatedType::class, [
+ 'type' => PasswordType::class,
+ 'options' => [
+ 'attr' => [
+ 'autocomplete' => 'new-password',
+ ],
+ ],
+ 'first_options' => [
+ 'constraints' => [
+ new NotBlank([
+ 'message' => 'Please enter a password',
+ ]),
+ new Length([
+ 'min' => 12,
+ 'minMessage' => 'Your password should be at least {{ limit }} characters',
+ // max length allowed by Symfony for security reasons
+ 'max' => 4096,
+ ]),
+ new PasswordStrength(),
+ new NotCompromisedPassword(),
+ ],
+ 'label' => 'New password',
+ ],
+ 'second_options' => [
+ 'label' => 'Repeat Password',
+ ],
+ 'invalid_message' => 'The password fields must match.',
+ // Instead of being set onto the object directly,
+ // this is read and encoded in the controller
+ 'mapped' => false,
+ ])
+ ;
+ }
+
+ public function configureOptions(OptionsResolver $resolver): void
+ {
+ $resolver->setDefaults([]);
+ }
+}
diff --git a/src/Form/ResetPasswordRequestFormType.php b/src/Form/ResetPasswordRequestFormType.php
new file mode 100644
index 0000000..939ea5f
--- /dev/null
+++ b/src/Form/ResetPasswordRequestFormType.php
@@ -0,0 +1,31 @@
+add('email', EmailType::class, [
+ 'attr' => ['autocomplete' => 'email'],
+ 'constraints' => [
+ new NotBlank([
+ 'message' => 'Please enter your email',
+ ]),
+ ],
+ ])
+ ;
+ }
+
+ public function configureOptions(OptionsResolver $resolver): void
+ {
+ $resolver->setDefaults([]);
+ }
+}
diff --git a/src/Repository/ResetPasswordRequestRepository.php b/src/Repository/ResetPasswordRequestRepository.php
new file mode 100644
index 0000000..9f5f0bc
--- /dev/null
+++ b/src/Repository/ResetPasswordRequestRepository.php
@@ -0,0 +1,32 @@
+
+ */
+class ResetPasswordRequestRepository extends ServiceEntityRepository implements ResetPasswordRequestRepositoryInterface
+{
+ use ResetPasswordRequestRepositoryTrait;
+
+ public function __construct(ManagerRegistry $registry)
+ {
+ parent::__construct($registry, ResetPasswordRequest::class);
+ }
+
+ /**
+ * @param WebrootUser $user
+ */
+ public function createResetPasswordRequest(object $user, \DateTimeInterface $expiresAt, string $selector, string $hashedToken): ResetPasswordRequestInterface
+ {
+ return new ResetPasswordRequest($user, $expiresAt, $selector, $hashedToken);
+ }
+}
diff --git a/src/Repository/WebrootFileRepository.php b/src/Repository/WebrootFileRepository.php
index fbe555b..a6b4423 100644
--- a/src/Repository/WebrootFileRepository.php
+++ b/src/Repository/WebrootFileRepository.php
@@ -3,9 +3,11 @@
namespace App\Repository;
use App\Entity\WebrootFile;
+use App\Entity\WebrootUser;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
+
/**
* @extends ServiceEntityRepository
*/
@@ -16,6 +18,108 @@ class WebrootFileRepository extends ServiceEntityRepository
parent::__construct($registry, WebrootFile::class);
}
+ public function findFilePermissionsBySectionPath(?WebrootUser $user,string $section,string $url_path): array
+ {
+ $paths_array= explode('/', $url_path);
+ $query_builder = $this->createQueryBuilder('f')
+ ->andWhere('f.section := sect')
+ ->andWhere('f.url_path := path')
+ ->setParameter('sect', $section);
+ if ($user) {
+ $roles = $user->getRoles();
+ if (in_array('ROLE_SUPERADMIN',$roles)) {
+ return ['read'=>true,'write'=>true,'delete'=>true];
+ }
+
+ } else {
+ $roles = ["ROLE_PUBLIC"];
+ }
+
+ $ret = [
+ 'read'=>false,
+ 'write'=>false,
+ 'delete'=>false,
+ ];
+
+ while (sizeof($paths_array) > 0) {
+ $result = $query_builder->setParameter('sect',$section)
+ ->setParameter('path',join(DIRECTORY_SEPARATOR,$paths_array))
+ ->getQuery()
+ ->getOneOrNullResult();
+ if ($result) {
+ foreach($result->getPermissions() as $perm) {
+ if ($user && $result->getOwner()->getId() === $user->getId()) {
+ return [['read'=>true,'write'=>true,'delete'=>true]];
+ }
+
+ if (in_array($perm->getRole()->getRole(),$roles)) {
+ if ($perm->isReadable()) {
+ $ret['read'] = true;
+ }
+ if ($perm->isWriteable()) {
+ $ret['write'] = true;
+ }
+ if ($perm->isDeleteable()) {
+ $ret['delete'] = true;
+ }
+ }
+ }
+ break;
+ }
+ }
+ return $ret;
+ }
+
+ public function findBySectionPath(string $section,string $url_path): ?WebrootFile
+ {
+ return $this->createQueryBuilder('f')
+ ->andWhere('f.section := sect')
+ ->andWhere('f.url_path := path')
+ ->setParameter('sect', $section)
+ ->setParameter('path', $url_path)
+ ->getQuery()
+ ->getOneOrNullResult();
+ }
+
+ public function findAbspathBySectionPath(string $section, string $url_path): ?string
+ {
+ $query_builder = $this->createQueryBuilder('f')
+ ->andWhere('f.section := sect')
+ ->andWhere('f.path : path')
+ ->setParameter('sect', $section);
+
+ $path_array = explode('/',$url_path);
+ $path_extend=[];
+ while (sizeof($path_array) > 0) {
+ $result = query_builder->setParameter('path',join('/',path_array))
+ ->qetQuery()
+ ->getOneOrNullResult();
+ if ($result) {
+ if (!sizeof($path_extend)) {
+ return $result->getAbspath();
+ } else {
+ $join_path = [$result->getAbaspath()];
+
+ foreach (array_reverse($path_extend) as $xpath) {
+ $join_path[] = $xpath;
+ }
+ return join(DIRECTORY_SEPARATOR,$join_path);
+ }
+ }
+ $path_extend[] = array_pop($path_array);
+ }
+ return null;
+ }
+
+ public function findByAbspath(string $abspath): array
+ {
+ return $this->createQueryBuilder('f')
+ ->andWhere('f.absath := val')
+ ->setParameter('val', $abspath)
+ ->getQuery()
+ ->getResult();
+ }
+
// /**
// * @return WebrootFile[] Returns an array of WebrootFile objects
// */
diff --git a/symfony.lock b/symfony.lock
index 76897ca..8289a2d 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -27,7 +27,7 @@
]
},
"easycorp/easyadmin-bundle": {
- "version": "4.18",
+ "version": "4.9999999",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
@@ -100,6 +100,18 @@
"./.env"
]
},
+ "symfony/form": {
+ "version": "7.2",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "7.2",
+ "ref": "7d86a6723f4a623f59e2bf966b6aad2fc461d36b"
+ },
+ "files": [
+ "./config/packages/csrf.yaml"
+ ]
+ },
"symfony/framework-bundle": {
"version": "6.4",
"recipe": {
@@ -258,16 +270,13 @@
]
},
"symfony/uid": {
- "version": "6.4",
+ "version": "7.2",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
- "version": "6.2",
- "ref": "d294ad4add3e15d7eb1bae0221588ca89b38e558"
- },
- "files": [
- "./config/packages/uid.yaml"
- ]
+ "version": "7.0",
+ "ref": "0df5844274d871b37fc3816c57a768ffc60a43a5"
+ }
},
"symfony/ux-turbo": {
"version": "2.21",
@@ -279,7 +288,7 @@
}
},
"symfony/ux-twig-component": {
- "version": "2.21",
+ "version": "2.22",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
@@ -315,6 +324,18 @@
"./config/routes/web_profiler.yaml"
]
},
+ "symfonycasts/reset-password-bundle": {
+ "version": "1.23",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "1.0",
+ "ref": "97c1627c0384534997ae1047b93be517ca16de43"
+ },
+ "files": [
+ "./config/packages/reset_password.yaml"
+ ]
+ },
"twig/extra-bundle": {
"version": "v3.15.0"
}
diff --git a/templates/main/index.html.twig b/templates/main/index.html.twig
index 07a4b7a..8bade47 100644
--- a/templates/main/index.html.twig
+++ b/templates/main/index.html.twig
@@ -3,4 +3,11 @@
You are logged in as {{ user.username }} .
+
+
+ {% for role in user.roles %}
+ {{ role }}
+ {% endfor %}
+
+
{% endblock %}
diff --git a/templates/reset_password/check_email.html.twig b/templates/reset_password/check_email.html.twig
new file mode 100644
index 0000000..786819b
--- /dev/null
+++ b/templates/reset_password/check_email.html.twig
@@ -0,0 +1,11 @@
+{% extends 'base.html.twig' %}
+
+{% block title %}Password Reset Email Sent{% endblock %}
+
+{% block body %}
+
+ If an account matching your email exists, then an email was just sent that contains a link that you can use to reset your password.
+ This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.
+
+ If you don't receive an email please check your spam folder or try again .
+{% endblock %}
diff --git a/templates/reset_password/de.email.html.twig b/templates/reset_password/de.email.html.twig
new file mode 100644
index 0000000..283b603
--- /dev/null
+++ b/templates/reset_password/de.email.html.twig
@@ -0,0 +1,9 @@
+Hi!
+
+Um Dein Passwort zurückzusetzen, besuche folgenden Link
+
+{{ url('app_reset_password', {token: resetToken.token}) }}
+
+Der Link läuft in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }} ab.
+Dein Nutzername falls du ihn vergessen hast: {{ username }}
+Mit freundlichen Grüßen das {{ app.request.server.get('SITE_NAME') }} Team !
diff --git a/templates/reset_password/email.html.twig b/templates/reset_password/email.html.twig
new file mode 100644
index 0000000..23813a5
--- /dev/null
+++ b/templates/reset_password/email.html.twig
@@ -0,0 +1,9 @@
+Hi!
+
+To reset your password, please visit the following link
+
+{{ url('app_reset_password', {token: resetToken.token}) }}
+
+This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.
+ Your username in case you have forgotten it: {{ username }}
+Cheers! Your {{ app.request.server.get("SITE_NAME")}} team .
diff --git a/templates/reset_password/request.html.twig b/templates/reset_password/request.html.twig
new file mode 100644
index 0000000..0a118aa
--- /dev/null
+++ b/templates/reset_password/request.html.twig
@@ -0,0 +1,22 @@
+{% extends 'base.html.twig' %}
+
+{% block title %}Reset your password{% endblock %}
+
+{% block body %}
+ {% for flash_error in app.flashes('reset_password_error') %}
+ {{ flash_error }}
+ {% endfor %}
+ Reset your password
+
+ {{ form_start(requestForm) }}
+ {{ form_row(requestForm.email) }}
+
+
+ Enter your email address, and we will send you a
+ link to reset your password.
+
+
+
+ Send password reset email
+ {{ form_end(requestForm) }}
+{% endblock %}
diff --git a/templates/reset_password/reset.html.twig b/templates/reset_password/reset.html.twig
new file mode 100644
index 0000000..799aa10
--- /dev/null
+++ b/templates/reset_password/reset.html.twig
@@ -0,0 +1,12 @@
+{% extends 'base.html.twig' %}
+
+{% block title %}Reset your password{% endblock %}
+
+{% block body %}
+ Reset your password
+
+ {{ form_start(resetForm) }}
+ {{ form_row(resetForm.plainPassword) }}
+ Reset password
+ {{ form_end(resetForm) }}
+{% endblock %}
diff --git a/templates/security/login.html.twig b/templates/security/login.html.twig
index 75eba16..0f40f3c 100644
--- a/templates/security/login.html.twig
+++ b/templates/security/login.html.twig
@@ -41,9 +41,14 @@
-
- {{ login_button }}
+ {{ login_forgotten_password }}
+
+
+
+ {{ login_button }}
+
+
{% endblock %}
diff --git a/templates/setup/initial-setup.run.html.twig b/templates/setup/initial-setup.run.html.twig
index d4dcd52..1aad25d 100644
--- a/templates/setup/initial-setup.run.html.twig
+++ b/templates/setup/initial-setup.run.html.twig
@@ -12,9 +12,9 @@ function initializeSetup() {
let a = document.createElement("a");
a.setAttribute('href',"{{ setup_url }}");
a.setAttribute('class','button');
- a.innerText = "{{ failed_button }}"
+ a.innerText = "{{ failed_button }}";
elem.appendChild(a);
- console.log("LOADED")
+ console.log("LOADED");
}
}
@@ -24,5 +24,8 @@ function initializeSetup() {
Running Setup
{{ output }} ... {{ status_message }}
+ {% if error %}
+
{{ error }}
+ {% endif %}
{% endblock %}
diff --git a/templates/webroot/de.directory.html.twig b/templates/webroot/de.directory.html.twig
index 2c9ed5e..ba36c12 100644
--- a/templates/webroot/de.directory.html.twig
+++ b/templates/webroot/de.directory.html.twig
@@ -3,14 +3,12 @@
{% block body %}
Index für {{ url_path }}
-
- Name
- Größe
- Zuletzt geändert
+
+ Name
+ Größe
+ Zuletzt geändert
Beschreibung
diff --git a/templates/webroot/directory.html.twig b/templates/webroot/directory.html.twig
index dad5a86..a5bd826 100644
--- a/templates/webroot/directory.html.twig
+++ b/templates/webroot/directory.html.twig
@@ -3,33 +3,30 @@
{% block body %}
Index for {{ url_path }}
-
- Size
- Last changed
- Description
+
+ Size
+ Last changed
-
+
{% if parent_url %}
-
+
Zurück
-
-
@@ -39,11 +36,10 @@
{% endif %}
{% for entry in dir_entries %}
- {% if entry.icon %} {% endif %}
+ {% if entry.icon %} {% endif %}
{{ entry.name }}
- {{ entry.display_size }}
- {{ entry.last_modified }}
- {{ entry.description }}
+ {{ entry.size }}
+ {{ entry.mtime }}
{% if entry.delete %}
@@ -53,7 +49,7 @@
{% endfor %}
-
+
{% endblock %}
diff --git a/translations/ResetPasswordBundle.de.yaml b/translations/ResetPasswordBundle.de.yaml
new file mode 100644
index 0000000..b8a878c
--- /dev/null
+++ b/translations/ResetPasswordBundle.de.yaml
@@ -0,0 +1,13 @@
+'%count% year|%count% years': '%count% Jahr|%count% Jahren'
+'%count% month|%count% months': '%count% Monat|%count% Monaten'
+'%count% day|%count% days': '%count% Tag|%count% Tagen'
+'%count% hour|%count% hours': '%count% Stunde|%count% Stunden'
+'%count% minute|%count% minutes': '%count% Minute|%count% Minuten'
+'There was a problem validating your password reset request': 'Es gab ein Problem bei der Validierung Ihrer Anfrage zum Zurücksetzen des Passworts'
+'There was a problem handling your password reset request': 'Es gab ein Problem bei der Bearbeitung Ihrer Anfrage zum Zurücksetzen des Passworts'
+'The link in your email is expired. Please try to reset your password again.': 'Der Link in Ihrer E-Mail ist abgelaufen. Bitte versuchen Sie erneut, Ihr Passwort zurückzusetzen.'
+'Please update the request_password_repository configuration in config/packages/reset_password.yaml to point to your "request password repository" service.': 'Bitte aktualisieren Sie die request_password_repository-Konfiguration in config/packages/reset_password.yaml, um auf Ihren "request password repository"-Dienst zu verweisen.'
+'The reset password link is invalid. Please try to reset your password again.': 'Der Link zum Zurücksetzen des Passworts ist ungültig. Bitte versuchen Sie erneut, Ihr Passwort zurückzusetzen.'
+'You have already requested a reset password email. Please check your email or try again soon.': 'Sie haben bereits eine E-Mail mit einem neuen Passwort angefordert. Bitte überprüfen Sie Ihre E-Mail oder versuchen Sie es später erneut.'
+'Your password reset request': 'Dein Passwort zurücksetzen Anfrage'
+reset_password/email.html.twig: reset_password/de.email.html.twig
diff --git a/translations/ResetPasswordBundle.en.yaml b/translations/ResetPasswordBundle.en.yaml
new file mode 100644
index 0000000..74c88a4
--- /dev/null
+++ b/translations/ResetPasswordBundle.en.yaml
@@ -0,0 +1,13 @@
+'%count% year|%count% years': '%count% year|%count% years'
+'%count% month|%count% months': '%count% month|%count% months'
+'%count% day|%count% days': '%count% day|%count% days'
+'%count% hour|%count% hours': '%count% hour|%count% hours'
+'%count% minute|%count% minutes': '%count% minute|%count% minutes'
+'There was a problem validating your password reset request': 'There was a problem validating your password reset request'
+'There was a problem handling your password reset request': 'There was a problem handling your password reset request'
+'The link in your email is expired. Please try to reset your password again.': 'The link in your email is expired. Please try to reset your password again.'
+'Please update the request_password_repository configuration in config/packages/reset_password.yaml to point to your "request password repository" service.': 'Please update the request_password_repository configuration in config/packages/reset_password.yaml to point to your "request password repository" service.'
+'The reset password link is invalid. Please try to reset your password again.': 'The reset password link is invalid. Please try to reset your password again.'
+'You have already requested a reset password email. Please check your email or try again soon.': 'You have already requested a reset password email. Please check your email or try again soon.'
+'Your password reset request': 'Your password reset request'
+reset_password/email.html.twig: reset_password/email.html.twig
diff --git a/translations/mydevel.webroot.en.yaml b/translations/mydevel.webroot.en.yaml
index e07be7e..e69de29 100644
--- a/translations/mydevel.webroot.en.yaml
+++ b/translations/mydevel.webroot.en.yaml
@@ -1,13 +0,0 @@
-role:
- superadmin:
- name: __role.superadmin.name
- descr: __role.superadmin.descr
- admin:
- name: __role.admin.name
- descr: __role.admin.descr
- user:
- name: __role.user.name
- descr: __role.user.descr
- public:
- name: __role.public.name
- descr: __role.public.descr
diff --git a/translations/mydevel.webroot.role+intl-icu.en de.po b/translations/mydevel.webroot.role+intl-icu.en de.po
new file mode 100644
index 0000000..da1c2ca
--- /dev/null
+++ b/translations/mydevel.webroot.role+intl-icu.en de.po
@@ -0,0 +1,35 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en de\n"
+
+msgid "webroot-user.name"
+msgstr "__webroot-user.name"
+
+msgid "webroot-user.decr"
+msgstr "__webroot-user.decr"
+
+msgid "superadmin.name"
+msgstr "__superadmin.name"
+
+msgid "superadmin.descr"
+msgstr "__superadmin.descr"
+
+msgid "admin.name"
+msgstr "__admin.name"
+
+msgid "admin.descr"
+msgstr "__admin.descr"
+
+msgid "user.name"
+msgstr "__user.name"
+
+msgid "user.descr"
+msgstr "__user.descr"
+
+msgid "public.name"
+msgstr "__public.name"
+
+msgid "public.descr"
+msgstr "__public.descr"
diff --git a/translations/mydevel.webroot.setup+intl-icu.en de.po b/translations/mydevel.webroot.setup+intl-icu.en de.po
new file mode 100644
index 0000000..ffa25ad
--- /dev/null
+++ b/translations/mydevel.webroot.setup+intl-icu.en de.po
@@ -0,0 +1,173 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en de\n"
+
+msgid "setupform.section.email"
+msgstr "__setupform.section.email"
+
+msgid "setupform.section.site"
+msgstr "__setupform.section.site"
+
+msgid "setupform.section.database"
+msgstr "__setupform.section.database"
+
+msgid "setupform.section.user"
+msgstr "__setupform.section.user"
+
+msgid "setupform.title"
+msgstr "__setupform.title"
+
+msgid "command.success"
+msgstr "__command.success"
+
+msgid "command.createdb"
+msgstr "__command.createdb"
+
+msgid "command.failed"
+msgstr "__command.failed"
+
+msgid "command.makemigrations"
+msgstr "__command.makemigrations"
+
+msgid "command.migrate"
+msgstr "__command.migrate"
+
+msgid "command.populatedb"
+msgstr "__command.populatedb"
+
+msgid "button.return-setup"
+msgstr "__button.return-setup"
+
+msgid "setupform.env.label"
+msgstr "__setupform.env.label"
+
+msgid "setupform.env.help"
+msgstr "__setupform.env.help"
+
+msgid "setupform.env.choices.prod"
+msgstr "__setupform.env.choices.prod"
+
+msgid "setupform.env.choices.dev"
+msgstr "__setupform.env.choices.dev"
+
+msgid "setupform.locale.label"
+msgstr "__setupform.locale.label"
+
+msgid "setupform.locale.help"
+msgstr "__setupform.locale.help"
+
+msgid "setupform.tempdir.label"
+msgstr "__setupform.tempdir.label"
+
+msgid "setupform.site.name.help"
+msgstr "__setupform.site.name.help"
+
+msgid "setupform.site.name.label"
+msgstr "__setupform.site.name.label"
+
+msgid "setupform.site.root.help"
+msgstr "__setupform.site.root.help"
+
+msgid "setupform.site.root.label"
+msgstr "__setupform.site.root.label"
+
+msgid "setupform.site.email.label"
+msgstr "__setupform.site.email.label"
+
+msgid "setupform.user.username.label"
+msgstr "__setupform.user.username.label"
+
+msgid "setupform.user.email.label"
+msgstr "__setupform.user.email.label"
+
+msgid "setupform.user.password.label"
+msgstr "__setupform.user.password.label"
+
+msgid "setupform.user.confpasswd.label"
+msgstr "__setupform.user.confpasswd.label"
+
+msgid "setupform.db.migrate.label"
+msgstr "__setupform.db.migrate.label"
+
+msgid "setupform.db.create.label"
+msgstr "__setupform.db.create.label"
+
+msgid "setupform.db.mkmigrations.label"
+msgstr "__setupform.db.mkmigrations.label"
+
+msgid "setupform.db.backend.label"
+msgstr "__setupform.db.backend.label"
+
+msgid "setupform.db.backend.choices.sqlite"
+msgstr "__setupform.db.backend.choices.sqlite"
+
+msgid "setupform.db.backend.choices.mysql"
+msgstr "__setupform.db.backend.choices.mysql"
+
+msgid "setupform.db.backend.choices.portgesql"
+msgstr "__setupform.db.backend.choices.portgesql"
+
+msgid "setupform.db.backend.choices.url"
+msgstr "__setupform.db.backend.choices.url"
+
+msgid "setupform.db.database.label"
+msgstr "__setupform.db.database.label"
+
+msgid "setupform.db.host.label"
+msgstr "__setupform.db.host.label"
+
+msgid "setupform.db.port.label"
+msgstr "__setupform.db.port.label"
+
+msgid "setupform.db.user.label"
+msgstr "__setupform.db.user.label"
+
+msgid "setupform.db.password.label"
+msgstr "__setupform.db.password.label"
+
+msgid "setupform.db.url.label"
+msgstr "__setupform.db.url.label"
+
+msgid "setupform.email.backend.label"
+msgstr "__setupform.email.backend.label"
+
+msgid "setupform.email.backend.choices.none"
+msgstr "__setupform.email.backend.choices.none"
+
+msgid "setupform.email.backend.choices.smtp"
+msgstr "__setupform.email.backend.choices.smtp"
+
+msgid "setupform.email.backend.choices.sendmail"
+msgstr "__setupform.email.backend.choices.sendmail"
+
+msgid "setupform.email.backend.choices.native"
+msgstr "__setupform.email.backend.choices.native"
+
+msgid "setupform.email.backend.choices.dsn"
+msgstr "__setupform.email.backend.choices.dsn"
+
+msgid "setupform.email.path.label"
+msgstr "__setupform.email.path.label"
+
+msgid "setupform.email.user.label"
+msgstr "__setupform.email.user.label"
+
+msgid "setupform.email.password.label"
+msgstr "__setupform.email.password.label"
+
+msgid "setupform.email.host.label"
+msgstr "__setupform.email.host.label"
+
+msgid "setupform.email.smtp-port.label"
+msgstr "__setupform.email.smtp-port.label"
+
+msgid "setupform.email.dsn.label"
+msgstr "__setupform.email.dsn.label"
+
+msgid "setupform.email.sender.label"
+msgstr "__setupform.email.sender.label"
+
+msgid "setupform.submit"
+msgstr "__setupform.submit"
diff --git a/translations/security.de.yaml b/translations/security.de.yaml
index 1dd673f..6debf5a 100644
--- a/translations/security.de.yaml
+++ b/translations/security.de.yaml
@@ -18,8 +18,9 @@
'Too many failed login attempts, please try again in %minutes% minute.': 'Zu viele fehlgeschlagene Anmeldeversuche, bitte versuchen Sie es in einer Minute noch einmal.'
'Too many failed login attempts, please try again in %minutes% minutes.': 'Zu viele fehlgeschlagene Anmeldeversuche, bitte versuchen Sie es in %minutes% Minuten noch einmal.'
login:
- title: "Bitte melde dich an"
- button: "Anmelden"
- username: "Nutzername"
- password: "Passwort"
- remember_me: "An mich erinnern"
+ title: 'Bitte melde dich an'
+ button: Anmelden
+ username: Nutzername
+ password: Passwort
+ remember_me: 'An mich erinnern'
+ forgotten_password: 'Passwort vergessen?'
diff --git a/translations/security.en.yaml b/translations/security.en.yaml
index b7048d2..7b45678 100644
--- a/translations/security.en.yaml
+++ b/translations/security.en.yaml
@@ -18,8 +18,9 @@
'Too many failed login attempts, please try again in %minutes% minute.': 'Too many failed login attempts, please try again in %minutes% minute.'
'Too many failed login attempts, please try again in %minutes% minutes.': 'Too many failed login attempts, please try again in %minutes% minutes.'
login:
- title: "Please sign in"
- button: "Log me in"
- username: "Username"
- password: "Password"
- remember_me: "Remember me"
+ title: 'Please sign in'
+ button: 'Log me in'
+ username: Username
+ password: Password
+ remember_me: 'Remember me'
+ forgotten_password: "Password forgotten?"
diff --git a/v7.2.0 b/v7.2.0
new file mode 100644
index 0000000..e69de29