From 201121acd1f25ccea973545d749f1cc1cde4686d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 8 Jun 2025 10:42:23 +0200 Subject: [PATCH 01/11] Components/Helpers: Prepare for Nette 3.2 The parent class is marked as final https://github.com/nette/forms/commit/7dab8e3c170f79679e8e1b1c9e47b23d1bc7ea23 But we do not really need to inherit anything. Also nette/utils 4 removed xhtml property https://github.com/nette/utils/commit/3d182a00bdbe5427d13be78e775fd43d7403b470 (noticed in https://github.com/nette/forms/commit/12b4c12e9d65a4c97e10a37cee88fdd14db780b7). And add comments describing the differences from https://github.com/nette/forms/blob/v3.2.6/src/Forms/Helpers.php The other changes are just related to PHPStan and formatting. --- app/Components/Helpers.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/Components/Helpers.php b/app/Components/Helpers.php index 749fb14..989361f 100644 --- a/app/Components/Helpers.php +++ b/app/Components/Helpers.php @@ -12,10 +12,12 @@ use Stringable; /** - * Nette forms helper modified to work better with Bootstrap styles. + * A subset of `Nette\Forms\Helpers` modified to work better with Bootstrap styles. */ -class Helpers extends Nette\Forms\Helpers { +final class Helpers { /** + * The difference from `Nette\Forms\Helpers` is that we move `label` tag after the `input` tag, instead of having the former wrap the latter. + * * @param array $inputAttrs * @param array $labelAttrs * @param Html|Stringable|null $wrapper @@ -44,7 +46,7 @@ public static function createInputList( $input->value = $value; $res .= ($res === '' && $wrapperEnd === '' ? '' : $wrapper) - . $inputTag . $input->attributes() . (Html::$xhtml ? ' />' : '>') + . $inputTag . $input->attributes() . '>' . $labelTag . $label->attributes() . '>' . ($caption instanceof Nette\HtmlStringable ? $caption : htmlspecialchars((string) $caption, \ENT_NOQUOTES, 'UTF-8')) . '' @@ -55,6 +57,8 @@ public static function createInputList( } /** + * This is copied as is from `Nette\Forms\Helpers` since we cannot access it from here. + * * @param array $attrs * * @return array{array>, string} @@ -66,7 +70,7 @@ private static function prepareAttrs(?array $attrs, string $name): array { $p = substr($k, 0, -1); unset($attrs[$k], $attrs[$p]); if ($k[-1] === '?') { - $dynamic[$p] = array_fill_keys((array) $v, true); + $dynamic[$p] = array_fill_keys((array) $v, value: true); } elseif (\is_array($v) && $v) { $dynamic[$p] = $v; } else { From f8d1c016eb03b0e16be49586a80f03b53f8b9f1d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 8 Jun 2025 10:54:57 +0200 Subject: [PATCH 02/11] Presenters/Base: Prepare finding templates for Nette 3.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nette/application 3.2.3 will assume we are using the simple structure if `presenters/../templates` directory does not exist so our replace hack will no longer work: https://github.com/nette/application/commit/e482bbbedb1388c808863ca4bcc712a468a763de Let’s give in to the new structure and move templates under presenters. https://github.com/nette/sandbox/commit/5142cf77f1912d4c2d84a5ef47c65133511fc8a8 Specifically, the following moves were performed: - app/Templates → app/Presenters/templates - app/Templates/Accessory → app/Presenters/Accessory - app/Templates/Filters → app/Presenters/Accessory/Filters --- README.md | 2 +- app/Config/common.neon | 10 +++---- app/Exporters/CsvExporter.php | 2 +- app/Exporters/MeosExporter.php | 2 +- app/Helpers/EmailFactory.php | 2 +- .../Filters/CategoryFormatFilter.php | 2 +- .../Filters/CurrencyExchangeFilter.php | 2 +- .../Accessory}/Filters/PriceFilter.php | 2 +- .../Filters/WrapInParagraphsFilter.php | 2 +- .../Accessory/LatteExtension.php | 3 +- app/Presenters/BasePresenter.php | 28 ------------------- app/Presenters/CommunicationPresenter.php | 7 ++--- app/Presenters/Error4xxPresenter.php | 4 +-- app/Presenters/ErrorAccessPresenter.php | 2 +- app/Presenters/ErrorPresenter.php | 2 +- app/Presenters/TeamPresenter.php | 6 ++-- .../templates}/@layout.latte | 0 .../templates}/Communication/compose.latte | 0 .../templates}/Communication/list.latte | 0 .../templates}/Communication/view.latte | 0 .../templates}/Error/403.latte | 0 .../templates}/Error/404.latte | 0 .../templates}/Error/410.latte | 0 .../templates}/Error/4xx.latte | 0 .../templates}/Error/500.phtml | 0 .../templates}/Error/503.phtml | 0 .../templates}/Error/access.latte | 0 .../templates}/Homepage/default.latte | 0 .../templates}/Invoice/show.latte | 0 .../templates}/Mail/@layout.latte | 0 .../templates}/Mail/Message.php | 2 +- .../templates}/Mail/style.css | 0 .../Mail/verification.@layout.latte | 0 .../templates}/Mail/verification.cs.latte | 0 .../templates}/Mail/verification.latte | 0 .../templates}/Sign/in.latte | 0 .../templates}/Team/edit.latte | 0 .../templates}/Team/list.latte | 0 .../templates}/Team/register.latte | 0 docs/customizing-emails.md | 4 +-- 40 files changed, 26 insertions(+), 58 deletions(-) rename app/{Templates => Presenters/Accessory}/Filters/CategoryFormatFilter.php (91%) rename app/{Templates => Presenters/Accessory}/Filters/CurrencyExchangeFilter.php (93%) rename app/{Templates => Presenters/Accessory}/Filters/PriceFilter.php (93%) rename app/{Templates => Presenters/Accessory}/Filters/WrapInParagraphsFilter.php (85%) rename app/{Templates => Presenters}/Accessory/LatteExtension.php (91%) rename app/{Templates => Presenters/templates}/@layout.latte (100%) rename app/{Templates => Presenters/templates}/Communication/compose.latte (100%) rename app/{Templates => Presenters/templates}/Communication/list.latte (100%) rename app/{Templates => Presenters/templates}/Communication/view.latte (100%) rename app/{Templates => Presenters/templates}/Error/403.latte (100%) rename app/{Templates => Presenters/templates}/Error/404.latte (100%) rename app/{Templates => Presenters/templates}/Error/410.latte (100%) rename app/{Templates => Presenters/templates}/Error/4xx.latte (100%) rename app/{Templates => Presenters/templates}/Error/500.phtml (100%) rename app/{Templates => Presenters/templates}/Error/503.phtml (100%) rename app/{Templates => Presenters/templates}/Error/access.latte (100%) rename app/{Templates => Presenters/templates}/Homepage/default.latte (100%) rename app/{Templates => Presenters/templates}/Invoice/show.latte (100%) rename app/{Templates => Presenters/templates}/Mail/@layout.latte (100%) rename app/{Templates => Presenters/templates}/Mail/Message.php (93%) rename app/{Templates => Presenters/templates}/Mail/style.css (100%) rename app/{Templates => Presenters/templates}/Mail/verification.@layout.latte (100%) rename app/{Templates => Presenters/templates}/Mail/verification.cs.latte (100%) rename app/{Templates => Presenters/templates}/Mail/verification.latte (100%) rename app/{Templates => Presenters/templates}/Sign/in.latte (100%) rename app/{Templates => Presenters/templates}/Team/edit.latte (100%) rename app/{Templates => Presenters/templates}/Team/list.latte (100%) rename app/{Templates => Presenters/templates}/Team/register.latte (100%) diff --git a/README.md b/README.md index 9007c0b..848a52f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Then you will need to build the assets with `npm run build` or `npm run dev`. Th 2. Run SQL from `install.sql`. 3. Configure the event information in `app/Config/local.neon` as described in the [configuration documentation](docs/configuration.md). Do not forget to set up admin password and database credentials in either `app/Config/local.neon` or `app/Config/private.neon`. 4. Make `temp` and `log` directories writeable. -5. Change e-mail templates in `app/Templates/Mail`. +5. Change e-mail templates in `app/Presenters/templates/Mail`. 6. The entry point of the application is in the `www` directory, configure your web server accordingly. ## Thanks diff --git a/app/Config/common.neon b/app/Config/common.neon index d7e5356..2dc8ec0 100644 --- a/app/Config/common.neon +++ b/app/Config/common.neon @@ -31,7 +31,7 @@ latte: strictTypes: true strictParsing: true extensions: - - App\Templates\Accessory\LatteExtension + - App\Presenters\Accessory\LatteExtension session: autoStart: yes @@ -67,10 +67,10 @@ services: - App\Forms\FormFactory - App\Forms\TeamFormFactory - App\Router\RouterFactory::createRouter - - App\Templates\Filters\CategoryFormatFilter - - App\Templates\Filters\CurrencyExchangeFilter - - App\Templates\Filters\PriceFilter - - App\Templates\Filters\WrapInParagraphsFilter + - App\Presenters\Accessory\Filters\CategoryFormatFilter + - App\Presenters\Accessory\Filters\CurrencyExchangeFilter + - App\Presenters\Accessory\Filters\PriceFilter + - App\Presenters\Accessory\Filters\WrapInParagraphsFilter exchange: Money\Exchange\FixedExchange([]) translation: diff --git a/app/Exporters/CsvExporter.php b/app/Exporters/CsvExporter.php index bbc25f7..586b1fb 100644 --- a/app/Exporters/CsvExporter.php +++ b/app/Exporters/CsvExporter.php @@ -10,7 +10,7 @@ use App\Model\Configuration\Fields; use App\Model\Orm\Person\Person; use App\Model\Orm\Team\Team; -use App\Templates\Filters\CategoryFormatFilter; +use App\Presenters\Accessory\Filters\CategoryFormatFilter; use Nextras\Orm\Collection\ICollection; use SplFileObject; diff --git a/app/Exporters/MeosExporter.php b/app/Exporters/MeosExporter.php index f1b475c..660c100 100644 --- a/app/Exporters/MeosExporter.php +++ b/app/Exporters/MeosExporter.php @@ -5,7 +5,7 @@ namespace App\Exporters; use App\Model\Orm\Team\Team; -use App\Templates\Filters\CategoryFormatFilter; +use App\Presenters\Accessory\Filters\CategoryFormatFilter; use Nette\Utils\Strings; use Nextras\Orm\Collection\ICollection; use SplFileObject; diff --git a/app/Helpers/EmailFactory.php b/app/Helpers/EmailFactory.php index 4f58785..d458fda 100644 --- a/app/Helpers/EmailFactory.php +++ b/app/Helpers/EmailFactory.php @@ -18,7 +18,7 @@ public function __construct( } public function create(string $mailHtml): string { - $css = @file_get_contents($this->appDir . '/Templates/Mail/style.css'); + $css = @file_get_contents($this->appDir . '/Presenters/templates/Mail/style.css'); \assert($css !== false, 'E-mail stylesheet must be readable'); $domDocument = CssInliner::fromHtml($mailHtml) ->inlineCss($css) diff --git a/app/Templates/Filters/CategoryFormatFilter.php b/app/Presenters/Accessory/Filters/CategoryFormatFilter.php similarity index 91% rename from app/Templates/Filters/CategoryFormatFilter.php rename to app/Presenters/Accessory/Filters/CategoryFormatFilter.php index 1f19032..fb44d80 100644 --- a/app/Templates/Filters/CategoryFormatFilter.php +++ b/app/Presenters/Accessory/Filters/CategoryFormatFilter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Templates\Filters; +namespace App\Presenters\Accessory\Filters; use App\Model\Configuration\Entries; use App\Model\Orm\Team\Team; diff --git a/app/Templates/Filters/CurrencyExchangeFilter.php b/app/Presenters/Accessory/Filters/CurrencyExchangeFilter.php similarity index 93% rename from app/Templates/Filters/CurrencyExchangeFilter.php rename to app/Presenters/Accessory/Filters/CurrencyExchangeFilter.php index 0fa0e42..bff697a 100644 --- a/app/Templates/Filters/CurrencyExchangeFilter.php +++ b/app/Presenters/Accessory/Filters/CurrencyExchangeFilter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Templates\Filters; +namespace App\Presenters\Accessory\Filters; use Money\Converter; use Money\Currencies\ISOCurrencies; diff --git a/app/Templates/Filters/PriceFilter.php b/app/Presenters/Accessory/Filters/PriceFilter.php similarity index 93% rename from app/Templates/Filters/PriceFilter.php rename to app/Presenters/Accessory/Filters/PriceFilter.php index adf5e05..36b37d2 100644 --- a/app/Templates/Filters/PriceFilter.php +++ b/app/Presenters/Accessory/Filters/PriceFilter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Templates\Filters; +namespace App\Presenters\Accessory\Filters; use Contributte\Translation\Translator; use Money\Currencies\ISOCurrencies; diff --git a/app/Templates/Filters/WrapInParagraphsFilter.php b/app/Presenters/Accessory/Filters/WrapInParagraphsFilter.php similarity index 85% rename from app/Templates/Filters/WrapInParagraphsFilter.php rename to app/Presenters/Accessory/Filters/WrapInParagraphsFilter.php index 2030b11..713100b 100644 --- a/app/Templates/Filters/WrapInParagraphsFilter.php +++ b/app/Presenters/Accessory/Filters/WrapInParagraphsFilter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Templates\Filters; +namespace App\Presenters\Accessory\Filters; final class WrapInParagraphsFilter { /** diff --git a/app/Templates/Accessory/LatteExtension.php b/app/Presenters/Accessory/LatteExtension.php similarity index 91% rename from app/Templates/Accessory/LatteExtension.php rename to app/Presenters/Accessory/LatteExtension.php index b41cd8a..278e294 100644 --- a/app/Templates/Accessory/LatteExtension.php +++ b/app/Presenters/Accessory/LatteExtension.php @@ -2,9 +2,8 @@ declare(strict_types=1); -namespace App\Templates\Accessory; +namespace App\Presenters\Accessory; -use App\Templates\Filters; use Latte\Extension; final class LatteExtension extends Extension { diff --git a/app/Presenters/BasePresenter.php b/app/Presenters/BasePresenter.php index 86d9f26..4e18974 100644 --- a/app/Presenters/BasePresenter.php +++ b/app/Presenters/BasePresenter.php @@ -41,32 +41,4 @@ protected function startup(): void { throw new Nette\InvalidStateException('Missing siteTitle argument'); } } - - /** - * Formats layout template file names. - * - * @return string[] - */ - public function formatLayoutTemplateFiles(): array { - $list = array_map( - fn(string $path): string => str_replace('/templates/', '/Templates/', $path), - parent::formatLayoutTemplateFiles(), - ); - - return $list; - } - - /** - * Formats view template file names. - * - * @return string[] - */ - public function formatTemplateFiles(): array { - $list = array_map( - fn(string $path): string => str_replace('/templates/', '/Templates/', $path), - parent::formatTemplateFiles(), - ); - - return $list; - } } diff --git a/app/Presenters/CommunicationPresenter.php b/app/Presenters/CommunicationPresenter.php index 3f81e8a..93b9c7b 100644 --- a/app/Presenters/CommunicationPresenter.php +++ b/app/Presenters/CommunicationPresenter.php @@ -278,8 +278,7 @@ private function composeFormEnqueue(SubmitButton $button): void { private function renderMessageBody(Team $team, string $subject, string $grant, string $body): string { $latte = $this->latteFactory->create(); - $appDir = $this->parameters->getAppDir(); - $layout = file_get_contents($appDir . '/Templates/Mail/@layout.latte'); + $layout = file_get_contents(__DIR__ . '/templates/Mail/@layout.latte'); \assert(\is_string($layout)); $latte->setLoader(new Latte\Loaders\StringLoader([ @@ -291,7 +290,7 @@ private function renderMessageBody(Team $team, string $subject, string $grant, s $messageHtml = $latte->renderToString( 'message.latte', - new App\Templates\Mail\Message( + new templates\Mail\Message( // Define variables for use in the e-mail template. accountNumber: $this->parameters->accountNumber, accountNumberIban: $this->parameters->accountNumberIban !== null ? $this->parameters->accountNumberIban->asString() : null, @@ -385,8 +384,6 @@ public function actionSend(): void { throw new ForbiddenRequestException(); } - $appDir = $this->parameters->getAppDir(); - $total = null; $count = 0; try { diff --git a/app/Presenters/Error4xxPresenter.php b/app/Presenters/Error4xxPresenter.php index c62e577..e397e93 100644 --- a/app/Presenters/Error4xxPresenter.php +++ b/app/Presenters/Error4xxPresenter.php @@ -22,9 +22,9 @@ protected function checkHttpMethod(): void { public function renderDefault(Nette\Application\BadRequestException $exception): void { // renders the appropriate error template based on the HTTP status code $code = $exception->getCode(); - $file = is_file($file = __DIR__ . "/../Templates/Error/$code.latte") + $file = is_file($file = __DIR__ . "/templates/Error/$code.latte") ? $file - : __DIR__ . '/../Templates/Error/4xx.latte'; + : __DIR__ . '/templates/Error/4xx.latte'; $this->template->httpCode = $code; $this->template->setFile($file); } diff --git a/app/Presenters/ErrorAccessPresenter.php b/app/Presenters/ErrorAccessPresenter.php index 48a87c0..1637048 100644 --- a/app/Presenters/ErrorAccessPresenter.php +++ b/app/Presenters/ErrorAccessPresenter.php @@ -33,7 +33,7 @@ public function renderDefault(LimitedAccessException $exception): void { $this->template->errorType = $errorType; - $file = __DIR__ . '/../Templates/Error/access.latte'; + $file = __DIR__ . '/templates/Error/access.latte'; $this->template->setFile($file); } } diff --git a/app/Presenters/ErrorPresenter.php b/app/Presenters/ErrorPresenter.php index 893dde9..6f09af5 100644 --- a/app/Presenters/ErrorPresenter.php +++ b/app/Presenters/ErrorPresenter.php @@ -42,7 +42,7 @@ public function run(Nette\Application\Request $request): Nette\Application\Respo return new Responses\CallbackResponse(function(Http\IRequest $httpRequest, Http\IResponse $httpResponse): void { if (preg_match('#^text/html(?:;|$)#', (string) $httpResponse->getHeader('Content-Type')) === 1) { - require __DIR__ . '/../Templates/Error/500.phtml'; + require __DIR__ . '/templates/Error/500.phtml'; } }); } diff --git a/app/Presenters/TeamPresenter.php b/app/Presenters/TeamPresenter.php index a705113..549cbb3 100644 --- a/app/Presenters/TeamPresenter.php +++ b/app/Presenters/TeamPresenter.php @@ -58,7 +58,7 @@ final class TeamPresenter extends BasePresenter { public App\Model\Orm\ItemReservation\ItemReservationRepository $itemReservations; #[Inject] - public App\Templates\Filters\CategoryFormatFilter $categoryFormatter; + public Accessory\Filters\CategoryFormatFilter $categoryFormatter; #[Inject] public App\Forms\FormFactory $formFactory; @@ -630,7 +630,7 @@ private function processTeamForm(Controls\SubmitButton $button): void { $appDir = $this->parameters->getAppDir(); - $baseMailTemplateLocalizedPath = $appDir . '/Templates/Mail/verification.' . $this->locale . '.latte'; + $baseMailTemplateLocalizedPath = __DIR__ . '/templates/Mail/verification.' . $this->locale . '.latte'; // If the override templates exist in the config directory, // let’s use them. @@ -642,7 +642,7 @@ private function processTeamForm(Controls\SubmitButton $button): void { } // If not, let’s use the built-in templates. - $baseMailTemplatePath = file_exists($baseMailTemplateLocalizedPath) ? $baseMailTemplateLocalizedPath : $appDir . '/Templates/Mail/verification.latte'; + $baseMailTemplatePath = file_exists($baseMailTemplateLocalizedPath) ? $baseMailTemplateLocalizedPath : __DIR__ . '/templates/Mail/verification.latte'; if ($mailTemplatePath === null) { $mailTemplatePath = $baseMailTemplatePath; } else { diff --git a/app/Templates/@layout.latte b/app/Presenters/templates/@layout.latte similarity index 100% rename from app/Templates/@layout.latte rename to app/Presenters/templates/@layout.latte diff --git a/app/Templates/Communication/compose.latte b/app/Presenters/templates/Communication/compose.latte similarity index 100% rename from app/Templates/Communication/compose.latte rename to app/Presenters/templates/Communication/compose.latte diff --git a/app/Templates/Communication/list.latte b/app/Presenters/templates/Communication/list.latte similarity index 100% rename from app/Templates/Communication/list.latte rename to app/Presenters/templates/Communication/list.latte diff --git a/app/Templates/Communication/view.latte b/app/Presenters/templates/Communication/view.latte similarity index 100% rename from app/Templates/Communication/view.latte rename to app/Presenters/templates/Communication/view.latte diff --git a/app/Templates/Error/403.latte b/app/Presenters/templates/Error/403.latte similarity index 100% rename from app/Templates/Error/403.latte rename to app/Presenters/templates/Error/403.latte diff --git a/app/Templates/Error/404.latte b/app/Presenters/templates/Error/404.latte similarity index 100% rename from app/Templates/Error/404.latte rename to app/Presenters/templates/Error/404.latte diff --git a/app/Templates/Error/410.latte b/app/Presenters/templates/Error/410.latte similarity index 100% rename from app/Templates/Error/410.latte rename to app/Presenters/templates/Error/410.latte diff --git a/app/Templates/Error/4xx.latte b/app/Presenters/templates/Error/4xx.latte similarity index 100% rename from app/Templates/Error/4xx.latte rename to app/Presenters/templates/Error/4xx.latte diff --git a/app/Templates/Error/500.phtml b/app/Presenters/templates/Error/500.phtml similarity index 100% rename from app/Templates/Error/500.phtml rename to app/Presenters/templates/Error/500.phtml diff --git a/app/Templates/Error/503.phtml b/app/Presenters/templates/Error/503.phtml similarity index 100% rename from app/Templates/Error/503.phtml rename to app/Presenters/templates/Error/503.phtml diff --git a/app/Templates/Error/access.latte b/app/Presenters/templates/Error/access.latte similarity index 100% rename from app/Templates/Error/access.latte rename to app/Presenters/templates/Error/access.latte diff --git a/app/Templates/Homepage/default.latte b/app/Presenters/templates/Homepage/default.latte similarity index 100% rename from app/Templates/Homepage/default.latte rename to app/Presenters/templates/Homepage/default.latte diff --git a/app/Templates/Invoice/show.latte b/app/Presenters/templates/Invoice/show.latte similarity index 100% rename from app/Templates/Invoice/show.latte rename to app/Presenters/templates/Invoice/show.latte diff --git a/app/Templates/Mail/@layout.latte b/app/Presenters/templates/Mail/@layout.latte similarity index 100% rename from app/Templates/Mail/@layout.latte rename to app/Presenters/templates/Mail/@layout.latte diff --git a/app/Templates/Mail/Message.php b/app/Presenters/templates/Mail/Message.php similarity index 93% rename from app/Templates/Mail/Message.php rename to app/Presenters/templates/Mail/Message.php index e5cb35f..0b73d45 100644 --- a/app/Templates/Mail/Message.php +++ b/app/Presenters/templates/Mail/Message.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Templates\Mail; +namespace App\Presenters\templates\Mail; use App\Model\Orm\Invoice\Invoice; use App\Model\Orm\Person\Person; diff --git a/app/Templates/Mail/style.css b/app/Presenters/templates/Mail/style.css similarity index 100% rename from app/Templates/Mail/style.css rename to app/Presenters/templates/Mail/style.css diff --git a/app/Templates/Mail/verification.@layout.latte b/app/Presenters/templates/Mail/verification.@layout.latte similarity index 100% rename from app/Templates/Mail/verification.@layout.latte rename to app/Presenters/templates/Mail/verification.@layout.latte diff --git a/app/Templates/Mail/verification.cs.latte b/app/Presenters/templates/Mail/verification.cs.latte similarity index 100% rename from app/Templates/Mail/verification.cs.latte rename to app/Presenters/templates/Mail/verification.cs.latte diff --git a/app/Templates/Mail/verification.latte b/app/Presenters/templates/Mail/verification.latte similarity index 100% rename from app/Templates/Mail/verification.latte rename to app/Presenters/templates/Mail/verification.latte diff --git a/app/Templates/Sign/in.latte b/app/Presenters/templates/Sign/in.latte similarity index 100% rename from app/Templates/Sign/in.latte rename to app/Presenters/templates/Sign/in.latte diff --git a/app/Templates/Team/edit.latte b/app/Presenters/templates/Team/edit.latte similarity index 100% rename from app/Templates/Team/edit.latte rename to app/Presenters/templates/Team/edit.latte diff --git a/app/Templates/Team/list.latte b/app/Presenters/templates/Team/list.latte similarity index 100% rename from app/Templates/Team/list.latte rename to app/Presenters/templates/Team/list.latte diff --git a/app/Templates/Team/register.latte b/app/Presenters/templates/Team/register.latte similarity index 100% rename from app/Templates/Team/register.latte rename to app/Presenters/templates/Team/register.latte diff --git a/docs/customizing-emails.md b/docs/customizing-emails.md index 674d37a..36b4ddf 100644 --- a/docs/customizing-emails.md +++ b/docs/customizing-emails.md @@ -1,8 +1,8 @@ # Customizing E-Mail messages -The templates for the e-mail messages sent to the teams after registration are located in [`app/Templates/Mail/` directory](../app/Templates/Mail/) so one can easily modify them. But often, one wants to change just a single section, e.g. payment instructions, and modifying the whole file is not very convenient for that. Also, it makes updating the entries for the next year’s event awkward due to having to manually merge possible changes. +The templates for the e-mail messages sent to the teams after registration are located in [`app/Presenters/templates/Mail/` directory](../app/Presenters/templates/Mail/) so one can easily modify them. But often, one wants to change just a single section, e.g. payment instructions, and modifying the whole file is not very convenient for that. Also, it makes updating the entries for the next year’s event awkward due to having to manually merge possible changes. -If you look at the [default e-mail template](../app/Templates/Mail/verification.latte), you will see [`block` tags](https://latte.nette.org/en/template-inheritance#toc-blocks) that will allow you to replace specific sections of the message. +If you look at the [default e-mail template](../app/Presenters/templates/Mail/verification.latte), you will see [`block` tags](https://latte.nette.org/en/template-inheritance#toc-blocks) that will allow you to replace specific sections of the message. If you create a `verification.$lang.latte` file in the `app/Config/mail/` directory with the following contents, you will change just the greeting and the payment instructions, while keeping the rest of the message body for the e-mail in language `$lang`: From fc35e19e8805d431a00859367f60aafebe899436 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 8 Jun 2025 11:00:40 +0200 Subject: [PATCH 03/11] Presenters/Communication: Rename `renderMessageBody` helper nette/application 3.2.5 would complain: Nette\InvalidStateException: Method App\Presenters\CommunicationPresenter::renderMessageBody(): this method must be public non-static. https://github.com/nette/application/commit/1e868966c3de55a087e5ec938189ec34a1648b04 --- app/Presenters/CommunicationPresenter.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Presenters/CommunicationPresenter.php b/app/Presenters/CommunicationPresenter.php index 93b9c7b..e9d990b 100644 --- a/app/Presenters/CommunicationPresenter.php +++ b/app/Presenters/CommunicationPresenter.php @@ -148,7 +148,7 @@ private function composeFormPreview(SubmitButton $button): void { foreach ($teams as $id => $team) { \assert($team !== null); // For PHPStan. $grant = $this->tokens->createForTeam($team); - $this->template->previewMessage = $this->renderMessageBody( + $this->template->previewMessage = $this->_renderMessageBody( team: $team, subject: $values['subject'], grant: $grant, @@ -231,7 +231,7 @@ private function composeFormEnqueue(SubmitButton $button): void { \assert($team !== null); // For PHPStan. $grant = $this->tokens->createForTeam($team); - $body = $this->renderMessageBody( + $body = $this->_renderMessageBody( team: $team, subject: $subject, grant: $grant, @@ -275,7 +275,7 @@ private function composeFormEnqueue(SubmitButton $button): void { } } - private function renderMessageBody(Team $team, string $subject, string $grant, string $body): string { + private function _renderMessageBody(Team $team, string $subject, string $grant, string $body): string { $latte = $this->latteFactory->create(); $layout = file_get_contents(__DIR__ . '/templates/Mail/@layout.latte'); From d79f38d1d23b1ecaaa5328eb04d0d3e24b634753 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 8 Jun 2025 12:17:44 +0200 Subject: [PATCH 04/11] Locale/Translated: Pretend Stringable nette/forms 3.2.0 requires the labels are Stringable: https://github.com/nette/forms/commit/01039d16add7973f06ac54ff3da37e85946d99e1 We have custom `App\Locale\Translator` that calls `getMessage($locale)` on `Translated` objects. --- app/Locale/Translated.php | 12 ++++++++++-- app/Model/Configuration/Helpers.php | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/Locale/Translated.php b/app/Locale/Translated.php index 6f4b552..d2ff8ea 100644 --- a/app/Locale/Translated.php +++ b/app/Locale/Translated.php @@ -7,6 +7,14 @@ namespace App\Locale; -interface Translated { - public function getMessage(string $locale): string; +use Exception; +use Stringable; + +abstract class Translated implements Stringable { + abstract public function getMessage(string $locale): string; + + public function __toString(): string { + // We rely on custom Translator to call getMessage instead. + throw new Exception(__CLASS__ . ' should not be Stringified'); + } } diff --git a/app/Model/Configuration/Helpers.php b/app/Model/Configuration/Helpers.php index a301cc5..678e811 100644 --- a/app/Model/Configuration/Helpers.php +++ b/app/Model/Configuration/Helpers.php @@ -32,7 +32,7 @@ public static function parseTranslatable(string $context, mixed $translatable, a if (\is_array($translatable)) { self::checkAllLocalesPresent($context, $translatable, $allLocales); - return new class($translatable) implements Translated { + return new class($translatable) extends Translated { public function __construct( private readonly array $translatable, ) { From a75ddae52e7a4e1558ed67b0b723c6c5c8482ccd Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 8 Jun 2025 04:06:57 +0200 Subject: [PATCH 05/11] composer: Update Nette to 3.2 Changelogs summary: - nette/utils updated from v3.2.10 to v4.0.7 major See changes: https://github.com/nette/utils/compare/v3.2.10...v4.0.7 Release notes: https://github.com/nette/utils/releases/tag/v4.0.7 - Move Finder from nette/finder https://github.com/nette/utils/commit/0093c9e947f0776a50bad016e73d92b8002ac3e1 - nette/schema updated from v1.2.5 to v1.3.2 minor See changes: https://github.com/nette/schema/compare/v1.2.5...v1.3.2 Release notes: https://github.com/nette/schema/releases/tag/v1.3.2 - nette/robot-loader updated from v3.4.2 to v4.0.3 major See changes: https://github.com/nette/robot-loader/compare/v3.4.2...v4.0.3 Release notes: https://github.com/nette/robot-loader/releases/tag/v4.0.3 - nette/di updated from v3.1.10 to v3.2.4 minor See changes: https://github.com/nette/di/compare/v3.1.10...v3.2.4 Release notes: https://github.com/nette/di/releases/tag/v3.2.4 - %parameters% is deprecated https://github.com/nette/di/commit/c6bf1f996ffc3506b0c9ecc1e203fb00fd65dc5c - nette/http updated from v3.2.4 to v3.3.2 minor See changes: https://github.com/nette/http/compare/v3.2.4...v3.3.2 Release notes: https://github.com/nette/http/releases/tag/v3.3.2 - nette/routing updated from v3.0.5 to v3.1.1 minor See changes: https://github.com/nette/routing/compare/v3.0.5...v3.1.1 Release notes: https://github.com/nette/routing/releases/tag/v3.1.1 - nette/finder removed It has been moved to nette/utils - nette/component-model updated from v3.0.3 to v3.1.1 minor See changes: https://github.com/nette/component-model/compare/v3.0.3...v3.1.1 Release notes: https://github.com/nette/component-model/releases/tag/v3.1.1 - nette/forms updated from v3.1.15 to v3.2.6 minor See changes: https://github.com/nette/forms/compare/v3.1.15...v3.2.6 Release notes: https://github.com/nette/forms/releases/tag/v3.2.6 - type hints added https://github.com/nette/forms/commit/25019dc41d31caefe06e488da5e1aa34a2d5b46a - kdyby/forms-replicator updated from v2.0.0 to v3.0.0 major See changes: https://github.com/Kdyby/FormsReplicator/compare/v2.0.0...v3.0.0 Release notes: https://github.com/Kdyby/FormsReplicator/releases/tag/v3.0.0 - nette/security updated from v3.1.8 to v3.2.1 minor See changes: https://github.com/nette/security/compare/v3.1.8...v3.2.1 Release notes: https://github.com/nette/security/releases/tag/v3.2.1 - nette/application updated from v3.1.15 to v3.2.6 minor See changes: https://github.com/nette/application/compare/v3.1.15...v3.2.6 Release notes: https://github.com/nette/application/releases/tag/v3.2.6 - `mapping` can be string https://github.com/nette/application/commit/d7944e75d01112d43a4823724943c8af15f3508f - nette/caching updated from v3.2.3 to v3.3.1 minor See changes: https://github.com/nette/caching/compare/v3.2.3...v3.3.1 Release notes: https://github.com/nette/caching/releases/tag/v3.3.1 - nextras/form-components updated from v1.1.2 to v2.0.0 major See changes: https://github.com/nextras/form-components/compare/v1.1.2...v2.0.0 Release notes: https://github.com/nextras/form-components/releases/tag/v2.0.0 --- app/Components/BootstrapRadioList.php | 3 +- app/Config/common.neon | 5 +- composer.json | 7 +- composer.lock | 388 +++++++++++++------------- 4 files changed, 200 insertions(+), 203 deletions(-) diff --git a/app/Components/BootstrapRadioList.php b/app/Components/BootstrapRadioList.php index 30d04c8..307ca4a 100644 --- a/app/Components/BootstrapRadioList.php +++ b/app/Components/BootstrapRadioList.php @@ -12,8 +12,7 @@ * Because Bs5FormRenderer only gets us so far. */ final class BootstrapRadioList extends Controls\RadioList { - /** @var bool */ - public $generateId = true; + public bool $generateId = true; public function getControl(): Html { if ($this->hasErrors()) { diff --git a/app/Config/common.neon b/app/Config/common.neon index 2dc8ec0..13666ad 100644 --- a/app/Config/common.neon +++ b/app/Config/common.neon @@ -15,8 +15,7 @@ parameters: application: errorPresenter: Error - mapping: - *: App\*Module\Presenters\*Presenter + mapping: App\*Module\Presenters\*Presenter di: export: @@ -60,7 +59,7 @@ orm: services: - App\Helpers\EmailFactory(%appDir%) - - App\Helpers\Parameters(%parameters%) + - App\Helpers\Parameters(@container::getParameters()) - App\Helpers\SpaydQrGenerator - App\Model\Configuration\Entries::from(%entries%) - App\Model\TeamManager(%adminPassword%) diff --git a/composer.json b/composer.json index 1fda4ad..e811a35 100644 --- a/composer.json +++ b/composer.json @@ -18,21 +18,20 @@ "bacon/bacon-qr-code": "^3.0", "contributte/mail": "^0.7.0", "contributte/translation": "^2.0", - "kdyby/forms-replicator": "^2.0.0", + "kdyby/forms-replicator": "^3.0", "latte/latte": "~3.0", "moneyphp/money": "^4.0", "nette/application": "~3.0", "nette/bootstrap": "~3.0", "nette/caching": "~3.0", "nette/di": "~3.0", - "nette/finder": "~2.5", "nette/forms": "^3.0", "nette/http": "~3.0", "nette/mail": "~3.0", "nette/schema": "^1.2", "nette/security": "~3.0", - "nette/utils": "~3.0", - "nextras/form-components": "^1.0.0", + "nette/utils": "~4.0", + "nextras/form-components": "^2.0", "nextras/forms-rendering": "@dev", "nextras/orm": "^5.0", "pelago/emogrifier": "^7.0", diff --git a/composer.lock b/composer.lock index 6d5bc47..6576bec 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": "e10821537c90ee2b78e0bdfd5377f1f1", + "content-hash": "8ed301d88f9f8a6c661ad0258a32628f", "packages": [ { "name": "68publishers/asset", @@ -337,29 +337,40 @@ }, { "name": "kdyby/forms-replicator", - "version": "v2.0.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/Kdyby/FormsReplicator.git", - "reference": "cd6c9ccfaade43b85d181a8041ec5a7f842969b1" + "reference": "a287e4c7eee9e76e23345db873492c7759fff665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Kdyby/FormsReplicator/zipball/cd6c9ccfaade43b85d181a8041ec5a7f842969b1", - "reference": "cd6c9ccfaade43b85d181a8041ec5a7f842969b1", + "url": "https://api.github.com/repos/Kdyby/FormsReplicator/zipball/a287e4c7eee9e76e23345db873492c7759fff665", + "reference": "a287e4c7eee9e76e23345db873492c7759fff665", "shasum": "" }, "require": { - "nette/forms": "^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "nette/forms": "^3.2.3", + "nette/utils": "^3.0 || ^4.0", + "php": ">= 8.2" + }, + "conflict": { + "nette/component-model": "<3.1.0" }, "require-dev": { - "nette/application": "^3.0@rc", - "nette/bootstrap": "^3.0@rc", - "nette/di": "^3.0@rc", - "nette/tester": "^2.2", - "tracy/tracy": "^2.6" + "nette/application": "^3.0", + "nette/bootstrap": "^3.0", + "nette/di": "^3.0", + "nette/neon": "^3.4.4", + "nette/tester": "^2.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-deprecation-rules": "^2.0", + "phpstan/phpstan-nette": "^2.0", + "rector/rector": "^2.0", + "symplify/easy-coding-standard": "^12.5", + "tracy/tracy": "^2.10.8" }, "suggest": { "nette/di": "to use ReplicatorExtension[CompilerExtension]" @@ -367,7 +378,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -404,9 +415,9 @@ ], "support": { "issues": "https://github.com/Kdyby/FormsReplicator/issues", - "source": "https://github.com/Kdyby/FormsReplicator/tree/master" + "source": "https://github.com/Kdyby/FormsReplicator/tree/v3.0.0" }, - "time": "2019-03-18T16:16:28+00:00" + "time": "2025-12-13T08:59:52+00:00" }, { "name": "latte/latte", @@ -586,44 +597,44 @@ }, { "name": "nette/application", - "version": "v3.1.15", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/nette/application.git", - "reference": "f50364147ca80d9fbcf4d6571cf216ced874d4f9" + "reference": "9c288cc45df467dc012504f4ad64791279720af8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/application/zipball/f50364147ca80d9fbcf4d6571cf216ced874d4f9", - "reference": "f50364147ca80d9fbcf4d6571cf216ced874d4f9", + "url": "https://api.github.com/repos/nette/application/zipball/9c288cc45df467dc012504f4ad64791279720af8", + "reference": "9c288cc45df467dc012504f4ad64791279720af8", "shasum": "" }, "require": { - "nette/component-model": "^3.0", - "nette/http": "^3.0.2", - "nette/routing": "^3.0.5", - "nette/utils": "^3.2.1 || ~4.0.0", - "php": ">=7.2" + "nette/component-model": "^3.1", + "nette/http": "^3.3", + "nette/routing": "^3.1", + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "conflict": { - "latte/latte": "<2.7.1 || >=3.0.0 <3.0.12 || >=3.1", - "nette/caching": "<3.1", - "nette/di": "<3.0.7", - "nette/forms": "<3.0", - "nette/schema": "<1.2", - "tracy/tracy": "<2.5" + "latte/latte": "<2.7.1 || >=3.0.0 <3.0.18 || >=3.1", + "nette/caching": "<3.2", + "nette/di": "<3.2", + "nette/forms": "<3.2", + "nette/schema": "<1.3", + "tracy/tracy": "<2.9" }, "require-dev": { "jetbrains/phpstorm-attributes": "dev-master", - "latte/latte": "^2.10.2 || ^3.0.12", - "mockery/mockery": "^1.0 || ^2.0", - "nette/di": "^v3.0", - "nette/forms": "^3.0", - "nette/robot-loader": "^3.2 || ^4.0", - "nette/security": "^3.0", - "nette/tester": "^2.3.1", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.6" + "latte/latte": "^2.10.2 || ^3.0.18", + "mockery/mockery": "^2.0", + "nette/di": "^3.2", + "nette/forms": "^3.2", + "nette/robot-loader": "^4.0", + "nette/security": "^3.2", + "nette/tester": "^2.5", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.9" }, "suggest": { "latte/latte": "Allows using Latte in templates", @@ -632,7 +643,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -672,9 +683,9 @@ ], "support": { "issues": "https://github.com/nette/application/issues", - "source": "https://github.com/nette/application/tree/v3.1.15" + "source": "https://github.com/nette/application/tree/v3.2.6" }, - "time": "2024-05-12T20:50:30+00:00" + "time": "2024-09-10T10:08:04+00:00" }, { "name": "nette/bootstrap", @@ -759,28 +770,31 @@ }, { "name": "nette/caching", - "version": "v3.2.3", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/nette/caching.git", - "reference": "6821d74c1db82c493c02c47f6485022d79b63176" + "reference": "b37d2c9647b41a9d04f099f10300dc5496c4eb77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/caching/zipball/6821d74c1db82c493c02c47f6485022d79b63176", - "reference": "6821d74c1db82c493c02c47f6485022d79b63176", + "url": "https://api.github.com/repos/nette/caching/zipball/b37d2c9647b41a9d04f099f10300dc5496c4eb77", + "reference": "b37d2c9647b41a9d04f099f10300dc5496c4eb77", "shasum": "" }, "require": { - "nette/finder": "^2.4 || ^3.0", - "nette/utils": "^3.2 || ~4.0.0", - "php": "8.0 - 8.3" + "nette/utils": "^4.0", + "php": "8.0 - 8.4" + }, + "conflict": { + "latte/latte": ">=3.0.0 <3.0.12" }, "require-dev": { - "latte/latte": "^2.11 || ^3.0", + "latte/latte": "^2.11 || ^3.0.12", "nette/di": "^3.1 || ^4.0", "nette/tester": "^2.4", "phpstan/phpstan": "^1.0", + "psr/simple-cache": "^2.0 || ^3.0", "tracy/tracy": "^2.9" }, "suggest": { @@ -789,7 +803,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -824,37 +838,37 @@ ], "support": { "issues": "https://github.com/nette/caching/issues", - "source": "https://github.com/nette/caching/tree/v3.2.3" + "source": "https://github.com/nette/caching/tree/v3.3.1" }, - "time": "2023-09-26T11:12:20+00:00" + "time": "2024-08-07T00:01:58+00:00" }, { "name": "nette/component-model", - "version": "v3.0.3", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/nette/component-model.git", - "reference": "9d97c0e1916bbf8e306283ab187834501fd4b1f5" + "reference": "fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/component-model/zipball/9d97c0e1916bbf8e306283ab187834501fd4b1f5", - "reference": "9d97c0e1916bbf8e306283ab187834501fd4b1f5", + "url": "https://api.github.com/repos/nette/component-model/zipball/fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77", + "reference": "fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77", "shasum": "" }, "require": { - "nette/utils": "^2.5 || ^3.0 || ~4.0.0", - "php": ">=7.1" + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -886,42 +900,43 @@ ], "support": { "issues": "https://github.com/nette/component-model/issues", - "source": "https://github.com/nette/component-model/tree/v3.0.3" + "source": "https://github.com/nette/component-model/tree/v3.1.1" }, - "time": "2023-01-09T20:16:05+00:00" + "time": "2024-08-07T00:35:59+00:00" }, { "name": "nette/di", - "version": "v3.1.10", + "version": "v3.2.4", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284" + "reference": "57f923a7af32435b6e4921c0adbc70c619625a17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284", - "reference": "2645ec3eaa17fa2ab87c5eb4eaacb1fe6dd28284", + "url": "https://api.github.com/repos/nette/di/zipball/57f923a7af32435b6e4921c0adbc70c619625a17", + "reference": "57f923a7af32435b6e4921c0adbc70c619625a17", "shasum": "" }, "require": { + "ext-ctype": "*", "ext-tokenizer": "*", "nette/neon": "^3.3 || ^4.0", - "nette/php-generator": "^3.5.4 || ^4.0", - "nette/robot-loader": "^3.2 || ~4.0.0", + "nette/php-generator": "^4.1.6", + "nette/robot-loader": "^4.0", "nette/schema": "^1.2.5", - "nette/utils": "^3.2.5 || ~4.0.0", - "php": "7.2 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -958,47 +973,33 @@ ], "support": { "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.1.10" + "source": "https://github.com/nette/di/tree/v3.2.4" }, - "time": "2024-02-06T01:19:44+00:00" + "time": "2025-01-10T04:57:37+00:00" }, { "name": "nette/finder", - "version": "v2.6.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/nette/finder.git", - "reference": "991aefb42860abeab8e003970c3809a9d83cb932" + "reference": "027395c638637de95c8e9fad49a7c51249404ed2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/991aefb42860abeab8e003970c3809a9d83cb932", - "reference": "991aefb42860abeab8e003970c3809a9d83cb932", + "url": "https://api.github.com/repos/nette/finder/zipball/027395c638637de95c8e9fad49a7c51249404ed2", + "reference": "027395c638637de95c8e9fad49a7c51249404ed2", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "nette/utils": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "3.0-dev" } }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause", @@ -1025,29 +1026,29 @@ ], "support": { "issues": "https://github.com/nette/finder/issues", - "source": "https://github.com/nette/finder/tree/v2.6.0" + "source": "https://github.com/nette/finder/tree/v3.0.0" }, - "time": "2022-10-13T01:31:15+00:00" + "time": "2022-12-14T17:05:54+00:00" }, { "name": "nette/forms", - "version": "v3.1.15", + "version": "v3.2.6", "source": { "type": "git", "url": "https://github.com/nette/forms.git", - "reference": "f373bcd5ea7a33672fa96035d4bf3110ab66ee44" + "reference": "de4ba5ad4635ceb9aeef248f21f8b821e78d84e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/forms/zipball/f373bcd5ea7a33672fa96035d4bf3110ab66ee44", - "reference": "f373bcd5ea7a33672fa96035d4bf3110ab66ee44", + "url": "https://api.github.com/repos/nette/forms/zipball/de4ba5ad4635ceb9aeef248f21f8b821e78d84e0", + "reference": "de4ba5ad4635ceb9aeef248f21f8b821e78d84e0", "shasum": "" }, "require": { - "nette/component-model": "^3.0", - "nette/http": "^3.1", - "nette/utils": "^3.2.5 || ~4.0.0", - "php": "7.2 - 8.3" + "nette/component-model": "^3.1", + "nette/http": "^3.3", + "nette/utils": "^4.0.4", + "php": "8.1 - 8.4" }, "conflict": { "latte/latte": ">=3.0.0 <3.0.12 || >=3.1" @@ -1056,7 +1057,7 @@ "latte/latte": "^2.10.2 || ^3.0.12", "nette/application": "^3.0", "nette/di": "^3.0", - "nette/tester": "^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan-nette": "^1", "tracy/tracy": "^2.9" }, @@ -1066,7 +1067,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1102,27 +1103,27 @@ ], "support": { "issues": "https://github.com/nette/forms/issues", - "source": "https://github.com/nette/forms/tree/v3.1.15" + "source": "https://github.com/nette/forms/tree/v3.2.6" }, - "time": "2024-01-21T22:22:16+00:00" + "time": "2025-03-31T01:06:54+00:00" }, { "name": "nette/http", - "version": "v3.2.4", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/nette/http.git", - "reference": "d7cc833ee186d5139cde5aab43b39ee7aedd6f22" + "reference": "3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/http/zipball/d7cc833ee186d5139cde5aab43b39ee7aedd6f22", - "reference": "d7cc833ee186d5139cde5aab43b39ee7aedd6f22", + "url": "https://api.github.com/repos/nette/http/zipball/3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1", + "reference": "3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1", "shasum": "" }, "require": { - "nette/utils": "^3.2.1 || ~4.0.0", - "php": "7.2 - 8.3" + "nette/utils": "^4.0.4", + "php": "8.1 - 8.4" }, "conflict": { "nette/di": "<3.0.3", @@ -1144,7 +1145,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.3-dev" } }, "autoload": { @@ -1183,9 +1184,9 @@ ], "support": { "issues": "https://github.com/nette/http/issues", - "source": "https://github.com/nette/http/tree/v3.2.4" + "source": "https://github.com/nette/http/tree/v3.3.2" }, - "time": "2024-01-30T18:13:43+00:00" + "time": "2025-01-12T16:27:57+00:00" }, { "name": "nette/mail", @@ -1400,33 +1401,32 @@ }, { "name": "nette/robot-loader", - "version": "v3.4.2", + "version": "v4.0.3", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "970c8f82be98ec54180c88a468cd2b057855d993" + "reference": "45d67753fb4865bb718e9a6c9be69cc9470137b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/970c8f82be98ec54180c88a468cd2b057855d993", - "reference": "970c8f82be98ec54180c88a468cd2b057855d993", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/45d67753fb4865bb718e9a6c9be69cc9470137b7", + "reference": "45d67753fb4865bb718e9a6c9be69cc9470137b7", "shasum": "" }, "require": { "ext-tokenizer": "*", - "nette/finder": "^2.5 || ^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "nette/utils": "^4.0", + "php": "8.0 - 8.4" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "nette/tester": "^2.4", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1461,38 +1461,38 @@ ], "support": { "issues": "https://github.com/nette/robot-loader/issues", - "source": "https://github.com/nette/robot-loader/tree/v3.4.2" + "source": "https://github.com/nette/robot-loader/tree/v4.0.3" }, - "time": "2022-12-14T15:41:06+00:00" + "time": "2024-06-18T20:26:39+00:00" }, { "name": "nette/routing", - "version": "v3.0.5", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/nette/routing.git", - "reference": "ff709ff9ed38a14c4fe3472534526593a8461ff5" + "reference": "5b0782d3b50af68614253a373fa663ed03206a3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/routing/zipball/ff709ff9ed38a14c4fe3472534526593a8461ff5", - "reference": "ff709ff9ed38a14c4fe3472534526593a8461ff5", + "url": "https://api.github.com/repos/nette/routing/zipball/5b0782d3b50af68614253a373fa663ed03206a3f", + "reference": "5b0782d3b50af68614253a373fa663ed03206a3f", "shasum": "" }, "require": { - "nette/http": "^3.0 || ~4.0.0", - "nette/utils": "^3.0 || ~4.0.0", - "php": ">=7.1" + "nette/http": "^3.2 || ~4.0.0", + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.0", + "nette/tester": "^2.5", "phpstan/phpstan": "^1", - "tracy/tracy": "^2.3" + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1523,37 +1523,37 @@ ], "support": { "issues": "https://github.com/nette/routing/issues", - "source": "https://github.com/nette/routing/tree/v3.0.5" + "source": "https://github.com/nette/routing/tree/v3.1.1" }, - "time": "2023-10-08T21:37:46+00:00" + "time": "2024-11-04T11:59:47+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.5.2", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1585,44 +1585,44 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "name": "nette/security", - "version": "v3.1.8", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/nette/security.git", - "reference": "9b8e5c76b2e738350498470c35a36a6f0d0e38d6" + "reference": "6e19bf604934aec0cd3343a307e28fd997e40e96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/security/zipball/9b8e5c76b2e738350498470c35a36a6f0d0e38d6", - "reference": "9b8e5c76b2e738350498470c35a36a6f0d0e38d6", + "url": "https://api.github.com/repos/nette/security/zipball/6e19bf604934aec0cd3343a307e28fd997e40e96", + "reference": "6e19bf604934aec0cd3343a307e28fd997e40e96", "shasum": "" }, "require": { - "nette/utils": "^3.2.1 || ~4.0.0", - "php": "7.2 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.4" }, "conflict": { "nette/di": "<3.0-stable", "nette/http": "<3.1.3" }, "require-dev": { - "mockery/mockery": "^1.3.6", - "nette/di": "^3.0.1", - "nette/http": "^3.0.0", - "nette/tester": "^2.0", + "mockery/mockery": "^1.5", + "nette/di": "^3.1", + "nette/http": "^3.2", + "nette/tester": "^2.5", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.4" + "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1656,35 +1656,36 @@ ], "support": { "issues": "https://github.com/nette/security/issues", - "source": "https://github.com/nette/security/tree/v3.1.8" + "source": "https://github.com/nette/security/tree/v3.2.1" }, - "time": "2023-10-18T17:05:31+00:00" + "time": "2024-11-04T12:25:05+00:00" }, { "name": "nette/utils", - "version": "v3.2.10", + "version": "v4.0.7", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2" + "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a4175c62652f2300c8017fb7e640f9ccb11648d2", - "reference": "a4175c62652f2300c8017fb7e640f9ccb11648d2", + "url": "https://api.github.com/repos/nette/utils/zipball/e67c4061eb40b9c113b218214e42cb5a0dda28f2", + "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2", "shasum": "" }, "require": { - "php": ">=7.2 <8.4" + "php": "8.0 - 8.4" }, "conflict": { - "nette/di": "<3.0.6" + "nette/finder": "<3", + "nette/schema": "<1.2.2" }, "require-dev": { "jetbrains/phpstorm-attributes": "dev-master", - "nette/tester": "~2.0", + "nette/tester": "^2.5", "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" + "tracy/tracy": "^2.9" }, "suggest": { "ext-gd": "to use Image", @@ -1692,13 +1693,12 @@ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1742,9 +1742,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.10" + "source": "https://github.com/nette/utils/tree/v4.0.7" }, - "time": "2023-07-30T15:38:18+00:00" + "time": "2025-06-03T04:55:08+00:00" }, { "name": "nextras/dbal", @@ -1827,24 +1827,24 @@ }, { "name": "nextras/form-components", - "version": "v1.1.2", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/nextras/form-components.git", - "reference": "67253c9354762682d7d0804974b2350f1c9a53af" + "reference": "b50849578f2a51e2a3c67983a24c90910f5cd79d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextras/form-components/zipball/67253c9354762682d7d0804974b2350f1c9a53af", - "reference": "67253c9354762682d7d0804974b2350f1c9a53af", + "url": "https://api.github.com/repos/nextras/form-components/zipball/b50849578f2a51e2a3c67983a24c90910f5cd79d", + "reference": "b50849578f2a51e2a3c67983a24c90910f5cd79d", "shasum": "" }, "require": { "nette/application": "~3.0", "nette/component-model": "~3.0", - "nette/forms": "~3.0", + "nette/forms": "~3.1", "nette/utils": "^3.0 || ^4.0", - "php": ">=7.1" + "php": ">=8.0" }, "require-dev": { "latte/latte": "~3.0", @@ -1852,8 +1852,8 @@ "nette/di": "~3.0", "nette/robot-loader": "~3.0", "nette/tester": "~2.1", - "phpstan/phpstan-nette": "0.11", - "phpstan/phpstan-shim": "0.11.1", + "phpstan/phpstan": "^1.12", + "phpstan/phpstan-nette": "^1.3", "tracy/tracy": "~2.5" }, "type": "library", @@ -1888,9 +1888,9 @@ ], "support": { "issues": "https://github.com/nextras/form-components/issues", - "source": "https://github.com/nextras/form-components/tree/v1.1.2" + "source": "https://github.com/nextras/form-components/tree/v2.0.0" }, - "time": "2023-04-19T13:38:40+00:00" + "time": "2024-11-04T22:52:44+00:00" }, { "name": "nextras/forms-rendering", From 7ca17c729f2727d3b46a20b9db3ea6519340f47e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 15:24:25 +0100 Subject: [PATCH 06/11] composer: Install stable nextras/forms-rendering We needed the dev before https://github.com/nextras/forms-rendering/commit/8776b68caa30796814994442a6a329bd61b0182c was released. - nextras/forms-rendering updated from dev-master@ec07cdf to v2.0.0 major See changes: https://github.com/nextras/forms-rendering/compare/ec07cdf...v2.0.0 Release notes: https://github.com/nextras/forms-rendering/releases/tag/v2.0.0 --- composer.json | 2 +- composer.lock | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index e811a35..d6cb363 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "nette/security": "~3.0", "nette/utils": "~4.0", "nextras/form-components": "^2.0", - "nextras/forms-rendering": "@dev", + "nextras/forms-rendering": "^2.0", "nextras/orm": "^5.0", "pelago/emogrifier": "^7.0", "rikudou/iban": "^1.3", diff --git a/composer.lock b/composer.lock index 6576bec..89f5709 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": "8ed301d88f9f8a6c661ad0258a32628f", + "content-hash": "fc3158d93b992dacd18e43f93296a615", "packages": [ { "name": "68publishers/asset", @@ -1894,7 +1894,7 @@ }, { "name": "nextras/forms-rendering", - "version": "dev-master", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/nextras/forms-rendering.git", @@ -1920,7 +1920,6 @@ "phpstan/phpstan-nette": "~1.0", "tracy/tracy": "^2.5" }, - "default-branch": true, "type": "library", "extra": { "branch-alias": { @@ -1952,7 +1951,7 @@ ], "support": { "issues": "https://github.com/nextras/forms-rendering/issues", - "source": "https://github.com/nextras/forms-rendering/tree/master" + "source": "https://github.com/nextras/forms-rendering/tree/v2.0.0" }, "time": "2025-02-09T11:47:51+00:00" }, @@ -5664,9 +5663,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": { - "nextras/forms-rendering": 20 - }, + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 6e40b36c022c7f8920ee862de320933f68212663 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 15:39:39 +0100 Subject: [PATCH 07/11] composer: Update dependencies Changelogs summary: - symfony/asset updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/asset/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/asset/releases/tag/v7.4.0 - nette/utils updated from v4.0.7 to v4.0.10 patch See changes: https://github.com/nette/utils/compare/v4.0.7...v4.0.10 Release notes: https://github.com/nette/utils/releases/tag/v4.0.10 - nette/schema updated from v1.3.2 to v1.3.3 patch See changes: https://github.com/nette/schema/compare/v1.3.2...v1.3.3 Release notes: https://github.com/nette/schema/releases/tag/v1.3.3 - nette/robot-loader updated from v4.0.3 to v4.1.0 minor See changes: https://github.com/nette/robot-loader/compare/v4.0.3...v4.1.0 Release notes: https://github.com/nette/robot-loader/releases/tag/v4.1.0 - nette/php-generator updated from v4.1.8 to v4.2.0 minor See changes: https://github.com/nette/php-generator/compare/v4.1.8...v4.2.0 Release notes: https://github.com/nette/php-generator/releases/tag/v4.2.0 - nette/neon updated from v3.4.4 to v3.4.6 patch See changes: https://github.com/nette/neon/compare/v3.4.4...v3.4.6 Release notes: https://github.com/nette/neon/releases/tag/v3.4.6 - symfony/polyfill-ctype updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-ctype/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-ctype/releases/tag/v1.33.0 - nette/di updated from v3.2.4 to v3.2.5 patch See changes: https://github.com/nette/di/compare/v3.2.4...v3.2.5 Release notes: https://github.com/nette/di/releases/tag/v3.2.5 - latte/latte updated from v3.0.21 to v3.1.0 minor See changes: https://github.com/nette/latte/compare/v3.0.21...v3.1.0 Release notes: https://github.com/nette/latte/releases/tag/v3.1.0 - dasprid/enum updated from 1.0.6 to 1.0.7 patch See changes: https://github.com/DASPRiD/Enum/compare/1.0.6...1.0.7 Release notes: https://github.com/DASPRiD/Enum/releases/tag/1.0.7 - bacon/bacon-qr-code updated from v3.0.1 to v3.0.3 patch See changes: https://github.com/Bacon/BaconQrCode/compare/v3.0.1...v3.0.3 Release notes: https://github.com/Bacon/BaconQrCode/releases/tag/v3.0.3 - symfony/translation-contracts updated from v3.6.0 to v3.6.1 patch See changes: https://github.com/symfony/translation-contracts/compare/v3.6.0...v3.6.1 Release notes: https://github.com/symfony/translation-contracts/releases/tag/v3.6.1 - symfony/polyfill-mbstring updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-mbstring/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-mbstring/releases/tag/v1.33.0 - symfony/translation updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/translation/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/translation/releases/tag/v7.4.0 - symfony/filesystem updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/filesystem/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/filesystem/releases/tag/v7.4.0 - symfony/config updated from v7.3.0 to v7.4.1 minor See changes: https://github.com/symfony/config/compare/v7.3.0...v7.4.1 Release notes: https://github.com/symfony/config/releases/tag/v7.4.1 - nette/http updated from v3.3.2 to v3.3.3 patch See changes: https://github.com/nette/http/compare/v3.3.2...v3.3.3 Release notes: https://github.com/nette/http/releases/tag/v3.3.3 - nette/routing updated from v3.1.1 to v3.1.2 patch See changes: https://github.com/nette/routing/compare/v3.1.1...v3.1.2 Release notes: https://github.com/nette/routing/releases/tag/v3.1.2 - contributte/translation updated from v2.0.5 to v2.0.7 patch See changes: https://github.com/contributte/translation/compare/v2.0.5...v2.0.7 Release notes: https://github.com/contributte/translation/releases/tag/v2.0.7 - symfony/service-contracts updated from v3.6.0 to v3.6.1 patch See changes: https://github.com/symfony/service-contracts/compare/v3.6.0...v3.6.1 Release notes: https://github.com/symfony/service-contracts/releases/tag/v3.6.1 - symfony/stopwatch updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/stopwatch/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/stopwatch/releases/tag/v7.4.0 - symfony/process updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/process/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/process/releases/tag/v7.4.0 - symfony/polyfill-php84 installed in version v1.33.0 Release notes: https://github.com/symfony/polyfill-php84/releases/tag/v1.33.0 - symfony/polyfill-php81 updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-php81/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-php81/releases/tag/v1.33.0 - symfony/polyfill-php80 updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-php80/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-php80/releases/tag/v1.33.0 - symfony/options-resolver updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/options-resolver/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/options-resolver/releases/tag/v7.4.0 - symfony/finder updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/finder/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/finder/releases/tag/v7.4.0 - symfony/event-dispatcher updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/event-dispatcher/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/event-dispatcher/releases/tag/v7.4.0 - symfony/polyfill-intl-normalizer updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-intl-normalizer/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-intl-normalizer/releases/tag/v1.33.0 - symfony/polyfill-intl-grapheme updated from v1.32.0 to v1.33.0 minor See changes: https://github.com/symfony/polyfill-intl-grapheme/compare/v1.32.0...v1.33.0 Release notes: https://github.com/symfony/polyfill-intl-grapheme/releases/tag/v1.33.0 - symfony/string updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/string/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/string/releases/tag/v7.4.0 - symfony/console updated from v7.3.0 to v7.4.1 minor See changes: https://github.com/symfony/console/compare/v7.3.0...v7.4.1 Release notes: https://github.com/symfony/console/releases/tag/v7.4.1 - react/event-loop updated from v1.5.0 to v1.6.0 minor See changes: https://github.com/reactphp/event-loop/compare/v1.5.0...v1.6.0 Release notes: https://github.com/reactphp/event-loop/releases/tag/v1.6.0 - react/promise updated from v3.2.0 to v3.3.0 minor See changes: https://github.com/reactphp/promise/compare/v3.2.0...v3.3.0 Release notes: https://github.com/reactphp/promise/releases/tag/v3.3.0 - react/dns updated from v1.13.0 to v1.14.0 minor See changes: https://github.com/reactphp/dns/compare/v1.13.0...v1.14.0 Release notes: https://github.com/reactphp/dns/releases/tag/v1.14.0 - react/socket updated from v1.16.0 to v1.17.0 minor See changes: https://github.com/reactphp/socket/compare/v1.16.0...v1.17.0 Release notes: https://github.com/reactphp/socket/releases/tag/v1.17.0 - fidry/cpu-core-counter updated from 1.2.0 to 1.3.0 minor See changes: https://github.com/theofidry/cpu-core-counter/compare/1.2.0...1.3.0 Release notes: https://github.com/theofidry/cpu-core-counter/releases/tag/1.3.0 - composer/semver updated from 3.4.3 to 3.4.4 patch See changes: https://github.com/composer/semver/compare/3.4.3...3.4.4 Release notes: https://github.com/composer/semver/releases/tag/3.4.4 - friendsofphp/php-cs-fixer updated from v3.75.0 to v3.92.0 minor See changes: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.75.0...v3.92.0 Release notes: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v3.92.0 - nette/component-model updated from v3.1.1 to v3.1.3 patch See changes: https://github.com/nette/component-model/compare/v3.1.1...v3.1.3 Release notes: https://github.com/nette/component-model/releases/tag/v3.1.3 - nette/forms updated from v3.2.6 to v3.2.8 patch See changes: https://github.com/nette/forms/compare/v3.2.6...v3.2.8 Release notes: https://github.com/nette/forms/releases/tag/v3.2.8 - moneyphp/money updated from v4.7.1 to v4.8.0 minor See changes: https://github.com/moneyphp/money/compare/v4.7.1...v4.8.0 Release notes: https://github.com/moneyphp/money/releases/tag/v4.8.0 - nette/bootstrap updated from v3.2.6 to v3.2.7 patch See changes: https://github.com/nette/bootstrap/compare/v3.2.6...v3.2.7 Release notes: https://github.com/nette/bootstrap/releases/tag/v3.2.7 - nette/security updated from v3.2.1 to v3.2.2 patch See changes: https://github.com/nette/security/compare/v3.2.1...v3.2.2 Release notes: https://github.com/nette/security/releases/tag/v3.2.2 - nette/tester updated from v2.5.4 to v2.5.7 patch See changes: https://github.com/nette/tester/compare/v2.5.4...v2.5.7 Release notes: https://github.com/nette/tester/releases/tag/v2.5.7 - nette/application updated from v3.2.6 to v3.2.8 patch See changes: https://github.com/nette/application/compare/v3.2.6...v3.2.8 Release notes: https://github.com/nette/application/releases/tag/v3.2.8 - nextras/forms-rendering updated from v2.0.0 to v2.0.1 patch See changes: https://github.com/nextras/forms-rendering/compare/v2.0.0...v2.0.1 Release notes: https://github.com/nextras/forms-rendering/releases/tag/v2.0.1 - tracy/tracy updated from v2.10.10 to v2.11.0 minor See changes: https://github.com/nette/tracy/compare/v2.10.10...v2.11.0 Release notes: https://github.com/nette/tracy/releases/tag/v2.11.0 - phpstan/phpdoc-parser updated from 2.1.0 to 2.3.0 minor See changes: https://github.com/phpstan/phpdoc-parser/compare/2.1.0...2.3.0 Release notes: https://github.com/phpstan/phpdoc-parser/releases/tag/2.3.0 - nextras/dbal updated from v5.0.2 to v5.0.7 patch See changes: https://github.com/nextras/dbal/compare/v5.0.2...v5.0.7 Release notes: https://github.com/nextras/dbal/releases/tag/v5.0.7 - nette/caching updated from v3.3.1 to v3.4.0 minor See changes: https://github.com/nette/caching/compare/v3.3.1...v3.4.0 Release notes: https://github.com/nette/caching/releases/tag/v3.4.0 - phpstan/phpstan updated from 1.12.27 to 1.12.32 patch - symfony/css-selector updated from v7.3.0 to v7.4.0 minor See changes: https://github.com/symfony/css-selector/compare/v7.3.0...v7.4.0 Release notes: https://github.com/symfony/css-selector/releases/tag/v7.4.0 - sabberworm/php-css-parser updated from v8.8.0 to v8.9.0 minor See changes: https://github.com/MyIntervals/PHP-CSS-Parser/compare/v8.8.0...v8.9.0 Release notes: https://github.com/MyIntervals/PHP-CSS-Parser/releases/tag/v8.9.0 --- composer.lock | 1117 +++++++++++++++++++++++++++++-------------------- 1 file changed, 660 insertions(+), 457 deletions(-) diff --git a/composer.lock b/composer.lock index 89f5709..dbc5d06 100644 --- a/composer.lock +++ b/composer.lock @@ -69,16 +69,16 @@ }, { "name": "bacon/bacon-qr-code", - "version": "v3.0.1", + "version": "v3.0.3", "source": { "type": "git", "url": "https://github.com/Bacon/BaconQrCode.git", - "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f" + "reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/f9cc1f52b5a463062251d666761178dbdb6b544f", - "reference": "f9cc1f52b5a463062251d666761178dbdb6b544f", + "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/36a1cb2b81493fa5b82e50bf8068bf84d1542563", + "reference": "36a1cb2b81493fa5b82e50bf8068bf84d1542563", "shasum": "" }, "require": { @@ -88,8 +88,9 @@ }, "require-dev": { "phly/keep-a-changelog": "^2.12", - "phpunit/phpunit": "^10.5.11 || 11.0.4", + "phpunit/phpunit": "^10.5.11 || ^11.0.4", "spatie/phpunit-snapshot-assertions": "^5.1.5", + "spatie/pixelmatch-php": "^1.2.0", "squizlabs/php_codesniffer": "^3.9" }, "suggest": { @@ -117,9 +118,9 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "support": { "issues": "https://github.com/Bacon/BaconQrCode/issues", - "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.1" + "source": "https://github.com/Bacon/BaconQrCode/tree/v3.0.3" }, - "time": "2024-10-01T13:55:55+00:00" + "time": "2025-11-19T17:15:36+00:00" }, { "name": "contributte/mail", @@ -200,30 +201,30 @@ }, { "name": "contributte/translation", - "version": "v2.0.5", + "version": "v2.0.7", "source": { "type": "git", "url": "https://github.com/contributte/translation.git", - "reference": "8dedfb0746ee32da06d38d23e1f8e46fe5cabdf5" + "reference": "92bc279f34102466b3faee11f15ee95c1a7c3d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/contributte/translation/zipball/8dedfb0746ee32da06d38d23e1f8e46fe5cabdf5", - "reference": "8dedfb0746ee32da06d38d23e1f8e46fe5cabdf5", + "url": "https://api.github.com/repos/contributte/translation/zipball/92bc279f34102466b3faee11f15ee95c1a7c3d4a", + "reference": "92bc279f34102466b3faee11f15ee95c1a7c3d4a", "shasum": "" }, "require": { - "latte/latte": "^2.6|^3.0.12", + "latte/latte": "^2.6|^3.0.25", "nette/di": "^3.0.6", - "nette/finder": "^2.5.2|~3.0.0", + "nette/finder": "^2.5.2|^3.0.0", "nette/http": "^3.0.7", "nette/neon": "^3.3.1", "nette/routing": "^3.0", "nette/schema": "^1.0", - "nette/utils": "^3.2.1|~4.0.0", + "nette/utils": "^3.2.1|^4.0.0", "php": "^8.0.2", - "symfony/config": "^6.0|^7.0", - "symfony/translation": "^6.0|^7.0" + "symfony/config": "^6.0|^7.0|^8.0", + "symfony/translation": "^6.0|^7.0|^8.0" }, "require-dev": { "doctrine/orm": "^2.8", @@ -231,7 +232,7 @@ "nette/application": "^3.1.0", "nette/bootstrap": "^3.2.1", "nette/database": "^3.1.1", - "nette/robot-loader": "^3.4.0|~4.0.0", + "nette/robot-loader": "^3.4.0|^4.0.0", "nette/tester": "^2.3.1", "ninjify/nunjuck": "^0.4.0", "ninjify/qa": "^0.13", @@ -271,7 +272,7 @@ ], "support": { "issues": "https://github.com/contributte/translation/issues", - "source": "https://github.com/contributte/translation/tree/v2.0.5" + "source": "https://github.com/contributte/translation/tree/v2.0.7" }, "funding": [ { @@ -283,20 +284,20 @@ "type": "github" } ], - "time": "2024-03-20T10:14:53+00:00" + "time": "2025-12-01T07:10:21+00:00" }, { "name": "dasprid/enum", - "version": "1.0.6", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/DASPRiD/Enum.git", - "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90" + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90", - "reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90", + "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce", + "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce", "shasum": "" }, "require": { @@ -331,9 +332,9 @@ ], "support": { "issues": "https://github.com/DASPRiD/Enum/issues", - "source": "https://github.com/DASPRiD/Enum/tree/1.0.6" + "source": "https://github.com/DASPRiD/Enum/tree/1.0.7" }, - "time": "2024-08-09T14:30:48+00:00" + "time": "2025-09-16T12:23:56+00:00" }, { "name": "kdyby/forms-replicator", @@ -421,22 +422,22 @@ }, { "name": "latte/latte", - "version": "v3.0.21", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/nette/latte.git", - "reference": "9302610109836aeb2e540cf2e457414e52597789" + "reference": "b6e3ad20c968b0aee9a8b7c8587592cdf1feea73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/latte/zipball/9302610109836aeb2e540cf2e457414e52597789", - "reference": "9302610109836aeb2e540cf2e457414e52597789", + "url": "https://api.github.com/repos/nette/latte/zipball/b6e3ad20c968b0aee9a8b7c8587592cdf1feea73", + "reference": "b6e3ad20c968b0aee9a8b7c8587592cdf1feea73", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "php": "8.0 - 8.4" + "php": "8.2 - 8.5" }, "conflict": { "nette/application": "<3.1.7", @@ -446,7 +447,7 @@ "nette/php-generator": "^4.0", "nette/tester": "^2.5", "nette/utils": "^4.0", - "phpstan/phpstan": "^1", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.10" }, "suggest": { @@ -463,10 +464,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { + "psr-4": { + "Latte\\": "src/Latte" + }, "classmap": [ "src/" ] @@ -501,29 +505,29 @@ ], "support": { "issues": "https://github.com/nette/latte/issues", - "source": "https://github.com/nette/latte/tree/v3.0.21" + "source": "https://github.com/nette/latte/tree/v3.1.0" }, - "time": "2025-05-17T05:59:24+00:00" + "time": "2025-11-26T04:28:31+00:00" }, { "name": "moneyphp/money", - "version": "v4.7.1", + "version": "v4.8.0", "source": { "type": "git", "url": "https://github.com/moneyphp/money.git", - "reference": "1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348" + "reference": "b358727ea5a5cd2d7475e59c31dfc352440ae7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/moneyphp/money/zipball/1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348", - "reference": "1a23f0e1b22e2c59ed5ed70cfbe4cbe696be9348", + "url": "https://api.github.com/repos/moneyphp/money/zipball/b358727ea5a5cd2d7475e59c31dfc352440ae7ec", + "reference": "b358727ea5a5cd2d7475e59c31dfc352440ae7ec", "shasum": "" }, "require": { "ext-bcmath": "*", "ext-filter": "*", "ext-json": "*", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { "cache/taggable-cache": "^1.1.0", @@ -591,33 +595,33 @@ ], "support": { "issues": "https://github.com/moneyphp/money/issues", - "source": "https://github.com/moneyphp/money/tree/v4.7.1" + "source": "https://github.com/moneyphp/money/tree/v4.8.0" }, - "time": "2025-06-06T07:12:38+00:00" + "time": "2025-10-23T07:55:09+00:00" }, { "name": "nette/application", - "version": "v3.2.6", + "version": "v3.2.8", "source": { "type": "git", "url": "https://github.com/nette/application.git", - "reference": "9c288cc45df467dc012504f4ad64791279720af8" + "reference": "aaa18a09a488a2e632162539f77f90b3024c44f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/application/zipball/9c288cc45df467dc012504f4ad64791279720af8", - "reference": "9c288cc45df467dc012504f4ad64791279720af8", + "url": "https://api.github.com/repos/nette/application/zipball/aaa18a09a488a2e632162539f77f90b3024c44f8", + "reference": "aaa18a09a488a2e632162539f77f90b3024c44f8", "shasum": "" }, "require": { "nette/component-model": "^3.1", - "nette/http": "^3.3", + "nette/http": "^3.3.2", "nette/routing": "^3.1", "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "conflict": { - "latte/latte": "<2.7.1 || >=3.0.0 <3.0.18 || >=3.1", + "latte/latte": "<2.7.1 || >=3.0.0 <3.0.18 || >=3.2", "nette/caching": "<3.2", "nette/di": "<3.2", "nette/forms": "<3.2", @@ -625,15 +629,15 @@ "tracy/tracy": "<2.9" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", + "jetbrains/phpstorm-attributes": "^1.2", "latte/latte": "^2.10.2 || ^3.0.18", - "mockery/mockery": "^2.0", + "mockery/mockery": "^1.6@stable", "nette/di": "^3.2", "nette/forms": "^3.2", "nette/robot-loader": "^4.0", "nette/security": "^3.2", - "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^1.0", + "nette/tester": "^2.5.2", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -647,6 +651,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -683,28 +690,28 @@ ], "support": { "issues": "https://github.com/nette/application/issues", - "source": "https://github.com/nette/application/tree/v3.2.6" + "source": "https://github.com/nette/application/tree/v3.2.8" }, - "time": "2024-09-10T10:08:04+00:00" + "time": "2025-11-24T00:10:57+00:00" }, { "name": "nette/bootstrap", - "version": "v3.2.6", + "version": "v3.2.7", "source": { "type": "git", "url": "https://github.com/nette/bootstrap.git", - "reference": "287240831efe4936b23a1b643df0d54069a4eda0" + "reference": "10fdb1cb05497da39396f2ce1785cea67c8aa439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/287240831efe4936b23a1b643df0d54069a4eda0", - "reference": "287240831efe4936b23a1b643df0d54069a4eda0", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/10fdb1cb05497da39396f2ce1785cea67c8aa439", + "reference": "10fdb1cb05497da39396f2ce1785cea67c8aa439", "shasum": "" }, "require": { "nette/di": "^3.1", "nette/utils": "^3.2.1 || ^4.0", - "php": "8.0 - 8.4" + "php": "8.0 - 8.5" }, "conflict": { "tracy/tracy": "<2.6" @@ -721,7 +728,7 @@ "nette/safe-stream": "^2.2", "nette/security": "^3.0", "nette/tester": "^2.4", - "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -735,6 +742,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -764,36 +774,36 @@ ], "support": { "issues": "https://github.com/nette/bootstrap/issues", - "source": "https://github.com/nette/bootstrap/tree/v3.2.6" + "source": "https://github.com/nette/bootstrap/tree/v3.2.7" }, - "time": "2025-05-22T06:18:42+00:00" + "time": "2025-08-01T02:02:03+00:00" }, { "name": "nette/caching", - "version": "v3.3.1", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/nette/caching.git", - "reference": "b37d2c9647b41a9d04f099f10300dc5496c4eb77" + "reference": "a1c13221b350d0db0a2bd4a77c1e7b65e0aa065d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/caching/zipball/b37d2c9647b41a9d04f099f10300dc5496c4eb77", - "reference": "b37d2c9647b41a9d04f099f10300dc5496c4eb77", + "url": "https://api.github.com/repos/nette/caching/zipball/a1c13221b350d0db0a2bd4a77c1e7b65e0aa065d", + "reference": "a1c13221b350d0db0a2bd4a77c1e7b65e0aa065d", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.0 - 8.4" + "php": "8.1 - 8.5" }, "conflict": { - "latte/latte": ">=3.0.0 <3.0.12" + "latte/latte": "<3.0.12" }, "require-dev": { - "latte/latte": "^2.11 || ^3.0.12", + "latte/latte": "^3.0.12", "nette/di": "^3.1 || ^4.0", "nette/tester": "^2.4", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "psr/simple-cache": "^2.0 || ^3.0", "tracy/tracy": "^2.9" }, @@ -803,10 +813,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -838,31 +851,31 @@ ], "support": { "issues": "https://github.com/nette/caching/issues", - "source": "https://github.com/nette/caching/tree/v3.3.1" + "source": "https://github.com/nette/caching/tree/v3.4.0" }, - "time": "2024-08-07T00:01:58+00:00" + "time": "2025-08-06T23:05:08+00:00" }, { "name": "nette/component-model", - "version": "v3.1.1", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/nette/component-model.git", - "reference": "fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77" + "reference": "0d100ba05279a1f4b20acecaa617027fbda8ecb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/component-model/zipball/fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77", - "reference": "fb7608fd5f1c378ef9ef8ddc459c6ef0b63e9d77", + "url": "https://api.github.com/repos/nette/component-model/zipball/0d100ba05279a1f4b20acecaa617027fbda8ecb2", + "reference": "0d100ba05279a1f4b20acecaa617027fbda8ecb2", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "type": "library", @@ -872,6 +885,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -900,37 +916,37 @@ ], "support": { "issues": "https://github.com/nette/component-model/issues", - "source": "https://github.com/nette/component-model/tree/v3.1.1" + "source": "https://github.com/nette/component-model/tree/v3.1.3" }, - "time": "2024-08-07T00:35:59+00:00" + "time": "2025-11-22T18:56:33+00:00" }, { "name": "nette/di", - "version": "v3.2.4", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/nette/di.git", - "reference": "57f923a7af32435b6e4921c0adbc70c619625a17" + "reference": "5708c328ce7658a73c96b14dd6da7b8b27bf220f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/57f923a7af32435b6e4921c0adbc70c619625a17", - "reference": "57f923a7af32435b6e4921c0adbc70c619625a17", + "url": "https://api.github.com/repos/nette/di/zipball/5708c328ce7658a73c96b14dd6da7b8b27bf220f", + "reference": "5708c328ce7658a73c96b14dd6da7b8b27bf220f", "shasum": "" }, "require": { "ext-ctype": "*", "ext-tokenizer": "*", - "nette/neon": "^3.3 || ^4.0", + "nette/neon": "^3.3", "nette/php-generator": "^4.1.6", "nette/robot-loader": "^4.0", "nette/schema": "^1.2.5", "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5.2", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "type": "library", @@ -940,6 +956,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -973,9 +992,9 @@ ], "support": { "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.2.4" + "source": "https://github.com/nette/di/tree/v3.2.5" }, - "time": "2025-01-10T04:57:37+00:00" + "time": "2025-08-14T22:59:46+00:00" }, { "name": "nette/finder", @@ -1032,33 +1051,33 @@ }, { "name": "nette/forms", - "version": "v3.2.6", + "version": "v3.2.8", "source": { "type": "git", "url": "https://github.com/nette/forms.git", - "reference": "de4ba5ad4635ceb9aeef248f21f8b821e78d84e0" + "reference": "3bbf691ea0eb50d9594c2109d9252f267092b91f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/forms/zipball/de4ba5ad4635ceb9aeef248f21f8b821e78d84e0", - "reference": "de4ba5ad4635ceb9aeef248f21f8b821e78d84e0", + "url": "https://api.github.com/repos/nette/forms/zipball/3bbf691ea0eb50d9594c2109d9252f267092b91f", + "reference": "3bbf691ea0eb50d9594c2109d9252f267092b91f", "shasum": "" }, "require": { "nette/component-model": "^3.1", "nette/http": "^3.3", "nette/utils": "^4.0.4", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "conflict": { - "latte/latte": ">=3.0.0 <3.0.12 || >=3.1" + "latte/latte": ">=3.0.0 <3.0.12 || >=3.2" }, "require-dev": { "latte/latte": "^2.10.2 || ^3.0.12", "nette/application": "^3.0", "nette/di": "^3.0", "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^1", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -1071,6 +1090,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1103,27 +1125,27 @@ ], "support": { "issues": "https://github.com/nette/forms/issues", - "source": "https://github.com/nette/forms/tree/v3.2.6" + "source": "https://github.com/nette/forms/tree/v3.2.8" }, - "time": "2025-03-31T01:06:54+00:00" + "time": "2025-11-22T19:36:34+00:00" }, { "name": "nette/http", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/nette/http.git", - "reference": "3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1" + "reference": "c557f21c8cedd621dbfd7990752b1d55ef353f1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/http/zipball/3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1", - "reference": "3e2587b34beb66f238f119b12fbb4f0b9ab2d6d1", + "url": "https://api.github.com/repos/nette/http/zipball/c557f21c8cedd621dbfd7990752b1d55ef353f1d", + "reference": "c557f21c8cedd621dbfd7990752b1d55ef353f1d", "shasum": "" }, "require": { "nette/utils": "^4.0.4", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "conflict": { "nette/di": "<3.0.3", @@ -1133,7 +1155,7 @@ "nette/di": "^3.0", "nette/security": "^3.0", "nette/tester": "^2.4", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.8" }, "suggest": { @@ -1149,6 +1171,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1184,9 +1209,9 @@ ], "support": { "issues": "https://github.com/nette/http/issues", - "source": "https://github.com/nette/http/tree/v3.3.2" + "source": "https://github.com/nette/http/tree/v3.3.3" }, - "time": "2025-01-12T16:27:57+00:00" + "time": "2025-10-30T22:32:24+00:00" }, { "name": "nette/mail", @@ -1264,25 +1289,25 @@ }, { "name": "nette/neon", - "version": "v3.4.4", + "version": "v3.4.6", "source": { "type": "git", "url": "https://github.com/nette/neon.git", - "reference": "3411aa86b104e2d5b7e760da4600865ead963c3c" + "reference": "36e3f4f89fd8a7b89ada74c7a678baa9f7cc7719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/3411aa86b104e2d5b7e760da4600865ead963c3c", - "reference": "3411aa86b104e2d5b7e760da4600865ead963c3c", + "url": "https://api.github.com/repos/nette/neon/zipball/36e3f4f89fd8a7b89ada74c7a678baa9f7cc7719", + "reference": "36e3f4f89fd8a7b89ada74c7a678baa9f7cc7719", "shasum": "" }, "require": { "ext-json": "*", - "php": "8.0 - 8.4" + "php": "8.0 - 8.5" }, "require-dev": { "nette/tester": "^2.4", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.7" }, "bin": [ @@ -1295,6 +1320,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1316,7 +1344,7 @@ } ], "description": "🍸 Nette NEON: encodes and decodes NEON file format.", - "homepage": "https://ne-on.org", + "homepage": "https://neon.nette.org", "keywords": [ "export", "import", @@ -1326,33 +1354,33 @@ ], "support": { "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.4.4" + "source": "https://github.com/nette/neon/tree/v3.4.6" }, - "time": "2024-10-04T22:00:08+00:00" + "time": "2025-11-25T13:12:06+00:00" }, { "name": "nette/php-generator", - "version": "v4.1.8", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/nette/php-generator.git", - "reference": "42806049a7774a2bd316c958f5dcf01c6b5c56fa" + "reference": "4707546a1f11badd72f5d82af4f8a6bc64bd56ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/42806049a7774a2bd316c958f5dcf01c6b5c56fa", - "reference": "42806049a7774a2bd316c958f5dcf01c6b5c56fa", + "url": "https://api.github.com/repos/nette/php-generator/zipball/4707546a1f11badd72f5d82af4f8a6bc64bd56ac", + "reference": "4707546a1f11badd72f5d82af4f8a6bc64bd56ac", "shasum": "" }, "require": { - "nette/utils": "^3.2.9 || ^4.0", - "php": "8.0 - 8.4" + "nette/utils": "^4.0.6", + "php": "8.1 - 8.5" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", + "jetbrains/phpstorm-attributes": "^1.2", "nette/tester": "^2.4", - "nikic/php-parser": "^4.18 || ^5.0", - "phpstan/phpstan": "^1.0", + "nikic/php-parser": "^5.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.8" }, "suggest": { @@ -1361,10 +1389,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "4.2-dev" } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1385,7 +1416,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.4 features.", + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.", "homepage": "https://nette.org", "keywords": [ "code", @@ -1395,41 +1426,44 @@ ], "support": { "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v4.1.8" + "source": "https://github.com/nette/php-generator/tree/v4.2.0" }, - "time": "2025-03-31T00:29:29+00:00" + "time": "2025-08-06T18:24:31+00:00" }, { "name": "nette/robot-loader", - "version": "v4.0.3", + "version": "v4.1.0", "source": { "type": "git", "url": "https://github.com/nette/robot-loader.git", - "reference": "45d67753fb4865bb718e9a6c9be69cc9470137b7" + "reference": "805fb81376c24755d50bdb8bc69ca4db3def71d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/45d67753fb4865bb718e9a6c9be69cc9470137b7", - "reference": "45d67753fb4865bb718e9a6c9be69cc9470137b7", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/805fb81376c24755d50bdb8bc69ca4db3def71d1", + "reference": "805fb81376c24755d50bdb8bc69ca4db3def71d1", "shasum": "" }, "require": { "ext-tokenizer": "*", "nette/utils": "^4.0", - "php": "8.0 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.4", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1461,32 +1495,32 @@ ], "support": { "issues": "https://github.com/nette/robot-loader/issues", - "source": "https://github.com/nette/robot-loader/tree/v4.0.3" + "source": "https://github.com/nette/robot-loader/tree/v4.1.0" }, - "time": "2024-06-18T20:26:39+00:00" + "time": "2025-08-06T18:34:21+00:00" }, { "name": "nette/routing", - "version": "v3.1.1", + "version": "v3.1.2", "source": { "type": "git", "url": "https://github.com/nette/routing.git", - "reference": "5b0782d3b50af68614253a373fa663ed03206a3f" + "reference": "14c466f3383add0d4f78a82074d3c9841f8edf47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/routing/zipball/5b0782d3b50af68614253a373fa663ed03206a3f", - "reference": "5b0782d3b50af68614253a373fa663ed03206a3f", + "url": "https://api.github.com/repos/nette/routing/zipball/14c466f3383add0d4f78a82074d3c9841f8edf47", + "reference": "14c466f3383add0d4f78a82074d3c9841f8edf47", "shasum": "" }, "require": { "nette/http": "^3.2 || ~4.0.0", "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5", - "phpstan/phpstan": "^1", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "type": "library", @@ -1496,6 +1530,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1523,31 +1560,31 @@ ], "support": { "issues": "https://github.com/nette/routing/issues", - "source": "https://github.com/nette/routing/tree/v3.1.1" + "source": "https://github.com/nette/routing/tree/v3.1.2" }, - "time": "2024-11-04T11:59:47+00:00" + "time": "2025-10-31T00:55:27+00:00" }, { "name": "nette/schema", - "version": "v1.3.2", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -1557,6 +1594,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1585,38 +1625,38 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.2" + "source": "https://github.com/nette/schema/tree/v1.3.3" }, - "time": "2024-10-06T23:10:23+00:00" + "time": "2025-10-30T22:57:59+00:00" }, { "name": "nette/security", - "version": "v3.2.1", + "version": "v3.2.2", "source": { "type": "git", "url": "https://github.com/nette/security.git", - "reference": "6e19bf604934aec0cd3343a307e28fd997e40e96" + "reference": "beca6757457281ebc9428743bec7960809f40d49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/security/zipball/6e19bf604934aec0cd3343a307e28fd997e40e96", - "reference": "6e19bf604934aec0cd3343a307e28fd997e40e96", + "url": "https://api.github.com/repos/nette/security/zipball/beca6757457281ebc9428743bec7960809f40d49", + "reference": "beca6757457281ebc9428743bec7960809f40d49", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "conflict": { "nette/di": "<3.0-stable", "nette/http": "<3.1.3" }, "require-dev": { - "mockery/mockery": "^1.5", + "mockery/mockery": "^1.6@stable", "nette/di": "^3.1", "nette/http": "^3.2", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "type": "library", @@ -1626,6 +1666,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1656,35 +1699,35 @@ ], "support": { "issues": "https://github.com/nette/security/issues", - "source": "https://github.com/nette/security/tree/v3.2.1" + "source": "https://github.com/nette/security/tree/v3.2.2" }, - "time": "2024-11-04T12:25:05+00:00" + "time": "2025-08-01T02:15:08+00:00" }, { "name": "nette/utils", - "version": "v4.0.7", + "version": "v4.0.10", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2" + "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/e67c4061eb40b9c113b218214e42cb5a0dda28f2", - "reference": "e67c4061eb40b9c113b218214e42cb5a0dda28f2", + "url": "https://api.github.com/repos/nette/utils/zipball/2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", + "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", "shasum": "" }, "require": { - "php": "8.0 - 8.4" + "php": "8.0 - 8.5" }, "conflict": { "nette/finder": "<3", "nette/schema": "<1.2.2" }, "require-dev": { - "jetbrains/phpstorm-attributes": "dev-master", + "jetbrains/phpstorm-attributes": "^1.2", "nette/tester": "^2.5", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -1702,6 +1745,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1742,22 +1788,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.7" + "source": "https://github.com/nette/utils/tree/v4.0.10" }, - "time": "2025-06-03T04:55:08+00:00" + "time": "2025-12-01T17:30:42+00:00" }, { "name": "nextras/dbal", - "version": "v5.0.2", + "version": "v5.0.7", "source": { "type": "git", "url": "https://github.com/nextras/dbal.git", - "reference": "d26147e8496c234fc9a1e552294a5d783905991c" + "reference": "eeea004568c4fc8304cbf5e0444bb700225cfb37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextras/dbal/zipball/d26147e8496c234fc9a1e552294a5d783905991c", - "reference": "d26147e8496c234fc9a1e552294a5d783905991c", + "url": "https://api.github.com/repos/nextras/dbal/zipball/eeea004568c4fc8304cbf5e0444bb700225cfb37", + "reference": "eeea004568c4fc8304cbf5e0444bb700225cfb37", "shasum": "" }, "require": { @@ -1765,21 +1811,20 @@ "php": ">=8.1" }, "require-dev": { - "mockery/mockery": "~1.5", - "nette/caching": "~3.0", - "nette/di": "~3.0", - "nette/finder": "~2.5 || ~3.0", - "nette/neon": "~3.0", - "nette/tester": "~2.4", - "nette/utils": "~3.0 || ~4.0", + "mockery/mockery": "~1.6.12", + "nette/caching": "~3.1", + "nette/di": "~3.1", + "nette/neon": "~3.1", + "nette/tester": "dev-master", + "nette/utils": "~3.1 || ~4.0", "nextras/multi-query-parser": "~1.0", "phpstan/extension-installer": "1.4.3", - "phpstan/phpstan": "2.1.16", + "phpstan/phpstan": "2.1.31", "phpstan/phpstan-deprecation-rules": "2.0.3", - "phpstan/phpstan-strict-rules": "2.0.4", - "symfony/config": "~4.4 || ~5.0", - "symfony/dependency-injection": "~4.4 || ~5.0", - "symfony/http-kernel": "~4.4 || ~5.0", + "phpstan/phpstan-strict-rules": "2.0.7", + "symfony/config": "~5.4 || ~6.0 || ~7.0", + "symfony/dependency-injection": "~5.4 || ~6.0 || ~7.0", + "symfony/http-kernel": "~5.4 || ~6.0 || ~7.0", "tracy/tracy": "~2.7" }, "suggest": { @@ -1815,7 +1860,7 @@ ], "support": { "issues": "https://github.com/nextras/dbal/issues", - "source": "https://github.com/nextras/dbal/tree/v5.0.2" + "source": "https://github.com/nextras/dbal/tree/v5.0.7" }, "funding": [ { @@ -1823,7 +1868,7 @@ "type": "github" } ], - "time": "2025-06-07T19:13:08+00:00" + "time": "2025-11-08T13:56:19+00:00" }, { "name": "nextras/form-components", @@ -1894,16 +1939,16 @@ }, { "name": "nextras/forms-rendering", - "version": "v2.0.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/nextras/forms-rendering.git", - "reference": "ec07cdf772b4c041e80c16a9fc42c6dc31ebaabc" + "reference": "74270916f323097b2cad7f54d2d3206da3cf43f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextras/forms-rendering/zipball/ec07cdf772b4c041e80c16a9fc42c6dc31ebaabc", - "reference": "ec07cdf772b4c041e80c16a9fc42c6dc31ebaabc", + "url": "https://api.github.com/repos/nextras/forms-rendering/zipball/74270916f323097b2cad7f54d2d3206da3cf43f9", + "reference": "74270916f323097b2cad7f54d2d3206da3cf43f9", "shasum": "" }, "require": { @@ -1951,9 +1996,9 @@ ], "support": { "issues": "https://github.com/nextras/forms-rendering/issues", - "source": "https://github.com/nextras/forms-rendering/tree/v2.0.0" + "source": "https://github.com/nextras/forms-rendering/tree/v2.0.1" }, - "time": "2025-02-09T11:47:51+00:00" + "time": "2025-09-06T12:50:49+00:00" }, { "name": "nextras/orm", @@ -2119,16 +2164,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.1.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "shasum": "" }, "require": { @@ -2160,9 +2205,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" }, - "time": "2025-02-19T13:28:12+00:00" + "time": "2025-08-30T15:50:23+00:00" }, { "name": "rikudou/iban", @@ -2226,16 +2271,16 @@ }, { "name": "sabberworm/php-css-parser", - "version": "v8.8.0", + "version": "v8.9.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "3de493bdddfd1f051249af725c7e0d2c38fed740" + "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/3de493bdddfd1f051249af725c7e0d2c38fed740", - "reference": "3de493bdddfd1f051249af725c7e0d2c38fed740", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d8e916507b88e389e26d4ab03c904a082aa66bb9", + "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9", "shasum": "" }, "require": { @@ -2243,7 +2288,8 @@ "php": "^5.6.20 || ^7.0.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41" + "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41", + "rawr/cross-data-providers": "^2.0.0" }, "suggest": { "ext-mbstring": "for parsing UTF-8 CSS" @@ -2285,22 +2331,22 @@ ], "support": { "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.8.0" + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.9.0" }, - "time": "2025-03-23T17:59:05+00:00" + "time": "2025-07-11T13:20:48+00:00" }, { "name": "symfony/asset", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b" + "reference": "0f7bccb9ffa1f373cbd659774d90629b2773464f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/56c4d9f759247c4e07d8549e3baf7493cb9c3e4b", - "reference": "56c4d9f759247c4e07d8549e3baf7493cb9c3e4b", + "url": "https://api.github.com/repos/symfony/asset/zipball/0f7bccb9ffa1f373cbd659774d90629b2773464f", + "reference": "0f7bccb9ffa1f373cbd659774d90629b2773464f", "shasum": "" }, "require": { @@ -2310,9 +2356,9 @@ "symfony/http-foundation": "<6.4" }, "require-dev": { - "symfony/http-client": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0" + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2340,7 +2386,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/v7.3.0" + "source": "https://github.com/symfony/asset/tree/v7.4.0" }, "funding": [ { @@ -2351,31 +2397,35 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-03-05T10:15:41+00:00" + "time": "2025-08-04T07:05:15+00:00" }, { "name": "symfony/config", - "version": "v7.3.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "ba62ae565f1327c2f6366726312ed828c85853bc" + "reference": "2c323304c354a43a48b61c5fa760fc4ed60ce495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/ba62ae565f1327c2f6366726312ed828c85853bc", - "reference": "ba62ae565f1327c2f6366726312ed828c85853bc", + "url": "https://api.github.com/repos/symfony/config/zipball/2c323304c354a43a48b61c5fa760fc4ed60ce495", + "reference": "2c323304c354a43a48b61c5fa760fc4ed60ce495", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^7.1", + "symfony/filesystem": "^7.1|^8.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -2383,11 +2433,11 @@ "symfony/service-contracts": "<2.5" }, "require-dev": { - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2415,7 +2465,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.3.0" + "source": "https://github.com/symfony/config/tree/v7.4.1" }, "funding": [ { @@ -2426,25 +2476,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-15T09:04:05+00:00" + "time": "2025-12-05T07:52:08+00:00" }, { "name": "symfony/css-selector", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", - "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "shasum": "" }, "require": { @@ -2480,7 +2534,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.3.0" + "source": "https://github.com/symfony/css-selector/tree/v7.4.0" }, "funding": [ { @@ -2491,12 +2545,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2567,16 +2625,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" + "reference": "d551b38811096d0be9c4691d406991b47c0c630a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", - "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", + "reference": "d551b38811096d0be9c4691d406991b47c0c630a", "shasum": "" }, "require": { @@ -2585,7 +2643,7 @@ "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^6.4|^7.0" + "symfony/process": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2613,7 +2671,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.3.0" + "source": "https://github.com/symfony/filesystem/tree/v7.4.0" }, "funding": [ { @@ -2624,16 +2682,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:15:23+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2692,7 +2754,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -2703,6 +2765,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2712,7 +2778,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2773,7 +2839,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -2784,6 +2850,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2793,23 +2863,23 @@ }, { "name": "symfony/translation", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "4aba29076a29a3aa667e09b791e5f868973a8667" + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/4aba29076a29a3aa667e09b791e5f868973a8667", - "reference": "4aba29076a29a3aa667e09b791e5f868973a8667", + "url": "https://api.github.com/repos/symfony/translation/zipball/2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/translation-contracts": "^2.5.3|^3.3" }, "conflict": { "nikic/php-parser": "<5.0", @@ -2828,17 +2898,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "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/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -2869,7 +2939,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.0" + "source": "https://github.com/symfony/translation/tree/v7.4.0" }, "funding": [ { @@ -2880,25 +2950,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-29T07:19:49+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -2947,7 +3021,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -2958,31 +3032,35 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-27T08:32:26+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "tracy/tracy", - "version": "v2.10.10", + "version": "v2.11.0", "source": { "type": "git", "url": "https://github.com/nette/tracy.git", - "reference": "32303e02c222eea8571402a8310fc3fe70422c37" + "reference": "eec57bcf2ff11d79f519a19da9d7ae1e2c63c42e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/tracy/zipball/32303e02c222eea8571402a8310fc3fe70422c37", - "reference": "32303e02c222eea8571402a8310fc3fe70422c37", + "url": "https://api.github.com/repos/nette/tracy/zipball/eec57bcf2ff11d79f519a19da9d7ae1e2c63c42e", + "reference": "eec57bcf2ff11d79f519a19da9d7ae1e2c63c42e", "shasum": "" }, "require": { "ext-json": "*", "ext-session": "*", - "php": "8.0 - 8.4" + "php": "8.2 - 8.5" }, "conflict": { "nette/di": "<3.0" @@ -2994,19 +3072,22 @@ "nette/mail": "^3.0 || ^4.0", "nette/tester": "^2.2", "nette/utils": "^3.0 || ^4.0", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "psr/log": "^1.0 || ^2.0 || ^3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.10-dev" + "dev-master": "2.11-dev" } }, "autoload": { "files": [ "src/Tracy/functions.php" ], + "psr-4": { + "Tracy\\": "src" + }, "classmap": [ "src" ] @@ -3036,9 +3117,9 @@ ], "support": { "issues": "https://github.com/nette/tracy/issues", - "source": "https://github.com/nette/tracy/tree/v2.10.10" + "source": "https://github.com/nette/tracy/tree/v2.11.0" }, - "time": "2025-04-28T14:35:15+00:00" + "time": "2025-10-31T00:12:50+00:00" } ], "packages-dev": [ @@ -3187,16 +3268,16 @@ }, { "name": "composer/semver", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", - "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", "shasum": "" }, "require": { @@ -3248,7 +3329,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.3" + "source": "https://github.com/composer/semver/tree/3.4.4" }, "funding": [ { @@ -3258,13 +3339,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-09-19T14:15:21+00:00" + "time": "2025-08-20T19:15:30+00:00" }, { "name": "composer/xdebug-handler", @@ -3381,16 +3458,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "8520451a140d3f46ac33042715115e290cf5785f" + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", - "reference": "8520451a140d3f46ac33042715115e290cf5785f", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", "shasum": "" }, "require": { @@ -3400,10 +3477,10 @@ "fidry/makefile": "^0.2.0", "fidry/php-cs-fixer-config": "^1.1.2", "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^1.9.2", - "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpstan/phpstan-strict-rules": "^1.4.4", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^8.5.31 || ^9.5.26", "webmozarts/strict-phpunit": "^7.5" }, @@ -3430,7 +3507,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" }, "funding": [ { @@ -3438,62 +3515,61 @@ "type": "github" } ], - "time": "2024-08-06T10:04:20+00:00" + "time": "2025-08-14T07:29:31+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.75.0", + "version": "v3.92.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "399a128ff2fdaf4281e4e79b755693286cdf325c" + "reference": "5646c2cd99b7cb4b658ff681fe27069ba86c7280" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/399a128ff2fdaf4281e4e79b755693286cdf325c", - "reference": "399a128ff2fdaf4281e4e79b755693286cdf325c", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/5646c2cd99b7cb4b658ff681fe27069ba86c7280", + "reference": "5646c2cd99b7cb4b658ff681fe27069ba86c7280", "shasum": "" }, "require": { - "clue/ndjson-react": "^1.0", + "clue/ndjson-react": "^1.3", "composer/semver": "^3.4", - "composer/xdebug-handler": "^3.0.3", + "composer/xdebug-handler": "^3.0.5", "ext-filter": "*", "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", - "fidry/cpu-core-counter": "^1.2", + "fidry/cpu-core-counter": "^1.3", "php": "^7.4 || ^8.0", - "react/child-process": "^0.6.5", - "react/event-loop": "^1.0", - "react/promise": "^2.0 || ^3.0", - "react/socket": "^1.0", - "react/stream": "^1.0", - "sebastian/diff": "^4.0 || ^5.1 || ^6.0 || ^7.0", - "symfony/console": "^5.4 || ^6.4 || ^7.0", - "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.4 || ^7.0", - "symfony/finder": "^5.4 || ^6.4 || ^7.0", - "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0", - "symfony/polyfill-mbstring": "^1.31", - "symfony/polyfill-php80": "^1.31", - "symfony/polyfill-php81": "^1.31", - "symfony/process": "^5.4 || ^6.4 || ^7.2", - "symfony/stopwatch": "^5.4 || ^6.4 || ^7.0" + "react/child-process": "^0.6.6", + "react/event-loop": "^1.5", + "react/socket": "^1.16", + "react/stream": "^1.4", + "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0", + "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0", + "symfony/polyfill-mbstring": "^1.33", + "symfony/polyfill-php80": "^1.33", + "symfony/polyfill-php81": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2 || ^8.0", + "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0" }, "require-dev": { - "facile-it/paraunit": "^1.3.1 || ^2.6", - "infection/infection": "^0.29.14", - "justinrainbow/json-schema": "^5.3 || ^6.2", - "keradus/cli-executor": "^2.1", + "facile-it/paraunit": "^1.3.1 || ^2.7", + "infection/infection": "^0.31.0", + "justinrainbow/json-schema": "^6.5", + "keradus/cli-executor": "^2.2", "mikey179/vfsstream": "^1.6.12", - "php-coveralls/php-coveralls": "^2.7", - "php-cs-fixer/accessible-object": "^1.1", + "php-coveralls/php-coveralls": "^2.9", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", - "phpunit/phpunit": "^9.6.22 || ^10.5.45 || ^11.5.12", - "symfony/var-dumper": "^5.4.48 || ^6.4.18 || ^7.2.3", - "symfony/yaml": "^5.4.45 || ^6.4.18 || ^7.2.3" + "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", + "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2 || ^8.0", + "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2 || ^8.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -3508,7 +3584,7 @@ "PhpCsFixer\\": "src/" }, "exclude-from-classmap": [ - "src/Fixer/Internal/*" + "src/**/Internal/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3534,7 +3610,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.75.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.92.0" }, "funding": [ { @@ -3542,28 +3618,28 @@ "type": "github" } ], - "time": "2025-03-31T18:40:42+00:00" + "time": "2025-12-12T10:29:19+00:00" }, { "name": "nette/tester", - "version": "v2.5.4", + "version": "v2.5.7", "source": { "type": "git", "url": "https://github.com/nette/tester.git", - "reference": "c11863785779e87b40adebf150364f2e5938c111" + "reference": "dc02e7811f3491a72e87538044586cee2f483d58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/tester/zipball/c11863785779e87b40adebf150364f2e5938c111", - "reference": "c11863785779e87b40adebf150364f2e5938c111", + "url": "https://api.github.com/repos/nette/tester/zipball/dc02e7811f3491a72e87538044586cee2f483d58", + "reference": "dc02e7811f3491a72e87538044586cee2f483d58", "shasum": "" }, "require": { - "php": "8.0 - 8.4" + "php": "8.0 - 8.5" }, "require-dev": { "ext-simplexml": "*", - "phpstan/phpstan": "^1.0" + "phpstan/phpstan-nette": "^2.0@stable" }, "bin": [ "src/tester" @@ -3575,6 +3651,9 @@ } }, "autoload": { + "psr-4": { + "Tester\\": "src" + }, "classmap": [ "src/" ] @@ -3615,9 +3694,9 @@ ], "support": { "issues": "https://github.com/nette/tester/issues", - "source": "https://github.com/nette/tester/tree/v2.5.4" + "source": "https://github.com/nette/tester/tree/v2.5.7" }, - "time": "2024-10-23T23:57:10+00:00" + "time": "2025-11-22T18:50:53+00:00" }, { "name": "nextras/mail-panel", @@ -3808,16 +3887,11 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.27", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162" - }, + "version": "1.12.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", + "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", "shasum": "" }, "require": { @@ -3862,7 +3936,7 @@ "type": "github" } ], - "time": "2025-05-21T20:51:45+00:00" + "time": "2025-09-30T10:16:31+00:00" }, { "name": "phpstan/phpstan-nette", @@ -4227,16 +4301,16 @@ }, { "name": "react/dns", - "version": "v1.13.0", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/reactphp/dns.git", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", - "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", "shasum": "" }, "require": { @@ -4291,7 +4365,7 @@ ], "support": { "issues": "https://github.com/reactphp/dns/issues", - "source": "https://github.com/reactphp/dns/tree/v1.13.0" + "source": "https://github.com/reactphp/dns/tree/v1.14.0" }, "funding": [ { @@ -4299,20 +4373,20 @@ "type": "open_collective" } ], - "time": "2024-06-13T14:18:03+00:00" + "time": "2025-11-18T19:34:28+00:00" }, { "name": "react/event-loop", - "version": "v1.5.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/reactphp/event-loop.git", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", - "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a", "shasum": "" }, "require": { @@ -4363,7 +4437,7 @@ ], "support": { "issues": "https://github.com/reactphp/event-loop/issues", - "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" + "source": "https://github.com/reactphp/event-loop/tree/v1.6.0" }, "funding": [ { @@ -4371,27 +4445,27 @@ "type": "open_collective" } ], - "time": "2023-11-13T13:48:05+00:00" + "time": "2025-11-17T20:46:25+00:00" }, { "name": "react/promise", - "version": "v3.2.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { "php": ">=7.1.0" }, "require-dev": { - "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpstan/phpstan": "1.12.28 || 1.4.10", "phpunit/phpunit": "^9.6 || ^7.5" }, "type": "library", @@ -4436,7 +4510,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.2.0" + "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { @@ -4444,20 +4518,20 @@ "type": "open_collective" } ], - "time": "2024-05-24T10:39:05+00:00" + "time": "2025-08-19T18:57:03+00:00" }, { "name": "react/socket", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", - "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", "shasum": "" }, "require": { @@ -4516,7 +4590,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.16.0" + "source": "https://github.com/reactphp/socket/tree/v1.17.0" }, "funding": [ { @@ -4524,7 +4598,7 @@ "type": "open_collective" } ], - "time": "2024-07-26T10:38:09+00:00" + "time": "2025-11-19T20:47:34+00:00" }, { "name": "react/stream", @@ -4673,16 +4747,16 @@ }, { "name": "symfony/console", - "version": "v7.3.0", + "version": "v7.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44" + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/66c1440edf6f339fd82ed6c7caa76cb006211b44", - "reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44", + "url": "https://api.github.com/repos/symfony/console/zipball/6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", + "reference": "6d9f0fbf2ec2e9785880096e3abd0ca0c88b506e", "shasum": "" }, "require": { @@ -4690,7 +4764,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" + "symfony/string": "^7.2|^8.0" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -4704,16 +4778,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4747,7 +4821,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.0" + "source": "https://github.com/symfony/console/tree/v7.4.1" }, "funding": [ { @@ -4758,25 +4832,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-24T10:34:04+00:00" + "time": "2025-12-05T15:23:39+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9dddcddff1ef974ad87b3708e4b442dc38b2261d", + "reference": "9dddcddff1ef974ad87b3708e4b442dc38b2261d", "shasum": "" }, "require": { @@ -4793,13 +4871,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "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/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/framework-bundle": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4827,7 +4906,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/v7.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.0" }, "funding": [ { @@ -4838,12 +4917,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-22T09:11:45+00:00" + "time": "2025-10-28T09:38:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4923,23 +5006,23 @@ }, { "name": "symfony/finder", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d" + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ec2344cf77a48253bbca6939aa3d2477773ea63d", - "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d", + "url": "https://api.github.com/repos/symfony/finder/zipball/340b9ed7320570f319028a2cbec46d40535e94bd", + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -4967,7 +5050,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.0" + "source": "https://github.com/symfony/finder/tree/v7.4.0" }, "funding": [ { @@ -4978,25 +5061,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-12-30T19:00:26+00:00" + "time": "2025-11-05T05:42:40+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "afb9a8038025e5dbc657378bfab9198d75f10fca" + "reference": "b38026df55197f9e39a44f3215788edf83187b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/afb9a8038025e5dbc657378bfab9198d75f10fca", - "reference": "afb9a8038025e5dbc657378bfab9198d75f10fca", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b38026df55197f9e39a44f3215788edf83187b80", + "reference": "b38026df55197f9e39a44f3215788edf83187b80", "shasum": "" }, "require": { @@ -5034,7 +5121,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.3.0" + "source": "https://github.com/symfony/options-resolver/tree/v7.4.0" }, "funding": [ { @@ -5045,25 +5132,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-04T13:12:05+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -5112,7 +5203,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -5123,16 +5214,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -5193,7 +5288,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -5204,6 +5299,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5213,7 +5312,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -5273,7 +5372,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -5284,6 +5383,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5293,7 +5396,7 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -5349,7 +5452,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0" }, "funding": [ { @@ -5360,6 +5463,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5367,18 +5474,98 @@ ], "time": "2024-09-09T11:45:10+00:00" }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-24T13:30:11+00:00" + }, { "name": "symfony/process", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af" + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", + "url": "https://api.github.com/repos/symfony/process/zipball/7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", "shasum": "" }, "require": { @@ -5410,7 +5597,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.0" + "source": "https://github.com/symfony/process/tree/v7.4.0" }, "funding": [ { @@ -5421,25 +5608,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-17T09:11:12+00:00" + "time": "2025-10-16T11:21:06+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -5493,7 +5684,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -5504,25 +5695,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-25T09:37:31+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" + "reference": "8a24af0a2e8a872fb745047180649b8418303084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8a24af0a2e8a872fb745047180649b8418303084", + "reference": "8a24af0a2e8a872fb745047180649b8418303084", "shasum": "" }, "require": { @@ -5555,7 +5750,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.4.0" }, "funding": [ { @@ -5566,31 +5761,36 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-02-24T10:49:57+00:00" + "time": "2025-08-04T07:05:15+00:00" }, { "name": "symfony/string", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125" + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f3570b8c61ca887a9e2938e85cb6458515d2b125", - "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125", + "url": "https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003", + "reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-grapheme": "~1.33", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -5598,12 +5798,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.1|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5642,7 +5841,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.0" + "source": "https://github.com/symfony/string/tree/v7.4.0" }, "funding": [ { @@ -5653,12 +5852,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-20T20:19:01+00:00" + "time": "2025-11-27T13:27:24+00:00" } ], "aliases": [], From 53918a3b205641c74ed364129f64f6b8ceab4042 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 15:42:03 +0100 Subject: [PATCH 08/11] composer: Update nette/mail to 4.0 Changelogs summary: - nette/utils updated from v4.0.10 to v4.1.0 minor See changes: https://github.com/nette/utils/compare/v4.0.10...v4.1.0 Release notes: https://github.com/nette/utils/releases/tag/v4.1.0 - nette/mail updated from v3.1.11 to v4.0.4 major See changes: https://github.com/nette/mail/compare/v3.1.11...v4.0.4 Release notes: https://github.com/nette/mail/releases/tag/v4.0.4 - contributte/mail updated from v0.7.2 to v0.8.0 minor See changes: https://github.com/contributte/mail/compare/v0.7.2...v0.8.0 Release notes: https://github.com/contributte/mail/releases/tag/v0.8.0 --- composer.json | 4 +-- composer.lock | 83 +++++++++++++++++++++++++-------------------------- 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/composer.json b/composer.json index d6cb363..37c75a1 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "ext-intl": "*", "68publishers/asset": "^3.3", "bacon/bacon-qr-code": "^3.0", - "contributte/mail": "^0.7.0", + "contributte/mail": "^0.8.0", "contributte/translation": "^2.0", "kdyby/forms-replicator": "^3.0", "latte/latte": "~3.0", @@ -27,7 +27,7 @@ "nette/di": "~3.0", "nette/forms": "^3.0", "nette/http": "~3.0", - "nette/mail": "~3.0", + "nette/mail": "~4.0", "nette/schema": "^1.2", "nette/security": "~3.0", "nette/utils": "~4.0", diff --git a/composer.lock b/composer.lock index dbc5d06..851025c 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": "fc3158d93b992dacd18e43f93296a615", + "content-hash": "306f69ee9df7fb15363eda6ba90c64c2", "packages": [ { "name": "68publishers/asset", @@ -124,32 +124,29 @@ }, { "name": "contributte/mail", - "version": "v0.7.2", + "version": "v0.8.0", "source": { "type": "git", "url": "https://github.com/contributte/mail.git", - "reference": "e3a1834ab8f95743c42de866a846ec6f76faf5ab" + "reference": "7a1a4cd9e30aecaeb6968ecc936b8c73f4e89c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/contributte/mail/zipball/e3a1834ab8f95743c42de866a846ec6f76faf5ab", - "reference": "e3a1834ab8f95743c42de866a846ec6f76faf5ab", + "url": "https://api.github.com/repos/contributte/mail/zipball/7a1a4cd9e30aecaeb6968ecc936b8c73f4e89c17", + "reference": "7a1a4cd9e30aecaeb6968ecc936b8c73f4e89c17", "shasum": "" }, "require": { - "nette/mail": "^3.1.0 || ^4.0.0", - "nette/utils": "^3.2.9 || ^4.0.0", - "php": ">=8.0" + "nette/mail": "^4.0.2", + "nette/utils": "^4.0.3", + "php": ">=8.1" }, "require-dev": { - "contributte/qa": "^0.4.0", - "contributte/tester": "^0.2.0", - "mockery/mockery": "^1.5.1", + "contributte/phpstan": "^0.1", + "contributte/qa": "^0.4", + "contributte/tester": "^0.4", + "mockery/mockery": "^1.6.6", "nette/di": "^3.1.2", - "phpstan/phpstan": "^1.10.11", - "phpstan/phpstan-deprecation-rules": "^1.1.3", - "phpstan/phpstan-nette": "^1.2.4", - "phpstan/phpstan-strict-rules": "^1.5.1", "tracy/tracy": "^2.10.2" }, "suggest": { @@ -158,7 +155,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.7.x-dev" + "dev-master": "0.9.x-dev" } }, "autoload": { @@ -185,7 +182,7 @@ ], "support": { "issues": "https://github.com/contributte/mail/issues", - "source": "https://github.com/contributte/mail/tree/v0.7.2" + "source": "https://github.com/contributte/mail/tree/v0.8.0" }, "funding": [ { @@ -197,7 +194,7 @@ "type": "github" } ], - "time": "2023-12-01T16:45:50+00:00" + "time": "2023-12-01T16:50:26+00:00" }, { "name": "contributte/translation", @@ -1215,31 +1212,28 @@ }, { "name": "nette/mail", - "version": "v3.1.11", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/mail.git", - "reference": "804d70278458452863a2d6be4c1d5bf5f91b3950" + "reference": "5f16f76ed14a32f34580811d1a07ac357352bbc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/mail/zipball/804d70278458452863a2d6be4c1d5bf5f91b3950", - "reference": "804d70278458452863a2d6be4c1d5bf5f91b3950", + "url": "https://api.github.com/repos/nette/mail/zipball/5f16f76ed14a32f34580811d1a07ac357352bbc4", + "reference": "5f16f76ed14a32f34580811d1a07ac357352bbc4", "shasum": "" }, "require": { "ext-iconv": "*", - "nette/utils": "^3.1 || ~4.0.0", - "php": "7.1 - 8.3" - }, - "conflict": { - "nette/di": "<3.0-stable" + "nette/utils": "^4.0", + "php": "8.0 - 8.5" }, "require-dev": { - "nette/di": "^3.0.0", - "nette/tester": "^2.0", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.4" + "nette/di": "^3.1 || ^4.0", + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^2.0@stable", + "tracy/tracy": "^2.8" }, "suggest": { "ext-fileinfo": "to detect type of attached files", @@ -1248,10 +1242,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -1272,7 +1269,7 @@ "homepage": "https://nette.org/contributors" } ], - "description": "📧 Nette Mail: handy email creation and transfer library for PHP with both text and MIME-compliant support.", + "description": "📧 Nette Mail: A handy library for creating and sending emails in PHP.", "homepage": "https://nette.org", "keywords": [ "mail", @@ -1283,9 +1280,9 @@ ], "support": { "issues": "https://github.com/nette/mail/issues", - "source": "https://github.com/nette/mail/tree/v3.1.11" + "source": "https://github.com/nette/mail/tree/v4.0.4" }, - "time": "2023-11-02T23:18:58+00:00" + "time": "2025-08-01T02:09:42+00:00" }, { "name": "nette/neon", @@ -1705,20 +1702,20 @@ }, { "name": "nette/utils", - "version": "v4.0.10", + "version": "v4.1.0", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3" + "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", - "reference": "2778deb6aab136c8db4ed1f4d6e9f465ca2dbee3", + "url": "https://api.github.com/repos/nette/utils/zipball/fa1f0b8261ed150447979eb22e373b7b7ad5a8e0", + "reference": "fa1f0b8261ed150447979eb22e373b7b7ad5a8e0", "shasum": "" }, "require": { - "php": "8.0 - 8.5" + "php": "8.2 - 8.5" }, "conflict": { "nette/finder": "<3", @@ -1741,7 +1738,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -1788,9 +1785,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.10" + "source": "https://github.com/nette/utils/tree/v4.1.0" }, - "time": "2025-12-01T17:30:42+00:00" + "time": "2025-12-01T17:49:23+00:00" }, { "name": "nextras/dbal", From 25644ce516a5317ac1646ac4f45e1beeba633ce5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 15:52:49 +0100 Subject: [PATCH 09/11] composer: Update emogrifier to 8.2 Changelogs summary: - thecodingmachine/safe installed in version v3.3.0 Release notes: https://github.com/thecodingmachine/safe/releases/tag/v3.3.0 - sabberworm/php-css-parser updated from v8.9.0 to v9.1.0 major See changes: https://github.com/MyIntervals/PHP-CSS-Parser/compare/v8.9.0...v9.1.0 Release notes: https://github.com/MyIntervals/PHP-CSS-Parser/releases/tag/v9.1.0 - pelago/emogrifier updated from v7.3.0 to v8.2.0 major See changes: https://github.com/MyIntervals/emogrifier/compare/v7.3.0...v8.2.0 Release notes: https://github.com/MyIntervals/emogrifier/releases/tag/v8.2.0 - `CssInliner::fromHtml()` expects `non-empty-string` https://github.com/MyIntervals/emogrifier/commit/4fa4bb8e889141896425ac6d5292660eb654ea33 It threw an exception from the start: https://github.com/MyIntervals/emogrifier/commit/81bc750d6e6c86e5d0338718a1d47178cb8ff5ca --- app/Helpers/EmailFactory.php | 3 + app/Presenters/CommunicationPresenter.php | 6 +- app/Presenters/TeamPresenter.php | 4 +- composer.json | 2 +- composer.lock | 203 +++++++++++++++++++--- 5 files changed, 190 insertions(+), 28 deletions(-) diff --git a/app/Helpers/EmailFactory.php b/app/Helpers/EmailFactory.php index d458fda..d4e124c 100644 --- a/app/Helpers/EmailFactory.php +++ b/app/Helpers/EmailFactory.php @@ -17,6 +17,9 @@ public function __construct( ) { } + /** + * @param non-empty-string $mailHtml + */ public function create(string $mailHtml): string { $css = @file_get_contents($this->appDir . '/Presenters/templates/Mail/style.css'); \assert($css !== false, 'E-mail stylesheet must be readable'); diff --git a/app/Presenters/CommunicationPresenter.php b/app/Presenters/CommunicationPresenter.php index e9d990b..a787c7a 100644 --- a/app/Presenters/CommunicationPresenter.php +++ b/app/Presenters/CommunicationPresenter.php @@ -313,6 +313,8 @@ private function _renderMessageBody(Team $team, string $subject, string $grant, ), ); + \assert($messageHtml !== ''); + // Inline styles into the e-mail $messageHtml = $this->emailFactory->create($messageHtml); @@ -396,7 +398,9 @@ public function actionSend(): void { foreach ($messages as $message) { // Inline styles into the e-mail - $mailHtml = $this->emailFactory->create($message->body); + $mailHtml = $message->body; + \assert($mailHtml !== ''); + $mailHtml = $this->emailFactory->create($mailHtml); $mail = new Nette\Mail\Message(); $firstMemberAddress = iterator_to_array($message->team->persons)[0]->email; diff --git a/app/Presenters/TeamPresenter.php b/app/Presenters/TeamPresenter.php index 549cbb3..45e6ce3 100644 --- a/app/Presenters/TeamPresenter.php +++ b/app/Presenters/TeamPresenter.php @@ -691,7 +691,9 @@ private function processTeamForm(Controls\SubmitButton $button): void { ) : null; // Inline styles into the e-mail - $mailHtml = $this->emailFactory->create((string) $mtemplate); + $mailHtml = (string) $mtemplate; + \assert($mailHtml !== ''); + $mailHtml = $this->emailFactory->create($mailHtml); $mail = new Message(); $mail diff --git a/composer.json b/composer.json index 37c75a1..cff6a5b 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "nextras/form-components": "^2.0", "nextras/forms-rendering": "^2.0", "nextras/orm": "^5.0", - "pelago/emogrifier": "^7.0", + "pelago/emogrifier": "^8.2", "rikudou/iban": "^1.3", "tracy/tracy": "~2.6" }, diff --git a/composer.lock b/composer.lock index 851025c..520ce06 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": "306f69ee9df7fb15363eda6ba90c64c2", + "content-hash": "1021a86085dd46d8374d103e90549e3e", "packages": [ { "name": "68publishers/asset", @@ -2079,38 +2079,44 @@ }, { "name": "pelago/emogrifier", - "version": "v7.3.0", + "version": "v8.2.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/emogrifier.git", - "reference": "6e00d9d8235e8cc8eec857e8dcd6cfeefdfd0cd6" + "reference": "3548212a1b4232a4a6ad344992f551725b3de295" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/6e00d9d8235e8cc8eec857e8dcd6cfeefdfd0cd6", - "reference": "6e00d9d8235e8cc8eec857e8dcd6cfeefdfd0cd6", + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/3548212a1b4232a4a6ad344992f551725b3de295", + "reference": "3548212a1b4232a4a6ad344992f551725b3de295", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", - "php": "~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", - "sabberworm/php-css-parser": "^8.7.0", - "symfony/css-selector": "^4.4.23 || ^5.4.0 || ^6.0.0 || ^7.0.0" + "php": "~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "sabberworm/php-css-parser": "^9.1.0", + "symfony/css-selector": "^5.4.35 || ~6.3.12 || ^6.4.3 || ^7.0.3 || ^8.0.0", + "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.3" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpmd/phpmd": "2.15.0", "phpstan/extension-installer": "1.4.3", - "phpstan/phpstan": "1.12.7", - "phpstan/phpstan-phpunit": "1.4.0", - "phpstan/phpstan-strict-rules": "1.6.1", - "phpunit/phpunit": "9.6.21", - "rawr/cross-data-providers": "2.4.0" + "phpstan/phpstan": "1.12.32 || 2.1.31", + "phpstan/phpstan-phpunit": "1.4.2 || 2.0.7", + "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.7", + "phpunit/phpunit": "9.6.29", + "rawr/phpunit-data-provider": "3.3.1", + "rector/rector": "1.2.10 || 2.2.2", + "rector/type-perfect": "1.0.0 || 2.1.0", + "squizlabs/php_codesniffer": "4.0.1", + "thecodingmachine/phpstan-safe-rule": "1.2.0 || 1.4.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "8.0.x-dev" + "dev-main": "8.3.x-dev" } }, "autoload": { @@ -2157,7 +2163,7 @@ "issues": "https://github.com/MyIntervals/emogrifier/issues", "source": "https://github.com/MyIntervals/emogrifier" }, - "time": "2024-10-28T16:12:26+00:00" + "time": "2025-11-27T21:56:48+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -2268,25 +2274,33 @@ }, { "name": "sabberworm/php-css-parser", - "version": "v8.9.0", + "version": "v9.1.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9" + "reference": "1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d8e916507b88e389e26d4ab03c904a082aa66bb9", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb", + "reference": "1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb", "shasum": "" }, "require": { "ext-iconv": "*", - "php": "^5.6.20 || ^7.0.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.3" }, "require-dev": { - "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41", - "rawr/cross-data-providers": "^2.0.0" + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/extension-installer": "1.4.3", + "phpstan/phpstan": "1.12.28 || 2.1.25", + "phpstan/phpstan-phpunit": "1.4.2 || 2.0.7", + "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.6", + "phpunit/phpunit": "8.5.46", + "rawr/phpunit-data-provider": "3.3.1", + "rector/rector": "1.2.10 || 2.1.7", + "rector/type-perfect": "1.0.0 || 2.1.0" }, "suggest": { "ext-mbstring": "for parsing UTF-8 CSS" @@ -2294,7 +2308,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "9.0.x-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -2328,9 +2342,9 @@ ], "support": { "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.9.0" + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.1.0" }, - "time": "2025-07-11T13:20:48+00:00" + "time": "2025-09-14T07:37:21+00:00" }, { "name": "symfony/asset", @@ -3040,6 +3054,145 @@ ], "time": "2025-07-15T13:41:35+00:00" }, + { + "name": "thecodingmachine/safe", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/thecodingmachine/safe.git", + "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2cdd579eeaa2e78e51c7509b50cc9fb89a956236", + "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/phpstan": "^2", + "phpunit/phpunit": "^10", + "squizlabs/php_codesniffer": "^3.2" + }, + "type": "library", + "autoload": { + "files": [ + "lib/special_cases.php", + "generated/apache.php", + "generated/apcu.php", + "generated/array.php", + "generated/bzip2.php", + "generated/calendar.php", + "generated/classobj.php", + "generated/com.php", + "generated/cubrid.php", + "generated/curl.php", + "generated/datetime.php", + "generated/dir.php", + "generated/eio.php", + "generated/errorfunc.php", + "generated/exec.php", + "generated/fileinfo.php", + "generated/filesystem.php", + "generated/filter.php", + "generated/fpm.php", + "generated/ftp.php", + "generated/funchand.php", + "generated/gettext.php", + "generated/gmp.php", + "generated/gnupg.php", + "generated/hash.php", + "generated/ibase.php", + "generated/ibmDb2.php", + "generated/iconv.php", + "generated/image.php", + "generated/imap.php", + "generated/info.php", + "generated/inotify.php", + "generated/json.php", + "generated/ldap.php", + "generated/libxml.php", + "generated/lzf.php", + "generated/mailparse.php", + "generated/mbstring.php", + "generated/misc.php", + "generated/mysql.php", + "generated/mysqli.php", + "generated/network.php", + "generated/oci8.php", + "generated/opcache.php", + "generated/openssl.php", + "generated/outcontrol.php", + "generated/pcntl.php", + "generated/pcre.php", + "generated/pgsql.php", + "generated/posix.php", + "generated/ps.php", + "generated/pspell.php", + "generated/readline.php", + "generated/rnp.php", + "generated/rpminfo.php", + "generated/rrd.php", + "generated/sem.php", + "generated/session.php", + "generated/shmop.php", + "generated/sockets.php", + "generated/sodium.php", + "generated/solr.php", + "generated/spl.php", + "generated/sqlsrv.php", + "generated/ssdeep.php", + "generated/ssh2.php", + "generated/stream.php", + "generated/strings.php", + "generated/swoole.php", + "generated/uodbc.php", + "generated/uopz.php", + "generated/url.php", + "generated/var.php", + "generated/xdiff.php", + "generated/xml.php", + "generated/xmlrpc.php", + "generated/yaml.php", + "generated/yaz.php", + "generated/zip.php", + "generated/zlib.php" + ], + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "generated/Exceptions/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHP core functions that throw exceptions instead of returning FALSE on error", + "support": { + "issues": "https://github.com/thecodingmachine/safe/issues", + "source": "https://github.com/thecodingmachine/safe/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://github.com/OskarStark", + "type": "github" + }, + { + "url": "https://github.com/shish", + "type": "github" + }, + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2025-05-14T06:15:44+00:00" + }, { "name": "tracy/tracy", "version": "v2.11.0", From 9c47d6d8adb65af4e8bbf3faa70858c4d34f5303 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 15:54:40 +0100 Subject: [PATCH 10/11] composer: Update nextras/form-components to 3.0 - nextras/form-components updated from v2.0.0 to v3.0.0 major See changes: https://github.com/nextras/form-components/compare/v2.0.0...v3.0.0 Release notes: https://github.com/nextras/form-components/releases/tag/v3.0.0 --- composer.json | 2 +- composer.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index cff6a5b..34ad668 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ "nette/schema": "^1.2", "nette/security": "~3.0", "nette/utils": "~4.0", - "nextras/form-components": "^2.0", + "nextras/form-components": "^3.0", "nextras/forms-rendering": "^2.0", "nextras/orm": "^5.0", "pelago/emogrifier": "^8.2", diff --git a/composer.lock b/composer.lock index 520ce06..43aabb3 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": "1021a86085dd46d8374d103e90549e3e", + "content-hash": "9c233afe81a437e02eeb163a11cd7887", "packages": [ { "name": "68publishers/asset", @@ -1869,16 +1869,16 @@ }, { "name": "nextras/form-components", - "version": "v2.0.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/nextras/form-components.git", - "reference": "b50849578f2a51e2a3c67983a24c90910f5cd79d" + "reference": "ad60fdefabf3d3f4ddcb53bf6978fba68d4542f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextras/form-components/zipball/b50849578f2a51e2a3c67983a24c90910f5cd79d", - "reference": "b50849578f2a51e2a3c67983a24c90910f5cd79d", + "url": "https://api.github.com/repos/nextras/form-components/zipball/ad60fdefabf3d3f4ddcb53bf6978fba68d4542f5", + "reference": "ad60fdefabf3d3f4ddcb53bf6978fba68d4542f5", "shasum": "" }, "require": { @@ -1892,10 +1892,10 @@ "latte/latte": "~3.0", "nette/bootstrap": "~3.0", "nette/di": "~3.0", - "nette/robot-loader": "~3.0", - "nette/tester": "~2.1", - "phpstan/phpstan": "^1.12", - "phpstan/phpstan-nette": "^1.3", + "nette/robot-loader": "~3.0 || ~4.0", + "nette/tester": "dev-master", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-nette": "^2.0", "tracy/tracy": "~2.5" }, "type": "library", @@ -1930,9 +1930,9 @@ ], "support": { "issues": "https://github.com/nextras/form-components/issues", - "source": "https://github.com/nextras/form-components/tree/v2.0.0" + "source": "https://github.com/nextras/form-components/tree/v3.0.0" }, - "time": "2024-11-04T22:52:44+00:00" + "time": "2025-11-30T11:50:28+00:00" }, { "name": "nextras/forms-rendering", From e4063733e175d43cc4b0141cea7f489464044b5c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 13 Dec 2025 16:19:08 +0100 Subject: [PATCH 11/11] Switch to PHP CS Fixer auto migration - Rule set "@PHP80Migration:risky" is deprecated. Use "@PHP8x0Migration:risky" instead. - Rule set "@PHP81Migration" is deprecated. Use "@PHP8x1Migration" instead. https://cs.symfony.com/doc/rules/control_structure/trailing_comma_in_multiline.html --- .php-cs-fixer.dist.php | 3 +-- app/Components/Helpers.php | 2 +- app/Helpers/NeonIntlLoader.php | 2 +- app/Locale/Translator.php | 2 +- app/Model/Configuration/Category.php | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 0c1850b..38f0f4a 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -12,8 +12,7 @@ $rules = [ '@Symfony' => true, '@Symfony:risky' => true, - '@PHP81Migration' => true, - '@PHP80Migration:risky' => true, + '@autoPHPMigration:risky' => true, // overwrite some Symfony rules 'braces_position' => [ diff --git a/app/Components/Helpers.php b/app/Components/Helpers.php index 989361f..a5f8e23 100644 --- a/app/Components/Helpers.php +++ b/app/Components/Helpers.php @@ -26,7 +26,7 @@ public static function createInputList( array $items, ?array $inputAttrs = null, ?array $labelAttrs = null, - $wrapper = null + $wrapper = null, ): string { [$inputAttrs, $inputTag] = self::prepareAttrs($inputAttrs, 'input'); [$labelAttrs, $labelTag] = self::prepareAttrs($labelAttrs, 'label'); diff --git a/app/Helpers/NeonIntlLoader.php b/app/Helpers/NeonIntlLoader.php index e38fcdb..149db39 100644 --- a/app/Helpers/NeonIntlLoader.php +++ b/app/Helpers/NeonIntlLoader.php @@ -11,7 +11,7 @@ final class NeonIntlLoader extends Translation\Loaders\Neon { public function load( mixed $resource, string $locale, - string $domain = 'messages' + string $domain = 'messages', ): MessageCatalogue { return parent::load($resource, $locale, $domain . '+intl-icu'); } diff --git a/app/Locale/Translator.php b/app/Locale/Translator.php index 469e571..0be261c 100644 --- a/app/Locale/Translator.php +++ b/app/Locale/Translator.php @@ -12,7 +12,7 @@ class Translator extends ContributeTranslator { public function translate( $message, - ...$parameters + ...$parameters, ): string { if ($message instanceof Translated) { return $message->getMessage($this->getLocale()); diff --git a/app/Model/Configuration/Category.php b/app/Model/Configuration/Category.php index e4e1865..2c4e775 100644 --- a/app/Model/Configuration/Category.php +++ b/app/Model/Configuration/Category.php @@ -38,7 +38,7 @@ public static function from( string $key, array $category, Fees $parentFees, - DateTimeInterface $eventDate + DateTimeInterface $eventDate, ): self { $fees = Fees::from($category['fees'] ?? [], $parentFees); if ($fees->person === null) {