From b04698ea693657e4ceff86dead74224ac99cf79f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:20:45 -0300 Subject: [PATCH 001/169] feat: add namespaced message template renderer Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Template/MessageTemplateRenderer.php | 82 ++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/Template/MessageTemplateRenderer.php diff --git a/src/Template/MessageTemplateRenderer.php b/src/Template/MessageTemplateRenderer.php new file mode 100644 index 0000000..da207a8 --- /dev/null +++ b/src/Template/MessageTemplateRenderer.php @@ -0,0 +1,82 @@ + $placeholders + * @param array> $fieldValues + */ + public function render(string $template, array $placeholders, array $fieldValues): string + { + $rendered = preg_replace_callback( + '/\{\{\s*([^{}]+?)\s*\}\}/', + function (array $matches) use ($placeholders, $fieldValues): string { + $replacement = $this->resolvePlaceholder($matches[1], $placeholders, $fieldValues); + + return $replacement ?? $matches[0]; + }, + $template + ); + + if ($rendered === null) { + return $template; + } + + return strtr($rendered, [ + '{surveyId}' => $placeholders['surveyId'] ?? '', + '{responseId}' => $placeholders['responseId'] ?? '', + '{urlPDF}' => $placeholders['urlPDF'] ?? '', + '{title}' => $placeholders['title'] ?? '', + ]); + } + + /** + * @param array $placeholders + * @param array> $fieldValues + */ + protected function resolvePlaceholder(string $placeholder, array $placeholders, array $fieldValues): ?string + { + $placeholder = trim($placeholder); + + if (array_key_exists($placeholder, $placeholders)) { + return $placeholders[$placeholder]; + } + + if (!preg_match('/^field:(.+)\.(question|answer|raw)$/', $placeholder, $matches)) { + if (isset($fieldValues[$placeholder]) && array_key_exists('question', $fieldValues[$placeholder])) { + return $fieldValues[$placeholder]['question']; + } + + if (preg_match('/^(.+?)_(question|answer|raw)$/', $placeholder, $matches) === 1) { + $fieldCode = $matches[1]; + $fieldProperty = $matches[2]; + + if (isset($fieldValues[$fieldCode]) && array_key_exists($fieldProperty, $fieldValues[$fieldCode])) { + return $fieldValues[$fieldCode][$fieldProperty]; + } + } + + if (preg_match('/^(question|answer|raw)_(.+)$/', $placeholder, $matches) === 1) { + $fieldProperty = $matches[1]; + $fieldCode = $matches[2]; + + if (isset($fieldValues[$fieldCode]) && array_key_exists($fieldProperty, $fieldValues[$fieldCode])) { + return $fieldValues[$fieldCode][$fieldProperty]; + } + } + + return null; + } + + $fieldCode = $matches[1]; + $fieldProperty = $matches[2]; + + if (!isset($fieldValues[$fieldCode]) || !array_key_exists($fieldProperty, $fieldValues[$fieldCode])) { + return null; + } + + return $fieldValues[$fieldCode][$fieldProperty]; + } +} From 36a1311649826d127494e1b1e9d9a01765e75028 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:03 -0300 Subject: [PATCH 002/169] feat: add namespaced survey field value provider Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Survey/SurveyFieldValueProvider.php | 98 +++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/Survey/SurveyFieldValueProvider.php diff --git a/src/Survey/SurveyFieldValueProvider.php b/src/Survey/SurveyFieldValueProvider.php new file mode 100644 index 0000000..6f57f08 --- /dev/null +++ b/src/Survey/SurveyFieldValueProvider.php @@ -0,0 +1,98 @@ +> + */ + public function getFieldValues(int $surveyId, int $responseId): array + { + $survey = \Survey::model()->findByPk($surveyId); + if ($survey === null) { + return []; + } + + $response = \SurveyDynamic::model($surveyId)->findByPk($responseId); + if ($response === null) { + return []; + } + + $responseAttributes = $this->extractResponseAttributes($response); + $responseLanguage = isset($responseAttributes['startlanguage']) + && is_string($responseAttributes['startlanguage']) + && $responseAttributes['startlanguage'] !== '' + ? $responseAttributes['startlanguage'] + : $survey->language; + + \Yii::import('application.helpers.admin.export.*', true); + \Yii::import('application.helpers.viewHelper', true); + + $formattingOptions = new \FormattingOptions(); + $surveyDao = new \SurveyDao(); + $surveyData = $surveyDao->loadSurveyById($surveyId, $responseLanguage, $formattingOptions); + $translator = new \Translator(); + $fieldValues = []; + + foreach ($surveyData->fieldMap as $fieldName => $field) { + if (!array_key_exists($fieldName, $responseAttributes)) { + continue; + } + + $value = $this->normalizeTemplateValue($responseAttributes[$fieldName]); + $entry = [ + 'question' => trim((string) \viewHelper::getFieldText($field, [ + 'flat' => true, + 'separator' => ['[', ']'], + 'afterquestion' => ' ', + ])), + 'answer' => (string) ($surveyData->getFullAnswer($fieldName, $value, $translator, $responseLanguage) ?? ''), + 'raw' => $value, + ]; + + $fieldCode = \viewHelper::getFieldCode($field, ['separator' => ['[', ']']]); + if ($fieldCode !== '' && !array_key_exists($fieldCode, $fieldValues)) { + $fieldValues[$fieldCode] = $entry; + } + + if (!array_key_exists($fieldName, $fieldValues)) { + $fieldValues[$fieldName] = $entry; + } + } + + return $fieldValues; + } + + /** + * @return array + */ + protected function extractResponseAttributes($response): array + { + if (is_array($response)) { + return $response; + } + + if (is_object($response) && isset($response->attributes) && is_array($response->attributes)) { + return $response->attributes; + } + + return []; + } + + /** + * @param mixed $value + */ + protected function normalizeTemplateValue($value): string + { + if (is_array($value)) { + return implode(', ', array_map([$this, 'normalizeTemplateValue'], $value)); + } + + if ($value === null) { + return ''; + } + + return (string) $value; + } +} From 96829afed658a2f42eb358a82955d94fea2bcbd6 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:03 -0300 Subject: [PATCH 003/169] refactor: add legacy message renderer wrapper Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/LSTelegramNotifyMessageTemplateRenderer.php | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/LSTelegramNotifyMessageTemplateRenderer.php diff --git a/src/LSTelegramNotifyMessageTemplateRenderer.php b/src/LSTelegramNotifyMessageTemplateRenderer.php new file mode 100644 index 0000000..027dafa --- /dev/null +++ b/src/LSTelegramNotifyMessageTemplateRenderer.php @@ -0,0 +1,7 @@ + Date: Tue, 4 Aug 2026 12:21:03 -0300 Subject: [PATCH 004/169] refactor: add legacy field value provider wrapper Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/LSTelegramNotifySurveyFieldValueProvider.php | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/LSTelegramNotifySurveyFieldValueProvider.php diff --git a/src/LSTelegramNotifySurveyFieldValueProvider.php b/src/LSTelegramNotifySurveyFieldValueProvider.php new file mode 100644 index 0000000..7364868 --- /dev/null +++ b/src/LSTelegramNotifySurveyFieldValueProvider.php @@ -0,0 +1,7 @@ + Date: Tue, 4 Aug 2026 12:21:03 -0300 Subject: [PATCH 005/169] chore: add psr-4 autoload for plugin classes Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 317efa7..87ecc97 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,10 @@ "autoload": { "classmap": [ "LSTelegramNotify.php" - ] + ], + "psr-4": { + "LibreCodeCoop\\LSTelegramNotify\\": "src/" + } }, "autoload-dev": { "files": [ From 730fd2242920369985efc578b8aa5bf7966c2d62 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:16 -0300 Subject: [PATCH 006/169] test: extend limesurvey stubs for namespaced helpers Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/LimeSurveyStubs.php | 90 +++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/tests/Support/LimeSurveyStubs.php b/tests/Support/LimeSurveyStubs.php index 6f86b89..d073fec 100644 --- a/tests/Support/LimeSurveyStubs.php +++ b/tests/Support/LimeSurveyStubs.php @@ -69,3 +69,93 @@ public function findByPk($id) }; } } + +class SurveyDynamic +{ + public static $findByPkHandler; + public static $getMaxIdHandler; + + public static function model($surveyId) + { + return new class ($surveyId) { + private $surveyId; + + public function __construct($surveyId) + { + $this->surveyId = $surveyId; + } + + public function findByPk($responseId) + { + if (is_callable(SurveyDynamic::$findByPkHandler)) { + return call_user_func(SurveyDynamic::$findByPkHandler, $this->surveyId, $responseId); + } + + return null; + } + + public function getMaxId() + { + if (is_callable(SurveyDynamic::$getMaxIdHandler)) { + return call_user_func(SurveyDynamic::$getMaxIdHandler, $this->surveyId); + } + + return null; + } + }; + } +} + +class FormattingOptions +{ +} + +class SurveyDao +{ + public static $loadSurveyByIdHandler; + + public function loadSurveyById($surveyId, $language, $options) + { + if (is_callable(self::$loadSurveyByIdHandler)) { + return call_user_func(self::$loadSurveyByIdHandler, $surveyId, $language, $options); + } + + return new class { + /** @var array */ + public array $fieldMap = []; + + public function getFullAnswer($fieldName, $value, $translator, $responseLanguage): string + { + return (string) $value; + } + }; + } +} + +class Translator +{ +} + +class viewHelper +{ + public static $getFieldTextHandler; + public static $getFieldCodeHandler; + + public static function getFieldText($field, array $options = []): string + { + if (is_callable(self::$getFieldTextHandler)) { + return call_user_func(self::$getFieldTextHandler, $field, $options); + } + + return ''; + } + + public static function getFieldCode($field, array $options = []): string + { + if (is_callable(self::$getFieldCodeHandler)) { + return call_user_func(self::$getFieldCodeHandler, $field, $options); + } + + return ''; + } +} From 3f60bea4cd8104d361c8da1776603fc11e668fcb Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:16 -0300 Subject: [PATCH 007/169] test: allow plugin double to mock template fields Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../LSTelegramNotifyTestDouble.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php b/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php index 281edf6..9b1db67 100644 --- a/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php +++ b/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php @@ -5,16 +5,31 @@ class LSTelegramNotifyTestDouble extends \LSTelegramNotify /** @var array */ private array $mockedSettings = []; + /** @var array> */ + private array $mockedTemplateFields = []; + /** @param array $settings */ public function setMockedSettings(array $settings): void { $this->mockedSettings = $settings; } + /** @param array> $fields */ + public function setMockedTemplateFields(array $fields): void + { + $this->mockedTemplateFields = $fields; + } + protected function get($key = null, $model = null, $id = null, $default = null) { return array_key_exists((string) $key, $this->mockedSettings) ? $this->mockedSettings[(string) $key] : $default; } + + /** @return array> */ + protected function getTemplateFieldValues(int $surveyId, int $responseId): array + { + return $this->mockedTemplateFields; + } } From c04a613f5e206b1e1f3959cf52bb56d2a8527e0b Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:16 -0300 Subject: [PATCH 008/169] test: cover telegram template placeholders Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Unit/LSTelegramNotifyTest.php | 56 ++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/tests/Unit/LSTelegramNotifyTest.php b/tests/Unit/LSTelegramNotifyTest.php index cc83d14..bb326b2 100644 --- a/tests/Unit/LSTelegramNotifyTest.php +++ b/tests/Unit/LSTelegramNotifyTest.php @@ -22,12 +22,14 @@ public function testSendMessageBehavior( int $surveyId, int $responseId, ?callable $urlHandler, + array $templateFields, int $expectedRequestCount, ?array $expectedPayload, ): void { - $plugin = (new \ReflectionClass(LSTelegramNotifyTestDouble::class))->newInstanceWithoutConstructor(); + $plugin = (new \ReflectionClass(\LSTelegramNotifyTestDouble::class))->newInstanceWithoutConstructor(); $plugin->setMockedSettings($settings); + $plugin->setMockedTemplateFields($templateFields); \AppRuntimeMock::$createAbsoluteUrlHandler = $urlHandler; @@ -65,6 +67,7 @@ public static function sendMessageProvider(): array 101, 202, null, + [], 0, null, ], @@ -80,6 +83,7 @@ public static function sendMessageProvider(): array static function ($route, array $params): string { return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; }, + [], 1, [ 'method' => 'sendMessage', @@ -88,6 +92,56 @@ static function ($route, array $params): string { 'text' => 'Survey=11;Response=22;Title=Customer Satisfaction;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=11&id=22', ], ], + 'send enabled renders mustache placeholders for survey fields and metadata' => [ + [ + 'SendMessage' => true, + 'DefaultText' => "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}\nSurvey={{surveyId}};Response={{responseId}};Title={{title}}", + 'ParseMode' => 'HTML', + ], + 'Ficha de cadastro', + 55, + 66, + null, + [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ], + 1, + [ + 'method' => 'sendMessage', + 'chat_id' => 'chat-99', + 'parse_mode' => 'HTML', + 'text' => "Pergunta: E-mail para contato\nResposta: ada@example.test\nSurvey=55;Response=66;Title=Ficha de cadastro", + ], + ], + 'send enabled renders shorthand placeholders by field code with prefix and suffix' => [ + [ + 'SendMessage' => true, + 'DefaultText' => "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", + 'ParseMode' => 'HTML', + ], + 'Ficha de cadastro', + 55, + 66, + null, + [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ], + 1, + [ + 'method' => 'sendMessage', + 'chat_id' => 'chat-99', + 'parse_mode' => 'HTML', + 'text' => "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", + ], + ], ]; } } From 32a971773d654590c726a19a43c6651f5464fe62 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:16 -0300 Subject: [PATCH 009/169] test: add survey field value provider coverage Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- ...gramNotifySurveyFieldValueProviderTest.php | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php diff --git a/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php b/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php new file mode 100644 index 0000000..34c25f1 --- /dev/null +++ b/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php @@ -0,0 +1,101 @@ + (object) ['language' => 'pt-BR']; + \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => (object) [ + 'attributes' => [ + '12345X1X1' => 'ada@example.test', + 'startlanguage' => 'pt-BR', + ], + ]; + \SurveyDao::$loadSurveyByIdHandler = static fn (int $surveyId, string $language, \FormattingOptions $options) => new class { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Contato'], + ]; + + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + return strtoupper($value); + } + }; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'E-mail para contato'; + \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'CONTATO[EMAIL]'; + + $provider = new SurveyFieldValueProvider(); + + $values = $provider->getFieldValues(55, 66); + $expected = [ + 'question' => 'E-mail para contato', + 'answer' => 'ADA@EXAMPLE.TEST', + 'raw' => 'ada@example.test', + ]; + + $this->assertSame($expected, $values['CONTATO[EMAIL]']); + $this->assertSame($expected, $values['12345X1X1']); + } + + public function testGetFieldValuesNormalizesArrayValuesAndFallsBackToSurveyLanguage(): void + { + $capturedLanguage = null; + + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => [ + '12345X1X1' => ['Ada', 'Lovelace'], + ]; + \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use (&$capturedLanguage) { + $capturedLanguage = $language; + + return new class { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Nome'], + ]; + + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + return 'Answer: ' . $value; + } + }; + }; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'Nome completo'; + \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'NOME'; + + $provider = new SurveyFieldValueProvider(); + + $values = $provider->getFieldValues(10, 20); + + $this->assertSame('en', $capturedLanguage); + $this->assertSame('Ada, Lovelace', $values['NOME']['raw']); + $this->assertSame('Answer: Ada, Lovelace', $values['NOME']['answer']); + } + + public function testGetFieldValuesReturnsEmptyWhenSurveyOrResponseDoesNotExist(): void + { + $provider = new SurveyFieldValueProvider(); + + $this->assertSame([], $provider->getFieldValues(1, 2)); + + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + + $this->assertSame([], $provider->getFieldValues(1, 2)); + } +} From 8b96c6f63703a80cc8778fd8c1f13ff6d0540f50 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:29 -0300 Subject: [PATCH 010/169] refactor: move plugin implementation to namespaced class Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- LSTelegramNotify.php | 380 ------------------------ src/Plugin/LSTelegramNotifyPlugin.php | 402 ++++++++++++++++++++++++++ 2 files changed, 402 insertions(+), 380 deletions(-) delete mode 100644 LSTelegramNotify.php create mode 100644 src/Plugin/LSTelegramNotifyPlugin.php diff --git a/LSTelegramNotify.php b/LSTelegramNotify.php deleted file mode 100644 index b33f945..0000000 --- a/LSTelegramNotify.php +++ /dev/null @@ -1,380 +0,0 @@ - [ - 'type' => 'string', - 'label' => 'Auth Token', - 'help' => 'Bot API auth token, you can get one at BotFather.', - ], - 'ChatId' => [ - 'type' => 'string', - 'label' => 'Chat id', - 'help' => 'The ID of group that will receive the notification messages. You can add the bot RawDataBot to your group, get the chat_id and after remove this bot from group.', - ], - 'ParseMode' => [ - 'type' => 'select', - 'label' => 'Parse mode', - 'options' => array('HTML' => 'HTML', 'Markdown' => 'Markdown', 'MarkdownV2' => 'MarkdownV2'), - 'help' => 'As the Telegram bot API formatting options.', - 'default' => 'HTML', - ], - 'SendPdf' => [ - 'type' => 'checkbox', - 'label' => 'Check to send the answer as PDF file', - ], - 'SendCsv' => [ - 'type' => 'checkbox', - 'label' => 'Check to send all answers as CSV file', - ], - 'SendMessage' => [ - 'type' => 'checkbox', - 'label' => 'Check to send a text message using the default text template', - ], - 'DefaultText' => [ - 'type' => 'text', - 'label' => 'Default Text', - 'default' => - "New Survey Completed!\n" . - "Title: {title}\n" . - "SurveyId: {surveyId}\n" . - "ResponseId: {responseId}\n" . - "PDF: here" - ], - ]; - - /** - * @return void - */ - public function init() - { - $this->subscribe('newSurveySettings'); - $this->subscribe('afterSurveyComplete'); - $this->subscribe('beforeSurveySettings'); - } - - /** - * @return void - */ - public function afterSurveyComplete() - { - $event = $this->getEvent(); - $surveyId = $event->get('surveyId'); - $responseId = $event->get('responseId'); - $oSurvey = Survey::model()->findByPk($surveyId); - $chatId = $this->get( - 'ChatId', - 'Survey', - $surveyId, // Survey - $this->get('ChatId') // Global - ); - $telegram = new Api($this->get( - 'AuthToken', - 'Survey', - $surveyId, // Survey - $this->get('AuthToken') // Global - )); - $this->sendMessage($surveyId, $responseId, $chatId, $telegram, $oSurvey->getLocalizedTitle()); - $this->sendPdf($surveyId, $responseId, $chatId, $telegram); - $this->sendCsv($surveyId, $responseId, $chatId, $telegram); - } - - /** - * Send the message on Telegram - * - * @param $surveyId - * @param $text - */ - public function sendMessage(int $surveyId, int $responseId, string $chatId, Api $telegram, string $title): void - { - $sendMessage = $this->get( - 'SendMessage', - 'Survey', - $surveyId, // Survey - $this->get('SendMessage') // Global - ); - if (!$sendMessage) { - return; - } - $text = preg_replace( - [ - '/\{surveyId\}/', - '/\{responseId\}/', - '/\{urlPDF\}/', - '/\{title\}/', - ], - [ - $surveyId, - $responseId, - App()->createAbsoluteUrl( - '/admin/responses/sa/viewquexmlpdf', - [ - 'surveyid' => $surveyId, - 'id' => $responseId - ] - ), - $title, - ], - $this->get( - 'DefaultText', - 'Survey', - $surveyId, // Survey - $this->get('DefaultText') // Global - ) - ); - $telegram->sendMessage([ - 'chat_id' => $chatId, - 'parse_mode' => $this->get( - 'ParseMode', - 'Survey', - $surveyId, // Survey - $this->get('ParseMode') // Global - ), - 'text' => $text - ]); - } - - private function sendPdf($surveyId, $responseId, $chatId, Api $telegram): void - { - $sendPdf = $this->get( - 'SendPdf', - 'Survey', - $surveyId, // Survey - $this->get('SendPdf') // Global - ); - if (!$sendPdf) { - return; - } - $pdfPath = $this->getPdfPath($surveyId, $responseId); - $inputFile = new InputFile($pdfPath, "$surveyId-$responseId.pdf"); - $telegram->sendDocument([ - 'chat_id' => $chatId, - 'document' => $inputFile, - ]); - unlink($pdfPath); - } - - private function sendCsv($surveyId, $responseId, $chatId, Api $telegram): void - { - $sendCsv = $this->get( - 'SendCsv', - 'Survey', - $surveyId, // Survey - $this->get('SendCsv') // Global - ); - if (!$sendCsv) { - return; - } - $pdfPath = $this->getCsv($surveyId, $responseId); - $inputFile = new InputFile($pdfPath, "$surveyId-$responseId.csv"); - $telegram->sendDocument([ - 'chat_id' => $chatId, - 'document' => $inputFile, - ]); - unlink($pdfPath); - } - - private function getPdfPath($surveyId, $responseId): string - { - Yii::import("application.libraries.admin.quexmlpdf", true); - $oSurvey = Survey::model()->findByPk($surveyId); - $quexmlpdf = new quexmlpdf(); - set_time_limit(120); - App()->loadHelper('export'); - $quexml = quexml_export($surveyId, current($oSurvey->allLanguages), $responseId); - $quexmlpdf->create($quexmlpdf->createqueXML($quexml)); - - $tempnam = tempnam(sys_get_temp_dir(), 'pdf_'); - - $quexmlpdf->Output($tempnam, 'F'); - return $tempnam; - } - - /** - * @return void - */ - public function beforeSurveySettings() - { - $event = $this->getEvent(); - $event->set( - "surveysettings.{$this->id}", - [ - 'name' => get_class($this), - 'settings' => [ - 'SettingsInfo' => [ - 'type' => 'info', - 'content' => 'Telegram settings' - ], - 'AuthToken' => [ - 'type' => 'string', - 'label' => $this->settings['AuthToken']['help'], - 'help' => $this->settings['AuthToken']['help'], - 'current' => $this->get( - 'AuthToken', - 'Survey', - $event->get('survey'), // Survey - $this->get('AuthToken') // Global - ), - ], - 'ChatId' => [ - 'type' => 'string', - 'label' => 'Chat id', - 'help' => $this->settings['ChatId']['help'], - 'current' => $this->get( - 'ChatId', - 'Survey', - $event->get('survey'), // Survey - $this->get('ChatId') // Global - ), - ], - 'ParseMode' => [ - 'type' => $this->settings['ParseMode']['type'], - 'label' => $this->settings['ParseMode']['label'], - 'options' => $this->settings['ParseMode']['options'], - 'help' => $this->settings['ParseMode']['help'], - 'default' => $this->settings['ParseMode']['default'], - 'current' => $this->get( - 'ParseMode', - 'Survey', - $event->get('survey'), // Survey - $this->get( - 'ParseMode', - null, - null, - $this->settings['ParseMode']['default'] - ) // Global - ), - ], - 'SendPdf' => [ - 'type' => $this->settings['SendPdf']['type'], - 'label' => $this->settings['SendPdf']['label'], - 'current' => $this->get( - 'SendPdf', - 'Survey', - $event->get('survey'), // Survey - $this->get( - 'SendPdf', - null, - null, - $this->settings['SendPdf']['default'] - ) // Global - ), - ], - 'SendCsv' => [ - 'type' => $this->settings['SendCsv']['type'], - 'label' => $this->settings['SendCsv']['label'], - 'current' => $this->get( - 'SendCsv', - 'Survey', - $event->get('survey'), // Survey - $this->get( - 'SendCsv', - null, - null, - $this->settings['SendCsv']['default'] - ) // Global - ), - ], - 'SendMessage' => [ - 'type' => $this->settings['SendMessage']['type'], - 'label' => $this->settings['SendMessage']['label'], - 'current' => $this->get( - 'SendMessage', - 'Survey', - $event->get('survey'), // Survey - $this->get( - 'SendMessage', - null, - null, - $this->settings['SendMessage']['default'] - ) // Global - ), - ], - 'DefaultText' => [ - 'type' => 'text', - 'label' => 'Default Text', - 'current' => $this->get( - 'DefaultText', - 'Survey', - $event->get('survey'), // Survey - $this->get( - 'DefaultText', - null, - null, - $this->settings['DefaultText']['default'] - ) // Global - ), - ] - ] - ] - ); - } - - /** - * @return void - */ - public function newSurveySettings() - { - $event = $this->getEvent(); - - foreach ($event->get('settings') as $name => $value) { - $this->set($name, $value, 'Survey', $event->get('survey')); - } - } - - /** - * Save file to CSV - * - * @return string File path - */ - private function getCsv(): string - { - Yii::import('application.helpers.admin.export.FormattingOptions', true); - Yii::import('application.helpers.admin.exportresults_helper', true); - $survey = Survey::model()->findByPk($this->getEvent()->get('surveyId')); - if (!($maxId = SurveyDynamic::model($this->getEvent()->get('surveyId'))->getMaxId())) { - throw new Exception('No Data, could not get max id.', 1); - } - $oFormattingOptions = new FormattingOptions(); - $oFormattingOptions->responseMinRecord = 1; - $oFormattingOptions->responseMaxRecord = $maxId; - $aFields = array_keys(createFieldMap($survey, 'full', true, false, $survey->language)); - $aTokenFields = array('tid','participant_id','firstname','lastname','email','emailstatus','language','blacklisted','sent','remindersent','remindercount','completed','usesleft','validfrom','validuntil','mpid'); - $oFormattingOptions->selectedColumns = array_merge($aFields,$aTokenFields, array_keys($survey->tokenAttributes)); - $oFormattingOptions->responseCompletionState = 'all'; - $oFormattingOptions->headingFormat = 'full'; - $oFormattingOptions->answerFormat = 'long'; - $oFormattingOptions->csvFieldSeparator = ','; - $oFormattingOptions->output = 'file'; - $oExport = new ExportSurveyResultsService(); - $tempFile = $oExport->exportResponses($this->getEvent()->get('surveyId'), $survey->language, 'csv', $oFormattingOptions, ''); - return $tempFile; - } -} diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php new file mode 100644 index 0000000..8304de7 --- /dev/null +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -0,0 +1,402 @@ + [ + 'type' => 'string', + 'label' => 'Auth Token', + 'help' => 'Bot API auth token, you can get one at BotFather.', + ], + 'ChatId' => [ + 'type' => 'string', + 'label' => 'Chat id', + 'help' => 'The ID of group that will receive the notification messages. You can add the bot RawDataBot to your group, get the chat_id and after remove this bot from group.', + ], + 'ParseMode' => [ + 'type' => 'select', + 'label' => 'Parse mode', + 'options' => array('HTML' => 'HTML', 'Markdown' => 'Markdown', 'MarkdownV2' => 'MarkdownV2'), + 'help' => 'As the Telegram bot API formatting options.', + 'default' => 'HTML', + ], + 'SendPdf' => [ + 'type' => 'checkbox', + 'label' => 'Check to send the answer as PDF file', + ], + 'SendCsv' => [ + 'type' => 'checkbox', + 'label' => 'Check to send all answers as CSV file', + ], + 'SendMessage' => [ + 'type' => 'checkbox', + 'label' => 'Check to send a text message using the default text template', + ], + 'DefaultText' => [ + 'type' => 'text', + 'label' => 'Default Text', + 'default' => + "New Survey Completed!\n" . + "Title: {title}\n" . + "SurveyId: {surveyId}\n" . + "ResponseId: {responseId}\n" . + "PDF: here" + ], + ]; + + /** + * @return void + */ + public function init() + { + $this->subscribe('newSurveySettings'); + $this->subscribe('afterSurveyComplete'); + $this->subscribe('beforeSurveySettings'); + } + + /** + * @return void + */ + public function afterSurveyComplete() + { + $event = $this->getEvent(); + $surveyId = $event->get('surveyId'); + $responseId = $event->get('responseId'); + $oSurvey = \Survey::model()->findByPk($surveyId); + $chatId = $this->get( + 'ChatId', + 'Survey', + $surveyId, + $this->get('ChatId') + ); + $telegram = new Api($this->get( + 'AuthToken', + 'Survey', + $surveyId, + $this->get('AuthToken') + )); + $this->sendMessage($surveyId, $responseId, $chatId, $telegram, $oSurvey->getLocalizedTitle()); + $this->sendPdf($surveyId, $responseId, $chatId, $telegram); + $this->sendCsv($surveyId, $responseId, $chatId, $telegram); + } + + public function sendMessage(int $surveyId, int $responseId, string $chatId, Api $telegram, string $title): void + { + $sendMessage = $this->get( + 'SendMessage', + 'Survey', + $surveyId, + $this->get('SendMessage') + ); + if (!$sendMessage) { + return; + } + $text = $this->renderMessageTemplate( + $this->get( + 'DefaultText', + 'Survey', + $surveyId, + $this->get('DefaultText') + ), + $surveyId, + $responseId, + $title + ); + $telegram->sendMessage([ + 'chat_id' => $chatId, + 'parse_mode' => $this->get( + 'ParseMode', + 'Survey', + $surveyId, + $this->get('ParseMode') + ), + 'text' => $text + ]); + } + + protected function renderMessageTemplate(string $template, int $surveyId, int $responseId, string $title): string + { + return $this->createMessageTemplateRenderer()->render( + $template, + $this->getBaseTemplatePlaceholders($surveyId, $responseId, $title), + $this->getTemplateFieldValues($surveyId, $responseId) + ); + } + + /** + * @return array + */ + protected function getBaseTemplatePlaceholders(int $surveyId, int $responseId, string $title): array + { + return [ + 'surveyId' => (string) $surveyId, + 'responseId' => (string) $responseId, + 'urlPDF' => \App()->createAbsoluteUrl( + '/admin/responses/sa/viewquexmlpdf', + [ + 'surveyid' => $surveyId, + 'id' => $responseId, + ] + ), + 'title' => $title, + ]; + } + + protected function createMessageTemplateRenderer(): MessageTemplateRenderer + { + return new MessageTemplateRenderer(); + } + + /** + * @return array> + */ + protected function getTemplateFieldValues(int $surveyId, int $responseId): array + { + return $this->createSurveyFieldValueProvider()->getFieldValues($surveyId, $responseId); + } + + protected function createSurveyFieldValueProvider(): SurveyFieldValueProvider + { + return new SurveyFieldValueProvider(); + } + + private function sendPdf($surveyId, $responseId, $chatId, Api $telegram): void + { + $sendPdf = $this->get( + 'SendPdf', + 'Survey', + $surveyId, + $this->get('SendPdf') + ); + if (!$sendPdf) { + return; + } + $pdfPath = $this->getPdfPath($surveyId, $responseId); + $inputFile = new InputFile($pdfPath, "$surveyId-$responseId.pdf"); + $telegram->sendDocument([ + 'chat_id' => $chatId, + 'document' => $inputFile, + ]); + unlink($pdfPath); + } + + private function sendCsv($surveyId, $responseId, $chatId, Api $telegram): void + { + $sendCsv = $this->get( + 'SendCsv', + 'Survey', + $surveyId, + $this->get('SendCsv') + ); + if (!$sendCsv) { + return; + } + $pdfPath = $this->getCsv($surveyId, $responseId); + $inputFile = new InputFile($pdfPath, "$surveyId-$responseId.csv"); + $telegram->sendDocument([ + 'chat_id' => $chatId, + 'document' => $inputFile, + ]); + unlink($pdfPath); + } + + private function getPdfPath($surveyId, $responseId): string + { + \Yii::import('application.libraries.admin.quexmlpdf', true); + $oSurvey = \Survey::model()->findByPk($surveyId); + $quexmlpdf = new \quexmlpdf(); + set_time_limit(120); + \App()->loadHelper('export'); + $quexml = \quexml_export($surveyId, current($oSurvey->allLanguages), $responseId); + $quexmlpdf->create($quexmlpdf->createqueXML($quexml)); + + $tempnam = tempnam(sys_get_temp_dir(), 'pdf_'); + + $quexmlpdf->Output($tempnam, 'F'); + return $tempnam; + } + + /** + * @return void + */ + public function beforeSurveySettings() + { + $event = $this->getEvent(); + $event->set( + "surveysettings.{$this->id}", + [ + 'name' => get_class($this), + 'settings' => [ + 'SettingsInfo' => [ + 'type' => 'info', + 'content' => 'Telegram settings' + ], + 'AuthToken' => [ + 'type' => 'string', + 'label' => $this->settings['AuthToken']['help'], + 'help' => $this->settings['AuthToken']['help'], + 'current' => $this->get( + 'AuthToken', + 'Survey', + $event->get('survey'), + $this->get('AuthToken') + ), + ], + 'ChatId' => [ + 'type' => 'string', + 'label' => 'Chat id', + 'help' => $this->settings['ChatId']['help'], + 'current' => $this->get( + 'ChatId', + 'Survey', + $event->get('survey'), + $this->get('ChatId') + ), + ], + 'ParseMode' => [ + 'type' => $this->settings['ParseMode']['type'], + 'label' => $this->settings['ParseMode']['label'], + 'options' => $this->settings['ParseMode']['options'], + 'help' => $this->settings['ParseMode']['help'], + 'default' => $this->settings['ParseMode']['default'], + 'current' => $this->get( + 'ParseMode', + 'Survey', + $event->get('survey'), + $this->get( + 'ParseMode', + null, + null, + $this->settings['ParseMode']['default'] + ) + ), + ], + 'SendPdf' => [ + 'type' => $this->settings['SendPdf']['type'], + 'label' => $this->settings['SendPdf']['label'], + 'current' => $this->get( + 'SendPdf', + 'Survey', + $event->get('survey'), + $this->get( + 'SendPdf', + null, + null, + $this->settings['SendPdf']['default'] + ) + ), + ], + 'SendCsv' => [ + 'type' => $this->settings['SendCsv']['type'], + 'label' => $this->settings['SendCsv']['label'], + 'current' => $this->get( + 'SendCsv', + 'Survey', + $event->get('survey'), + $this->get( + 'SendCsv', + null, + null, + $this->settings['SendCsv']['default'] + ) + ), + ], + 'SendMessage' => [ + 'type' => $this->settings['SendMessage']['type'], + 'label' => $this->settings['SendMessage']['label'], + 'current' => $this->get( + 'SendMessage', + 'Survey', + $event->get('survey'), + $this->get( + 'SendMessage', + null, + null, + $this->settings['SendMessage']['default'] + ) + ), + ], + 'DefaultText' => [ + 'type' => 'text', + 'label' => 'Default Text', + 'current' => $this->get( + 'DefaultText', + 'Survey', + $event->get('survey'), + $this->get( + 'DefaultText', + null, + null, + $this->settings['DefaultText']['default'] + ) + ), + ] + ] + ] + ); + } + + /** + * @return void + */ + public function newSurveySettings() + { + $event = $this->getEvent(); + + foreach ($event->get('settings') as $name => $value) { + $this->set($name, $value, 'Survey', $event->get('survey')); + } + } + + private function getCsv(): string + { + \Yii::import('application.helpers.admin.export.FormattingOptions', true); + \Yii::import('application.helpers.admin.exportresults_helper', true); + $survey = \Survey::model()->findByPk($this->getEvent()->get('surveyId')); + if (!(\SurveyDynamic::model($this->getEvent()->get('surveyId'))->getMaxId())) { + throw new \Exception('No Data, could not get max id.', 1); + } + $maxId = \SurveyDynamic::model($this->getEvent()->get('surveyId'))->getMaxId(); + $oFormattingOptions = new \FormattingOptions(); + $oFormattingOptions->responseMinRecord = 1; + $oFormattingOptions->responseMaxRecord = $maxId; + $aFields = array_keys(\createFieldMap($survey, 'full', true, false, $survey->language)); + $aTokenFields = array('tid','participant_id','firstname','lastname','email','emailstatus','language','blacklisted','sent','remindersent','remindercount','completed','usesleft','validfrom','validuntil','mpid'); + $oFormattingOptions->selectedColumns = array_merge($aFields, $aTokenFields, array_keys($survey->tokenAttributes)); + $oFormattingOptions->responseCompletionState = 'all'; + $oFormattingOptions->headingFormat = 'full'; + $oFormattingOptions->answerFormat = 'long'; + $oFormattingOptions->csvFieldSeparator = ','; + $oFormattingOptions->output = 'file'; + $oExport = new \ExportSurveyResultsService(); + return $oExport->exportResponses($this->getEvent()->get('surveyId'), $survey->language, 'csv', $oFormattingOptions, ''); + } +} From e9b25de9abcbb418dd2789fc70cc022df86956ff Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:21:29 -0300 Subject: [PATCH 011/169] refactor: add global plugin compatibility wrapper Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- LSTelegramNotify.php | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 LSTelegramNotify.php diff --git a/LSTelegramNotify.php b/LSTelegramNotify.php new file mode 100644 index 0000000..4ca735d --- /dev/null +++ b/LSTelegramNotify.php @@ -0,0 +1,8 @@ + Date: Tue, 4 Aug 2026 12:23:23 -0300 Subject: [PATCH 012/169] refactor: add native php types where safe Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index 8304de7..66108eb 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -75,7 +75,7 @@ class LSTelegramNotifyPlugin extends \PluginBase /** * @return void */ - public function init() + public function init(): void { $this->subscribe('newSurveySettings'); $this->subscribe('afterSurveyComplete'); @@ -85,7 +85,7 @@ public function init() /** * @return void */ - public function afterSurveyComplete() + public function afterSurveyComplete(): void { $event = $this->getEvent(); $surveyId = $event->get('surveyId'); @@ -188,7 +188,7 @@ protected function createSurveyFieldValueProvider(): SurveyFieldValueProvider return new SurveyFieldValueProvider(); } - private function sendPdf($surveyId, $responseId, $chatId, Api $telegram): void + private function sendPdf(int $surveyId, int $responseId, string $chatId, Api $telegram): void { $sendPdf = $this->get( 'SendPdf', @@ -208,7 +208,7 @@ private function sendPdf($surveyId, $responseId, $chatId, Api $telegram): void unlink($pdfPath); } - private function sendCsv($surveyId, $responseId, $chatId, Api $telegram): void + private function sendCsv(int $surveyId, int $responseId, string $chatId, Api $telegram): void { $sendCsv = $this->get( 'SendCsv', @@ -228,7 +228,7 @@ private function sendCsv($surveyId, $responseId, $chatId, Api $telegram): void unlink($pdfPath); } - private function getPdfPath($surveyId, $responseId): string + private function getPdfPath(int $surveyId, int $responseId): string { \Yii::import('application.libraries.admin.quexmlpdf', true); $oSurvey = \Survey::model()->findByPk($surveyId); @@ -247,7 +247,7 @@ private function getPdfPath($surveyId, $responseId): string /** * @return void */ - public function beforeSurveySettings() + public function beforeSurveySettings(): void { $event = $this->getEvent(); $event->set( @@ -367,7 +367,7 @@ public function beforeSurveySettings() /** * @return void */ - public function newSurveySettings() + public function newSurveySettings(): void { $event = $this->getEvent(); From da97876cff13fc1f1c30422087f2b8e7b795d3ab Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 013/169] test: add app runtime stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/AppRuntimeMock.php | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/Support/Stubs/AppRuntimeMock.php diff --git a/tests/Support/Stubs/AppRuntimeMock.php b/tests/Support/Stubs/AppRuntimeMock.php new file mode 100644 index 0000000..f037219 --- /dev/null +++ b/tests/Support/Stubs/AppRuntimeMock.php @@ -0,0 +1,31 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 014/169] test: add plugin base stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/PluginBase.php | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/Support/Stubs/PluginBase.php diff --git a/tests/Support/Stubs/PluginBase.php b/tests/Support/Stubs/PluginBase.php new file mode 100644 index 0000000..aa821f3 --- /dev/null +++ b/tests/Support/Stubs/PluginBase.php @@ -0,0 +1,5 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 015/169] test: add yii stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/Yii.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tests/Support/Stubs/Yii.php diff --git a/tests/Support/Stubs/Yii.php b/tests/Support/Stubs/Yii.php new file mode 100644 index 0000000..983bc30 --- /dev/null +++ b/tests/Support/Stubs/Yii.php @@ -0,0 +1,18 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 016/169] test: add survey stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/Survey.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tests/Support/Stubs/Survey.php diff --git a/tests/Support/Stubs/Survey.php b/tests/Support/Stubs/Survey.php new file mode 100644 index 0000000..7052a08 --- /dev/null +++ b/tests/Support/Stubs/Survey.php @@ -0,0 +1,20 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 017/169] test: add survey dynamic stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/SurveyDynamic.php | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/Support/Stubs/SurveyDynamic.php diff --git a/tests/Support/Stubs/SurveyDynamic.php b/tests/Support/Stubs/SurveyDynamic.php new file mode 100644 index 0000000..72a04ca --- /dev/null +++ b/tests/Support/Stubs/SurveyDynamic.php @@ -0,0 +1,37 @@ +surveyId = $surveyId; + } + + public function findByPk($responseId) + { + if (is_callable(SurveyDynamic::$findByPkHandler)) { + return call_user_func(SurveyDynamic::$findByPkHandler, $this->surveyId, $responseId); + } + + return null; + } + + public function getMaxId() + { + if (is_callable(SurveyDynamic::$getMaxIdHandler)) { + return call_user_func(SurveyDynamic::$getMaxIdHandler, $this->surveyId); + } + + return null; + } + }; + } +} From eab7a7faa480fa09577578f65f020701c81a20cc Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 018/169] test: add formatting options stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/FormattingOptions.php | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/Support/Stubs/FormattingOptions.php diff --git a/tests/Support/Stubs/FormattingOptions.php b/tests/Support/Stubs/FormattingOptions.php new file mode 100644 index 0000000..971788c --- /dev/null +++ b/tests/Support/Stubs/FormattingOptions.php @@ -0,0 +1,5 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 019/169] test: add survey dao stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/SurveyDao.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/Support/Stubs/SurveyDao.php diff --git a/tests/Support/Stubs/SurveyDao.php b/tests/Support/Stubs/SurveyDao.php new file mode 100644 index 0000000..e70d664 --- /dev/null +++ b/tests/Support/Stubs/SurveyDao.php @@ -0,0 +1,23 @@ + */ + public array $fieldMap = []; + + public function getFullAnswer($fieldName, $value, $translator, $responseLanguage): string + { + return (string) $value; + } + }; + } +} From ba4462ff3081852ff9f82b03cf81ddb4e32d3c9a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 020/169] test: add translator stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/Translator.php | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/Support/Stubs/Translator.php diff --git a/tests/Support/Stubs/Translator.php b/tests/Support/Stubs/Translator.php new file mode 100644 index 0000000..2091948 --- /dev/null +++ b/tests/Support/Stubs/Translator.php @@ -0,0 +1,5 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 021/169] test: add view helper stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/viewHelper.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/Support/Stubs/viewHelper.php diff --git a/tests/Support/Stubs/viewHelper.php b/tests/Support/Stubs/viewHelper.php new file mode 100644 index 0000000..17c73f8 --- /dev/null +++ b/tests/Support/Stubs/viewHelper.php @@ -0,0 +1,25 @@ + Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 022/169] test: load split limesurvey stubs Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/LimeSurveyStubs.php | 168 ++---------------------------- 1 file changed, 9 insertions(+), 159 deletions(-) diff --git a/tests/Support/LimeSurveyStubs.php b/tests/Support/LimeSurveyStubs.php index d073fec..ecf7312 100644 --- a/tests/Support/LimeSurveyStubs.php +++ b/tests/Support/LimeSurveyStubs.php @@ -1,161 +1,11 @@ surveyId = $surveyId; - } - - public function findByPk($responseId) - { - if (is_callable(SurveyDynamic::$findByPkHandler)) { - return call_user_func(SurveyDynamic::$findByPkHandler, $this->surveyId, $responseId); - } - - return null; - } - - public function getMaxId() - { - if (is_callable(SurveyDynamic::$getMaxIdHandler)) { - return call_user_func(SurveyDynamic::$getMaxIdHandler, $this->surveyId); - } - - return null; - } - }; - } -} - -class FormattingOptions -{ -} - -class SurveyDao -{ - public static $loadSurveyByIdHandler; - - public function loadSurveyById($surveyId, $language, $options) - { - if (is_callable(self::$loadSurveyByIdHandler)) { - return call_user_func(self::$loadSurveyByIdHandler, $surveyId, $language, $options); - } - - return new class { - /** @var array */ - public array $fieldMap = []; - - public function getFullAnswer($fieldName, $value, $translator, $responseLanguage): string - { - return (string) $value; - } - }; - } -} - -class Translator -{ -} - -class viewHelper -{ - public static $getFieldTextHandler; - public static $getFieldCodeHandler; - - public static function getFieldText($field, array $options = []): string - { - if (is_callable(self::$getFieldTextHandler)) { - return call_user_func(self::$getFieldTextHandler, $field, $options); - } - - return ''; - } - - public static function getFieldCode($field, array $options = []): string - { - if (is_callable(self::$getFieldCodeHandler)) { - return call_user_func(self::$getFieldCodeHandler, $field, $options); - } - - return ''; - } -} +require_once __DIR__ . '/Stubs/AppRuntimeMock.php'; +require_once __DIR__ . '/Stubs/PluginBase.php'; +require_once __DIR__ . '/Stubs/Yii.php'; +require_once __DIR__ . '/Stubs/Survey.php'; +require_once __DIR__ . '/Stubs/SurveyDynamic.php'; +require_once __DIR__ . '/Stubs/FormattingOptions.php'; +require_once __DIR__ . '/Stubs/SurveyDao.php'; +require_once __DIR__ . '/Stubs/Translator.php'; +require_once __DIR__ . '/Stubs/viewHelper.php'; From dc15985697b78c17802ff1c194687d635a3f8688 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 023/169] test: add plugin double in support Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginDouble.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php diff --git a/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php new file mode 100644 index 0000000..37683a5 --- /dev/null +++ b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php @@ -0,0 +1,37 @@ + */ + private array $mockedSettings = []; + + /** @var array> */ + private array $mockedTemplateFields = []; + + /** @param array $settings */ + public function setMockedSettings(array $settings): void + { + $this->mockedSettings = $settings; + } + + /** @param array> $fields */ + public function setMockedTemplateFields(array $fields): void + { + $this->mockedTemplateFields = $fields; + } + + protected function get($key = null, $model = null, $id = null, $default = null) + { + return array_key_exists((string) $key, $this->mockedSettings) + ? $this->mockedSettings[(string) $key] + : $default; + } + + /** @return array> */ + protected function getTemplateFieldValues(int $surveyId, int $responseId): array + { + return $this->mockedTemplateFields; + } +} From eaa9254c8656203cce502d6213ec3c9bba32642e Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 024/169] test: add telegram api stub in support Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Telegram/Bot/Api.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/Support/Telegram/Bot/Api.php diff --git a/tests/Support/Telegram/Bot/Api.php b/tests/Support/Telegram/Bot/Api.php new file mode 100644 index 0000000..c99af63 --- /dev/null +++ b/tests/Support/Telegram/Bot/Api.php @@ -0,0 +1,19 @@ +sendMessageHandler = $sendMessageHandler; + } + + public function sendMessage(array $params): array + { + return ($this->sendMessageHandler)($params); + } +} From 81d59b2b66cfff09028d50bbd337ad25a20f16e7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 025/169] test: mirror plugin unit test layout Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginTest.php | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 tests/Unit/Plugin/LSTelegramNotifyPluginTest.php diff --git a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php new file mode 100644 index 0000000..9b379c5 --- /dev/null +++ b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php @@ -0,0 +1,146 @@ +newInstanceWithoutConstructor(); + $plugin->setMockedSettings($settings); + $plugin->setMockedTemplateFields($templateFields); + + \AppRuntimeMock::$createAbsoluteUrlHandler = $urlHandler; + + $requests = []; + $captureRequest = static function (array $params) use (&$requests): array { + $requests[] = ['sendMessage', $params, null]; + + return ['ok' => true]; + }; + + $telegram = new Telegram\Bot\Api($captureRequest); + + $plugin->sendMessage($surveyId, $responseId, 'chat-99', $telegram, $title); + + $this->assertCount($expectedRequestCount, $requests); + + if ($expectedPayload === null) { + return; + } + + $this->assertSame($expectedPayload['method'], $requests[0][0]); + $this->assertSame($expectedPayload['chat_id'], $requests[0][1]['chat_id']); + $this->assertSame($expectedPayload['parse_mode'], $requests[0][1]['parse_mode']); + $this->assertSame($expectedPayload['text'], $requests[0][1]['text']); + } + + public static function sendMessageProvider(): array + { + return [ + 'send disabled skips telegram request' => [ + [ + 'SendMessage' => false, + ], + 'Any title', + 101, + 202, + null, + [], + 0, + null, + ], + 'send enabled builds payload with placeholders' => [ + [ + 'SendMessage' => true, + 'DefaultText' => 'Survey={surveyId};Response={responseId};Title={title};Pdf={urlPDF}', + 'ParseMode' => 'MarkdownV2', + ], + 'Customer Satisfaction', + 11, + 22, + static function ($route, array $params): string { + return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; + }, + [], + 1, + [ + 'method' => 'sendMessage', + 'chat_id' => 'chat-99', + 'parse_mode' => 'MarkdownV2', + 'text' => 'Survey=11;Response=22;Title=Customer Satisfaction;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=11&id=22', + ], + ], + 'send enabled renders mustache placeholders for survey fields and metadata' => [ + [ + 'SendMessage' => true, + 'DefaultText' => "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}\nSurvey={{surveyId}};Response={{responseId}};Title={{title}}", + 'ParseMode' => 'HTML', + ], + 'Ficha de cadastro', + 55, + 66, + null, + [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ], + 1, + [ + 'method' => 'sendMessage', + 'chat_id' => 'chat-99', + 'parse_mode' => 'HTML', + 'text' => "Pergunta: E-mail para contato\nResposta: ada@example.test\nSurvey=55;Response=66;Title=Ficha de cadastro", + ], + ], + 'send enabled renders shorthand placeholders by field code with prefix and suffix' => [ + [ + 'SendMessage' => true, + 'DefaultText' => "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", + 'ParseMode' => 'HTML', + ], + 'Ficha de cadastro', + 55, + 66, + null, + [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ], + 1, + [ + 'method' => 'sendMessage', + 'chat_id' => 'chat-99', + 'parse_mode' => 'HTML', + 'text' => "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", + ], + ], + ]; + } +} From 95cc579a6e6dd9e236b57d1bae1fb4aa282ab779 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:51 -0300 Subject: [PATCH 026/169] test: mirror survey unit test layout Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Survey/SurveyFieldValueProviderTest.php | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 tests/Unit/Survey/SurveyFieldValueProviderTest.php diff --git a/tests/Unit/Survey/SurveyFieldValueProviderTest.php b/tests/Unit/Survey/SurveyFieldValueProviderTest.php new file mode 100644 index 0000000..98d5a8c --- /dev/null +++ b/tests/Unit/Survey/SurveyFieldValueProviderTest.php @@ -0,0 +1,101 @@ + (object) ['language' => 'pt-BR']; + \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => (object) [ + 'attributes' => [ + '12345X1X1' => 'ada@example.test', + 'startlanguage' => 'pt-BR', + ], + ]; + \SurveyDao::$loadSurveyByIdHandler = static fn (int $surveyId, string $language, \FormattingOptions $options) => new class { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Contato'], + ]; + + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + return strtoupper($value); + } + }; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'E-mail para contato'; + \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'CONTATO[EMAIL]'; + + $provider = new SurveyFieldValueProvider(); + + $values = $provider->getFieldValues(55, 66); + $expected = [ + 'question' => 'E-mail para contato', + 'answer' => 'ADA@EXAMPLE.TEST', + 'raw' => 'ada@example.test', + ]; + + $this->assertSame($expected, $values['CONTATO[EMAIL]']); + $this->assertSame($expected, $values['12345X1X1']); + } + + public function testGetFieldValuesNormalizesArrayValuesAndFallsBackToSurveyLanguage(): void + { + $capturedLanguage = null; + + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => [ + '12345X1X1' => ['Ada', 'Lovelace'], + ]; + \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use (&$capturedLanguage) { + $capturedLanguage = $language; + + return new class { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Nome'], + ]; + + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + return 'Answer: ' . $value; + } + }; + }; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'Nome completo'; + \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'NOME'; + + $provider = new SurveyFieldValueProvider(); + + $values = $provider->getFieldValues(10, 20); + + $this->assertSame('en', $capturedLanguage); + $this->assertSame('Ada, Lovelace', $values['NOME']['raw']); + $this->assertSame('Answer: Ada, Lovelace', $values['NOME']['answer']); + } + + public function testGetFieldValuesReturnsEmptyWhenSurveyOrResponseDoesNotExist(): void + { + $provider = new SurveyFieldValueProvider(); + + $this->assertSame([], $provider->getFieldValues(1, 2)); + + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + + $this->assertSame([], $provider->getFieldValues(1, 2)); + } +} From e281be4a9ec994ad24eea5cd24f3a7dc47d731e7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:52 -0300 Subject: [PATCH 027/169] test: add template renderer unit test Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Template/MessageTemplateRendererTest.php | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tests/Unit/Template/MessageTemplateRendererTest.php diff --git a/tests/Unit/Template/MessageTemplateRendererTest.php b/tests/Unit/Template/MessageTemplateRendererTest.php new file mode 100644 index 0000000..ce2c75c --- /dev/null +++ b/tests/Unit/Template/MessageTemplateRendererTest.php @@ -0,0 +1,64 @@ +assertSame($expected, $renderer->render($template, self::placeholders(), self::fieldValues())); + } + + public static function renderProvider(): array + { + return [ + 'renders metadata placeholders using mustache and legacy syntax' => [ + 'Survey={{surveyId}};Response={responseId};Title={{title}};Pdf={urlPDF}', + 'Survey=55;Response=66;Title=Ficha de cadastro;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', + ], + 'renders explicit field placeholders' => [ + "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}", + "Pergunta: E-mail para contato\nResposta: ada@example.test", + ], + 'renders shorthand field placeholders' => [ + "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", + "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", + ], + 'keeps unknown placeholders untouched' => [ + 'Desconhecido={{naoExiste}}', + 'Desconhecido={{naoExiste}}', + ], + ]; + } + + /** @return array */ + private static function placeholders(): array + { + return [ + 'surveyId' => '55', + 'responseId' => '66', + 'urlPDF' => 'https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', + 'title' => 'Ficha de cadastro', + ]; + } + + /** @return array> */ + private static function fieldValues(): array + { + return [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ]; + } +} From 2c17dd7d74613e2ab5b83e100d64e179caada39f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:52 -0300 Subject: [PATCH 028/169] test: remove legacy flat plugin test Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Unit/LSTelegramNotifyTest.php | 147 ---------------------------- 1 file changed, 147 deletions(-) delete mode 100644 tests/Unit/LSTelegramNotifyTest.php diff --git a/tests/Unit/LSTelegramNotifyTest.php b/tests/Unit/LSTelegramNotifyTest.php deleted file mode 100644 index bb326b2..0000000 --- a/tests/Unit/LSTelegramNotifyTest.php +++ /dev/null @@ -1,147 +0,0 @@ -newInstanceWithoutConstructor(); - $plugin->setMockedSettings($settings); - $plugin->setMockedTemplateFields($templateFields); - - \AppRuntimeMock::$createAbsoluteUrlHandler = $urlHandler; - - $requests = []; - $captureRequest = static function (array $params) use (&$requests): array { - $requests[] = ['sendMessage', $params, null]; - - return ['ok' => true]; - }; - - $telegram = new Telegram\Bot\Api($captureRequest); - - $plugin->sendMessage($surveyId, $responseId, 'chat-99', $telegram, $title); - - $this->assertCount($expectedRequestCount, $requests); - - if ($expectedPayload === null) { - return; - } - - $this->assertSame($expectedPayload['method'], $requests[0][0]); - $this->assertSame($expectedPayload['chat_id'], $requests[0][1]['chat_id']); - $this->assertSame($expectedPayload['parse_mode'], $requests[0][1]['parse_mode']); - $this->assertSame($expectedPayload['text'], $requests[0][1]['text']); - } - - public static function sendMessageProvider(): array - { - return [ - 'send disabled skips telegram request' => [ - [ - 'SendMessage' => false, - ], - 'Any title', - 101, - 202, - null, - [], - 0, - null, - ], - 'send enabled builds payload with placeholders' => [ - [ - 'SendMessage' => true, - 'DefaultText' => 'Survey={surveyId};Response={responseId};Title={title};Pdf={urlPDF}', - 'ParseMode' => 'MarkdownV2', - ], - 'Customer Satisfaction', - 11, - 22, - static function ($route, array $params): string { - return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; - }, - [], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'MarkdownV2', - 'text' => 'Survey=11;Response=22;Title=Customer Satisfaction;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=11&id=22', - ], - ], - 'send enabled renders mustache placeholders for survey fields and metadata' => [ - [ - 'SendMessage' => true, - 'DefaultText' => "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}\nSurvey={{surveyId}};Response={{responseId}};Title={{title}}", - 'ParseMode' => 'HTML', - ], - 'Ficha de cadastro', - 55, - 66, - null, - [ - 'CONTATO[EMAIL]' => [ - 'question' => 'E-mail para contato', - 'answer' => 'ada@example.test', - 'raw' => 'ada@example.test', - ], - ], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'HTML', - 'text' => "Pergunta: E-mail para contato\nResposta: ada@example.test\nSurvey=55;Response=66;Title=Ficha de cadastro", - ], - ], - 'send enabled renders shorthand placeholders by field code with prefix and suffix' => [ - [ - 'SendMessage' => true, - 'DefaultText' => "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", - 'ParseMode' => 'HTML', - ], - 'Ficha de cadastro', - 55, - 66, - null, - [ - 'CONTATO[EMAIL]' => [ - 'question' => 'E-mail para contato', - 'answer' => 'ada@example.test', - 'raw' => 'ada@example.test', - ], - ], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'HTML', - 'text' => "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", - ], - ], - ]; - } -} From 4a67a082930ed55c674e6bf187aef7fdcf41b4eb Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:52 -0300 Subject: [PATCH 029/169] test: remove legacy flat survey test Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- ...gramNotifySurveyFieldValueProviderTest.php | 101 ------------------ 1 file changed, 101 deletions(-) delete mode 100644 tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php diff --git a/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php b/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php deleted file mode 100644 index 34c25f1..0000000 --- a/tests/Unit/LSTelegramNotifySurveyFieldValueProviderTest.php +++ /dev/null @@ -1,101 +0,0 @@ - (object) ['language' => 'pt-BR']; - \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => (object) [ - 'attributes' => [ - '12345X1X1' => 'ada@example.test', - 'startlanguage' => 'pt-BR', - ], - ]; - \SurveyDao::$loadSurveyByIdHandler = static fn (int $surveyId, string $language, \FormattingOptions $options) => new class { - /** @var array> */ - public array $fieldMap = [ - '12345X1X1' => ['title' => 'Contato'], - ]; - - public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string - { - return strtoupper($value); - } - }; - \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'E-mail para contato'; - \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'CONTATO[EMAIL]'; - - $provider = new SurveyFieldValueProvider(); - - $values = $provider->getFieldValues(55, 66); - $expected = [ - 'question' => 'E-mail para contato', - 'answer' => 'ADA@EXAMPLE.TEST', - 'raw' => 'ada@example.test', - ]; - - $this->assertSame($expected, $values['CONTATO[EMAIL]']); - $this->assertSame($expected, $values['12345X1X1']); - } - - public function testGetFieldValuesNormalizesArrayValuesAndFallsBackToSurveyLanguage(): void - { - $capturedLanguage = null; - - \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; - \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => [ - '12345X1X1' => ['Ada', 'Lovelace'], - ]; - \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use (&$capturedLanguage) { - $capturedLanguage = $language; - - return new class { - /** @var array> */ - public array $fieldMap = [ - '12345X1X1' => ['title' => 'Nome'], - ]; - - public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string - { - return 'Answer: ' . $value; - } - }; - }; - \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'Nome completo'; - \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'NOME'; - - $provider = new SurveyFieldValueProvider(); - - $values = $provider->getFieldValues(10, 20); - - $this->assertSame('en', $capturedLanguage); - $this->assertSame('Ada, Lovelace', $values['NOME']['raw']); - $this->assertSame('Answer: Ada, Lovelace', $values['NOME']['answer']); - } - - public function testGetFieldValuesReturnsEmptyWhenSurveyOrResponseDoesNotExist(): void - { - $provider = new SurveyFieldValueProvider(); - - $this->assertSame([], $provider->getFieldValues(1, 2)); - - \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; - - $this->assertSame([], $provider->getFieldValues(1, 2)); - } -} From 3ea9320335cc0343fe8cb522494d2f890716f675 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:52 -0300 Subject: [PATCH 030/169] test: remove legacy plugin test double Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../LSTelegramNotifyTestDouble.php | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php diff --git a/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php b/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php deleted file mode 100644 index 9b1db67..0000000 --- a/tests/Unit/LSTelegramNotifyTest/LSTelegramNotifyTestDouble.php +++ /dev/null @@ -1,35 +0,0 @@ - */ - private array $mockedSettings = []; - - /** @var array> */ - private array $mockedTemplateFields = []; - - /** @param array $settings */ - public function setMockedSettings(array $settings): void - { - $this->mockedSettings = $settings; - } - - /** @param array> $fields */ - public function setMockedTemplateFields(array $fields): void - { - $this->mockedTemplateFields = $fields; - } - - protected function get($key = null, $model = null, $id = null, $default = null) - { - return array_key_exists((string) $key, $this->mockedSettings) - ? $this->mockedSettings[(string) $key] - : $default; - } - - /** @return array> */ - protected function getTemplateFieldValues(int $surveyId, int $responseId): array - { - return $this->mockedTemplateFields; - } -} From 5af7aae28723d6c1256e38cafbcc303efaeb914a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:28:52 -0300 Subject: [PATCH 031/169] test: remove legacy telegram api stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../LSTelegramNotifyTest/Telegram/Bot/Api.php | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 tests/Unit/LSTelegramNotifyTest/Telegram/Bot/Api.php diff --git a/tests/Unit/LSTelegramNotifyTest/Telegram/Bot/Api.php b/tests/Unit/LSTelegramNotifyTest/Telegram/Bot/Api.php deleted file mode 100644 index c99af63..0000000 --- a/tests/Unit/LSTelegramNotifyTest/Telegram/Bot/Api.php +++ /dev/null @@ -1,19 +0,0 @@ -sendMessageHandler = $sendMessageHandler; - } - - public function sendMessage(array $params): array - { - return ($this->sendMessageHandler)($params); - } -} From 4d03220a35217125e8f32444fe5572116f0fc93a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:30:57 -0300 Subject: [PATCH 032/169] refactor: remove redundant helper requires Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index 66108eb..c155b0e 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -7,9 +7,6 @@ use Telegram\Bot\Api; use Telegram\Bot\FileUpload\InputFile; -require_once dirname(__DIR__) . '/Survey/SurveyFieldValueProvider.php'; -require_once dirname(__DIR__) . '/Template/MessageTemplateRenderer.php'; - class LSTelegramNotifyPlugin extends \PluginBase { /** From d2fb74b2111de0c5e633340bf7ba850ca390cbf2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:30:57 -0300 Subject: [PATCH 033/169] refactor: drop redundant message renderer wrapper Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/LSTelegramNotifyMessageTemplateRenderer.php | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 src/LSTelegramNotifyMessageTemplateRenderer.php diff --git a/src/LSTelegramNotifyMessageTemplateRenderer.php b/src/LSTelegramNotifyMessageTemplateRenderer.php deleted file mode 100644 index 027dafa..0000000 --- a/src/LSTelegramNotifyMessageTemplateRenderer.php +++ /dev/null @@ -1,7 +0,0 @@ - Date: Tue, 4 Aug 2026 12:30:57 -0300 Subject: [PATCH 034/169] refactor: drop redundant field value provider wrapper Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/LSTelegramNotifySurveyFieldValueProvider.php | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 src/LSTelegramNotifySurveyFieldValueProvider.php diff --git a/src/LSTelegramNotifySurveyFieldValueProvider.php b/src/LSTelegramNotifySurveyFieldValueProvider.php deleted file mode 100644 index 7364868..0000000 --- a/src/LSTelegramNotifySurveyFieldValueProvider.php +++ /dev/null @@ -1,7 +0,0 @@ - Date: Tue, 4 Aug 2026 12:37:06 -0300 Subject: [PATCH 035/169] fix: add checkbox defaults to survey settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index c155b0e..be79c62 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -48,14 +48,17 @@ class LSTelegramNotifyPlugin extends \PluginBase 'SendPdf' => [ 'type' => 'checkbox', 'label' => 'Check to send the answer as PDF file', + 'default' => false, ], 'SendCsv' => [ 'type' => 'checkbox', 'label' => 'Check to send all answers as CSV file', + 'default' => false, ], 'SendMessage' => [ 'type' => 'checkbox', 'label' => 'Check to send a text message using the default text template', + 'default' => false, ], 'DefaultText' => [ 'type' => 'text', From 0f870f5580f02e871c349778b3bc52dbea0737a3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:37:06 -0300 Subject: [PATCH 036/169] test: enhance plugin double for business rules Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginDouble.php | 78 +++++++++++++++++-- 1 file changed, 70 insertions(+), 8 deletions(-) diff --git a/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php index 37683a5..671fc15 100644 --- a/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php +++ b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php @@ -1,14 +1,27 @@ */ private array $mockedSettings = []; - /** @var array> */ - private array $mockedTemplateFields = []; + private ?object $mockedEvent = null; + + private ?MessageTemplateRenderer $mockedMessageTemplateRenderer = null; + + private ?SurveyFieldValueProvider $mockedSurveyFieldValueProvider = null; + + /** @var array */ + private array $savedSettings = []; + + /** @var string[] */ + private array $subscribedEvents = []; /** @param array $settings */ public function setMockedSettings(array $settings): void @@ -16,10 +29,31 @@ public function setMockedSettings(array $settings): void $this->mockedSettings = $settings; } - /** @param array> $fields */ - public function setMockedTemplateFields(array $fields): void + public function setMockedEvent(object $event): void + { + $this->mockedEvent = $event; + } + + public function setMockedMessageTemplateRenderer(MessageTemplateRenderer $renderer): void + { + $this->mockedMessageTemplateRenderer = $renderer; + } + + public function setMockedSurveyFieldValueProvider(SurveyFieldValueProvider $provider): void + { + $this->mockedSurveyFieldValueProvider = $provider; + } + + /** @return array */ + public function getSavedSettings(): array + { + return $this->savedSettings; + } + + /** @return string[] */ + public function getSubscribedEvents(): array { - $this->mockedTemplateFields = $fields; + return $this->subscribedEvents; } protected function get($key = null, $model = null, $id = null, $default = null) @@ -29,9 +63,37 @@ protected function get($key = null, $model = null, $id = null, $default = null) : $default; } - /** @return array> */ - protected function getTemplateFieldValues(int $surveyId, int $responseId): array + protected function getEvent(): object + { + if ($this->mockedEvent === null) { + throw new \LogicException('Mocked event was not configured.'); + } + + return $this->mockedEvent; + } + + protected function set($name, $value, $model = null, $id = null): void + { + $this->savedSettings[] = [ + 'name' => (string) $name, + 'value' => $value, + 'model' => $model, + 'id' => $id, + ]; + } + + protected function subscribe($eventName): void + { + $this->subscribedEvents[] = (string) $eventName; + } + + protected function createMessageTemplateRenderer(): MessageTemplateRenderer + { + return $this->mockedMessageTemplateRenderer ?? parent::createMessageTemplateRenderer(); + } + + protected function createSurveyFieldValueProvider(): SurveyFieldValueProvider { - return $this->mockedTemplateFields; + return $this->mockedSurveyFieldValueProvider ?? parent::createSurveyFieldValueProvider(); } } From 994b0689721cf032f9c2fdb2e2207229e0e2854f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:37:06 -0300 Subject: [PATCH 037/169] test: focus plugin coverage on business rules Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginTest.php | 322 ++++++++++++------ 1 file changed, 211 insertions(+), 111 deletions(-) diff --git a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php index 9b379c5..591ba6a 100644 --- a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php +++ b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php @@ -4,8 +4,10 @@ require_once dirname(__DIR__, 2) . '/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php'; require_once dirname(__DIR__, 2) . '/Support/Telegram/Bot/Api.php'; -use PHPUnit\Framework\Attributes\DataProvider; +use LibreCodeCoop\LSTelegramNotify\Survey\SurveyFieldValueProvider; +use LibreCodeCoop\LSTelegramNotify\Template\MessageTemplateRenderer; use PHPUnit\Framework\TestCase; +use Telegram\Bot\Api; class LSTelegramNotifyPluginTest extends TestCase { @@ -15,132 +17,230 @@ protected function setUp(): void \AppRuntimeMock::$createAbsoluteUrlHandler = null; } - #[DataProvider('sendMessageProvider')] - public function testSendMessageBehavior( - array $settings, - string $title, - int $surveyId, - int $responseId, - ?callable $urlHandler, - array $templateFields, - int $expectedRequestCount, - ?array $expectedPayload, - ): void { - $plugin = (new \ReflectionClass(\LSTelegramNotifyPluginDouble::class))->newInstanceWithoutConstructor(); - $plugin->setMockedSettings($settings); - $plugin->setMockedTemplateFields($templateFields); - - \AppRuntimeMock::$createAbsoluteUrlHandler = $urlHandler; + public function testInitSubscribesToRequiredPluginEvents(): void + { + $plugin = $this->newPlugin(); + + $plugin->init(); + + $this->assertSame( + ['newSurveySettings', 'afterSurveyComplete', 'beforeSurveySettings'], + $plugin->getSubscribedEvents() + ); + } + + public function testSendMessageSkipsTelegramWhenDisabled(): void + { + $plugin = $this->newPlugin(); + $plugin->setMockedSettings([ + 'SendMessage' => false, + ]); $requests = []; - $captureRequest = static function (array $params) use (&$requests): array { - $requests[] = ['sendMessage', $params, null]; + $telegram = new Api(static function (array $params) use (&$requests): array { + $requests[] = $params; return ['ok' => true]; + }); + + $plugin->sendMessage(101, 202, 'chat-99', $telegram, 'Any title'); + + $this->assertSame([], $requests); + } + + public function testSendMessageDelegatesRenderingWithBasePlaceholdersAndFieldValues(): void + { + $plugin = $this->newPlugin(); + $plugin->setMockedSettings([ + 'SendMessage' => true, + 'DefaultText' => 'Mensagem {{ surveyId }}', + 'ParseMode' => 'MarkdownV2', + ]); + + $fieldValues = [ + 'CONTATO[EMAIL]' => [ + 'question' => 'E-mail para contato', + 'answer' => 'ada@example.test', + 'raw' => 'ada@example.test', + ], + ]; + + $renderer = new class extends MessageTemplateRenderer { + /** @var array, fieldValues: array>}> */ + public array $calls = []; + + public function render(string $template, array $placeholders, array $fieldValues): string + { + $this->calls[] = [ + 'template' => $template, + 'placeholders' => $placeholders, + 'fieldValues' => $fieldValues, + ]; + + return 'Mensagem renderizada'; + } + }; + + $provider = new class($fieldValues) extends SurveyFieldValueProvider { + /** @var array */ + public array $calls = []; + + /** @var array> */ + private array $fieldValues; + + /** @param array> $fieldValues */ + public function __construct(array $fieldValues) + { + $this->fieldValues = $fieldValues; + } + + public function getFieldValues(int $surveyId, int $responseId): array + { + $this->calls[] = [ + 'surveyId' => $surveyId, + 'responseId' => $responseId, + ]; + + return $this->fieldValues; + } + }; + + $plugin->setMockedMessageTemplateRenderer($renderer); + $plugin->setMockedSurveyFieldValueProvider($provider); + + \AppRuntimeMock::$createAbsoluteUrlHandler = static function ($route, array $params): string { + return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; }; - $telegram = new Telegram\Bot\Api($captureRequest); + $requests = []; + $telegram = new Api(static function (array $params) use (&$requests): array { + $requests[] = $params; - $plugin->sendMessage($surveyId, $responseId, 'chat-99', $telegram, $title); + return ['ok' => true]; + }); - $this->assertCount($expectedRequestCount, $requests); + $plugin->sendMessage(55, 66, 'chat-99', $telegram, 'Ficha de cadastro'); - if ($expectedPayload === null) { - return; - } + $this->assertSame([ + [ + 'surveyId' => 55, + 'responseId' => 66, + ], + ], $provider->calls); + $this->assertCount(1, $renderer->calls); + $this->assertSame('Mensagem {{ surveyId }}', $renderer->calls[0]['template']); + $this->assertSame([ + 'surveyId' => '55', + 'responseId' => '66', + 'urlPDF' => 'https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', + 'title' => 'Ficha de cadastro', + ], $renderer->calls[0]['placeholders']); + $this->assertSame($fieldValues, $renderer->calls[0]['fieldValues']); + $this->assertSame([ + [ + 'chat_id' => 'chat-99', + 'parse_mode' => 'MarkdownV2', + 'text' => 'Mensagem renderizada', + ], + ], $requests); + } - $this->assertSame($expectedPayload['method'], $requests[0][0]); - $this->assertSame($expectedPayload['chat_id'], $requests[0][1]['chat_id']); - $this->assertSame($expectedPayload['parse_mode'], $requests[0][1]['parse_mode']); - $this->assertSame($expectedPayload['text'], $requests[0][1]['text']); + public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefaults(): void + { + $plugin = $this->newPlugin(); + $plugin->setMockedSettings([ + 'AuthToken' => 'bot-token', + 'ChatId' => 'chat-42', + 'ParseMode' => 'Markdown', + 'DefaultText' => 'Mensagem padrão', + ]); + + $event = $this->newEvent([ + 'survey' => 77, + ]); + $plugin->setMockedEvent($event); + + $plugin->beforeSurveySettings(); + + $definition = $event->sets['surveysettings.LSTelegramNotify'] ?? null; + + $this->assertIsArray($definition); + $this->assertSame(LSTelegramNotifyPluginDouble::class, $definition['name']); + $this->assertSame('bot-token', $definition['settings']['AuthToken']['current']); + $this->assertSame('chat-42', $definition['settings']['ChatId']['current']); + $this->assertSame('Markdown', $definition['settings']['ParseMode']['current']); + $this->assertFalse($definition['settings']['SendPdf']['current']); + $this->assertFalse($definition['settings']['SendCsv']['current']); + $this->assertFalse($definition['settings']['SendMessage']['current']); + $this->assertSame('Mensagem padrão', $definition['settings']['DefaultText']['current']); } - public static function sendMessageProvider(): array + public function testNewSurveySettingsPersistsEachIncomingSurveySetting(): void { - return [ - 'send disabled skips telegram request' => [ - [ - 'SendMessage' => false, - ], - 'Any title', - 101, - 202, - null, - [], - 0, - null, + $plugin = $this->newPlugin(); + $event = $this->newEvent([ + 'survey' => 88, + 'settings' => [ + 'ChatId' => 'chat-88', + 'SendMessage' => true, + 'DefaultText' => 'Olá', ], - 'send enabled builds payload with placeholders' => [ - [ - 'SendMessage' => true, - 'DefaultText' => 'Survey={surveyId};Response={responseId};Title={title};Pdf={urlPDF}', - 'ParseMode' => 'MarkdownV2', - ], - 'Customer Satisfaction', - 11, - 22, - static function ($route, array $params): string { - return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; - }, - [], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'MarkdownV2', - 'text' => 'Survey=11;Response=22;Title=Customer Satisfaction;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=11&id=22', - ], + ]); + $plugin->setMockedEvent($event); + + $plugin->newSurveySettings(); + + $this->assertSame([ + [ + 'name' => 'ChatId', + 'value' => 'chat-88', + 'model' => 'Survey', + 'id' => 88, ], - 'send enabled renders mustache placeholders for survey fields and metadata' => [ - [ - 'SendMessage' => true, - 'DefaultText' => "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}\nSurvey={{surveyId}};Response={{responseId}};Title={{title}}", - 'ParseMode' => 'HTML', - ], - 'Ficha de cadastro', - 55, - 66, - null, - [ - 'CONTATO[EMAIL]' => [ - 'question' => 'E-mail para contato', - 'answer' => 'ada@example.test', - 'raw' => 'ada@example.test', - ], - ], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'HTML', - 'text' => "Pergunta: E-mail para contato\nResposta: ada@example.test\nSurvey=55;Response=66;Title=Ficha de cadastro", - ], + [ + 'name' => 'SendMessage', + 'value' => true, + 'model' => 'Survey', + 'id' => 88, ], - 'send enabled renders shorthand placeholders by field code with prefix and suffix' => [ - [ - 'SendMessage' => true, - 'DefaultText' => "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", - 'ParseMode' => 'HTML', - ], - 'Ficha de cadastro', - 55, - 66, - null, - [ - 'CONTATO[EMAIL]' => [ - 'question' => 'E-mail para contato', - 'answer' => 'ada@example.test', - 'raw' => 'ada@example.test', - ], - ], - 1, - [ - 'method' => 'sendMessage', - 'chat_id' => 'chat-99', - 'parse_mode' => 'HTML', - 'text' => "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", - ], + [ + 'name' => 'DefaultText', + 'value' => 'Olá', + 'model' => 'Survey', + 'id' => 88, ], - ]; + ], $plugin->getSavedSettings()); + } + + private function newPlugin(): LSTelegramNotifyPluginDouble + { + return (new \ReflectionClass(LSTelegramNotifyPluginDouble::class))->newInstanceWithoutConstructor(); + } + + private function newEvent(array $values): object + { + return new class($values) { + /** @var array */ + private array $values; + + /** @var array */ + public array $sets = []; + + /** @param array $values */ + public function __construct(array $values) + { + $this->values = $values; + } + + public function get(string $name) + { + return $this->values[$name] ?? null; + } + + public function set(string $name, $value): void + { + $this->sets[$name] = $value; + } + }; } } From cc02c5778befadddfdf6099bfd842f51d3224510 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:37:06 -0300 Subject: [PATCH 038/169] test: strengthen survey field value provider coverage Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Survey/SurveyFieldValueProviderTest.php | 138 +++++++++++++++--- 1 file changed, 114 insertions(+), 24 deletions(-) diff --git a/tests/Unit/Survey/SurveyFieldValueProviderTest.php b/tests/Unit/Survey/SurveyFieldValueProviderTest.php index 98d5a8c..329ee0d 100644 --- a/tests/Unit/Survey/SurveyFieldValueProviderTest.php +++ b/tests/Unit/Survey/SurveyFieldValueProviderTest.php @@ -1,7 +1,6 @@ (object) ['language' => 'pt-BR']; + $provider = new SurveyFieldValueProvider(); + + $this->assertSame([], $provider->getFieldValues(1, 2)); + } + + public function testGetFieldValuesReturnsEmptyWhenResponseDoesNotExist(): void + { + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + + $provider = new SurveyFieldValueProvider(); + + $this->assertSame([], $provider->getFieldValues(1, 2)); + } + + public function testGetFieldValuesBuildsEntriesUsingResponseLanguageWhenAvailable(): void + { + $spy = (object) [ + 'loadedLanguage' => null, + 'fullAnswerCalls' => [], + ]; + + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => (object) [ 'attributes' => [ '12345X1X1' => 'ada@example.test', 'startlanguage' => 'pt-BR', ], ]; - \SurveyDao::$loadSurveyByIdHandler = static fn (int $surveyId, string $language, \FormattingOptions $options) => new class { - /** @var array> */ - public array $fieldMap = [ - '12345X1X1' => ['title' => 'Contato'], - ]; + \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use ($spy) { + $spy->loadedLanguage = $language; - public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string - { - return strtoupper($value); - } + return new class($spy) { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Contato'], + ]; + + private object $spy; + + public function __construct(object $spy) + { + $this->spy = $spy; + } + + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + $this->spy->fullAnswerCalls[] = [ + 'fieldName' => $fieldName, + 'value' => $value, + 'responseLanguage' => $responseLanguage, + ]; + + return strtoupper($value); + } + }; }; - \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => 'E-mail para contato'; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => ' E-mail para contato '; \viewHelper::$getFieldCodeHandler = static fn (array $field, array $options): string => 'CONTATO[EMAIL]'; $provider = new SurveyFieldValueProvider(); @@ -49,29 +87,53 @@ public function getFullAnswer(string $fieldName, string $value, \Translator $tra 'raw' => 'ada@example.test', ]; + $this->assertSame('pt-BR', $spy->loadedLanguage); + $this->assertSame([ + [ + 'fieldName' => '12345X1X1', + 'value' => 'ada@example.test', + 'responseLanguage' => 'pt-BR', + ], + ], $spy->fullAnswerCalls); $this->assertSame($expected, $values['CONTATO[EMAIL]']); $this->assertSame($expected, $values['12345X1X1']); } - public function testGetFieldValuesNormalizesArrayValuesAndFallsBackToSurveyLanguage(): void + public function testGetFieldValuesFallsBackToSurveyLanguageAndNormalizesArrayValues(): void { - $capturedLanguage = null; + $spy = (object) [ + 'loadedLanguage' => null, + 'fullAnswerCalls' => [], + ]; \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => [ '12345X1X1' => ['Ada', 'Lovelace'], ]; - \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use (&$capturedLanguage) { - $capturedLanguage = $language; + \SurveyDao::$loadSurveyByIdHandler = static function (int $surveyId, string $language, \FormattingOptions $options) use ($spy) { + $spy->loadedLanguage = $language; - return new class { + return new class($spy) { /** @var array> */ public array $fieldMap = [ '12345X1X1' => ['title' => 'Nome'], ]; + private object $spy; + + public function __construct(object $spy) + { + $this->spy = $spy; + } + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string { + $this->spy->fullAnswerCalls[] = [ + 'fieldName' => $fieldName, + 'value' => $value, + 'responseLanguage' => $responseLanguage, + ]; + return 'Answer: ' . $value; } }; @@ -83,19 +145,47 @@ public function getFullAnswer(string $fieldName, string $value, \Translator $tra $values = $provider->getFieldValues(10, 20); - $this->assertSame('en', $capturedLanguage); + $this->assertSame('en', $spy->loadedLanguage); + $this->assertSame([ + [ + 'fieldName' => '12345X1X1', + 'value' => 'Ada, Lovelace', + 'responseLanguage' => 'en', + ], + ], $spy->fullAnswerCalls); $this->assertSame('Ada, Lovelace', $values['NOME']['raw']); $this->assertSame('Answer: Ada, Lovelace', $values['NOME']['answer']); } - public function testGetFieldValuesReturnsEmptyWhenSurveyOrResponseDoesNotExist(): void + public function testGetFieldValuesIgnoresFieldsMissingFromResponse(): void { - $provider = new SurveyFieldValueProvider(); + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; + \SurveyDynamic::$findByPkHandler = static fn (int $surveyId, int $responseId) => [ + '12345X1X1' => 'ada@example.test', + ]; + \SurveyDao::$loadSurveyByIdHandler = static fn (int $surveyId, string $language, \FormattingOptions $options) => new class { + /** @var array> */ + public array $fieldMap = [ + '12345X1X1' => ['title' => 'Contato'], + '12345X1X2' => ['title' => 'Telefone'], + ]; - $this->assertSame([], $provider->getFieldValues(1, 2)); + public function getFullAnswer(string $fieldName, string $value, \Translator $translator, string $responseLanguage): string + { + return strtoupper($value); + } + }; + \viewHelper::$getFieldTextHandler = static fn (array $field, array $options): string => $field['title']; + \viewHelper::$getFieldCodeHandler = static function (array $field, array $options): string { + return $field['title'] === 'Contato' ? 'CONTATO[EMAIL]' : 'CONTATO[PHONE]'; + }; - \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'en']; + $provider = new SurveyFieldValueProvider(); - $this->assertSame([], $provider->getFieldValues(1, 2)); + $values = $provider->getFieldValues(55, 66); + + $this->assertArrayHasKey('CONTATO[EMAIL]', $values); + $this->assertArrayNotHasKey('CONTATO[PHONE]', $values); + $this->assertArrayNotHasKey('12345X1X2', $values); } } From e45e3bc49f0914e767468fadf9286e33b4f99340 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:37:06 -0300 Subject: [PATCH 039/169] test: strengthen message template renderer coverage Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Template/MessageTemplateRendererTest.php | 84 ++++++++++++++----- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/tests/Unit/Template/MessageTemplateRendererTest.php b/tests/Unit/Template/MessageTemplateRendererTest.php index ce2c75c..8a3e06e 100644 --- a/tests/Unit/Template/MessageTemplateRendererTest.php +++ b/tests/Unit/Template/MessageTemplateRendererTest.php @@ -1,42 +1,80 @@ assertSame($expected, $renderer->render($template, self::placeholders(), self::fieldValues())); + $this->assertSame( + 'Survey=55;Response=66;Title=Ficha de cadastro;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', + $renderer->render( + 'Survey={{surveyId}};Response={responseId};Title={{title}};Pdf={urlPDF}', + self::placeholders(), + self::fieldValues() + ) + ); } - public static function renderProvider(): array + public function testRenderTrimsWhitespaceInsideMustachePlaceholders(): void { - return [ - 'renders metadata placeholders using mustache and legacy syntax' => [ - 'Survey={{surveyId}};Response={responseId};Title={{title}};Pdf={urlPDF}', - 'Survey=55;Response=66;Title=Ficha de cadastro;Pdf=https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', - ], - 'renders explicit field placeholders' => [ - "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}", - "Pergunta: E-mail para contato\nResposta: ada@example.test", - ], - 'renders shorthand field placeholders' => [ + $renderer = new MessageTemplateRenderer(); + + $this->assertSame( + 'Survey=55;Resposta=ada@example.test', + $renderer->render( + 'Survey={{ surveyId }};Resposta={{ field:CONTATO[EMAIL].answer }}', + self::placeholders(), + self::fieldValues() + ) + ); + } + + public function testRenderResolvesExplicitFieldPlaceholders(): void + { + $renderer = new MessageTemplateRenderer(); + + $this->assertSame( + "Pergunta: E-mail para contato\nResposta: ada@example.test\nValor bruto: ada@example.test", + $renderer->render( + "Pergunta: {{field:CONTATO[EMAIL].question}}\nResposta: {{field:CONTATO[EMAIL].answer}}\nValor bruto: {{field:CONTATO[EMAIL].raw}}", + self::placeholders(), + self::fieldValues() + ) + ); + } + + public function testRenderResolvesShorthandFieldPlaceholders(): void + { + $renderer = new MessageTemplateRenderer(); + + $this->assertSame( + "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", + $renderer->render( "Pergunta: {{CONTATO[EMAIL]}}\nResposta A: {{CONTATO[EMAIL]_answer}}\nResposta B: {{answer_CONTATO[EMAIL]}}\nRaw: {{raw_CONTATO[EMAIL]}}", - "Pergunta: E-mail para contato\nResposta A: ada@example.test\nResposta B: ada@example.test\nRaw: ada@example.test", - ], - 'keeps unknown placeholders untouched' => [ - 'Desconhecido={{naoExiste}}', - 'Desconhecido={{naoExiste}}', - ], - ]; + self::placeholders(), + self::fieldValues() + ) + ); + } + + public function testRenderLeavesUnknownPlaceholdersUntouched(): void + { + $renderer = new MessageTemplateRenderer(); + + $this->assertSame( + 'Desconhecido={{naoExiste}};Incompleto={{field:CONTATO[EMAIL].missing}}', + $renderer->render( + 'Desconhecido={{naoExiste}};Incompleto={{field:CONTATO[EMAIL].missing}}', + self::placeholders(), + self::fieldValues() + ) + ); } /** @return array */ From 02d51f674f9b159f61259733c3716eb46e2f7ec7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:43:19 -0300 Subject: [PATCH 040/169] feat: add safer telegram message options Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 161 +++++++++++++++++++++++--- 1 file changed, 147 insertions(+), 14 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index be79c62..d7a2634 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -28,6 +28,11 @@ class LSTelegramNotifyPlugin extends \PluginBase * @var string[][] */ protected $settings = [ + 'Enable' => [ + 'type' => 'checkbox', + 'label' => 'Enable telegram notifications', + 'default' => true, + ], 'AuthToken' => [ 'type' => 'string', 'label' => 'Auth Token', @@ -41,7 +46,7 @@ class LSTelegramNotifyPlugin extends \PluginBase 'ParseMode' => [ 'type' => 'select', 'label' => 'Parse mode', - 'options' => array('HTML' => 'HTML', 'Markdown' => 'Markdown', 'MarkdownV2' => 'MarkdownV2'), + 'options' => array('HTML' => 'HTML', 'Markdown' => 'Markdown', 'MarkdownV2' => 'MarkdownV2', 'Text' => 'Text'), 'help' => 'As the Telegram bot API formatting options.', 'default' => 'HTML', ], @@ -89,8 +94,18 @@ public function afterSurveyComplete(): void { $event = $this->getEvent(); $surveyId = $event->get('surveyId'); + + if (!$this->isNotificationEnabled((int) $surveyId)) { + return; + } + $responseId = $event->get('responseId'); $oSurvey = \Survey::model()->findByPk($surveyId); + + if ($oSurvey === null) { + return; + } + $chatId = $this->get( 'ChatId', 'Survey', @@ -119,6 +134,14 @@ public function sendMessage(int $surveyId, int $responseId, string $chatId, Api if (!$sendMessage) { return; } + + $parseMode = (string) $this->get( + 'ParseMode', + 'Survey', + $surveyId, + $this->get('ParseMode') + ); + $text = $this->renderMessageTemplate( $this->get( 'DefaultText', @@ -128,26 +151,36 @@ public function sendMessage(int $surveyId, int $responseId, string $chatId, Api ), $surveyId, $responseId, - $title + $title, + $parseMode ); - $telegram->sendMessage([ + + $request = [ 'chat_id' => $chatId, - 'parse_mode' => $this->get( - 'ParseMode', - 'Survey', - $surveyId, - $this->get('ParseMode') - ), 'text' => $text - ]); + ]; + + if (!$this->isPlainTextParseMode($parseMode)) { + $request['parse_mode'] = $parseMode; + } + + $telegram->sendMessage($request); } - protected function renderMessageTemplate(string $template, int $surveyId, int $responseId, string $title): string + protected function renderMessageTemplate(string $template, int $surveyId, int $responseId, string $title, string $parseMode = ''): string { + $placeholders = $this->getBaseTemplatePlaceholders($surveyId, $responseId, $title); + $fieldValues = $this->getTemplateFieldValues($surveyId, $responseId); + + if ($this->shouldEscapeTemplateValues($parseMode)) { + $placeholders = $this->escapeTemplatePlaceholders($placeholders); + $fieldValues = $this->escapeTemplateFieldValues($fieldValues); + } + return $this->createMessageTemplateRenderer()->render( $template, - $this->getBaseTemplatePlaceholders($surveyId, $responseId, $title), - $this->getTemplateFieldValues($surveyId, $responseId) + $placeholders, + $fieldValues ); } @@ -166,10 +199,94 @@ protected function getBaseTemplatePlaceholders(int $surveyId, int $responseId, s 'id' => $responseId, ] ), + 'urlSurvey' => \App()->createAbsoluteUrl( + '/surveyAdministration/view', + [ + 'surveyid' => $surveyId, + ] + ), + 'urlDetails' => \App()->createAbsoluteUrl( + '/responses/view', + [ + 'surveyId' => $surveyId, + 'id' => $responseId, + ] + ), + 'urlEdit' => \App()->createAbsoluteUrl( + "/admin/dataentry/sa/editdata/subaction/edit/surveyId/$surveyId/id/$responseId/browseLang" + ), + 'urlExport' => \App()->createAbsoluteUrl( + "/admin/export/sa/exportresults/surveyid/$surveyId/id/$responseId" + ), + 'urlAttachments' => \App()->createAbsoluteUrl( + '/responses/downloadfiles', + [ + 'surveyId' => $surveyId, + 'responseIds' => $responseId, + ] + ), 'title' => $title, ]; } + protected function isNotificationEnabled(int $surveyId): bool + { + return (bool) $this->get( + 'Enable', + 'Survey', + $surveyId, + $this->get( + 'Enable', + null, + null, + $this->settings['Enable']['default'] + ) + ); + } + + protected function isPlainTextParseMode(string $parseMode): bool + { + return strcasecmp($parseMode, 'Text') === 0; + } + + protected function shouldEscapeTemplateValues(string $parseMode): bool + { + return strcasecmp($parseMode, 'HTML') === 0; + } + + /** + * @param array $placeholders + * + * @return array + */ + protected function escapeTemplatePlaceholders(array $placeholders): array + { + return array_map(function (string $value): string { + return $this->escapeTemplateValue($value); + }, $placeholders); + } + + /** + * @param array> $fieldValues + * + * @return array> + */ + protected function escapeTemplateFieldValues(array $fieldValues): array + { + foreach ($fieldValues as $fieldCode => $fieldValue) { + foreach ($fieldValue as $property => $value) { + $fieldValues[$fieldCode][$property] = $this->escapeTemplateValue($value); + } + } + + return $fieldValues; + } + + protected function escapeTemplateValue(string $value): string + { + return htmlspecialchars($value, ENT_QUOTES); + } + protected function createMessageTemplateRenderer(): MessageTemplateRenderer { return new MessageTemplateRenderer(); @@ -255,13 +372,29 @@ public function beforeSurveySettings(): void [ 'name' => get_class($this), 'settings' => [ + 'Enable' => [ + 'type' => $this->settings['Enable']['type'], + 'label' => $this->settings['Enable']['label'], + 'default' => $this->settings['Enable']['default'], + 'current' => $this->get( + 'Enable', + 'Survey', + $event->get('survey'), + $this->get( + 'Enable', + null, + null, + $this->settings['Enable']['default'] + ) + ), + ], 'SettingsInfo' => [ 'type' => 'info', 'content' => 'Telegram settings' ], 'AuthToken' => [ 'type' => 'string', - 'label' => $this->settings['AuthToken']['help'], + 'label' => $this->settings['AuthToken']['label'], 'help' => $this->settings['AuthToken']['help'], 'current' => $this->get( 'AuthToken', From 5882a87d1c36ebd9247c0b85b4e1c26f7ec2d883 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:43:19 -0300 Subject: [PATCH 041/169] test: cover imported fork improvements Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginTest.php | 165 +++++++++++++++++- 1 file changed, 163 insertions(+), 2 deletions(-) diff --git a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php index 591ba6a..51f2084 100644 --- a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php +++ b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php @@ -29,6 +29,64 @@ public function testInitSubscribesToRequiredPluginEvents(): void ); } + public function testAfterSurveyCompleteSkipsProcessingWhenNotificationsAreDisabled(): void + { + $plugin = new class extends LSTelegramNotifyPluginDouble { + /** @var array> */ + public array $sendMessageCalls = []; + + public function sendMessage(int $surveyId, int $responseId, string $chatId, Api $telegram, string $title): void + { + $this->sendMessageCalls[] = [ + 'surveyId' => $surveyId, + 'responseId' => $responseId, + 'chatId' => $chatId, + 'title' => $title, + ]; + } + }; + $plugin->setMockedSettings([ + 'Enable' => false, + ]); + $plugin->setMockedEvent($this->newEvent([ + 'surveyId' => 55, + 'responseId' => 66, + ])); + + $plugin->afterSurveyComplete(); + + $this->assertSame([], $plugin->sendMessageCalls); + } + + public function testAfterSurveyCompleteSkipsProcessingWhenSurveyCannotBeLoaded(): void + { + $plugin = new class extends LSTelegramNotifyPluginDouble { + /** @var array> */ + public array $sendMessageCalls = []; + + public function sendMessage(int $surveyId, int $responseId, string $chatId, Api $telegram, string $title): void + { + $this->sendMessageCalls[] = [ + 'surveyId' => $surveyId, + 'responseId' => $responseId, + 'chatId' => $chatId, + 'title' => $title, + ]; + } + }; + $plugin->setMockedSettings([ + 'Enable' => true, + ]); + $plugin->setMockedEvent($this->newEvent([ + 'surveyId' => 55, + 'responseId' => 66, + ])); + + $plugin->afterSurveyComplete(); + + $this->assertSame([], $plugin->sendMessageCalls); + } + public function testSendMessageSkipsTelegramWhenDisabled(): void { $plugin = $this->newPlugin(); @@ -109,7 +167,9 @@ public function getFieldValues(int $surveyId, int $responseId): array $plugin->setMockedSurveyFieldValueProvider($provider); \AppRuntimeMock::$createAbsoluteUrlHandler = static function ($route, array $params): string { - return 'https://example.test' . $route . '?surveyid=' . $params['surveyid'] . '&id=' . $params['id']; + $query = http_build_query($params); + + return 'https://example.test' . $route . ($query !== '' ? '?' . $query : ''); }; $requests = []; @@ -133,18 +193,115 @@ public function getFieldValues(int $surveyId, int $responseId): array 'surveyId' => '55', 'responseId' => '66', 'urlPDF' => 'https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', + 'urlSurvey' => 'https://example.test/surveyAdministration/view?surveyid=55', + 'urlDetails' => 'https://example.test/responses/view?surveyId=55&id=66', + 'urlEdit' => 'https://example.test/admin/dataentry/sa/editdata/subaction/edit/surveyId/55/id/66/browseLang', + 'urlExport' => 'https://example.test/admin/export/sa/exportresults/surveyid/55/id/66', + 'urlAttachments' => 'https://example.test/responses/downloadfiles?surveyId=55&responseIds=66', 'title' => 'Ficha de cadastro', ], $renderer->calls[0]['placeholders']); $this->assertSame($fieldValues, $renderer->calls[0]['fieldValues']); $this->assertSame([ [ 'chat_id' => 'chat-99', - 'parse_mode' => 'MarkdownV2', 'text' => 'Mensagem renderizada', + 'parse_mode' => 'MarkdownV2', + ], + ], $requests); + } + + public function testSendMessageEscapesTemplateValuesWhenParseModeIsHtml(): void + { + $plugin = $this->newPlugin(); + $plugin->setMockedSettings([ + 'SendMessage' => true, + 'DefaultText' => 'Mensagem {{ title }}', + 'ParseMode' => 'HTML', + ]); + + $renderer = new class extends MessageTemplateRenderer { + /** @var array, fieldValues: array>}> */ + public array $calls = []; + + public function render(string $template, array $placeholders, array $fieldValues): string + { + $this->calls[] = [ + 'placeholders' => $placeholders, + 'fieldValues' => $fieldValues, + ]; + + return 'Mensagem segura'; + } + }; + + $provider = new class extends SurveyFieldValueProvider { + public function getFieldValues(int $surveyId, int $responseId): array + { + return [ + 'CONTATO[EMAIL]' => [ + 'question' => 'Nome visível', + 'answer' => 'Ada & Bob', + 'raw' => '"quoted"', + ], + ]; + } + }; + + $plugin->setMockedMessageTemplateRenderer($renderer); + $plugin->setMockedSurveyFieldValueProvider($provider); + + $requests = []; + $telegram = new Api(static function (array $params) use (&$requests): array { + $requests[] = $params; + + return ['ok' => true]; + }); + + $plugin->sendMessage(55, 66, 'chat-99', $telegram, 'Ficha & confirmação'); + + $this->assertCount(1, $renderer->calls); + $this->assertSame('Ficha <cadastro> & confirmação', $renderer->calls[0]['placeholders']['title']); + $this->assertSame('https://example.test/admin/responses/sa/viewquexmlpdf?surveyid=55&id=66', $renderer->calls[0]['placeholders']['urlPDF']); + $this->assertSame([ + 'CONTATO[EMAIL]' => [ + 'question' => 'Nome <b>visível</b>', + 'answer' => 'Ada & Bob', + 'raw' => '"quoted"', + ], + ], $renderer->calls[0]['fieldValues']); + $this->assertSame([ + [ + 'chat_id' => 'chat-99', + 'text' => 'Mensagem segura', + 'parse_mode' => 'HTML', ], ], $requests); } + public function testSendMessageOmitsParseModeWhenTextModeIsSelected(): void + { + $plugin = $this->newPlugin(); + $plugin->setMockedSettings([ + 'SendMessage' => true, + 'DefaultText' => 'Texto puro', + 'ParseMode' => 'Text', + ]); + + $requests = []; + $telegram = new Api(static function (array $params) use (&$requests): array { + $requests[] = $params; + + return ['ok' => true]; + }); + + $plugin->sendMessage(55, 66, 'chat-99', $telegram, 'Título'); + + $this->assertCount(1, $requests); + $this->assertSame('chat-99', $requests[0]['chat_id']); + $this->assertSame('Texto puro', $requests[0]['text']); + $this->assertArrayNotHasKey('parse_mode', $requests[0]); + } + public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefaults(): void { $plugin = $this->newPlugin(); @@ -166,9 +323,13 @@ public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefault $this->assertIsArray($definition); $this->assertSame(LSTelegramNotifyPluginDouble::class, $definition['name']); + $this->assertTrue($definition['settings']['Enable']['current']); + $this->assertSame('Enable telegram notifications', $definition['settings']['Enable']['label']); + $this->assertSame('Auth Token', $definition['settings']['AuthToken']['label']); $this->assertSame('bot-token', $definition['settings']['AuthToken']['current']); $this->assertSame('chat-42', $definition['settings']['ChatId']['current']); $this->assertSame('Markdown', $definition['settings']['ParseMode']['current']); + $this->assertSame('Text', $definition['settings']['ParseMode']['options']['Text']); $this->assertFalse($definition['settings']['SendPdf']['current']); $this->assertFalse($definition['settings']['SendCsv']['current']); $this->assertFalse($definition['settings']['SendMessage']['current']); From 80c27d7ee8f09e3089f94e41b40686a11307546f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:43:19 -0300 Subject: [PATCH 042/169] docs: document telegram placeholders Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- README.md | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec93584..b11750c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ # LimeSurvey LSTelegramNotify Plugin -The Limesurvey LSTelegramNotify plugin allows you to send after Survey event to Telegram. +The LimeSurvey `LSTelegramNotify` plugin sends survey completion notifications to Telegram. + +Useful improvements inspired by the `LSTelegramNotifyPlus` fork and now available here include: + +- global/per-survey `Enable` switch for notifications +- HTML-safe rendering when using `ParseMode = HTML` +- plain `Text` mode without Telegram `parse_mode` +- extra URL placeholders for common survey/response actions +- mustache placeholders for survey question/answer/raw values @@ -12,6 +20,39 @@ The Limesurvey LSTelegramNotify plugin allows you to send after Survey event to - Activate the plugin at the Limesurvey plugin manager (requires proper user rights for accessing the feature at the Limesurvey admin interface). - Configure the plugin at the settings page +## Available placeholders + +### Metadata placeholders + +These placeholders work in both legacy and mustache syntax: + +- `{title}` / `{{title}}` +- `{surveyId}` / `{{surveyId}}` +- `{responseId}` / `{{responseId}}` +- `{urlPDF}` / `{{urlPDF}}` +- `{urlSurvey}` / `{{urlSurvey}}` +- `{urlDetails}` / `{{urlDetails}}` +- `{urlEdit}` / `{{urlEdit}}` +- `{urlExport}` / `{{urlExport}}` +- `{urlAttachments}` / `{{urlAttachments}}` + +When `ParseMode` is `HTML`, all placeholder values are escaped before rendering so survey content cannot break the markup. + +### Survey field placeholders + +Use field codes in mustache syntax to inject survey questions and responses: + +- `{{field:FIELD_CODE.question}}` +- `{{field:FIELD_CODE.answer}}` +- `{{field:FIELD_CODE.raw}}` + +Shorthand aliases are also available: + +- `{{FIELD_CODE}}` +- `{{FIELD_CODE_answer}}` +- `{{answer_FIELD_CODE}}` +- `{{raw_FIELD_CODE}}` + ### Custom settings by survey From 9ea631968515f43b8dd77d975cedc286f2cf9c85 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:43:19 -0300 Subject: [PATCH 043/169] chore: declare limesurvey 6 compatibility Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- config.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.xml b/config.xml index f60e3b6..36f40cf 100644 --- a/config.xml +++ b/config.xml @@ -15,6 +15,7 @@ + 6.0 5.0 4.0 3.0 From c11a268c03b08524570f0bb15d2a3ef55b5bb7e1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:52:06 -0300 Subject: [PATCH 044/169] chore: declare limesurvey 7 compatibility Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- config.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.xml b/config.xml index 36f40cf..035a3cd 100644 --- a/config.xml +++ b/config.xml @@ -15,6 +15,7 @@ + 7.0 6.0 5.0 4.0 From e7b2818cbc2ea806fbba79b494f380cc1d5210b2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:57:56 -0300 Subject: [PATCH 045/169] feat: expose template placeholders in settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 168 ++++++++++++++++++++++++-- 1 file changed, 160 insertions(+), 8 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index d7a2634..0f8f410 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -82,6 +82,7 @@ class LSTelegramNotifyPlugin extends \PluginBase */ public function init(): void { + $this->settings['DefaultText']['help'] = $this->buildDefaultTextHelp(); $this->subscribe('newSurveySettings'); $this->subscribe('afterSurveyComplete'); $this->subscribe('beforeSurveySettings'); @@ -287,6 +288,155 @@ protected function escapeTemplateValue(string $value): string return htmlspecialchars($value, ENT_QUOTES); } + protected function buildDefaultTextHelp(?int $surveyId = null): string + { + $sections = [ + '

Available placeholders for the Telegram message template:

', + '

Metadata placeholders

', + '
    ' . $this->buildMetadataPlaceholderHelpItems() . '
', + '

Survey field syntax

', + '
    ' . $this->buildFieldSyntaxHelpItems() . '
', + '

When ParseMode is HTML, placeholder values are escaped automatically before rendering.

', + ]; + + if ($surveyId === null) { + $sections[] = '

Open the survey-specific plugin settings to see the field codes available for a particular survey.

'; + + return implode("\n", $sections); + } + + $fieldCatalog = $this->getSurveyFieldPlaceholderCatalog($surveyId); + + if ($fieldCatalog === []) { + $sections[] = '

No field codes could be identified for this survey.

'; + + return implode("\n", $sections); + } + + $fieldItems = []; + + foreach ($fieldCatalog as $fieldCode => $label) { + $fieldItems[] = sprintf( + '
  • %s — %s
  • ', + htmlspecialchars($fieldCode, ENT_QUOTES), + htmlspecialchars($label, ENT_QUOTES) + ); + } + + $sections[] = '

    Field codes available in this survey

    '; + $sections[] = '
      ' . implode('', $fieldItems) . '
    '; + + return implode("\n", $sections); + } + + protected function buildMetadataPlaceholderHelpItems(): string + { + $placeholders = [ + ['tokens' => ['{title}', '{{title}}'], 'description' => 'Survey title'], + ['tokens' => ['{surveyId}', '{{surveyId}}'], 'description' => 'Survey identifier'], + ['tokens' => ['{responseId}', '{{responseId}}'], 'description' => 'Response identifier'], + ['tokens' => ['{urlPDF}', '{{urlPDF}}'], 'description' => 'PDF download URL'], + ['tokens' => ['{urlSurvey}', '{{urlSurvey}}'], 'description' => 'Survey administration URL'], + ['tokens' => ['{urlDetails}', '{{urlDetails}}'], 'description' => 'Response details URL'], + ['tokens' => ['{urlEdit}', '{{urlEdit}}'], 'description' => 'Response edit URL'], + ['tokens' => ['{urlExport}', '{{urlExport}}'], 'description' => 'Response export URL'], + ['tokens' => ['{urlAttachments}', '{{urlAttachments}}'], 'description' => 'Response attachments URL'], + ]; + + $items = []; + + foreach ($placeholders as $placeholder) { + $items[] = sprintf( + '
  • %s — %s
  • ', + $this->formatHelpCodeTokens($placeholder['tokens']), + htmlspecialchars($placeholder['description'], ENT_QUOTES) + ); + } + + return implode('', $items); + } + + protected function buildFieldSyntaxHelpItems(): string + { + $placeholders = [ + ['token' => '{{field:FIELD_CODE.question}}', 'description' => 'Question text for a survey field'], + ['token' => '{{field:FIELD_CODE.answer}}', 'description' => 'Formatted answer for a survey field'], + ['token' => '{{field:FIELD_CODE.raw}}', 'description' => 'Raw stored value for a survey field'], + ['token' => '{{FIELD_CODE}}', 'description' => 'Shortcut for the question text'], + ['token' => '{{FIELD_CODE_answer}}', 'description' => 'Shortcut for the formatted answer'], + ['token' => '{{answer_FIELD_CODE}}', 'description' => 'Alternative answer shortcut'], + ['token' => '{{raw_FIELD_CODE}}', 'description' => 'Shortcut for the raw stored value'], + ]; + + $items = []; + + foreach ($placeholders as $placeholder) { + $items[] = sprintf( + '
  • %s — %s
  • ', + htmlspecialchars($placeholder['token'], ENT_QUOTES), + htmlspecialchars($placeholder['description'], ENT_QUOTES) + ); + } + + return implode('', $items); + } + + protected function formatHelpCodeTokens(array $tokens): string + { + $formatted = array_map(function (string $token): string { + return '' . htmlspecialchars($token, ENT_QUOTES) . ''; + }, $tokens); + + return implode(' / ', $formatted); + } + + /** + * @return array + */ + protected function getSurveyFieldPlaceholderCatalog(int $surveyId): array + { + $survey = \Survey::model()->findByPk($surveyId); + + if ($survey === null) { + return []; + } + + \Yii::import('application.helpers.viewHelper', true); + $fieldMap = \createFieldMap($survey, 'full', true, false, $survey->language); + + if (!is_array($fieldMap)) { + return []; + } + + $fieldCatalog = []; + + foreach ($fieldMap as $fieldName => $field) { + $fieldCode = trim((string) \viewHelper::getFieldCode($field, ['separator' => ['[', ']']])); + + if ($fieldCode === '') { + continue; + } + + $label = trim((string) \viewHelper::getFieldText($field, [ + 'flat' => true, + 'separator' => ['[', ']'], + 'afterquestion' => ' ', + ])); + + if ($label === '') { + $label = (string) $fieldName; + } + + if (!array_key_exists($fieldCode, $fieldCatalog)) { + $fieldCatalog[$fieldCode] = $label; + } + } + + ksort($fieldCatalog, SORT_NATURAL | SORT_FLAG_CASE); + + return $fieldCatalog; + } + protected function createMessageTemplateRenderer(): MessageTemplateRenderer { return new MessageTemplateRenderer(); @@ -367,6 +517,7 @@ private function getPdfPath(int $surveyId, int $responseId): string public function beforeSurveySettings(): void { $event = $this->getEvent(); + $surveyId = (int) $event->get('survey'); $event->set( "surveysettings.{$this->id}", [ @@ -379,7 +530,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'Enable', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'Enable', null, @@ -399,7 +550,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'AuthToken', 'Survey', - $event->get('survey'), + $surveyId, $this->get('AuthToken') ), ], @@ -410,7 +561,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'ChatId', 'Survey', - $event->get('survey'), + $surveyId, $this->get('ChatId') ), ], @@ -423,7 +574,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'ParseMode', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'ParseMode', null, @@ -438,7 +589,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'SendPdf', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'SendPdf', null, @@ -453,7 +604,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'SendCsv', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'SendCsv', null, @@ -468,7 +619,7 @@ public function beforeSurveySettings(): void 'current' => $this->get( 'SendMessage', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'SendMessage', null, @@ -480,10 +631,11 @@ public function beforeSurveySettings(): void 'DefaultText' => [ 'type' => 'text', 'label' => 'Default Text', + 'help' => $this->buildDefaultTextHelp($surveyId), 'current' => $this->get( 'DefaultText', 'Survey', - $event->get('survey'), + $surveyId, $this->get( 'DefaultText', null, From 9b181338df7e804b5e4781e776a79de7d7f1451d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:57:57 -0300 Subject: [PATCH 046/169] test: add field map runtime stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/FieldMapRuntimeMock.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/Support/Stubs/FieldMapRuntimeMock.php diff --git a/tests/Support/Stubs/FieldMapRuntimeMock.php b/tests/Support/Stubs/FieldMapRuntimeMock.php new file mode 100644 index 0000000..23f15da --- /dev/null +++ b/tests/Support/Stubs/FieldMapRuntimeMock.php @@ -0,0 +1,15 @@ + Date: Tue, 4 Aug 2026 12:57:57 -0300 Subject: [PATCH 047/169] test: load field map runtime stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/LimeSurveyStubs.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Support/LimeSurveyStubs.php b/tests/Support/LimeSurveyStubs.php index ecf7312..8714490 100644 --- a/tests/Support/LimeSurveyStubs.php +++ b/tests/Support/LimeSurveyStubs.php @@ -3,6 +3,7 @@ require_once __DIR__ . '/Stubs/AppRuntimeMock.php'; require_once __DIR__ . '/Stubs/PluginBase.php'; require_once __DIR__ . '/Stubs/Yii.php'; +require_once __DIR__ . '/Stubs/FieldMapRuntimeMock.php'; require_once __DIR__ . '/Stubs/Survey.php'; require_once __DIR__ . '/Stubs/SurveyDynamic.php'; require_once __DIR__ . '/Stubs/FormattingOptions.php'; From a3a44f82e406fcd1c4732c5be9dc43d421945cc7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:57:57 -0300 Subject: [PATCH 048/169] test: expose plugin settings in double Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php index 671fc15..2b8baa8 100644 --- a/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php +++ b/tests/Support/Doubles/Plugin/LSTelegramNotifyPluginDouble.php @@ -56,6 +56,12 @@ public function getSubscribedEvents(): array return $this->subscribedEvents; } + /** @return array */ + public function getSettingsDefinition(): array + { + return $this->settings; + } + protected function get($key = null, $model = null, $id = null, $default = null) { return array_key_exists((string) $key, $this->mockedSettings) From da5316866ae9a513aca74261aad0362ccc1444ee Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 12:57:57 -0300 Subject: [PATCH 049/169] test: cover placeholder help discovery Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginTest.php | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php index 51f2084..ed0c437 100644 --- a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php +++ b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php @@ -15,6 +15,9 @@ protected function setUp(): void { \Survey::$findByPkHandler = null; \AppRuntimeMock::$createAbsoluteUrlHandler = null; + \FieldMapRuntimeMock::$createFieldMapHandler = null; + \viewHelper::$getFieldTextHandler = null; + \viewHelper::$getFieldCodeHandler = null; } public function testInitSubscribesToRequiredPluginEvents(): void @@ -27,6 +30,15 @@ public function testInitSubscribesToRequiredPluginEvents(): void ['newSurveySettings', 'afterSurveyComplete', 'beforeSurveySettings'], $plugin->getSubscribedEvents() ); + + $this->assertStringContainsString( + '{{field:FIELD_CODE.answer}}', + $plugin->getSettingsDefinition()['DefaultText']['help'] + ); + $this->assertStringContainsString( + 'survey-specific plugin settings', + $plugin->getSettingsDefinition()['DefaultText']['help'] + ); } public function testAfterSurveyCompleteSkipsProcessingWhenNotificationsAreDisabled(): void @@ -312,6 +324,18 @@ public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefault 'DefaultText' => 'Mensagem padrão', ]); + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; + \FieldMapRuntimeMock::$createFieldMapHandler = static fn ($survey, $style, $full, $flatten, $language): array => [ + '12345X1X1' => ['name' => 'email-field'], + '12345X1X2' => ['name' => 'name-field'], + ]; + \viewHelper::$getFieldCodeHandler = static function (array $field, array $options): string { + return $field['name'] === 'email-field' ? 'CONTATO[EMAIL]' : 'NOME'; + }; + \viewHelper::$getFieldTextHandler = static function (array $field, array $options): string { + return $field['name'] === 'email-field' ? 'E-mail para contato' : 'Nome completo'; + }; + $event = $this->newEvent([ 'survey' => 77, ]); @@ -334,6 +358,11 @@ public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefault $this->assertFalse($definition['settings']['SendCsv']['current']); $this->assertFalse($definition['settings']['SendMessage']['current']); $this->assertSame('Mensagem padrão', $definition['settings']['DefaultText']['current']); + $this->assertStringContainsString('{{urlAttachments}}', $definition['settings']['DefaultText']['help']); + $this->assertStringContainsString('{{FIELD_CODE_answer}}', $definition['settings']['DefaultText']['help']); + $this->assertStringContainsString('CONTATO[EMAIL]', $definition['settings']['DefaultText']['help']); + $this->assertStringContainsString('E-mail para contato', $definition['settings']['DefaultText']['help']); + $this->assertStringContainsString('NOME', $definition['settings']['DefaultText']['help']); } public function testNewSurveySettingsPersistsEachIncomingSurveySetting(): void @@ -373,9 +402,12 @@ public function testNewSurveySettingsPersistsEachIncomingSurveySetting(): void ], $plugin->getSavedSettings()); } - private function newPlugin(): LSTelegramNotifyPluginDouble + private function newPlugin(): \LSTelegramNotifyPluginDouble { - return (new \ReflectionClass(LSTelegramNotifyPluginDouble::class))->newInstanceWithoutConstructor(); + /** @var \LSTelegramNotifyPluginDouble $plugin */ + $plugin = (new \ReflectionClass(\LSTelegramNotifyPluginDouble::class))->newInstanceWithoutConstructor(); + + return $plugin; } private function newEvent(array $values): object From 9f06bb2600b6605e7214de5a049395c436950de0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 050/169] fix: stop autoloading test stubs in production Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/composer.json b/composer.json index 87ecc97..758b461 100644 --- a/composer.json +++ b/composer.json @@ -18,9 +18,6 @@ } }, "autoload-dev": { - "files": [ - "tests/Support/LimeSurveyStubs.php" - ], "psr-4": { "LSTelegramNotify\\Tests\\": "tests/" } From c00b7bf6fe12accca33e36733479833c78c1f1ff Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 051/169] test: bootstrap PHPUnit from test setup Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- phpunit.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpunit.xml b/phpunit.xml index c7c1f58..2934a5d 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,5 +1,5 @@ - From 045c09a734a17151438c279886835bfffa5b1a05 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 052/169] test: add dedicated PHPUnit bootstrap Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/bootstrap.php | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tests/bootstrap.php diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..bdb8e71 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,4 @@ + Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 053/169] chore: ignore local screenshot tooling artifacts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 57872d0..ff342ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ /vendor/ +/node_modules/ +/.env +/playwright-report/ +/test-results/ From 9e7ea038bb42b539e20977bd7515b65c1d188f8d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 054/169] docs: add screenshot environment example Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .env.example | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7b7bf22 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +# Copy this file to .env and adjust the values for your local LimeSurvey instance +LIMESURVEY_BASE_URL=http://localhost:8080 +LIMESURVEY_ADMIN_USER=admin +LIMESURVEY_ADMIN_PASSWORD=change-me +LIMESURVEY_PLUGIN_NAME=LSTelegramNotify +PLAYWRIGHT_HEADLESS=true From c2788c5941408bf77f9707d8a6a7504749580673 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 055/169] chore: add Playwright screenshot manifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..b7411ea --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "lstelegramnotify-maintenance", + "private": true, + "type": "module", + "scripts": { + "playwright:install": "playwright install chromium", + "screenshots:update": "node ./scripts/update-screenshots.mjs" + }, + "devDependencies": { + "dotenv": "^16.4.5", + "playwright": "^1.54.2" + } +} From 160e9c0d3e28fd604968559739e39bca81324974 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 056/169] chore: add Playwright lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package-lock.json | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7cea797 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,74 @@ +{ + "name": "lstelegramnotify-maintenance", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "lstelegramnotify-maintenance", + "devDependencies": { + "dotenv": "^16.4.5", + "playwright": "^1.54.2" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.62.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + } + } +} From ba96308cd13ef814e7a29ecd7555c977fe11f39f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 057/169] docs: automate screenshot generation with Playwright Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/update-screenshots.mjs | 328 +++++++++++++++++++++++++++++++++ 1 file changed, 328 insertions(+) create mode 100644 scripts/update-screenshots.mjs diff --git a/scripts/update-screenshots.mjs b/scripts/update-screenshots.mjs new file mode 100644 index 0000000..4746311 --- /dev/null +++ b/scripts/update-screenshots.mjs @@ -0,0 +1,328 @@ +import { mkdir } from 'node:fs/promises'; +import path from 'node:path'; +import { config as loadEnv } from 'dotenv'; +import { chromium } from 'playwright'; + +loadEnv(); + +const repoRoot = process.cwd(); +const outputDir = path.join(repoRoot, 'img'); +const settingsScreenshotPath = path.join(outputDir, 'settings.png'); +const previewScreenshotPath = path.join(outputDir, 'telegram_example.png'); +const baseUrl = normalizeBaseUrl(process.env.LIMESURVEY_BASE_URL || 'http://localhost:8080'); +const pluginName = process.env.LIMESURVEY_PLUGIN_NAME || 'LSTelegramNotify'; +const adminUser = requireEnv('LIMESURVEY_ADMIN_USER'); +const adminPassword = requireEnv('LIMESURVEY_ADMIN_PASSWORD'); +const headless = String(process.env.PLAYWRIGHT_HEADLESS || 'true').toLowerCase() !== 'false'; + +await mkdir(outputDir, { recursive: true }); + +const browser = await chromium.launch({ headless }); +const context = await browser.newContext({ + viewport: { width: 1600, height: 2200 }, + deviceScaleFactor: 1, +}); +const page = await context.newPage(); + +page.on('pageerror', (error) => { + const message = String(error?.message || ''); + + if (message.includes("Cannot read properties of null (reading 'langEntries')")) { + return; + } + + console.warn(`[pageerror] ${message}`); +}); + +try { + await login(page); + + const configureUrl = await findPluginConfigureUrl(page, pluginName); + + await captureSettingsScreenshot(page, configureUrl); + await captureTelegramPreview(page); + + console.log(`Updated ${path.relative(repoRoot, settingsScreenshotPath)}`); + console.log(`Updated ${path.relative(repoRoot, previewScreenshotPath)}`); +} finally { + await browser.close(); +} + +function requireEnv(name) { + const value = process.env[name]; + + if (!value || value.trim() === '') { + throw new Error(`Missing required environment variable: ${name}`); + } + + return value; +} + +function normalizeBaseUrl(url) { + return url.replace(/\/+$/, ''); +} + +async function login(browserPage) { + await browserPage.goto(`${baseUrl}/index.php/admin/authentication/sa/login`, { + waitUntil: 'networkidle', + }); + + await browserPage.fill('#user', adminUser); + await browserPage.fill('#password', adminPassword); + + await Promise.all([ + browserPage.waitForLoadState('networkidle'), + browserPage.getByRole('button', { name: 'Log in' }).click(), + ]); + + if (browserPage.url().includes('/authentication/sa/login')) { + throw new Error('Login failed. Check LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.'); + } +} + +async function findPluginConfigureUrl(browserPage, plugin) { + for (let pageNumber = 1; pageNumber <= 10; pageNumber += 1) { + const listUrl = pageNumber === 1 + ? `${baseUrl}/index.php/admin/pluginmanager/sa/index` + : `${baseUrl}/index.php/admin/pluginmanager?sa=index&page=${pageNumber}`; + + await browserPage.goto(listUrl, { waitUntil: 'networkidle' }); + + const pluginRow = browserPage.locator('table tbody tr').filter({ hasText: plugin }).first(); + + if (await pluginRow.count() === 0) { + continue; + } + + const configureLink = pluginRow.locator('a[href*="pluginmanager?sa=configure"]').first(); + + if (await configureLink.count() === 0) { + throw new Error(`Found ${plugin}, but it has no configure link. Check whether it is active and load-error free.`); + } + + const href = await configureLink.getAttribute('href'); + + if (!href) { + throw new Error(`Could not read the configure link for ${plugin}.`); + } + + return new URL(href, baseUrl).toString(); + } + + throw new Error(`Could not find ${plugin} in the LimeSurvey plugin manager.`); +} + +async function captureSettingsScreenshot(browserPage, configureUrl) { + await browserPage.goto(configureUrl, { waitUntil: 'networkidle' }); + await browserPage.getByRole('tab', { name: 'Settings' }).click(); + + await browserPage.getByRole('textbox', { name: 'Auth Token' }).fill('123456789:bot-token-redacted'); + await browserPage.getByRole('textbox', { name: 'Chat id' }).fill('-1001234567890'); + const defaultTextField = browserPage.getByRole('textbox', { name: 'Default Text' }); + + await defaultTextField.fill([ + 'New Survey Completed!', + 'Title: {{title}}', + 'Respondent: {{field:NAME.answer}}', + ].join('\n')); + await defaultTextField.evaluate((element) => { + element.scrollTop = 0; + element.setSelectionRange(0, 0); + }); + + const settingsForm = browserPage.locator(`#pluginsettings-${pluginName}`); + + await defaultTextField.scrollIntoViewIfNeeded(); + await settingsForm.screenshot({ path: settingsScreenshotPath }); +} + +async function captureTelegramPreview(browserPage) { + await browserPage.setViewportSize({ width: 1200, height: 1400 }); + await browserPage.setContent(buildTelegramPreviewHtml(), { waitUntil: 'load' }); + + await browserPage.locator('.preview-shell').screenshot({ path: previewScreenshotPath }); +} + +function buildTelegramPreviewHtml() { + return ` + + + + Telegram preview + + + +
    +
    +
    + Telegram message preview + Local Playwright render with sample data — no external Telegram access required. +
    +
    LSTelegramNotify
    +
    +
    +
    Illustrative rendered output
    +
    +

    New Survey Completed!

    +

    Title: Customer onboarding

    +

    SurveyId: 198146

    +

    ResponseId: 66

    +
    +

    Respondent: Ada Lovelace

    +

    Preferred language: Português

    +

    Score (raw): 10

    +

    + Links: + PDF · + Details · + Edit +

    +
    14:26
    +
    +
    +
    + +`; +} From d5c74a44b41521d2d00f8b37acdd34f56e96d19a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 058/169] docs: describe screenshot regeneration workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index b11750c..2c65bf6 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ Useful improvements inspired by the `LSTelegramNotifyPlus` fork and now availabl - extra URL placeholders for common survey/response actions - mustache placeholders for survey question/answer/raw values +The image below is a locally generated preview of a rendered Telegram message using sample data: + ## Plugin Installation @@ -53,6 +55,8 @@ Shorthand aliases are also available: - `{{answer_FIELD_CODE}}` - `{{raw_FIELD_CODE}}` +The global plugin settings screen documents the available placeholders directly in the UI: + ### Custom settings by survey @@ -61,3 +65,19 @@ You can add custom settings by survey to send the messages to other groups, cust - Go to survey settings - GO to `Simple plugins` - Define your custom settings at `Settings for plugin LSTelegramNotify ` + +## Updating documentation screenshots + +The repository includes a Playwright-based command to refresh the documentation screenshots. + +- `img/settings.png` is captured from the LimeSurvey admin interface with sensitive values masked before the screenshot is saved. +- `img/telegram_example.png` is generated locally as an illustrative preview using sample data, so no Telegram access is required. + +To regenerate the images: + +1. Copy `.env.example` to `.env` and adjust the LimeSurvey admin credentials for your local environment. +2. Install the Node dependencies with `npm install`. +3. Install the Chromium browser used by Playwright with `npm run playwright:install`. +4. Run `npm run screenshots:update`. + +If you prefer not to edit `.env`, you can also override the credentials inline when running the command. From d7eeb9c1d3054afe07b0d5cbbcc7caa5202fe44a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 059/169] docs: refresh settings screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/settings.png | Bin 82227 -> 144035 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/settings.png b/img/settings.png index 76e0adb72d7cbb464118b4136bb10602b381a23a..8b1e75cb26c5d87a8f6b2d2a7be2457241d5e109 100644 GIT binary patch literal 144035 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¾ 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 literal 82227 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�m)^o(|VnlqP^H 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 From 5fdd5a5db95c826824f52eac83b8ee2671444f2a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:16:08 -0300 Subject: [PATCH 060/169] docs: refresh telegram preview screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/telegram_example.png | Bin 36030 -> 112772 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/telegram_example.png b/img/telegram_example.png index 0cf0b4ce4a90664856eaf63cb61ad4a97cd21e00..c129a9cfcfdb08a26abe9a9780336c9753a05bef 100644 GIT binary patch literal 112772 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 z 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 FV1oC0_VfS% From 30ab1a0db649a6b96d5a997612dfcc4f959ec6eb Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:54:33 -0300 Subject: [PATCH 061/169] chore: bump Playwright dependency Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b7411ea..b36ff11 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,6 @@ }, "devDependencies": { "dotenv": "^16.4.5", - "playwright": "^1.54.2" + "playwright": "^1.62.1" } } From f55085e16a49a72139bd4a69997530e2230b9162 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 13:54:33 -0300 Subject: [PATCH 062/169] chore: refresh Playwright lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 7cea797..0d77b55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "name": "lstelegramnotify-maintenance", "devDependencies": { "dotenv": "^16.4.5", - "playwright": "^1.54.2" + "playwright": "^1.62.1" } }, "node_modules/dotenv": { From 15388dd98d0d39a458bb4163d2df0467dda1c463 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:01 -0300 Subject: [PATCH 063/169] Add survey field placeholder catalog provider Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../SurveyFieldPlaceholderCatalogProvider.php | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/Survey/SurveyFieldPlaceholderCatalogProvider.php diff --git a/src/Survey/SurveyFieldPlaceholderCatalogProvider.php b/src/Survey/SurveyFieldPlaceholderCatalogProvider.php new file mode 100644 index 0000000..74dae59 --- /dev/null +++ b/src/Survey/SurveyFieldPlaceholderCatalogProvider.php @@ -0,0 +1,53 @@ + + */ + public function getFieldPlaceholderCatalog(int $surveyId): array + { + $survey = \Survey::model()->findByPk($surveyId); + + if ($survey === null) { + return []; + } + + \Yii::import('application.helpers.viewHelper', true); + $fieldMap = \createFieldMap($survey, 'full', true, false, $survey->language); + + if (!is_array($fieldMap)) { + return []; + } + + $fieldCatalog = []; + + foreach ($fieldMap as $fieldName => $field) { + $fieldCode = trim((string) \viewHelper::getFieldCode($field, ['separator' => ['[', ']']])); + + if ($fieldCode === '') { + continue; + } + + $label = trim((string) \viewHelper::getFieldText($field, [ + 'flat' => true, + 'separator' => ['[', ']'], + 'afterquestion' => ' ', + ])); + + if ($label === '') { + $label = (string) $fieldName; + } + + if (!array_key_exists($fieldCode, $fieldCatalog)) { + $fieldCatalog[$fieldCode] = $label; + } + } + + ksort($fieldCatalog, SORT_NATURAL | SORT_FLAG_CASE); + + return $fieldCatalog; + } +} From 82b88da86f41c8f32f371f78f619828739b0f361 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:04 -0300 Subject: [PATCH 064/169] Add survey field placeholder catalog provider tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- ...veyFieldPlaceholderCatalogProviderTest.php | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php diff --git a/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php b/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php new file mode 100644 index 0000000..0f3990a --- /dev/null +++ b/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php @@ -0,0 +1,82 @@ +assertSame([], $provider->getFieldPlaceholderCatalog(1)); + } + + public function testGetFieldPlaceholderCatalogReturnsEmptyWhenFieldMapIsEmpty(): void + { + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; + \FieldMapRuntimeMock::$createFieldMapHandler = static fn ($survey, $style, $full, $flatten, $language): array => []; + + $provider = new SurveyFieldPlaceholderCatalogProvider(); + + $this->assertSame([], $provider->getFieldPlaceholderCatalog(1)); + } + + public function testGetFieldPlaceholderCatalogBuildsSortedUniqueLabelsAndFallsBackToFieldName(): void + { + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; + \FieldMapRuntimeMock::$createFieldMapHandler = static fn ($survey, $style, $full, $flatten, $language): array => [ + '12345X1X1' => ['name' => 'email-field'], + '12345X1X10' => ['name' => 'duplicate-email-field'], + '12345X1X2' => ['name' => 'name-field'], + '12345X1X3' => ['name' => 'fallback-label-field'], + '12345X1X4' => ['name' => 'blank-code-field'], + ]; + \viewHelper::$getFieldCodeHandler = static function (array $field, array $options): string { + switch ($field['name']) { + case 'email-field': + return 'CONTATO[EMAIL]'; + case 'duplicate-email-field': + return 'CONTATO[EMAIL]'; + case 'name-field': + return 'NOME'; + case 'fallback-label-field': + return 'SEM_LABEL'; + default: + return ''; + } + }; + \viewHelper::$getFieldTextHandler = static function (array $field, array $options): string { + switch ($field['name']) { + case 'email-field': + return 'E-mail para contato'; + case 'duplicate-email-field': + return 'Outro e-mail'; + case 'name-field': + return 'Nome completo'; + case 'fallback-label-field': + return ' '; + default: + return ''; + } + }; + + $provider = new SurveyFieldPlaceholderCatalogProvider(); + + $this->assertSame([ + 'CONTATO[EMAIL]' => 'E-mail para contato', + 'NOME' => 'Nome completo', + 'SEM_LABEL' => '12345X1X3', + ], $provider->getFieldPlaceholderCatalog(77)); + } +} From 0daa70c64164a329cb4a79cd99db2c052bb744ce Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:08 -0300 Subject: [PATCH 065/169] Add default text help builder Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/DefaultTextHelpBuilder.php | 120 ++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 src/Plugin/DefaultTextHelpBuilder.php diff --git a/src/Plugin/DefaultTextHelpBuilder.php b/src/Plugin/DefaultTextHelpBuilder.php new file mode 100644 index 0000000..fde9608 --- /dev/null +++ b/src/Plugin/DefaultTextHelpBuilder.php @@ -0,0 +1,120 @@ +fieldPlaceholderCatalogProvider = $fieldPlaceholderCatalogProvider; + } + + public function build(?int $surveyId = null): string + { + $sections = [ + '

    Available placeholders for the Telegram message template:

    ', + '

    Metadata placeholders

    ', + '
      ' . $this->buildMetadataPlaceholderHelpItems() . '
    ', + '

    Survey field syntax

    ', + '
      ' . $this->buildFieldSyntaxHelpItems() . '
    ', + '

    When ParseMode is HTML, placeholder values are escaped automatically before rendering.

    ', + ]; + + if ($surveyId === null) { + $sections[] = '

    Open the survey-specific plugin settings to see the field codes available for a particular survey.

    '; + + return implode("\n", $sections); + } + + $fieldCatalog = $this->fieldPlaceholderCatalogProvider->getFieldPlaceholderCatalog($surveyId); + + if ($fieldCatalog === []) { + $sections[] = '

    No field codes could be identified for this survey.

    '; + + return implode("\n", $sections); + } + + $fieldItems = []; + + foreach ($fieldCatalog as $fieldCode => $label) { + $fieldItems[] = sprintf( + '
  • %s — %s
  • ', + htmlspecialchars($fieldCode, ENT_QUOTES), + htmlspecialchars($label, ENT_QUOTES) + ); + } + + $sections[] = '

    Field codes available in this survey

    '; + $sections[] = '
      ' . implode('', $fieldItems) . '
    '; + + return implode("\n", $sections); + } + + protected function buildMetadataPlaceholderHelpItems(): string + { + $placeholders = [ + ['tokens' => ['{title}', '{{title}}'], 'description' => 'Survey title'], + ['tokens' => ['{surveyId}', '{{surveyId}}'], 'description' => 'Survey identifier'], + ['tokens' => ['{responseId}', '{{responseId}}'], 'description' => 'Response identifier'], + ['tokens' => ['{urlPDF}', '{{urlPDF}}'], 'description' => 'PDF download URL'], + ['tokens' => ['{urlSurvey}', '{{urlSurvey}}'], 'description' => 'Survey administration URL'], + ['tokens' => ['{urlDetails}', '{{urlDetails}}'], 'description' => 'Response details URL'], + ['tokens' => ['{urlEdit}', '{{urlEdit}}'], 'description' => 'Response edit URL'], + ['tokens' => ['{urlExport}', '{{urlExport}}'], 'description' => 'Response export URL'], + ['tokens' => ['{urlAttachments}', '{{urlAttachments}}'], 'description' => 'Response attachments URL'], + ]; + + $items = []; + + foreach ($placeholders as $placeholder) { + $items[] = sprintf( + '
  • %s — %s
  • ', + $this->formatHelpCodeTokens($placeholder['tokens']), + htmlspecialchars($placeholder['description'], ENT_QUOTES) + ); + } + + return implode('', $items); + } + + protected function buildFieldSyntaxHelpItems(): string + { + $placeholders = [ + ['token' => '{{field:FIELD_CODE.question}}', 'description' => 'Question text for a survey field'], + ['token' => '{{field:FIELD_CODE.answer}}', 'description' => 'Formatted answer for a survey field'], + ['token' => '{{field:FIELD_CODE.raw}}', 'description' => 'Raw stored value for a survey field'], + ['token' => '{{FIELD_CODE}}', 'description' => 'Shortcut for the question text'], + ['token' => '{{FIELD_CODE_answer}}', 'description' => 'Shortcut for the formatted answer'], + ['token' => '{{answer_FIELD_CODE}}', 'description' => 'Alternative answer shortcut'], + ['token' => '{{raw_FIELD_CODE}}', 'description' => 'Shortcut for the raw stored value'], + ]; + + $items = []; + + foreach ($placeholders as $placeholder) { + $items[] = sprintf( + '
  • %s — %s
  • ', + htmlspecialchars($placeholder['token'], ENT_QUOTES), + htmlspecialchars($placeholder['description'], ENT_QUOTES) + ); + } + + return implode('', $items); + } + + /** + * @param array $tokens + */ + protected function formatHelpCodeTokens(array $tokens): string + { + $formatted = array_map(function (string $token): string { + return '' . htmlspecialchars($token, ENT_QUOTES) . ''; + }, $tokens); + + return implode(' / ', $formatted); + } +} From d7a69c26557984a0b05fa49562973c025750b990 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:11 -0300 Subject: [PATCH 066/169] Add default text help builder tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/DefaultTextHelpBuilderTest.php | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/Unit/Plugin/DefaultTextHelpBuilderTest.php diff --git a/tests/Unit/Plugin/DefaultTextHelpBuilderTest.php b/tests/Unit/Plugin/DefaultTextHelpBuilderTest.php new file mode 100644 index 0000000..7b396eb --- /dev/null +++ b/tests/Unit/Plugin/DefaultTextHelpBuilderTest.php @@ -0,0 +1,69 @@ +surveyIds[] = $surveyId; + + return []; + } + }; + + $builder = new DefaultTextHelpBuilder($provider); + $help = $builder->build(); + + $this->assertSame([], $provider->surveyIds); + $this->assertStringContainsString('{{field:FIELD_CODE.answer}}', $help); + $this->assertStringContainsString('{{urlAttachments}}', $help); + $this->assertStringContainsString('survey-specific plugin settings', $help); + $this->assertStringNotContainsString('No field codes could be identified for this survey.', $help); + } + + public function testBuildReturnsNoFieldCodesMessageWhenSurveyCatalogIsEmpty(): void + { + $provider = new class extends SurveyFieldPlaceholderCatalogProvider { + public function getFieldPlaceholderCatalog(int $surveyId): array + { + return []; + } + }; + + $builder = new DefaultTextHelpBuilder($provider); + $help = $builder->build(77); + + $this->assertStringContainsString('No field codes could be identified for this survey.', $help); + } + + public function testBuildIncludesEscapedFieldCodesWhenSurveyCatalogIsAvailable(): void + { + $provider = new class extends SurveyFieldPlaceholderCatalogProvider { + public function getFieldPlaceholderCatalog(int $surveyId): array + { + return [ + 'CONTATO[EMAIL]' => 'E-mail ', + 'NOME' => 'Nome & sobrenome', + ]; + } + }; + + $builder = new DefaultTextHelpBuilder($provider); + $help = $builder->build(77); + + $this->assertStringContainsString('Field codes available in this survey', $help); + $this->assertStringContainsString('CONTATO[EMAIL] — E-mail <principal>', $help); + $this->assertStringContainsString('NOME — Nome & sobrenome', $help); + } +} From 90e25198fa66d7a510af58757f8aa8238a17a33c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:10:16 -0300 Subject: [PATCH 067/169] Delegate default text help building Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 153 ++------------------------ 1 file changed, 8 insertions(+), 145 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index 0f8f410..042cd89 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -2,6 +2,7 @@ namespace LibreCodeCoop\LSTelegramNotify\Plugin; +use LibreCodeCoop\LSTelegramNotify\Survey\SurveyFieldPlaceholderCatalogProvider; use LibreCodeCoop\LSTelegramNotify\Survey\SurveyFieldValueProvider; use LibreCodeCoop\LSTelegramNotify\Template\MessageTemplateRenderer; use Telegram\Bot\Api; @@ -82,7 +83,7 @@ class LSTelegramNotifyPlugin extends \PluginBase */ public function init(): void { - $this->settings['DefaultText']['help'] = $this->buildDefaultTextHelp(); + $this->settings['DefaultText']['help'] = $this->createDefaultTextHelpBuilder()->build(); $this->subscribe('newSurveySettings'); $this->subscribe('afterSurveyComplete'); $this->subscribe('beforeSurveySettings'); @@ -288,153 +289,14 @@ protected function escapeTemplateValue(string $value): string return htmlspecialchars($value, ENT_QUOTES); } - protected function buildDefaultTextHelp(?int $surveyId = null): string + protected function createDefaultTextHelpBuilder(): DefaultTextHelpBuilder { - $sections = [ - '

    Available placeholders for the Telegram message template:

    ', - '

    Metadata placeholders

    ', - '
      ' . $this->buildMetadataPlaceholderHelpItems() . '
    ', - '

    Survey field syntax

    ', - '
      ' . $this->buildFieldSyntaxHelpItems() . '
    ', - '

    When ParseMode is HTML, placeholder values are escaped automatically before rendering.

    ', - ]; - - if ($surveyId === null) { - $sections[] = '

    Open the survey-specific plugin settings to see the field codes available for a particular survey.

    '; - - return implode("\n", $sections); - } - - $fieldCatalog = $this->getSurveyFieldPlaceholderCatalog($surveyId); - - if ($fieldCatalog === []) { - $sections[] = '

    No field codes could be identified for this survey.

    '; - - return implode("\n", $sections); - } - - $fieldItems = []; - - foreach ($fieldCatalog as $fieldCode => $label) { - $fieldItems[] = sprintf( - '
  • %s — %s
  • ', - htmlspecialchars($fieldCode, ENT_QUOTES), - htmlspecialchars($label, ENT_QUOTES) - ); - } - - $sections[] = '

    Field codes available in this survey

    '; - $sections[] = '
      ' . implode('', $fieldItems) . '
    '; - - return implode("\n", $sections); + return new DefaultTextHelpBuilder($this->createSurveyFieldPlaceholderCatalogProvider()); } - protected function buildMetadataPlaceholderHelpItems(): string + protected function createSurveyFieldPlaceholderCatalogProvider(): SurveyFieldPlaceholderCatalogProvider { - $placeholders = [ - ['tokens' => ['{title}', '{{title}}'], 'description' => 'Survey title'], - ['tokens' => ['{surveyId}', '{{surveyId}}'], 'description' => 'Survey identifier'], - ['tokens' => ['{responseId}', '{{responseId}}'], 'description' => 'Response identifier'], - ['tokens' => ['{urlPDF}', '{{urlPDF}}'], 'description' => 'PDF download URL'], - ['tokens' => ['{urlSurvey}', '{{urlSurvey}}'], 'description' => 'Survey administration URL'], - ['tokens' => ['{urlDetails}', '{{urlDetails}}'], 'description' => 'Response details URL'], - ['tokens' => ['{urlEdit}', '{{urlEdit}}'], 'description' => 'Response edit URL'], - ['tokens' => ['{urlExport}', '{{urlExport}}'], 'description' => 'Response export URL'], - ['tokens' => ['{urlAttachments}', '{{urlAttachments}}'], 'description' => 'Response attachments URL'], - ]; - - $items = []; - - foreach ($placeholders as $placeholder) { - $items[] = sprintf( - '
  • %s — %s
  • ', - $this->formatHelpCodeTokens($placeholder['tokens']), - htmlspecialchars($placeholder['description'], ENT_QUOTES) - ); - } - - return implode('', $items); - } - - protected function buildFieldSyntaxHelpItems(): string - { - $placeholders = [ - ['token' => '{{field:FIELD_CODE.question}}', 'description' => 'Question text for a survey field'], - ['token' => '{{field:FIELD_CODE.answer}}', 'description' => 'Formatted answer for a survey field'], - ['token' => '{{field:FIELD_CODE.raw}}', 'description' => 'Raw stored value for a survey field'], - ['token' => '{{FIELD_CODE}}', 'description' => 'Shortcut for the question text'], - ['token' => '{{FIELD_CODE_answer}}', 'description' => 'Shortcut for the formatted answer'], - ['token' => '{{answer_FIELD_CODE}}', 'description' => 'Alternative answer shortcut'], - ['token' => '{{raw_FIELD_CODE}}', 'description' => 'Shortcut for the raw stored value'], - ]; - - $items = []; - - foreach ($placeholders as $placeholder) { - $items[] = sprintf( - '
  • %s — %s
  • ', - htmlspecialchars($placeholder['token'], ENT_QUOTES), - htmlspecialchars($placeholder['description'], ENT_QUOTES) - ); - } - - return implode('', $items); - } - - protected function formatHelpCodeTokens(array $tokens): string - { - $formatted = array_map(function (string $token): string { - return '' . htmlspecialchars($token, ENT_QUOTES) . ''; - }, $tokens); - - return implode(' / ', $formatted); - } - - /** - * @return array - */ - protected function getSurveyFieldPlaceholderCatalog(int $surveyId): array - { - $survey = \Survey::model()->findByPk($surveyId); - - if ($survey === null) { - return []; - } - - \Yii::import('application.helpers.viewHelper', true); - $fieldMap = \createFieldMap($survey, 'full', true, false, $survey->language); - - if (!is_array($fieldMap)) { - return []; - } - - $fieldCatalog = []; - - foreach ($fieldMap as $fieldName => $field) { - $fieldCode = trim((string) \viewHelper::getFieldCode($field, ['separator' => ['[', ']']])); - - if ($fieldCode === '') { - continue; - } - - $label = trim((string) \viewHelper::getFieldText($field, [ - 'flat' => true, - 'separator' => ['[', ']'], - 'afterquestion' => ' ', - ])); - - if ($label === '') { - $label = (string) $fieldName; - } - - if (!array_key_exists($fieldCode, $fieldCatalog)) { - $fieldCatalog[$fieldCode] = $label; - } - } - - ksort($fieldCatalog, SORT_NATURAL | SORT_FLAG_CASE); - - return $fieldCatalog; + return new SurveyFieldPlaceholderCatalogProvider(); } protected function createMessageTemplateRenderer(): MessageTemplateRenderer @@ -518,6 +380,7 @@ public function beforeSurveySettings(): void { $event = $this->getEvent(); $surveyId = (int) $event->get('survey'); + $defaultTextHelp = $this->createDefaultTextHelpBuilder()->build($surveyId); $event->set( "surveysettings.{$this->id}", [ @@ -631,7 +494,7 @@ public function beforeSurveySettings(): void 'DefaultText' => [ 'type' => 'text', 'label' => 'Default Text', - 'help' => $this->buildDefaultTextHelp($surveyId), + 'help' => $defaultTextHelp, 'current' => $this->get( 'DefaultText', 'Survey', From 40a3aa4d4048492d8ab5b5e17a5bf38cd6f9e08c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:31 -0300 Subject: [PATCH 068/169] Add phpunit vendor-bin manifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/phpunit/composer.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 vendor-bin/phpunit/composer.json diff --git a/vendor-bin/phpunit/composer.json b/vendor-bin/phpunit/composer.json new file mode 100644 index 0000000..a816b87 --- /dev/null +++ b/vendor-bin/phpunit/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "phpunit/phpunit": "^11.0" + } +} From f3658fd9bd07343ce3fefaf6a163274dd131982f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:43 -0300 Subject: [PATCH 069/169] Add phpunit vendor-bin lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/phpunit/composer.lock | 1783 ++++++++++++++++++++++++++++++ 1 file changed, 1783 insertions(+) create mode 100644 vendor-bin/phpunit/composer.lock diff --git a/vendor-bin/phpunit/composer.lock b/vendor-bin/phpunit/composer.lock new file mode 100644 index 0000000..8a64d47 --- /dev/null +++ b/vendor-bin/phpunit/composer.lock @@ -0,0 +1,1783 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "32e1def09fefbf05b3038ecf2fa0a6e2", + "packages": [ + { + "name": "myclabs/deep-copy", + "version": "1.13.4", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" + }, + "time": "2026-07-04T14:30:18+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "11.0.12", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.7.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.1", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.3.1" + }, + "require-dev": { + "phpunit/phpunit": "^11.5.46" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2025-12-24T07:01:01+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" + } + ], + "time": "2026-02-02T13:52:54+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "11.5.56", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", + "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-filter": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.12", + "phpunit/php-file-iterator": "^5.1.1", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.3", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.2", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/recursion-context": "^6.0.3", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsoring.html", + "type": "other" + } + ], + "time": "2026-07-06T14:52:39+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:41:36+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-03-19T07:56:08+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:45:54+00:00" + }, + { + "name": "sebastian/comparator", + "version": "6.3.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" + } + ], + "time": "2026-01-24T09:26:40+00:00" + }, + { + "name": "sebastian/complexity", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:49:50+00:00" + }, + { + "name": "sebastian/diff", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:53:05+00:00" + }, + { + "name": "sebastian/environment", + "version": "7.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" + } + ], + "time": "2025-05-21T11:55:47+00:00" + }, + { + "name": "sebastian/exporter", + "version": "6.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" + } + ], + "time": "2025-09-24T06:12:51+00:00" + }, + { + "name": "sebastian/global-state", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:57:36+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:58:38+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:00:13+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:01:32+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" + } + ], + "time": "2025-08-13T04:42:22+00:00" + }, + { + "name": "sebastian/type", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" + } + ], + "time": "2025-08-09T06:55:48+00:00" + }, + { + "name": "sebastian/version", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-10-09T05:16:32+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2025-11-17T20:03:58+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} From 0152a31f6ada6ed0ce7064865fce5fb616349bdd Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:49 -0300 Subject: [PATCH 070/169] Add php-cs-fixer vendor-bin manifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/php-cs-fixer/composer.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 vendor-bin/php-cs-fixer/composer.json diff --git a/vendor-bin/php-cs-fixer/composer.json b/vendor-bin/php-cs-fixer/composer.json new file mode 100644 index 0000000..029b32c --- /dev/null +++ b/vendor-bin/php-cs-fixer/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "friendsofphp/php-cs-fixer": "^3.0" + } +} From d2867f0f83dc442c1174169ee39a611f85f12ff8 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:53 -0300 Subject: [PATCH 071/169] Add php-cs-fixer vendor-bin lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/php-cs-fixer/composer.lock | 2856 +++++++++++++++++++++++++ 1 file changed, 2856 insertions(+) create mode 100644 vendor-bin/php-cs-fixer/composer.lock diff --git a/vendor-bin/php-cs-fixer/composer.lock b/vendor-bin/php-cs-fixer/composer.lock new file mode 100644 index 0000000..8daade0 --- /dev/null +++ b/vendor-bin/php-cs-fixer/composer.lock @@ -0,0 +1,2856 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "ed6a7ce3fb4bee973a384ce15ba31438", + "packages": [ + { + "name": "clue/ndjson-react", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/clue/reactphp-ndjson.git", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "react/event-loop": "^1.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\NDJson\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.", + "homepage": "https://github.com/clue/reactphp-ndjson", + "keywords": [ + "NDJSON", + "json", + "jsonlines", + "newline", + "reactphp", + "streaming" + ], + "support": { + "issues": "https://github.com/clue/reactphp-ndjson/issues", + "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-12-23T10:58:28+00:00" + }, + { + "name": "composer/pcre", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<2.2.2" + }, + "require-dev": { + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2026-06-07T11:47:49+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "ergebnis/agent-detector", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/ergebnis/agent-detector.git", + "reference": "e211f17928c8b95a51e06040792d57f5462fb271" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ergebnis/agent-detector/zipball/e211f17928c8b95a51e06040792d57f5462fb271", + "reference": "e211f17928c8b95a51e06040792d57f5462fb271", + "shasum": "" + }, + "require": { + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0 || ~8.6.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.51.0", + "ergebnis/license": "^2.7.0", + "ergebnis/php-cs-fixer-config": "^6.60.2", + "ergebnis/phpstan-rules": "^2.13.1", + "ergebnis/phpunit-slow-test-detector": "^2.24.0", + "ergebnis/rector-rules": "^1.18.1", + "fakerphp/faker": "^1.24.1", + "infection/infection": "^0.26.6", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.54", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "phpunit/phpunit": "^9.6.34", + "rector/rector": "^2.4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" + } + }, + "autoload": { + "psr-4": { + "Ergebnis\\AgentDetector\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com", + "homepage": "https://localheinz.com" + } + ], + "description": "Provides a detector for detecting the presence of an agent.", + "homepage": "https://github.com/ergebnis/agent-detector", + "support": { + "issues": "https://github.com/ergebnis/agent-detector/issues", + "security": "https://github.com/ergebnis/agent-detector/blob/main/.github/SECURITY.md", + "source": "https://github.com/ergebnis/agent-detector" + }, + "time": "2026-05-07T08:19:07+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^9 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Evenement\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" + }, + "time": "2023-08-08T05:53:35+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "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" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-08-14T07:29:31+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v3.95.18", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "a8b4e4216faabf67f4e96110ee99a48c96e4e683" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/a8b4e4216faabf67f4e96110ee99a48c96e4e683", + "reference": "a8b4e4216faabf67f4e96110ee99a48c96e4e683", + "shasum": "" + }, + "require": { + "clue/ndjson-react": "^1.3", + "composer/semver": "^3.4", + "composer/xdebug-handler": "^3.0.5", + "ergebnis/agent-detector": "^1.2", + "ext-filter": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "fidry/cpu-core-counter": "^1.3", + "php": "^7.4 || ^8.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 || ^8.0 || ^9.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.37", + "symfony/polyfill-php80": "^1.37", + "symfony/polyfill-php81": "^1.37", + "symfony/polyfill-php84": "^1.37", + "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.11.0", + "infection/infection": "^0.32.7", + "justinrainbow/json-schema": "^6.10.0", + "keradus/cli-executor": "^2.3", + "mikey179/vfsstream": "^1.6.12", + "php-coveralls/php-coveralls": "^2.9.1", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.8", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.8", + "phpunit/phpunit": "^9.6.35 || ^10.5.64 || ^11.5.56 || ^12.5.31 || ^13.0.6", + "symfony/polyfill-php85": "^1.38", + "symfony/var-dumper": "^5.4.48 || ^6.4.36 || ^7.4.8 || ^8.1.1", + "symfony/yaml": "^5.4.53 || ^6.4.41 || ^7.4.13 || ^8.1.1" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + }, + "exclude-from-classmap": [ + "src/**/Internal/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz RumiÅ„ski", + "email": "dariusz.ruminski@gmail.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.95.18" + }, + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2026-07-30T15:46:02+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.7", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/970f0e71945556422ee4570ccbabaedc3cf04ad3", + "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.2", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/socket": "^1.16", + "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/child-process/issues", + "source": "https://github.com/reactphp/child-process/tree/v0.6.7" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-12-23T15:25:20+00:00" + }, + { + "name": "react/dns", + "version": "v1.14.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3", + "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", + "keywords": [ + "async", + "dns", + "dns-resolver", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.14.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-18T19:34:28+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.6.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-17T20:46:25+00:00" + }, + { + "name": "react/promise", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.12.28 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-08-19T18:57:03+00:00" + }, + { + "name": "react/socket", + "version": "v1.17.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/socket.git", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08", + "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.13", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3.3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Socket\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", + "keywords": [ + "Connection", + "Socket", + "async", + "reactphp", + "stream" + ], + "support": { + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.17.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2025-11-19T20:47:34+00:00" + }, + { + "name": "react/stream", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "support": { + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.4.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-11T12:45:25+00:00" + }, + { + "name": "sebastian/diff", + "version": "9.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/a3fb6a298a265ff487a91bbea46e03cd01dbb226", + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "phpunit/phpunit": "^13.2", + "symfony/process": "^7.4.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/9.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" + } + ], + "time": "2026-06-05T03:04:51+00:00" + }, + { + "name": "symfony/console", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "535e18a1b8925f6c01a55b171d157ab66c2ace15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/535e18a1b8925f6c01a55b171d157ab66c2ace15", + "reference": "535e18a1b8925f6c01a55b171d157ab66c2ace15", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.4.6|^8.0.6" + }, + "conflict": { + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-27T13:58:19+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "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": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "c14c05a9e6da7f5e375e6efc28952c7e7dbddffb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c14c05a9e6da7f5e375e6efc28952c7e7dbddffb", + "reference": "c14c05a9e6da7f5e375e6efc28952c7e7dbddffb", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/security-http": "<7.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T15:42:13+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/17856b7a222664a26a5ea1cb06ee0721c2438217", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T15:42:13+00:00" + }, + { + "name": "symfony/finder", + "version": "v8.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/e2989e762c70f9490fa3a00a0ac0fae5aa97a531", + "reference": "e2989e762c70f9490fa3a00a0ac0fae5aa97a531", + "shasum": "" + }, + "require": { + "php": ">=8.4.1" + }, + "require-dev": { + "symfony/filesystem": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v8.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-27T09:05:56+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v8.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "88f9c561f678a02d54b897014049fa839e33ff82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/88f9c561f678a02d54b897014049fa839e33ff82", + "reference": "88f9c561f678a02d54b897014049fa839e33ff82", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v8.1.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-29T05:06:50+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T08:25:59+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-25T13:48:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-26T12:45:58+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "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.38.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-26T12:51:13+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", + "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\\Php85\\": "" + }, + "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.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-01T12:47:55+00:00" + }, + { + "name": "symfony/process", + "version": "v8.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "reference": "c4a9e58f235a6bf7f97ffbfedae2687353ac79e5", + "shasum": "" + }, + "require": { + "php": ">=8.4.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v8.1.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-29T05:06:50+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-16T09:55:08+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v8.1.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "21c07b026905d596e8379caeb115d87aa479499d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/21c07b026905d596e8379caeb115d87aa479499d", + "reference": "21c07b026905d596e8379caeb115d87aa479499d", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/service-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v8.1.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-29T05:06:50+00:00" + }, + { + "name": "symfony/string", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T07:35:25+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} From a8321e55d732d55e4d910abaefa6d10d2348b7e2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 072/169] Configure PHP tooling scripts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.json | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 758b461..b7c2963 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,7 @@ "irazasyed/telegram-bot-sdk": "^3.9" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "bamarni/composer-bin-plugin": "^1.8" }, "autoload": { "classmap": [ @@ -23,6 +23,30 @@ } }, "scripts": { - "test:unit": "phpunit -c phpunit.xml" + "tools:install": [ + "@composer bin phpunit install --ansi --no-interaction", + "@composer bin php-cs-fixer install --ansi --no-interaction" + ], + "test:unit": "vendor-bin/phpunit/vendor/bin/phpunit -c phpunit.xml", + "cs:check": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix --dry-run --diff", + "cs:fix": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix", + "lint": "find . -type d \\( -path './vendor' -o -path './vendor-bin' -o -path './node_modules' \\) -prune -o -type f -name '*.php' -print0 | xargs -0 -n1 php -l", + "post-install-cmd": [ + "@tools:install" + ], + "post-update-cmd": [ + "@tools:install" + ] + }, + "config": { + "allow-plugins": { + "bamarni/composer-bin-plugin": true + } + }, + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } } } From 6d6eeece0c2d80b30ff6810007066bb91d9f2716 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 073/169] Update root composer lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.lock | 1771 +------------------------------------------------ 1 file changed, 32 insertions(+), 1739 deletions(-) diff --git a/composer.lock b/composer.lock index 1a552d1..259d423 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": "dbcd78507a10db67418f141ba4bf1ff2", + "content-hash": "bcaa3af365514a1baaba07121f3d21c4", "packages": [ { "name": "carbonphp/carbon-doctrine-types", @@ -2288,1768 +2288,61 @@ ], "packages-dev": [ { - "name": "myclabs/deep-copy", - "version": "1.13.4", + "name": "bamarni/composer-bin-plugin", + "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + "url": "https://github.com/bamarni/composer-bin-plugin.git", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/641d0663f5ac270b1aeec4337b7856f76204df47", + "reference": "641d0663f5ac270b1aeec4337b7856f76204df47", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "composer-plugin-api": "^2.0", + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2025-08-01T08:46:24+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v5.8.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", - "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", - "shasum": "" - }, - "require": { + "composer/composer": "^2.2.26", "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8 || ^2.0", + "phpstan/phpstan-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + }, + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } + "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" - }, - "time": "2026-07-04T14:30:18+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "11.0.12", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", - "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^5.7.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.1", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.3.1" - }, - "require-dev": { - "phpunit/phpunit": "^11.5.46" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", - "type": "tidelift" - } - ], - "time": "2025-12-24T07:01:01+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "5.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", - "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" + "Bamarni\\Composer\\Bin\\": "src" } }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", - "type": "tidelift" - } - ], - "time": "2026-02-02T13:52:54+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "5.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } + "MIT" ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "description": "No conflicts for your bin dependencies", "keywords": [ - "process" + "composer", + "conflict", + "dependency", + "executable", + "isolation", + "tool" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "issues": "https://github.com/bamarni/composer-bin-plugin/issues", + "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.9.1" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:07:44+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:08:43+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "7.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:09:35+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "11.5.56", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256", - "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-filter": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.1", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.3", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/recursion-context": "^6.0.3", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", - "staabm/side-effects-detector": "^1.0.5" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "11.5-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsoring.html", - "type": "other" - } - ], - "time": "2026-07-06T14:52:39+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2025-03-19T07:56:08+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:45:54+00:00" - }, - { - "name": "sebastian/comparator", - "version": "6.3.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.4" - }, - "suggest": { - "ext-bcmath": "For comparing BcMath\\Number objects" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.3-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", - "type": "tidelift" - } - ], - "time": "2026-01-24T09:26:40+00:00" - }, - { - "name": "sebastian/complexity", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:49:50+00:00" - }, - { - "name": "sebastian/diff", - "version": "6.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:53:05+00:00" - }, - { - "name": "sebastian/environment", - "version": "7.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", - "type": "tidelift" - } - ], - "time": "2025-05-21T11:55:47+00:00" - }, - { - "name": "sebastian/exporter", - "version": "6.3.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.3-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" - } - ], - "time": "2025-09-24T06:12:51+00:00" - }, - { - "name": "sebastian/global-state", - "version": "7.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "7.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "https://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:57:36+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^5.0", - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T04:58:38+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "6.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:00:13+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-07-03T05:01:32+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "6.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" - } - ], - "time": "2025-08-13T04:42:22+00:00" - }, - { - "name": "sebastian/type", - "version": "5.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/type", - "type": "tidelift" - } - ], - "time": "2025-08-09T06:55:48+00:00" - }, - { - "name": "sebastian/version", - "version": "5.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-10-09T05:16:32+00:00" - }, - { - "name": "staabm/side-effects-detector", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/staabm/side-effects-detector.git", - "reference": "d8334211a140ce329c13726d4a715adbddd0a163" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", - "reference": "d8334211a140ce329c13726d4a715adbddd0a163", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.6", - "phpunit/phpunit": "^9.6.21", - "symfony/var-dumper": "^5.4.43", - "tomasvotruba/type-coverage": "1.0.0", - "tomasvotruba/unused-public": "1.0.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "lib/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A static analysis tool to detect side effects in PHP code", - "keywords": [ - "static analysis" - ], - "support": { - "issues": "https://github.com/staabm/side-effects-detector/issues", - "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" - }, - "funding": [ - { - "url": "https://github.com/staabm", - "type": "github" - } - ], - "time": "2024-10-20T05:08:20+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2025-11-17T20:03:58+00:00" + "time": "2026-02-04T10:18:12+00:00" } ], "aliases": [], From 032e0e8a7bc71c9b9bce26c114b1b2f6014aa282 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 074/169] Ignore vendor-bin vendors and cs cache Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ff342ad..05ed436 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /vendor/ +/vendor-bin/**/vendor/ /node_modules/ /.env /playwright-report/ /test-results/ +/.php-cs-fixer.cache From 8a6d870977b284f18af4cf7923f69af5079ae560 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 075/169] Add PHP CS Fixer configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .php-cs-fixer.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .php-cs-fixer.php diff --git a/.php-cs-fixer.php b/.php-cs-fixer.php new file mode 100644 index 0000000..2b5cd3d --- /dev/null +++ b/.php-cs-fixer.php @@ -0,0 +1,23 @@ +files() + ->in([ + __DIR__ . '/src', + __DIR__ . '/tests', + ]) + ->append([ + __DIR__ . '/LSTelegramNotify.php', + ]); + +return (new PhpCsFixer\Config()) + ->setRiskyAllowed(false) + ->setIndent("\t") + ->setLineEnding("\n") + ->setRules([ + 'blank_line_after_opening_tag' => true, + 'no_closing_tag' => true, + 'no_trailing_whitespace' => true, + 'single_blank_line_at_eof' => true, + ]) + ->setFinder($finder); From 245f27bd2ca84b2bac8e8475b7a6a230354daf43 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 076/169] Add PHP CS Fixer workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/workflows/lint-php-cs.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/lint-php-cs.yml diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml new file mode 100644 index 0000000..6fb227e --- /dev/null +++ b/.github/workflows/lint-php-cs.yml @@ -0,0 +1,29 @@ +name: PHP CS Fixer + +on: + pull_request: + push: + +jobs: + lint-php-cs: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup PHP 8.5 + uses: shivammathur/setup-php@v2 + with: + php-version: '8.5' + tools: composer + coverage: none + + - name: Validate composer.json + run: composer validate --no-check-publish + + - name: Install dependencies + run: composer install --no-interaction --prefer-dist + + - name: Check PHP coding style + run: composer run cs:check From 09326337d73b4e530a39563fc5f1fb33544032e8 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:19:59 -0300 Subject: [PATCH 077/169] Add PHP lint workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/workflows/lint-php.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/lint-php.yml diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml new file mode 100644 index 0000000..270556e --- /dev/null +++ b/.github/workflows/lint-php.yml @@ -0,0 +1,23 @@ +name: PHP Lint + +on: + pull_request: + push: + +jobs: + lint-php: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup PHP 8.5 + uses: shivammathur/setup-php@v2 + with: + php-version: '8.5' + tools: composer + coverage: none + + - name: Run PHP syntax lint + run: composer run lint From cd320f4ef1c9793539adc47121749a1490707f90 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 078/169] Ignore Psalm cache directory Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 05ed436..39dc349 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /playwright-report/ /test-results/ /.php-cs-fixer.cache +/.psalm/ From 47b9be203c2883a41aba3e10f5707f93b96660fb Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 079/169] Add Psalm composer script Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b7c2963..050552d 100644 --- a/composer.json +++ b/composer.json @@ -25,11 +25,13 @@ "scripts": { "tools:install": [ "@composer bin phpunit install --ansi --no-interaction", - "@composer bin php-cs-fixer install --ansi --no-interaction" + "@composer bin php-cs-fixer install --ansi --no-interaction", + "@composer bin psalm install --ansi --no-interaction" ], "test:unit": "vendor-bin/phpunit/vendor/bin/phpunit -c phpunit.xml", "cs:check": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix --dry-run --diff", "cs:fix": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix", + "psalm": "vendor-bin/psalm/vendor/bin/psalm --config=psalm.xml", "lint": "find . -type d \\( -path './vendor' -o -path './vendor-bin' -o -path './node_modules' \\) -prune -o -type f -name '*.php' -print0 | xargs -0 -n1 php -l", "post-install-cmd": [ "@tools:install" From 01d8dd734cbe5a25041e9f231d620d5fd3ba5f96 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 080/169] Harden plugin helpers for Psalm Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 42 ++++++++++++++++++++------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index 042cd89..1b97bc5 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -26,7 +26,7 @@ class LSTelegramNotifyPlugin extends \PluginBase protected $storage = 'DbStorage'; /** - * @var string[][] + * @var array> */ protected $settings = [ 'Enable' => [ @@ -348,27 +348,42 @@ private function sendCsv(int $surveyId, int $responseId, string $chatId, Api $te if (!$sendCsv) { return; } - $pdfPath = $this->getCsv($surveyId, $responseId); - $inputFile = new InputFile($pdfPath, "$surveyId-$responseId.csv"); + $csvPath = $this->getCsv($surveyId); + $inputFile = new InputFile($csvPath, "$surveyId-$responseId.csv"); $telegram->sendDocument([ 'chat_id' => $chatId, 'document' => $inputFile, ]); - unlink($pdfPath); + unlink($csvPath); } private function getPdfPath(int $surveyId, int $responseId): string { \Yii::import('application.libraries.admin.quexmlpdf', true); $oSurvey = \Survey::model()->findByPk($surveyId); + + if ($oSurvey === null) { + throw new \RuntimeException('Survey not found.'); + } + $quexmlpdf = new \quexmlpdf(); set_time_limit(120); \App()->loadHelper('export'); - $quexml = \quexml_export($surveyId, current($oSurvey->allLanguages), $responseId); + $language = current($oSurvey->allLanguages); + + if ($language === false || !is_string($language) || $language === '') { + $language = $oSurvey->language; + } + + $quexml = \quexml_export($surveyId, $language, $responseId); $quexmlpdf->create($quexmlpdf->createqueXML($quexml)); $tempnam = tempnam(sys_get_temp_dir(), 'pdf_'); + if ($tempnam === false) { + throw new \RuntimeException('Could not create temporary PDF file.'); + } + $quexmlpdf->Output($tempnam, 'F'); return $tempnam; } @@ -524,15 +539,22 @@ public function newSurveySettings(): void } } - private function getCsv(): string + private function getCsv(int $surveyId): string { \Yii::import('application.helpers.admin.export.FormattingOptions', true); \Yii::import('application.helpers.admin.exportresults_helper', true); - $survey = \Survey::model()->findByPk($this->getEvent()->get('surveyId')); - if (!(\SurveyDynamic::model($this->getEvent()->get('surveyId'))->getMaxId())) { + $survey = \Survey::model()->findByPk($surveyId); + + if ($survey === null) { + throw new \RuntimeException('Survey not found.'); + } + + $maxId = \SurveyDynamic::model($surveyId)->getMaxId(); + + if ($maxId === null || $maxId < 1) { throw new \Exception('No Data, could not get max id.', 1); } - $maxId = \SurveyDynamic::model($this->getEvent()->get('surveyId'))->getMaxId(); + $oFormattingOptions = new \FormattingOptions(); $oFormattingOptions->responseMinRecord = 1; $oFormattingOptions->responseMaxRecord = $maxId; @@ -545,6 +567,6 @@ private function getCsv(): string $oFormattingOptions->csvFieldSeparator = ','; $oFormattingOptions->output = 'file'; $oExport = new \ExportSurveyResultsService(); - return $oExport->exportResponses($this->getEvent()->get('surveyId'), $survey->language, 'csv', $oFormattingOptions, ''); + return $oExport->exportResponses($surveyId, $survey->language, 'csv', $oFormattingOptions, ''); } } From 7d333fe501d39c71ee49fa8ffbade3092a47985d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 081/169] Annotate survey field value provider Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Survey/SurveyFieldValueProvider.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Survey/SurveyFieldValueProvider.php b/src/Survey/SurveyFieldValueProvider.php index 6f57f08..39e09c3 100644 --- a/src/Survey/SurveyFieldValueProvider.php +++ b/src/Survey/SurveyFieldValueProvider.php @@ -65,6 +65,8 @@ public function getFieldValues(int $surveyId, int $responseId): array } /** + * @param array|object $response + * * @return array */ protected function extractResponseAttributes($response): array From 43d1d6546a5de8ddeee1c08e0b994aba3ee79e20 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 082/169] Use data provider in survey catalog tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- ...veyFieldPlaceholderCatalogProviderTest.php | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php b/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php index 0f3990a..1308e56 100644 --- a/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php +++ b/tests/Unit/Survey/SurveyFieldPlaceholderCatalogProviderTest.php @@ -3,6 +3,7 @@ require_once dirname(__DIR__, 3) . '/vendor/autoload.php'; use LibreCodeCoop\LSTelegramNotify\Survey\SurveyFieldPlaceholderCatalogProvider; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; class SurveyFieldPlaceholderCatalogProviderTest extends TestCase @@ -15,21 +16,14 @@ protected function setUp(): void \viewHelper::$getFieldCodeHandler = null; } - public function testGetFieldPlaceholderCatalogReturnsEmptyWhenSurveyDoesNotExist(): void + #[DataProvider('emptyCatalogScenarios')] + public function testGetFieldPlaceholderCatalogReturnsEmptyForEmptyScenarios(callable $configureRuntime, int $surveyId): void { - $provider = new SurveyFieldPlaceholderCatalogProvider(); - - $this->assertSame([], $provider->getFieldPlaceholderCatalog(1)); - } - - public function testGetFieldPlaceholderCatalogReturnsEmptyWhenFieldMapIsEmpty(): void - { - \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; - \FieldMapRuntimeMock::$createFieldMapHandler = static fn ($survey, $style, $full, $flatten, $language): array => []; + $configureRuntime(); $provider = new SurveyFieldPlaceholderCatalogProvider(); - $this->assertSame([], $provider->getFieldPlaceholderCatalog(1)); + $this->assertSame([], $provider->getFieldPlaceholderCatalog($surveyId)); } public function testGetFieldPlaceholderCatalogBuildsSortedUniqueLabelsAndFallsBackToFieldName(): void @@ -79,4 +73,22 @@ public function testGetFieldPlaceholderCatalogBuildsSortedUniqueLabelsAndFallsBa 'SEM_LABEL' => '12345X1X3', ], $provider->getFieldPlaceholderCatalog(77)); } + + public static function emptyCatalogScenarios(): array + { + return [ + 'survey does not exist' => [ + static function (): void { + }, + 1, + ], + 'field map is empty' => [ + static function (): void { + \Survey::$findByPkHandler = static fn (int $id) => (object) ['language' => 'pt-BR']; + \FieldMapRuntimeMock::$createFieldMapHandler = static fn ($survey, $style, $full, $flatten, $language): array => []; + }, + 1, + ], + ]; + } } From bc86691c88affaed362f611d644189c52cb42491 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 083/169] Add Dependabot configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/dependabot.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..600572d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,39 @@ +version: 2 +updates: + - package-ecosystem: "composer" + directory: "/" + target-branch: "main" + schedule: + interval: "weekly" + day: "monday" + time: "06:00" + timezone: "UTC" + open-pull-requests-limit: 5 + commit-message: + prefix: "chore(deps)" + groups: + php-minor-and-patch: + patterns: + - "*" + update-types: + - "minor" + - "patch" + + - package-ecosystem: "npm" + directory: "/" + target-branch: "main" + schedule: + interval: "weekly" + day: "monday" + time: "06:15" + timezone: "UTC" + open-pull-requests-limit: 5 + commit-message: + prefix: "chore(deps)" + groups: + javascript-minor-and-patch: + patterns: + - "*" + update-types: + - "minor" + - "patch" From 1e6fde1d7b638ebe01a7feff522889beb1edbed3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 084/169] Add Psalm workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/workflows/psalm.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/psalm.yml diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml new file mode 100644 index 0000000..f4cdf3d --- /dev/null +++ b/.github/workflows/psalm.yml @@ -0,0 +1,30 @@ +name: Psalm + +on: + pull_request: + push: + +jobs: + psalm: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup PHP 8.5 + uses: shivammathur/setup-php@v2 + with: + php-version: '8.5' + tools: composer + coverage: none + extensions: dom, simplexml + + - name: Validate composer.json + run: composer validate --no-check-publish + + - name: Install dependencies + run: composer install --no-interaction --prefer-dist + + - name: Run Psalm + run: composer run psalm From 3bdd926f7b30153d9ccf020097219f042772a7bc Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 085/169] Add screenshot scripts workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/workflows/screenshot-scripts.yml | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/screenshot-scripts.yml diff --git a/.github/workflows/screenshot-scripts.yml b/.github/workflows/screenshot-scripts.yml new file mode 100644 index 0000000..61770ea --- /dev/null +++ b/.github/workflows/screenshot-scripts.yml @@ -0,0 +1,25 @@ +name: Screenshot Script Tests + +on: + pull_request: + push: + +jobs: + screenshot-script-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js 24 + uses: actions/setup-node@v4 + with: + node-version: '24' + cache: npm + + - name: Install Node dependencies + run: npm ci + + - name: Run screenshot automation unit tests + run: npm run screenshots:test From 3515d7569aa97c9354b106fcc786fdb1149b558d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 086/169] Add Psalm LimeSurvey stubs Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- psalm-stubs/limesurvey.php | 255 +++++++++++++++++++++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 psalm-stubs/limesurvey.php diff --git a/psalm-stubs/limesurvey.php b/psalm-stubs/limesurvey.php new file mode 100644 index 0000000..29a84ed --- /dev/null +++ b/psalm-stubs/limesurvey.php @@ -0,0 +1,255 @@ + */ + public array $allLanguages = ['en']; + + /** @var array */ + public array $tokenAttributes = []; + + public function getLocalizedTitle(): string + { + return ''; + } +} + +class SurveyModel +{ + public function findByPk($id): ?SurveyRecord + { + return null; + } +} + +class Survey +{ + public static function model(): SurveyModel + { + return new SurveyModel(); + } +} + +class SurveyResponseRecord +{ + /** @var array */ + public array $attributes = []; +} + +class SurveyDynamicModel +{ + /** + * @return array|SurveyResponseRecord|null + */ + public function findByPk(int $responseId) + { + return null; + } + + public function getMaxId(): ?int + { + return null; + } +} + +class SurveyDynamic +{ + public static function model(int $surveyId): SurveyDynamicModel + { + return new SurveyDynamicModel(); + } +} + +class FormattingOptions +{ + public int $responseMinRecord = 0; + public int $responseMaxRecord = 0; + + /** @var list */ + public array $selectedColumns = []; + + public string $responseCompletionState = ''; + public string $headingFormat = ''; + public string $answerFormat = ''; + public string $csvFieldSeparator = ','; + public string $output = ''; +} + +class Translator +{ +} + +class SurveyData +{ + /** @var array> */ + public array $fieldMap = []; + + public function getFullAnswer(string $fieldName, string $value, Translator $translator, string $responseLanguage): ?string + { + return $value; + } +} + +class SurveyDao +{ + public function loadSurveyById(int $surveyId, string $language, FormattingOptions $options): SurveyData + { + return new SurveyData(); + } +} + +class viewHelper +{ + /** + * @param array $field + * + * @return string + */ + public static function getFieldText(array $field, array $options = []): string + { + return ''; + } + + /** + * @param array $field + */ + public static function getFieldCode(array $field, array $options = []): string + { + return ''; + } +} + +/** + * @return array> + */ +function createFieldMap(SurveyRecord $survey, string $style, bool $full, bool $flatten, string $language): array +{ + return []; +} + +function quexml_export(int $surveyId, string $language, int $responseId): string +{ + return ''; +} + +class quexmlpdf +{ + /** + * @param mixed $quexml + * + * @return mixed + */ + public function createqueXML($quexml) + { + return $quexml; + } + + /** + * @param mixed $document + */ + public function create($document): void + { + } + + public function Output(string $filename, string $destination): void + { + } +} + +class ExportSurveyResultsService +{ + public function exportResponses(int $surveyId, string $language, string $format, FormattingOptions $options, string $documentName): string + { + return ''; + } +} From 674942450056fadb127d3deeac4cc952de6278d0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 087/169] Add Psalm configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- psalm.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 psalm.xml diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..85dad23 --- /dev/null +++ b/psalm.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + From f26de5d3068faf8f5919e6875a0e05f84c7289db Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 088/169] Add Psalm vendor-bin manifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/psalm/composer.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 vendor-bin/psalm/composer.json diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json new file mode 100644 index 0000000..7ee4658 --- /dev/null +++ b/vendor-bin/psalm/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "vimeo/psalm": "^6.0" + } +} From 95458d35791cab1a860023e70a523ead0b978696 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:00 -0300 Subject: [PATCH 089/169] Add Psalm vendor-bin lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- vendor-bin/psalm/composer.lock | 3452 ++++++++++++++++++++++++++++++++ 1 file changed, 3452 insertions(+) create mode 100644 vendor-bin/psalm/composer.lock diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock new file mode 100644 index 0000000..8c3fcbc --- /dev/null +++ b/vendor-bin/psalm/composer.lock @@ -0,0 +1,3452 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "ff7c5569885e51a0459f928b9a38c8ef", + "packages": [ + { + "name": "amphp/amp", + "version": "v3.1.3", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/73c38b323ff8d790abf0f76c56fcc892bda4111a", + "reference": "73c38b323ff8d790abf0f76c56fcc892bda4111a", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Future/functions.php", + "src/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v3.1.3" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-19T17:59:20+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v2.1.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/55a6bd071aec26fa2a3e002618c20c35e3df1b46", + "reference": "55a6bd071aec26fa2a3e002618c20c35e3df1b46", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/parser": "^1.1", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2.3" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.22.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "https://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v2.1.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2025-03-16T17:10:27+00:00" + }, + { + "name": "amphp/cache", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/cache.git", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/cache/zipball/46912e387e6aa94933b61ea1ead9cf7540b7797c", + "reference": "46912e387e6aa94933b61ea1ead9cf7540b7797c", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Cache\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + } + ], + "description": "A fiber-aware cache API based on Amp and Revolt.", + "homepage": "https://amphp.org/cache", + "support": { + "issues": "https://github.com/amphp/cache/issues", + "source": "https://github.com/amphp/cache/tree/v2.0.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-04-19T03:38:06+00:00" + }, + { + "name": "amphp/dns", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/dns.git", + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/dns/zipball/78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", + "reference": "78eb3db5fc69bf2fc0cb503c4fcba667bc223c71", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/process": "^2", + "daverandom/libdns": "^2.0.2", + "ext-filter": "*", + "ext-json": "*", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.20" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Dns\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Wright", + "email": "addr@daverandom.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + } + ], + "description": "Async DNS resolution for Amp.", + "homepage": "https://github.com/amphp/dns", + "keywords": [ + "amp", + "amphp", + "async", + "client", + "dns", + "resolve" + ], + "support": { + "issues": "https://github.com/amphp/dns/issues", + "source": "https://github.com/amphp/dns/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2025-01-19T15:43:40+00:00" + }, + { + "name": "amphp/parallel", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/parallel.git", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", + "reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/pipeline": "^1", + "amphp/process": "^2", + "amphp/serialization": "^1", + "amphp/socket": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/Context/functions.php", + "src/Context/Internal/functions.php", + "src/Ipc/functions.php", + "src/Worker/functions.php" + ], + "psr-4": { + "Amp\\Parallel\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", + "keywords": [ + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" + ], + "support": { + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-05-16T16:54:01+00:00" + }, + { + "name": "amphp/parser", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/parser.git", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parser/zipball/3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "reference": "3cf1f8b32a0171d4b1bed93d25617637a77cded7", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Parser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", + "keywords": [ + "async", + "non-blocking", + "parser", + "stream" + ], + "support": { + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/v1.1.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-03-21T19:16:53+00:00" + }, + { + "name": "amphp/pipeline", + "version": "v1.2.7", + "source": { + "type": "git", + "url": "https://github.com/amphp/pipeline.git", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "reference": "cf2d67696c2015ea7c7fd8f6ec5f8ed7c2d17c17", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Pipeline\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Asynchronous iterators and operators.", + "homepage": "https://amphp.org/pipeline", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "iterator", + "non-blocking" + ], + "support": { + "issues": "https://github.com/amphp/pipeline/issues", + "source": "https://github.com/amphp/pipeline/tree/v1.2.7" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-07-26T14:50:43+00:00" + }, + { + "name": "amphp/process", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/process.git", + "reference": "583959df17d00304ad7b0b32285373f985935643" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/process/zipball/583959df17d00304ad7b0b32285373f985935643", + "reference": "583959df17d00304ad7b0b32285373f985935643", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Process\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A fiber-aware process manager based on Amp and Revolt.", + "homepage": "https://amphp.org/process", + "support": { + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v2.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-05-31T15:11:55+00:00" + }, + { + "name": "amphp/serialization", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/serialization.git", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/serialization/zipball/fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "reference": "fdf2834d78cebb0205fb2672676c1b1eb84371f0", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "ext-json": "*", + "ext-zlib": "*", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Serialization\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", + "keywords": [ + "async", + "asynchronous", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/v1.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-04-05T15:59:53+00:00" + }, + { + "name": "amphp/socket", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/socket.git", + "reference": "dadb63c5d3179fd83803e29dfeac27350e619314" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/socket/zipball/dadb63c5d3179fd83803e29dfeac27350e619314", + "reference": "dadb63c5d3179fd83803e29dfeac27350e619314", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/dns": "^2", + "ext-openssl": "*", + "kelunik/certificate": "^1.1", + "league/uri": "^7", + "league/uri-interfaces": "^7", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "amphp/process": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.1" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php", + "src/SocketAddress/functions.php" + ], + "psr-4": { + "Amp\\Socket\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@gmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", + "homepage": "https://github.com/amphp/socket", + "keywords": [ + "amp", + "async", + "encryption", + "non-blocking", + "sockets", + "tcp", + "tls" + ], + "support": { + "issues": "https://github.com/amphp/socket/issues", + "source": "https://github.com/amphp/socket/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2026-04-19T15:09:56+00:00" + }, + { + "name": "amphp/sync", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/sync.git", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/sync/zipball/217097b785130d77cfcc58ff583cf26cd1770bf1", + "reference": "217097b785130d77cfcc58ff583cf26cd1770bf1", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.23" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Sync\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", + "homepage": "https://github.com/amphp/sync", + "keywords": [ + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" + ], + "support": { + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-08-03T19:31:26+00:00" + }, + { + "name": "composer/pcre", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<2.2.2" + }, + "require-dev": { + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2026-06-07T11:47:49+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "danog/advanced-json-rpc", + "version": "v3.2.3", + "source": { + "type": "git", + "url": "https://github.com/danog/php-advanced-json-rpc.git", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/ae703ea7b4811797a10590b6078de05b3b33dd91", + "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^5", + "php": ">=8.1", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0 || ^6" + }, + "replace": { + "felixfbecker/php-advanced-json-rpc": "^3" + }, + "require-dev": { + "phpunit/phpunit": "^9" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + }, + { + "name": "Daniil Gentili", + "email": "daniil@daniil.it" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/danog/php-advanced-json-rpc/issues", + "source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.3" + }, + "time": "2026-01-12T21:07:10+00:00" + }, + { + "name": "daverandom/libdns", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/DaveRandom/LibDNS.git", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "reference": "b84c94e8fe6b7ee4aecfe121bfe3b6177d303c8a", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "Required for IDN support" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "LibDNS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "DNS protocol implementation written in pure PHP", + "keywords": [ + "dns" + ], + "support": { + "issues": "https://github.com/DaveRandom/LibDNS/issues", + "source": "https://github.com/DaveRandom/LibDNS/tree/v2.1.0" + }, + "time": "2024-04-12T12:12:48+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=14" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" + }, + "time": "2026-02-07T07:09:04+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.3", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" + }, + "time": "2024-04-30T00:40:11+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "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" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-08-14T07:29:31+00:00" + }, + { + "name": "kelunik/certificate", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/kelunik/certificate.git", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "php": ">=7.0" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^6 | 7 | ^8 | ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Kelunik\\Certificate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Access certificate details and transform between different formats.", + "keywords": [ + "DER", + "certificate", + "certificates", + "openssl", + "pem", + "x509" + ], + "support": { + "issues": "https://github.com/kelunik/certificate/issues", + "source": "https://github.com/kelunik/certificate/tree/v1.1.3" + }, + "time": "2023-02-03T21:26:53+00:00" + }, + { + "name": "league/uri", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.8.1", + "php": "^8.1", + "psr/http-factory": "^1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-components": "to provide additional tools to manipulate URI objects components", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "URN", + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc2141", + "rfc3986", + "rfc3987", + "rfc6570", + "rfc8141", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2026-03-15T20:22:25+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2026-03-08T20:05:35+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v5.0.1", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/980674efdda65913492d29a8fd51c82270dd37bb", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.1" + }, + "time": "2026-02-22T16:28:03+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" + }, + "time": "2026-07-04T14:30:18+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7bae67520aa9f5ecc506d646810bd40d9da54582", + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^2.0", + "phpstan/phpdoc-parser": "^2.0", + "webmozart/assert": "^1.9.1 || ^2" + }, + "require-dev": { + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26", + "shipmonk/dead-code-detector": "^0.5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.3" + }, + "time": "2026-03-18T20:49:53+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9", + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev", + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0" + }, + "time": "2026-01-06T21:53:42+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "2.3.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" + }, + "time": "2026-07-08T07:01:06+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "revolt/event-loop", + "version": "v1.0.9", + "source": { + "type": "git", + "url": "https://github.com/revoltphp/event-loop.git", + "reference": "44061cf513e53c6200372fc935ac42271566295d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", + "reference": "44061cf513e53c6200372fc935ac42271566295d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^9", + "psalm/phar": "6.16.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Revolt\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Rock-solid event loop for concurrent PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "event", + "event-loop", + "non-blocking", + "scheduler" + ], + "support": { + "issues": "https://github.com/revoltphp/event-loop/issues", + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" + }, + "time": "2026-05-16T17:55:38+00:00" + }, + { + "name": "sebastian/diff", + "version": "8.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b36d33b6e796513de7cb7df053afb3f55eefcd47", + "reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "phpunit/phpunit": "^13.0", + "symfony/process": "^7.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "8.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/8.3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" + } + ], + "time": "2026-05-15T04:58:09+00:00" + }, + { + "name": "spatie/array-to-xml", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/array-to-xml.git", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/88b2f3852a922dd73177a68938f8eb2ec70c7224", + "reference": "88b2f3852a922dd73177a68938f8eb2ec70c7224", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.2", + "pestphp/pest": "^1.21", + "spatie/pest-plugin-snapshots": "^1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\ArrayToXml\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://freek.dev", + "role": "Developer" + } + ], + "description": "Convert an array to xml", + "homepage": "https://github.com/spatie/array-to-xml", + "keywords": [ + "array", + "convert", + "xml" + ], + "support": { + "source": "https://github.com/spatie/array-to-xml/tree/3.4.4" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-12-15T09:00:41+00:00" + }, + { + "name": "symfony/console", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "535e18a1b8925f6c01a55b171d157ab66c2ace15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/535e18a1b8925f6c01a55b171d157ab66c2ace15", + "reference": "535e18a1b8925f6c01a55b171d157ab66c2ace15", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php85": "^1.32", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.4.6|^8.0.6" + }, + "conflict": { + "symfony/dependency-injection": "<8.1", + "symfony/event-dispatcher": "<8.1" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^8.1", + "symfony/event-dispatcher": "^8.1", + "symfony/filesystem": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/lock": "^7.4|^8.0", + "symfony/messenger": "^7.4|^8.0", + "symfony/mime": "^7.4|^8.0", + "symfony/process": "^7.4|^8.0", + "symfony/stopwatch": "^7.4|^8.0", + "symfony/uid": "^7.4|^8.0", + "symfony/validator": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-27T13:58:19+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "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": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/17856b7a222664a26a5ea1cb06ee0721c2438217", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T15:42:13+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T08:25:59+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-25T13:48:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.38.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "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.38.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-26T12:51:13+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", + "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\\Php85\\": "" + }, + "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.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-01T12:47:55+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-16T09:55:08+00:00" + }, + { + "name": "symfony/string", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T07:35:25+00:00" + }, + { + "name": "vimeo/psalm", + "version": "6.16.1", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/parallel": "^2.3", + "composer-runtime-api": "^2", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^2.0 || ^3.0", + "danog/advanced-json-rpc": "^3.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/language-server-protocol": "^1.5.3", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", + "netresearch/jsonmapper": "^5.0", + "nikic/php-parser": "^5.0.0", + "php": "~8.1.31 || ~8.2.27 || ~8.3.16 || ~8.4.3 || ~8.5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", + "symfony/console": "^6.0 || ^7.0 || ^8.0", + "symfony/filesystem": "~6.3.12 || ~6.4.3 || ^7.0.3 || ^8.0", + "symfony/polyfill-php84": "^1.31.0" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "amphp/phpunit-util": "^3", + "bamarni/composer-bin-plugin": "^1.4", + "brianium/paratest": "^6.9", + "danog/class-finder": "^0.4.8", + "dg/bypass-finals": "^1.5", + "ext-curl": "*", + "mockery/mockery": "^1.5", + "nunomaduro/mock-final-classes": "^1.1", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpdoc-parser": "^1.6", + "phpunit/phpunit": "^9.6", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.19", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.6", + "symfony/process": "^6.0 || ^7.0 || ^8.0" + }, + "suggest": { + "ext-curl": "In order to send data to shepherd", + "ext-igbinary": "^2.0.5 is required, used to serialize caching data" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalm-review", + "psalter" + ], + "type": "project", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev", + "dev-2.x": "2.x-dev", + "dev-3.x": "3.x-dev", + "dev-4.x": "4.x-dev", + "dev-5.x": "5.x-dev", + "dev-6.x": "6.x-dev", + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + }, + { + "name": "Daniil Gentili", + "email": "daniil@daniil.it" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php", + "static analysis" + ], + "support": { + "docs": "https://psalm.dev/docs", + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm" + }, + "time": "2026-03-19T10:56:09+00:00" + }, + { + "name": "webmozart/assert", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70", + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^8.2" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "psalm": { + "pluginClass": "Webmozart\\Assert\\PsalmPlugin" + }, + "branch-alias": { + "dev-master": "2.0-dev", + "dev-feature/2-0": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/2.4.1" + }, + "time": "2026-06-15T15:31:57+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} From 40295282393c33543061069327b77154108e448a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 090/169] Update screenshot tooling package manifest Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index b36ff11..adaba0f 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "type": "module", "scripts": { "playwright:install": "playwright install chromium", + "screenshots:test": "node --test tests/Node/Scripts/Screenshots/*.test.mjs", "screenshots:update": "node ./scripts/update-screenshots.mjs" }, "devDependencies": { From 06d83815641631fb2ee24e9b7010b9d738a1cf71 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 091/169] Refactor screenshot update entrypoint Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/update-screenshots.mjs | 327 +-------------------------------- 1 file changed, 4 insertions(+), 323 deletions(-) diff --git a/scripts/update-screenshots.mjs b/scripts/update-screenshots.mjs index 4746311..076c281 100644 --- a/scripts/update-screenshots.mjs +++ b/scripts/update-screenshots.mjs @@ -1,328 +1,9 @@ -import { mkdir } from 'node:fs/promises'; -import path from 'node:path'; import { config as loadEnv } from 'dotenv'; -import { chromium } from 'playwright'; +import { createScreenshotConfig } from './screenshots/config.mjs'; +import { updateScreenshots } from './screenshots/runner.mjs'; loadEnv(); -const repoRoot = process.cwd(); -const outputDir = path.join(repoRoot, 'img'); -const settingsScreenshotPath = path.join(outputDir, 'settings.png'); -const previewScreenshotPath = path.join(outputDir, 'telegram_example.png'); -const baseUrl = normalizeBaseUrl(process.env.LIMESURVEY_BASE_URL || 'http://localhost:8080'); -const pluginName = process.env.LIMESURVEY_PLUGIN_NAME || 'LSTelegramNotify'; -const adminUser = requireEnv('LIMESURVEY_ADMIN_USER'); -const adminPassword = requireEnv('LIMESURVEY_ADMIN_PASSWORD'); -const headless = String(process.env.PLAYWRIGHT_HEADLESS || 'true').toLowerCase() !== 'false'; +const screenshotConfig = createScreenshotConfig(); -await mkdir(outputDir, { recursive: true }); - -const browser = await chromium.launch({ headless }); -const context = await browser.newContext({ - viewport: { width: 1600, height: 2200 }, - deviceScaleFactor: 1, -}); -const page = await context.newPage(); - -page.on('pageerror', (error) => { - const message = String(error?.message || ''); - - if (message.includes("Cannot read properties of null (reading 'langEntries')")) { - return; - } - - console.warn(`[pageerror] ${message}`); -}); - -try { - await login(page); - - const configureUrl = await findPluginConfigureUrl(page, pluginName); - - await captureSettingsScreenshot(page, configureUrl); - await captureTelegramPreview(page); - - console.log(`Updated ${path.relative(repoRoot, settingsScreenshotPath)}`); - console.log(`Updated ${path.relative(repoRoot, previewScreenshotPath)}`); -} finally { - await browser.close(); -} - -function requireEnv(name) { - const value = process.env[name]; - - if (!value || value.trim() === '') { - throw new Error(`Missing required environment variable: ${name}`); - } - - return value; -} - -function normalizeBaseUrl(url) { - return url.replace(/\/+$/, ''); -} - -async function login(browserPage) { - await browserPage.goto(`${baseUrl}/index.php/admin/authentication/sa/login`, { - waitUntil: 'networkidle', - }); - - await browserPage.fill('#user', adminUser); - await browserPage.fill('#password', adminPassword); - - await Promise.all([ - browserPage.waitForLoadState('networkidle'), - browserPage.getByRole('button', { name: 'Log in' }).click(), - ]); - - if (browserPage.url().includes('/authentication/sa/login')) { - throw new Error('Login failed. Check LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.'); - } -} - -async function findPluginConfigureUrl(browserPage, plugin) { - for (let pageNumber = 1; pageNumber <= 10; pageNumber += 1) { - const listUrl = pageNumber === 1 - ? `${baseUrl}/index.php/admin/pluginmanager/sa/index` - : `${baseUrl}/index.php/admin/pluginmanager?sa=index&page=${pageNumber}`; - - await browserPage.goto(listUrl, { waitUntil: 'networkidle' }); - - const pluginRow = browserPage.locator('table tbody tr').filter({ hasText: plugin }).first(); - - if (await pluginRow.count() === 0) { - continue; - } - - const configureLink = pluginRow.locator('a[href*="pluginmanager?sa=configure"]').first(); - - if (await configureLink.count() === 0) { - throw new Error(`Found ${plugin}, but it has no configure link. Check whether it is active and load-error free.`); - } - - const href = await configureLink.getAttribute('href'); - - if (!href) { - throw new Error(`Could not read the configure link for ${plugin}.`); - } - - return new URL(href, baseUrl).toString(); - } - - throw new Error(`Could not find ${plugin} in the LimeSurvey plugin manager.`); -} - -async function captureSettingsScreenshot(browserPage, configureUrl) { - await browserPage.goto(configureUrl, { waitUntil: 'networkidle' }); - await browserPage.getByRole('tab', { name: 'Settings' }).click(); - - await browserPage.getByRole('textbox', { name: 'Auth Token' }).fill('123456789:bot-token-redacted'); - await browserPage.getByRole('textbox', { name: 'Chat id' }).fill('-1001234567890'); - const defaultTextField = browserPage.getByRole('textbox', { name: 'Default Text' }); - - await defaultTextField.fill([ - 'New Survey Completed!', - 'Title: {{title}}', - 'Respondent: {{field:NAME.answer}}', - ].join('\n')); - await defaultTextField.evaluate((element) => { - element.scrollTop = 0; - element.setSelectionRange(0, 0); - }); - - const settingsForm = browserPage.locator(`#pluginsettings-${pluginName}`); - - await defaultTextField.scrollIntoViewIfNeeded(); - await settingsForm.screenshot({ path: settingsScreenshotPath }); -} - -async function captureTelegramPreview(browserPage) { - await browserPage.setViewportSize({ width: 1200, height: 1400 }); - await browserPage.setContent(buildTelegramPreviewHtml(), { waitUntil: 'load' }); - - await browserPage.locator('.preview-shell').screenshot({ path: previewScreenshotPath }); -} - -function buildTelegramPreviewHtml() { - return ` - - - - Telegram preview - - - -
    - -`; -} +await updateScreenshots(screenshotConfig); From b12f37a781c01202c5414c3fb0b331077652ee1f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 092/169] Add Telegram preview stylesheet Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../screenshots/assets/telegram-preview.css | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 scripts/screenshots/assets/telegram-preview.css diff --git a/scripts/screenshots/assets/telegram-preview.css b/scripts/screenshots/assets/telegram-preview.css new file mode 100644 index 0000000..a585a75 --- /dev/null +++ b/scripts/screenshots/assets/telegram-preview.css @@ -0,0 +1,141 @@ +:root { + color-scheme: light; + font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: grid; + place-items: center; + background: linear-gradient(180deg, #d9efff 0%, #c7e4f7 100%); + padding: 48px; + color: #173042; +} + +.preview-shell { + width: 920px; + border-radius: 32px; + overflow: hidden; + box-shadow: 0 28px 60px rgba(17, 66, 100, 0.18); + background: #e5f3fb; + border: 1px solid rgba(23, 48, 66, 0.08); +} + +.preview-header { + padding: 24px 28px; + background: #4ea4d8; + color: white; + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; +} + +.preview-header strong { + display: block; + font-size: 22px; + font-weight: 700; +} + +.preview-header span { + display: block; + margin-top: 4px; + font-size: 14px; + opacity: 0.92; +} + +.preview-badge { + border-radius: 999px; + padding: 8px 14px; + background: rgba(255, 255, 255, 0.18); + font-size: 13px; + font-weight: 600; + white-space: nowrap; +} + +.preview-stage { + padding: 40px 32px 52px; + background: + radial-gradient(circle at 25% 20%, rgba(255, 255, 255, 0.65), transparent 28%), + radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.45), transparent 24%), + linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)); +} + +.message-meta { + text-align: center; + font-size: 13px; + color: rgba(23, 48, 66, 0.72); + margin-bottom: 18px; + font-weight: 600; + letter-spacing: 0.02em; + text-transform: uppercase; +} + +.message-bubble { + max-width: 640px; + margin-left: auto; + background: linear-gradient(180deg, #dcf8c6 0%, #d3f0be 100%); + border-radius: 24px 24px 8px 24px; + padding: 24px 24px 16px; + box-shadow: 0 16px 32px rgba(71, 122, 68, 0.16); + position: relative; +} + +.message-bubble::after { + content: ''; + position: absolute; + right: -10px; + bottom: 0; + width: 0; + height: 0; + border-left: 14px solid #d3f0be; + border-top: 12px solid transparent; + border-bottom: 8px solid transparent; +} + +.message-bubble h2 { + margin: 0 0 16px; + font-size: 24px; + line-height: 1.2; +} + +.message-bubble p { + margin: 0 0 12px; + font-size: 17px; + line-height: 1.55; +} + +.message-bubble code { + font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; + font-size: 0.95em; + border-radius: 8px; + background: rgba(23, 48, 66, 0.08); + padding: 2px 6px; +} + +.message-bubble a { + color: #0b68a2; + text-decoration: none; + font-weight: 600; +} + +.message-divider { + margin: 18px 0; + border: 0; + height: 1px; + background: rgba(23, 48, 66, 0.12); +} + +.message-footnote { + display: flex; + justify-content: flex-end; + margin-top: 16px; + font-size: 13px; + color: rgba(23, 48, 66, 0.62); + font-weight: 600; +} From cf40fa6ff6afa08ca8841628e594cac999ec4cea Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 093/169] Add Telegram preview template Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../screenshots/assets/telegram-preview.html | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 scripts/screenshots/assets/telegram-preview.html diff --git a/scripts/screenshots/assets/telegram-preview.html b/scripts/screenshots/assets/telegram-preview.html new file mode 100644 index 0000000..122bf55 --- /dev/null +++ b/scripts/screenshots/assets/telegram-preview.html @@ -0,0 +1,41 @@ + + + + + Telegram preview + + + +
    +
    +
    + Telegram message preview + Local Playwright render with sample data — no external Telegram access required. +
    +
    LSTelegramNotify
    +
    +
    +
    Illustrative rendered output
    +
    +

    New Survey Completed!

    +

    Title: Customer onboarding

    +

    SurveyId: 198146

    +

    ResponseId: 66

    +
    +

    Respondent: Ada Lovelace

    +

    Preferred language: Português

    +

    Score (raw): 10

    +

    + Links: + PDF · + Details · + Edit +

    +
    14:26
    +
    +
    +
    + + From 92167ffe726cd34605da90aa0a11e3d2744b2d26 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 094/169] Add browser flows for screenshots Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/browser-flows.mjs | 109 ++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 scripts/screenshots/browser-flows.mjs diff --git a/scripts/screenshots/browser-flows.mjs b/scripts/screenshots/browser-flows.mjs new file mode 100644 index 0000000..a346b6f --- /dev/null +++ b/scripts/screenshots/browser-flows.mjs @@ -0,0 +1,109 @@ +import { buildTelegramPreviewHtml } from './preview-template.mjs'; + +export const IGNORED_PAGE_ERROR_MESSAGES = Object.freeze([ + "Cannot read properties of null (reading 'langEntries')", +]); + +export function shouldIgnorePageErrorMessage(message) { + return IGNORED_PAGE_ERROR_MESSAGES.some((ignoredMessage) => message.includes(ignoredMessage)); +} + +export function attachPageErrorLogger(page, logger = console) { + page.on('pageerror', (error) => { + const message = String(error?.message || ''); + + if (shouldIgnorePageErrorMessage(message)) { + return; + } + + logger.warn(`[pageerror] ${message}`); + }); +} + +export async function login(page, { baseUrl, adminUser, adminPassword }) { + await page.goto(`${baseUrl}/index.php/admin/authentication/sa/login`, { + waitUntil: 'networkidle', + }); + + await page.fill('#user', adminUser); + await page.fill('#password', adminPassword); + + await Promise.all([ + page.waitForLoadState('networkidle'), + page.getByRole('button', { name: 'Log in' }).click(), + ]); + + if (page.url().includes('/authentication/sa/login')) { + throw new Error('Login failed. Check LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.'); + } +} + +export function getPluginManagerPageUrl(baseUrl, pageNumber) { + if (pageNumber === 1) { + return `${baseUrl}/index.php/admin/pluginmanager/sa/index`; + } + + return `${baseUrl}/index.php/admin/pluginmanager?sa=index&page=${pageNumber}`; +} + +export async function findPluginConfigureUrl(page, { baseUrl, pluginName, maxPages = 10 }) { + for (let pageNumber = 1; pageNumber <= maxPages; pageNumber += 1) { + await page.goto(getPluginManagerPageUrl(baseUrl, pageNumber), { waitUntil: 'networkidle' }); + + const pluginRow = page.locator('table tbody tr').filter({ hasText: pluginName }).first(); + + if (await pluginRow.count() === 0) { + continue; + } + + const configureLink = pluginRow.locator('a[href*="pluginmanager?sa=configure"]').first(); + + if (await configureLink.count() === 0) { + throw new Error(`Found ${pluginName}, but it has no configure link. Check whether it is active and load-error free.`); + } + + const href = await configureLink.getAttribute('href'); + + if (!href) { + throw new Error(`Could not read the configure link for ${pluginName}.`); + } + + return new URL(href, baseUrl).toString(); + } + + throw new Error(`Could not find ${pluginName} in the LimeSurvey plugin manager.`); +} + +export async function captureSettingsScreenshot(page, { + configureUrl, + settingsScreenshotPath, + pluginName, + maskedSettingsValues, + viewport, +}) { + await page.setViewportSize({ ...viewport }); + await page.goto(configureUrl, { waitUntil: 'networkidle' }); + await page.getByRole('tab', { name: 'Settings' }).click(); + + await page.getByRole('textbox', { name: 'Auth Token' }).fill(maskedSettingsValues.authToken); + await page.getByRole('textbox', { name: 'Chat id' }).fill(maskedSettingsValues.chatId); + + const defaultTextField = page.getByRole('textbox', { name: 'Default Text' }); + + await defaultTextField.fill(maskedSettingsValues.defaultText); + await defaultTextField.evaluate((element) => { + element.scrollTop = 0; + element.setSelectionRange(0, 0); + }); + + const settingsForm = page.locator(`#pluginsettings-${pluginName}`); + + await defaultTextField.scrollIntoViewIfNeeded(); + await settingsForm.screenshot({ path: settingsScreenshotPath }); +} + +export async function captureTelegramPreview(page, { previewScreenshotPath, viewport }) { + await page.setViewportSize({ ...viewport }); + await page.setContent(await buildTelegramPreviewHtml(), { waitUntil: 'load' }); + await page.locator('.preview-shell').screenshot({ path: previewScreenshotPath }); +} From b3203a77c79ca8d9659b06ba8eaf01554e3abd34 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 095/169] Add screenshot configuration module Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/config.mjs | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 scripts/screenshots/config.mjs diff --git a/scripts/screenshots/config.mjs b/scripts/screenshots/config.mjs new file mode 100644 index 0000000..300aec7 --- /dev/null +++ b/scripts/screenshots/config.mjs @@ -0,0 +1,40 @@ +import path from 'node:path'; + +export const DEFAULT_BASE_URL = 'http://localhost:8080'; +export const DEFAULT_PLUGIN_NAME = 'LSTelegramNotify'; +export const SETTINGS_VIEWPORT = Object.freeze({ width: 1280, height: 2200 }); +export const PREVIEW_VIEWPORT = Object.freeze({ width: 1200, height: 1400 }); + +export function createScreenshotConfig(env = process.env, repoRoot = process.cwd()) { + return { + repoRoot, + outputDir: path.join(repoRoot, 'img'), + settingsScreenshotPath: path.join(repoRoot, 'img', 'settings.png'), + previewScreenshotPath: path.join(repoRoot, 'img', 'telegram_example.png'), + baseUrl: normalizeBaseUrl(env.LIMESURVEY_BASE_URL || DEFAULT_BASE_URL), + pluginName: env.LIMESURVEY_PLUGIN_NAME || DEFAULT_PLUGIN_NAME, + adminUser: requireEnv(env, 'LIMESURVEY_ADMIN_USER'), + adminPassword: requireEnv(env, 'LIMESURVEY_ADMIN_PASSWORD'), + headless: parseHeadless(env.PLAYWRIGHT_HEADLESS), + settingsViewport: SETTINGS_VIEWPORT, + previewViewport: PREVIEW_VIEWPORT, + }; +} + +export function requireEnv(env, name) { + const value = env[name]; + + if (!value || value.trim() === '') { + throw new Error(`Missing required environment variable: ${name}`); + } + + return value; +} + +export function normalizeBaseUrl(url) { + return url.replace(/\/+$/, ''); +} + +export function parseHeadless(value) { + return String(value ?? 'true').toLowerCase() !== 'false'; +} From ced93c395d8e5a2384e14b90019b3a0da5d23e64 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 096/169] Add screenshot preview template module Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/preview-template.mjs | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 scripts/screenshots/preview-template.mjs diff --git a/scripts/screenshots/preview-template.mjs b/scripts/screenshots/preview-template.mjs new file mode 100644 index 0000000..6d77cf5 --- /dev/null +++ b/scripts/screenshots/preview-template.mjs @@ -0,0 +1,26 @@ +import { readFile } from 'node:fs/promises'; + +export const TELEGRAM_PREVIEW_STYLE_TOKEN = '__TELEGRAM_PREVIEW_STYLES__'; +export const TELEGRAM_PREVIEW_HTML_URL = new URL('./assets/telegram-preview.html', import.meta.url); +export const TELEGRAM_PREVIEW_CSS_URL = new URL('./assets/telegram-preview.css', import.meta.url); + +export async function readPreviewAsset(url) { + return readFile(url, 'utf8'); +} + +export function inlinePreviewStyles(htmlTemplate, cssContent) { + if (!htmlTemplate.includes(TELEGRAM_PREVIEW_STYLE_TOKEN)) { + throw new Error(`Preview template is missing style token: ${TELEGRAM_PREVIEW_STYLE_TOKEN}`); + } + + return htmlTemplate.replace(TELEGRAM_PREVIEW_STYLE_TOKEN, cssContent); +} + +export async function buildTelegramPreviewHtml() { + const [htmlTemplate, cssContent] = await Promise.all([ + readPreviewAsset(TELEGRAM_PREVIEW_HTML_URL), + readPreviewAsset(TELEGRAM_PREVIEW_CSS_URL), + ]); + + return inlinePreviewStyles(htmlTemplate, cssContent); +} From 9a17643201442d1f11a0cfb0027415307ac361cc Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 097/169] Add screenshot runner module Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/runner.mjs | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 scripts/screenshots/runner.mjs diff --git a/scripts/screenshots/runner.mjs b/scripts/screenshots/runner.mjs new file mode 100644 index 0000000..39ba3c2 --- /dev/null +++ b/scripts/screenshots/runner.mjs @@ -0,0 +1,41 @@ +import { mkdir } from 'node:fs/promises'; +import path from 'node:path'; +import { chromium } from 'playwright'; +import { captureSettingsScreenshot, captureTelegramPreview, attachPageErrorLogger, findPluginConfigureUrl, login } from './browser-flows.mjs'; +import { buildMaskedSettingsValues } from './sample-data.mjs'; + +export async function updateScreenshots(config, { browserType = chromium, logger = console } = {}) { + await mkdir(config.outputDir, { recursive: true }); + + const browser = await browserType.launch({ headless: config.headless }); + const context = await browser.newContext({ + viewport: { ...config.settingsViewport }, + deviceScaleFactor: 1, + }); + const page = await context.newPage(); + + attachPageErrorLogger(page, logger); + + try { + await login(page, config); + + const configureUrl = await findPluginConfigureUrl(page, config); + + await captureSettingsScreenshot(page, { + configureUrl, + settingsScreenshotPath: config.settingsScreenshotPath, + pluginName: config.pluginName, + maskedSettingsValues: buildMaskedSettingsValues(), + viewport: config.settingsViewport, + }); + await captureTelegramPreview(page, { + previewScreenshotPath: config.previewScreenshotPath, + viewport: config.previewViewport, + }); + + logger.log(`Updated ${path.relative(config.repoRoot, config.settingsScreenshotPath)}`); + logger.log(`Updated ${path.relative(config.repoRoot, config.previewScreenshotPath)}`); + } finally { + await browser.close(); + } +} From 3a30e656a69bca7474a889c8e39d61c54905b49d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 098/169] Add screenshot sample data module Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/sample-data.mjs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 scripts/screenshots/sample-data.mjs diff --git a/scripts/screenshots/sample-data.mjs b/scripts/screenshots/sample-data.mjs new file mode 100644 index 0000000..cf1271c --- /dev/null +++ b/scripts/screenshots/sample-data.mjs @@ -0,0 +1,17 @@ +export const SETTINGS_TEMPLATE_LINES = Object.freeze([ + 'New Survey Completed!', + 'Title: {{title}}', + 'Respondent: {{field:NAME.answer}}', +]); + +export const MASKED_SETTINGS_VALUES = Object.freeze({ + authToken: '123456789:bot-token-redacted', + chatId: '-1001234567890', +}); + +export function buildMaskedSettingsValues() { + return { + ...MASKED_SETTINGS_VALUES, + defaultText: SETTINGS_TEMPLATE_LINES.join('\n'), + }; +} From b2b0ef852e1c0b5c38e9494db2a6ea1327fab396 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 099/169] Add browser flows screenshot tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Screenshots/browser-flows.test.mjs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/Node/Scripts/Screenshots/browser-flows.test.mjs diff --git a/tests/Node/Scripts/Screenshots/browser-flows.test.mjs b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs new file mode 100644 index 0000000..7ff8228 --- /dev/null +++ b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs @@ -0,0 +1,19 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { getPluginManagerPageUrl, shouldIgnorePageErrorMessage } from '../../../../scripts/screenshots/browser-flows.mjs'; + +test('getPluginManagerPageUrl uses the friendly route for the first plugin manager page', () => { + assert.equal( + getPluginManagerPageUrl('http://localhost:8080', 1), + 'http://localhost:8080/index.php/admin/pluginmanager/sa/index' + ); + assert.equal( + getPluginManagerPageUrl('http://localhost:8080', 3), + 'http://localhost:8080/index.php/admin/pluginmanager?sa=index&page=3' + ); +}); + +test('shouldIgnorePageErrorMessage filters the known CKEditor language error only', () => { + assert.equal(shouldIgnorePageErrorMessage("Cannot read properties of null (reading 'langEntries')"), true); + assert.equal(shouldIgnorePageErrorMessage('Something else exploded'), false); +}); From 8adad9a5be88e3c182bcd156b6c2728618d86c96 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 100/169] Add screenshot config tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/config.test.mjs | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/Node/Scripts/Screenshots/config.test.mjs diff --git a/tests/Node/Scripts/Screenshots/config.test.mjs b/tests/Node/Scripts/Screenshots/config.test.mjs new file mode 100644 index 0000000..06a510c --- /dev/null +++ b/tests/Node/Scripts/Screenshots/config.test.mjs @@ -0,0 +1,41 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { createScreenshotConfig, normalizeBaseUrl, parseHeadless, requireEnv } from '../../../../scripts/screenshots/config.mjs'; + +test('normalizeBaseUrl removes trailing slashes', () => { + assert.equal(normalizeBaseUrl('http://localhost:8080///'), 'http://localhost:8080'); +}); + +test('parseHeadless only disables headless mode for explicit false', () => { + assert.equal(parseHeadless(undefined), true); + assert.equal(parseHeadless('true'), true); + assert.equal(parseHeadless('false'), false); +}); + +test('requireEnv throws when a required variable is blank', () => { + assert.throws( + () => requireEnv({ LIMESURVEY_ADMIN_USER: ' ' }, 'LIMESURVEY_ADMIN_USER'), + /Missing required environment variable: LIMESURVEY_ADMIN_USER/ + ); +}); + +test('createScreenshotConfig composes paths and reads environment values', () => { + const config = createScreenshotConfig({ + LIMESURVEY_BASE_URL: 'http://localhost:8080/', + LIMESURVEY_PLUGIN_NAME: 'MyPlugin', + LIMESURVEY_ADMIN_USER: 'admin', + LIMESURVEY_ADMIN_PASSWORD: 'secret', + PLAYWRIGHT_HEADLESS: 'false', + }, '/tmp/repo'); + + assert.equal(config.baseUrl, 'http://localhost:8080'); + assert.equal(config.pluginName, 'MyPlugin'); + assert.equal(config.adminUser, 'admin'); + assert.equal(config.adminPassword, 'secret'); + assert.equal(config.headless, false); + assert.equal(config.outputDir, '/tmp/repo/img'); + assert.equal(config.settingsScreenshotPath, '/tmp/repo/img/settings.png'); + assert.equal(config.previewScreenshotPath, '/tmp/repo/img/telegram_example.png'); + assert.deepEqual(config.settingsViewport, { width: 1280, height: 2200 }); + assert.deepEqual(config.previewViewport, { width: 1200, height: 1400 }); +}); From 7f96398f3416c4356fbbc3e39f7fdfed577572d8 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 101/169] Add preview template screenshot tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Screenshots/preview-template.test.mjs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/Node/Scripts/Screenshots/preview-template.test.mjs diff --git a/tests/Node/Scripts/Screenshots/preview-template.test.mjs b/tests/Node/Scripts/Screenshots/preview-template.test.mjs new file mode 100644 index 0000000..9ad5b98 --- /dev/null +++ b/tests/Node/Scripts/Screenshots/preview-template.test.mjs @@ -0,0 +1,24 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { + buildTelegramPreviewHtml, + inlinePreviewStyles, + TELEGRAM_PREVIEW_STYLE_TOKEN, +} from '../../../../scripts/screenshots/preview-template.mjs'; + +test('inlinePreviewStyles injects CSS into the preview template placeholder', () => { + const html = inlinePreviewStyles(``, '.preview-shell { width: 920px; }'); + + assert.match(html, /width: 920px/); + assert.doesNotMatch(html, new RegExp(TELEGRAM_PREVIEW_STYLE_TOKEN)); +}); + +test('buildTelegramPreviewHtml includes the preview heading and sample survey data', async () => { + const html = await buildTelegramPreviewHtml(); + + assert.match(html, /Telegram message preview/); + assert.match(html, /Customer onboarding/); + assert.match(html, /Ada Lovelace/); + assert.match(html, /https:\/\/example\.test\/pdf/); + assert.match(html, /\.preview-shell/); +}); From 1683edf839dd0c65368a053f6b9f941564e786e8 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 102/169] Add screenshot sample data tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Node/Scripts/Screenshots/sample-data.test.mjs | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tests/Node/Scripts/Screenshots/sample-data.test.mjs diff --git a/tests/Node/Scripts/Screenshots/sample-data.test.mjs b/tests/Node/Scripts/Screenshots/sample-data.test.mjs new file mode 100644 index 0000000..57950c5 --- /dev/null +++ b/tests/Node/Scripts/Screenshots/sample-data.test.mjs @@ -0,0 +1,11 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { buildMaskedSettingsValues, MASKED_SETTINGS_VALUES, SETTINGS_TEMPLATE_LINES } from '../../../../scripts/screenshots/sample-data.mjs'; + +test('buildMaskedSettingsValues returns masked credentials and sample template text', () => { + const sampleValues = buildMaskedSettingsValues(); + + assert.equal(sampleValues.authToken, MASKED_SETTINGS_VALUES.authToken); + assert.equal(sampleValues.chatId, MASKED_SETTINGS_VALUES.chatId); + assert.equal(sampleValues.defaultText, SETTINGS_TEMPLATE_LINES.join('\n')); +}); From 027492099d6bc46c38ba9cef05258211da236048 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 14:25:11 -0300 Subject: [PATCH 103/169] Update settings screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/settings.png | Bin 144035 -> 142550 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/settings.png b/img/settings.png index 8b1e75cb26c5d87a8f6b2d2a7be2457241d5e109..bac768d41a0aa2458fc352576e2097bb83f41b94 100644 GIT binary patch literal 142550 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"dsk9uDRrTU)AATNg_^ZgX>9Km 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

    S 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 literal 144035 zcmc$_WmsF^w=POcy`{9JK=A?viUf)Uhqe@VcS0K+f;$9gDOTKFin|Aw;ts_nxLbk* z0t7qZ_dk0-_uRAhxqE-O_s&o2S)=V(*Og7xCiYyugwA@=4VtdG88ecigD?>XlKm^gX+!5zBmqOJIM z$sc&zfQ-JZ6o+4>Kmft|8S}#JoSBr3)XPfeoZ=h_Ju_5nl$GXnM@Y0>Fp;e9t4>lM z!q@kIG>|OsJzGimP3@JooE9+f;Vn^U>E@y3z~-=HQ|T^>WC^uVUt-(hgh<4W2HU(X z&h!80RX_DM?mw4HKO`~#x>x%)Qutq2tN~g0|6F-LrTIT~>(Rr(`HPe^LsmD6=oOSY z9G!h#_>Nlj;{5tk{r34c25+#B*CG`p#*&B6B(r?7RqkPLdw=(j5XSM|Wnu-rZW{Mj zx$Sz1bKCW{{WBoku=SNthKz{_8BV;WnG@V`Wa5t9)R3o(JVr_d-VYXt?J~`n_^MFC zYW0`cD&=~*anRQ>W6>cWDbGD;G9BJ3`p<{%1ZUyf?Cv}VNUQpbIiC|(R`k4o@Wfuq zErXulwwtfA7Ve06GFG=oYcfnZ$mjXHwYr8E+!=fKB(f=HbHR)Ivnplp`Egr*Ff9z) z935KNAc}{2E}K*ig{vgR++@7C9q$9C$>Teip#3@LMLhxposCJvc_`@)HA^$KsO8j< zVcrDKVoe#^nl2@i<`!c!pZ4W$>ZC1;Sx$wEtMFs zkCT>ea#%e@ore(#H(~y)e|@^(wK);+J!xcXmat;E(upc%;;^E3bX!wvX}o4gp0Fmv ze+S7$L6XKf0TNC-Y`gJ1ZMk*9KOZ}fS(lv5^{6B`?OQ8|DMLw0pOaB>qE3P%CtZbN z`;tZEy;#^gfW&(d@eJyFJ*9PDkullGGr!5o3<)80+XkzUzVQSy|VrsP1>mp(6@PdpQ3tXux41x#k^rzf zPZ3T{eW*Z8unh48V~wKm$KfZJEZ zeQ8Xzjw~vsGeJftiavHWgVyNiF&kBnkaFzBWZUn0jm^@b_uJ94ru^cLbtNCiomv$gG}u(O+5n_lbB2 zOHZn}lMSiOpL!sBMg8@IH1yw3SGYJ@omK29aB_l3Ech{tGCXVB?jtqa32ZF}L9T&- zjbJ+P$%Tdjh^2E*Ps3q5FT|E<`6a4vq0inIV}H&7B6Ek1koI>5$AMfJQQx+7^QUpQ zD?Q|`v|t-cVwLkU+qL`;ZTZbp&OL^H#nl*T)8}3ds?U#_Dye(OTfe-rC>yZ1=+n{3 zvEJ#qa2Psc!7Pb!+(wT-e64=(PD=N4(v7}2mAQ3*~N z@qI=4CLdoi--${C9jY3p_pzb#L2SX4x-l&+Nw(}zp^=e@oQk;>H?1#yKYA1YEcHZh zM$!uHgi&q3&WfWqIuiX|5GyMYhKO-9^N3eoCgA3yI~3kFGF>@ami7hhjgK>)1{QGU z_SI7ajO#5*v*)f)6|SUe@lO!hkB^(g$sYj82YGFlW0h$)p1N*Jl)mq(aqHTZ_)Shasjb&{RD&*&eiR*eeKM9-i+A+q_~W1W$wmc< zuFWy8OTE4`kEzR)TVMRJRGx$X7gVp)Q-@fd7p)SC>VK_I`I+ktMAV4|vywch!%^|H zzaVk;IZr}jNg6XM946Asj2yf7>$1YyJcKB1s57acpDF1lwY`$5@#f&kdR)?%vP>@T zOoFQvVP$G7`HUVz$`pM^uDL+86FCb?(TO$lBzyZ;_C>H94-`&XX&0d2zV0(o-Jw#9 zY$JTRaJm;ztVumC3XMTcX;=k`+KI|C4- zm%~{%j_!tKaobCy{=}O>!jGk9Vw;#M@WZa=(@gX2F+GZqvn5<#5}oIM02jqIWDkq^ zkzC4O=-mt|INX_X#cAs%hc8s+CC~zXG22E^*I8d_BCH)zZF}N_I<=CSI6n2yt=WKH z3!)Tgp%Rj8_}ka$G^%3y)!W@>?o<52{Y&0sVuu(x8i&g-jB;=H(T`+Qx~GYPmLsqI z*y$m!uM-vVmDH3c%d>)JY|01TxvgCWhK5F;%eg|<9VW7m<2JvTZ8kdeM4t5}650x9 zSR)W3#q4BkQ!sxIF>BKol+6*>KAix?Gyew*ibWqtNe62FRta~T0R#VR{nQ%1vbw59 zZ1*<%4cptXaRtCX_FWVWxFH%g_RT|J7L_+t|5{clzFGJOtBP=A%fP;2N3|TkzP2!6 zOD?AaUq-$G$}bqaNj5;QC$6m@)15b-%O$=1dymUY+7qNJJ!jCLP@`el%gi~xWj9JJ ze03b%IbYPx66NYJB*7~(9*EL<`(ivNedWwtx zhKxs+f1pK3HZk#I7tPF|-bm87Rh7(#GM&ama1ItsTXBAvob*C^lz?TT&klLFSy;J? z#ZkM0{GyVfOnU+=pbIXcKs;*p=yohBvYrZzwPbfOZp8G7*E&3>WH2T@rlDBjs8&vJG8_`8xl z5HwjdT}{ueOK<2oTgQmc{3JCfrLJz8rb*Tnda-gt&4>NY-)Ht;1S}S;MhEZ)$oFyIF-@i5ZKL`xd=fG~?U(dar zTfkrK@=V5KXNsBV-B0u>gVY^tCmgq+e}{qJ+=y@Q;QT)T!v7*}{QtR|9d<4b751A$ zEtl(TMn*>1->@W4@ah!@xGQ+3(&Q=5J17oLiWEs20fW5dVzUqzmnwGZb7om0y2YTD z>sgqE{l>t{KYIHNqe-8z2zVtzg7SPU?fOgCLu|LYtj1w$PgIhE@c9=UXCW-6_TKfw zBXimwrNdg)hGA8MG@bA%-@m}_e;;%IH*A+~9cic_xpkSd7m_s2BIE49Z`u^|NtIb&)x-g5uN`7*(>^ zrkk%kY&^;`z(JkwE~BbFZ1d-PZ`@Sp_0I$4p2lw8XM}X-PrRm`}JS0{vo=4kutTSn~MTEh^=RAIm<#Bw6|Von0HIW zll^dJUTve9YKasXX^eH9XCAli(qxiEFhq|sYK{LTpa z`pL|o+U`xW)r2rR7*QdCyEgyOMA*w^ajGCID?<8fkuY>&CG7+9J5ILh;q=+hh*(r^ zAs~avS|QbJE<>!E7gt<}-+hKl>(itewBMT+vd6ifjF4$-v&;i(veejlThz)VV$%+r zhi|c|*Ot&pW{cOwAcHt#Lyq3sot9)iR2;?3o1o)8HkBT2{l4|;oA{7*uf<9;1xK4v zE=Gp2HV>!896{gcw@3TBk)4JSj#0lXGp_c32&_$7u3SF$Pj!`^8mWaP z$G%{h$bA;-_0d+iaH$b;6k8|Awreqidx#*^;pZSA3Tpkv4}yH?hY-rl~jJf>BHl=eF-;9qoJg=Lj69i-LRp&8v@VWZB!xPbSr za3wAHsa7Nro$p-uQhEF{BAJus`zqS6SXDe55c_~i-+@ikbFv?+J_>AUugIKMGd>}X z?^k~k99z-hROs{HD3<+DoaAs*_O;#fu;&Q18Vjh9BTx|ve_`1NZ!V>C{3__~0{R3K zqmQC_9oVDjs@9f#q87%E8b4;~r*NQ*=!jAtW?Ybj}E=hI_Xc^BZZ6@HN_uZ?%bvsBr zb+OrSED*gG_)Y)c_v8h(nXqGrt zkB?YC2+gLr+WUxBWNd^c-h*oEX8+}t zTE!9x*>fmbt4o?Oq1^CXn6Zi02v8uGV;*(02S`XWERn0IVj~@w@8d!+hj%KFO~pEn zcr{w7rJ8re$}(z2B+wf%PZn1eZ`0ySX*YbW{s!v1Y8Pi} zpvsQ!p8!*()x7^?%U}4>noQEr#bBf&0pEAp*bkr$l(TgM>7U4%3S0HK=&)6LX4<#ov zAWJhU{b=T%y8YdC)M@*J>z~@64=;75w3I^=&;3OtC75G<$Hkmm6D0-46D|6a-(V zt78L^r*>B?L;X3YN_sb5i=zB6*R zlOoVU$;XEHUBXE9n_OVCWx?t~8$hS~4+(|^p@AlLzAb&<@~Q!f4y(FV-VE0lg$(4;CLGhu z63S4Q`FewxvYxDGL!!!&U50rj*BG0f7G#}gGtGj*HoauN0lbL20oFfjvETeBwikj8 zs}_t2{UQr>W+s!{V<3$h)m;%p4*jD#0MFiCokZc`v=ce6)%O)-BVOdx~9`N-H@8SOH} z);E@9>dF*z^~nmG1f@~1wDFe-hvTVg@WO6@&P8~8au}p70b*w6E1j*VDNC`Q2zbDF zxLmsBi2l5sM?O(2W@aWeQK+m@Jd64`o2>LCrsW2=QX}W4*&-Zz^^?W@K4~E#hYYOu zUG}`ybjdKh$~?>r?RN~o|CtA1(3jD&GBf)j`{V+{u^^6;b4^=N$HGN#&yHhOoR2r` zab9JH$O6PxH zIdL@%oO-2b&7Y=WvtZ+9veWW>H@p^6WVyEo>lfb`gaL8|_pa}|&dXo!$Wn%v*+G7M zooJbT((Gjwd(#LY(&T&T%stiBy09Q|N>-tm2SH(6*{(Zcf8?W>pW-j3(f#*Rutr`)fA-h7qrkXIU^6fE_^ z?fqFgSDICrWwpBEplwZar$O@4$$|bns~)}BH<;Z4JL+Ex9{e9H`+l|gRjaVT>d5q6 zc#RwREj9{ejO^`p&ULME$N?xq~yJ# zIqGy~9;VPFKulEU=1;!9-uteAziuU~PGrK0kZe6Bmz3M+XJeULd;v2Y>jfu}$aL+T zmZmnJWlGCzf?2S+X&sx1dWb7M7;GNh=A_=$kFqoYl%>Qpf6QELVLe%wH#y;>ytR-s z0d~dchGwIuKc#evMxCXH>AsBRUC`i4=09)^+2Z^U*g#(U)br2s+MZ2J$b@VaT3j_x zC6zQi{#LjR*XkeN-E*>jU!SL&)?;`nsm+M<_iAvh?Q@O0^dc=QjBu@Tg)6tO$4dp5 zS9KGyI>Fc+4CjxYuW$05T2hqn58O_rTgVfkp=uH`o% z_B$cvX(3z7+`CI_#(z!uHjmK_&KA6}QHm-{o_QnSwt6zy$=8iXfO~Zjf3j^tNde*} zQ3Vq;Im}2@m+%h(%??rQ96snHo>&|?FBK}JQhx8F;TyY*+rji(G1!;i!| zI^L*tr(+4*pZ?;3IT=2=1zB9b1|$gBWw~BwnXJVmuyjTKz@?iK$jEm*2$K(b}@(QOu9OC)pNN}lqDT)@?GbKQOI zw38w1Mb1hxxcWDje!0Cya|F3IY&Uy4uQncU^X_FSRerFf)(6I_qrqHU?n>vBmUWh( z0k-v%8lXZ<_HaVh^PuM`QM5U%@PI;%09}*d9!(QNpoYliaNgmg2l{ z-VeG~*4JmnP6NqBO--%bWiph^cNYh{K>ulRw>$4Yjrhyxt)F5&^?n34@ZC0>Pq%sG zZPR`6Zx8&dTVVM+``yWbSD9N9HJP$YL|jvQJy7kF5we63Y)qZQo5NB%QwhxYx%)!k z`sP+hIFlqnVF;cY`hd1wTcgn$WUF{IU<$jUCF`$nqIlo5L%|3211ciRM)O=ChT)@n zOh8(p-0C_=7!&Kn*ZV_uOtYRsFKbK<(2ebR*RFX6TIPrec^%~AGuO2?B~Igf&q;9a z2BwHnVv)Gj;<>3`Zv)$)dOGmi{KDIqG2h#m^t7eyE>682DpWS%_erG?t#$}uXPrN) zvNC32jK;(2++Q3lXC_zK<{n<2p=$m7S+qbA7qbpfv|ya!+r~Z@x9c`Zc5`oj)DIWC zP733mIWL_`^>xNCDn@b}KiGt|F}{l3A|kyi$5IkzSc3_HvGmlRJI+RmUo3ytsDX0! z&4dFczH#YLP>pKl7gk}!yMMa#sK-nuQfL%7<%|m3)69AbzeH<>)DINzPTd^hrnCpz z;8t$B6U0cQFJ@NyJ$n^<1lDkCt^_RV0X^BQlv-Y6O^wvO-KBW5A)YZ>rTxPImcsm& z**##7z*|9aGGgSaC)6{R8VbHne>rAMcYj`xs8v%-n|A#0)29V--;%1VYWDX%*WUMe zmfuQnT}RrVW0*vS z!+BFX6ZQ#1)9`ifMdWy%XiiVGnG%Fsx_BYZw#$7q_~+ZYrayaVS=FhsLGI4FI^T7- zD6wbC_kW6i={CPBG>9icMEm^pXu#2g5#^-{-%pZx_1SV4ItHQ-bBtn zT^BGh4W^MsZ(0bDm@;VNT@^SmV~%Fm*>%WMYOfHoq-Ya-9Ep8 z5UonIzI!&entDr1Ro2oPVW!lxC+Fu^m2GLVO&WB>^Mo8(>%qog(}uIb3b0zxj$Dm zSKec-`&KkMV<&tk)o%FjTQQ~lk{tH;*%3W8>|)ZrO4pk0L> z5_2@lKb+1Bs;kEibpv)Kx@hDK6IzrvxnOx(YHkbZ~zA z*2e{d?YYP|v+m1&`B>$g*_67y{b2WZ`Mm%5nD5rsLjgpLfIZxKRP`Lu-Eh5GV0n<) z+ZS7#h?f8=0=c* zb?+KZMV@yAKY9)GZ=S6xGbm)aj?of9?d61T#FGC#jSCUE2*ZtNj+sc12@=uQ-YYz> z$r`cZ-k=A50l&-a0qwG5WA&zAH+@{#jjuQ8unKl?kA$T%QU2_>GKMv1gIl5GOe0at`pcd^ktXK+{;%iEYHZQ z)+)w3a3DtR{C&GmlM;RM7}0~7Q_P3_6|;;~A44&HM)n>2Tsx>HK1zT2J=KUCyE@Yw z*+iBM7nUQIg-0vP1qJD=Ggt}>az=JGYu_Orv1eHj*t@{qH-|{))L+;p5-S(I>X=Ar&%Uyty*Zpg7>6FBj8UuL!9S@ zkvYUF$M*8+0_9LNeYC&o5~3~4(o-P3H~d!<;WqihcX6YLCtnXXB`3i@SjB4eYl+~=Kdu*v{)t7V z&aZD1rxO0+e3pUHRfp^4xnSJMXtTsF(o8kvF5@n*a*krXPQkHwr6RiQPet_h`(nao z03X#z#7RDvpC7YzNtMO`cl{;U*GTO|18$t|dJ0`9J`I&JLUJ(v)sE_%Z4Z+!?EREB zt*?E|P>Ckl5&P4@ekT=?JFZt;I@_==yZK{oj;wgH`6so8zdy4h7WkNoi2PCzzZY@jzQOltAHAa3-Oj7?mPUMeM~vHNU(e!f1Xc{9&sj>2!Y{noyPV-xeULQc?a zBm4F^fnPNx=PTS$)czu64u^hm(W}qYH(D2ZB9Z{IciD~(cpAR*S;K=*`FNlf@25SG zt9$)1YKZ>RH-n3hO={;e8zlnvOB0(3id(l@w5TFy&L4qioDpJtLaW&H;u-lZ1_9hwwIbEtZ(ZO1b^p@3TmUTF0)!%p&G{(mqfRG2xvm#_0!nE3SHybC)3YLK%P*`nkQPG0Be>?P>)OeXAL z4k@GD=S7%#Ij)XIRwvdMpR3GV@rEp9X$+iDoQ8CxqEX)1d>0BMMTnCker)))7ZR`cQq4>(}z>&@Pnm-W8Bt0Vm3ebs8W|p z&AzPm(4=zD$t^UvVPPn!JQj7gMyIIy*(uueC_L>Oyx|I(yd$M?5?lEBSs*D_&-ssI zymht3AjKA2H#`4nNum>vRHd2e^C6>MX31k)pbC;jpMb4hz`hka`0M4J6mE{?{ zEoGAh&+%0Ipg+3q^%gt{i+KZCl`L}1?tXfb`bp`N5FIotIjm#>@R8u}_D5&OT5*86 zBVm`$`5UW*n$oZj>Z;>O5PVFG$&hMdDSp(!G2TJB?tp-|sChPci>={U8 zDma6TW@nzpN)ru9hd!_Jo#;-r-C%NXkF}rZ#r$r941|D?{2*1j2VxlC#a;R}{Rl?U z2it63(TBy52;4*aMfr>oCeWJcFkf6=To z$~PcZNmBVk>`kw(ZFOGJ$bp*US;oH7Jz&tdEf49%6#$EzF$A<&U(|Ed>d|`k zBtSO#jTsrodtf{Is(#_SegexB@zETI`ptKi8)Jq>8I*l3|wuJy_3~RwMd5 zsfca*I8^rAM~T7bckRbHQ$DMkzltiZtLwI0wVku1nxRa3U3eJLz>GzDHlev7({yeD z_s!VqUQgw3bZ_5jlacMDn~>{sFqD3tdcbc_O}+@0pOfTaZMqzzR{4AbmP_wL!;*IL zy`W+qF!!s&`xe^TF9~>=!N;`U0ep1p;S$6ceQi)R&63A~8$8$6aq&^zX=!zEQ+fiLcA!hPlhsU%E^~NPRC)l>yh^l!BiNQzM8t zhKL3RU8&&rJ{NX=#)_@p-;w{)&T$OVqeejq7Y^Th$1)~(HvNk*ZNd1`myya<-*LV8 zL&qcc_Bh1mvd;d*Rt3Y9KuRuWHVLO$<5Hgn=&`tdi$`|^vn+qn!^?_{Crq&S^M(VZ)!8KSiPxozo^q))=v6! zxP4mJHMkO}{+eP)KMam* z>|c1YI|XWRg50LLwYyhe+&CZM;AjgT_0W1@#?pGQWp>^IanYyegIGnpmm%%ZQVF&^ z498|3t6Z__)xX1j2x)jJja&7N+5~%zZU3#r7~B89l0W}@w`1bfnfaE9=TYyh1dN)S zXRwN*#jW~{$OPxM9JOkJ@!^OVu;4|j#jt5+o1d>3o$v*wdmYj+uuf&|KB6wK8I4XL zu7P?qC0A=>Rq|-nPEIOSSZeysG#XQ%x9C~4?{K^bN-Ie@>hnirYd{YMw!ZS1vlY;# ze$f%kgpGk_pao5@?a%#-ZJ$R~w`_fJ$8Lt+@E^DK6_F$fCst9OOz|?9*|WXopx&MS zD%@b-dn9<{x}63+7wf86DxCt%IJB91HO$)`Q?Y`|ws)7r%+fq;O+_Pnw3|JKwJHJa z71k5=f)jgH3eA@^_K?P}n@5gX>nR*!m>&rE@Wbwh%>31wvTY(}{lsyzDVL=Z6NnJr za#w8;ibzw>xYZ3j8w6gWeYVghBjNi|trHIxib8fFF9wUvmv5nCCZVk6~uYTV(sNe8)W)+M(PTi8s&h|+y#kqc#WsRD1 z?0I&}rD=e6{xg@i!ql2?hLTFAJpTi^T<-4;biM%kt!vgO>_Jb1b=LXiG89x887a=> zTaGz)4f1NMeRwxoxf8rfAg(=>R#F{+)ofjJY=ekqR-U~%+1fK2GrX^ri>SFRcd3P7 zsWBXk4`yVst2M{W+V%JP*GA=7-FfN#%w0I zyl*H8H`PVp0@01D-5mRhM{5Erc-)gYVf0z0QcNCZ;$7r0&;NJ19G+ou(`OKoXx`F< z4PQ95dbb0$qOI&TtO(d;B&rMV{n=^2F*9RjTk!Y)AWHwILNw9C#3MMw%UUbF+e3K2 zjG9;Y?D&YW{3{PDRv!f!kachZnz>O~9;OR@_r~g_PVvcrd&FTZA|h5ZG;l8V3Eao6 zIgN-5`I*R1U6uZ)gsM7*90}{{v$yf?_%Svq|G4j{y>RB|81D55Lm&`Wdf~Q~5hI1z zMgDI>E@_ys^+oEAZIE%WvJ)R@W4|=={_wQTR^>2 zFZ;^vuXhpEr4wPpI;u7uMxK-WrrW6iZfiVhQ&d~=^Pc6l0OKWK@62RD#H!3ce6H4+My{M5ieV*D-DZP{ z^M{i;rF)Iz6*HDrdJ_^=Y&qbU8#`mJ_j6lV&!&W?6xhycKzmwF@4?saZO0yerdK(; zV76ov>qe6q>yxw$^%Xp~(i_S}1y1$OD(nOdxR?(YASPC0i(y8ohOJFjY}n!0SYYce zvBOzwJ$zg+2Irw*<$-r?TQ2IqC5t=u9z{C2VTE1OqoYp$ z6aLX4C>+H?OVE|Smbqc#>_LB#?d4Hnr)zWRH+*gTvF}V3T5G7>$4s?52w*UT40DFa zx_zY62$dzx?SaoU6Ddrh+x?b)+9IS#uC|5z@$hAX_Rror*WJ|G7L+<$&7L3TGeIY2 z!cL3ep4vcG;o8hQ8wL1rY%_)dpt>SQ!mWkse}aRNNZmgNE7Ci$n_1Soz%5++a{+1sXdL|=Yv#0O(&{i$kc^L>WAcOu+gqkz1n;g2(HHToRJoAydJKaf>kXidP3!Tf>Lrx+< z(y0sl?q{rc7{@Yg_@>55W|LhCjlu3g$2HA2(zvxmw<-JX86LJOs20aF`;PYiHxOmY z_vg>(m>BF=y#->A`-6{}LvTJ~al+r3U=q&BQjo#|mMow9odp7CfsC(*Z_Y*TdcXLe z=0ASg-$}ul+u}xT)x9{$Q20e8zhAGx;l%gsgiIy#wVo4qvaW!MvYX0I!+uE^`qkCi ze@@hUzrZ4)zcL#;1ZG~-iApZ{jlZSXxwz~Grq{IcRcJicGQtMvwtE#U37#$tdaxE* zQ0LgsNDQT3&cI3G*7l4arX>ijN!T^gX2Erup_ z1z9bxH0!MhzxadJQT-7HBGKYc?XjA_WI6T^Lv>$?QYIdy zgSvsPHkWOio`l(vu%_zq4J()B<@m#$vO{)G(C~Y+!FyUv_Sd{u3i#QJ}iEXg<}VuJ)y1Jos02f3;mxwf1DNfh~JjD{QaO~jb^+fq23r6cS{^pPzd zFU~>v$SA-%ec<|&94zO+1mDB$y)(F?g4ce#?}|SPK%nZ7B`dtVj$0?uXSb-$t9rU~ zIYB~4MBP}mTj8j~Q1COr<8Z#u{^2CAX5@^W?bM1Zo00w#mz@xB-M&>Szov%fZ5+W# z7r+t;={$*~EOMh>51u}hqWTZi#sB22!6b`YtFE3+daV?2BY|6HMfB<_BS*O9TS4jV zo4t|PDkJZOgM&y{$(uSFmeA+s3XgkV>yM7$iNncRg0R9Up}leSz`(D`+w&>(QTbBG ze(Om=YI2{29BS)@*56qKZuoy=>7A?RuIzaK;9X()+5r-)Hk2;f)>dfLRZ$Iwji;$+ zvf6hGB=Bd#WS-$tr+V@jSk1By?s+r-fw2^BCfyGib}@wyt*ql#lF?{{%ne`1BsbmFywucR@&o^|rp+w*}Nk-_5$@IIPUsheGNj{)0QYc@XH z5HW7(v5pHyVtpPqc+omO{>awCa+qM74>ky4Q?t$I%p~OYA3IHDcO+lMDjFXN;$Dyy z?5*R!w}6@{B?L(8krz{@i_B(i?87z4qXkh!w2dcrMe4iW(m^L+!K;bh8rsOA!Nx-; z2#Xm|hh=auBaD2?SD!;;138n63YJMAa=ce{l2#q!M<9Tn5|dAPlU?SXdi|rM zLh5H|+Iu69EKr+l2AiR%|3jBY^XvST(XnPEd*Je8t0F~(=;hw0?K;gBJ5QZWl8>bl zqh606%48lAi9|2V|F0sI_LFL%gnCzroPocXUf&7JagEnh{n(0HDS4?!M|*P1qjj;y z4}iR_dL)M(sG7t-yArs7RQOt#@q$Z(n;(M^6)R>~Z#26mNbm!{)fX-GKN{Xr_E=k+r*zKZZ5O*uT1aZIE%* zwoc&hVpKoBFFP-J!;zi#g4ClFtEVjy)G_3)+Zg0|DDTq`H@fvat zI4j|3xCVN3pDK#oACxBJ{;cci)!8W{6k1&A;XHHJv_%m1u|>iJkK`T8dUwh3Wz>kR z*yX)D$j_HpknAQ!c)o)?gutYIQl)+X{;Sf;(M`)-qG2@K@MMQ#VV(7KNs;{I(#t=ry=M1Hd~Zc z{aw}xGp4QKwCD2GOsu%qe0OlVc3M$~9NljwlCm-Uvj@J9~p#Loel z$^t$fSo2OSny>pTz{#h}m^=cOn0KlB54A;#IcmTY=&uv1WXW{BH&ih-!<5pn}c3&*3SZPIC6bW8zY9%^XEC{$IiX*IAI4Ph(wdH#Y zdZ10VsCG(=B0)wqZR79^^|R1`gWco5`vw~B9W|RN6Kxr6LaO6~&O`c*l|MyKt1kDQ z+hXsT6%=`TnMt+wGK)vOd3}VsfagNFq1o<$@`3nQO~yWp!&#JkPHvsiLE?~(`le4z z+eH;eCt*;vBuluv{W<0D=GDxh*bROD0y1HizIJ`WkTj2Gmi46A4wac--WAmL;K`z< zQ%Zq{0tfRaGgESL3m4|jvo)KJvHPz%7W3Sx^w=>GBb4*%YcuWHRTqE^AB3l{;V;W` z{ke)y^~;#zAW|8C6X(_SDdl{%$vA6(4zA?Y( zz(yWPt>7r#m^Nq5(%U;wj0%#E=WD|%uv#80BFr+fNkscoaYnD_<_S}+V)>(vrzD5T zJY`|y8K*%~@gz(W%Kvwz*8h||ZzOB3QT}_~k&C)hph-tZw3#`Ui%#~?TSy4-HicCc zo|{i3C_4rN=~{=;U%u5`rh1YPIF zR86HBiPd*`Pn&6j6bkb*4iwRMf-L=_8_IR$ExH-6enfXmGwl|C@39 z?t2H?epz0WS5{RdEGdngfm@vd-tIMLHj%mOHIxnO6$g@K_P_5NBupiQr6w|hEt^I+ ztzRPCpiqj%?>y0#HTUvI+qKfvT|=efUsAk_3Kh`Tv?ynSuawsm?ozl5ENG#d?a_#o zi4g1Eu$*1Cr!&)Q)Y2m!b$J_+dkZ(bFF0uw$0;%9V{Jc*E6y~GuLfuj7A{2lg_-I- zX7)}wT~#2+_5RU11`BB>T($338jg$ViH5XQ(u`Ec!&W;s7h2xYS{37}P=<`TJ+zfpZa!A~WfJ05P0n|q`knHIqCnk^>8cG3i&!|x?u0>;e@_67 z)BEeIC+mN45>BS`LR2jPzeljzmVIaMlkRpj_FyKV`0(HOcpH&y1%ofTRcQ_R%8S!S zo0dFU1){G6{*4Rxm<0sRl|l?ZrS(}enkas>{G8mSzz_I9L(Ql@fvstAFb96BxneZ3 zZX<|f5W9Eo(zh<{_&4CALZvlWR`X(cpU&GC|!F5Qo+s1?zPR67O7JfM-h`M289UV$$qlrOVB#6)lDB+hE; zD1TMA(6$qvs3T4y3C=wv~~MWhDdEYR&=$1d1;DsRoy8}fc`Y-*OUwC z5RqPVSU{MSRO;Lj;XdjFan3Qr_Nkt=zF@;U{#`LbCwkly(IE*+Xs~JQC#ks{+PN0k z1e~JQtA;%@`#iKUxxH}5ElLRHY%{7!@MjX}$fy72;<{%fHC1}}MX_}m=AzG%afJ4# zva8p?TP3HutOBk0(%0+yO%i~H?qd-#F=L(3!}!AjZIXQ31L9{qj6R1c=kCktzmP*a zhfAS;1A&6qN+Svq|5DhEyZ%ww@ul=hUsG=7|9awPx7{S&B+N55y=!!xya(A%vJZ$3 z#@3ZtPGI%^m}OGfrMjn;({=gXrRo*P1Dq{9=bF$`!&GF(q+x_-KhMO!YuB{%|7h1Y z>9(g14Yoe2K_g73Cym0Va{sQH&)z`i=H~~C8wMflef)PFR6WDIy5s6Qn`mudvtt=k zIz`L!T+I#F(ej*ATSsApv1$__hz!(K0QSUZPT;SCK9kUQi|DS3MC1K{9`8sNJ*_4! zM1JXqzDo~6Xd}5Ef8WA-b>eYI8|O#YCj9wz0GN|}o;qbU&Q9=&o~xN$70AFoyQFW2 znE0*G%XsU<2Ms4llk$(Db<`AC&-i?N7;Ez;Yd*(uET6)^uA$%1%8H^}GLWiH$39bR z2gq}ww^Q;g(^VwXuKzQkY15lI5MxvX<;Pe6n5Id`Idt}oolKf@X^6u zK4%Kq&e-YhZii8Y#t&Hef_i@a*jtfPw1R78OF!e)(NO)iK(3Z&(08edcs%MdU3L@M^v8H^t`T3ERww$H zs9ztY!JNC_!Ysq1-;HwX5-v39D9+C8gY6t$YLzvVbHdOl0?gtOWOr_E0`jqDngtPmV7M7P6`1R_Vm1Z=xX)jmq#x(IYIb+i%sujOFU!9C%@9SryP1%iP`ZZog zH8L^FQOZ|b_20HfcO3cBHi^aQb4`8Lkn`5g&VTjY_f1vyEr^ALsf*CsL1c_eGZ zHestw^*a--cBL04_a$;b!fuWAm+-Gl4JzE^hBD@#0K}5U9Ne>z(zuiUU=S z7)CHoR0!WZvCJ?1%i|vQ_g=ov^WqDEi(- zJ>it2D#@RR>w!Ts7b+-`#nDPl%75Ahf^6P%I}gW#*Xr$Fr#DJf#{KLaf&2O0nG~ys zh03I&JYkv852=3o&|xG*6EY*bcs3vAaPP7T;$seU+6A_|ek)0O}VPU&0fr zb-8Yxq$*~c`<&Moiej1nyeZ#olO8)FNhVRByA6NcMgS@Lve~J>9FqV2^UKB!uc;4{ zARf~n_f8ihcp9pT*lqc|>*m2(x zsrAnCZWwD6>M>3WQGiuE#ERc0B~`3#ySbmUDBm4In?b(-h<-m!+-tm*9xORgPSo$g zGxRY?mel_2K&Mvut*)lYaje~tUmou~odPtHRbIj7NlJRzqFPAg)$fXl*>Q9oV+pfk zTSiM_vBt;OICYeK>h1L~N1w3M8JD(tB?OP$j=$-riT86Zru)QJXIXjXR}YL_e@Bde zRk&snE2sFToL_K%^xaM`%ueO%hgPN*EAPoEe_qH-FzVSX`eZevoSV^G%&WMpBz4t0 zaZea=-|KdJn2PJfJ12;#p?y$8z4g)eX9-7A%vMvuE@SHp!-lR}S3*B31>f9vDV^#A zf1MT;sT`@AFw50uuYc*Za|r&v%Yi=Kb!FuVoZ*X2`tWdjHf4UytHN?h$pjuRbd?g)R^+LMTD0`cUS5`Fdxd?7vU%z7+p8f%|$x4{;=SXo^{AVr+& z`s++4Q#Xlu-%Z`$=||R0C}$BT__l+%JM;upK}+ZDEY)v_4pg{)8o~cAKR!)OY`3K3 zV~JadM8oT_wJIJa2hG+Mncu*7p!y)h=KNPX^j8D#kXQItC*R+x?sErSqC2)fRJ`i(mQE9D)JpKkN0w#$>9oyPx(_HIqNruYKQuT9Ihx2sCMOSBtxY*m;o;wy?)w_i zqHCyPcKpRnf=B#os{h5gOe7zbKZ>U$Q~`cbz1-w}-ZCwZS_n44Acy5yI-(QGF0#Ps zG05Y zSyGw?D+#eiC-RJ?O;_vWEd5+}mhS8(14-Y^k$TOLwv)-s@v%hD06)IP`#9`xYpXM? z;T(>fAqX-(0QF#>;-vL8_gL;nl^JVgOpgcFUw&5dpi;MJ>D@#ujW$L;q~nD;dJfk6 z=t{@>+nbKZgkR++n~_Vc)V?fXS;wk&`@69D7KqVU*WW2-~f=MJTCe-PfOTZ7{A&?(|8Zv1w(hQ7h~!Q zhdX2BtZBrcGB21d7zeki$B_k#OZTjUot~c5-fvlA_35@b{>kxgWpnirels;|E;YWSw0tZ+rUtT;3OEI-oY z*mCa9{Bz`VIPr|Bo9X1;o&09|mE3px_1AzdC&F22i12DHtsj?u z7xQjf$o8d~^?>D9R`xS$ &E%pzXa}N1RESznU(t92F#0BoG#MQ6I=%)J)Darkm zK7W2XFrIlbkTBGE?XInQiq1;_D@GQ(vPpm zNa1UDbQYb9Y}Ya~5T73sJwk$zV<4$rQ`F)*eqgw-OH+-*`nj0z)^~}*W@$p!m=W?n zxqy8qIQ81#oNF^<{?HfEgR>~s#nT9}vvpF28ydsDhx<*srYoH4P0!lTg$%yzdvO^x zF`kp(p36I*oA2d34ky$^Kxi^9SN{UN_<1_ZT6 z9nXWgR%{j6l|;az}qr+W?0&kloC%~ zm8v2LBqW?O46H^QnL}@Cp7oBjDGj>^oXnk5@2DXKYvmk!CFGS8s_OV{IvJA+lootX zV~*P*cDF4Y<^oWQilc{j1k-xYFntA$FAw%*Bc5bmk36kdZ91Q(SzSIHNcPG)h9pjr z=Xv^!xaf(pbef=A1V0$K)R5YrFl>7Pnc5I~awmK|mp8?nC0w2Xt=~T!vp|1ioXb3& zRE#@njTdIHD}Vdawy?5!Z^xvlKuFDqD0o2HKR+%_uJNaZZDC36oQZ!~o5&>o)$dH- zEl;useq+27{YE1!4k2f3FUdm#>QP5T{8S3HBf9rQlLn=4sH->e_(*z*j-Cq32-#N; zZ2KPIo|JEuZ3a#)Xt81g72kO_F1wjwrCggUqMppd%+IZd`fP#{7I|{tL-j>uM6O=3 zIziaA9X^b;BAgE?9jvJ}M0+bHyK1+1P-i?Ss-ZlY;MI@XO~j%?HrfkcgsS~zNb8B*OJ z=Xl;kD!b+vhS-sYua|?}C-w$s#bQ_017}|2`EcTNkl&MlJ+=}+E=(dOCbt^xu;tbLTUQ;eAv3OwP`jnlx4V=h)#% zizs3jXNMR9IbnML;<`$van90ORV~xqkeiXJx0b+l>}!*(Bl{ppM#&x%b8J7s)vKNb zP`~Grm)E@AJt6Bn6_Y+8vGr-g3#)=xOue4i_KmJ>(0E$>*)$~lcu$$J!JnU+s_5NXtv-KTMiDLR$)?!?>k8GJnZ~nIV;>gL*EB1ZiaB`k z{H-nve0X7PTI>FiWW>8^xgmI!Ltjb#R7mC|*lvNw05ZI$h{e*;V~YmjFf?&tF#aY^ zj#pzC&*QK9RN^c{%2}Xz)?tj3crRzDf>Iy;E{~D(@pQG)QZ+5a9aH_sym$-9BgIQ? zzifQR7`l_r@KSlAR%Cp^Jxq_~9Vu#B@XUFp(} zPSs%>=rJf&FL%&%s!VNX#EL&Nes7}T-zFDYZO&w^kJ@}*Z~jWXv+b_O5&nTT#}XY! zeyp1=hSfzQb;QN8fi+b#Ul3f>+A-IxQ>#(_RPpngT9911o6U4oUO|NjX*5#x##8kL zv&Hx^rPATJ-=StJ+fhtR6#!Bhe|s@DTUf_aU#4Q{xb;f9m0%3!N}RT9`a3*Sv9A`( z)=U#tvn02h8-Cem_1pKB$*yJub=HtovYCdu*Y>>K46a!q>V1Y6&Eg&dALM>+%K^~r z^YnMI%VWN~BCm_P6qV(BS?ySU>KUqyJyttDa^daCJ%;Fzup_R*GZrpw)c+8ACGibN zN6y`BBgA`Zp5~MBZg_Py6+~-^U;&T+jqGMoj7DMDQE*dpU}qgOOz8%?GizTl z^id+x+275~=~xCl^~z&OT>te}rA5_AAmR0|Z@05>6YE!3+}_+Fbx2)JZN@TH9U>@L zFyvVv-z}u&3JlV@rE6=HRo>_>y;>wNFMW=&Z#>B5PWNZdv5-cb zgcHK#lYU90G=~K5mk27tSXNdRXpUdu{2p5iegq^p@Nl5RMZjjXR6c>@LViZo*pFBA zU#y66PYD1M;OZC0|I{1#Kl!wI_HK2j2|LCJrj+T;m~?;zJWk4$3Fnfb&JVCRX~q_3 zJ|=nU}#; zrsd=Fkk44dl*mJr_YMYxXodiRf$Qqx4QCn8Ydw=c-DTx za2P>AbLP7awY$}%UcS#cw13|A;Wi=Alz3;7rvXQYr&yR4VgZ_+&@b(Ko*@}{bRDn$ z8BWi~Os*z7t~NWOwMMnikVvLf)H2U+qK9@FT3)B;sC953F%Qm7qsqk@ZA5qb>OmUK zVq@o6PEJfP*n$F%~4=R$=Ev>kp;K#X;|dZ40??&v+- z`ClyyQJ2479i-Fca~{q(QUc=#hI%}9{dO`aBvFey;VlxEp;ALQQ@c*zmkt_C?;NQ= zFI-Aa(V{33bx0!#zzrpb1i<0@>+X-i+cC>Z^i0$)W9DdJ3;=S=I6%thAWNUxP_4dn z;&@~nbl<2CT`Kb?O}mV-v30U~`NE((De+&topb(lUxt;@(Hp5&7%$cZ z8n+fSXG*?FOKEUw>~T@6D!MA&11{V1e+hP-#~Dqd{iG7DVOzFW#h;j4+qoY9$|}C< z<5K_B&u*lAEQ+1`dzT)3|9S3^cgpn(n~aNp2N>h-WF>q^U~&wNC>7wC}7`P&!Ut`vvREEIddt5E)jD z+1#r0Kc>kfw-NDR1`{_ojCw3Y)nJJ0xd zx8urkvd-&WB-0E=Z*+MdUIo9Cx4CM@MpZD==y^03{~J36ggtFvbqV%1cUma^7`v3` z=jy-KNw&*+;cWvE1O~F6wC(r+>0tFHe_s-_Ai0O4UcKX3?CZoxB4q=(7*w{dbw(al z(x*hI!H+5rvF@f@_OMiClDM0{RSumRd~J2BBg3eOAeYV8dOiQc(?l-AAF{oTceoA@ z$&{t=^H1KSAMG}+eA75QE+Lsf0Vd3*|3~{{h3el1wlErwy=x6O}H6t z&1-Hg3fjkZ(P18D-O&fHd@V<|K{-d&Z356o<_%n;e?Ghy=e;61z-&?%d)Ob_Nm?~)ltB_MA4*dk8(zXuU~}hpdlmU& zoW06>Q^BE8gU?-(V;*Tb82JIR5LnUE#aronF$4v+I=Q-2{vh&_5Y-fPM)T0xu?Y`~ z5B#;B5H~!&>W2Yz4~02L`^(hYBDT52okqI|!aW{3y`zmeZ=?*U$;{Tv5bXW{t_|7i zk^%J#6#F=wP21+7<5TamOq6R$v9_!&^ljglctMGKI;=OaeEypI+bDRR5i;jqA$vud zxyus^!N6^mmG}6)(_*|bp3RnA-@SEVv*Mv{*4$DK)_zu7^%Q5%vh|leOR3Gu#@l%P zr9CLQyxMZb5qD_vKWm`hcB;(``QOd?lMBebem8T=SwAi>qkJQ)dmTl%ME7#cwYOG(P%BRFMW&IoZd$$mXPCy_fGQfrUOnw zL!VCscF^49?GGO;$W*(t9@Bn0uR4#PEZ+OFvxFOrR>IC8%zSNgD~@xT5>1I`Smg@WoFm~eFRGXOY zPR3pElC`u&3=*`PfSUA0|SQfRqd$EL#?%gG*Z%loVq2}To`b1D(jim~k0gOV)P0rMeiN%6Xao zk{NB0h(Jxduaqbk@EGdaTHL+dCm|txnoh#dEi(2HKl&XN8E`ugZh^5I){d{jJVj}& z|3L9pzS}ZLwJHKl!%Ku7dze)s41GFYwnyzmbg)mYZu)TX^BX`DP9Hnxdm$UW|KJFV z8I}ZIlHDaM2_sZR04B}Z%Yy>&HI){aTi#c_^G)QC2@S{~$HU60f5D4A_6Jog}qumHSh&KQr)WUh4g}==_KOi)}eIDA<`~+1#|#Od(`rGw9Qy zsG_2Qr*xjZ6FNItbkw~n2M8!Wz%TU*u)v>U{9ymZ=H8+vz8T=V`wROOw+rs32D!#* z&a8ZLSZ~em*L5!GA=3=$vmt{#02tj`*V7{jpU*U3or_ae44667kvxwd2t2nPN}i9^tHHIiG3F$@%PCbpK|ns^XG1PrY9gtzsb$!! zHiD}jG-QbW=<(LipN9!F|ACu~6YRQ#{`A!3<;*7ui|>^>vTL~l!zoW<{+qMP{g-yhYSsUZPmUXkqXV#@ zu8MW}c<{%t5Tad6_RPiCAxyd|QNF`JRo@MMeQK;?U?dy&ZI0^JZ9#61$=nHPogG+U zuu}Z6fo(jCw_j!zDWfj_>?CC=6~V0p@Mo`2p2id`$?0 z+?eq>&)?eeGF($S2FAfw>hmQU*Yzxrv;@z%WCzjE>JM;r=6#2bdOw#0fPx;cKhI$o zxo=CwEx3`k8e*ss^jOnaRta!w$z?KHnmlw?t9&-xUs!0& z-$Tp}3VbN>FXZSzBIBi0w++($e?#salZIt%h|a@-aGG;K;lzyPI!lw=yvV0*~2S*3!hyT}=FfW~+cgbVLc4fsxL9~Df2O^;^y(TRB2+^4+vZ-fWW*r zWlh^GKI2?lm{0ec!9B_;REvEGSb2x_QEm*}BqCg0kA2FUm3`lw_dNcf?Q)h3ugUrK|yeCGe=N|3B?~AC;ZLDtoGHlE9|4113+i1<6!H^;tVcm=~lS%fx z=O~ZWF6wu8v2?_0sTy?$bj>NsgTkV+d<^-FPz8W}K*OQ$i28X2rncWmtg>ut6tZ9P zQAg`8FXIxjWcY5e;d#-@{rt4fRi@X@lHY)ZmIYjMxV9Oy928P z_8M+KF9^(La#qQ#V95A9f8qh>PzGg*PA3%o{K%Xq8iNCvjUHPGuFfz2fOY{lP zqzo3DM;sAEw8^J2#HVYkk@}C?!Jh64$BSWr=>&zQWpH!P`pD%;IrjNrbL61L^6y&} z$#3O_#kp1T_32ZkMLuD9@X`vYmq$!}d&P2iBuRuv*zP~_!$(-nOgEalw~}w=ZpJi4 zBY0UfO_M*FRt{^VQYz5YIh7^2IGm)A4h!OfjIxSQZ_X9m?0a zU~RpbzcHlpX?s$A`Vw!D|K@T`G(ixnv86|hEtC2`Nb^=Z6TE~QUroM3{k#QBUbZ-w zQL87=p>7z|N%{_nt4#q|ErAu{*wze=`)e(TbI9-Wl&R` z8am3a2lu#$_jlL#S-CDT$2Je7iYhE&ho_n=ye96K_o#fbb~$Xj(FthItBJ}t8jNgH z!|@TnYvI@2u7B0E=)pN3*t1MKVFcq<}{1c6?plv6A@65Sw&C4avkn`cFiULF3X=n-A*8l-xmgr(fZk(HeQd~=I@!O==kCQ^ zx%F*cbxdxL(rF+7=4|gy&N7 zFKe(AtkdzI2y>%GanuKnlH;%A$E0+I;(hk3M0Xpi6h73R{gaIB&Z!dp7maD>Ut4X- zpg?xo2Tr|<XFkl4nJGA4XJYmO&W$k>oCWdU{$^M#0Zy zzoU~NEcS*3?8}$DijR9Pp+jFvAp4qLBD?eL?E`f5OgI~vq4iFQ$g|p8JQ^=;qTOCV zVp7?5$&Sp{EfgaWFvG&(r6r$3A&|ARj9r_RKoT1dOqVI)H#g3a5%7zNx3quo_4}Wy zQL|e?XPLBjX}1R6J8esJXS#mq(5PR`za^Q8PZZri4u#o2E;%yza1<89Bd*#R2Dcoe z7Sz}pHIMMEX0Jb}a+$C;o%C_o zzv@Z45&QR9=o0lR-^eZYO@hYzroHI_WVCY08dxlgW1{g9o^U+Hr@1@tks^9o*;<_-gX(>`JwQSJUa4%H1uhtEVYYD7yDlmCR&4S0k@;b3H_qzoR zr%4e=3!TStozk4~80oA?q5;CK%A!|kRmQ;1Sl`zG z4D4@Jactwt>mp8;yo9T*_|qHLRMdk@Q_4YEQ2wEo>M6UANh{b`3em8YRWkm;v zPk*_*jJ;BIV*Xv(q#LLF;-7i<*x1KaD}cJ&=e{^uV6`btlI?sbE($Eqb^giG^wt9 ziUG|POkpB8wT-=sLa(R9aUb2DKsUj;p2%QN3)qcIiXTsrIy)pphG{#Vht@u_&y71Z zdN+cA2c9YjFZB60Bn&4MT@zxc6Th&QTS2sR)>=IYcrlGZ9t)-Ds+0C1Y&0k>8;^;lyB1z&w4T(|j zW}%FIcVAB2Z{8&*y=hfx%%a9fZ?y!27l8(SdNk6v7FNsPr+^=DC$ zYv{WUiyykL^zM3|XKJn6CiV}V^u~~#uTPdJuXc263*?ErMIJP!V2J^fc}(14++AMzj`g&-j|Nvs9P=$pzqy z$~is)DxtT?geQP6#*u@;aCq;8M1Vfw79Cl_U52k*3|fn~sf8et&F9FYkeRFAeGO~5 z4ME?w4T)%4H2~oZM*vP_ggY)S^v5Rv>EVw5D~i4RUBD1$le!ih9DH^((&%%%23Ml@ zU9aCiJ8nGpGBL@JohM^~UdC+u9cGG>W>dI&2**r+F3c z-o^cRnFwbCggbDyt&?T{YGM7^SN=Ey$Ui^M7P0B*ZwjC%uB%8!HKD`Tw5hX#Gy}zI z5jD>YYg~_vw*@GM$MziBao5=aiU1P207>Y{%e|pNv?YLPt%v*4j+AfL<6_fcHc1UR-BBJc)bJb{L3O0+@>c9zNSZxB?{m?awT@hi?S zPo9@TTo@pkQt^E5H8{_RWlCs$kw_@<`3l=q z+Vs)-%5R#TYVy;cytpYCzIZ!t8mLN`L>D-Y z_!MHc^xkxe|L1TpKykxba1?h_Hw%|&-(Jx`amAm!yZ*9>FmcVq64*u5jNro~4qF=d zkV98Bk4oDrv;3IX_VcEk%C)t;ge8t73Q}S5h0P*C1D@kPk(vkL?n0BGn{*P~{aGk? zY54wAxJ`m=h0x5sr0{bi&)3U3uh++d+VVOt82^V*uD6Lm=05)YfCK!FRfa)z>l?m% zUvmSU1erh~yb0Cfcwj3YgEY8WyrvCLy8XnQetRWo=R{}oQLIzDW+OU{rc_0Ib_^2abeJ2 zG`a)FpXDWvY%N;xN!OAd!&H?wj^0wMe1_z= z=%^l`mFbJBb{kQu*gpCGLn#7fjqw|ZOi|Asz8BjLH4(h^CVy37JPVLFlh8$KeZLQN zR6^h?3Oa@=@5}t~{tZSiIHj9|Etm zg(4C8#B*jpf4}UA1hbASVL(_QF(sN>Y*bbCGp|k;g;W1_$rS}3pBA;KcdU)0xjyw= zo(>vkXOmWzS_Vgbpy16Sq&J^h0^PyR)A7OCHD1RgHVR^nltx8C7tf>W~wp8q|N=bIejO1w@lpXXkYkeJ~tg!5omE{lHcL$F<`>Ix33j}W}`RY znJ`HLH9c5ehCUgG{O-Zfif@$vceo&;5C|8T@Wg4{$e>3T*ht8ac_>IV=M8P&BvgD( zcANY)q_BlZ7o!T8yOTJSj>mg`8PczL&{RUe&T#Z|=Qnqf_gm5B>|Pos32p9xVlyU* zFuyFw0I|vl9-*a0dgL2&4$rM+c8+rfm+DMRkC3PRU>{Bu+wKdl3@czrX@r3D$9=vu zZ83U3*V&J9dGpUfkv>Mz?vcmde2&x_IoQ!e=hm!*7YEzpo8lrv-{yry^lOScjJ4%H zl(<}1Ab#UKDj%L%MH5}~C>|l_cWa-Bq^`w@7QJ~f*x$bPq`>Es(w_TZG`9tKFes7i z0R{|i-Y)&W9+PC_%<4bpN0*1&MB(Zw4kAE&KP4$SM_g0v`S|qGlNPwGcB=*53cb#Z zB91Q82$+d-o90v%D_u3{qoMu~XrF!li$f+!@d1~J(XewPxY5?jv%F+>J7w}F5%F`^ zrvfhSPvv1tdlhWt%YlbNRxcx>RybFH!kD(TbFWJbOur*+8;Yj6H&qOF+xE@rAKy;8 zZhZNKKghUlH=UtN$f-&FuRTH}%2^9HE^BTA zOXbrgGEvCbdu}2xLxVDrw(1|nwMXC4hady!b}y<$i#CM`XO3@Iy4W=Vs$PhrvT_kd z-AwoKl z_a(6&QwM_;|Ka)nkc?78ZuvkV7p%UcR|LitRWRnlYCXTQ;#yuMK1L~B87j5 zEZLE)Qrpgm6p?xy40hAxT65Thg(cmpI{18)*WxVWez#uOe)gHnK;f#ujAn`b;DJ#! zh?JgTBAP{QqV??M`EEGvOv4YQ8P9g3%JAptR1AiXfXR;C*Fk6L7{q)CR8ZI+=u!00 zR@u;7?dooc7l#15RA58@Q@L0l3Csl+n>f{dRaI5JNXy8GmWVuV`2A5=n}dZ#7KUz# z%=KEY*AkJs_{IHi?aJSu{t9OOFG5(js{x?k|4u0I4-Ilr%e?r@mz5IVQw)5@2eYub z4@3eR&yO2rq@{uQ5U|xJ#BKFQfGDVN`exKi0{L8=x&-es$;H=0!^3jtNaHqQ<_KSG z?Xs>i?hWAjiGvQf1E;L|mfGs%*hboi{sBwG?;|;aS2E}}w^u3WH|Mai+c@lna;()? zB(KZ;XMhlfyVM0hc=bO52$y~ChTBQWD`JZ^1{mZCuZIwS^l<7p8G(=uSFTzKRXYWX ztVY!mSc_1YcKM1iv57dTq&3KswNQbo?|w;GEqbzlR&YCW>t#=KKV0?m}GJcu4BDK(3ZcP0Y(h?Iomuz^JcCI|1qD)4{Oy{X+{?EwGCe zC$((%LZO6j?#p`sK20AS@6UCV`5}}JQ}L&w-aF0G@#bqq7Bce;UeVpzu+$J>+G|Qn_PT_l~pjvg; zOe6tXsY#faLJOGkr7_9pQj~wqvrkQB#ohcDIZznras+Df9b>}x$iSQ@DN7UW?4`1i*IdG#A8KNEK#}@;>){%FjDiJbUxSV$w(v{_s&S- z;`6)phc2&2W66rFS6qrPjH#%lR=!vudY`(z@OZ+BJ>unV@u+X#s*vq?$g@AWfWcvY zJw9FvHcaumYR#^28y0pmoG%wb@g2_LYgAN6UN)B2DpLw*85oQ*D?%X6S^8%$J_E$NiM?-OkTQ{o_@uTPtZ63`=-`$-S23OgKiM`8( z?jGPAQ>XEn@YuzMDn8v}38eIXO@@hC>d+Lq1^5$m-R?c&q-O)akaeep_o8ZS}b6I$%N0-Ulr zUG{t;V~ZqxgmQJK$hoN0%TmNpybYddwd(BLmdCN2Eq(|{rVzy%@a~O#POIeEA;1q? zRCu*@^9?&>q*W+x#c`YyduE&J?KWd1a3t;+xR6oaV^(pAP{TjGzsTSBdQBbKTRO4_a zF!d9Knn;UK-KEToM9X!SXtjt{xa1cVf643RNd09il;rs9Jxm^~K=fRgPhox?wlk7_ zpSDyj0gvFz}fbW*d<3<>*OUys(v`D-qN} zt|p@9su%>vxZzbA1E}N)fJ#VE5?UX2D6Iw8=ldGub2g&G?YIQ4U6hgHGU2!Z*tnTM z4;KODQ=#g$-B*UD$2uK7k}T9pMQMhwE$-xhEX6}gvf2IAO~932e+!geSGcG-b=ybG z;_zo+j`9z8mTeeI0<%?f^K%B;1WNPdv-x}Kv-a?JWTk{jo6TjnhQD9 zv1f^$Y78iruqLXQ!_+4#M&7UZVQ(CCx4DYMGnY3tN74m_FhwGjuIzm6v}! zgIUREJ|oc@JW(S!^`?fv1>Nd)HebqhxQTixP zGe}G_L0^?3k5$Cy*@uV9gF;cNE?-qBuKvyQwgFXi zN1+ZzcxVa;6!C{fzu%@0z+sodS{RAxe$6KAfz5FBzH-B{723~FkwRQ|6NBRB9T3%g zjZ*s}#+zW0-J_RklS1G+#A8¾ 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 From fa1ed33d0225b31c5beba4380159b73ad7a5f5b1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 104/169] Update screenshot environment example Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .env.example | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 7b7bf22..33d4807 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,5 @@ -# Copy this file to .env and adjust the values for your local LimeSurvey instance +# Copy this file to .env only if you need to refresh screenshots locally. +# Maintainer notes live in scripts/screenshots/README.md. LIMESURVEY_BASE_URL=http://localhost:8080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=change-me From df60bd741067097bc598df84ad4448267f6d177c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 105/169] Refresh README documentation Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- README.md | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2c65bf6..157b0fa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The LimeSurvey `LSTelegramNotify` plugin sends survey completion notifications to Telegram. -Useful improvements inspired by the `LSTelegramNotifyPlus` fork and now available here include: +Useful improvements now available in this plugin include: - global/per-survey `Enable` switch for notifications - HTML-safe rendering when using `ParseMode = HTML` @@ -12,6 +12,7 @@ Useful improvements inspired by the `LSTelegramNotifyPlus` fork and now availabl The image below is a locally generated preview of a rendered Telegram message using sample data: + ## Plugin Installation @@ -57,6 +58,7 @@ Shorthand aliases are also available: The global plugin settings screen documents the available placeholders directly in the UI: + ### Custom settings by survey @@ -66,18 +68,3 @@ You can add custom settings by survey to send the messages to other groups, cust - GO to `Simple plugins` - Define your custom settings at `Settings for plugin LSTelegramNotify ` -## Updating documentation screenshots - -The repository includes a Playwright-based command to refresh the documentation screenshots. - -- `img/settings.png` is captured from the LimeSurvey admin interface with sensitive values masked before the screenshot is saved. -- `img/telegram_example.png` is generated locally as an illustrative preview using sample data, so no Telegram access is required. - -To regenerate the images: - -1. Copy `.env.example` to `.env` and adjust the LimeSurvey admin credentials for your local environment. -2. Install the Node dependencies with `npm install`. -3. Install the Chromium browser used by Playwright with `npm run playwright:install`. -4. Run `npm run screenshots:update`. - -If you prefer not to edit `.env`, you can also override the credentials inline when running the command. From 261cf44d733e5c00c972593e7bf487b638874fc6 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 106/169] Update Composer dependencies Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 050552d..4bf09bf 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,8 @@ "irazasyed/telegram-bot-sdk": "^3.9" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8" + "bamarni/composer-bin-plugin": "^1.8", + "roave/security-advisories": "dev-latest" }, "autoload": { "classmap": [ @@ -23,11 +24,7 @@ } }, "scripts": { - "tools:install": [ - "@composer bin phpunit install --ansi --no-interaction", - "@composer bin php-cs-fixer install --ansi --no-interaction", - "@composer bin psalm install --ansi --no-interaction" - ], + "tools:install": "@composer bin all install --ansi --no-interaction", "test:unit": "vendor-bin/phpunit/vendor/bin/phpunit -c phpunit.xml", "cs:check": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix --dry-run --diff", "cs:fix": "vendor-bin/php-cs-fixer/vendor/bin/php-cs-fixer fix", From d8c0dbf1edec5e72830cc7986ef355b11176ee8a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 107/169] Update Composer lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- composer.lock | 1132 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1130 insertions(+), 2 deletions(-) diff --git a/composer.lock b/composer.lock index 259d423..4316275 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": "bcaa3af365514a1baaba07121f3d21c4", + "content-hash": "182f372f0f89a0b3b52f1f47c4e5c684", "packages": [ { "name": "carbonphp/carbon-doctrine-types", @@ -2343,11 +2343,1139 @@ "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.9.1" }, "time": "2026-02-04T10:18:12+00:00" + }, + { + "name": "roave/security-advisories", + "version": "dev-latest", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "87faae4ca4b824c493788fac487f2e212be4fd22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/87faae4ca4b824c493788fac487f2e212be4fd22", + "reference": "87faae4ca4b824c493788fac487f2e212be4fd22", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "adaptcms/adaptcms": "<=1.3", + "adawolfa/isdoc": "<1.4.3|>=1.5,<1.5.1|>=1.6,<1.6.1", + "admidio/admidio": "<=5.0.11", + "adodb/adodb-php": "<=5.22.9", + "aheinze/cockpit": "<2.2", + "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2", + "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1", + "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7", + "aimeos/ai-cms-grapesjs": ">=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.9|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.10.8|>=2025.04.1,<2025.10.2", + "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9|==2024.04.1", + "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7", + "aimeos/aimeos-laravel": "==2021.10", + "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", + "aimeos/pagible": "<0.10.4", + "airesvsg/acf-to-rest-api": "<=3.1", + "akaunting/akaunting": "<2.1.13", + "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", + "alextselegidis/easyappointments": "<=1.5.2", + "alexusmai/laravel-file-manager": "<=3.3.1", + "algolia/algoliasearch-magento-2": "<=3.16.1|>=3.17.0.0-beta1,<=3.17.1", + "almirhodzic/nova-toggle-5": "<1.3", + "alt-design/alt-redirect": "<1.6.4", + "altcha-org/altcha": "<1.3.1", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amazing/media2click": ">=1,<1.3.3", + "ameos/ameos_tarteaucitron": "<1.2.23", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<=1.7.2|>=2,<=2.1", + "amphp/http-client": ">=4,<4.4", + "amphp/http-server": ">=2.0.0.0-RC1-dev,<2.1.10|>=3.0.0.0-beta1,<3.4.4", + "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", + "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", + "aoe/restler": "<1.7.1", + "apache-solr-for-typo3/solr": "<2.8.3", + "apereo/phpcas": "<1.6", + "api-platform/core": "<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", + "api-platform/graphql": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", + "api-platform/hal": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", + "api-platform/json-api": ">=4,<4.1.29|>=4.2,<4.2.25|>=4.3,<4.3.8", + "appwrite/server-ce": "<=1.2.1", + "arc/web": "<3", + "area17/twill": "<1.2.5|>=2,<2.5.3", + "artesaos/seotools": "<0.17.2", + "asymmetricrypt/asymmetricrypt": "<9.9.99", + "athlon1600/php-proxy": "<=5.1", + "athlon1600/php-proxy-app": "<=3", + "athlon1600/youtube-downloader": "<=4", + "aureuserp/aureuserp": "<1.3.0.0-beta1", + "austintoddj/canvas": "<=3.4.2", + "auth0/auth0-php": ">=3.3,<=8.18", + "auth0/login": "<=7.20", + "auth0/symfony": "<=5.8", + "auth0/wordpress": "<=5.5", + "automad/automad": "<=2.0.0.0-beta27", + "automattic/jetpack": "<9.8", + "awesome-support/awesome-support": "<=6.0.7", + "aws/aws-sdk-php": "<=3.371.3", + "ayacoo/redirect-tab": "<2.1.2|>=3,<3.1.7|>=4,<4.0.5", + "azuracast/azuracast": "<=0.23.5", + "b13/seo_basics": "<0.8.2", + "backdrop/backdrop": "<=1.32", + "backpack/crud": "<4.0.63|>=4.1,<4.1.69|>=5,<5.0.13", + "backpack/filemanager": "<2.0.2|>=3,<3.0.9", + "bacula-web/bacula-web": "<9.7.1", + "badaso/core": "<=2.9.11", + "bagisto/bagisto": "<=2.3.15", + "barrelstrength/sprout-base-email": "<1.2.7", + "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.8", + "barzahlen/barzahlen-php": "<2.0.1", + "baserproject/basercms": "<=5.2.2", + "bassjobsen/bootstrap-3-typeahead": ">4.0.2", + "bbpress/bbpress": "<2.6.5", + "bcit-ci/codeigniter": "<3.1.3", + "bcosca/fatfree": "<3.7.2", + "bedita/bedita": "<4", + "bednee/cooluri": "<1.0.30", + "bigfork/silverstripe-form-capture": ">=3,<3.1.1", + "billabear/billabear": "<=2025.01.03", + "billz/raspap-webgui": "<3.3.6", + "binarytorch/larecipe": "<2.8.1", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "blueimp/jquery-file-upload": "==6.4.4", + "bmarshall511/wordpress_zero_spam": "<5.2.13", + "bolt/bolt": "<3.7.2", + "bolt/core": "<=4.2", + "born05/craft-twofactorauthentication": "<3.3.4", + "bottelet/flarepoint": "<2.2.1", + "bref/bref": "<2.1.17", + "brightlocal/phpwhois": "<=4.2.5", + "brotkrueml/codehighlight": "<2.7", + "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", + "brotkrueml/typo3-matomo-integration": "<1.3.2", + "buddypress/buddypress": "<7.2.1", + "bugsnag/bugsnag-laravel": ">=2,<2.0.2", + "bvbmedia/multishop": "<2.0.39", + "bytefury/crater": "<6.0.2", + "cachethq/cachet": "<2.5.1", + "cadmium-org/cadmium-cms": "<=0.4.9", + "cakephp/authentication": "<3.3.6|>=4,<4.1.1", + "cakephp/cakephp": "<4.5.11|>=4.6,<4.6.4|>=5,<5.1.7|>=5.2,<5.2.13|>=5.3,<5.3.6", + "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cardgate/magento2": "<2.0.33", + "cardgate/woocommerce": "<=3.1.15", + "cart2quote/module-quotation": ">=4.1.6,<4.4.6|>=5,<5.4.4", + "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<2.1.7", + "catfan/medoo": "<1.7.5", + "causal/oidc": "<4", + "cecil/cecil": "<7.47.1", + "centreon/centreon": "<22.10.15", + "cesargb/laravel-magiclink": ">=2,<2.25.1", + "cesnet/simplesamlphp-module-proxystatistics": "<3.1", + "chriskacerguis/codeigniter-restserver": "<=2.7.1", + "chrome-php/chrome": "<1.14", + "ci4-cms-erp/ci4ms": "<=0.31.8", + "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", + "ckeditor/ckeditor": "<4.25", + "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", + "co-stack/fal_sftp": "<0.2.6", + "cockpit-hq/cockpit": "<=2.14", + "code16/sharp": "<9.22.3", + "codeception/codeception": "<3.1.3|>=4,<4.1.22", + "codeigniter/framework": "<3.1.10", + "codeigniter4/framework": "<4.7.2", + "codeigniter4/shield": "<1.0.0.0-beta8", + "codiad/codiad": "<=2.8.4", + "codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9", + "codingms/modules": "<4.3.11|>=5,<5.7.4|>=6,<6.4.2|>=7,<7.5.5", + "commerceteam/commerce": ">=0.9.6,<0.9.9", + "components/jquery": ">=1.0.3,<3.5", + "composer/composer": "<2.2.29|>=2.3,<2.10.2", + "concrete5/concrete5": "<9.5.2", + "concrete5/core": "<8.5.8|>=9,<9.1", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", + "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<5.3.48|>=5.4,<5.7.9", + "contao/core": "<3.5.39", + "contao/core-bundle": "<5.3.48|>=5.4,<5.7.9", + "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", + "contao/managed-edition": "<=1.5", + "coreshop/core-shop": "<4.1.9|==5", + "corveda/phpsandbox": "<1.3.5", + "cosenary/instagram": "<=2.3", + "cotonti/cotonti": "<=1", + "couleurcitron/tarteaucitron-wp": "<0.3", + "cpsit/typo3-mailqueue": "<0.4.5|>=0.5,<0.5.2", + "craftcms/aws-s3": ">=2.0.2,<=2.2.4", + "craftcms/azure-blob": ">=2.0.0.0-beta1,<=2.1", + "craftcms/cms": "<4.18|>=5,<5.10", + "craftcms/commerce": ">=4,<=4.11.1|>=5,<=5.6.4", + "craftcms/composer": ">=4.0.0.0-RC1-dev,<=4.10|>=5.0.0.0-RC1-dev,<=5.5.1", + "craftcms/craft": ">=3.5,<=4.16.17|>=5.0.0.0-RC1-dev,<=5.8.21", + "craftcms/google-cloud": ">=2.0.0.0-beta1,<=2.2", + "craftcms/webhooks": ">=3,<3.2", + "croogo/croogo": "<=4.0.7", + "cuyz/valinor": "<0.12", + "czim/file-handling": "<1.5|>=2,<2.3", + "czproject/git-php": "<4.0.3", + "damienharper/auditor-bundle": "<5.2.6", + "dapphp/securimage": "<3.6.6", + "darylldoyle/safe-svg": "<1.9.10", + "datadog/dd-trace": ">=0.30,<0.30.2", + "datahihi1/tiny-env": "<1.0.3|>=1.0.9,<1.0.11", + "datatables/datatables": "<1.10.10", + "david-garcia/phpwhois": "<=4.3.1", + "dbrisinajumi/d2files": "<1", + "dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta", + "dedoc/scramble": ">=0.13.2,<0.13.22", + "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4", + "desperado/xml-bundle": "<=0.1.7", + "dev-lancer/minecraft-motd-parser": "<=1.0.5", + "devcode-it/openstamanager": "<=2.10.1", + "devgroup/dotplant": "<2020.09.14-dev", + "digimix/wp-svg-upload": "<=1", + "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", + "directorytree/imapengine": "<1.22.3", + "dl/yag": "<3.0.1", + "dmk/webkitpdf": "<1.1.4", + "dnadesign/silverstripe-elemental": "<5.3.12", + "doctrine/annotations": "<1.2.7", + "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", + "doctrine/common": "<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<0.7.2", + "doctrine/mongodb-odm": "<1.0.2", + "doctrine/mongodb-odm-bundle": "<3.0.1", + "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<=23.0.2", + "dompdf/dompdf": "<3.1.6", + "doublethreedigital/guest-entries": "<3.1.2", + "dreamfactory/df-core": "<1.0.4", + "drupal-pattern-lab/unified-twig-extensions": "<=0.1", + "drupal/access_code": "<2.0.5", + "drupal/acquia_dam": "<1.1.5", + "drupal/admin_audit_trail": "<1.0.5", + "drupal/ai": "<1.0.5", + "drupal/alogin": "<2.0.6", + "drupal/cache_utility": "<1.2.1", + "drupal/civictheme": "<1.12", + "drupal/commerce_alphabank_redirect": "<1.0.3", + "drupal/commerce_eurobank_redirect": "<2.1.1", + "drupal/config_split": "<1.10|>=2,<2.0.2", + "drupal/core": ">=6,<6.38|>=7,<7.103|>=8,<10.5.10|>=10.6,<10.6.9|>=11,<11.2.12|>=11.3,<11.3.10", + "drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", + "drupal/currency": "<3.5", + "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", + "drupal/email_tfa": "<2.0.6", + "drupal/formatter_suite": "<2.1", + "drupal/gdpr": "<3.0.1|>=3.1,<3.1.2", + "drupal/google_tag": "<1.8|>=2,<2.0.8", + "drupal/ignition": "<1.0.4", + "drupal/json_field": "<1.5", + "drupal/lightgallery": "<1.6", + "drupal/link_field_display_mode_formatter": "<1.6", + "drupal/matomo": "<1.24", + "drupal/oauth2_client": "<4.1.3", + "drupal/oauth2_server": "<2.1", + "drupal/obfuscate": "<2.0.1", + "drupal/plausible_tracking": "<1.0.2", + "drupal/quick_node_block": "<2", + "drupal/rapidoc_elements_field_formatter": "<1.0.1", + "drupal/reverse_proxy_header": "<1.1.2", + "drupal/simple_multistep": "<2", + "drupal/simple_oauth": ">=6,<6.0.7", + "drupal/spamspan": "<3.2.1", + "drupal/tfa": "<1.10", + "drupal/umami_analytics": "<1.0.1", + "duncanmcclean/guest-entries": "<3.1.2", + "dweeves/magmi": "<=0.7.24", + "easycorp/easyadmin-bundle": ">=4,<4.29.10|>=5,<5.0.13", + "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.3.1", + "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", + "egroupware/egroupware": "<23.1.20260601|>=26.0.20251208,<26.5.20260507", + "elefant/cms": "<2.0.7", + "elgg/elgg": "<3.3.24|>=4,<4.0.5", + "elijaa/phpmemcacheadmin": "<=1.3", + "elmsln/haxcms": "<11.0.14", + "encore/laravel-admin": "<=1.8.19", + "endroid/qr-code-bundle": "<3.4.2", + "enhavo/enhavo-app": "<=0.13.1", + "enshrined/svg-sanitize": "<0.22", + "erusev/parsedown": "<1.7.2", + "ether/logs": "<3.0.4", + "evolutioncms/evolution": "<=3.2.3", + "evoweb/sf-register": "<13.2.4|>=14,<14.0.2", + "exceedone/exment": "<4.4.3|>=5,<5.0.3", + "exceedone/laravel-admin": "<2.2.3|==3", + "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", + "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.39|>=3.3,<3.3.39", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1|>=5.3.0.0-beta1,<5.3.5", + "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", + "ezsystems/ezplatform-http-cache": "<2.3.16", + "ezsystems/ezplatform-kernel": "<=1.2.5|>=1.3,<1.3.35", + "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", + "ezsystems/ezplatform-richtext": ">=2.3,<2.3.26|>=3.3,<3.3.40", + "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", + "ezsystems/ezplatform-user": ">=1,<1.0.1", + "ezsystems/ezpublish-kernel": "<=6.13.8.1|>=7,<7.5.31", + "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", + "ezyang/htmlpurifier": "<=4.2", + "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<=2026.2", + "fastly/magento2": "<1.2.26", + "feehi/cms": "<=2.1.1", + "feehi/feehicms": "<=2.1.1", + "fenom/fenom": "<=2.12.1", + "filament/actions": ">=3.2,<3.2.123|>=4,<=4.11.3|>=5,<=5.6.3", + "filament/filament": ">=3,<=3.3.51|>=4,<4.11.5|>=5,<5.6.5", + "filament/forms": ">=3,<=3.3.52", + "filament/infolists": ">=3,<3.2.115|>=4,<=4.11.4|>=5,<=5.6.4", + "filament/tables": ">=3,<=3.3.50|>=4,<=4.11.4|>=5,<=5.6.4", + "filegator/filegator": "<7.8", + "filp/whoops": "<2.1.13", + "fineuploader/php-traditional-server": "<=1.2.2", + "firebase/php-jwt": "<7", + "fisharebest/webtrees": "<=2.1.18", + "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", + "fixpunkt/fp-newsletter": "<1.1.1|>=1.2,<2.1.2|>=2.2,<3.2.6", + "flarum/core": "<=1.8.15|>=2.0.0.0-beta1,<=2.0.0.0-beta8", + "flarum/flarum": "<0.1.0.0-beta8", + "flarum/framework": "<1.8.10", + "flarum/mentions": "<1.6.3", + "flarum/nicknames": "<1.8.3", + "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", + "flarum/tags": "<=0.1.0.0-beta13", + "flightphp/core": "<3.18.1", + "floriangaerber/magnesium": "<0.3.1", + "fluidtypo3/vhs": "<5.1.1", + "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", + "fof/pretty-mail": "<=1.1.2", + "fof/upload": "<1.2.3", + "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", + "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.11.1", + "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<=11.5.1", + "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", + "friendsofsymfony/oauth2-php": "<1.3", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1,<1.3.5", + "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", + "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", + "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", + "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", + "friendsoftypo3/tt-address": "<8.1.2|>=9,<9.1.1|>=10,<10.0.1", + "froala/wysiwyg-editor": "<=4.3", + "frosh/adminer-platform": "<2.2.1", + "froxlor/froxlor": "<2.3.7", + "frozennode/administrator": "<=5.0.12", + "fuel/core": "<1.8.1", + "funadmin/funadmin": "<=7.1.0.0-RC6", + "gaoming13/wechat-php-sdk": "<=1.10.2", + "genix/cms": "<=1.1.11", + "georgringer/news": "<10.0.4|>=11,<11.4.4|>=12,<12.3.2|>=13,<13.0.2|>=14,<14.0.3", + "geshi/geshi": "<=1.0.9.1", + "getformwork/formwork": "<=2.3.3", + "getgrav/grav": "<=2.0.0.0-RC8", + "getgrav/grav-plugin-api": "<1.0.0.0-beta15", + "getgrav/grav-plugin-form": "<9.1", + "getkirby/cms": "<=4.9.3|>=5,<=5.4.3", + "getkirby/kirby": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1", + "getkirby/panel": "<2.5.14", + "getkirby/starterkit": "<=3.7.0.2", + "gilacms/gila": "<=1.15.4", + "gleez/cms": "<=1.3|==2", + "globalpayments/php-sdk": "<2", + "goalgorilla/open_social": "<12.3.11|>=12.4,<12.4.10|>=13.0.0.0-alpha1,<13.0.0.0-alpha11", + "gogentooss/samlbase": "<1.2.7", + "goodoneuz/pay-uz": "<=2.2.24", + "google/protobuf": "<4.33.6", + "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", + "gp247/core": "<1.1.24", + "gree/jose": "<2.2.1", + "gregwar/rst": "<1.0.3", + "grumpydictator/firefly-iii": "<=6.6.2", + "gugoan/economizzer": "<=0.9.0.0-beta1", + "guzzlehttp/guzzle": "<7.15.2|>=8,<8.0.1", + "guzzlehttp/guzzle-services": "<1.5.4", + "guzzlehttp/oauth-subscriber": "<0.8.1", + "guzzlehttp/psr7": "<2.12.3", + "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", + "handcraftedinthealps/goodby-csv": "<1.4.3", + "harvesthq/chosen": "<1.8.7", + "helloxz/imgurl": "<=2.31", + "hhxsv5/laravel-s": "<3.7.36", + "hillelcoren/invoice-ninja": "<5.3.35", + "himiklab/yii2-jqgrid-widget": "<1.0.8", + "hjue/justwriting": "<=1", + "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "httpsoft/http-message": "<1.0.12", + "hybridauth/hybridauth": "<=3.12.2", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6,<4.6.25|>=5,<5.0.3", + "ibexa/admin-ui-assets": ">=4.6.0.0-alpha1,<4.6.21", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", + "ibexa/fieldtype-richtext": ">=4.6,<4.6.25|>=5,<5.0.3", + "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", + "ibexa/http-cache": ">=4.6,<4.6.14", + "ibexa/post-install": "<1.0.16|>=4.6,<4.6.14", + "ibexa/solr": ">=4.5,<4.5.4", + "ibexa/user": ">=4,<4.4.3|>=5,<5.0.4", + "icecoder/icecoder": "<=8.1", + "idno/known": "<1.6.4", + "ilicmiljan/secure-props": ">=1.2,<1.2.2", + "illuminate/auth": "<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4", + "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "illuminate/mail": ">=9,<12.60|>=13,<13.10", + "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "imdbphp/imdbphp": "<=5.1.1", + "impresscms/impresscms": "<=1.4.5", + "impresspages/impresspages": "<1.0.13", + "in2code/femanager": "<6.4.2|>=7,<7.5.3|>=8,<8.3.1", + "in2code/ipandlanguageredirect": "<5.1.2", + "in2code/lux": "<17.6.1|>=18,<24.0.2", + "in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.5.3|==13", + "innologi/typo3-appointments": "<2.0.6", + "intelliants/subrion": "<4.2.2", + "inter-mediator/inter-mediator": "==5.5", + "intercom/intercom-php": "==5.0.2", + "invoiceninja/invoiceninja": "<5.13.4", + "ipl/web": "<=0.10.2|>=0.11,<=0.13", + "islandora/crayfish": "<4.1", + "islandora/islandora": ">=2,<2.4.1", + "ivankristianto/phpwhois": "<=4.3", + "j0k3r/graby": "<=2.5", + "jackalope/jackalope-doctrine-dbal": "<1.7.4", + "jambagecom/div2007": "<0.10.2", + "james-heinrich/getid3": "<1.9.21", + "james-heinrich/phpthumb": "<=1.7.23", + "jasig/phpcas": "<1.3.3", + "jbartels/wec-map": "<3.0.3", + "jcbrand/converse.js": "<3.3.3", + "jleehr/canto-saas-api": "<=2", + "joedolson/my-calendar": "<3.7.7", + "joelbutcher/socialstream": "<5.6|>=6,<6.2", + "johnbillion/query-monitor": "<3.20.4", + "johnbillion/wp-crontrol": "<1.16.2|>=1.17,<1.19.2", + "joomla/application": "<1.0.13", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/database": ">=1,<2.2|>=3,<3.4", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<2.0.6|>=3,<3.0.5|==4", + "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12", + "joomla/input": ">=2,<2.0.2", + "joomla/joomla-cms": "<3.9.12|>=4,<4.4.13|>=5,<5.2.6", + "joomla/joomla-platform": "<1.5.4", + "joomla/session": "<1.3.1", + "joyqi/hyper-down": "<=2.4.27", + "jsdecena/laracom": "<2.0.9", + "jsmitty12/phpwhois": "<5.1", + "juzaweb/cms": "<=3.4.2", + "jweiland/events2": "<8.3.8|>=9,<9.0.6", + "jweiland/kk-downloader": "<1.2.2", + "kantorge/yaffa": "<=2", + "kazist/phpwhois": "<=4.2.6", + "kelvinmo/simplejwt": "<=1.1", + "kelvinmo/simplexrd": "<3.1.1", + "kevinpapst/kimai2": "<1.16.7", + "khodakhah/nodcms": "<=3.4.1", + "kimai/kimai": "<2.59", + "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", + "klaviyo/magento2-extension": ">=1,<3", + "knplabs/knp-snappy": "<=1.7", + "kohana/core": "<3.3.3", + "koillection/koillection": "<1.6.12", + "krayin/laravel-crm": "<=2.2", + "kreait/firebase-php": ">=3.2,<3.8.1", + "kumbiaphp/kumbiapp": "<=1.1.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laktak/hjson": "<2.3", + "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", + "laminas/laminas-http": "<2.14.2", + "lara-zeus/artemis": ">=1,<=1.0.6", + "lara-zeus/dynamic-dashboard": ">=3,<=3.0.1", + "laravel/fortify": "<1.11.1", + "laravel/framework": "<12.61.1|>=13,<13.12", + "laravel/laravel": ">=5.4,<5.4.22", + "laravel/passport": ">=13,<13.7.1", + "laravel/pulse": "<1.3.1", + "laravel/reverb": "<1.7", + "laravel/socialite": ">=1,<2.0.10", + "latte/latte": "<2.10.8", + "lavalite/cms": "<=10.1", + "lavitto/typo3-form-to-database": "<2.2.5|>=3,<3.2.2|>=4,<4.2.3|>=5,<5.0.2", + "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", + "league/commonmark": "<=2.8.1", + "league/flysystem": "<1.1.4|>=2,<2.1.1", + "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", + "leantime/leantime": "<3.3", + "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "libreform/libreform": ">=2,<=2.0.8", + "librenms/librenms": "<26.3", + "liftkit/database": "<2.13.2", + "lightsaml/lightsaml": "<1.3.5", + "limesurvey/limesurvey": "<=7.0.0.0-beta1", + "livehelperchat/livehelperchat": "<=3.91", + "livewire-filemanager/filemanager": "<=1.0.4", + "livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.6.4", + "livewire/volt": "<1.7", + "lms/routes": "<2.1.1", + "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", + "lomkit/laravel-rest-api": "<2.13", + "luracast/restler": "<3.1", + "luyadev/yii-helpers": "<1.2.1", + "macropay-solutions/laravel-crud-wizard-free": "<3.4.17", + "maestroerror/php-heic-to-jpg": "<1.0.5", + "magento/community-edition": "<2.4.6.0-patch13|>=2.4.7.0-beta1,<2.4.7.0-patch8|>=2.4.8.0-beta1,<2.4.8.0-patch3|>=2.4.9.0-alpha1,<2.4.9.0-alpha3|==2.4.9", + "magento/core": "<=1.9.4.5", + "magento/magento1ce": "<1.9.4.3-dev", + "magento/magento1ee": ">=1,<1.14.4.3-dev", + "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1", + "magento/project-community-edition": "<=2.0.2", + "magneto/core": "<1.9.4.4-dev", + "mahocommerce/maho": "<25.9", + "maikuolan/phpmussel": ">=1,<1.6", + "mainwp/mainwp": "<=4.4.3.3", + "manogi/nova-tiptap": "<=3.2.6", + "mantisbt/mantisbt": "<=2.28.3", + "marcwillmann/turn": "<0.3.3", + "markhuot/craftql": "<=1.3.7", + "marshmallow/nova-tiptap": "<5.7", + "matomo/matomo": "<1.11", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<5.2.11|>=6,<6.0.9|>=7,<7.1.2", + "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1", + "mautic/grapes-js-builder-bundle": ">=4,<4.4.18|>=5,<5.2.9|>=6,<6.0.7", + "maximebf/debugbar": "<1.19", + "mckenziearts/livewire-markdown-editor": "<1.3", + "mdanter/ecc": "<2", + "mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2", + "mediawiki/cargo": "<3.8.3", + "mediawiki/core": "<1.39.5|==1.40", + "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2", + "mediawiki/maps": "<12.1.3", + "mediawiki/matomo": "<2.4.3", + "mediawiki/semantic-media-wiki": "<4.0.2", + "mehrwert/phpmyadmin": "<3.2", + "melisplatform/melis-asset-manager": "<5.0.1", + "melisplatform/melis-cms": "<5.3.4", + "melisplatform/melis-cms-slider": "<5.3.1", + "melisplatform/melis-core": "<5.3.11", + "melisplatform/melis-front": "<5.0.1", + "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", + "mgallegos/laravel-jqgrid": "<=1.3", + "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1", + "microsoft/microsoft-graph-beta": "<2.0.1", + "microsoft/microsoft-graph-core": "<2.0.2", + "microweber/microweber": "<2.0.20", + "mikehaertl/php-shellcommand": "<1.6.1", + "mineadmin/mineadmin": "<=3.0.9", + "miniorange/miniorange-saml": "<1.4.3", + "miraheze/ts-portal": "<=33", + "mittwald/typo3_forum": "<1.2.1", + "mix/mix": ">=2,<=2.2.17", + "mmc/ceselector": "<3.0.3|>=4,<4.0.2|>=5,<5.0.1|>=6,<6.0.1", + "mobiledetect/mobiledetectlib": "<2.8.32", + "modx/revolution": "<=3.1", + "mojo42/jirafeau": "<4.4", + "mongodb/mongodb": ">=1,<1.9.2", + "mongodb/mongodb-extension": "<1.21.2", + "monolog/monolog": ">=1.8,<1.12", + "moodle/moodle": "<4.5.9|>=5.0.0.0-beta,<5.0.5|>=5.1.0.0-beta,<5.1.2", + "moonshine/moonshine": "<=3.12.5", + "mos/cimage": "<0.7.19", + "movim/moxl": ">=0.8,<=0.10", + "movingbytes/social-network": "<=1.2.1", + "mpdf/mpdf": "<=7.1.7", + "mtdowling/jmespath.php": "<2.9.1", + "munkireport/comment": "<4", + "munkireport/managedinstalls": "<2.6", + "munkireport/munki_facts": "<1.5", + "munkireport/reportdata": "<3.5", + "munkireport/softwareupdate": "<1.6", + "mustache/mustache": ">=2,<2.14.1", + "mwdelaney/wp-enable-svg": "<=0.2", + "nabeel/phpvms": "<7.0.6", + "namshi/jose": "<2.2", + "nasirkhan/laravel-starter": "<11.11", + "nategood/httpful": "<1", + "neoan3-apps/template": "<1.1.1", + "neorazorx/facturascripts": "<2022.04", + "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", + "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/swiftmailer": "<5.4.5", + "nesbot/carbon": "<2.72.6|>=3,<3.8.4", + "netcarver/textile": "<=4.1.2", + "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", + "neuron-core/neuron-ai": "<=2.8.11", + "nilsteampassnet/teampass": "<3.1.3.1-dev", + "nitsan/ns-backup": "<13.0.1", + "nonfiction/nterchange": "<4.1.1", + "notrinos/notrinos-erp": "<=1", + "noumo/easyii": "<=0.9", + "novaksolutions/infusionsoft-php-sdk": "<1", + "novosga/novosga": "<=2.2.12", + "nukeviet/nukeviet": "<4.6.00", + "nyholm/psr7": "<1.6.1", + "nystudio107/craft-seomatic": "<3.4.12", + "nzedb/nzedb": "<0.8", + "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", + "october/backend": "<1.1.2", + "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", + "october/october": "<3.7.14|>=4,<4.1.10", + "october/rain": "<=3.7.13|>=4,<=4.1.9", + "october/system": "<3.7.16|>=4,<4.1.16", + "oliverklee/phpunit": "<3.5.15", + "omeka/omeka-s": "<4.0.3", + "onelogin/php-saml": "<2.21.1|>=3,<3.8.1|>=4,<4.3.1", + "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.8.1", + "opencart/opencart": ">=0", + "openid/php-openid": "<2.3", + "openmage/magento-lts": "<=20.17", + "opensolutions/vimbadmin": "<=3.0.15", + "opensource-workshop/connect-cms": "<1.41.1|>=2,<2.41.1", + "orchid/platform": ">=8,<14.43", + "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", + "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", + "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", + "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", + "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", + "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", + "oxid-esales/oxideshop-ce": "<4.5|>=6,<6.14.4", + "oxid-esales/oxideshop-metapackage-ce": ">=6,<6.5.5", + "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", + "oxid-esales/smarty-component": "<1.0.1", + "packbackbooks/lti-1-3-php-library": "<5", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": "<3", + "pagekit/pagekit": "<=1.0.18", + "paragonie/ecc": "<2.0.1", + "paragonie/random_compat": "<2", + "paragonie/sodium_compat": "<1.24|>=2,<2.5", + "passbolt/passbolt_api": "<4.6.2", + "paymenter/paymenter": "<=1.5.4", + "paypal/adaptivepayments-sdk-php": "<=3.9.2", + "paypal/invoice-sdk-php": "<=3.9", + "paypal/merchant-sdk-php": "<3.12", + "paypal/permissions-sdk-php": "<=3.9.1", + "pear/archive_tar": "<1.4.14", + "pear/auth": "<1.2.4", + "pear/crypt_gpg": "<1.6.7", + "pear/http_request2": "<2.7", + "pear/pear": "<=1.10.1", + "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", + "personnummer/personnummer": "<3.0.2", + "ph7software/ph7builder": "<=17.9.1", + "phanan/koel": "<=9.7", + "pheditor/pheditor": "<2.0.8", + "phenx/php-svg-lib": "<0.5.2", + "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", + "php-mod/curl": "<2.3.2", + "php-standard-library/h2": ">=6.1,<6.1.2|>=6.2,<6.2.1", + "php-standard-library/php-standard-library": ">=6.1,<6.1.2|>=6.2,<6.2.1", + "phpbb/phpbb": "<3.3.16|==4.0.0.0-alpha1", + "phpems/phpems": ">=6,<=6.1.3", + "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", + "phpmailer/phpmailer": "<6.5", + "phpmussel/phpmussel": ">=1,<1.6", + "phpmyadmin/phpmyadmin": "<5.2.2", + "phpmyfaq/phpmyfaq": "<4.1.4", + "phpoffice/common": "<0.2.9", + "phpoffice/math": "<=0.2", + "phpoffice/phpexcel": "<=1.8.2", + "phpoffice/phpspreadsheet": "<=1.30.5|>=2,<=2.1.17|>=2.2,<=2.4.6|>=3,<=3.10.6|>=4,<=5.8", + "phppgadmin/phppgadmin": "<=7.13", + "phpseclib/phpseclib": "<=2.0.54|>=3,<=3.0.53", + "phpservermon/phpservermon": "<3.6", + "phpsysinfo/phpsysinfo": "<3.4.3", + "phpunit/phpunit": "<8.5.52|>=9,<9.6.33|>=10,<10.5.62|>=11,<11.5.50|>=12,<12.5.8|>=12.5.21,<12.5.22|>=13.1.5,<13.1.6", + "phpwhois/phpwhois": "<=4.2.5", + "phpxmlrpc/extras": "<0.6.1", + "phpxmlrpc/phpxmlrpc": "<4.9.2", + "phraseanet/phraseanet": "==4.0.3", + "pi/pi": "<=2.5", + "pimcore/admin-ui-classic-bundle": "<1.7.18|>=2.0.0.0-RC1-dev,<=2.3.5", + "pimcore/customer-management-framework-bundle": "<4.2.1", + "pimcore/data-hub": "<1.2.4", + "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3", + "pimcore/demo": "<10.3", + "pimcore/ecommerce-framework-bundle": "<1.0.10", + "pimcore/perspective-editor": "<1.5.1", + "pimcore/pimcore": "<=12.3.8|>=2026.1,<2026.1.3", + "pimcore/web2print-tools-bundle": "<=5.2.1|>=6.0.0.0-RC1-dev,<=6.1", + "piwik/piwik": "<1.11", + "pixelfed/pixelfed": "<0.12.5", + "plotly/plotly.js": "<2.25.2", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<5.42.1", + "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", + "pontedilana/php-weasyprint": "<=2.5.1", + "poweradmin/poweradmin": "<4.2.5|>=4.3,<4.3.4", + "pressbooks/pressbooks": "<5.18", + "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/blockreassurance": "<=5.1.3", + "prestashop/blockwishlist": ">=2,<2.1.1", + "prestashop/contactform": ">=1.0.1,<4.3", + "prestashop/gamification": "<2.3.2", + "prestashop/prestashop": "<8.2.6|>=9,<9.1.1", + "prestashop/productcomments": "<5.0.2", + "prestashop/ps_checkout": "<5.3", + "prestashop/ps_contactinfo": "<=3.3.2", + "prestashop/ps_emailsubscription": "<2.6.1", + "prestashop/ps_facetedsearch": "<4.0.4", + "prestashop/ps_linklist": "<3.1", + "privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.3", + "processwire/processwire": "<=3.0.255", + "propel/propel": ">=2.0.0.0-alpha1,<2.0.0.0-alpha8", + "propel/propel1": ">=1,<1.7.2", + "psy/psysh": "<=0.11.22|>=0.12,<=0.12.18", + "pterodactyl/panel": "<=1.12.4", + "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", + "ptrofimov/beanstalk_console": "<1.7.14", + "pubnub/pubnub": "<6.1", + "punktde/pt_extbase": "<1.5.1", + "pusher/pusher-php-server": "<2.2.1", + "putyourlightson/craft-sprig": ">=2,<2.15.2|>=3,<3.7.2", + "pwweb/laravel-core": "<=0.3.6.0-beta", + "pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3", + "pyrocms/pyrocms": "<=3.9.1", + "qcubed/qcubed": "<=3.1.1", + "quickapps/cms": "<=2.0.0.0-beta2", + "rainlab/blog-plugin": "<1.4.1", + "rainlab/debugbar-plugin": "<3.1", + "rainlab/user-plugin": "<=1.4.5", + "ralffreit/mfa-email": "<1.0.7|==2", + "rankmath/seo-by-rank-math": "<=1.0.95", + "rap2hpoutre/laravel-log-viewer": "<0.13", + "react/http": ">=0.7,<1.9", + "really-simple-plugins/complianz-gdpr": "<6.4.2", + "redaxo/source": "<5.21.1", + "remdex/livehelperchat": "<4.29", + "renolit/reint-downloadmanager": "<4.0.2|>=5,<5.0.1", + "reportico-web/reportico": "<=8.1", + "rhukster/dom-sanitizer": "<1.0.10", + "rmccue/requests": ">=1.6,<1.8", + "roadiz/documents": "<2.3.42|>=2.4,<2.5.44|>=2.6,<2.6.28|>=2.7,<2.7.9", + "roadiz/openid": "<2.3.43|>=2.5,<2.5.45|>=2.6,<2.6.31|>=2.7,<2.7.18", + "robrichards/xmlseclibs": "<3.1.5", + "roots/soil": "<4.1", + "roundcube/roundcubemail": "<1.5.10|>=1.6,<1.6.11|>=1.7.0.0-beta,<1.7.0.0-RC5-dev", + "rudloff/alltube": "<3.0.3", + "rudloff/rtmpdump-bin": "<=2.3.1", + "s-cart/core": "<=9.0.5", + "s-cart/s-cart": "<6.9", + "s9y/serendipity": "<2.6", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", + "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9", + "saloonphp/saloon": "<4", + "samwilson/unlinked-wikibase": "<1.42", + "scheb/two-factor-bundle": "<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "setasign/fpdi": "<2.6.7", + "sfroemken/url_redirect": "<=1.2.1", + "sheng/yiicms": "<1.2.1", + "shopper/cart": "<2.8", + "shopper/framework": "<2.8", + "shopware/core": "<6.6.10.18-dev|>=6.7,<6.7.10.1-dev", + "shopware/platform": "<6.6.10.18-dev|>=6.7,<6.7.10.1-dev", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<=6.3.5.2|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.6.1-dev", + "shopware/storefront": "<6.6.10.10-dev|>=6.7,<6.7.5.1-dev", + "shopxo/shopxo": "<=6.4", + "showdoc/showdoc": "<3.8.1", + "shuchkin/simplexlsx": ">=1.0.12,<1.1.13", + "silverstripe-australia/advancedreports": ">=1,<=2", + "silverstripe/admin": "<1.13.19|>=2,<2.1.8", + "silverstripe/assets": "<2.4.5|>=3,<3.1.3", + "silverstripe/cms": "<6.2.1", + "silverstripe/comments": ">=1.3,<3.1.1", + "silverstripe/forum": "<0.6.2|>=0.7,<0.7.4", + "silverstripe/framework": "<6.2.2", + "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", + "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", + "silverstripe/recipe-cms": ">=4.5,<4.5.3", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/reports": "<5.2.3", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", + "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", + "silverstripe/subsites": ">=2,<2.6.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", + "silverstripe/userforms": "<6.4.9|>=7,<7.0.7|>=7.1,<7.1.1", + "silverstripe/versioned": "<3.2.1", + "silverstripe/versioned-admin": ">=1,<1.11.1", + "simogeo/filemanager": "<=2.5", + "simple-updates/phpwhois": "<=1", + "simplesamlphp/saml2": "<=4.20.2|>=5,<5.0.6|>=6,<6.2.1", + "simplesamlphp/saml2-legacy": "<=4.20.2", + "simplesamlphp/simplesamlphp": "<=2.4.6|>=2.5,<=2.5.1", + "simplesamlphp/simplesamlphp-module-casserver": "<=7.0.2", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "simplesamlphp/simplesamlphp-module-openid": "<1", + "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", + "simplesamlphp/xml-common": "<1.20", + "simplesamlphp/xml-security": "<1.13.9|>=2,<2.3.1", + "simplito/elliptic-php": "<1.0.6", + "sitegeist/fluid-components": "<3.5", + "sjbr/sr-feuser-register": "<2.6.2|>=5.1,<12.5", + "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", + "sjbr/static-info-tables": "<2.3.1", + "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", + "slim/slim": "<2.6|>=4.4,<=4.15.1", + "slub/slub-events": "<3.0.3", + "smarty/smarty": "<4.5.3|>=5,<5.1.1", + "snipe/snipe-it": "<=8.6.1", + "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", + "solidinvoice/solidinvoice": "<=2.3.15", + "solspace/craft-freeform": "<4.1.29|>=5,<=5.14.6", + "soosyze/soosyze": "<=2", + "spatie/browsershot": "<5.0.5", + "spatie/image-optimizer": "<1.7.3", + "spatie/laravel-medialibrary": "<11.23", + "spatie/schema-org": ">=3.23.1,<3.23.2|>=4,<4.0.2", + "spencer14420/sp-php-email-handler": "<1", + "spipu/html2pdf": "<5.2.8", + "spiral/roadrunner": "<2025.1", + "spomky-labs/otphp": "<11.4.3", + "spoon/library": "<1.4.1", + "spoonity/tcpdf": "<6.2.22", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "ssddanbrown/bookstack": "<24.05.1", + "starcitizentools/citizen-skin": ">=1.9.4,<3.9", + "starcitizentools/short-description": ">=4,<4.0.1", + "starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1", + "starcitizenwiki/embedvideo": "<=4", + "statamic/cms": "<5.74|>=6,<6.20.3", + "stormpath/sdk": "<9.9.99", + "studio-42/elfinder": "<=2.1.67", + "studiomitte/friendlycaptcha": "<0.1.4", + "subhh/libconnect": "<7.0.8|>=8,<8.1", + "sukohi/surpass": "<1", + "sulu/form-bundle": ">=2,<2.5.3", + "sulu/sulu": "<=2.6.22|>=3,<=3.0.5", + "sumocoders/framework-user-bundle": "<1.4", + "superbig/craft-audit": "<3.0.2", + "svewap/a21glossary": "<=0.4.10", + "swag/paypal": "<5.4.4", + "swiftmailer/swiftmailer": "<6.2.5", + "swiftyedit/swiftyedit": "<1.2", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": "<1.10.1", + "sylius/mollie-plugin": "<2.2.8|>=3,<3.2.4|>=3.3,<3.3.1", + "sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2", + "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.9.12|>=1.10,<1.10.16|>=1.11,<1.11.17|>=1.12,<=1.12.22|>=1.13,<=1.13.14|>=1.14,<=1.14.17|>=2,<2.0.18|>=2.1,<2.1.15|>=2.2,<2.2.6", + "symbiote/silverstripe-advancedworkflow": "<6.4.5|>=7,<7.1.3|>=7.2,<7.2.1", + "symbiote/silverstripe-multivaluefield": ">=3,<3.1", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", + "symbiote/silverstripe-seed": "<6.0.3", + "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfont/process": ">=0", + "symfony/cache": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/dom-crawler": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4", + "symfony/html-sanitizer": ">=6.1,<6.4.41|>=7,<7.4.13|>=8,<8.0.13", + "symfony/http-client": ">=4.3,<5.4.53|>=6,<6.4.15|>=7,<7.1.8", + "symfony/http-foundation": "<5.4.50|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13", + "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6|>=7.4,<7.4.12|>=8,<8.0.12", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/json-path": ">=7.3,<7.4.12|>=8,<8.0.12", + "symfony/lox24-notifier": ">=7.1,<7.4.12|>=8,<8.0.12", + "symfony/mailer": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/mailjet-mailer": ">=6.4,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/mailomat-mailer": ">=7.2,<7.4.13|>=8,<8.0.13", + "symfony/mailtrap-mailer": ">=7.2,<7.4.12|>=8,<8.0.12", + "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", + "symfony/mime": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/monolog-bridge": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10|>=1.17.1,<1.38.1", + "symfony/polyfill-intl-idn": ">=1.17.1,<1.38.1", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/process": "<5.4.51|>=6,<6.4.33|>=7,<7.1.7|>=7.3,<7.3.11|>=7.4,<7.4.5|>=8,<8.0.5", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13", + "symfony/runtime": ">=5.3,<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", + "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.4.10|>=7,<7.0.10|>=7.1,<7.1.3", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", + "symfony/security-http": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13", + "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", + "symfony/symfony": "<5.4.53|>=6,<6.4.41|>=7,<7.4.13|>=8,<8.0.13", + "symfony/translation": ">=2,<2.0.17", + "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8|>=6.4.24,<6.4.40", + "symfony/twilio-notifier": ">=6.4,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symfony/ux-autocomplete": "<2.36|>=3,<3.1", + "symfony/ux-icons": ">=2.17,<2.36.1|>=3,<3.2", + "symfony/ux-live-component": "<2.36|>=3,<3.1", + "symfony/ux-toolkit": ">=2.32,<2.36.1|>=3,<3.2", + "symfony/ux-twig-component": "<2.25.1", + "symfony/validator": "<5.4.43|>=6,<6.4.11|>=7,<7.1.4", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4|>=7.2.9,<7.4.12|>=8,<8.0.12", + "symfony/webhook": ">=6.3,<6.3.8", + "symfony/yaml": "<5.4.52|>=6,<6.4.40|>=7,<7.4.12|>=8,<8.0.12", + "symphonycms/symphony-2": "<2.6.4", + "t3/dce": "<0.11.5|>=2.2,<2.6.2", + "t3g/svg-sanitizer": "<1.0.3", + "t3s/content-consent": "<1.0.3|>=2,<2.0.2", + "tastyigniter/tastyigniter": "<4", + "tcg/voyager": "<=1.8", + "tecnickcom/tc-lib-pdf-font": "<2.6.4", + "tecnickcom/tcpdf": "<6.8", + "terminal42/contao-tablelookupwizard": "<3.3.5", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.0.0.0-beta1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "thinkcmf/thinkcmf": "<6.0.8", + "thorsten/phpmyfaq": "<4.1.4", + "tikiwiki/tiki-manager": "<=17.1", + "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1", + "tinymce/tinymce": "<7.9.3|>=8,<8.5.1", + "tinymighty/wiki-seo": "<1.2.2", + "titon/framework": "<9.9.99", + "tltneon/lgsl": "<7", + "tobiasbg/tablepress": "<=2.0.0.0-RC1", + "tomasnorre/crawler": "<11.0.13|>=12,<12.0.11", + "topthink/framework": "<6.0.17|>=6.1,<=8.0.4", + "topthink/think": "<=6.1.1", + "topthink/thinkphp": "<=3.2.3|>=6.1.3,<=8.0.4", + "torrentpier/torrentpier": "<=2.8.8", + "tpwd/ke_search": "<5.6.2|>=6,<6.6.1|>=7,<7.0.1", + "tribalsystems/zenario": "<=9.7.61188", + "truckersmp/phpwhois": "<=4.3.1", + "ttskch/pagination-service-provider": "<1", + "twbs/bootstrap": "<3.4.1|>=4,<4.3.1", + "twig/cssinliner-extra": "<3.26", + "twig/intl-extra": "<3.26", + "twig/markdown-extra": "<3.26", + "twig/twig": "<3.27", + "typicms/core": "<12.0.5|>=13,<13.0.9|>=14,<14.0.27|>=15,<15.0.29|>=16,<16.1.7", + "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", + "typo3/cms-backend": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", + "typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", + "typo3/cms-core": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-dashboard": ">=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", + "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", + "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", + "typo3/cms-felogin": ">=4.2,<4.2.3", + "typo3/cms-filelist": ">=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1|>=8,<8.7.23|>=9,<9.5.4", + "typo3/cms-form": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.5", + "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5", + "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2", + "typo3/cms-lowlevel": ">=11,<=11.5.41", + "typo3/cms-recordlist": ">=11,<11.5.48", + "typo3/cms-recycler": "<10.4.57|>=11,<11.5.51|>=12,<12.4.46|>=13,<13.4.31|>=14,<14.3.3", + "typo3/cms-redirects": ">=10,<=10.4.54|>=11,<=11.5.48|>=12,<=12.4.40|>=13,<=13.4.22|>=14,<=14.0.1", + "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", + "typo3/cms-scheduler": ">=11,<=11.5.41", + "typo3/cms-setup": ">=9,<=9.5.50|>=10,<=10.4.49|>=11,<=11.5.43|>=12,<=12.4.30|>=13,<=13.4.11", + "typo3/cms-webhooks": ">=12,<=12.4.30|>=13,<=13.4.11", + "typo3/cms-workspaces": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "typo3/html-sanitizer": "<2.3.2", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", + "ua-parser/uap-php": "<3.8", + "uasoft-indonesia/badaso": "<=2.9.7", + "unisharp/laravel-filemanager": "<2.9.1", + "universal-omega/dynamic-page-list3": "<3.6.4", + "unopim/unopim": "<=0.3", + "userfrosting/userfrosting": ">=0.3.1,<4.6.3", + "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", + "uvdesk/community-skeleton": "<=1.1.1", + "uvdesk/core-framework": "<=1.1.1", + "vanilla/safecurl": "<0.9.2", + "verbb/comments": "<1.5.5", + "verbb/formie": "<3.1.28", + "verbb/image-resizer": "<2.0.9", + "verbb/knock-knock": "<1.2.8", + "verot/class.upload.php": "<=2.1.6", + "vertexvaar/falsftp": "<0.2.6", + "villagedefrance/opencart-overclocked": "<=1.11.1", + "vova07/yii2-fileapi-widget": "<0.1.9", + "vrana/adminer": "<5.4.2", + "vufind/vufind": ">=2,<9.1.1", + "waldhacker/hcaptcha": "<2.1.2", + "wallabag/tcpdf": "<6.2.22", + "wallabag/wallabag": "<2.6.11", + "wanglelecc/laracms": "<=1.0.3", + "wapplersystems/a21glossary": "<=0.4.10", + "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9|>=5.2,<5.2.4|>=5.3,<5.3.1", + "web-auth/webauthn-lib": ">=4.5,<5.3.5", + "web-auth/webauthn-symfony-bundle": "<5.3.4", + "web-feet/coastercms": "==5.5", + "web-token/jwt-bundle": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7", + "web-token/jwt-experimental": "<4.1.7", + "web-token/jwt-framework": "<4.1.7", + "web-token/jwt-library": "<3.4.10|>=4,<4.0.7|>=4.1,<4.1.7", + "web-tp3/wec_map": "<3.0.3", + "webbuilders-group/silverstripe-kapost-bridge": "<0.4", + "webcoast/deferred-image-processing": "<1.0.2", + "webklex/laravel-imap": "<5.3", + "webklex/php-imap": "<5.3", + "webonyx/graphql-php": "<=15.32.2", + "webpa/webpa": "<3.1.2", + "webreinvent/vaahcms": "<=2.3.1", + "wikibase/wikibase": "<=1.39.3", + "wikimedia/parsoid": "<0.12.2", + "willdurand/js-translation-bundle": "<2.1.1", + "winter/wn-backend-module": "<1.2.12", + "winter/wn-cms-module": "<=1.2.9", + "winter/wn-dusk-plugin": "<2.1", + "winter/wn-system-module": "<1.2.4", + "wintercms/winter": "<=1.2.3", + "wireui/wireui": "<1.19.3|>=2,<2.1.3", + "wnx/laravel-backup-restore": "<=1.9.3", + "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", + "wp-cli/wp-cli": ">=0.12,<2.5", + "wp-coding-standards/wpcs": ">=0.14.1,<3.4.1", + "wp-graphql/wp-graphql": "<=2.6", + "wp-premium/gravityforms": "<2.4.21", + "wpanel/wpanel4-cms": "<=4.3.1", + "wpcloud/wp-stateless": "<3.2", + "wpglobus/wpglobus": "<=1.9.6", + "wpmetabox/meta-box": "<5.11.2", + "wwbn/avideo": "<=29", + "xataface/xataface": "<3", + "xpressengine/xpressengine": "<3.0.15", + "yab/quarx": "<2.4.5", + "yansongda/pay": "<=3.7.19", + "yeswiki/yeswiki": "<4.6.6", + "yetiforce/yetiforce-crm": "<6.5", + "yidashi/yii2cmf": "<=2", + "yii2mod/yii2-cms": "<1.9.2", + "yiisoft/yii": "<1.1.31", + "yiisoft/yii2": "<2.0.55", + "yiisoft/yii2-authclient": "<2.2.15", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<=2.0.45", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<=2.2.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.20", + "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", + "yoast-seo-for-typo3/yoast_seo": "<7.2.3", + "yoast/duplicate-post": "<=4.5", + "yourls/yourls": "<=1.10.2", + "yuan1994/tpadmin": "<=1.3.12", + "yungifez/skuul": "<=2.6.5", + "z-push/z-push-dev": "<2.7.6", + "zencart/zencart": "<=1.5.7.0-beta", + "zendesk/zendesk_api_client_php": "<2.2.11", + "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": "<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<=3", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": "<2.0.2", + "zendframework/zendrest": "<2.0.2", + "zendframework/zendservice-amazon": "<2.0.3", + "zendframework/zendservice-api": "<1", + "zendframework/zendservice-audioscrobbler": "<2.0.2", + "zendframework/zendservice-nirvanix": "<2.0.2", + "zendframework/zendservice-slideshare": "<2.0.2", + "zendframework/zendservice-technorati": "<2.0.2", + "zendframework/zendservice-windowsazure": "<2.0.2", + "zendframework/zendxml": ">=1,<1.0.1", + "zenstruck/collection": "<0.2.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<=6.1.53", + "zumba/json-serializer": "<3.2.3" + }, + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "keywords": [ + "dev" + ], + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2026-08-03T22:59:19+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": {}, + "stability-flags": { + "roave/security-advisories": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": {}, From a72345d29a8eb8268ea4ca351ed4a7e0b8fbb567 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 108/169] Update settings screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/settings.png | Bin 142550 -> 144285 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/settings.png b/img/settings.png index bac768d41a0aa2458fc352576e2097bb83f41b94..6841f68026599a055095406aa25ec983b71c3e7a 100644 GIT binary patch literal 144285 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 z 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�r6-rTBqWF*WSF=|$Uo05%% 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�P+EP_+8hjFf_uQ=+K%)CQle{ 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 literal 142550 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"dsk9uDRrTU)AATNg_^ZgX>9Km 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

    S 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 From db76cc9ecd4caaa0153c8503a12011418a3849a4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 109/169] Update npm lockfile Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package-lock.json | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 0d77b55..5dc5a69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,9 @@ "name": "lstelegramnotify-maintenance", "devDependencies": { "dotenv": "^16.4.5", - "playwright": "^1.62.1" + "pixelmatch": "^7.1.0", + "playwright": "^1.62.1", + "pngjs": "^7.0.0" } }, "node_modules/dotenv": { @@ -38,6 +40,19 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/pixelmatch": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.2.0.tgz", + "integrity": "sha512-xhcb4yHu9sM/G7foGzoLtXYcC0zHEaOXXjRKhGup0fw78Nf2Tkiapv4EQyMzrbcmQPsllAI7DbFY2UT7PlI9Pg==", + "dev": true, + "license": "ISC", + "dependencies": { + "pngjs": "^7.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, "node_modules/playwright": { "version": "1.62.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", @@ -69,6 +84,16 @@ "engines": { "node": ">=20" } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.19.0" + } } } } From fef4a603d9231b99630ef194da5618a481e7d4b1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 110/169] Update screenshot tooling dependencies Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index adaba0f..8aa9c6a 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,13 @@ "scripts": { "playwright:install": "playwright install chromium", "screenshots:test": "node --test tests/Node/Scripts/Screenshots/*.test.mjs", + "screenshots:check": "node ./scripts/check-screenshots.mjs", "screenshots:update": "node ./scripts/update-screenshots.mjs" }, "devDependencies": { "dotenv": "^16.4.5", - "playwright": "^1.62.1" + "pixelmatch": "^7.1.0", + "playwright": "^1.62.1", + "pngjs": "^7.0.0" } } From 4f8fa0d0150bde86618aa36de9472afc6b21c2fa Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 111/169] Remove obsolete LimeSurvey Psalm stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- psalm-stubs/limesurvey.php | 255 ------------------------------------- 1 file changed, 255 deletions(-) delete mode 100644 psalm-stubs/limesurvey.php diff --git a/psalm-stubs/limesurvey.php b/psalm-stubs/limesurvey.php deleted file mode 100644 index 29a84ed..0000000 --- a/psalm-stubs/limesurvey.php +++ /dev/null @@ -1,255 +0,0 @@ - */ - public array $allLanguages = ['en']; - - /** @var array */ - public array $tokenAttributes = []; - - public function getLocalizedTitle(): string - { - return ''; - } -} - -class SurveyModel -{ - public function findByPk($id): ?SurveyRecord - { - return null; - } -} - -class Survey -{ - public static function model(): SurveyModel - { - return new SurveyModel(); - } -} - -class SurveyResponseRecord -{ - /** @var array */ - public array $attributes = []; -} - -class SurveyDynamicModel -{ - /** - * @return array|SurveyResponseRecord|null - */ - public function findByPk(int $responseId) - { - return null; - } - - public function getMaxId(): ?int - { - return null; - } -} - -class SurveyDynamic -{ - public static function model(int $surveyId): SurveyDynamicModel - { - return new SurveyDynamicModel(); - } -} - -class FormattingOptions -{ - public int $responseMinRecord = 0; - public int $responseMaxRecord = 0; - - /** @var list */ - public array $selectedColumns = []; - - public string $responseCompletionState = ''; - public string $headingFormat = ''; - public string $answerFormat = ''; - public string $csvFieldSeparator = ','; - public string $output = ''; -} - -class Translator -{ -} - -class SurveyData -{ - /** @var array> */ - public array $fieldMap = []; - - public function getFullAnswer(string $fieldName, string $value, Translator $translator, string $responseLanguage): ?string - { - return $value; - } -} - -class SurveyDao -{ - public function loadSurveyById(int $surveyId, string $language, FormattingOptions $options): SurveyData - { - return new SurveyData(); - } -} - -class viewHelper -{ - /** - * @param array $field - * - * @return string - */ - public static function getFieldText(array $field, array $options = []): string - { - return ''; - } - - /** - * @param array $field - */ - public static function getFieldCode(array $field, array $options = []): string - { - return ''; - } -} - -/** - * @return array> - */ -function createFieldMap(SurveyRecord $survey, string $style, bool $full, bool $flatten, string $language): array -{ - return []; -} - -function quexml_export(int $surveyId, string $language, int $responseId): string -{ - return ''; -} - -class quexmlpdf -{ - /** - * @param mixed $quexml - * - * @return mixed - */ - public function createqueXML($quexml) - { - return $quexml; - } - - /** - * @param mixed $document - */ - public function create($document): void - { - } - - public function Output(string $filename, string $destination): void - { - } -} - -class ExportSurveyResultsService -{ - public function exportResponses(int $surveyId, string $language, string $format, FormattingOptions $options, string $documentName): string - { - return ''; - } -} From 279cdcdc186ccc41492946e8d4958db5f30db268 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 112/169] Simplify Psalm configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- psalm.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/psalm.xml b/psalm.xml index 85dad23..569b661 100644 --- a/psalm.xml +++ b/psalm.xml @@ -1,6 +1,8 @@ - - - - From e9a1819d238325fc2ef5670b42ed6775a882cd59 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 113/169] Improve screenshot browser flows Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/browser-flows.mjs | 222 ++++++++++++++++++++++++-- 1 file changed, 210 insertions(+), 12 deletions(-) diff --git a/scripts/screenshots/browser-flows.mjs b/scripts/screenshots/browser-flows.mjs index a346b6f..3cf30e5 100644 --- a/scripts/screenshots/browser-flows.mjs +++ b/scripts/screenshots/browser-flows.mjs @@ -38,6 +38,10 @@ export async function login(page, { baseUrl, adminUser, adminPassword }) { } } +export function getPluginManagerScanFilesUrl(baseUrl) { + return `${baseUrl}/index.php/admin/pluginmanager?sa=scanFiles`; +} + export function getPluginManagerPageUrl(baseUrl, pageNumber) { if (pageNumber === 1) { return `${baseUrl}/index.php/admin/pluginmanager/sa/index`; @@ -46,7 +50,60 @@ export function getPluginManagerPageUrl(baseUrl, pageNumber) { return `${baseUrl}/index.php/admin/pluginmanager?sa=index&page=${pageNumber}`; } -export async function findPluginConfigureUrl(page, { baseUrl, pluginName, maxPages = 10 }) { +function escapeCssAttributeValue(value) { + return String(value) + .replaceAll('\\', '\\\\') + .replaceAll('"', '\\"'); +} + +function escapeRegExp(value) { + return String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} + +export function buildPluginInstallInputSelector(pluginName) { + return `input[name="pluginName"][value="${escapeCssAttributeValue(pluginName)}"]`; +} + +export function extractPluginInstallRequest(scanHtml, pluginName) { + const escapedPluginName = escapeRegExp(pluginName); + const formMatch = scanHtml.match(new RegExp( + `]+action=['"]([^'"]*pluginmanager\\?sa=installPluginFromFile)['"][\\s\\S]*?(?:]+(?:name=['"]pluginName['"][^>]+value=['"]${escapedPluginName}['"]|value=['"]${escapedPluginName}['"][^>]+name=['"]pluginName['"])[^>]*>)[\\s\\S]*?<\\/form>`, + 'i' + )); + + if (!formMatch) { + return null; + } + + const [formHtml, actionPath] = formMatch; + const csrfMatch = formHtml.match(/]+(?:name=['"]YII_CSRF_TOKEN['"][^>]+value=['"]([^'"]+)['"]|value=['"]([^'"]+)['"][^>]+name=['"]YII_CSRF_TOKEN['"])[^>]*>/i); + const csrfToken = csrfMatch?.[1] || csrfMatch?.[2] || null; + + if (!csrfToken) { + return null; + } + + return { + actionPath, + form: { + YII_CSRF_TOKEN: csrfToken, + pluginName, + }, + }; +} + +export function buildPluginActionSelector(action, pluginId) { + return `a[data-post-url*="pluginmanager?sa=${action}"][data-post-datas='${JSON.stringify({ pluginId })}']`; +} + +export function isPluginActionDisabled(className) { + return String(className ?? '') + .split(/\s+/) + .filter(Boolean) + .includes('disabled'); +} + +async function findPlugin(page, { baseUrl, pluginName, maxPages = 10 }) { for (let pageNumber = 1; pageNumber <= maxPages; pageNumber += 1) { await page.goto(getPluginManagerPageUrl(baseUrl, pageNumber), { waitUntil: 'networkidle' }); @@ -56,27 +113,160 @@ export async function findPluginConfigureUrl(page, { baseUrl, pluginName, maxPag continue; } + const pluginId = await pluginRow.getAttribute('data-id'); const configureLink = pluginRow.locator('a[href*="pluginmanager?sa=configure"]').first(); + const hasConfigureLink = await configureLink.count() > 0; + const href = hasConfigureLink ? await configureLink.getAttribute('href') : null; + + return { + row: pluginRow, + pluginId: pluginId ? Number(pluginId) : null, + configureUrl: href ? new URL(href, baseUrl).toString() : null, + }; + } + + return null; +} + +async function installPluginFromScanResults(page, { baseUrl, pluginName }) { + const scanResponse = await page.context().request.get(getPluginManagerScanFilesUrl(baseUrl)); + const scanHtml = await scanResponse.text(); + const installRequest = extractPluginInstallRequest(scanHtml, pluginName); + + if (!installRequest) { + return false; + } + + await page.context().request.post(new URL(installRequest.actionPath, baseUrl).toString(), { + form: installRequest.form, + }); + + return true; +} + +async function openPluginActions(row) { + const dropdownToggle = row.locator('button.ls-dropdown-toggle').first(); + + await dropdownToggle.scrollIntoViewIfNeeded(); + await dropdownToggle.click({ force: true }); +} + +async function getPluginAction(page, action, pluginId) { + return page.evaluate(({ expectedAction, expectedPluginId }) => { + const expectedPostData = JSON.stringify({ pluginId: expectedPluginId }); + + const actionLink = Array.from(document.querySelectorAll('a[data-post-url]')).find((link) => { + const postUrl = link.getAttribute('data-post-url') || ''; + const postDatas = link.getAttribute('data-post-datas') || ''; + + return postUrl.includes(`pluginmanager?sa=${expectedAction}`) && postDatas === expectedPostData; + }); - if (await configureLink.count() === 0) { - throw new Error(`Found ${pluginName}, but it has no configure link. Check whether it is active and load-error free.`); + if (!actionLink) { + return null; } - const href = await configureLink.getAttribute('href'); + return { + className: actionLink.className, + text: actionLink.textContent || '', + }; + }, { + expectedAction: action, + expectedPluginId: pluginId, + }); +} + +async function triggerPluginAction(page, action, pluginId) { + await page.evaluate(({ expectedAction, expectedPluginId }) => { + const expectedPostData = JSON.stringify({ pluginId: expectedPluginId }); + + const actionLink = Array.from(document.querySelectorAll('a[data-post-url]')).find((link) => { + const postUrl = link.getAttribute('data-post-url') || ''; + const postDatas = link.getAttribute('data-post-datas') || ''; + + return postUrl.includes(`pluginmanager?sa=${expectedAction}`) && postDatas === expectedPostData; + }); - if (!href) { - throw new Error(`Could not read the configure link for ${pluginName}.`); + if (!actionLink) { + throw new Error(`Missing plugin action link for action ${expectedAction} and plugin id ${expectedPluginId}.`); } - return new URL(href, baseUrl).toString(); + actionLink.click(); + }, { + expectedAction: action, + expectedPluginId: pluginId, + }); + + const confirmButton = page.locator('#actionBtn'); + + const confirmModalVisible = await confirmButton.waitFor({ state: 'visible', timeout: 1000 }) + .then(() => true) + .catch(() => false); + + if (confirmModalVisible) { + await confirmButton.click({ force: true }); + await page.locator('#confirmation-modal').waitFor({ state: 'hidden' }); } - throw new Error(`Could not find ${pluginName} in the LimeSurvey plugin manager.`); + await page.waitForLoadState('networkidle'); +} + +export async function ensurePluginConfigureUrl(page, { baseUrl, pluginName, maxPages = 10 }) { + let plugin = await findPlugin(page, { baseUrl, pluginName, maxPages }); + + if (!plugin) { + await installPluginFromScanResults(page, { baseUrl, pluginName }); + plugin = await findPlugin(page, { baseUrl, pluginName, maxPages }); + } + + if (!plugin) { + throw new Error(`Could not find ${pluginName} in the LimeSurvey plugin manager even after scanning plugin files.`); + } + + if (!plugin.pluginId) { + throw new Error(`Could not determine the plugin id for ${pluginName}.`); + } + + await openPluginActions(plugin.row); + + const resetLoadErrorAction = await getPluginAction(page, 'resetLoadError', plugin.pluginId); + + if (resetLoadErrorAction) { + await triggerPluginAction(page, 'resetLoadError', plugin.pluginId); + plugin = await findPlugin(page, { baseUrl, pluginName, maxPages }); + + if (!plugin) { + throw new Error(`Reloaded ${pluginName}, but could not find it again in the plugin manager.`); + } + + await openPluginActions(plugin.row); + } + + const activateAction = await getPluginAction(page, 'activate', plugin.pluginId); + const activateActionClassName = activateAction?.className; + + if (activateAction && !isPluginActionDisabled(activateActionClassName)) { + await triggerPluginAction(page, 'activate', plugin.pluginId); + plugin = await findPlugin(page, { baseUrl, pluginName, maxPages }); + + if (!plugin) { + throw new Error(`Activated ${pluginName}, but could not find it again in the plugin manager.`); + } + } + + if (!plugin.configureUrl) { + throw new Error(`Found ${pluginName}, but it has no configure link. Check whether it is load-error free.`); + } + + return plugin.configureUrl; +} + +export async function findPluginConfigureUrl(page, { baseUrl, pluginName, maxPages = 10 }) { + return ensurePluginConfigureUrl(page, { baseUrl, pluginName, maxPages }); } export async function captureSettingsScreenshot(page, { configureUrl, - settingsScreenshotPath, pluginName, maskedSettingsValues, viewport, @@ -99,11 +289,19 @@ export async function captureSettingsScreenshot(page, { const settingsForm = page.locator(`#pluginsettings-${pluginName}`); await defaultTextField.scrollIntoViewIfNeeded(); - await settingsForm.screenshot({ path: settingsScreenshotPath }); + return settingsForm.screenshot({ + animations: 'disabled', + caret: 'hide', + scale: 'css', + }); } -export async function captureTelegramPreview(page, { previewScreenshotPath, viewport }) { +export async function captureTelegramPreview(page, { viewport }) { await page.setViewportSize({ ...viewport }); await page.setContent(await buildTelegramPreviewHtml(), { waitUntil: 'load' }); - await page.locator('.preview-shell').screenshot({ path: previewScreenshotPath }); + return page.locator('.preview-shell').screenshot({ + animations: 'disabled', + caret: 'hide', + scale: 'css', + }); } From 07ec95f49ab6e98c50560fd1c14b85b06982d5b4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 114/169] Enhance screenshot configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/config.mjs | 77 +++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/scripts/screenshots/config.mjs b/scripts/screenshots/config.mjs index 300aec7..773a373 100644 --- a/scripts/screenshots/config.mjs +++ b/scripts/screenshots/config.mjs @@ -4,18 +4,27 @@ export const DEFAULT_BASE_URL = 'http://localhost:8080'; export const DEFAULT_PLUGIN_NAME = 'LSTelegramNotify'; export const SETTINGS_VIEWPORT = Object.freeze({ width: 1280, height: 2200 }); export const PREVIEW_VIEWPORT = Object.freeze({ width: 1200, height: 1400 }); +export const DEFAULT_SCREENSHOT_TARGETS = Object.freeze(['settings', 'preview']); +export const VALID_SCREENSHOT_TARGETS = new Set(DEFAULT_SCREENSHOT_TARGETS); export function createScreenshotConfig(env = process.env, repoRoot = process.cwd()) { + const targets = parseScreenshotTargets(env.SCREENSHOT_TARGETS); + return { repoRoot, outputDir: path.join(repoRoot, 'img'), settingsScreenshotPath: path.join(repoRoot, 'img', 'settings.png'), previewScreenshotPath: path.join(repoRoot, 'img', 'telegram_example.png'), + screenshotDiffDir: path.join(repoRoot, 'test-results', 'screenshots'), + targets, baseUrl: normalizeBaseUrl(env.LIMESURVEY_BASE_URL || DEFAULT_BASE_URL), pluginName: env.LIMESURVEY_PLUGIN_NAME || DEFAULT_PLUGIN_NAME, - adminUser: requireEnv(env, 'LIMESURVEY_ADMIN_USER'), - adminPassword: requireEnv(env, 'LIMESURVEY_ADMIN_PASSWORD'), + adminUser: targets.settings ? requireEnv(env, 'LIMESURVEY_ADMIN_USER') : null, + adminPassword: targets.settings ? requireEnv(env, 'LIMESURVEY_ADMIN_PASSWORD') : null, headless: parseHeadless(env.PLAYWRIGHT_HEADLESS), + pixelmatchThreshold: parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1), + maxDiffPixels: parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0), + maxDiffPixelRatio: parseNonNegativeFloat(env.SCREENSHOT_MAX_DIFF_PIXEL_RATIO, 0), settingsViewport: SETTINGS_VIEWPORT, previewViewport: PREVIEW_VIEWPORT, }; @@ -38,3 +47,67 @@ export function normalizeBaseUrl(url) { export function parseHeadless(value) { return String(value ?? 'true').toLowerCase() !== 'false'; } + +export function parseScreenshotTargets(value) { + const rawTargets = String(value ?? DEFAULT_SCREENSHOT_TARGETS.join(',')) + .split(',') + .map((target) => target.trim().toLowerCase()) + .filter(Boolean); + + if (rawTargets.length === 0) { + throw new Error('SCREENSHOT_TARGETS must include at least one target.'); + } + + const invalidTargets = rawTargets.filter((target) => !VALID_SCREENSHOT_TARGETS.has(target)); + + if (invalidTargets.length > 0) { + throw new Error(`Unsupported SCREENSHOT_TARGETS value(s): ${invalidTargets.join(', ')}`); + } + + return Object.freeze({ + settings: rawTargets.includes('settings'), + preview: rawTargets.includes('preview'), + }); +} + +export function parseNonNegativeFloat(value, fallback) { + if (value === undefined || value === null || String(value).trim() === '') { + return fallback; + } + + const parsedValue = Number(String(value)); + + if (!Number.isFinite(parsedValue) || parsedValue < 0) { + throw new Error(`Expected a non-negative float, received: ${value}`); + } + + return parsedValue; +} + +export function parseNonNegativeInteger(value, fallback) { + if (value === undefined || value === null || String(value).trim() === '') { + return fallback; + } + + const parsedValue = Number(String(value)); + + if (!Number.isInteger(parsedValue) || parsedValue < 0) { + throw new Error(`Expected a non-negative integer, received: ${value}`); + } + + return parsedValue; +} + +export function getEnabledScreenshotTargets(targets) { + return DEFAULT_SCREENSHOT_TARGETS.filter((target) => targets[target]); +} + +export function buildScreenshotCommand(scriptName, targets) { + const enabledTargets = getEnabledScreenshotTargets(targets); + + if (enabledTargets.length === DEFAULT_SCREENSHOT_TARGETS.length) { + return `npm run ${scriptName}`; + } + + return `SCREENSHOT_TARGETS=${enabledTargets.join(',')} npm run ${scriptName}`; +} From fd41f858673682d37f1d147a451317b23b6f71c2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 115/169] Refine screenshot runner Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/runner.mjs | 70 +++++++++++++++++++++++----------- 1 file changed, 48 insertions(+), 22 deletions(-) diff --git a/scripts/screenshots/runner.mjs b/scripts/screenshots/runner.mjs index 39ba3c2..9adaf75 100644 --- a/scripts/screenshots/runner.mjs +++ b/scripts/screenshots/runner.mjs @@ -1,12 +1,10 @@ -import { mkdir } from 'node:fs/promises'; +import { mkdir, writeFile } from 'node:fs/promises'; import path from 'node:path'; import { chromium } from 'playwright'; import { captureSettingsScreenshot, captureTelegramPreview, attachPageErrorLogger, findPluginConfigureUrl, login } from './browser-flows.mjs'; import { buildMaskedSettingsValues } from './sample-data.mjs'; -export async function updateScreenshots(config, { browserType = chromium, logger = console } = {}) { - await mkdir(config.outputDir, { recursive: true }); - +export async function captureScreenshots(config, { browserType = chromium, logger = console } = {}) { const browser = await browserType.launch({ headless: config.headless }); const context = await browser.newContext({ viewport: { ...config.settingsViewport }, @@ -17,25 +15,53 @@ export async function updateScreenshots(config, { browserType = chromium, logger attachPageErrorLogger(page, logger); try { - await login(page, config); - - const configureUrl = await findPluginConfigureUrl(page, config); - - await captureSettingsScreenshot(page, { - configureUrl, - settingsScreenshotPath: config.settingsScreenshotPath, - pluginName: config.pluginName, - maskedSettingsValues: buildMaskedSettingsValues(), - viewport: config.settingsViewport, - }); - await captureTelegramPreview(page, { - previewScreenshotPath: config.previewScreenshotPath, - viewport: config.previewViewport, - }); - - logger.log(`Updated ${path.relative(config.repoRoot, config.settingsScreenshotPath)}`); - logger.log(`Updated ${path.relative(config.repoRoot, config.previewScreenshotPath)}`); + const screenshots = []; + + if (config.targets.settings) { + await login(page, config); + + const configureUrl = await findPluginConfigureUrl(page, config); + const settingsBuffer = await captureSettingsScreenshot(page, { + configureUrl, + pluginName: config.pluginName, + maskedSettingsValues: buildMaskedSettingsValues(), + viewport: config.settingsViewport, + }); + + screenshots.push({ + key: 'settings', + outputPath: config.settingsScreenshotPath, + relativeOutputPath: path.relative(config.repoRoot, config.settingsScreenshotPath), + buffer: settingsBuffer, + }); + } + + if (config.targets.preview) { + const previewBuffer = await captureTelegramPreview(page, { + viewport: config.previewViewport, + }); + + screenshots.push({ + key: 'preview', + outputPath: config.previewScreenshotPath, + relativeOutputPath: path.relative(config.repoRoot, config.previewScreenshotPath), + buffer: previewBuffer, + }); + } + + return screenshots; } finally { await browser.close(); } } + +export async function updateScreenshots(config, { browserType = chromium, logger = console } = {}) { + await mkdir(config.outputDir, { recursive: true }); + + const screenshots = await captureScreenshots(config, { browserType, logger }); + + for (const screenshot of screenshots) { + await writeFile(screenshot.outputPath, screenshot.buffer); + logger.log(`Updated ${screenshot.relativeOutputPath}`); + } +} From d38076ed072880dae9bdc7dc46f393378ff1b173 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 116/169] Expand browser flows screenshot tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Screenshots/browser-flows.test.mjs | 75 ++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/tests/Node/Scripts/Screenshots/browser-flows.test.mjs b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs index 7ff8228..05e5695 100644 --- a/tests/Node/Scripts/Screenshots/browser-flows.test.mjs +++ b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs @@ -1,6 +1,21 @@ import assert from 'node:assert/strict'; import test from 'node:test'; -import { getPluginManagerPageUrl, shouldIgnorePageErrorMessage } from '../../../../scripts/screenshots/browser-flows.mjs'; +import { + buildPluginInstallInputSelector, + buildPluginActionSelector, + extractPluginInstallRequest, + getPluginManagerPageUrl, + getPluginManagerScanFilesUrl, + isPluginActionDisabled, + shouldIgnorePageErrorMessage, +} from '../../../../scripts/screenshots/browser-flows.mjs'; + +test('getPluginManagerScanFilesUrl points to the scan-files action', () => { + assert.equal( + getPluginManagerScanFilesUrl('http://localhost:8080'), + 'http://localhost:8080/index.php/admin/pluginmanager?sa=scanFiles' + ); +}); test('getPluginManagerPageUrl uses the friendly route for the first plugin manager page', () => { assert.equal( @@ -13,6 +28,64 @@ test('getPluginManagerPageUrl uses the friendly route for the first plugin manag ); }); +test('buildPluginInstallInputSelector targets the install form entry for the scanned plugin name', () => { + assert.equal( + buildPluginInstallInputSelector('LSTelegramNotify'), + 'input[name="pluginName"][value="LSTelegramNotify"]' + ); +}); + +test('extractPluginInstallRequest reads the install action and csrf token from scan HTML', () => { + const scanHtml = ` +

    + `; + + assert.deepEqual(extractPluginInstallRequest(scanHtml, 'LSTelegramNotify'), { + actionPath: '/index.php/admin/pluginmanager?sa=installPluginFromFile', + form: { + YII_CSRF_TOKEN: 'csrf-double', + pluginName: 'LSTelegramNotify', + }, + }); +}); + +test('extractPluginInstallRequest supports reversed attribute order and single quotes', () => { + const scanHtml = ` +
    + + + +
    + `; + + assert.deepEqual(extractPluginInstallRequest(scanHtml, 'LSTelegramNotify'), { + actionPath: '/index.php/admin/pluginmanager?sa=installPluginFromFile', + form: { + YII_CSRF_TOKEN: 'csrf-single', + pluginName: 'LSTelegramNotify', + }, + }); +}); + +test('buildPluginActionSelector targets the plugin action entry for the given plugin id', () => { + assert.equal( + buildPluginActionSelector('activate', 18), + 'a[data-post-url*="pluginmanager?sa=activate"][data-post-datas=\'{"pluginId":18}\']' + ); +}); + +test('isPluginActionDisabled detects the disabled dropdown class', () => { + assert.equal(isPluginActionDisabled('dropdown-item disabled '), true); + assert.equal(isPluginActionDisabled('dropdown-item'), false); +}); + test('shouldIgnorePageErrorMessage filters the known CKEditor language error only', () => { assert.equal(shouldIgnorePageErrorMessage("Cannot read properties of null (reading 'langEntries')"), true); assert.equal(shouldIgnorePageErrorMessage('Something else exploded'), false); From 43ddd69347c03b43c3d64328e637f0ead36db591 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:08:59 -0300 Subject: [PATCH 117/169] Expand screenshot config tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/config.test.mjs | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/tests/Node/Scripts/Screenshots/config.test.mjs b/tests/Node/Scripts/Screenshots/config.test.mjs index 06a510c..46e2a1e 100644 --- a/tests/Node/Scripts/Screenshots/config.test.mjs +++ b/tests/Node/Scripts/Screenshots/config.test.mjs @@ -1,6 +1,16 @@ import assert from 'node:assert/strict'; import test from 'node:test'; -import { createScreenshotConfig, normalizeBaseUrl, parseHeadless, requireEnv } from '../../../../scripts/screenshots/config.mjs'; +import { + buildScreenshotCommand, + createScreenshotConfig, + getEnabledScreenshotTargets, + normalizeBaseUrl, + parseHeadless, + parseNonNegativeFloat, + parseNonNegativeInteger, + parseScreenshotTargets, + requireEnv, +} from '../../../../scripts/screenshots/config.mjs'; test('normalizeBaseUrl removes trailing slashes', () => { assert.equal(normalizeBaseUrl('http://localhost:8080///'), 'http://localhost:8080'); @@ -12,6 +22,35 @@ test('parseHeadless only disables headless mode for explicit false', () => { assert.equal(parseHeadless('false'), false); }); +test('parseScreenshotTargets enables both targets by default and can limit to preview only', () => { + assert.deepEqual(parseScreenshotTargets(undefined), { settings: true, preview: true }); + assert.deepEqual(parseScreenshotTargets('preview'), { settings: false, preview: true }); + assert.deepEqual(parseScreenshotTargets('settings, preview'), { settings: true, preview: true }); +}); + +test('parseScreenshotTargets rejects unsupported values', () => { + assert.throws( + () => parseScreenshotTargets('preview,banana'), + /Unsupported SCREENSHOT_TARGETS value\(s\): banana/ + ); +}); + +test('getEnabledScreenshotTargets and buildScreenshotCommand keep target-specific commands readable', () => { + assert.deepEqual(getEnabledScreenshotTargets({ settings: true, preview: false }), ['settings']); + assert.deepEqual(getEnabledScreenshotTargets({ settings: true, preview: true }), ['settings', 'preview']); + + assert.equal(buildScreenshotCommand('screenshots:update', { settings: true, preview: true }), 'npm run screenshots:update'); + assert.equal(buildScreenshotCommand('screenshots:update', { settings: false, preview: true }), 'SCREENSHOT_TARGETS=preview npm run screenshots:update'); +}); + +test('parseNonNegativeFloat and parseNonNegativeInteger validate numeric knobs', () => { + assert.equal(parseNonNegativeFloat('0.25', 0.1), 0.25); + assert.equal(parseNonNegativeInteger('12', 0), 12); + + assert.throws(() => parseNonNegativeFloat('-1', 0.1), /Expected a non-negative float/); + assert.throws(() => parseNonNegativeInteger('1.2', 0), /Expected a non-negative integer/); +}); + test('requireEnv throws when a required variable is blank', () => { assert.throws( () => requireEnv({ LIMESURVEY_ADMIN_USER: ' ' }, 'LIMESURVEY_ADMIN_USER'), @@ -26,6 +65,9 @@ test('createScreenshotConfig composes paths and reads environment values', () => LIMESURVEY_ADMIN_USER: 'admin', LIMESURVEY_ADMIN_PASSWORD: 'secret', PLAYWRIGHT_HEADLESS: 'false', + SCREENSHOT_PIXELMATCH_THRESHOLD: '0.2', + SCREENSHOT_MAX_DIFF_PIXELS: '3', + SCREENSHOT_MAX_DIFF_PIXEL_RATIO: '0.005', }, '/tmp/repo'); assert.equal(config.baseUrl, 'http://localhost:8080'); @@ -34,8 +76,23 @@ test('createScreenshotConfig composes paths and reads environment values', () => assert.equal(config.adminPassword, 'secret'); assert.equal(config.headless, false); assert.equal(config.outputDir, '/tmp/repo/img'); + assert.equal(config.screenshotDiffDir, '/tmp/repo/test-results/screenshots'); assert.equal(config.settingsScreenshotPath, '/tmp/repo/img/settings.png'); assert.equal(config.previewScreenshotPath, '/tmp/repo/img/telegram_example.png'); + assert.deepEqual(config.targets, { settings: true, preview: true }); + assert.equal(config.pixelmatchThreshold, 0.2); + assert.equal(config.maxDiffPixels, 3); + assert.equal(config.maxDiffPixelRatio, 0.005); assert.deepEqual(config.settingsViewport, { width: 1280, height: 2200 }); assert.deepEqual(config.previewViewport, { width: 1200, height: 1400 }); }); + +test('createScreenshotConfig does not require admin credentials for preview-only validation', () => { + const config = createScreenshotConfig({ + SCREENSHOT_TARGETS: 'preview', + }, '/tmp/repo'); + + assert.deepEqual(config.targets, { settings: false, preview: true }); + assert.equal(config.adminUser, null); + assert.equal(config.adminPassword, null); +}); From 53367c674698607909c432fb5427c27878535272 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 118/169] Adjust FormattingOptions test stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/FormattingOptions.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/Support/Stubs/FormattingOptions.php b/tests/Support/Stubs/FormattingOptions.php index 971788c..d836329 100644 --- a/tests/Support/Stubs/FormattingOptions.php +++ b/tests/Support/Stubs/FormattingOptions.php @@ -2,4 +2,15 @@ class FormattingOptions { + public int $responseMinRecord = 0; + public int $responseMaxRecord = 0; + + /** @var array */ + public array $selectedColumns = []; + + public string $responseCompletionState = ''; + public string $headingFormat = ''; + public string $answerFormat = ''; + public string $csvFieldSeparator = ','; + public string $output = ''; } From d5c49439a237b360de54f6021e3cc61c506cb361 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 119/169] Adjust PluginBase test stub Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/PluginBase.php | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/Support/Stubs/PluginBase.php b/tests/Support/Stubs/PluginBase.php index aa821f3..d3806e9 100644 --- a/tests/Support/Stubs/PluginBase.php +++ b/tests/Support/Stubs/PluginBase.php @@ -1,5 +1,36 @@ Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 120/169] Add documentation screenshot workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../workflows/documentation-screenshots.yml | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/documentation-screenshots.yml diff --git a/.github/workflows/documentation-screenshots.yml b/.github/workflows/documentation-screenshots.yml new file mode 100644 index 0000000..9c97160 --- /dev/null +++ b/.github/workflows/documentation-screenshots.yml @@ -0,0 +1,95 @@ +name: Documentation Screenshots + +on: + pull_request: + push: + workflow_dispatch: + +jobs: + screenshot: + runs-on: ubuntu-latest + env: + LIMESURVEY_BASE_URL: http://127.0.0.1:18080 + LIMESURVEY_ADMIN_USER: admin + LIMESURVEY_ADMIN_PASSWORD: admin + LIMESURVEY_HOST_PORT: '18080' + PLAYWRIGHT_HEADLESS: 'true' + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup PHP 8.5 + uses: shivammathur/setup-php@v2 + with: + php-version: '8.5' + tools: composer:v2 + coverage: none + + - name: Setup Node.js 24 + uses: actions/setup-node@v4 + with: + node-version: '24' + cache: npm + + - name: Install PHP dependencies + run: composer install --no-interaction --prefer-dist --no-scripts + + - name: Install Node dependencies + run: npm ci + + - name: Install Chromium for Playwright + run: npx playwright install --with-deps chromium + + - name: Start LimeSurvey screenshot stack + run: docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate + + - name: Wait for LimeSurvey admin login page + run: >- + curl --fail --silent --show-error + --retry 60 + --retry-all-errors + --retry-delay 2 + "$LIMESURVEY_BASE_URL/index.php/admin/authentication/sa/login" + > /dev/null + + - name: Validate documentation screenshots + id: screenshot_check + continue-on-error: true + run: npm run screenshots:check + + - name: Explain screenshot failure + if: steps.screenshot_check.outcome == 'failure' + run: | + { + echo "## Documentation screenshots need attention" + echo + echo "- Run \`composer install --no-interaction --prefer-dist --no-scripts\` if your local checkout does not already have \`vendor/\`." + echo "- To reproduce with the same disposable LimeSurvey stack used in CI, run \\`LIMESURVEY_HOST_PORT=18080 docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate\\`." + echo "- Then run \\`LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:check\\`." + echo "- If the screenshots drifted, run \\`LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:update\\` and commit the updated PNG files." + echo "- Download the \\`documentation-screenshot-diffs\\` artifact from this workflow run for the visual diff." + } >> "$GITHUB_STEP_SUMMARY" + echo "::error::Documentation screenshots are out of date. Reproduce with the screenshot compose stack, run npm run screenshots:update, and commit the updated PNG files." + + - name: Upload screenshot diff artifacts + if: steps.screenshot_check.outcome == 'failure' + uses: actions/upload-artifact@v4 + with: + name: documentation-screenshot-diffs + path: test-results/screenshots + if-no-files-found: ignore + + - name: Show LimeSurvey stack logs on failure + if: failure() + run: | + docker compose -f scripts/screenshots/docker-compose.yml ps + docker compose -f scripts/screenshots/docker-compose.yml logs --no-color + + - name: Stop LimeSurvey screenshot stack + if: always() + run: docker compose -f scripts/screenshots/docker-compose.yml down -v + + - name: Fail when documentation screenshots are stale + if: steps.screenshot_check.outcome == 'failure' + run: exit 1 \ No newline at end of file From 0f627211345127dabbbfd949bd341eb4ff213cb5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 121/169] Add screenshot check script Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/check-screenshots.mjs | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 scripts/check-screenshots.mjs diff --git a/scripts/check-screenshots.mjs b/scripts/check-screenshots.mjs new file mode 100644 index 0000000..803074d --- /dev/null +++ b/scripts/check-screenshots.mjs @@ -0,0 +1,43 @@ +import { config as loadEnv } from 'dotenv'; +import { buildScreenshotCommand, createScreenshotConfig } from './screenshots/config.mjs'; +import { assertScreenshotsUpToDate } from './screenshots/checker.mjs'; + +loadEnv(); + +const screenshotConfig = createScreenshotConfig(); + +try { + await assertScreenshotsUpToDate(screenshotConfig); +} catch (error) { + const message = formatScreenshotCheckError(error); + + console.error(message); + + if (process.env.GITHUB_ACTIONS === 'true') { + console.error(`::error title=Screenshot validation failed::${message.split('\n')[0]}`); + } + + process.exit(1); +} + +function formatScreenshotCheckError(error) { + const originalMessage = error instanceof Error ? error.message : String(error); + + if (originalMessage.includes('Login failed.')) { + return [ + 'Screenshot validation could not log into LimeSurvey.', + 'Check LIMESURVEY_BASE_URL, LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.', + 'If you want a disposable local LimeSurvey just for screenshots, use `docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate`.', + `If you only need the local preview image, run \`${buildScreenshotCommand('screenshots:check', { settings: false, preview: true })}\`.`, + ].join('\n'); + } + + if (originalMessage.includes('Missing required environment variable:')) { + return [ + originalMessage, + `If you only need the local preview image, run \`${buildScreenshotCommand('screenshots:check', { settings: false, preview: true })}\`.`, + ].join('\n'); + } + + return originalMessage; +} From 3038f528ac3a38e3668dcde5a3034fafc3884191 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 122/169] Add screenshot maintenance guide Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/README.md | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 scripts/screenshots/README.md diff --git a/scripts/screenshots/README.md b/scripts/screenshots/README.md new file mode 100644 index 0000000..2a12069 --- /dev/null +++ b/scripts/screenshots/README.md @@ -0,0 +1,46 @@ +# Screenshot automation + +This directory contains the maintainer-facing automation for validating and regenerating the documentation screenshots. + +## Commands + +- `npm run screenshots:check` renders fresh screenshots and compares their decoded pixels against the committed PNG files. +- `npm run screenshots:update` regenerates the committed screenshots. +- `SCREENSHOT_TARGETS=preview npm run screenshots:check` validates only `img/telegram_example.png`. +- `SCREENSHOT_TARGETS=preview npm run screenshots:update` refreshes only `img/telegram_example.png`. +- `LIMESURVEY_HOST_PORT=18080 docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate` starts the same disposable LimeSurvey stack used by CI. +- `docker compose -f scripts/screenshots/docker-compose.yml down -v` removes that stack again. + +## What is validated + +- `img/settings.png` is captured from the LimeSurvey admin interface with masked values. +- `img/telegram_example.png` is rendered locally from sample data, so it does not need Telegram or a live LimeSurvey instance. + +## Local setup + +1. Install PHP dependencies with `composer install` so the mounted plugin contains `vendor/autoload.php`. +2. Install Node dependencies with `npm install`. +3. Install Chromium with `npm run playwright:install`. +4. If you want the same setup used in CI, start the disposable stack from `scripts/screenshots/docker-compose.yml` with `up -d --force-recreate` and export `LIMESURVEY_BASE_URL=http://127.0.0.1:18080`, `LIMESURVEY_ADMIN_USER=admin`, `LIMESURVEY_ADMIN_PASSWORD=admin`. +5. If you prefer using an existing LimeSurvey instance, copy `.env.example` to `.env` and adjust the credentials there. + +Required for the settings screenshot: + +- `LIMESURVEY_BASE_URL` +- `LIMESURVEY_ADMIN_USER` +- `LIMESURVEY_ADMIN_PASSWORD` + +Useful optional overrides: + +- `SCREENSHOT_TARGETS=preview|settings|settings,preview` +- `PLAYWRIGHT_HEADLESS=false` +- `SCREENSHOT_PIXELMATCH_THRESHOLD=0.1` +- `SCREENSHOT_MAX_DIFF_PIXELS=0` +- `SCREENSHOT_MAX_DIFF_PIXEL_RATIO=0` + +## GitHub Actions behavior + +- `Documentation Screenshots` starts a disposable LimeSurvey stack with Docker Compose (`up -d --force-recreate`) and validates both `img/settings.png` and `img/telegram_example.png` in a single job. +- The workflow should break when the plugin settings UI changes enough to make `img/settings.png` drift from the committed version. + +When validation fails, the workflow summary tells you which command to run next and uploads diff artifacts under `test-results/screenshots/`. From af04e3c9f9a35d348996c5d397efc7aa88d9c628 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 123/169] Add screenshot diff checker Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/checker.mjs | 124 ++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 scripts/screenshots/checker.mjs diff --git a/scripts/screenshots/checker.mjs b/scripts/screenshots/checker.mjs new file mode 100644 index 0000000..9475a94 --- /dev/null +++ b/scripts/screenshots/checker.mjs @@ -0,0 +1,124 @@ +import { mkdir, readFile, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import pixelmatch from 'pixelmatch'; +import { PNG } from 'pngjs'; +import { buildScreenshotCommand } from './config.mjs'; +import { captureScreenshots } from './runner.mjs'; + +export function comparePngBuffers(expectedBuffer, actualBuffer, { + pixelmatchThreshold = 0.1, + maxDiffPixels = 0, + maxDiffPixelRatio = 0, +} = {}) { + const expectedImage = PNG.sync.read(expectedBuffer); + const actualImage = PNG.sync.read(actualBuffer); + + if (expectedImage.width !== actualImage.width || expectedImage.height !== actualImage.height) { + return { + matches: false, + reason: `Image dimensions differ: expected ${expectedImage.width}x${expectedImage.height}, got ${actualImage.width}x${actualImage.height}`, + diffPixels: Number.POSITIVE_INFINITY, + diffPixelRatio: 1, + diffBuffer: null, + }; + } + + const diffImage = new PNG({ width: expectedImage.width, height: expectedImage.height }); + const diffPixels = pixelmatch( + expectedImage.data, + actualImage.data, + diffImage.data, + expectedImage.width, + expectedImage.height, + { threshold: pixelmatchThreshold } + ); + const totalPixels = expectedImage.width * expectedImage.height; + const diffPixelRatio = totalPixels === 0 ? 0 : diffPixels / totalPixels; + const matches = !(diffPixels > maxDiffPixels && diffPixelRatio > maxDiffPixelRatio); + + return { + matches, + reason: matches + ? null + : `Detected ${diffPixels} different pixels (${(diffPixelRatio * 100).toFixed(4)}% of the image).`, + diffPixels, + diffPixelRatio, + diffBuffer: PNG.sync.write(diffImage), + }; +} + +export async function assertScreenshotsUpToDate(config, { logger = console, browserType } = {}) { + const screenshots = await captureScreenshots(config, { logger, browserType }); + const refreshCommand = buildScreenshotCommand('screenshots:update', config.targets); + + await rm(config.screenshotDiffDir, { recursive: true, force: true }); + + const failures = []; + + for (const screenshot of screenshots) { + let expectedBuffer; + + try { + expectedBuffer = await readFile(screenshot.outputPath); + } catch (error) { + failures.push({ + screenshot, + reason: `Missing committed screenshot at ${screenshot.relativeOutputPath}.`, + actualBuffer: screenshot.buffer, + expectedBuffer: null, + diffBuffer: null, + }); + continue; + } + + const result = comparePngBuffers(expectedBuffer, screenshot.buffer, { + pixelmatchThreshold: config.pixelmatchThreshold, + maxDiffPixels: config.maxDiffPixels, + maxDiffPixelRatio: config.maxDiffPixelRatio, + }); + + if (result.matches) { + logger.log(`Validated ${screenshot.relativeOutputPath}`); + continue; + } + + failures.push({ + screenshot, + reason: result.reason, + expectedBuffer, + actualBuffer: screenshot.buffer, + diffBuffer: result.diffBuffer, + }); + } + + if (failures.length === 0) { + return; + } + + await mkdir(config.screenshotDiffDir, { recursive: true }); + + const failureLines = []; + + for (const failure of failures) { + const artifactPrefix = path.join(config.screenshotDiffDir, failure.screenshot.key); + + if (failure.expectedBuffer) { + await writeFile(`${artifactPrefix}.expected.png`, failure.expectedBuffer); + } + + await writeFile(`${artifactPrefix}.actual.png`, failure.actualBuffer); + + if (failure.diffBuffer) { + await writeFile(`${artifactPrefix}.diff.png`, failure.diffBuffer); + } + + const artifactDir = path.relative(config.repoRoot, config.screenshotDiffDir); + failureLines.push(`- ${failure.screenshot.relativeOutputPath}: ${failure.reason} Diff artifacts: ${artifactDir}/`); + } + + throw new Error([ + 'Documentation screenshots are out of date.', + ...failureLines, + `Fix: run \`${refreshCommand}\` and commit the updated PNG files.`, + ].join('\n')); +} From 7708dee906267bca848a2d459b98399fcd8c70f7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 124/169] Add screenshot LimeSurvey stack Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/docker-compose.yml | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 scripts/screenshots/docker-compose.yml diff --git a/scripts/screenshots/docker-compose.yml b/scripts/screenshots/docker-compose.yml new file mode 100644 index 0000000..91b83db --- /dev/null +++ b/scripts/screenshots/docker-compose.yml @@ -0,0 +1,31 @@ +services: + limesurvey: + image: martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452 + depends_on: + - lime-db + environment: + DB_HOST: lime-db + DB_PORT: '3306' + DB_NAME: limesurvey + DB_USERNAME: limesurvey + DB_PASSWORD: limesurvey + ADMIN_USER: admin + ADMIN_NAME: admin + ADMIN_EMAIL: admin@example.com + ADMIN_PASSWORD: admin + PUBLIC_URL: 'http://127.0.0.1:${LIMESURVEY_HOST_PORT:-18080}' + BASE_URL: 'http://127.0.0.1:${LIMESURVEY_HOST_PORT:-18080}' + URL_FORMAT: path + SHOW_SCRIPT_NAME: 'true' + ports: + - '${LIMESURVEY_HOST_PORT:-18080}:8080' + volumes: + - ../../:/var/www/html/plugins/LSTelegramNotify + + lime-db: + image: mariadb:11.4 + environment: + MYSQL_USER: limesurvey + MYSQL_DATABASE: limesurvey + MYSQL_PASSWORD: limesurvey + MYSQL_ROOT_PASSWORD: root \ No newline at end of file From 910d1bfbd3e0d54d8a2a70188952348e2fba334f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 125/169] Add screenshot checker tests Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/checker.test.mjs | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 tests/Node/Scripts/Screenshots/checker.test.mjs diff --git a/tests/Node/Scripts/Screenshots/checker.test.mjs b/tests/Node/Scripts/Screenshots/checker.test.mjs new file mode 100644 index 0000000..9892b88 --- /dev/null +++ b/tests/Node/Scripts/Screenshots/checker.test.mjs @@ -0,0 +1,90 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; +import { PNG } from 'pngjs'; +import { comparePngBuffers } from '../../../../scripts/screenshots/checker.mjs'; + +function createPngBuffer(width, height, pixels) { + const image = new PNG({ width, height }); + + for (let index = 0; index < pixels.length; index += 1) { + const [red, green, blue, alpha] = pixels[index]; + const offset = index * 4; + + image.data[offset] = red; + image.data[offset + 1] = green; + image.data[offset + 2] = blue; + image.data[offset + 3] = alpha; + } + + return PNG.sync.write(image); +} + +test('comparePngBuffers matches identical images', () => { + const buffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [0, 0, 0, 255], + ]); + + const result = comparePngBuffers(buffer, buffer); + + assert.equal(result.matches, true); + assert.equal(result.diffPixels, 0); + assert.equal(result.reason, null); + assert.ok(result.diffBuffer); +}); + +test('comparePngBuffers reports changed pixels', () => { + const expectedBuffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [0, 0, 0, 255], + ]); + const actualBuffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [255, 0, 0, 255], + ]); + + const result = comparePngBuffers(expectedBuffer, actualBuffer, { + pixelmatchThreshold: 0, + }); + + assert.equal(result.matches, false); + assert.equal(result.diffPixels, 1); + assert.match(result.reason, /Detected 1 different pixels/); + assert.ok(result.diffBuffer); +}); + +test('comparePngBuffers can tolerate a small pixel delta', () => { + const expectedBuffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [0, 0, 0, 255], + ]); + const actualBuffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [255, 0, 0, 255], + ]); + + const result = comparePngBuffers(expectedBuffer, actualBuffer, { + pixelmatchThreshold: 0, + maxDiffPixels: 1, + }); + + assert.equal(result.matches, true); + assert.equal(result.diffPixels, 1); +}); + +test('comparePngBuffers fails when image dimensions differ', () => { + const expectedBuffer = createPngBuffer(1, 1, [ + [255, 255, 255, 255], + ]); + const actualBuffer = createPngBuffer(2, 1, [ + [255, 255, 255, 255], + [255, 255, 255, 255], + ]); + + const result = comparePngBuffers(expectedBuffer, actualBuffer); + + assert.equal(result.matches, false); + assert.equal(result.diffPixels, Number.POSITIVE_INFINITY); + assert.match(result.reason, /Image dimensions differ/); + assert.equal(result.diffBuffer, null); +}); From cb659bfe3ac2cbe7df2bfd3311763491f0c35faf Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 19:09:00 -0300 Subject: [PATCH 126/169] Add Psalm baseline Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/psalm-baseline.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/psalm-baseline.xml diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml new file mode 100644 index 0000000..bec2b45 --- /dev/null +++ b/tests/psalm-baseline.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + From 1219a78de540e754d55c26c128b099e9c376ecdb Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 127/169] chore: remove redundant env example Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .env.example | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .env.example diff --git a/.env.example b/.env.example deleted file mode 100644 index 33d4807..0000000 --- a/.env.example +++ /dev/null @@ -1,7 +0,0 @@ -# Copy this file to .env only if you need to refresh screenshots locally. -# Maintainer notes live in scripts/screenshots/README.md. -LIMESURVEY_BASE_URL=http://localhost:8080 -LIMESURVEY_ADMIN_USER=admin -LIMESURVEY_ADMIN_PASSWORD=change-me -LIMESURVEY_PLUGIN_NAME=LSTelegramNotify -PLAYWRIGHT_HEADLESS=true From 35f32a757dcbbf4dc830b8d7823371bebfe2195b Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 128/169] ci: fix screenshot workflow triggers Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../workflows/documentation-screenshots.yml | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/.github/workflows/documentation-screenshots.yml b/.github/workflows/documentation-screenshots.yml index 9c97160..944f666 100644 --- a/.github/workflows/documentation-screenshots.yml +++ b/.github/workflows/documentation-screenshots.yml @@ -3,6 +3,8 @@ name: Documentation Screenshots on: pull_request: push: + branches: + - main workflow_dispatch: jobs: @@ -12,7 +14,7 @@ jobs: LIMESURVEY_BASE_URL: http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER: admin LIMESURVEY_ADMIN_PASSWORD: admin - LIMESURVEY_HOST_PORT: '18080' + LIMESURVEY_STACK_HOST_PORT: '18080' PLAYWRIGHT_HEADLESS: 'true' steps: @@ -41,8 +43,8 @@ jobs: - name: Install Chromium for Playwright run: npx playwright install --with-deps chromium - - name: Start LimeSurvey screenshot stack - run: docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate + - name: Start LimeSurvey test stack + run: docker compose up -d --force-recreate - name: Wait for LimeSurvey admin login page run: >- @@ -61,15 +63,15 @@ jobs: - name: Explain screenshot failure if: steps.screenshot_check.outcome == 'failure' run: | - { - echo "## Documentation screenshots need attention" - echo - echo "- Run \`composer install --no-interaction --prefer-dist --no-scripts\` if your local checkout does not already have \`vendor/\`." - echo "- To reproduce with the same disposable LimeSurvey stack used in CI, run \\`LIMESURVEY_HOST_PORT=18080 docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate\\`." - echo "- Then run \\`LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:check\\`." - echo "- If the screenshots drifted, run \\`LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:update\\` and commit the updated PNG files." - echo "- Download the \\`documentation-screenshot-diffs\\` artifact from this workflow run for the visual diff." - } >> "$GITHUB_STEP_SUMMARY" + cat <<'EOF' >> "$GITHUB_STEP_SUMMARY" + ## Documentation screenshots need attention + + - Run `composer install --no-interaction --prefer-dist --no-scripts` if your local checkout does not already have `vendor/`. + - To reproduce with the same disposable LimeSurvey stack used in CI, run `LIMESURVEY_STACK_HOST_PORT=18080 docker compose up -d --force-recreate` from the repository root. + - Then run `LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:check`. + - If the screenshots drifted, run `LIMESURVEY_BASE_URL=http://127.0.0.1:18080 LIMESURVEY_ADMIN_USER=admin LIMESURVEY_ADMIN_PASSWORD=admin npm run screenshots:update` and commit the updated PNG files. + - Download the `documentation-screenshot-diffs` artifact from this workflow run for the visual diff. + EOF echo "::error::Documentation screenshots are out of date. Reproduce with the screenshot compose stack, run npm run screenshots:update, and commit the updated PNG files." - name: Upload screenshot diff artifacts @@ -83,13 +85,13 @@ jobs: - name: Show LimeSurvey stack logs on failure if: failure() run: | - docker compose -f scripts/screenshots/docker-compose.yml ps - docker compose -f scripts/screenshots/docker-compose.yml logs --no-color + docker compose ps + docker compose logs --no-color - - name: Stop LimeSurvey screenshot stack + - name: Stop LimeSurvey test stack if: always() - run: docker compose -f scripts/screenshots/docker-compose.yml down -v + run: docker compose down -v - name: Fail when documentation screenshots are stale if: steps.screenshot_check.outcome == 'failure' - run: exit 1 \ No newline at end of file + run: exit 1 From 82df9f947980f9ae5e23901666ea4d7f6c5a292c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 129/169] docs: improve screenshot login guidance Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/check-screenshots.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check-screenshots.mjs b/scripts/check-screenshots.mjs index 803074d..9c0a9da 100644 --- a/scripts/check-screenshots.mjs +++ b/scripts/check-screenshots.mjs @@ -27,7 +27,7 @@ function formatScreenshotCheckError(error) { return [ 'Screenshot validation could not log into LimeSurvey.', 'Check LIMESURVEY_BASE_URL, LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.', - 'If you want a disposable local LimeSurvey just for screenshots, use `docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate`.', + 'If you want a disposable local LimeSurvey just for screenshots, run `docker compose up -d --force-recreate` from the repository root.', `If you only need the local preview image, run \`${buildScreenshotCommand('screenshots:check', { settings: false, preview: true })}\`.`, ].join('\n'); } From 367f08b2ee7827db7780b7e0b1b9f70b2dac5c1a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 130/169] docs: refresh screenshot maintenance guide Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/screenshots/README.md b/scripts/screenshots/README.md index 2a12069..7b18000 100644 --- a/scripts/screenshots/README.md +++ b/scripts/screenshots/README.md @@ -8,8 +8,8 @@ This directory contains the maintainer-facing automation for validating and rege - `npm run screenshots:update` regenerates the committed screenshots. - `SCREENSHOT_TARGETS=preview npm run screenshots:check` validates only `img/telegram_example.png`. - `SCREENSHOT_TARGETS=preview npm run screenshots:update` refreshes only `img/telegram_example.png`. -- `LIMESURVEY_HOST_PORT=18080 docker compose -f scripts/screenshots/docker-compose.yml up -d --force-recreate` starts the same disposable LimeSurvey stack used by CI. -- `docker compose -f scripts/screenshots/docker-compose.yml down -v` removes that stack again. +- `LIMESURVEY_STACK_HOST_PORT=18080 docker compose up -d --force-recreate` starts the same disposable LimeSurvey stack used by CI from the repository root. +- `docker compose down -v` removes that stack again. ## What is validated @@ -21,14 +21,17 @@ This directory contains the maintainer-facing automation for validating and rege 1. Install PHP dependencies with `composer install` so the mounted plugin contains `vendor/autoload.php`. 2. Install Node dependencies with `npm install`. 3. Install Chromium with `npm run playwright:install`. -4. If you want the same setup used in CI, start the disposable stack from `scripts/screenshots/docker-compose.yml` with `up -d --force-recreate` and export `LIMESURVEY_BASE_URL=http://127.0.0.1:18080`, `LIMESURVEY_ADMIN_USER=admin`, `LIMESURVEY_ADMIN_PASSWORD=admin`. -5. If you prefer using an existing LimeSurvey instance, copy `.env.example` to `.env` and adjust the credentials there. +4. If you want the same setup used in CI, start the disposable stack from the repository root with `docker compose up -d --force-recreate` and then run `npm run screenshots:check` or `npm run screenshots:update` directly. The screenshot scripts default to the same `http://127.0.0.1:18080` + `admin` / `admin` values exposed by the compose stack. +5. If you prefer using an existing LimeSurvey instance, export `LIMESURVEY_BASE_URL`, `LIMESURVEY_ADMIN_USER`, and `LIMESURVEY_ADMIN_PASSWORD`, or place those variables in a local ignored `.env` file. + +If you prefer VS Code Dev Containers, reopen the repository in the included `.devcontainer/`. It starts the same LimeSurvey services plus a `workspace` container with PHP, Composer, and Node.js already available. Inside that container, the default screenshot URL is `http://limesurvey:8080`. + +All values in the repository-root `docker-compose.yml` accept optional `LIMESURVEY_STACK_*` overrides and otherwise use the defaults embedded in the compose file. Required for the settings screenshot: -- `LIMESURVEY_BASE_URL` -- `LIMESURVEY_ADMIN_USER` -- `LIMESURVEY_ADMIN_PASSWORD` +- no extra variables when using the default repository-root Docker Compose stack +- `LIMESURVEY_BASE_URL`, `LIMESURVEY_ADMIN_USER`, and `LIMESURVEY_ADMIN_PASSWORD` when targeting a different LimeSurvey instance Useful optional overrides: @@ -40,7 +43,8 @@ Useful optional overrides: ## GitHub Actions behavior -- `Documentation Screenshots` starts a disposable LimeSurvey stack with Docker Compose (`up -d --force-recreate`) and validates both `img/settings.png` and `img/telegram_example.png` in a single job. +- `Documentation Screenshots` starts the repository-root disposable LimeSurvey stack with Docker Compose (`up -d --force-recreate`) and validates both `img/settings.png` and `img/telegram_example.png` in a single job. - The workflow should break when the plugin settings UI changes enough to make `img/settings.png` drift from the committed version. When validation fails, the workflow summary tells you which command to run next and uploads diff artifacts under `test-results/screenshots/`. + From 2f4b3d12845e81c159e2bfae016da08a9bf18851 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 131/169] fix: retry screenshot login on fresh stack Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/browser-flows.mjs | 40 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/scripts/screenshots/browser-flows.mjs b/scripts/screenshots/browser-flows.mjs index 3cf30e5..49ad4fa 100644 --- a/scripts/screenshots/browser-flows.mjs +++ b/scripts/screenshots/browser-flows.mjs @@ -4,6 +4,10 @@ export const IGNORED_PAGE_ERROR_MESSAGES = Object.freeze([ "Cannot read properties of null (reading 'langEntries')", ]); +const LOGIN_PATH_FRAGMENT = '/authentication/sa/login'; +const DEFAULT_LOGIN_MAX_ATTEMPTS = 3; +const LOGIN_RETRY_DELAY_MS = 1_000; + export function shouldIgnorePageErrorMessage(message) { return IGNORED_PAGE_ERROR_MESSAGES.some((ignoredMessage) => message.includes(ignoredMessage)); } @@ -20,22 +24,34 @@ export function attachPageErrorLogger(page, logger = console) { }); } -export async function login(page, { baseUrl, adminUser, adminPassword }) { - await page.goto(`${baseUrl}/index.php/admin/authentication/sa/login`, { - waitUntil: 'networkidle', - }); +export async function login(page, { baseUrl, adminUser, adminPassword, loginMaxAttempts = DEFAULT_LOGIN_MAX_ATTEMPTS }) { + const loginUrl = `${baseUrl}/index.php/admin/authentication/sa/login`; + + for (let attempt = 1; attempt <= loginMaxAttempts; attempt += 1) { + await page.goto(loginUrl, { + waitUntil: 'networkidle', + }); + + await page.fill('#user', adminUser); + await page.fill('#password', adminPassword); - await page.fill('#user', adminUser); - await page.fill('#password', adminPassword); + await Promise.all([ + page.waitForURL((url) => !url.toString().includes(LOGIN_PATH_FRAGMENT), { timeout: 10_000 }).catch(() => null), + page.getByRole('button', { name: 'Log in' }).click(), + ]); - await Promise.all([ - page.waitForLoadState('networkidle'), - page.getByRole('button', { name: 'Log in' }).click(), - ]); + await page.waitForLoadState('networkidle'); - if (page.url().includes('/authentication/sa/login')) { - throw new Error('Login failed. Check LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.'); + if (!page.url().includes(LOGIN_PATH_FRAGMENT)) { + return; + } + + if (attempt < loginMaxAttempts) { + await page.waitForTimeout(LOGIN_RETRY_DELAY_MS); + } } + + throw new Error('Login failed. Check LIMESURVEY_ADMIN_USER and LIMESURVEY_ADMIN_PASSWORD.'); } export function getPluginManagerScanFilesUrl(baseUrl) { From 0df5610485bc25a8a1993aaf67881d8cf9deb3aa Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 132/169] feat: default screenshot config to compose stack Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/config.mjs | 38 ++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/scripts/screenshots/config.mjs b/scripts/screenshots/config.mjs index 773a373..6a935f7 100644 --- a/scripts/screenshots/config.mjs +++ b/scripts/screenshots/config.mjs @@ -1,6 +1,10 @@ import path from 'node:path'; -export const DEFAULT_BASE_URL = 'http://localhost:8080'; +export const DEFAULT_STACK_PUBLIC_SCHEME = 'http'; +export const DEFAULT_STACK_PUBLIC_HOST = '127.0.0.1'; +export const DEFAULT_STACK_HOST_PORT = '18080'; +export const DEFAULT_STACK_ADMIN_USER = 'admin'; +export const DEFAULT_STACK_ADMIN_PASSWORD = 'admin'; export const DEFAULT_PLUGIN_NAME = 'LSTelegramNotify'; export const SETTINGS_VIEWPORT = Object.freeze({ width: 1280, height: 2200 }); export const PREVIEW_VIEWPORT = Object.freeze({ width: 1200, height: 1400 }); @@ -17,10 +21,10 @@ export function createScreenshotConfig(env = process.env, repoRoot = process.cwd previewScreenshotPath: path.join(repoRoot, 'img', 'telegram_example.png'), screenshotDiffDir: path.join(repoRoot, 'test-results', 'screenshots'), targets, - baseUrl: normalizeBaseUrl(env.LIMESURVEY_BASE_URL || DEFAULT_BASE_URL), + baseUrl: normalizeBaseUrl(getEnvOrFallback(env, 'LIMESURVEY_BASE_URL', getDefaultBaseUrl(env))), pluginName: env.LIMESURVEY_PLUGIN_NAME || DEFAULT_PLUGIN_NAME, - adminUser: targets.settings ? requireEnv(env, 'LIMESURVEY_ADMIN_USER') : null, - adminPassword: targets.settings ? requireEnv(env, 'LIMESURVEY_ADMIN_PASSWORD') : null, + adminUser: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_USER', getDefaultAdminUser(env)) : null, + adminPassword: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_PASSWORD', getDefaultAdminPassword(env)) : null, headless: parseHeadless(env.PLAYWRIGHT_HEADLESS), pixelmatchThreshold: parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1), maxDiffPixels: parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0), @@ -40,6 +44,32 @@ export function requireEnv(env, name) { return value; } +export function getEnvOrFallback(env, name, fallback) { + const value = env[name]; + + if (value === undefined || value === null || String(value).trim() === '') { + return fallback; + } + + return String(value).trim(); +} + +export function getDefaultBaseUrl(env) { + const scheme = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_SCHEME', DEFAULT_STACK_PUBLIC_SCHEME); + const host = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_HOST', DEFAULT_STACK_PUBLIC_HOST); + const port = getEnvOrFallback(env, 'LIMESURVEY_STACK_HOST_PORT', DEFAULT_STACK_HOST_PORT); + + return `${scheme}://${host}:${port}`; +} + +export function getDefaultAdminUser(env) { + return getEnvOrFallback(env, 'LIMESURVEY_STACK_ADMIN_USER', DEFAULT_STACK_ADMIN_USER); +} + +export function getDefaultAdminPassword(env) { + return getEnvOrFallback(env, 'LIMESURVEY_STACK_ADMIN_PASSWORD', DEFAULT_STACK_ADMIN_PASSWORD); +} + export function normalizeBaseUrl(url) { return url.replace(/\/+$/, ''); } From 9902553f2f9f255c3b874a62f60c7469576326e1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 133/169] chore: remove nested screenshot compose file Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/docker-compose.yml | 31 -------------------------- 1 file changed, 31 deletions(-) delete mode 100644 scripts/screenshots/docker-compose.yml diff --git a/scripts/screenshots/docker-compose.yml b/scripts/screenshots/docker-compose.yml deleted file mode 100644 index 91b83db..0000000 --- a/scripts/screenshots/docker-compose.yml +++ /dev/null @@ -1,31 +0,0 @@ -services: - limesurvey: - image: martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452 - depends_on: - - lime-db - environment: - DB_HOST: lime-db - DB_PORT: '3306' - DB_NAME: limesurvey - DB_USERNAME: limesurvey - DB_PASSWORD: limesurvey - ADMIN_USER: admin - ADMIN_NAME: admin - ADMIN_EMAIL: admin@example.com - ADMIN_PASSWORD: admin - PUBLIC_URL: 'http://127.0.0.1:${LIMESURVEY_HOST_PORT:-18080}' - BASE_URL: 'http://127.0.0.1:${LIMESURVEY_HOST_PORT:-18080}' - URL_FORMAT: path - SHOW_SCRIPT_NAME: 'true' - ports: - - '${LIMESURVEY_HOST_PORT:-18080}:8080' - volumes: - - ../../:/var/www/html/plugins/LSTelegramNotify - - lime-db: - image: mariadb:11.4 - environment: - MYSQL_USER: limesurvey - MYSQL_DATABASE: limesurvey - MYSQL_PASSWORD: limesurvey - MYSQL_ROOT_PASSWORD: root \ No newline at end of file From 1b0d9da0334c663dce40edb9bfd807b127054235 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 134/169] test: cover screenshot login retries Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Screenshots/browser-flows.test.mjs | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/tests/Node/Scripts/Screenshots/browser-flows.test.mjs b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs index 05e5695..6ae73ae 100644 --- a/tests/Node/Scripts/Screenshots/browser-flows.test.mjs +++ b/tests/Node/Scripts/Screenshots/browser-flows.test.mjs @@ -7,6 +7,7 @@ import { getPluginManagerPageUrl, getPluginManagerScanFilesUrl, isPluginActionDisabled, + login, shouldIgnorePageErrorMessage, } from '../../../../scripts/screenshots/browser-flows.mjs'; @@ -90,3 +91,102 @@ test('shouldIgnorePageErrorMessage filters the known CKEditor language error onl assert.equal(shouldIgnorePageErrorMessage("Cannot read properties of null (reading 'langEntries')"), true); assert.equal(shouldIgnorePageErrorMessage('Something else exploded'), false); }); + +test('login retries when the first fresh-stack attempt stays on the login page', async () => { + let currentUrl = 'http://localhost:8080/index.php/admin/authentication/sa/login'; + let attempt = 0; + const gotoCalls = []; + const fills = []; + const waitForTimeoutCalls = []; + const clickCalls = []; + + const page = { + async goto(url) { + gotoCalls.push(url); + currentUrl = url; + }, + async fill(selector, value) { + fills.push([selector, value]); + }, + waitForURL() { + return attempt === 0 ? Promise.reject(new Error('timeout')) : Promise.resolve(); + }, + getByRole(role, options) { + return { + click: async () => { + clickCalls.push([role, options]); + currentUrl = attempt === 0 + ? 'http://localhost:8080/index.php/admin/authentication/sa/login' + : 'http://localhost:8080/index.php/dashboard/view'; + attempt += 1; + }, + }; + }, + async waitForLoadState() {}, + url() { + return currentUrl; + }, + async waitForTimeout(value) { + waitForTimeoutCalls.push(value); + }, + }; + + await login(page, { + baseUrl: 'http://localhost:8080', + adminUser: 'admin', + adminPassword: 'admin', + }); + + assert.equal(gotoCalls.length, 2); + assert.deepEqual(fills, [ + ['#user', 'admin'], + ['#password', 'admin'], + ['#user', 'admin'], + ['#password', 'admin'], + ]); + assert.deepEqual(waitForTimeoutCalls, [1_000]); + assert.deepEqual(clickCalls, [ + ['button', { name: 'Log in' }], + ['button', { name: 'Log in' }], + ]); + assert.equal(currentUrl, 'http://localhost:8080/index.php/dashboard/view'); +}); + +test('login fails after exhausting all retry attempts', async () => { + let currentUrl = 'http://localhost:8080/index.php/admin/authentication/sa/login'; + let attempts = 0; + + const page = { + async goto(url) { + currentUrl = url; + }, + async fill() {}, + waitForURL() { + return Promise.reject(new Error('timeout')); + }, + getByRole() { + return { + click: async () => { + attempts += 1; + currentUrl = 'http://localhost:8080/index.php/admin/authentication/sa/login'; + }, + }; + }, + async waitForLoadState() {}, + url() { + return currentUrl; + }, + async waitForTimeout() {}, + }; + + await assert.rejects( + () => login(page, { + baseUrl: 'http://localhost:8080', + adminUser: 'admin', + adminPassword: 'admin', + }), + /Login failed\./ + ); + + assert.equal(attempts, 3); +}); From 87aaa35e46970b7cd3f0be2de3fa699867282647 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 135/169] test: cover compose-aware screenshot defaults Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/config.test.mjs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/Node/Scripts/Screenshots/config.test.mjs b/tests/Node/Scripts/Screenshots/config.test.mjs index 46e2a1e..6fd6598 100644 --- a/tests/Node/Scripts/Screenshots/config.test.mjs +++ b/tests/Node/Scripts/Screenshots/config.test.mjs @@ -3,7 +3,11 @@ import test from 'node:test'; import { buildScreenshotCommand, createScreenshotConfig, + getDefaultAdminPassword, + getDefaultAdminUser, + getDefaultBaseUrl, getEnabledScreenshotTargets, + getEnvOrFallback, normalizeBaseUrl, parseHeadless, parseNonNegativeFloat, @@ -58,6 +62,26 @@ test('requireEnv throws when a required variable is blank', () => { ); }); +test('getEnvOrFallback returns the explicit value when present and the fallback otherwise', () => { + assert.equal(getEnvOrFallback({ FOO: 'bar' }, 'FOO', 'baz'), 'bar'); + assert.equal(getEnvOrFallback({ FOO: ' ' }, 'FOO', 'baz'), 'baz'); + assert.equal(getEnvOrFallback({}, 'FOO', 'baz'), 'baz'); +}); + +test('getDefaultBaseUrl and default admin credentials follow the compose defaults and overrides', () => { + assert.equal(getDefaultBaseUrl({}), 'http://127.0.0.1:18080'); + assert.equal(getDefaultAdminUser({}), 'admin'); + assert.equal(getDefaultAdminPassword({}), 'admin'); + + assert.equal(getDefaultBaseUrl({ + LIMESURVEY_STACK_PUBLIC_SCHEME: 'https', + LIMESURVEY_STACK_PUBLIC_HOST: 'example.test', + LIMESURVEY_STACK_HOST_PORT: '19443', + }), 'https://example.test:19443'); + assert.equal(getDefaultAdminUser({ LIMESURVEY_STACK_ADMIN_USER: 'alice' }), 'alice'); + assert.equal(getDefaultAdminPassword({ LIMESURVEY_STACK_ADMIN_PASSWORD: 'secret' }), 'secret'); +}); + test('createScreenshotConfig composes paths and reads environment values', () => { const config = createScreenshotConfig({ LIMESURVEY_BASE_URL: 'http://localhost:8080/', @@ -87,6 +111,16 @@ test('createScreenshotConfig composes paths and reads environment values', () => assert.deepEqual(config.previewViewport, { width: 1200, height: 1400 }); }); +test('createScreenshotConfig uses the local compose defaults for settings validation when no explicit env is provided', () => { + const config = createScreenshotConfig({}, '/tmp/repo'); + + assert.equal(config.baseUrl, 'http://127.0.0.1:18080'); + assert.equal(config.pluginName, 'LSTelegramNotify'); + assert.equal(config.adminUser, 'admin'); + assert.equal(config.adminPassword, 'admin'); + assert.equal(config.headless, true); +}); + test('createScreenshotConfig does not require admin credentials for preview-only validation', () => { const config = createScreenshotConfig({ SCREENSHOT_TARGETS: 'preview', From 2d3813d31029cd524a4c39b4ad114041b59f4b89 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 136/169] build: add devcontainer workspace image Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .devcontainer/Dockerfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .devcontainer/Dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..3478c3b --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,16 @@ +FROM mcr.microsoft.com/devcontainers/php:1-8.4-bookworm + +RUN rm -f /etc/apt/sources.list.d/yarn.list \ + && apt-get update \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get install -y --no-install-recommends ca-certificates curl gnupg \ + && mkdir -p /etc/apt/keyrings \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \ + | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main" \ + > /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends nodejs \ + && npm install -g npm@latest \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* From 9f326e77295a880042691de9ed319f8d176a8eea Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 137/169] build: add devcontainer configuration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .devcontainer/devcontainer.json | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8d3460f --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +{ + "name": "LSTelegramNotify", + "dockerComposeFile": [ + "../docker-compose.yml", + "docker-compose.extend.yml" + ], + "service": "workspace", + "runServices": [ + "lime-db", + "limesurvey", + "workspace" + ], + "workspaceFolder": "/workspaces/LSTelegramNotify", + "shutdownAction": "stopCompose", + "postCreateCommand": "composer install --no-interaction --prefer-dist && npm install", + "customizations": { + "vscode": { + "settings": { + "files.eol": "\n", + "terminal.integrated.defaultProfile.linux": "bash" + }, + "extensions": [ + "bmewburn.vscode-intelephense-client", + "ms-playwright.playwright", + "EditorConfig.EditorConfig" + ] + } + } +} From 3aca59326289ed0d86b3f555740e386578dabcf5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 138/169] build: add devcontainer compose override Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .devcontainer/docker-compose.extend.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .devcontainer/docker-compose.extend.yml diff --git a/.devcontainer/docker-compose.extend.yml b/.devcontainer/docker-compose.extend.yml new file mode 100644 index 0000000..a65e8b6 --- /dev/null +++ b/.devcontainer/docker-compose.extend.yml @@ -0,0 +1,21 @@ +services: + limesurvey: + environment: + PUBLIC_URL: http://limesurvey:8080 + BASE_URL: http://limesurvey:8080 + + workspace: + build: + context: . + dockerfile: .devcontainer/Dockerfile + depends_on: + - limesurvey + volumes: + - .:/workspaces/LSTelegramNotify:cached + working_dir: /workspaces/LSTelegramNotify + command: sleep infinity + environment: + LIMESURVEY_BASE_URL: http://limesurvey:8080 + LIMESURVEY_ADMIN_USER: admin + LIMESURVEY_ADMIN_PASSWORD: admin + PLAYWRIGHT_HEADLESS: 'true' From 8cfc7588636bf84104ea524f356d55d90c9ae507 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:36:27 -0300 Subject: [PATCH 139/169] build: add root LimeSurvey compose stack Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- docker-compose.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..021e6b5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,32 @@ +services: + limesurvey: + image: ${LIMESURVEY_STACK_IMAGE:-martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452} + depends_on: + - lime-db + environment: + DB_HOST: ${LIMESURVEY_STACK_DB_HOST:-lime-db} + DB_PORT: '${LIMESURVEY_STACK_DB_PORT:-3306}' + DB_NAME: ${LIMESURVEY_STACK_DB_NAME:-limesurvey} + DB_USERNAME: ${LIMESURVEY_STACK_DB_USERNAME:-limesurvey} + DB_PASSWORD: ${LIMESURVEY_STACK_DB_PASSWORD:-limesurvey} + ADMIN_USER: ${LIMESURVEY_STACK_ADMIN_USER:-admin} + ADMIN_NAME: ${LIMESURVEY_STACK_ADMIN_NAME:-admin} + ADMIN_EMAIL: ${LIMESURVEY_STACK_ADMIN_EMAIL:-admin@example.com} + ADMIN_PASSWORD: ${LIMESURVEY_STACK_ADMIN_PASSWORD:-admin} + PUBLIC_URL: '${LIMESURVEY_STACK_PUBLIC_SCHEME:-http}://${LIMESURVEY_STACK_PUBLIC_HOST:-127.0.0.1}:${LIMESURVEY_STACK_HOST_PORT:-18080}' + BASE_URL: '${LIMESURVEY_STACK_BASE_SCHEME:-http}://${LIMESURVEY_STACK_BASE_HOST:-127.0.0.1}:${LIMESURVEY_STACK_HOST_PORT:-18080}' + URL_FORMAT: ${LIMESURVEY_STACK_URL_FORMAT:-path} + SHOW_SCRIPT_NAME: '${LIMESURVEY_STACK_SHOW_SCRIPT_NAME:-true}' + ports: + - '${LIMESURVEY_STACK_HOST_PORT:-18080}:${LIMESURVEY_STACK_CONTAINER_PORT:-8080}' + volumes: + - '${LIMESURVEY_STACK_PLUGIN_SOURCE:-./}:${LIMESURVEY_STACK_PLUGIN_TARGET:-/var/www/html/plugins/LSTelegramNotify}' + + lime-db: + image: ${LIMESURVEY_STACK_DB_IMAGE:-mariadb:11.4} + environment: + MYSQL_USER: ${LIMESURVEY_STACK_DB_USERNAME:-limesurvey} + MYSQL_DATABASE: ${LIMESURVEY_STACK_DB_NAME:-limesurvey} + MYSQL_PASSWORD: ${LIMESURVEY_STACK_DB_PASSWORD:-limesurvey} + MYSQL_ROOT_PASSWORD: ${LIMESURVEY_STACK_DB_ROOT_PASSWORD:-root} + From 1d52c16a6f1fa37776d2a96aea83e9249beacbf0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:43:56 -0300 Subject: [PATCH 140/169] style: stabilize preview screenshot fonts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/assets/telegram-preview.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/screenshots/assets/telegram-preview.css b/scripts/screenshots/assets/telegram-preview.css index a585a75..b5da134 100644 --- a/scripts/screenshots/assets/telegram-preview.css +++ b/scripts/screenshots/assets/telegram-preview.css @@ -1,6 +1,6 @@ :root { color-scheme: light; - font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + font-family: sans-serif; } * { @@ -111,7 +111,7 @@ body { } .message-bubble code { - font-family: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; + font-family: monospace; font-size: 0.95em; border-radius: 8px; background: rgba(23, 48, 66, 0.08); From d73434bd3b8a5365021d708d261637eb829e9701 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:43:56 -0300 Subject: [PATCH 141/169] docs: refresh telegram preview screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/telegram_example.png | Bin 112772 -> 117161 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/telegram_example.png b/img/telegram_example.png index c129a9cfcfdb08a26abe9a9780336c9753a05bef..1f06f6899489eb49835722469776758a54c9f9b0 100644 GIT binary patch literal 117161 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�w-_XH)XW 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�W1LK5plbIhOV%skBO19( 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

    `YT#KWHs8;3Qg&RcSB%`CXXm9 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

  • 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 O3~XU%UTfxk|9=2j50|C@ literal 117161 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�w-_XH)XW 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�W1LK5plbIhOV%skBO19( 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 Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 156/169] chore: ignore integration test artifacts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 39dc349..73bae8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /vendor/ /vendor-bin/**/vendor/ +/tests/Integration/vendor/ +/tests/Integration/output/ /node_modules/ /.env /playwright-report/ From 1b347dfac6d077e5b937bb41d6eccce09390cdec Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 157/169] build: add disposable limesurvey image Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .docker/php/Dockerfile | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .docker/php/Dockerfile diff --git a/.docker/php/Dockerfile b/.docker/php/Dockerfile new file mode 100644 index 0000000..f77b9c3 --- /dev/null +++ b/.docker/php/Dockerfile @@ -0,0 +1,22 @@ +ARG LIMESURVEY_STACK_IMAGE=martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452 +FROM ${LIMESURVEY_STACK_IMAGE} + +USER root + +ENV COMPOSER_ALLOW_SUPERUSER=1 \ + COMPOSER_HOME=/tmp/composer-home \ + COMPOSER_CACHE_DIR=/tmp/composer-cache \ + HOME=/tmp/composer-home + +RUN apt-get update \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get install -y --no-install-recommends ca-certificates curl git unzip \ + && mkdir -p "$COMPOSER_HOME" "$COMPOSER_CACHE_DIR" \ + && chmod 1777 /tmp "$COMPOSER_HOME" "$COMPOSER_CACHE_DIR" \ + && git config --system --add safe.directory /var/www/html/plugins/LSTelegramNotify \ + && php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');" \ + && php /tmp/composer-setup.php --quiet --install-dir=/usr/local/bin --filename=composer \ + && rm /tmp/composer-setup.php \ + && composer --version \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* From cd6cfc695b1150940ffe815cddfba0d9af0f3d05 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 158/169] build: configure disposable integration stack Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- docker-compose.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 021e6b5..bc1703a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,14 @@ services: limesurvey: - image: ${LIMESURVEY_STACK_IMAGE:-martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452} + build: + context: ./.docker/php + dockerfile: Dockerfile + args: + LIMESURVEY_STACK_IMAGE: ${LIMESURVEY_STACK_IMAGE:-martialblog/limesurvey@sha256:4bfa6cac546fc95de6b26dc9afe118814df7941ebdec3f902f18cfbcd1478452} depends_on: - lime-db + extra_hosts: + - 'host.docker.internal:host-gateway' environment: DB_HOST: ${LIMESURVEY_STACK_DB_HOST:-lime-db} DB_PORT: '${LIMESURVEY_STACK_DB_PORT:-3306}' @@ -13,12 +19,31 @@ services: ADMIN_NAME: ${LIMESURVEY_STACK_ADMIN_NAME:-admin} ADMIN_EMAIL: ${LIMESURVEY_STACK_ADMIN_EMAIL:-admin@example.com} ADMIN_PASSWORD: ${LIMESURVEY_STACK_ADMIN_PASSWORD:-admin} + LIMESURVEY_BASE_URL: 'http://host.docker.internal:${LIMESURVEY_STACK_HOST_PORT:-18080}' + LIMESURVEY_DB_HOST: ${LIMESURVEY_STACK_DB_HOST:-lime-db} + LIMESURVEY_DB_PORT: '${LIMESURVEY_STACK_DB_PORT:-3306}' + LIMESURVEY_DB_NAME: ${LIMESURVEY_STACK_DB_NAME:-limesurvey} + LIMESURVEY_DB_USER: ${LIMESURVEY_STACK_DB_USERNAME:-limesurvey} + LIMESURVEY_DB_PASSWORD: ${LIMESURVEY_STACK_DB_PASSWORD:-limesurvey} + LIMESURVEY_ADMIN_USER: ${LIMESURVEY_STACK_ADMIN_USER:-admin} + LIMESURVEY_ADMIN_PASSWORD: ${LIMESURVEY_STACK_ADMIN_PASSWORD:-admin} + LIMESURVEY_PLUGIN_NAME: ${LIMESURVEY_PLUGIN_NAME:-LSTelegramNotify} + COMPOSER_ALLOW_SUPERUSER: '1' + COMPOSER_HOME: /tmp/composer-home + COMPOSER_CACHE_DIR: /tmp/composer-cache + HOME: /tmp/composer-home PUBLIC_URL: '${LIMESURVEY_STACK_PUBLIC_SCHEME:-http}://${LIMESURVEY_STACK_PUBLIC_HOST:-127.0.0.1}:${LIMESURVEY_STACK_HOST_PORT:-18080}' BASE_URL: '${LIMESURVEY_STACK_BASE_SCHEME:-http}://${LIMESURVEY_STACK_BASE_HOST:-127.0.0.1}:${LIMESURVEY_STACK_HOST_PORT:-18080}' URL_FORMAT: ${LIMESURVEY_STACK_URL_FORMAT:-path} SHOW_SCRIPT_NAME: '${LIMESURVEY_STACK_SHOW_SCRIPT_NAME:-true}' ports: - '${LIMESURVEY_STACK_HOST_PORT:-18080}:${LIMESURVEY_STACK_CONTAINER_PORT:-8080}' + healthcheck: + test: ['CMD', 'curl', '--silent', '--show-error', '--fail', 'http://127.0.0.1:8080/index.php/admin/authentication/sa/login'] + interval: 2s + timeout: 5s + retries: 60 + start_period: 5s volumes: - '${LIMESURVEY_STACK_PLUGIN_SOURCE:-./}:${LIMESURVEY_STACK_PLUGIN_TARGET:-/var/www/html/plugins/LSTelegramNotify}' From 5c0368d6fb6052dfa220e263f1afeb13a074fdab Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 159/169] fix: add survey plugin settings save endpoint Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- src/Plugin/LSTelegramNotifyPlugin.php | 125 +++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 3 deletions(-) diff --git a/src/Plugin/LSTelegramNotifyPlugin.php b/src/Plugin/LSTelegramNotifyPlugin.php index 1b97bc5..4ccf28a 100644 --- a/src/Plugin/LSTelegramNotifyPlugin.php +++ b/src/Plugin/LSTelegramNotifyPlugin.php @@ -10,6 +10,9 @@ class LSTelegramNotifyPlugin extends \PluginBase { + /** @var string[]|null */ + public $allowedPublicMethods = ['saveSurveyPluginSettings']; + /** * @var string */ @@ -23,7 +26,7 @@ class LSTelegramNotifyPlugin extends \PluginBase /** * @var string */ - protected $storage = 'DbStorage'; + protected $storage = 'LimeSurvey\\PluginManager\\DbStorage'; /** * @var array> @@ -396,6 +399,7 @@ public function beforeSurveySettings(): void $event = $this->getEvent(); $surveyId = (int) $event->get('survey'); $defaultTextHelp = $this->createDefaultTextHelpBuilder()->build($surveyId); + $this->registerSurveyPluginSettingsSaveWorkaround(); $event->set( "surveysettings.{$this->id}", [ @@ -527,16 +531,131 @@ public function beforeSurveySettings(): void ); } + public function saveSurveyPluginSettings($request): string + { + $surveyId = $request->getPost('sid', $request->getPost('surveyid')); + + if (!is_numeric($surveyId)) { + return $this->buildSurveyPluginSettingsSaveResponse(false, 'Missing survey id.', 400); + } + + $pluginSettings = $request->getPost('plugin', []); + + if (!is_array($pluginSettings)) { + $pluginSettings = []; + } + + try { + foreach ($pluginSettings as $pluginName => $settings) { + if (!is_array($settings)) { + continue; + } + + $this->dispatchSurveyPluginSettings( + (string) $pluginName, + $settings, + (int) $surveyId + ); + } + } catch (\Throwable $exception) { + return $this->buildSurveyPluginSettingsSaveResponse( + false, + $exception->getMessage(), + 500 + ); + } + + return $this->buildSurveyPluginSettingsSaveResponse(true); + } + /** * @return void */ public function newSurveySettings(): void { $event = $this->getEvent(); + $settings = $event->get('settings'); + $surveyId = $event->get('survey'); + + if (!is_iterable($settings)) { + return; + } + + if (!is_int($surveyId) && !is_string($surveyId) && !is_float($surveyId)) { + return; + } + + foreach ($settings as $name => $value) { + $this->set($name, $value, 'Survey', (int) $surveyId); + } + } + + protected function registerSurveyPluginSettingsSaveWorkaround(): void + { + $saveUrl = \App()->createAbsoluteUrl( + '/admin/pluginhelper/sa/ajax', + [ + 'plugin' => static::$name, + 'method' => 'saveSurveyPluginSettings', + ] + ); + $encodedSaveUrl = json_encode($saveUrl); - foreach ($event->get('settings') as $name => $value) { - $this->set($name, $value, 'Survey', $event->get('survey')); + if ($encodedSaveUrl === false) { + return; } + + \Yii::app()->getClientScript()->registerScript( + 'ls-telegram-notify-survey-plugin-save-workaround', + << $settings + */ + protected function dispatchSurveyPluginSettings(string $pluginName, array $settings, int $surveyId): void + { + $event = new \PluginEvent('newSurveySettings'); + $event->set('settings', $settings); + $event->set('survey', $surveyId); + + \Yii::app()->getPluginManager()->dispatchEvent($event, $pluginName); + } + + protected function buildSurveyPluginSettingsSaveResponse(bool $success, string $message = '', int $statusCode = 200): string + { + http_response_code($statusCode); + + $response = ['success' => $success]; + + if ($message !== '') { + $response['message'] = $message; + } + + $json = json_encode($response); + + if ($json === false) { + return '{"success":false,"message":"Could not encode response."}'; + } + + return $json; } private function getCsv(int $surveyId): string From 0e0e26bbc6206f59067e5e18860588cdcd7ed726 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 160/169] test: stub plugin manager runtime access Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/AppRuntimeMock.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/Support/Stubs/AppRuntimeMock.php b/tests/Support/Stubs/AppRuntimeMock.php index f037219..3d3d357 100644 --- a/tests/Support/Stubs/AppRuntimeMock.php +++ b/tests/Support/Stubs/AppRuntimeMock.php @@ -4,6 +4,8 @@ class AppRuntimeMock { public static $createAbsoluteUrlHandler; + public static $pluginManager; + public function createAbsoluteUrl($route, array $params = []): string { if (is_callable(self::$createAbsoluteUrlHandler)) { @@ -14,6 +16,15 @@ public function createAbsoluteUrl($route, array $params = []): string return 'https://example.test' . $route . ($query !== '' ? '?' . $query : ''); } + public function getPluginManager() + { + return self::$pluginManager ?? new class { + public function dispatchEvent($event, $plugin = null): void + { + } + }; + } + public function loadHelper($name): void { } From 95628f5650b84035622f5ed6f9b7cbf59207400d Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 161/169] test: stub yii client script registration Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Support/Stubs/Yii.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Support/Stubs/Yii.php b/tests/Support/Stubs/Yii.php index 983bc30..3135b25 100644 --- a/tests/Support/Stubs/Yii.php +++ b/tests/Support/Stubs/Yii.php @@ -1,7 +1,14 @@ $script, + 'position' => $position, + ]; + } + }; + } }; } } From cf66fb02073e5a2aede9a3e61bf05af9e467bb88 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 162/169] test: cover survey plugin settings save workaround Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Plugin/LSTelegramNotifyPluginTest.php | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php index ed0c437..2b0b513 100644 --- a/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php +++ b/tests/Unit/Plugin/LSTelegramNotifyPluginTest.php @@ -15,7 +15,9 @@ protected function setUp(): void { \Survey::$findByPkHandler = null; \AppRuntimeMock::$createAbsoluteUrlHandler = null; + \AppRuntimeMock::$pluginManager = null; \FieldMapRuntimeMock::$createFieldMapHandler = null; + \Yii::$registeredScripts = []; \viewHelper::$getFieldTextHandler = null; \viewHelper::$getFieldCodeHandler = null; } @@ -363,6 +365,9 @@ public function testBeforeSurveySettingsPublishesCurrentValuesAndCheckboxDefault $this->assertStringContainsString('CONTATO[EMAIL]', $definition['settings']['DefaultText']['help']); $this->assertStringContainsString('E-mail para contato', $definition['settings']['DefaultText']['help']); $this->assertStringContainsString('NOME', $definition['settings']['DefaultText']['help']); + $this->assertArrayHasKey('ls-telegram-notify-survey-plugin-save-workaround', \Yii::$registeredScripts); + $this->assertStringContainsString('pluginhelper\\/sa\\/ajax', \Yii::$registeredScripts['ls-telegram-notify-survey-plugin-save-workaround']['script']); + $this->assertStringContainsString('saveSurveyPluginSettings', \Yii::$registeredScripts['ls-telegram-notify-survey-plugin-save-workaround']['script']); } public function testNewSurveySettingsPersistsEachIncomingSurveySetting(): void @@ -402,6 +407,75 @@ public function testNewSurveySettingsPersistsEachIncomingSurveySetting(): void ], $plugin->getSavedSettings()); } + public function testPluginUsesFullyQualifiedDbStorageClass(): void + { + $plugin = $this->newPlugin(); + $storageProperty = new ReflectionProperty($plugin, 'storage'); + + $this->assertSame( + 'LimeSurvey\\PluginManager\\DbStorage', + $storageProperty->getValue($plugin) + ); + } + + public function testSaveSurveyPluginSettingsDispatchesPostedPluginSettings(): void + { + $plugin = new class extends LSTelegramNotifyPluginDouble { + /** @var array, surveyId: int}> */ + public array $dispatchCalls = []; + + protected function dispatchSurveyPluginSettings(string $pluginName, array $settings, int $surveyId): void + { + $this->dispatchCalls[] = [ + 'pluginName' => $pluginName, + 'settings' => $settings, + 'surveyId' => $surveyId, + ]; + } + }; + + $request = new class { + public function getPost(string $name, $default = null) + { + $values = [ + 'sid' => '77', + 'plugin' => [ + 'LSTelegramNotify' => [ + 'DefaultText' => 'Mensagem survey', + 'SendMessage' => '1', + ], + 'OtherPlugin' => [ + 'Enabled' => '1', + ], + ], + ]; + + return $values[$name] ?? $default; + } + }; + + $response = $plugin->saveSurveyPluginSettings($request); + + $this->assertJson($response); + $this->assertSame([ + [ + 'pluginName' => 'LSTelegramNotify', + 'settings' => [ + 'DefaultText' => 'Mensagem survey', + 'SendMessage' => '1', + ], + 'surveyId' => 77, + ], + [ + 'pluginName' => 'OtherPlugin', + 'settings' => [ + 'Enabled' => '1', + ], + 'surveyId' => 77, + ], + ], $plugin->dispatchCalls); + } + private function newPlugin(): \LSTelegramNotifyPluginDouble { /** @var \LSTelegramNotifyPluginDouble $plugin */ From f47deee2174d18aeb5f87663e0aa646ea71be6cf Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 163/169] test: define integration composer project Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Integration/composer.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/Integration/composer.json diff --git a/tests/Integration/composer.json b/tests/Integration/composer.json new file mode 100644 index 0000000..a874d48 --- /dev/null +++ b/tests/Integration/composer.json @@ -0,0 +1,28 @@ +{ + "name": "librecodecoop/lstelegramnotify-integration-tests", + "description": "Behat integration tests for the LSTelegramNotify LimeSurvey plugin", + "type": "project", + "autoload": { + "psr-4": { + "LSTelegramNotify\\Tests\\Integration\\": "src/" + } + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pdo": "*", + "ext-pdo_mysql": "*" + }, + "require-dev": { + "behat/behat": "^3.16", + "guzzlehttp/guzzle": "^7.10", + "jarnaiz/behat-junit-formatter": "^1.3" + }, + "config": { + "sort-packages": true + }, + "scripts": { + "test": "php vendor/bin/behat --config config/behat.yml -f pretty --colors", + "test:junit": "php vendor/bin/behat --config config/behat.yml -f pretty --colors -f junit" + } +} From 98f57c3bb652cea268f2f24d4fafb340f9d383d7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 164/169] test: lock integration dependencies Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Integration/composer.lock | 2733 +++++++++++++++++++++++++++++++ 1 file changed, 2733 insertions(+) create mode 100644 tests/Integration/composer.lock diff --git a/tests/Integration/composer.lock b/tests/Integration/composer.lock new file mode 100644 index 0000000..f709dde --- /dev/null +++ b/tests/Integration/composer.lock @@ -0,0 +1,2733 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "87e24ef0945a1ce2dc6168b775ee62bc", + "packages": [], + "packages-dev": [ + { + "name": "behat/behat", + "version": "v3.32.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Behat.git", + "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Behat/zipball/b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", + "reference": "b9b89cf7a3b24c04d6e2d2865ed51bc5e1700de9", + "shasum": "" + }, + "require": { + "behat/gherkin": "^4.17.0", + "composer-runtime-api": "^2.2", + "composer/xdebug-handler": "^1.4 || ^2.0 || ^3.0", + "ext-mbstring": "*", + "nikic/php-parser": "^4.19.2 || ^5.2", + "php": ">=8.2 <8.6", + "psr/container": "^1.0 || ^2.0", + "symfony/config": "^5.4 || ^6.4 || ^7.0", + "symfony/console": "^5.4.9 || ^6.4 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.4 || ^7.0", + "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", + "symfony/translation": "^5.4 || ^6.4 || ^7.0", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + }, + "require-dev": { + "opis/json-schema": "^2.5", + "php-cs-fixer/shim": "^3.89", + "phpstan/phpstan": "2.1.46", + "phpunit/phpunit": "^9.6", + "rector/rector": "2.3.9", + "sebastian/diff": "^4.0", + "symfony/filesystem": "^5.4 || ^6.4 || ^7.0", + "symfony/polyfill-php84": "^1.31", + "symfony/process": "^5.4 || ^6.4 || ^7.0" + }, + "suggest": { + "ext-dom": "Needed to output test results in JUnit format." + }, + "bin": [ + "bin/behat" + ], + "type": "library", + "autoload": { + "psr-4": { + "Behat\\Hook\\": "src/Behat/Hook/", + "Behat\\Step\\": "src/Behat/Step/", + "Behat\\Behat\\": "src/Behat/Behat/", + "Behat\\Config\\": "src/Behat/Config/", + "Behat\\Testwork\\": "src/Behat/Testwork/", + "Behat\\Transformation\\": "src/Behat/Transformation/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Scenario-oriented BDD framework for PHP", + "homepage": "https://behat.org/", + "keywords": [ + "Agile", + "BDD", + "ScenarioBDD", + "Scrum", + "StoryBDD", + "User story", + "business", + "development", + "documentation", + "examples", + "symfony", + "testing" + ], + "support": { + "issues": "https://github.com/Behat/Behat/issues", + "source": "https://github.com/Behat/Behat/tree/v3.32.0" + }, + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2026-06-20T08:34:52+00:00" + }, + { + "name": "behat/gherkin", + "version": "v4.17.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "reference": "5c8b3149fac39b5a79942b64eeec59a5ee4001c0", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "php": ">=8.1 <8.6" + }, + "require-dev": { + "cucumber/gherkin-monorepo": "dev-gherkin-v39.1.0", + "friendsofphp/php-cs-fixer": "^3.77", + "mikey179/vfsstream": "^1.6", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^2", + "phpstan/phpstan-phpunit": "^2", + "phpunit/phpunit": "^10.5", + "symfony/yaml": "^5.4 || ^6.4 || ^7.0" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Gherkin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "https://everzet.com" + } + ], + "description": "Gherkin DSL parser for PHP", + "homepage": "https://behat.org/", + "keywords": [ + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" + ], + "support": { + "issues": "https://github.com/Behat/Gherkin/issues", + "source": "https://github.com/Behat/Gherkin/tree/v4.17.0" + }, + "funding": [ + { + "url": "https://github.com/acoulton", + "type": "github" + }, + { + "url": "https://github.com/carlos-granados", + "type": "github" + }, + { + "url": "https://github.com/stof", + "type": "github" + } + ], + "time": "2026-05-18T09:33:47+00:00" + }, + { + "name": "composer/pcre", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<2.2.2" + }, + "require-dev": { + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2026-06-07T11:47:49+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.15.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc", + "reference": "ae311b8f045ea93ce7b1c9cdb7cec06c53f944bc", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^2.5.2", + "guzzlehttp/psr7": "^2.13", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.15.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2026-08-05T19:48:21+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "2823687acff28b2dbe67b2508a6b300e2c3fa4ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/2823687acff28b2dbe67b2508a6b300e2c3fa4ce", + "reference": "2823687acff28b2dbe67b2508a6b300e2c3fa4ce", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2026-08-05T19:30:54+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.13.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dad89620b7a6edb60c15858442eb2e408b45d8f4", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.13.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2026-07-16T22:23:49+00:00" + }, + { + "name": "jarnaiz/behat-junit-formatter", + "version": "v1.3.2", + "source": { + "type": "git", + "url": "https://github.com/j-arnaiz/behat-junit-formatter.git", + "reference": "2f80b3881e04d3cf43e05ab821c0e80675a9846d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/j-arnaiz/behat-junit-formatter/zipball/2f80b3881e04d3cf43e05ab821c0e80675a9846d", + "reference": "2f80b3881e04d3cf43e05ab821c0e80675a9846d", + "shasum": "" + }, + "require": { + "behat/behat": "~3.0", + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "v1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "jarnaiz\\JUnitFormatter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "authors": [ + { + "name": "Jesús Arnaiz", + "email": "j.arnaiz@gmail.com" + } + ], + "description": "Behat 3 JUnit xml formatter", + "support": { + "issues": "https://github.com/j-arnaiz/behat-junit-formatter/issues", + "source": "https://github.com/j-arnaiz/behat-junit-formatter/tree/master" + }, + "time": "2016-01-26T17:05:07+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.8.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" + }, + "time": "2026-07-04T14:30:18+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/config", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "b18e33881ef402ad940f36e85935420624009bf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/b18e33881ef402ad940f36e85935420624009bf4", + "reference": "b18e33881ef402ad940f36e85935420624009bf4", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^7.1|^8.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "require-dev": { + "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|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v7.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T12:54:40+00:00" + }, + { + "name": "symfony/console", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "088ec6fe0ef6819cbc301174093b6bfa4ad26930" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/088ec6fe0ef6819cbc301174093b6bfa4ad26930", + "reference": "088ec6fe0ef6819cbc301174093b6bfa4ad26930", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2|^8.0" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^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": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v7.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-27T13:51:00+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "b7825671c553af46a98c744e23f37f972aee6427" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b7825671c553af46a98c744e23f37f972aee6427", + "reference": "b7825671c553af46a98c744e23f37f972aee6427", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^3.6", + "symfony/var-exporter": "^6.4.20|^7.2.5|^8.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.4", + "symfony/finder": "<6.4", + "symfony/yaml": "<6.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T08:40:50+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "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": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "336e7f3b9e95aba04f93ea9143920c2186abfbb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/336e7f3b9e95aba04f93ea9143920c2186abfbb9", + "reference": "336e7f3b9e95aba04f93ea9143920c2186abfbb9", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "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|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides 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.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-21T15:13:06+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/17856b7a222664a26a5ea1cb06ee0721c2438217", + "reference": "17856b7a222664a26a5ea1cb06ee0721c2438217", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-22T15:42:13+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/polyfill-deepclone", + "version": "v1.40.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-deepclone.git", + "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-deepclone/zipball/dca4ccba5f360070b574414dce4c1e7a559844fa", + "reference": "dca4ccba5f360070b574414dce4c1e7a559844fa", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "provide": { + "ext-deepclone": "*" + }, + "suggest": { + "ext-deepclone": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\DeepClone\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the deepclone extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "deepclone", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-deepclone/tree/v1.40.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-12T07:27:17+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T08:25:59+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-25T13:48:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.38.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-27T06:59:30+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.37.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-04-10T16:19:22+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", + "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-16T09:55:08+00:00" + }, + { + "name": "symfony/string", + "version": "v8.1.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "reference": "286a76b7255e5cc4bf0101a0bc5388ecf1c38ccc", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v8.1.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-28T07:35:25+00:00" + }, + { + "name": "symfony/translation", + "version": "v7.4.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", + "reference": "a1af4dacb24eb7ef4f1ca71b94da8ddbce572281", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5.3|^3.3" + }, + "conflict": { + "nikic/php-parser": "<5.0", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^5.0", + "psr/log": "^1|^2|^3", + "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|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^6.4|^7.0|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v7.4.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-06T09:33:19+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621", + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-06-05T06:23:12+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v8.1.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "766dac532a04d8980b4d83183fd3d1ea284bac11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/766dac532a04d8980b4d83183fd3d1ea284bac11", + "reference": "766dac532a04d8980b4d83183fd3d1ea284bac11", + "shasum": "" + }, + "require": { + "php": ">=8.4.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-deepclone": "^1.40" + }, + "require-dev": { + "symfony/property-access": "^7.4|^8.0", + "symfony/serializer": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to export, instantiate, hydrate, clone and lazy-load PHP objects", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "deep-clone", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v8.1.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-29T16:43:23+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.4.15", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "e101850ded5d2c0d44bf32abb8996404afec2dec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e101850ded5d2c0d44bf32abb8996404afec2dec", + "reference": "e101850ded5d2c0d44bf32abb8996404afec2dec", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0|^8.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.4.15" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-07-21T15:13:06+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "ext-dom": "*", + "ext-json": "*", + "ext-pdo": "*", + "ext-pdo_mysql": "*" + }, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} From fe1ab5a0e9ff9a437776000bf5ce9ca378a75cf2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 165/169] test: configure behat integration suite Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Integration/config/behat.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tests/Integration/config/behat.yml diff --git a/tests/Integration/config/behat.yml b/tests/Integration/config/behat.yml new file mode 100644 index 0000000..8737adc --- /dev/null +++ b/tests/Integration/config/behat.yml @@ -0,0 +1,11 @@ +default: + suites: + default: + contexts: + - LSTelegramNotify\Tests\Integration\Context\PluginSettingsApiContext + paths: + - '%paths.base%/../features' + extensions: + jarnaiz\JUnitFormatter\JUnitFormatterExtension: + filename: report.xml + outputDir: '%paths.base%/../output/' From b2e9d4420ce9d6be2f22a8e1a0b28497f3e2973c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 166/169] test: add plugin settings integration scenarios Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../features/plugin-settings-api.feature | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/Integration/features/plugin-settings-api.feature diff --git a/tests/Integration/features/plugin-settings-api.feature b/tests/Integration/features/plugin-settings-api.feature new file mode 100644 index 0000000..548f921 --- /dev/null +++ b/tests/Integration/features/plugin-settings-api.feature @@ -0,0 +1,31 @@ +Feature: Save survey plugin settings through the plugin helper API + In order to persist survey-specific Telegram settings reliably + As a LimeSurvey administrator + I want the LSTelegramNotify save API to return clear results and store the posted values + + Background: + Given I am authenticated in LimeSurvey admin + + Scenario: Persist survey-specific Telegram settings + Given I create a minimal survey with a unique survey id + When I send a POST request to "/index.php/admin/pluginhelper/sa/ajax/plugin//method/saveSurveyPluginSettings" with form data: + | sid | | + | plugin[][Enable] | 1 | + | plugin[][SendMessage] | 1 | + | plugin[][ParseMode] | HTML | + | plugin[][DefaultText] | Survey -> {{G01Q02.answer}} | + Then the response code should be 200 + And the JSON response should contain: + | success | true | + And the survey plugin setting "Enable" for "" should equal "1" + And the survey plugin setting "SendMessage" for "" should equal "1" + And the survey plugin setting "ParseMode" for "" should equal "HTML" + And the survey plugin setting "DefaultText" for "" should equal "Survey -> {{G01Q02.answer}}" + + Scenario: Reject a save without a survey id + When I send a POST request to "/index.php/admin/pluginhelper/sa/ajax/plugin//method/saveSurveyPluginSettings" with form data: + | plugin[][DefaultText] | Missing survey id | + Then the response code should be 400 + And the JSON response should contain: + | success | false | + | message | Missing survey id. | From 742c5ddb727ab9a1ec97ebf726340e7093c97f1a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:37 -0300 Subject: [PATCH 167/169] test: add plugin settings integration context Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../src/Context/PluginSettingsApiContext.php | 467 ++++++++++++++++++ 1 file changed, 467 insertions(+) create mode 100644 tests/Integration/src/Context/PluginSettingsApiContext.php diff --git a/tests/Integration/src/Context/PluginSettingsApiContext.php b/tests/Integration/src/Context/PluginSettingsApiContext.php new file mode 100644 index 0000000..2b6bd59 --- /dev/null +++ b/tests/Integration/src/Context/PluginSettingsApiContext.php @@ -0,0 +1,467 @@ + + */ + private array $fields = []; + + #[BeforeScenario] + public function resetScenarioState(): void + { + $this->cookieJar = new CookieJar(); + $this->client = new Client([ + 'base_uri' => rtrim($this->getEnv('LIMESURVEY_BASE_URL', 'http://127.0.0.1:8080'), '/') . '/', + 'cookies' => $this->cookieJar, + 'http_errors' => false, + 'allow_redirects' => true, + 'headers' => [ + 'Accept' => 'application/json, text/html;q=0.9, */*;q=0.8', + ], + ]); + $this->pdo = null; + $this->response = null; + $this->csrfToken = ''; + $this->fields = [ + 'PLUGIN_NAME' => $this->getEnv('LIMESURVEY_PLUGIN_NAME', 'LSTelegramNotify'), + ]; + $this->ensurePluginIsRegistered(); + } + + #[Given('I am authenticated in LimeSurvey admin')] + public function iAmAuthenticatedInLimeSurveyAdmin(): void + { + $loginPage = $this->client->get('index.php/admin/authentication/sa/login'); + $this->assertStatusCode(200, $loginPage->getStatusCode(), 'Could not open the LimeSurvey login page.'); + $this->csrfToken = $this->extractCsrfToken((string) $loginPage->getBody()); + + $this->response = $this->client->post('index.php/admin/authentication/sa/login', [ + 'form_params' => [ + 'YII_CSRF_TOKEN' => $this->csrfToken, + 'authMethod' => 'Authdb', + 'user' => $this->getEnv('LIMESURVEY_ADMIN_USER', $this->getEnv('LIMESURVEY_STACK_ADMIN_USER', 'admin')), + 'password' => $this->getEnv('LIMESURVEY_ADMIN_PASSWORD', $this->getEnv('LIMESURVEY_STACK_ADMIN_PASSWORD', 'admin')), + 'loginlang' => 'en', + 'action' => 'login', + 'login_submit' => 'login', + ], + ]); + + $adminPage = $this->client->get('index.php/admin/index'); + $this->assertStatusCode(200, $adminPage->getStatusCode(), 'Could not open the LimeSurvey admin page after login.'); + $adminPageBody = (string) $adminPage->getBody(); + + if (str_contains($adminPageBody, 'id="loginform"')) { + throw new \RuntimeException('LimeSurvey admin login failed.'); + } + + $this->csrfToken = $this->extractCsrfToken($adminPageBody); + $this->response = $adminPage; + } + + #[Given('I create a minimal survey with a unique survey id')] + #[Given('I use a unique survey id')] + public function iCreateAMinimalSurveyWithAUniqueSurveyId(): void + { + do { + $surveyId = random_int(200000000, 2147483647); + } while ($this->surveyExists($surveyId)); + + $this->createMinimalSurvey($surveyId); + $this->fields['SURVEY_ID'] = (string) $surveyId; + } + + #[When('I send a POST request to :path with form data:')] + public function iSendAPostRequestToWithFormData(string $path, TableNode $body): void + { + $formParams = []; + + foreach ($body->getRowsHash() as $key => $value) { + $this->assignFormValue( + $formParams, + $this->parseText($key), + $this->parseText($value) + ); + } + + if ($this->csrfToken !== '' && !array_key_exists('YII_CSRF_TOKEN', $formParams)) { + $formParams['YII_CSRF_TOKEN'] = $this->csrfToken; + } + + $this->response = $this->client->post(ltrim($this->parseText($path), '/'), [ + 'allow_redirects' => false, + 'form_params' => $formParams, + 'headers' => [ + 'Accept' => 'application/json', + ], + ]); + } + + #[Then('the response code should be :statusCode')] + public function theResponseCodeShouldBe(int $statusCode): void + { + $response = $this->requireResponse(); + $this->assertStatusCode($statusCode, $response->getStatusCode(), 'Unexpected response status code.'); + } + + #[Then('the JSON response should contain:')] + public function theJsonResponseShouldContain(TableNode $expectedRows): void + { + $payload = $this->decodeJsonResponse(); + + foreach ($expectedRows->getRowsHash() as $key => $expectedValue) { + $normalizedKey = $this->parseText($key); + + if (!array_key_exists($normalizedKey, $payload)) { + throw new \RuntimeException(sprintf('JSON response does not contain key "%s".', $normalizedKey)); + } + + $expected = $this->normalizeExpectedValue($this->parseText($expectedValue)); + $actual = $payload[$normalizedKey]; + + if ($actual !== $expected) { + throw new \RuntimeException(sprintf( + 'Unexpected JSON value for key "%s". Expected %s, got %s.', + $normalizedKey, + $this->exportValue($expected), + $this->exportValue($actual) + )); + } + } + } + + #[Then('the survey plugin setting :settingName for :surveyId should equal :expectedValue')] + public function theSurveyPluginSettingForShouldEqual(string $settingName, string $surveyId, string $expectedValue): void + { + $statement = $this->getDatabaseConnection()->prepare( + 'SELECT ps.`value` ' + . 'FROM `lime_plugin_settings` ps ' + . 'INNER JOIN `lime_plugins` p ON p.`id` = ps.`plugin_id` ' + . 'WHERE p.`name` = :pluginName ' + . ' AND ps.`model` = :model ' + . ' AND ps.`model_id` = :surveyId ' + . ' AND ps.`key` = :settingName ' + . 'LIMIT 1' + ); + $statement->execute([ + 'pluginName' => $this->fields['PLUGIN_NAME'], + 'model' => 'Survey', + 'surveyId' => (int) $this->parseText($surveyId), + 'settingName' => $this->parseText($settingName), + ]); + + $storedValue = $statement->fetchColumn(); + + if ($storedValue === false) { + throw new \RuntimeException(sprintf( + 'Could not find persisted setting "%s" for survey %s.', + $settingName, + $this->parseText($surveyId) + )); + } + + $actualValue = $this->decodeStoredSettingValue((string) $storedValue); + $expected = $this->parseText($expectedValue); + + if ($actualValue !== $expected) { + throw new \RuntimeException(sprintf( + 'Unexpected persisted value for setting "%s". Expected %s, got %s.', + $settingName, + $this->exportValue($expected), + $this->exportValue($actualValue) + )); + } + } + + private function requireResponse(): ResponseInterface + { + if ($this->response === null) { + throw new \RuntimeException('No HTTP response is available yet.'); + } + + return $this->response; + } + + /** + * @return array + */ + private function decodeJsonResponse(): array + { + $body = $this->getResponseBody(); + $decoded = json_decode($body, true); + + if (!is_array($decoded)) { + throw new \RuntimeException(sprintf('Response body is not valid JSON: %s', $body)); + } + + return $decoded; + } + + private function getResponseBody(): string + { + $body = $this->requireResponse()->getBody(); + $body->rewind(); + + return $body->getContents(); + } + + private function extractCsrfToken(string $html): string + { + $patterns = [ + '/]*name="YII_CSRF_TOKEN"[^>]*value="([^"]+)"/i', + '/]*value="([^"]+)"[^>]*name="YII_CSRF_TOKEN"/i', + '/"csrfToken"\s*:\s*"([^"]+)"/i', + ]; + + foreach ($patterns as $pattern) { + if (preg_match($pattern, $html, $matches) === 1) { + return html_entity_decode($matches[1], ENT_QUOTES); + } + } + + throw new \RuntimeException('Could not extract the LimeSurvey CSRF token from the HTML response.'); + } + + /** + * @param array $formParams + */ + private function assignFormValue(array &$formParams, string $key, string $value): void + { + if (!str_contains($key, '[')) { + $formParams[$key] = $value; + return; + } + + preg_match_all('/([^\[\]]+)/', $key, $matches); + $segments = $matches[1]; + + if ($segments === []) { + $formParams[$key] = $value; + return; + } + + $cursor = &$formParams; + $lastIndex = count($segments) - 1; + + foreach ($segments as $index => $segment) { + if ($index === $lastIndex) { + $cursor[$segment] = $value; + return; + } + + if (!isset($cursor[$segment]) || !is_array($cursor[$segment])) { + $cursor[$segment] = []; + } + + $cursor = &$cursor[$segment]; + } + } + + private function parseText(string $text): string + { + return (string) preg_replace_callback('/<([A-Z0-9_]+)>/', function (array $matches): string { + $field = $matches[1]; + + if (!array_key_exists($field, $this->fields)) { + throw new \RuntimeException(sprintf('Unknown placeholder <%s>.', $field)); + } + + return $this->fields[$field]; + }, $text); + } + + private function normalizeExpectedValue(string $value): bool|string|null + { + return match (strtolower($value)) { + 'true' => true, + 'false' => false, + 'null' => null, + default => $value, + }; + } + + private function decodeStoredSettingValue(string $storedValue): string + { + $decoded = json_decode($storedValue, true); + + if (json_last_error() === JSON_ERROR_NONE && is_string($decoded)) { + return $decoded; + } + + return $storedValue; + } + + private function ensurePluginIsRegistered(): void + { + $connection = $this->getDatabaseConnection(); + $pluginName = $this->fields['PLUGIN_NAME']; + $pluginType = $this->getEnv('LIMESURVEY_STACK_PLUGIN_DB_TYPE', 'user'); + $pluginTarget = $this->getPluginTarget(); + $version = $this->resolvePluginVersion($pluginTarget); + + $select = $connection->prepare('SELECT `id` FROM `lime_plugins` WHERE `name` = :name LIMIT 1'); + $select->execute(['name' => $pluginName]); + $pluginId = $select->fetchColumn(); + + if ($pluginId === false) { + $insert = $connection->prepare( + 'INSERT INTO `lime_plugins` (`name`, `plugin_type`, `active`, `priority`, `version`, `load_error`, `load_error_message`) ' + . 'VALUES (:name, :pluginType, 1, 0, :version, 0, "")' + ); + $insert->execute([ + 'name' => $pluginName, + 'pluginType' => $pluginType, + 'version' => $version, + ]); + + return; + } + + $update = $connection->prepare( + 'UPDATE `lime_plugins` ' + . 'SET `plugin_type` = :pluginType, `active` = 1, `priority` = 0, `version` = :version, `load_error` = 0, `load_error_message` = "" ' + . 'WHERE `id` = :id' + ); + $update->execute([ + 'id' => $pluginId, + 'pluginType' => $pluginType, + 'version' => $version, + ]); + } + + private function getPluginTarget(): string + { + return rtrim($this->getEnv('LIMESURVEY_STACK_PLUGIN_TARGET', '/var/www/html/plugins/LSTelegramNotify'), '/'); + } + + private function resolvePluginVersion(string $pluginTarget): string + { + $configFile = $pluginTarget . '/config.xml'; + + if (!is_file($configFile)) { + return '0.0.0'; + } + + $config = simplexml_load_file($configFile); + + if ($config === false || !isset($config->metadata->version)) { + return '0.0.0'; + } + + return (string) $config->metadata->version; + } + + private function getDatabaseConnection(): \PDO + { + if ($this->pdo instanceof \PDO) { + return $this->pdo; + } + + try { + $this->pdo = new \PDO( + sprintf( + 'mysql:host=%s;port=%s;dbname=%s;charset=utf8mb4', + $this->getEnv('LIMESURVEY_DB_HOST', $this->getEnv('LIMESURVEY_STACK_DB_HOST', 'lime-db')), + $this->getEnv('LIMESURVEY_DB_PORT', $this->getEnv('LIMESURVEY_STACK_DB_PORT', '3306')), + $this->getEnv('LIMESURVEY_DB_NAME', $this->getEnv('LIMESURVEY_STACK_DB_NAME', 'limesurvey')) + ), + $this->getEnv('LIMESURVEY_DB_USER', $this->getEnv('LIMESURVEY_STACK_DB_USERNAME', 'limesurvey')), + $this->getEnv('LIMESURVEY_DB_PASSWORD', $this->getEnv('LIMESURVEY_STACK_DB_PASSWORD', 'limesurvey')), + [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION] + ); + } catch (\PDOException $exception) { + throw new \RuntimeException('Could not connect to the LimeSurvey integration database.', 0, $exception); + } + + return $this->pdo; + } + + private function surveyExists(int $surveyId): bool + { + $statement = $this->getDatabaseConnection()->prepare( + 'SELECT 1 FROM `lime_surveys` WHERE `sid` = :surveyId LIMIT 1' + ); + $statement->execute(['surveyId' => $surveyId]); + + return $statement->fetchColumn() !== false; + } + + private function createMinimalSurvey(int $surveyId): void + { + $connection = $this->getDatabaseConnection(); + $timestamp = gmdate('Y-m-d H:i:s'); + $title = sprintf('Integration survey %d', $surveyId); + + $insertSurvey = $connection->prepare( + 'INSERT INTO `lime_surveys` (`sid`, `owner_id`, `gsid`, `admin`, `active`, `adminemail`, `anonymized`, `format`, `template`, `language`, `datestamp`, `datecreated`, `lastmodified`) ' + . 'VALUES (:sid, :ownerId, 1, :adminName, "N", :adminEmail, "N", "G", "default", "en", "Y", :dateCreated, :lastModified)' + ); + $insertSurvey->execute([ + 'sid' => $surveyId, + 'ownerId' => 1, + 'adminName' => 'Administrator', + 'adminEmail' => 'admin@example.com', + 'dateCreated' => $timestamp, + 'lastModified' => $timestamp, + ]); + + $insertLanguageSettings = $connection->prepare( + 'INSERT INTO `lime_surveys_languagesettings` (`surveyls_survey_id`, `surveyls_language`, `surveyls_title`) ' + . 'VALUES (:surveyId, "en", :title)' + ); + $insertLanguageSettings->execute([ + 'surveyId' => $surveyId, + 'title' => $title, + ]); + } + + private function getEnv(string $name, string $default): string + { + $value = getenv($name); + + if ($value === false || $value === '') { + return $default; + } + + return $value; + } + + private function assertStatusCode(int $expected, int $actual, string $message): void + { + if ($expected !== $actual) { + throw new \RuntimeException(sprintf('%s Expected %d, got %d.', $message, $expected, $actual)); + } + } + + private function exportValue(mixed $value): string + { + $encoded = json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + + if ($encoded === false) { + return var_export($value, true); + } + + return $encoded; + } +} From b74b7e9a995178282e42982f030f767383598d8f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:38 -0300 Subject: [PATCH 168/169] ci: add behat integration workflow Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .github/workflows/behat.yml | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/behat.yml diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml new file mode 100644 index 0000000..3cad30e --- /dev/null +++ b/.github/workflows/behat.yml @@ -0,0 +1,46 @@ +name: Behat Integration Tests + +on: + pull_request: + push: + +permissions: + contents: read + +concurrency: + group: behat-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + behat: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Prepare disposable LimeSurvey stack + run: | + docker compose up -d --build --wait + docker compose exec -T --user "$(id -u):$(id -g)" limesurvey composer install --working-dir=/var/www/html/plugins/LSTelegramNotify --no-interaction --prefer-dist --no-dev --no-scripts + docker compose exec -T --user "$(id -u):$(id -g)" limesurvey composer install --working-dir=/var/www/html/plugins/LSTelegramNotify/tests/Integration --no-interaction --prefer-dist + + - name: Run Behat integration tests + run: | + docker compose exec -T --user "$(id -u):$(id -g)" limesurvey composer --working-dir=/var/www/html/plugins/LSTelegramNotify/tests/Integration run test:junit + + - name: Upload Behat report + if: always() + uses: actions/upload-artifact@v4 + with: + name: behat-report + path: tests/Integration/output/report.xml + if-no-files-found: ignore + + - name: Print container logs + if: always() + run: docker compose logs --no-color + + - name: Stop disposable LimeSurvey stack + if: always() + run: docker compose down -v From c2f68cbdbe6318d134a5f2e79ccf27cded9106c0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:16:38 -0300 Subject: [PATCH 169/169] docs: trim integration test instructions Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 157b0fa..359fe37 100644 --- a/README.md +++ b/README.md @@ -67,4 +67,3 @@ You can add custom settings by survey to send the messages to other groups, cust - Go to survey settings - GO to `Simple plugins` - Define your custom settings at `Settings for plugin LSTelegramNotify ` -

  • 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 z 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 Date: Tue, 4 Aug 2026 23:50:10 -0300 Subject: [PATCH 142/169] fix: allow preview screenshot drift budget Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/checker.mjs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/screenshots/checker.mjs b/scripts/screenshots/checker.mjs index 9475a94..9524a51 100644 --- a/scripts/screenshots/checker.mjs +++ b/scripts/screenshots/checker.mjs @@ -56,6 +56,11 @@ export async function assertScreenshotsUpToDate(config, { logger = console, brow const failures = []; for (const screenshot of screenshots) { + const comparisonOptions = config.comparisonOptions?.[screenshot.key] ?? { + pixelmatchThreshold: config.pixelmatchThreshold, + maxDiffPixels: config.maxDiffPixels, + maxDiffPixelRatio: config.maxDiffPixelRatio, + }; let expectedBuffer; try { @@ -72,9 +77,9 @@ export async function assertScreenshotsUpToDate(config, { logger = console, brow } const result = comparePngBuffers(expectedBuffer, screenshot.buffer, { - pixelmatchThreshold: config.pixelmatchThreshold, - maxDiffPixels: config.maxDiffPixels, - maxDiffPixelRatio: config.maxDiffPixelRatio, + pixelmatchThreshold: comparisonOptions.pixelmatchThreshold, + maxDiffPixels: comparisonOptions.maxDiffPixels, + maxDiffPixelRatio: comparisonOptions.maxDiffPixelRatio, }); if (result.matches) { From 0877dfea8208029b575048624c0937cda805fe98 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:50:10 -0300 Subject: [PATCH 143/169] feat: add per-target screenshot comparison settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/config.mjs | 39 +++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/scripts/screenshots/config.mjs b/scripts/screenshots/config.mjs index 6a935f7..6818001 100644 --- a/scripts/screenshots/config.mjs +++ b/scripts/screenshots/config.mjs @@ -6,6 +6,7 @@ export const DEFAULT_STACK_HOST_PORT = '18080'; export const DEFAULT_STACK_ADMIN_USER = 'admin'; export const DEFAULT_STACK_ADMIN_PASSWORD = 'admin'; export const DEFAULT_PLUGIN_NAME = 'LSTelegramNotify'; +export const DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO = 0.005; export const SETTINGS_VIEWPORT = Object.freeze({ width: 1280, height: 2200 }); export const PREVIEW_VIEWPORT = Object.freeze({ width: 1200, height: 1400 }); export const DEFAULT_SCREENSHOT_TARGETS = Object.freeze(['settings', 'preview']); @@ -13,6 +14,7 @@ export const VALID_SCREENSHOT_TARGETS = new Set(DEFAULT_SCREENSHOT_TARGETS); export function createScreenshotConfig(env = process.env, repoRoot = process.cwd()) { const targets = parseScreenshotTargets(env.SCREENSHOT_TARGETS); + const comparisonOptions = getScreenshotComparisonOptions(env); return { repoRoot, @@ -26,14 +28,39 @@ export function createScreenshotConfig(env = process.env, repoRoot = process.cwd adminUser: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_USER', getDefaultAdminUser(env)) : null, adminPassword: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_PASSWORD', getDefaultAdminPassword(env)) : null, headless: parseHeadless(env.PLAYWRIGHT_HEADLESS), - pixelmatchThreshold: parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1), - maxDiffPixels: parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0), - maxDiffPixelRatio: parseNonNegativeFloat(env.SCREENSHOT_MAX_DIFF_PIXEL_RATIO, 0), + pixelmatchThreshold: comparisonOptions.settings.pixelmatchThreshold, + maxDiffPixels: comparisonOptions.settings.maxDiffPixels, + maxDiffPixelRatio: comparisonOptions.settings.maxDiffPixelRatio, + comparisonOptions, settingsViewport: SETTINGS_VIEWPORT, previewViewport: PREVIEW_VIEWPORT, }; } +export function getScreenshotComparisonOptions(env = process.env) { + const pixelmatchThreshold = parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1); + const maxDiffPixels = parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0); + const maxDiffPixelRatio = parseNonNegativeFloat(env.SCREENSHOT_MAX_DIFF_PIXEL_RATIO, 0); + + return Object.freeze({ + settings: Object.freeze({ + pixelmatchThreshold, + maxDiffPixels, + maxDiffPixelRatio, + }), + preview: Object.freeze({ + pixelmatchThreshold: parseNonNegativeFloat(env.PREVIEW_SCREENSHOT_PIXELMATCH_THRESHOLD, pixelmatchThreshold), + maxDiffPixels: parseNonNegativeInteger(env.PREVIEW_SCREENSHOT_MAX_DIFF_PIXELS, maxDiffPixels), + maxDiffPixelRatio: parseNonNegativeFloat( + env.PREVIEW_SCREENSHOT_MAX_DIFF_PIXEL_RATIO, + hasExplicitEnvValue(env, 'SCREENSHOT_MAX_DIFF_PIXEL_RATIO') + ? maxDiffPixelRatio + : DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO + ), + }), + }); +} + export function requireEnv(env, name) { const value = env[name]; @@ -54,6 +81,12 @@ export function getEnvOrFallback(env, name, fallback) { return String(value).trim(); } +export function hasExplicitEnvValue(env, name) { + const value = env[name]; + + return !(value === undefined || value === null || String(value).trim() === ''); +} + export function getDefaultBaseUrl(env) { const scheme = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_SCHEME', DEFAULT_STACK_PUBLIC_SCHEME); const host = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_HOST', DEFAULT_STACK_PUBLIC_HOST); From 5ec0a2733c5b66bc0978599afa1aa4481962f559 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:50:10 -0300 Subject: [PATCH 144/169] test: cover screenshot diff ratio tolerance Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/Node/Scripts/Screenshots/checker.test.mjs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/Node/Scripts/Screenshots/checker.test.mjs b/tests/Node/Scripts/Screenshots/checker.test.mjs index 9892b88..480f217 100644 --- a/tests/Node/Scripts/Screenshots/checker.test.mjs +++ b/tests/Node/Scripts/Screenshots/checker.test.mjs @@ -72,6 +72,22 @@ test('comparePngBuffers can tolerate a small pixel delta', () => { assert.equal(result.diffPixels, 1); }); +test('comparePngBuffers can tolerate a small diff ratio', () => { + const expectedBuffer = createPngBuffer(10, 10, Array.from({ length: 100 }, () => [255, 255, 255, 255])); + const actualPixels = Array.from({ length: 100 }, (_, index) => (index === 0 + ? [255, 0, 0, 255] + : [255, 255, 255, 255])); + const actualBuffer = createPngBuffer(10, 10, actualPixels); + + const result = comparePngBuffers(expectedBuffer, actualBuffer, { + pixelmatchThreshold: 0, + maxDiffPixelRatio: 0.02, + }); + + assert.equal(result.matches, true); + assert.equal(result.diffPixels, 1); +}); + test('comparePngBuffers fails when image dimensions differ', () => { const expectedBuffer = createPngBuffer(1, 1, [ [255, 255, 255, 255], From 9a496f1aa691a2bd17e9b97c2820384a0a87b32a Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:50:10 -0300 Subject: [PATCH 145/169] test: cover per-target screenshot comparison config Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/config.test.mjs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/Node/Scripts/Screenshots/config.test.mjs b/tests/Node/Scripts/Screenshots/config.test.mjs index 6fd6598..ffe7035 100644 --- a/tests/Node/Scripts/Screenshots/config.test.mjs +++ b/tests/Node/Scripts/Screenshots/config.test.mjs @@ -3,11 +3,13 @@ import test from 'node:test'; import { buildScreenshotCommand, createScreenshotConfig, + DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO, getDefaultAdminPassword, getDefaultAdminUser, getDefaultBaseUrl, getEnabledScreenshotTargets, getEnvOrFallback, + getScreenshotComparisonOptions, normalizeBaseUrl, parseHeadless, parseNonNegativeFloat, @@ -107,6 +109,16 @@ test('createScreenshotConfig composes paths and reads environment values', () => assert.equal(config.pixelmatchThreshold, 0.2); assert.equal(config.maxDiffPixels, 3); assert.equal(config.maxDiffPixelRatio, 0.005); + assert.deepEqual(config.comparisonOptions.settings, { + pixelmatchThreshold: 0.2, + maxDiffPixels: 3, + maxDiffPixelRatio: 0.005, + }); + assert.deepEqual(config.comparisonOptions.preview, { + pixelmatchThreshold: 0.2, + maxDiffPixels: 3, + maxDiffPixelRatio: 0.005, + }); assert.deepEqual(config.settingsViewport, { width: 1280, height: 2200 }); assert.deepEqual(config.previewViewport, { width: 1200, height: 1400 }); }); @@ -119,6 +131,8 @@ test('createScreenshotConfig uses the local compose defaults for settings valida assert.equal(config.adminUser, 'admin'); assert.equal(config.adminPassword, 'admin'); assert.equal(config.headless, true); + assert.equal(config.comparisonOptions.settings.maxDiffPixelRatio, 0); + assert.equal(config.comparisonOptions.preview.maxDiffPixelRatio, DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO); }); test('createScreenshotConfig does not require admin credentials for preview-only validation', () => { @@ -130,3 +144,21 @@ test('createScreenshotConfig does not require admin credentials for preview-only assert.equal(config.adminUser, null); assert.equal(config.adminPassword, null); }); + +test('getScreenshotComparisonOptions lets preview override its own drift budget', () => { + const comparisonOptions = getScreenshotComparisonOptions({ + SCREENSHOT_PIXELMATCH_THRESHOLD: '0.1', + PREVIEW_SCREENSHOT_MAX_DIFF_PIXEL_RATIO: '0.0025', + }); + + assert.deepEqual(comparisonOptions.settings, { + pixelmatchThreshold: 0.1, + maxDiffPixels: 0, + maxDiffPixelRatio: 0, + }); + assert.deepEqual(comparisonOptions.preview, { + pixelmatchThreshold: 0.1, + maxDiffPixels: 0, + maxDiffPixelRatio: 0.0025, + }); +}); From da164a5ee53fd4504420c77d9d2eeba387779db9 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 146/169] build: add deterministic preview font packages Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index 8aa9c6a..b13317c 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "screenshots:update": "node ./scripts/update-screenshots.mjs" }, "devDependencies": { + "@fontsource/ibm-plex-mono": "^5.3.0", + "@fontsource/inter": "^5.3.0", "dotenv": "^16.4.5", "pixelmatch": "^7.1.0", "playwright": "^1.62.1", From 715d66618ea46937e1fa6a503031dc877a071767 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 147/169] build: lock deterministic preview font packages Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- package-lock.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/package-lock.json b/package-lock.json index 5dc5a69..86e598d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,12 +6,34 @@ "": { "name": "lstelegramnotify-maintenance", "devDependencies": { + "@fontsource/ibm-plex-mono": "^5.3.0", + "@fontsource/inter": "^5.3.0", "dotenv": "^16.4.5", "pixelmatch": "^7.1.0", "playwright": "^1.62.1", "pngjs": "^7.0.0" } }, + "node_modules/@fontsource/ibm-plex-mono": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.3.0.tgz", + "integrity": "sha512-eTgnZjZEGk1QtD3ZstF+Vclo2HLAni8YMy34/DxllwZvyz1lR/1RF/xTiAquOBO7MvqBx8D2Ig2WCPMVfdZu7Q==", + "dev": true, + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/inter": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.3.0.tgz", + "integrity": "sha512-RofMylZmjlJEfELXeNHFWBRcSs75rGU/6bV2S2jfnvv/3rPXPGe0LgUJTklcHZ9lM4OZmAVFhcJPnACfb91A3g==", + "dev": true, + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, "node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", From 7815aba819d41025551c5bdcd4388b6229bfbf23 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 148/169] feat: embed deterministic preview fonts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/preview-template.mjs | 59 +++++++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/scripts/screenshots/preview-template.mjs b/scripts/screenshots/preview-template.mjs index 6d77cf5..f6bc8f9 100644 --- a/scripts/screenshots/preview-template.mjs +++ b/scripts/screenshots/preview-template.mjs @@ -3,11 +3,65 @@ import { readFile } from 'node:fs/promises'; export const TELEGRAM_PREVIEW_STYLE_TOKEN = '__TELEGRAM_PREVIEW_STYLES__'; export const TELEGRAM_PREVIEW_HTML_URL = new URL('./assets/telegram-preview.html', import.meta.url); export const TELEGRAM_PREVIEW_CSS_URL = new URL('./assets/telegram-preview.css', import.meta.url); +export const TELEGRAM_PREVIEW_SANS_FAMILY = 'TelegramPreviewSans'; +export const TELEGRAM_PREVIEW_MONO_FAMILY = 'TelegramPreviewMono'; + +const PREVIEW_FONT_DEFINITIONS = Object.freeze([ + { + family: TELEGRAM_PREVIEW_SANS_FAMILY, + weight: 400, + style: 'normal', + url: new URL('../../node_modules/@fontsource/inter/files/inter-latin-400-normal.woff2', import.meta.url), + }, + { + family: TELEGRAM_PREVIEW_SANS_FAMILY, + weight: 600, + style: 'normal', + url: new URL('../../node_modules/@fontsource/inter/files/inter-latin-600-normal.woff2', import.meta.url), + }, + { + family: TELEGRAM_PREVIEW_SANS_FAMILY, + weight: 700, + style: 'normal', + url: new URL('../../node_modules/@fontsource/inter/files/inter-latin-700-normal.woff2', import.meta.url), + }, + { + family: TELEGRAM_PREVIEW_MONO_FAMILY, + weight: 400, + style: 'normal', + url: new URL('../../node_modules/@fontsource/ibm-plex-mono/files/ibm-plex-mono-latin-400-normal.woff2', import.meta.url), + }, +]); export async function readPreviewAsset(url) { return readFile(url, 'utf8'); } +export function buildFontDataUrl(fontBuffer, mimeType = 'font/woff2') { + return `data:${mimeType};base64,${fontBuffer.toString('base64')}`; +} + +export function buildFontFaceCss({ family, weight, style, source }) { + return [ + '@font-face {', + ` font-family: "${family}";`, + ` src: url("${source}") format("woff2");`, + ` font-style: ${style};`, + ` font-weight: ${weight};`, + ' font-display: block;', + '}', + ].join('\n'); +} + +export async function buildEmbeddedPreviewFontCss() { + const fonts = await Promise.all(PREVIEW_FONT_DEFINITIONS.map(async (fontDefinition) => ({ + ...fontDefinition, + source: buildFontDataUrl(await readFile(fontDefinition.url)), + }))); + + return fonts.map(buildFontFaceCss).join('\n\n'); +} + export function inlinePreviewStyles(htmlTemplate, cssContent) { if (!htmlTemplate.includes(TELEGRAM_PREVIEW_STYLE_TOKEN)) { throw new Error(`Preview template is missing style token: ${TELEGRAM_PREVIEW_STYLE_TOKEN}`); @@ -17,10 +71,11 @@ export function inlinePreviewStyles(htmlTemplate, cssContent) { } export async function buildTelegramPreviewHtml() { - const [htmlTemplate, cssContent] = await Promise.all([ + const [htmlTemplate, cssContent, embeddedFontCss] = await Promise.all([ readPreviewAsset(TELEGRAM_PREVIEW_HTML_URL), readPreviewAsset(TELEGRAM_PREVIEW_CSS_URL), + buildEmbeddedPreviewFontCss(), ]); - return inlinePreviewStyles(htmlTemplate, cssContent); + return inlinePreviewStyles(htmlTemplate, `${embeddedFontCss}\n\n${cssContent}`); } From ae9629faac43f6d1e91510b09d9381eb65cbafde Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 149/169] style: use embedded preview font families Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/assets/telegram-preview.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/screenshots/assets/telegram-preview.css b/scripts/screenshots/assets/telegram-preview.css index b5da134..ac6cede 100644 --- a/scripts/screenshots/assets/telegram-preview.css +++ b/scripts/screenshots/assets/telegram-preview.css @@ -1,6 +1,6 @@ :root { color-scheme: light; - font-family: sans-serif; + font-family: "TelegramPreviewSans", sans-serif; } * { @@ -111,7 +111,7 @@ body { } .message-bubble code { - font-family: monospace; + font-family: "TelegramPreviewMono", monospace; font-size: 0.95em; border-radius: 8px; background: rgba(23, 48, 66, 0.08); From 6bade2c2f7d24ec77b2eed4ea75c4021fbbb4f1e Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 150/169] fix: wait for preview fonts before screenshot capture Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/browser-flows.mjs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/screenshots/browser-flows.mjs b/scripts/screenshots/browser-flows.mjs index 49ad4fa..6aab3d0 100644 --- a/scripts/screenshots/browser-flows.mjs +++ b/scripts/screenshots/browser-flows.mjs @@ -281,6 +281,14 @@ export async function findPluginConfigureUrl(page, { baseUrl, pluginName, maxPag return ensurePluginConfigureUrl(page, { baseUrl, pluginName, maxPages }); } +async function waitForDocumentFonts(page) { + await page.evaluate(async () => { + if ('fonts' in document) { + await document.fonts.ready; + } + }); +} + export async function captureSettingsScreenshot(page, { configureUrl, pluginName, @@ -305,6 +313,7 @@ export async function captureSettingsScreenshot(page, { const settingsForm = page.locator(`#pluginsettings-${pluginName}`); await defaultTextField.scrollIntoViewIfNeeded(); + await waitForDocumentFonts(page); return settingsForm.screenshot({ animations: 'disabled', caret: 'hide', @@ -315,6 +324,7 @@ export async function captureSettingsScreenshot(page, { export async function captureTelegramPreview(page, { viewport }) { await page.setViewportSize({ ...viewport }); await page.setContent(await buildTelegramPreviewHtml(), { waitUntil: 'load' }); + await waitForDocumentFonts(page); return page.locator('.preview-shell').screenshot({ animations: 'disabled', caret: 'hide', From 338c94ea1bfb31aad92e25b964afd3f7ac63fba2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 151/169] refactor: restore global screenshot comparison rules Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/checker.mjs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/scripts/screenshots/checker.mjs b/scripts/screenshots/checker.mjs index 9524a51..9475a94 100644 --- a/scripts/screenshots/checker.mjs +++ b/scripts/screenshots/checker.mjs @@ -56,11 +56,6 @@ export async function assertScreenshotsUpToDate(config, { logger = console, brow const failures = []; for (const screenshot of screenshots) { - const comparisonOptions = config.comparisonOptions?.[screenshot.key] ?? { - pixelmatchThreshold: config.pixelmatchThreshold, - maxDiffPixels: config.maxDiffPixels, - maxDiffPixelRatio: config.maxDiffPixelRatio, - }; let expectedBuffer; try { @@ -77,9 +72,9 @@ export async function assertScreenshotsUpToDate(config, { logger = console, brow } const result = comparePngBuffers(expectedBuffer, screenshot.buffer, { - pixelmatchThreshold: comparisonOptions.pixelmatchThreshold, - maxDiffPixels: comparisonOptions.maxDiffPixels, - maxDiffPixelRatio: comparisonOptions.maxDiffPixelRatio, + pixelmatchThreshold: config.pixelmatchThreshold, + maxDiffPixels: config.maxDiffPixels, + maxDiffPixelRatio: config.maxDiffPixelRatio, }); if (result.matches) { From ddec6d14f2c7d140bf4d2409b5c0b104f0661da8 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:29 -0300 Subject: [PATCH 152/169] refactor: remove per-target screenshot drift settings Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- scripts/screenshots/config.mjs | 39 +++------------------------------- 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/scripts/screenshots/config.mjs b/scripts/screenshots/config.mjs index 6818001..6a935f7 100644 --- a/scripts/screenshots/config.mjs +++ b/scripts/screenshots/config.mjs @@ -6,7 +6,6 @@ export const DEFAULT_STACK_HOST_PORT = '18080'; export const DEFAULT_STACK_ADMIN_USER = 'admin'; export const DEFAULT_STACK_ADMIN_PASSWORD = 'admin'; export const DEFAULT_PLUGIN_NAME = 'LSTelegramNotify'; -export const DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO = 0.005; export const SETTINGS_VIEWPORT = Object.freeze({ width: 1280, height: 2200 }); export const PREVIEW_VIEWPORT = Object.freeze({ width: 1200, height: 1400 }); export const DEFAULT_SCREENSHOT_TARGETS = Object.freeze(['settings', 'preview']); @@ -14,7 +13,6 @@ export const VALID_SCREENSHOT_TARGETS = new Set(DEFAULT_SCREENSHOT_TARGETS); export function createScreenshotConfig(env = process.env, repoRoot = process.cwd()) { const targets = parseScreenshotTargets(env.SCREENSHOT_TARGETS); - const comparisonOptions = getScreenshotComparisonOptions(env); return { repoRoot, @@ -28,39 +26,14 @@ export function createScreenshotConfig(env = process.env, repoRoot = process.cwd adminUser: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_USER', getDefaultAdminUser(env)) : null, adminPassword: targets.settings ? getEnvOrFallback(env, 'LIMESURVEY_ADMIN_PASSWORD', getDefaultAdminPassword(env)) : null, headless: parseHeadless(env.PLAYWRIGHT_HEADLESS), - pixelmatchThreshold: comparisonOptions.settings.pixelmatchThreshold, - maxDiffPixels: comparisonOptions.settings.maxDiffPixels, - maxDiffPixelRatio: comparisonOptions.settings.maxDiffPixelRatio, - comparisonOptions, + pixelmatchThreshold: parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1), + maxDiffPixels: parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0), + maxDiffPixelRatio: parseNonNegativeFloat(env.SCREENSHOT_MAX_DIFF_PIXEL_RATIO, 0), settingsViewport: SETTINGS_VIEWPORT, previewViewport: PREVIEW_VIEWPORT, }; } -export function getScreenshotComparisonOptions(env = process.env) { - const pixelmatchThreshold = parseNonNegativeFloat(env.SCREENSHOT_PIXELMATCH_THRESHOLD, 0.1); - const maxDiffPixels = parseNonNegativeInteger(env.SCREENSHOT_MAX_DIFF_PIXELS, 0); - const maxDiffPixelRatio = parseNonNegativeFloat(env.SCREENSHOT_MAX_DIFF_PIXEL_RATIO, 0); - - return Object.freeze({ - settings: Object.freeze({ - pixelmatchThreshold, - maxDiffPixels, - maxDiffPixelRatio, - }), - preview: Object.freeze({ - pixelmatchThreshold: parseNonNegativeFloat(env.PREVIEW_SCREENSHOT_PIXELMATCH_THRESHOLD, pixelmatchThreshold), - maxDiffPixels: parseNonNegativeInteger(env.PREVIEW_SCREENSHOT_MAX_DIFF_PIXELS, maxDiffPixels), - maxDiffPixelRatio: parseNonNegativeFloat( - env.PREVIEW_SCREENSHOT_MAX_DIFF_PIXEL_RATIO, - hasExplicitEnvValue(env, 'SCREENSHOT_MAX_DIFF_PIXEL_RATIO') - ? maxDiffPixelRatio - : DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO - ), - }), - }); -} - export function requireEnv(env, name) { const value = env[name]; @@ -81,12 +54,6 @@ export function getEnvOrFallback(env, name, fallback) { return String(value).trim(); } -export function hasExplicitEnvValue(env, name) { - const value = env[name]; - - return !(value === undefined || value === null || String(value).trim() === ''); -} - export function getDefaultBaseUrl(env) { const scheme = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_SCHEME', DEFAULT_STACK_PUBLIC_SCHEME); const host = getEnvOrFallback(env, 'LIMESURVEY_STACK_PUBLIC_HOST', DEFAULT_STACK_PUBLIC_HOST); From c9316c390e45d07c2a94863a98de44700070073c Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:30 -0300 Subject: [PATCH 153/169] test: remove per-target screenshot config coverage Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Node/Scripts/Screenshots/config.test.mjs | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/tests/Node/Scripts/Screenshots/config.test.mjs b/tests/Node/Scripts/Screenshots/config.test.mjs index ffe7035..6fd6598 100644 --- a/tests/Node/Scripts/Screenshots/config.test.mjs +++ b/tests/Node/Scripts/Screenshots/config.test.mjs @@ -3,13 +3,11 @@ import test from 'node:test'; import { buildScreenshotCommand, createScreenshotConfig, - DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO, getDefaultAdminPassword, getDefaultAdminUser, getDefaultBaseUrl, getEnabledScreenshotTargets, getEnvOrFallback, - getScreenshotComparisonOptions, normalizeBaseUrl, parseHeadless, parseNonNegativeFloat, @@ -109,16 +107,6 @@ test('createScreenshotConfig composes paths and reads environment values', () => assert.equal(config.pixelmatchThreshold, 0.2); assert.equal(config.maxDiffPixels, 3); assert.equal(config.maxDiffPixelRatio, 0.005); - assert.deepEqual(config.comparisonOptions.settings, { - pixelmatchThreshold: 0.2, - maxDiffPixels: 3, - maxDiffPixelRatio: 0.005, - }); - assert.deepEqual(config.comparisonOptions.preview, { - pixelmatchThreshold: 0.2, - maxDiffPixels: 3, - maxDiffPixelRatio: 0.005, - }); assert.deepEqual(config.settingsViewport, { width: 1280, height: 2200 }); assert.deepEqual(config.previewViewport, { width: 1200, height: 1400 }); }); @@ -131,8 +119,6 @@ test('createScreenshotConfig uses the local compose defaults for settings valida assert.equal(config.adminUser, 'admin'); assert.equal(config.adminPassword, 'admin'); assert.equal(config.headless, true); - assert.equal(config.comparisonOptions.settings.maxDiffPixelRatio, 0); - assert.equal(config.comparisonOptions.preview.maxDiffPixelRatio, DEFAULT_PREVIEW_MAX_DIFF_PIXEL_RATIO); }); test('createScreenshotConfig does not require admin credentials for preview-only validation', () => { @@ -144,21 +130,3 @@ test('createScreenshotConfig does not require admin credentials for preview-only assert.equal(config.adminUser, null); assert.equal(config.adminPassword, null); }); - -test('getScreenshotComparisonOptions lets preview override its own drift budget', () => { - const comparisonOptions = getScreenshotComparisonOptions({ - SCREENSHOT_PIXELMATCH_THRESHOLD: '0.1', - PREVIEW_SCREENSHOT_MAX_DIFF_PIXEL_RATIO: '0.0025', - }); - - assert.deepEqual(comparisonOptions.settings, { - pixelmatchThreshold: 0.1, - maxDiffPixels: 0, - maxDiffPixelRatio: 0, - }); - assert.deepEqual(comparisonOptions.preview, { - pixelmatchThreshold: 0.1, - maxDiffPixels: 0, - maxDiffPixelRatio: 0.0025, - }); -}); From 09d7272609007d35cb6d936d3234739250648645 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:30 -0300 Subject: [PATCH 154/169] test: cover embedded preview fonts Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Screenshots/preview-template.test.mjs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/Node/Scripts/Screenshots/preview-template.test.mjs b/tests/Node/Scripts/Screenshots/preview-template.test.mjs index 9ad5b98..42a8a97 100644 --- a/tests/Node/Scripts/Screenshots/preview-template.test.mjs +++ b/tests/Node/Scripts/Screenshots/preview-template.test.mjs @@ -1,11 +1,36 @@ import assert from 'node:assert/strict'; import test from 'node:test'; import { + buildEmbeddedPreviewFontCss, + buildFontDataUrl, + buildFontFaceCss, buildTelegramPreviewHtml, inlinePreviewStyles, TELEGRAM_PREVIEW_STYLE_TOKEN, + TELEGRAM_PREVIEW_MONO_FAMILY, + TELEGRAM_PREVIEW_SANS_FAMILY, } from '../../../../scripts/screenshots/preview-template.mjs'; +test('buildFontDataUrl encodes a WOFF2 buffer as a data URI', () => { + const result = buildFontDataUrl(Buffer.from('font-bytes')); + + assert.equal(result, 'data:font/woff2;base64,Zm9udC1ieXRlcw=='); +}); + +test('buildFontFaceCss creates an embeddable @font-face rule', () => { + const css = buildFontFaceCss({ + family: TELEGRAM_PREVIEW_SANS_FAMILY, + weight: 700, + style: 'normal', + source: 'data:font/woff2;base64,AAAA', + }); + + assert.match(css, /@font-face/); + assert.match(css, /TelegramPreviewSans/); + assert.match(css, /font-weight: 700/); + assert.match(css, /data:font\/woff2;base64,AAAA/); +}); + test('inlinePreviewStyles injects CSS into the preview template placeholder', () => { const html = inlinePreviewStyles(``, '.preview-shell { width: 920px; }'); @@ -13,6 +38,14 @@ test('inlinePreviewStyles injects CSS into the preview template placeholder', () assert.doesNotMatch(html, new RegExp(TELEGRAM_PREVIEW_STYLE_TOKEN)); }); +test('buildEmbeddedPreviewFontCss inlines deterministic preview fonts', async () => { + const css = await buildEmbeddedPreviewFontCss(); + + assert.match(css, /TelegramPreviewSans/); + assert.match(css, /TelegramPreviewMono/); + assert.match(css, /data:font\/woff2;base64,/); +}); + test('buildTelegramPreviewHtml includes the preview heading and sample survey data', async () => { const html = await buildTelegramPreviewHtml(); @@ -21,4 +54,7 @@ test('buildTelegramPreviewHtml includes the preview heading and sample survey da assert.match(html, /Ada Lovelace/); assert.match(html, /https:\/\/example\.test\/pdf/); assert.match(html, /\.preview-shell/); + assert.match(html, new RegExp(TELEGRAM_PREVIEW_SANS_FAMILY)); + assert.match(html, new RegExp(TELEGRAM_PREVIEW_MONO_FAMILY)); + assert.match(html, /data:font\/woff2;base64,/); }); From 98d6dd82b4f120b425417df1cde5706c8e509dbe Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Tue, 4 Aug 2026 23:55:30 -0300 Subject: [PATCH 155/169] docs: refresh deterministic telegram preview screenshot Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- img/telegram_example.png | Bin 117161 -> 107512 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/img/telegram_example.png b/img/telegram_example.png index 1f06f6899489eb49835722469776758a54c9f9b0..c7d7991a91cbb5e8e6e290c773720891621e28b3 100644 GIT binary patch literal 107512 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

    -
    -
    - Telegram message preview - Local Playwright render with sample data — no external Telegram access required. -
    -
    LSTelegramNotify
    -
    -
    -