(Grav GitSync) Automatic Commit from smokephil
This commit is contained in:
parent
88e07926d9
commit
9d9feba04b
144 changed files with 7311 additions and 5467 deletions
|
|
@ -7,6 +7,6 @@ menu: LT24
|
|||
taxonomy:
|
||||
tag:
|
||||
- hidden
|
||||
published: false
|
||||
published: true
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,17 @@
|
|||
# v1.10.48
|
||||
## 10/28/2024
|
||||
|
||||
1. [](#improved)
|
||||
* Treat AVIF as image when inserting / drag & dropping
|
||||
* PHP 8.4 fixes - Implicitly nullable parameter declarations deprecate
|
||||
|
||||
# v1.10.47
|
||||
## 10/22/2024
|
||||
|
||||
1. [](#improved)
|
||||
* Added missing `show_label` logic in list field
|
||||
* Use plugin's selected icon when in plugin properties
|
||||
|
||||
# v1.10.46
|
||||
## 05/15/2024
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: Admin Panel
|
||||
slug: admin
|
||||
type: plugin
|
||||
version: 1.10.46
|
||||
version: 1.10.48
|
||||
description: Adds an advanced administration panel to manage your site
|
||||
icon: empire
|
||||
author:
|
||||
|
|
|
|||
|
|
@ -904,7 +904,7 @@ class Admin
|
|||
* @return object
|
||||
* @throws \RuntimeException
|
||||
*/
|
||||
public function getConfigurationData($type, array $post = null)
|
||||
public function getConfigurationData($type, ?array $post = null)
|
||||
{
|
||||
static $data = [];
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ class AdminController extends AdminBaseController
|
|||
* @param array|null $post
|
||||
* @return void
|
||||
*/
|
||||
public function initialize(Grav $grav = null, $view = null, $task = null, $route = null, $post = null)
|
||||
public function initialize(?Grav $grav = null, $view = null, $task = null, $route = null, $post = null)
|
||||
{
|
||||
$this->grav = $grav;
|
||||
$this->admin = $this->grav['admin'];
|
||||
|
|
@ -2717,7 +2717,7 @@ class AdminController extends AdminBaseController
|
|||
* @param PageInterface|null $page
|
||||
* @return Media|null
|
||||
*/
|
||||
public function getMedia(PageInterface $page = null)
|
||||
public function getMedia(?PageInterface $page = null)
|
||||
{
|
||||
$page = $page ?? $this->admin->page($this->route);
|
||||
if (!$page) {
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPost(string $name = null, $default = null)
|
||||
public function getPost(?string $name = null, $default = null)
|
||||
{
|
||||
$body = $this->request->getParsedBody();
|
||||
|
||||
|
|
@ -167,7 +167,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param string|null $type
|
||||
* @return FormInterface
|
||||
*/
|
||||
public function getForm(string $type = null): FormInterface
|
||||
public function getForm(?string $type = null): FormInterface
|
||||
{
|
||||
$object = $this->getObject();
|
||||
if (!$object) {
|
||||
|
|
@ -227,7 +227,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param int $code
|
||||
* @return Response
|
||||
*/
|
||||
public function createHtmlResponse(string $content, int $code = null): ResponseInterface
|
||||
public function createHtmlResponse(string $content, ?int $code = null): ResponseInterface
|
||||
{
|
||||
return new Response($code ?: 200, [], $content);
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param int $code
|
||||
* @return Response
|
||||
*/
|
||||
public function createRedirectResponse(string $url, int $code = null): ResponseInterface
|
||||
public function createRedirectResponse(string $url, ?int $code = null): ResponseInterface
|
||||
{
|
||||
if (null === $code || $code < 301 || $code > 307) {
|
||||
$code = $this->grav['config']->get('system.pages.redirect_default_code', 302);
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ abstract class AdminController
|
|||
* @param string|null $lang
|
||||
* @return string
|
||||
*/
|
||||
public function getAdminUrl(string $route, string $lang = null): string
|
||||
public function getAdminUrl(string $route, ?string $lang = null): string
|
||||
{
|
||||
/** @var Pages $pages */
|
||||
$pages = $this->grav['pages'];
|
||||
|
|
@ -131,7 +131,7 @@ abstract class AdminController
|
|||
* @param string|null $lang
|
||||
* @return string
|
||||
*/
|
||||
public function getAbsoluteAdminUrl(string $route, string $lang = null): string
|
||||
public function getAbsoluteAdminUrl(string $route, ?string $lang = null): string
|
||||
{
|
||||
/** @var Pages $pages */
|
||||
$pages = $this->grav['pages'];
|
||||
|
|
@ -319,7 +319,7 @@ abstract class AdminController
|
|||
* @param int|null $code
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
protected function createRedirectResponse(string $url = null, int $code = null): ResponseInterface
|
||||
protected function createRedirectResponse(?string $url = null, ?int $code = null): ResponseInterface
|
||||
{
|
||||
$request = $this->getRequest();
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ class LoginController extends AdminController
|
|||
* @param string|null $token
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function displayReset(string $username = null, string $token = null): ResponseInterface
|
||||
public function displayReset(?string $username = null, ?string $token = null): ResponseInterface
|
||||
{
|
||||
if ('' === (string)$username || '' === (string)$token) {
|
||||
$this->setMessage($this->translate('PLUGIN_ADMIN.RESET_INVALID_LINK'), 'error');
|
||||
|
|
@ -318,7 +318,7 @@ class LoginController extends AdminController
|
|||
* @param string|null $token
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
public function taskReset(string $username = null, string $token = null): ResponseInterface
|
||||
public function taskReset(?string $username = null, ?string $token = null): ResponseInterface
|
||||
{
|
||||
$this->page = $this->createPage('reset');
|
||||
$this->form = $this->getForm('admin-login-reset');
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ class AdminTwigExtension extends AbstractExtension
|
|||
return clone $obj;
|
||||
}
|
||||
|
||||
public function adminRouteFunc(string $route = '', string $languageCode = null)
|
||||
public function adminRouteFunc(string $route = '', ?string $languageCode = null)
|
||||
{
|
||||
/** @var Admin $admin */
|
||||
$admin = Grav::instance()['admin'];
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ export default class FilePickerField {
|
|||
|
||||
let renderOption = function renderOption(item, escape) {
|
||||
let image = '';
|
||||
if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i)) {
|
||||
if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\.(jpg|jpeg|png|gif|webp|avif)$/i)) {
|
||||
// const fallback2x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@2x');
|
||||
// const fallback3x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@3x');
|
||||
const source = thumbs[item.name] || `${config.base_url_relative}/../${folder}/${item.name}`;
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ export function UriToMarkdown(uri) {
|
|||
|
||||
const title = uri.split('.').slice(0, -1).join('.');
|
||||
|
||||
return uri.match(/\.(jpe?g|png|gif|svg|webp|mp4|webm|ogv|mov)$/i) ? `` : `[${decodeURI(uri)}](${uri})`;
|
||||
return uri.match(/\.(jpe?g|png|gif|svg|webp|avif|mp4|webm|ogv|mov)$/i) ? `` : `[${decodeURI(uri)}](${uri})`;
|
||||
}
|
||||
|
||||
let instances = [];
|
||||
|
|
|
|||
4126
plugins/admin/themes/grav/js/admin.min.js
vendored
4126
plugins/admin/themes/grav/js/admin.min.js
vendored
File diff suppressed because it is too large
Load diff
4076
plugins/admin/themes/grav/js/vendor.min.js
vendored
4076
plugins/admin/themes/grav/js/vendor.min.js
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -19,6 +19,7 @@
|
|||
<label for="toggleable_{{ field.name }}"></label>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if show_label %}
|
||||
<label{{ (field.toggleable ? ' class="toggleable ' ~ field.labelclasses ~ '" for="toggleable_' ~ field.name ~ '"' : ' class="' ~ field.labelclasses ~ '"')|raw }}>
|
||||
{% if field.help %}
|
||||
{% if field.markdown %}
|
||||
|
|
@ -31,6 +32,7 @@
|
|||
{% endif %}
|
||||
{{ field.validate.required in ['on', 'true', 1] ? '<span class="required">*</span>' }}
|
||||
</label>
|
||||
{% endif %}
|
||||
{% if field.description %}
|
||||
<div class="form-extra-wrapper {{ field.wrapper_classes }}">
|
||||
<span class="form-description">{{ field.description|t|markdown(false)|raw }}</span>
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<h1><i class="fa fa-fw fa-plug"></i> {{ "PLUGIN_ADMIN.PLUGIN"|t }}: {{ plugin.name }}</h1>
|
||||
<h1><i class="fa fa-fw fa-{{ plugin.icon ?? 'plug' }}"></i> {{ "PLUGIN_ADMIN.PLUGIN"|t }}: {{ plugin.name }}</h1>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
# v4.1.2
|
||||
## 01/06/2025
|
||||
|
||||
1. [](#improved)
|
||||
* Updated to latest symfony libraries (`v5.4.45`)
|
||||
* Added a note about Google App Passwords for authentication in the README.md
|
||||
|
||||
# v4.1.1
|
||||
## 10/28/2024
|
||||
|
||||
1. [](#improved)
|
||||
* Updated logging methods to support Monolog2+
|
||||
|
||||
# v4.1.0
|
||||
## 04/09/2024
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,9 @@ More plugins will be released soon to support `Gmail`, `Mailgun`, `Mailjet`, `Oh
|
|||
|
||||
A popular option for sending email is to simply use your Google Accounts SMTP server. To set this up you will need to do 2 things first:
|
||||
|
||||
As Gmail no longer supports the "allow less secure apps" option, you now need to have 2FA enabled on the account and setup an "App Password" to create a specific password rather than your general account password. Follow these instructions: [https://support.google.com/accounts/answer/185833](https://support.google.com/accounts/answer/185833)
|
||||
As Gmail no longer supports the "allow less secure apps" option, you now need to have 2FA enabled on the account and setup an "App Password" to create a specific password rather than your general account password. Follow these instructions: [https://support.google.com/accounts/answer/185833](https://support.google.com/accounts/answer/185833).
|
||||
|
||||
!! Important: When Google creates an app password for you it will look something like `pxzl vkxd xdap fomb`, you should make sure to remove the spaces when you store your password so it looks like `pxzlvkxdxdapfomb`. Also make sure you are sending from the same email address as the one you are using to authenticate with.
|
||||
|
||||
Then configure the Email plugin:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: Email
|
||||
slug: email
|
||||
type: plugin
|
||||
version: 4.1.0
|
||||
version: 4.1.2
|
||||
testing: false
|
||||
description: Enables the emailing system for Grav
|
||||
icon: envelope
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ class Email
|
|||
$log_msg = "Email sent to %s at %s -> %s\n%s";
|
||||
$to = $this->jsonifyRecipients($message->getEmail()->getTo());
|
||||
$message = sprintf($log_msg, $to, date('Y-m-d H:i:s'), $this->message, $this->debug);
|
||||
$this->log->addInfo($message);
|
||||
$this->log->info($message);
|
||||
}
|
||||
|
||||
return $status;
|
||||
|
|
|
|||
229
plugins/email/composer.lock
generated
229
plugins/email/composer.lock
generated
|
|
@ -8,29 +8,27 @@
|
|||
"packages": [
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
|
||||
"reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9",
|
||||
"phpstan/phpstan": "1.4.10 || 1.10.15",
|
||||
"phpstan/phpstan-phpunit": "^1.0",
|
||||
"doctrine/coding-standard": "^9 || ^12",
|
||||
"phpstan/phpstan": "1.4.10 || 2.0.3",
|
||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"psr/log": "^1 || ^2 || ^3",
|
||||
"vimeo/psalm": "4.30.0 || 5.12.0"
|
||||
"psr/log": "^1 || ^2 || ^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
|
|
@ -38,7 +36,7 @@
|
|||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
|
||||
"Doctrine\\Deprecations\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
|
|
@ -49,9 +47,9 @@
|
|||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.3"
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.4"
|
||||
},
|
||||
"time": "2024-01-30T19:34:25+00:00"
|
||||
"time": "2024-12-07T21:18:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
|
|
@ -348,16 +346,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/amqp-messenger",
|
||||
"version": "v5.4.36",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/amqp-messenger.git",
|
||||
"reference": "456958ef89fffddc3935f3954a7eac255a5adb21"
|
||||
"reference": "822ad5f425ef362580273a175c45aa765220fe73"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/456958ef89fffddc3935f3954a7eac255a5adb21",
|
||||
"reference": "456958ef89fffddc3935f3954a7eac255a5adb21",
|
||||
"url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/822ad5f425ef362580273a175c45aa765220fe73",
|
||||
"reference": "822ad5f425ef362580273a175c45aa765220fe73",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -397,7 +395,7 @@
|
|||
"description": "Symfony AMQP extension Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/amqp-messenger/tree/v5.4.36"
|
||||
"source": "https://github.com/symfony/amqp-messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -413,20 +411,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-02-14T16:15:37+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version": "v2.5.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d"
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -434,12 +432,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -464,7 +462,7 @@
|
|||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -480,20 +478,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-24T14:02:46+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/doctrine-messenger",
|
||||
"version": "v5.4.38",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/doctrine-messenger.git",
|
||||
"reference": "0118ae0beaebeb5961ddeedc994454e1ac11f759"
|
||||
"reference": "3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/0118ae0beaebeb5961ddeedc994454e1ac11f759",
|
||||
"reference": "0118ae0beaebeb5961ddeedc994454e1ac11f759",
|
||||
"url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96",
|
||||
"reference": "3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -537,7 +535,7 @@
|
|||
"description": "Symfony Doctrine Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -553,20 +551,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-17T15:02:26+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v5.4.35",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38"
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38",
|
||||
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -622,7 +620,7 @@
|
|||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -638,20 +636,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-23T13:51:25+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version": "v2.5.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
|
||||
"reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73"
|
||||
"reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
|
||||
"reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f",
|
||||
"reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -663,12 +661,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -701,7 +699,7 @@
|
|||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -717,20 +715,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-23T13:51:25+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
"version": "v5.4.38",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mailer.git",
|
||||
"reference": "1d0ef27f1b19b9a0175a0e130d1df3113e5a130e"
|
||||
"reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/1d0ef27f1b19b9a0175a0e130d1df3113e5a130e",
|
||||
"reference": "1d0ef27f1b19b9a0175a0e130d1df3113e5a130e",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/f732e1fafdf0f4a2d865e91f1018aaca174aeed9",
|
||||
"reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -777,7 +775,7 @@
|
|||
"description": "Helps sending emails",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mailer/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/mailer/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -793,20 +791,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-19T10:19:25+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/messenger",
|
||||
"version": "v5.4.38",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/messenger.git",
|
||||
"reference": "a69a4d07e20e4f298a5c030623a1a3328145a889"
|
||||
"reference": "c21d463ba813a3fe9833f46114310fac99bd66e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/messenger/zipball/a69a4d07e20e4f298a5c030623a1a3328145a889",
|
||||
"reference": "a69a4d07e20e4f298a5c030623a1a3328145a889",
|
||||
"url": "https://api.github.com/repos/symfony/messenger/zipball/c21d463ba813a3fe9833f46114310fac99bd66e0",
|
||||
"reference": "c21d463ba813a3fe9833f46114310fac99bd66e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -867,7 +865,7 @@
|
|||
"description": "Helps applications send and receive messages to/from other applications or via message queues",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/messenger/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -883,20 +881,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-19T10:19:25+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v5.4.38",
|
||||
"version": "v5.4.45",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "82fa6be8a0295a3932df871e88fc8c8d77aa71d4"
|
||||
"reference": "8c1b9b3e5b52981551fc6044539af1d974e39064"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/82fa6be8a0295a3932df871e88fc8c8d77aa71d4",
|
||||
"reference": "82fa6be8a0295a3932df871e88fc8c8d77aa71d4",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/8c1b9b3e5b52981551fc6044539af1d974e39064",
|
||||
"reference": "8c1b9b3e5b52981551fc6044539af1d974e39064",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -952,7 +950,7 @@
|
|||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/mime/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -968,26 +966,25 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-03-21T07:25:32+00:00"
|
||||
"time": "2024-10-23T20:18:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.29.0",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
|
||||
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
|
|
@ -995,8 +992,8 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1036,7 +1033,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1052,24 +1049,24 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.29.0",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
|
|
@ -1077,8 +1074,8 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1117,7 +1114,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1133,30 +1130,30 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.29.0",
|
||||
"version": "v1.31.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
|
||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1197,7 +1194,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1213,20 +1210,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-29T20:11:03+00:00"
|
||||
"time": "2024-09-09T11:45:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/redis-messenger",
|
||||
"version": "v5.4.36",
|
||||
"version": "v5.4.48",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/redis-messenger.git",
|
||||
"reference": "54b107003c5abc03cc5077c8847678b432b1e602"
|
||||
"reference": "a097e8c6529a7179a732161bd5368629c6319899"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/redis-messenger/zipball/54b107003c5abc03cc5077c8847678b432b1e602",
|
||||
"reference": "54b107003c5abc03cc5077c8847678b432b1e602",
|
||||
"url": "https://api.github.com/repos/symfony/redis-messenger/zipball/a097e8c6529a7179a732161bd5368629c6319899",
|
||||
"reference": "a097e8c6529a7179a732161bd5368629c6319899",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1264,7 +1261,7 @@
|
|||
"description": "Symfony Redis extension Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/redis-messenger/tree/v5.4.36"
|
||||
"source": "https://github.com/symfony/redis-messenger/tree/v5.4.48"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1280,20 +1277,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-02-05T13:56:32+00:00"
|
||||
"time": "2024-11-13T13:58:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version": "v2.5.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3"
|
||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3",
|
||||
"reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300",
|
||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1309,12 +1306,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
|
@ -1347,7 +1344,7 @@
|
|||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1363,19 +1360,19 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-04-21T15:04:16+00:00"
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"stability-flags": {},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=7.3.6"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"platform-dev": {},
|
||||
"platform-overrides": {
|
||||
"php": "7.3.6"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -322,6 +322,7 @@ class InstalledVersions
|
|||
}
|
||||
|
||||
$installed = array();
|
||||
$copiedLocalDir = false;
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
|
|
@ -330,9 +331,11 @@ class InstalledVersions
|
|||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require $vendorDir.'/composer/installed.php';
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
self::$installedByVendor[$vendorDir] = $required;
|
||||
$installed[] = $required;
|
||||
if (strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $required;
|
||||
$copiedLocalDir = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -350,7 +353,7 @@ class InstalledVersions
|
|||
}
|
||||
}
|
||||
|
||||
if (self::$installed !== array()) {
|
||||
if (self::$installed !== array() && !$copiedLocalDir) {
|
||||
$installed[] = self::$installed;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,6 @@ return array(
|
|||
'Grav\\Plugin\\Email\\' => array($baseDir . '/classes'),
|
||||
'Grav\\Plugin\\Console\\' => array($baseDir . '/cli'),
|
||||
'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/src'),
|
||||
'Doctrine\\Deprecations\\' => array($vendorDir . '/doctrine/deprecations/lib/Doctrine/Deprecations'),
|
||||
'Doctrine\\Deprecations\\' => array($vendorDir . '/doctrine/deprecations/src'),
|
||||
'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/src'),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ class ComposerStaticInit73924571ea6ee98bb12d10ff20aff2ab
|
|||
),
|
||||
'Doctrine\\Deprecations\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/deprecations/lib/Doctrine/Deprecations',
|
||||
0 => __DIR__ . '/..' . '/doctrine/deprecations/src',
|
||||
),
|
||||
'Doctrine\\Common\\Lexer\\' =>
|
||||
array (
|
||||
|
|
|
|||
255
plugins/email/vendor/composer/installed.json
vendored
255
plugins/email/vendor/composer/installed.json
vendored
|
|
@ -2,40 +2,38 @@
|
|||
"packages": [
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
"version": "1.1.3",
|
||||
"version_normalized": "1.1.3.0",
|
||||
"version": "1.1.4",
|
||||
"version_normalized": "1.1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/deprecations.git",
|
||||
"reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
|
||||
"reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
|
||||
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9",
|
||||
"phpstan/phpstan": "1.4.10 || 1.10.15",
|
||||
"phpstan/phpstan-phpunit": "^1.0",
|
||||
"doctrine/coding-standard": "^9 || ^12",
|
||||
"phpstan/phpstan": "1.4.10 || 2.0.3",
|
||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"psr/log": "^1 || ^2 || ^3",
|
||||
"vimeo/psalm": "4.30.0 || 5.12.0"
|
||||
"psr/log": "^1 || ^2 || ^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
},
|
||||
"time": "2024-01-30T19:34:25+00:00",
|
||||
"time": "2024-12-07T21:18:45+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
|
||||
"Doctrine\\Deprecations\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
|
|
@ -46,7 +44,7 @@
|
|||
"homepage": "https://www.doctrine-project.org/",
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/deprecations/issues",
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.3"
|
||||
"source": "https://github.com/doctrine/deprecations/tree/1.1.4"
|
||||
},
|
||||
"install-path": "../doctrine/deprecations"
|
||||
},
|
||||
|
|
@ -360,17 +358,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/amqp-messenger",
|
||||
"version": "v5.4.36",
|
||||
"version_normalized": "5.4.36.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/amqp-messenger.git",
|
||||
"reference": "456958ef89fffddc3935f3954a7eac255a5adb21"
|
||||
"reference": "822ad5f425ef362580273a175c45aa765220fe73"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/456958ef89fffddc3935f3954a7eac255a5adb21",
|
||||
"reference": "456958ef89fffddc3935f3954a7eac255a5adb21",
|
||||
"url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/822ad5f425ef362580273a175c45aa765220fe73",
|
||||
"reference": "822ad5f425ef362580273a175c45aa765220fe73",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -384,7 +382,7 @@
|
|||
"symfony/property-access": "^4.4|^5.0|^6.0",
|
||||
"symfony/serializer": "^4.4|^5.0|^6.0"
|
||||
},
|
||||
"time": "2024-02-14T16:15:37+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "symfony-messenger-bridge",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -412,7 +410,7 @@
|
|||
"description": "Symfony AMQP extension Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/amqp-messenger/tree/v5.4.36"
|
||||
"source": "https://github.com/symfony/amqp-messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -432,31 +430,31 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version_normalized": "2.5.3.0",
|
||||
"version": "v2.5.4",
|
||||
"version_normalized": "2.5.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d"
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"reference": "80d075412b557d41002320b96a096ca65aa2c98d",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2023-01-24T14:02:46+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -482,7 +480,7 @@
|
|||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -502,17 +500,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/doctrine-messenger",
|
||||
"version": "v5.4.38",
|
||||
"version_normalized": "5.4.38.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/doctrine-messenger.git",
|
||||
"reference": "0118ae0beaebeb5961ddeedc994454e1ac11f759"
|
||||
"reference": "3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/0118ae0beaebeb5961ddeedc994454e1ac11f759",
|
||||
"reference": "0118ae0beaebeb5961ddeedc994454e1ac11f759",
|
||||
"url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96",
|
||||
"reference": "3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -530,7 +528,7 @@
|
|||
"symfony/property-access": "^4.4|^5.0|^6.0",
|
||||
"symfony/serializer": "^4.4|^5.0|^6.0"
|
||||
},
|
||||
"time": "2024-03-17T15:02:26+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "symfony-messenger-bridge",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -558,7 +556,7 @@
|
|||
"description": "Symfony Doctrine Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/doctrine-messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -578,17 +576,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v5.4.35",
|
||||
"version_normalized": "5.4.35.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38"
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38",
|
||||
"reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -618,7 +616,7 @@
|
|||
"symfony/dependency-injection": "",
|
||||
"symfony/http-kernel": ""
|
||||
},
|
||||
"time": "2024-01-23T13:51:25+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -646,7 +644,7 @@
|
|||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -666,17 +664,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version_normalized": "2.5.3.0",
|
||||
"version": "v2.5.4",
|
||||
"version_normalized": "2.5.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
|
||||
"reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73"
|
||||
"reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
|
||||
"reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f",
|
||||
"reference": "e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -686,15 +684,15 @@
|
|||
"suggest": {
|
||||
"symfony/event-dispatcher-implementation": ""
|
||||
},
|
||||
"time": "2024-01-23T13:51:25+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -728,7 +726,7 @@
|
|||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -748,17 +746,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
"version": "v5.4.38",
|
||||
"version_normalized": "5.4.38.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mailer.git",
|
||||
"reference": "1d0ef27f1b19b9a0175a0e130d1df3113e5a130e"
|
||||
"reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/1d0ef27f1b19b9a0175a0e130d1df3113e5a130e",
|
||||
"reference": "1d0ef27f1b19b9a0175a0e130d1df3113e5a130e",
|
||||
"url": "https://api.github.com/repos/symfony/mailer/zipball/f732e1fafdf0f4a2d865e91f1018aaca174aeed9",
|
||||
"reference": "f732e1fafdf0f4a2d865e91f1018aaca174aeed9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -779,7 +777,7 @@
|
|||
"symfony/http-client": "^4.4|^5.0|^6.0",
|
||||
"symfony/messenger": "^4.4|^5.0|^6.0"
|
||||
},
|
||||
"time": "2024-03-19T10:19:25+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -807,7 +805,7 @@
|
|||
"description": "Helps sending emails",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mailer/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/mailer/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -827,17 +825,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/messenger",
|
||||
"version": "v5.4.38",
|
||||
"version_normalized": "5.4.38.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/messenger.git",
|
||||
"reference": "a69a4d07e20e4f298a5c030623a1a3328145a889"
|
||||
"reference": "c21d463ba813a3fe9833f46114310fac99bd66e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/messenger/zipball/a69a4d07e20e4f298a5c030623a1a3328145a889",
|
||||
"reference": "a69a4d07e20e4f298a5c030623a1a3328145a889",
|
||||
"url": "https://api.github.com/repos/symfony/messenger/zipball/c21d463ba813a3fe9833f46114310fac99bd66e0",
|
||||
"reference": "c21d463ba813a3fe9833f46114310fac99bd66e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -872,7 +870,7 @@
|
|||
"suggest": {
|
||||
"enqueue/messenger-adapter": "For using the php-enqueue library as a transport."
|
||||
},
|
||||
"time": "2024-03-19T10:19:25+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -900,7 +898,7 @@
|
|||
"description": "Helps applications send and receive messages to/from other applications or via message queues",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/messenger/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/messenger/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -920,17 +918,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v5.4.38",
|
||||
"version_normalized": "5.4.38.0",
|
||||
"version": "v5.4.45",
|
||||
"version_normalized": "5.4.45.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "82fa6be8a0295a3932df871e88fc8c8d77aa71d4"
|
||||
"reference": "8c1b9b3e5b52981551fc6044539af1d974e39064"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/82fa6be8a0295a3932df871e88fc8c8d77aa71d4",
|
||||
"reference": "82fa6be8a0295a3932df871e88fc8c8d77aa71d4",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/8c1b9b3e5b52981551fc6044539af1d974e39064",
|
||||
"reference": "8c1b9b3e5b52981551fc6044539af1d974e39064",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -956,7 +954,7 @@
|
|||
"symfony/property-info": "^4.4|^5.1|^6.0",
|
||||
"symfony/serializer": "^5.4.35|~6.3.12|^6.4.3"
|
||||
},
|
||||
"time": "2024-03-21T07:25:32+00:00",
|
||||
"time": "2024-10-23T20:18:32+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -988,7 +986,7 @@
|
|||
"mime-type"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/mime/tree/v5.4.38"
|
||||
"source": "https://github.com/symfony/mime/tree/v5.4.45"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1008,33 +1006,32 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.29.0",
|
||||
"version_normalized": "1.29.0.0",
|
||||
"version": "v1.31.0",
|
||||
"version_normalized": "1.31.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
|
||||
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"time": "2024-01-29T20:11:03+00:00",
|
||||
"time": "2024-09-09T11:45:10+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -1075,7 +1072,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1095,31 +1092,31 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.29.0",
|
||||
"version_normalized": "1.29.0.0",
|
||||
"version": "v1.31.0",
|
||||
"version_normalized": "1.31.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"reference": "3833d7255cc303546435cb650316bff708a1c75c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"time": "2024-01-29T20:11:03+00:00",
|
||||
"time": "2024-09-09T11:45:10+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -1159,7 +1156,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1179,28 +1176,28 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.29.0",
|
||||
"version_normalized": "1.29.0.0",
|
||||
"version": "v1.31.0",
|
||||
"version_normalized": "1.31.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
|
||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
||||
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"time": "2024-01-29T20:11:03+00:00",
|
||||
"time": "2024-09-09T11:45:10+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
"url": "https://github.com/symfony/polyfill",
|
||||
"name": "symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -1242,7 +1239,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1262,17 +1259,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/redis-messenger",
|
||||
"version": "v5.4.36",
|
||||
"version_normalized": "5.4.36.0",
|
||||
"version": "v5.4.48",
|
||||
"version_normalized": "5.4.48.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/redis-messenger.git",
|
||||
"reference": "54b107003c5abc03cc5077c8847678b432b1e602"
|
||||
"reference": "a097e8c6529a7179a732161bd5368629c6319899"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/redis-messenger/zipball/54b107003c5abc03cc5077c8847678b432b1e602",
|
||||
"reference": "54b107003c5abc03cc5077c8847678b432b1e602",
|
||||
"url": "https://api.github.com/repos/symfony/redis-messenger/zipball/a097e8c6529a7179a732161bd5368629c6319899",
|
||||
"reference": "a097e8c6529a7179a732161bd5368629c6319899",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1284,7 +1281,7 @@
|
|||
"symfony/property-access": "^4.4|^5.0|^6.0",
|
||||
"symfony/serializer": "^4.4|^5.0|^6.0"
|
||||
},
|
||||
"time": "2024-02-05T13:56:32+00:00",
|
||||
"time": "2024-11-13T13:58:00+00:00",
|
||||
"type": "symfony-messenger-bridge",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
|
@ -1312,7 +1309,7 @@
|
|||
"description": "Symfony Redis extension Messenger Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/redis-messenger/tree/v5.4.36"
|
||||
"source": "https://github.com/symfony/redis-messenger/tree/v5.4.48"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1332,17 +1329,17 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v2.5.3",
|
||||
"version_normalized": "2.5.3.0",
|
||||
"version": "v2.5.4",
|
||||
"version_normalized": "2.5.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3"
|
||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3",
|
||||
"reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f37b419f7aea2e9abf10abd261832cace12e3300",
|
||||
"reference": "f37b419f7aea2e9abf10abd261832cace12e3300",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -1356,15 +1353,15 @@
|
|||
"suggest": {
|
||||
"symfony/service-implementation": ""
|
||||
},
|
||||
"time": "2023-04-21T15:04:16+00:00",
|
||||
"time": "2024-09-25T14:11:13+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/symfony/contracts",
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
|
|
@ -1398,7 +1395,7 @@
|
|||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v2.5.3"
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v2.5.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -1417,6 +1414,6 @@
|
|||
"install-path": "../symfony/service-contracts"
|
||||
}
|
||||
],
|
||||
"dev": false,
|
||||
"dev": true,
|
||||
"dev-package-names": []
|
||||
}
|
||||
|
|
|
|||
90
plugins/email/vendor/composer/installed.php
vendored
90
plugins/email/vendor/composer/installed.php
vendored
|
|
@ -3,17 +3,17 @@
|
|||
'name' => 'getgrav/grav-plugin-email',
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => '9b38e4e031e87c79320dd30b46960125a0385453',
|
||||
'reference' => '831784509ec3bbc822c873000d4672112f8f9557',
|
||||
'type' => 'grav-plugin',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev' => false,
|
||||
'dev' => true,
|
||||
),
|
||||
'versions' => array(
|
||||
'doctrine/deprecations' => array(
|
||||
'pretty_version' => '1.1.3',
|
||||
'version' => '1.1.3.0',
|
||||
'reference' => 'dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab',
|
||||
'pretty_version' => '1.1.4',
|
||||
'version' => '1.1.4.0',
|
||||
'reference' => '31610dbb31faa98e6b5447b62340826f54fbc4e9',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../doctrine/deprecations',
|
||||
'aliases' => array(),
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
'getgrav/grav-plugin-email' => array(
|
||||
'pretty_version' => 'dev-develop',
|
||||
'version' => 'dev-develop',
|
||||
'reference' => '9b38e4e031e87c79320dd30b46960125a0385453',
|
||||
'reference' => '831784509ec3bbc822c873000d4672112f8f9557',
|
||||
'type' => 'grav-plugin',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
|
|
@ -80,45 +80,45 @@
|
|||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/amqp-messenger' => array(
|
||||
'pretty_version' => 'v5.4.36',
|
||||
'version' => '5.4.36.0',
|
||||
'reference' => '456958ef89fffddc3935f3954a7eac255a5adb21',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => '822ad5f425ef362580273a175c45aa765220fe73',
|
||||
'type' => 'symfony-messenger-bridge',
|
||||
'install_path' => __DIR__ . '/../symfony/amqp-messenger',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/deprecation-contracts' => array(
|
||||
'pretty_version' => 'v2.5.3',
|
||||
'version' => '2.5.3.0',
|
||||
'reference' => '80d075412b557d41002320b96a096ca65aa2c98d',
|
||||
'pretty_version' => 'v2.5.4',
|
||||
'version' => '2.5.4.0',
|
||||
'reference' => '605389f2a7e5625f273b53960dc46aeaf9c62918',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/doctrine-messenger' => array(
|
||||
'pretty_version' => 'v5.4.38',
|
||||
'version' => '5.4.38.0',
|
||||
'reference' => '0118ae0beaebeb5961ddeedc994454e1ac11f759',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => '3f5a6e1876fbf57e836ba0a02eb0a636e08c0d96',
|
||||
'type' => 'symfony-messenger-bridge',
|
||||
'install_path' => __DIR__ . '/../symfony/doctrine-messenger',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/event-dispatcher' => array(
|
||||
'pretty_version' => 'v5.4.35',
|
||||
'version' => '5.4.35.0',
|
||||
'reference' => '7a69a85c7ea5bdd1e875806a99c51a87d3a74b38',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => '72982eb416f61003e9bb6e91f8b3213600dcf9e9',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/event-dispatcher-contracts' => array(
|
||||
'pretty_version' => 'v2.5.3',
|
||||
'version' => '2.5.3.0',
|
||||
'reference' => '540f4c73e87fd0c71ca44a6aa305d024ac68cb73',
|
||||
'pretty_version' => 'v2.5.4',
|
||||
'version' => '2.5.4.0',
|
||||
'reference' => 'e0fe3d79b516eb75126ac6fa4cbf19b79b08c99f',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
|
||||
'aliases' => array(),
|
||||
|
|
@ -131,27 +131,27 @@
|
|||
),
|
||||
),
|
||||
'symfony/mailer' => array(
|
||||
'pretty_version' => 'v5.4.38',
|
||||
'version' => '5.4.38.0',
|
||||
'reference' => '1d0ef27f1b19b9a0175a0e130d1df3113e5a130e',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => 'f732e1fafdf0f4a2d865e91f1018aaca174aeed9',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/mailer',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/messenger' => array(
|
||||
'pretty_version' => 'v5.4.38',
|
||||
'version' => '5.4.38.0',
|
||||
'reference' => 'a69a4d07e20e4f298a5c030623a1a3328145a889',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => 'c21d463ba813a3fe9833f46114310fac99bd66e0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/messenger',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/mime' => array(
|
||||
'pretty_version' => 'v5.4.38',
|
||||
'version' => '5.4.38.0',
|
||||
'reference' => '82fa6be8a0295a3932df871e88fc8c8d77aa71d4',
|
||||
'pretty_version' => 'v5.4.45',
|
||||
'version' => '5.4.45.0',
|
||||
'reference' => '8c1b9b3e5b52981551fc6044539af1d974e39064',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/mime',
|
||||
'aliases' => array(),
|
||||
|
|
@ -164,18 +164,18 @@
|
|||
),
|
||||
),
|
||||
'symfony/polyfill-intl-idn' => array(
|
||||
'pretty_version' => 'v1.29.0',
|
||||
'version' => '1.29.0.0',
|
||||
'reference' => 'a287ed7475f85bf6f61890146edbc932c0fff919',
|
||||
'pretty_version' => 'v1.31.0',
|
||||
'version' => '1.31.0.0',
|
||||
'reference' => 'c36586dcf89a12315939e00ec9b4474adcb1d773',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/polyfill-intl-normalizer' => array(
|
||||
'pretty_version' => 'v1.29.0',
|
||||
'version' => '1.29.0.0',
|
||||
'reference' => 'bc45c394692b948b4d383a08d7753968bed9a83d',
|
||||
'pretty_version' => 'v1.31.0',
|
||||
'version' => '1.31.0.0',
|
||||
'reference' => '3833d7255cc303546435cb650316bff708a1c75c',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
|
||||
'aliases' => array(),
|
||||
|
|
@ -194,27 +194,27 @@
|
|||
),
|
||||
),
|
||||
'symfony/polyfill-php80' => array(
|
||||
'pretty_version' => 'v1.29.0',
|
||||
'version' => '1.29.0.0',
|
||||
'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b',
|
||||
'pretty_version' => 'v1.31.0',
|
||||
'version' => '1.31.0.0',
|
||||
'reference' => '60328e362d4c2c802a54fcbf04f9d3fb892b4cf8',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-php80',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/redis-messenger' => array(
|
||||
'pretty_version' => 'v5.4.36',
|
||||
'version' => '5.4.36.0',
|
||||
'reference' => '54b107003c5abc03cc5077c8847678b432b1e602',
|
||||
'pretty_version' => 'v5.4.48',
|
||||
'version' => '5.4.48.0',
|
||||
'reference' => 'a097e8c6529a7179a732161bd5368629c6319899',
|
||||
'type' => 'symfony-messenger-bridge',
|
||||
'install_path' => __DIR__ . '/../symfony/redis-messenger',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/service-contracts' => array(
|
||||
'pretty_version' => 'v2.5.3',
|
||||
'version' => '2.5.3.0',
|
||||
'reference' => 'a2329596ddc8fd568900e3fc76cba42489ecc7f3',
|
||||
'pretty_version' => 'v2.5.4',
|
||||
'version' => '2.5.4.0',
|
||||
'reference' => 'f37b419f7aea2e9abf10abd261832cace12e3300',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/service-contracts',
|
||||
'aliases' => array(),
|
||||
|
|
|
|||
|
|
@ -150,6 +150,67 @@ class MyTest extends TestCase
|
|||
}
|
||||
```
|
||||
|
||||
## Displaying deprecations after running a PHPUnit test suite
|
||||
|
||||
It is possible to integrate this library with PHPUnit to display all
|
||||
deprecations triggered during the test suite execution.
|
||||
|
||||
```xml
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
||||
colors="true"
|
||||
bootstrap="vendor/autoload.php"
|
||||
displayDetailsOnTestsThatTriggerDeprecations="true"
|
||||
failOnDeprecation="true"
|
||||
>
|
||||
<!-- one attribute to display the deprecations, the other to fail the test suite -->
|
||||
|
||||
<php>
|
||||
<!-- ensures native PHP deprecations are used -->
|
||||
<server name="DOCTRINE_DEPRECATIONS" value="trigger"/>
|
||||
</php>
|
||||
|
||||
<!-- ensures the @ operator in @trigger_error is ignored -->
|
||||
<source ignoreSuppressionOfDeprecations="true">
|
||||
<include>
|
||||
<directory>src</directory>
|
||||
</include>
|
||||
</source>
|
||||
</phpunit>
|
||||
```
|
||||
|
||||
Note that you can still trigger Deprecations in your code, provided you use the
|
||||
`#[WithoutErrorHandler]` attribute to disable PHPUnit's error handler for tests
|
||||
that call it. Be wary that this will disable all error handling, meaning it
|
||||
will mask any warnings or errors that would otherwise be caught by PHPUnit.
|
||||
|
||||
At the moment, it is not possible to disable deduplication with an environment
|
||||
variable, but you can use a bootstrap file to achieve that:
|
||||
|
||||
```php
|
||||
// tests/bootstrap.php
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||
|
||||
use Doctrine\Deprecations\Deprecation;
|
||||
|
||||
Deprecation::withoutDeduplication();
|
||||
```
|
||||
|
||||
Then, reference that file in your PHPUnit configuration:
|
||||
|
||||
```xml
|
||||
<phpunit …
|
||||
bootstrap="tests/bootstrap.php"
|
||||
…
|
||||
>
|
||||
…
|
||||
</phpunit>
|
||||
```
|
||||
|
||||
## What is a deprecation identifier?
|
||||
|
||||
An identifier for deprecations is just a link to any resource, most often a
|
||||
|
|
|
|||
|
|
@ -8,20 +8,18 @@
|
|||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^9",
|
||||
"phpstan/phpstan": "1.4.10 || 1.10.15",
|
||||
"phpstan/phpstan-phpunit": "^1.0",
|
||||
"doctrine/coding-standard": "^9 || ^12",
|
||||
"phpstan/phpstan": "1.4.10 || 2.0.3",
|
||||
"phpstan/phpstan-phpunit": "^1.0 || ^2",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"psr/log": "^1 || ^2 || ^3",
|
||||
"vimeo/psalm": "4.30.0 || 5.12.0"
|
||||
"psr/log": "^1 || ^2 || ^3"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
|
||||
"Doctrine\\Deprecations\\": "src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
|
|
|||
|
|
@ -173,9 +173,7 @@ class Deprecation
|
|||
self::delegateTriggerToBackend($message, $backtrace, $link, $package);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list<array{function: string, line?: int, file?: string, class?: class-string, type?: string, args?: mixed[], object?: object}> $backtrace
|
||||
*/
|
||||
/** @param list<array{function: string, line?: int, file?: string, class?: class-string, type?: string, args?: mixed[], object?: object}> $backtrace */
|
||||
private static function delegateTriggerToBackend(string $message, array $backtrace, string $link, string $package): void
|
||||
{
|
||||
$type = self::$type ?? self::getTypeFromEnv();
|
||||
|
|
@ -226,19 +224,19 @@ class Deprecation
|
|||
|
||||
public static function enableTrackingDeprecations(): void
|
||||
{
|
||||
self::$type = self::$type ?? 0;
|
||||
self::$type = self::$type ?? self::getTypeFromEnv();
|
||||
self::$type |= self::TYPE_TRACK_DEPRECATIONS;
|
||||
}
|
||||
|
||||
public static function enableWithTriggerError(): void
|
||||
{
|
||||
self::$type = self::$type ?? 0;
|
||||
self::$type = self::$type ?? self::getTypeFromEnv();
|
||||
self::$type |= self::TYPE_TRIGGER_ERROR;
|
||||
}
|
||||
|
||||
public static function enableWithPsrLogger(LoggerInterface $logger): void
|
||||
{
|
||||
self::$type = self::$type ?? 0;
|
||||
self::$type = self::$type ?? self::getTypeFromEnv();
|
||||
self::$type |= self::TYPE_PSR_LOGGER;
|
||||
self::$logger = $logger;
|
||||
}
|
||||
|
|
@ -289,9 +287,7 @@ class Deprecation
|
|||
return self::$triggeredDeprecations;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int-mask-of<self::TYPE_*>
|
||||
*/
|
||||
/** @return int-mask-of<self::TYPE_*> */
|
||||
private static function getTypeFromEnv(): int
|
||||
{
|
||||
switch ($_SERVER['DOCTRINE_DEPRECATIONS'] ?? $_ENV['DOCTRINE_DEPRECATIONS'] ?? null) {
|
||||
|
|
@ -26,17 +26,13 @@ trait VerifyDeprecations
|
|||
$this->doctrineNoDeprecationsExpectations[$identifier] = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @before
|
||||
*/
|
||||
/** @before */
|
||||
public function enableDeprecationTracking(): void
|
||||
{
|
||||
Deprecation::enableTrackingDeprecations();
|
||||
}
|
||||
|
||||
/**
|
||||
* @after
|
||||
*/
|
||||
/** @after */
|
||||
public function verifyDeprecationsAreTriggered(): void
|
||||
{
|
||||
foreach ($this->doctrineDeprecationsExpectations as $identifier => $expectation) {
|
||||
|
|
@ -306,6 +306,7 @@ class Connection
|
|||
$this->setupExchangeAndQueues(); // also setup normal exchange for delayed messages so delay queue can DLX messages to it
|
||||
}
|
||||
|
||||
$this->withConnectionExceptionRetry(function () use ($body, $headers, $delayInMs, $amqpStamp) {
|
||||
if (0 !== $delayInMs) {
|
||||
$this->publishWithDelay($body, $headers, $delayInMs, $amqpStamp);
|
||||
|
||||
|
|
@ -319,6 +320,7 @@ class Connection
|
|||
$headers,
|
||||
$amqpStamp
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -570,12 +572,17 @@ class Connection
|
|||
private function clearWhenDisconnected(): void
|
||||
{
|
||||
if (!$this->channel()->isConnected()) {
|
||||
$this->clear();
|
||||
}
|
||||
}
|
||||
|
||||
private function clear(): void
|
||||
{
|
||||
$this->amqpChannel = null;
|
||||
$this->amqpQueues = [];
|
||||
$this->amqpExchange = null;
|
||||
$this->amqpDelayExchange = null;
|
||||
}
|
||||
}
|
||||
|
||||
private function getDefaultPublishRoutingKey(): ?string
|
||||
{
|
||||
|
|
@ -593,6 +600,25 @@ class Connection
|
|||
{
|
||||
return (null !== $amqpStamp ? $amqpStamp->getRoutingKey() : null) ?? $this->getDefaultPublishRoutingKey();
|
||||
}
|
||||
|
||||
private function withConnectionExceptionRetry(callable $callable): void
|
||||
{
|
||||
$maxRetries = 3;
|
||||
$retries = 0;
|
||||
|
||||
retry:
|
||||
try {
|
||||
$callable();
|
||||
} catch (\AMQPConnectionException $e) {
|
||||
if (++$retries <= $maxRetries) {
|
||||
$this->clear();
|
||||
|
||||
goto retry;
|
||||
}
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!class_exists(\Symfony\Component\Messenger\Transport\AmqpExt\Connection::class, false)) {
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
vendor/
|
||||
composer.lock
|
||||
phpunit.xml
|
||||
|
|
@ -21,6 +21,7 @@ use Doctrine\DBAL\Platforms\MySQLPlatform;
|
|||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||
use Doctrine\DBAL\Query\QueryBuilder;
|
||||
use Doctrine\DBAL\Result;
|
||||
use Doctrine\DBAL\Schema\AbstractAsset;
|
||||
use Doctrine\DBAL\Schema\AbstractSchemaManager;
|
||||
use Doctrine\DBAL\Schema\Comparator;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
|
|
@ -289,7 +290,17 @@ class Connection implements ResetInterface
|
|||
{
|
||||
$configuration = $this->driverConnection->getConfiguration();
|
||||
$assetFilter = $configuration->getSchemaAssetsFilter();
|
||||
$configuration->setSchemaAssetsFilter(static function () { return true; });
|
||||
$configuration->setSchemaAssetsFilter(function ($tableName) {
|
||||
if ($tableName instanceof AbstractAsset) {
|
||||
$tableName = $tableName->getName();
|
||||
}
|
||||
|
||||
if (!\is_string($tableName)) {
|
||||
throw new \TypeError(sprintf('The table name must be an instance of "%s" or a string ("%s" given).', AbstractAsset::class, get_debug_type($tableName)));
|
||||
}
|
||||
|
||||
return $tableName === $this->configuration['table_name'];
|
||||
});
|
||||
$this->updateSchema();
|
||||
$configuration->setSchemaAssetsFilter($assetFilter);
|
||||
$this->autoSetup = false;
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
vendor/
|
||||
composer.lock
|
||||
phpunit.xml
|
||||
|
|
@ -47,7 +47,7 @@ final class WrappedListener
|
|||
$this->pretty = $this->name.'::'.$listener[1];
|
||||
} elseif ($listener instanceof \Closure) {
|
||||
$r = new \ReflectionFunction($listener);
|
||||
if (str_contains($r->name, '{closure}')) {
|
||||
if (str_contains($r->name, '{closure')) {
|
||||
$this->pretty = $this->name = 'closure';
|
||||
} elseif ($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass()) {
|
||||
$this->name = $class->name;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
|
|||
use Symfony\Component\Mime\RawMessage;
|
||||
|
||||
/**
|
||||
* Interface for mailers able to send emails synchronous and/or asynchronous.
|
||||
* Interface for mailers able to send emails synchronously and/or asynchronously.
|
||||
*
|
||||
* Implementations must support synchronous and asynchronous sending.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ class SendmailTransport extends AbstractTransport
|
|||
$this->stream = new ProcessStream();
|
||||
if (str_contains($this->command, ' -bs')) {
|
||||
$this->stream->setCommand($this->command);
|
||||
$this->stream->setInteractive(true);
|
||||
$this->transport = new SmtpTransport($this->stream, $dispatcher, $logger);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,11 +25,18 @@ final class ProcessStream extends AbstractStream
|
|||
{
|
||||
private $command;
|
||||
|
||||
private $interactive = false;
|
||||
|
||||
public function setCommand(string $command)
|
||||
{
|
||||
$this->command = $command;
|
||||
}
|
||||
|
||||
public function setInteractive(bool $interactive)
|
||||
{
|
||||
$this->interactive = $interactive;
|
||||
}
|
||||
|
||||
public function initialize(): void
|
||||
{
|
||||
$descriptorSpec = [
|
||||
|
|
@ -57,11 +64,15 @@ final class ProcessStream extends AbstractStream
|
|||
$err = stream_get_contents($this->err);
|
||||
fclose($this->err);
|
||||
if (0 !== $exitCode = proc_close($this->stream)) {
|
||||
throw new TransportException('Process failed with exit code '.$exitCode.': '.$out.$err);
|
||||
$errorMessage = 'Process failed with exit code '.$exitCode.': '.$out.$err;
|
||||
}
|
||||
}
|
||||
|
||||
parent::terminate();
|
||||
|
||||
if (!$this->interactive && isset($errorMessage)) {
|
||||
throw new TransportException($errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getReadConnectionDescription(): string
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ class SendFailedMessageForRetryListener implements EventSubscriberInterface
|
|||
$retryEnvelope = $this->withLimitedHistory($envelope, new DelayStamp($delay), new RedeliveryStamp($retryCount));
|
||||
|
||||
// re-send the message for retry
|
||||
$this->getSenderForTransport($event->getReceiverName())->send($retryEnvelope);
|
||||
$retryEnvelope = $this->getSenderForTransport($event->getReceiverName())->send($retryEnvelope);
|
||||
|
||||
if (null !== $this->eventDispatcher) {
|
||||
$this->eventDispatcher->dispatch(new WorkerMessageRetriedEvent($retryEnvelope, $event->getReceiverName()));
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ final class HandlerDescriptor
|
|||
|
||||
$r = new \ReflectionFunction($handler);
|
||||
|
||||
if (str_contains($r->name, '{closure}')) {
|
||||
if (str_contains($r->name, '{closure')) {
|
||||
$this->name = 'Closure';
|
||||
} elseif (!$handler = $r->getClosureThis()) {
|
||||
$class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass();
|
||||
|
|
|
|||
|
|
@ -180,6 +180,20 @@ abstract class AbstractHeader implements HeaderInterface
|
|||
$tokens[] = $encodedToken;
|
||||
}
|
||||
|
||||
foreach ($tokens as $i => $token) {
|
||||
// whitespace(s) between 2 encoded tokens
|
||||
if (
|
||||
0 < $i
|
||||
&& isset($tokens[$i + 1])
|
||||
&& preg_match('~^[\t ]+$~', $token)
|
||||
&& $this->tokenNeedsEncoding($tokens[$i - 1])
|
||||
&& $this->tokenNeedsEncoding($tokens[$i + 1])
|
||||
) {
|
||||
$tokens[$i - 1] .= $token.$tokens[$i + 1];
|
||||
array_splice($tokens, $i, 2);
|
||||
}
|
||||
}
|
||||
|
||||
return $tokens;
|
||||
}
|
||||
|
||||
|
|
|
|||
11
plugins/email/vendor/symfony/mime/Message.php
vendored
11
plugins/email/vendor/symfony/mime/Message.php
vendored
|
|
@ -124,11 +124,18 @@ class Message extends RawMessage
|
|||
|
||||
public function ensureValidity()
|
||||
{
|
||||
if (!$this->headers->has('To') && !$this->headers->has('Cc') && !$this->headers->has('Bcc')) {
|
||||
$to = (null !== $header = $this->headers->get('To')) ? $header->getBody() : null;
|
||||
$cc = (null !== $header = $this->headers->get('Cc')) ? $header->getBody() : null;
|
||||
$bcc = (null !== $header = $this->headers->get('Bcc')) ? $header->getBody() : null;
|
||||
|
||||
if (!$to && !$cc && !$bcc) {
|
||||
throw new LogicException('An email must have a "To", "Cc", or "Bcc" header.');
|
||||
}
|
||||
|
||||
if (!$this->headers->has('From') && !$this->headers->has('Sender')) {
|
||||
$from = (null !== $header = $this->headers->get('From')) ? $header->getBody() : null;
|
||||
$sender = (null !== $header = $this->headers->get('Sender')) ? $header->getBody() : null;
|
||||
|
||||
if (!$from && !$sender) {
|
||||
throw new LogicException('An email must have a "From" or a "Sender" header.');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ final class Idn
|
|||
*/
|
||||
public static function idn_to_ascii($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
if (self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ final class Idn
|
|||
*/
|
||||
public static function idn_to_utf8($domainName, $options = self::IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = [])
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
if (self::INTL_IDNA_VARIANT_2003 === $variant) {
|
||||
@trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', \E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
|
|
@ -280,10 +280,6 @@ final class Idn
|
|||
|
||||
switch ($data['status']) {
|
||||
case 'disallowed':
|
||||
$info->errors |= self::ERROR_DISALLOWED;
|
||||
|
||||
// no break.
|
||||
|
||||
case 'valid':
|
||||
$str .= mb_chr($codePoint, 'utf-8');
|
||||
|
||||
|
|
@ -294,7 +290,7 @@ final class Idn
|
|||
break;
|
||||
|
||||
case 'mapped':
|
||||
$str .= $data['mapping'];
|
||||
$str .= $transitional && 0x1E9E === $codePoint ? 'ss' : $data['mapping'];
|
||||
|
||||
break;
|
||||
|
||||
|
|
@ -346,6 +342,18 @@ final class Idn
|
|||
$validationOptions = $options;
|
||||
|
||||
if ('xn--' === substr($label, 0, 4)) {
|
||||
// Step 4.1. If the label contains any non-ASCII code point (i.e., a code point greater than U+007F),
|
||||
// record that there was an error, and continue with the next label.
|
||||
if (preg_match('/[^\x00-\x7F]/', $label)) {
|
||||
$info->errors |= self::ERROR_PUNYCODE;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// Step 4.2. Attempt to convert the rest of the label to Unicode according to Punycode [RFC3492]. If
|
||||
// that conversion fails, record that there was an error, and continue
|
||||
// with the next label. Otherwise replace the original label in the string by the results of the
|
||||
// conversion.
|
||||
try {
|
||||
$label = self::punycodeDecode(substr($label, 4));
|
||||
} catch (\Exception $e) {
|
||||
|
|
@ -516,6 +524,8 @@ final class Idn
|
|||
if ('-' === substr($label, -1, 1)) {
|
||||
$info->errors |= self::ERROR_TRAILING_HYPHEN;
|
||||
}
|
||||
} elseif ('xn--' === substr($label, 0, 4)) {
|
||||
$info->errors |= self::ERROR_PUNYCODE;
|
||||
}
|
||||
|
||||
// Step 4. The label must not contain a U+002E (.) FULL STOP.
|
||||
|
|
|
|||
|
|
@ -20,9 +20,8 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
"php": ">=7.2",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" },
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Php80\\": "" },
|
||||
|
|
|
|||
|
|
@ -121,7 +121,21 @@ class Connection
|
|||
return $redis;
|
||||
}
|
||||
|
||||
$redis->connect($host, $port);
|
||||
@$redis->connect($host, $port);
|
||||
|
||||
$error = null;
|
||||
set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });
|
||||
|
||||
try {
|
||||
$isConnected = $redis->isConnected();
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
|
||||
if (!$isConnected) {
|
||||
throw new InvalidArgumentException('Redis connection failed: '.(preg_match('/^Redis::p?connect\(\): (.*)/', $error ?? $redis->getLastError() ?? '', $matches) ? \sprintf(' (%s)', $matches[1]) : ''));
|
||||
}
|
||||
|
||||
$redis->setOption(\Redis::OPT_SERIALIZER, $serializer);
|
||||
|
||||
if (null !== $auth && !$redis->auth($auth)) {
|
||||
|
|
@ -304,7 +318,7 @@ class Connection
|
|||
try {
|
||||
// This could soon be optimized with https://github.com/antirez/redis/issues/5212 or
|
||||
// https://github.com/antirez/redis/issues/6256
|
||||
$pendingMessages = $this->connection->xpending($this->stream, $this->group, '-', '+', 1);
|
||||
$pendingMessages = $this->connection->xpending($this->stream, $this->group, '-', '+', 1) ?: [];
|
||||
} catch (\RedisException $e) {
|
||||
throw new TransportException($e->getMessage(), 0, $e);
|
||||
}
|
||||
|
|
@ -389,6 +403,7 @@ class Connection
|
|||
$this->group,
|
||||
$this->consumer,
|
||||
[$this->stream => $messageId],
|
||||
1,
|
||||
1
|
||||
);
|
||||
} catch (\RedisException $e) {
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
vendor/
|
||||
composer.lock
|
||||
phpunit.xml
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
# v1.3.7
|
||||
## 10/28/2023
|
||||
|
||||
1. [](#improved)
|
||||
* PHP 8.4 fixes - Implicitly nullable parameter declarations deprecate
|
||||
|
||||
# v1.3.6
|
||||
## 10/11/2023
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: Flex Objects
|
||||
slug: flex-objects
|
||||
type: plugin
|
||||
version: 1.3.6
|
||||
version: 1.3.7
|
||||
description: Flex Objects plugin allows you to manage Flex Objects in Grav Admin.
|
||||
icon: list-alt
|
||||
author:
|
||||
|
|
|
|||
|
|
@ -1472,7 +1472,7 @@ class AdminController
|
|||
* @param FlexObjectInterface|null $object
|
||||
* @return FlexFormInterface
|
||||
*/
|
||||
public function getForm(FlexObjectInterface $object = null): FlexFormInterface
|
||||
public function getForm(?FlexObjectInterface $object = null): FlexFormInterface
|
||||
{
|
||||
$object = $object ?? $this->getObject();
|
||||
if (!$object) {
|
||||
|
|
@ -1508,7 +1508,7 @@ class AdminController
|
|||
* @param FlexDirectoryInterface|null $directory
|
||||
* @return FlexFormInterface
|
||||
*/
|
||||
public function getDirectoryForm(FlexDirectoryInterface $directory = null): FlexFormInterface
|
||||
public function getDirectoryForm(?FlexDirectoryInterface $directory = null): FlexFormInterface
|
||||
{
|
||||
$directory = $directory ?? $this->getDirectory();
|
||||
if (!$directory) {
|
||||
|
|
@ -1541,7 +1541,7 @@ class AdminController
|
|||
* @param string|null $key
|
||||
* @return FlexObjectInterface|null
|
||||
*/
|
||||
public function getObject(string $key = null): ?FlexObjectInterface
|
||||
public function getObject(?string $key = null): ?FlexObjectInterface
|
||||
{
|
||||
if (null === $this->object) {
|
||||
$key = $key ?? $this->id;
|
||||
|
|
@ -1588,7 +1588,7 @@ class AdminController
|
|||
* @param string|null $type
|
||||
* @return FlexDirectoryInterface|null
|
||||
*/
|
||||
public function getDirectory(string $type = null): ?FlexDirectoryInterface
|
||||
public function getDirectory(?string $type = null): ?FlexDirectoryInterface
|
||||
{
|
||||
$type = $type ?? $this->target;
|
||||
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param mixed $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function getPost(string $name = null, $default = null)
|
||||
public function getPost(?string $name = null, $default = null)
|
||||
{
|
||||
$body = $this->request->getParsedBody();
|
||||
|
||||
|
|
@ -176,7 +176,7 @@ abstract class AbstractController implements RequestHandlerInterface
|
|||
* @param string|null $type
|
||||
* @return FlexForm
|
||||
*/
|
||||
public function getForm(string $type = null): FlexFormInterface
|
||||
public function getForm(?string $type = null): FlexFormInterface
|
||||
{
|
||||
$object = $this->getObject();
|
||||
if (!$object) {
|
||||
|
|
|
|||
|
|
@ -470,7 +470,7 @@ class ObjectController extends AbstractController
|
|||
* @return void
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function checkAuthorization(string $action, string $scope = null): void
|
||||
public function checkAuthorization(string $action, ?string $scope = null): void
|
||||
{
|
||||
$object = $this->getObject();
|
||||
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ class Flex implements FlexInterface
|
|||
* @param bool $keepMissing
|
||||
* @return array<FlexDirectoryInterface|null>
|
||||
*/
|
||||
public function getDirectories(array $types = null, bool $keepMissing = false): array
|
||||
public function getDirectories(?array $types = null, bool $keepMissing = false): array
|
||||
{
|
||||
return $this->flex->getDirectories($types, $keepMissing);
|
||||
}
|
||||
|
|
@ -147,7 +147,7 @@ class Flex implements FlexInterface
|
|||
* @param string|null $keyField
|
||||
* @return FlexCollectionInterface|null
|
||||
*/
|
||||
public function getCollection(string $type, array $keys = null, string $keyField = null): ?FlexCollectionInterface
|
||||
public function getCollection(string $type, ?array $keys = null, ?string $keyField = null): ?FlexCollectionInterface
|
||||
{
|
||||
return $this->flex->getCollection($type, $keys, $keyField);
|
||||
}
|
||||
|
|
@ -185,7 +185,7 @@ class Flex implements FlexInterface
|
|||
* @param string|null $keyField
|
||||
* @return FlexObjectInterface|null
|
||||
*/
|
||||
public function getObject(string $key, string $type = null, string $keyField = null): ?FlexObjectInterface
|
||||
public function getObject(string $key, ?string $type = null, ?string $keyField = null): ?FlexObjectInterface
|
||||
{
|
||||
return $this->flex->getObject($key, $type, $keyField);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
# v7.4.2
|
||||
## 10/28/2024
|
||||
|
||||
1. [](#improved)
|
||||
* Enhanced the `input` tag to include a disabled attribute [$601](https://github.com/getgrav/grav-plugin-form/pull/601)
|
||||
* Updated logging methods to support Monolog2+
|
||||
|
||||
# v7.4.1
|
||||
## 10/22/2024
|
||||
|
||||
1. [](#improved)
|
||||
* `honeypot` field tweaks
|
||||
|
||||
# v7.4.0
|
||||
## 03/29/2024
|
||||
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
.form-group.has-errors{background:rgba(255,0,0,.05);border:1px solid rgba(255,0,0,.2);border-radius:3px;margin:0 -5px;padding:0 5px}.form-errors{color:#b52b27}.form-honeybear{visibility:hidden;position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.form-errors p{margin:0}.form-input-file input{display:none}.form-input-file .dz-default.dz-message{position:absolute;text-align:center;left:0;right:0;top:50%;transform:translateY(-50%);margin:0}.form-input-file.dropzone{position:relative;min-height:70px;border-radius:3px;margin-bottom:.85rem;border:2px dashed #ccc;color:#aaa;padding:.5rem}.form-input-file.dropzone .dz-preview{margin:.5rem}.form-input-file.dropzone .dz-preview:hover{z-index:2}.form-input-file.dropzone .dz-preview .dz-error-message{min-width:140px;width:auto}.form-input-file.dropzone .dz-preview .dz-image,.form-input-file.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:3px;z-index:1}.form-tabs .tabs-nav{display:flex;padding-top:1px;margin-bottom:-1px}.form-tabs .tabs-nav a{flex:1;transition:color .5s ease,background .5s ease;cursor:pointer;text-align:center;padding:10px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #ccc;border-radius:5px 5px 0 0}.form-tabs .tabs-nav a.active{border:1px solid #ccc;border-bottom:1px solid rgba(0,0,0,0);margin:0 -1px}.form-tabs .tabs-nav a.active span{color:#000}.form-tabs .tabs-nav span{display:inline-block;line-height:1.1}.form-tabs.subtle .tabs-nav{margin-right:0 !important}.form-tabs .tabs-content .tab__content{display:none;padding-top:2rem}.form-tabs .tabs-content .tab__content.active{display:block}.checkboxes{display:inline-block}.checkboxes label{display:inline;cursor:pointer;position:relative;padding:0 0 0 20px;margin-right:15px}.checkboxes label:before{content:"";display:inline-block;width:20px;height:20px;left:0;margin-top:0;margin-right:10px;position:absolute;border-radius:3px;border:1px solid #e6e6e6}.checkboxes input[type=checkbox]{display:none}.checkboxes input[type=checkbox]:checked+label:before{content:"✓";font-size:20px;line-height:1;text-align:center}.checkboxes.toggleable label{margin-right:0}.form-field-toggleable .checkboxes.toggleable{margin-right:5px;vertical-align:middle}.form-field-toggleable .checkboxes+label{display:inline-block}.switch-toggle{display:inline-flex;overflow:hidden;border-radius:3px;line-height:35px;border:1px solid #ccc}.switch-toggle input[type=radio]{position:absolute;visibility:hidden;display:none}.switch-toggle label{display:inline-block;cursor:pointer;padding:0 15px;margin:0;white-space:nowrap;color:inherit;transition:background-color .5s ease}.switch-toggle input.highlight:checked+label{background:#333;color:#fff}.switch-toggle input:checked+label{color:#fff;background:#999}.signature-pad{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:10px;width:100%;height:100%;max-width:700px;max-height:460px;border:1px solid #f0f0f0;background-color:#fff;padding:16px}.signature-pad--body{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;border:1px solid #f6f6f6;min-height:100px}.signature-pad--body canvas{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:4px;box-shadow:0 0 5px rgba(0,0,0,.02) inset}.signature-pad--footer{color:#c3c3c3;text-align:center;font-size:1.2em}.signature-pad--actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:8px}[data-grav-field=array] .form-row{display:flex;align-items:center;margin-bottom:.5rem}[data-grav-field=array] .form-row>input,[data-grav-field=array] .form-row>textarea{margin:0 .5rem;display:inline-block}.form-data.basic-captcha .form-input-wrapper{border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.form-data.basic-captcha .form-input-prepend{display:flex;color:#333;background-color:#ccc;flex-shrink:0}.form-data.basic-captcha .form-input-prepend img{margin:0}.form-data.basic-captcha .form-input-prepend button>svg{margin:0 8px;width:18px;height:18px}.form-data.basic-captcha input.form-input{border:0}/*# sourceMappingURL=form-styles.css.map */
|
||||
.form-group.has-errors{background:rgba(255,0,0,.05);border:1px solid rgba(255,0,0,.2);border-radius:3px;margin:0 -5px;padding:0 5px}.form-errors{color:#b52b27}.form-honeybear{display:none;position:absolute !important;height:1px;width:1px;overflow:hidden;clip-path:rect(0px, 1px, 1px, 0px)}.form-errors p{margin:0}.form-input-file input{display:none}.form-input-file .dz-default.dz-message{position:absolute;text-align:center;left:0;right:0;top:50%;transform:translateY(-50%);margin:0}.form-input-file.dropzone{position:relative;min-height:70px;border-radius:3px;margin-bottom:.85rem;border:2px dashed #ccc;color:#aaa;padding:.5rem}.form-input-file.dropzone .dz-preview{margin:.5rem}.form-input-file.dropzone .dz-preview:hover{z-index:2}.form-input-file.dropzone .dz-preview .dz-error-message{min-width:140px;width:auto}.form-input-file.dropzone .dz-preview .dz-image,.form-input-file.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:3px;z-index:1}.form-tabs .tabs-nav{display:flex;padding-top:1px;margin-bottom:-1px}.form-tabs .tabs-nav a{flex:1;transition:color .5s ease,background .5s ease;cursor:pointer;text-align:center;padding:10px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #ccc;border-radius:5px 5px 0 0}.form-tabs .tabs-nav a.active{border:1px solid #ccc;border-bottom:1px solid rgba(0,0,0,0);margin:0 -1px}.form-tabs .tabs-nav a.active span{color:#000}.form-tabs .tabs-nav span{display:inline-block;line-height:1.1}.form-tabs.subtle .tabs-nav{margin-right:0 !important}.form-tabs .tabs-content .tab__content{display:none;padding-top:2rem}.form-tabs .tabs-content .tab__content.active{display:block}.checkboxes{display:inline-block}.checkboxes label{display:inline;cursor:pointer;position:relative;padding:0 0 0 20px;margin-right:15px}.checkboxes label:before{content:"";display:inline-block;width:20px;height:20px;left:0;margin-top:0;margin-right:10px;position:absolute;border-radius:3px;border:1px solid #e6e6e6}.checkboxes input[type=checkbox]{display:none}.checkboxes input[type=checkbox]:checked+label:before{content:"✓";font-size:20px;line-height:1;text-align:center}.checkboxes.toggleable label{margin-right:0}.form-field-toggleable .checkboxes.toggleable{margin-right:5px;vertical-align:middle}.form-field-toggleable .checkboxes+label{display:inline-block}.switch-toggle{display:inline-flex;overflow:hidden;border-radius:3px;line-height:35px;border:1px solid #ccc}.switch-toggle input[type=radio]{position:absolute;visibility:hidden;display:none}.switch-toggle label{display:inline-block;cursor:pointer;padding:0 15px;margin:0;white-space:nowrap;color:inherit;transition:background-color .5s ease}.switch-toggle input.highlight:checked+label{background:#333;color:#fff}.switch-toggle input:checked+label{color:#fff;background:#999}.signature-pad{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:10px;width:100%;height:100%;max-width:700px;max-height:460px;border:1px solid #f0f0f0;background-color:#fff;padding:16px}.signature-pad--body{position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;border:1px solid #f6f6f6;min-height:100px}.signature-pad--body canvas{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:4px;box-shadow:0 0 5px rgba(0,0,0,.02) inset}.signature-pad--footer{color:#c3c3c3;text-align:center;font-size:1.2em}.signature-pad--actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:8px}[data-grav-field=array] .form-row{display:flex;align-items:center;margin-bottom:.5rem}[data-grav-field=array] .form-row>input,[data-grav-field=array] .form-row>textarea{margin:0 .5rem;display:inline-block}.form-data.basic-captcha .form-input-wrapper{border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.form-data.basic-captcha .form-input-prepend{display:flex;color:#333;background-color:#ccc;flex-shrink:0}.form-data.basic-captcha .form-input-prepend img{margin:0}.form-data.basic-captcha .form-input-prepend button>svg{margin:0 8px;width:18px;height:18px}.form-data.basic-captcha input.form-input{border:0}/*# sourceMappingURL=form-styles.css.map */
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../scss/form-styles.scss"],"names":[],"mappings":"CAGA,uBACI,6BACA,kCACA,kBACA,cACA,cAGJ,aACI,cAGJ,gBACI,kBACA,6BACA,WACA,UACA,gBACA,8BAGJ,eACI,SAKA,uBACI,aAGJ,wCACI,kBACA,kBACA,OACA,QACA,QACA,2BACA,SAGJ,0BACI,kBACA,gBACA,kBACA,qBACA,uBACA,WACA,cAEA,sCACI,aAEA,4CACI,UAGJ,wDACI,gBACA,WAGJ,gHAEI,kBACA,UAWZ,qBACI,aACA,gBAEA,mBAEA,uBACI,OACA,8CACA,eACA,kBACA,aACA,aACA,mBACA,uBACA,6BACA,0BAEA,8BACI,sBACA,sCACA,cAEA,mCACI,MAtGA,KA2GZ,0BACI,qBACA,gBAKR,4BACI,0BAKA,uCACI,aACA,iBAEA,8CACI,cAOhB,YACI,qBAEA,kBACI,eACA,eACA,kBACA,mBACA,kBAGJ,yBACI,WACA,qBACA,WACA,YACA,OACA,aACA,kBACA,kBACA,kBAEA,yBAGJ,iCACI,aAEJ,sDACI,YACA,eACA,cACA,kBAGJ,6BACI,eAMJ,8CACI,iBACA,sBAEJ,yCACI,qBAKR,eACI,oBACA,gBACA,kBACA,iBACA,sBAEA,iCACI,kBACA,kBACA,aAGJ,qBACI,qBACA,eACA,eACA,SACA,mBACA,cACA,qCAGJ,6CACI,gBACA,WAGJ,mCACI,WACA,gBAOR,eACI,kBACA,oBACA,oBACA,aACA,4BACA,6BACA,0BACA,sBACA,eACA,WACA,YACA,gBACA,iBACA,yBACA,sBACA,aAGJ,qBACI,kBACA,mBACA,WACA,OACA,yBACA,iBAGJ,4BACI,kBACA,OACA,MACA,WACA,YACA,kBACA,yCAGJ,uBACI,cACA,kBACA,gBAGJ,wBACI,oBACA,oBACA,aACA,yBACA,sBACA,8BACA,eAGJ,kCACI,aACA,mBACA,oBAGJ,mFAGI,eACA,qBAIA,6CACI,sBACA,kBACA,aACA,gBAEJ,6CACI,aACA,WACA,sBACA,cACA,iDACI,SAEJ,wDACI,aACA,WACA,YAGR,0CACI","file":"form-styles.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../scss/form-styles.scss"],"names":[],"mappings":"CAGA,uBACI,6BACA,kCACA,kBACA,cACA,cAGJ,aACI,cAGJ,gBACI,aACA,6BACA,WACA,UACA,gBACA,mCAGJ,eACI,SAKA,uBACI,aAGJ,wCACI,kBACA,kBACA,OACA,QACA,QACA,2BACA,SAGJ,0BACI,kBACA,gBACA,kBACA,qBACA,uBACA,WACA,cAEA,sCACI,aAEA,4CACI,UAGJ,wDACI,gBACA,WAGJ,gHAEI,kBACA,UAWZ,qBACI,aACA,gBAEA,mBAEA,uBACI,OACA,8CACA,eACA,kBACA,aACA,aACA,mBACA,uBACA,6BACA,0BAEA,8BACI,sBACA,sCACA,cAEA,mCACI,MAtGA,KA2GZ,0BACI,qBACA,gBAKR,4BACI,0BAKA,uCACI,aACA,iBAEA,8CACI,cAOhB,YACI,qBAEA,kBACI,eACA,eACA,kBACA,mBACA,kBAGJ,yBACI,WACA,qBACA,WACA,YACA,OACA,aACA,kBACA,kBACA,kBAEA,yBAGJ,iCACI,aAEJ,sDACI,YACA,eACA,cACA,kBAGJ,6BACI,eAMJ,8CACI,iBACA,sBAEJ,yCACI,qBAKR,eACI,oBACA,gBACA,kBACA,iBACA,sBAEA,iCACI,kBACA,kBACA,aAGJ,qBACI,qBACA,eACA,eACA,SACA,mBACA,cACA,qCAGJ,6CACI,gBACA,WAGJ,mCACI,WACA,gBAOR,eACI,kBACA,oBACA,oBACA,aACA,4BACA,6BACA,0BACA,sBACA,eACA,WACA,YACA,gBACA,iBACA,yBACA,sBACA,aAGJ,qBACI,kBACA,mBACA,WACA,OACA,yBACA,iBAGJ,4BACI,kBACA,OACA,MACA,WACA,YACA,kBACA,yCAGJ,uBACI,cACA,kBACA,gBAGJ,wBACI,oBACA,oBACA,aACA,yBACA,sBACA,8BACA,eAGJ,kCACI,aACA,mBACA,oBAGJ,mFAGI,eACA,qBAIA,6CACI,sBACA,kBACA,aACA,gBAEJ,6CACI,aACA,WACA,sBACA,cACA,iDACI,SAEJ,wDACI,aACA,WACA,YAGR,0CACI","file":"form-styles.css"}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
name: Form
|
||||
slug: form
|
||||
type: plugin
|
||||
version: 7.4.0
|
||||
version: 7.4.2
|
||||
description: Enables forms handling and processing
|
||||
icon: check-square
|
||||
author:
|
||||
|
|
|
|||
|
|
@ -506,7 +506,7 @@ class FormPlugin extends Plugin
|
|||
'message' => $message
|
||||
]));
|
||||
|
||||
$this->grav['log']->addWarning('Form reCAPTCHA Errors: [' . $uri->route() . '] ' . json_encode($errors));
|
||||
$this->grav['log']->warning('Form reCAPTCHA Errors: [' . $uri->route() . '] ' . json_encode($errors));
|
||||
|
||||
$event->stopPropagation();
|
||||
|
||||
|
|
@ -556,7 +556,7 @@ class FormPlugin extends Plugin
|
|||
'message' => $message
|
||||
]));
|
||||
|
||||
$this->grav['log']->addWarning('Form Turnstile invalid: [' . $uri->route() . '] ' . json_encode($content));
|
||||
$this->grav['log']->warning('Form Turnstile invalid: [' . $uri->route() . '] ' . json_encode($content));
|
||||
$event->stopPropagation();
|
||||
return;
|
||||
}
|
||||
|
|
@ -1262,7 +1262,7 @@ class FormPlugin extends Plugin
|
|||
if ($forms) {
|
||||
$this->forms = Utils::arrayMergeRecursiveUnique($this->forms, $forms);
|
||||
if ($this->config()['debug']) {
|
||||
$this->grav['log']->addDebug(sprintf("<<<< Loaded cached forms: %s\n%s", $this->getFormCacheId(), $this->arrayToString($this->forms)));
|
||||
$this->grav['log']->debug(sprintf("<<<< Loaded cached forms: %s\n%s", $this->getFormCacheId(), $this->arrayToString($this->forms)));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1286,7 +1286,7 @@ class FormPlugin extends Plugin
|
|||
|
||||
$cache->save($cache_id, $this->forms);
|
||||
if ($this->config()['debug']) {
|
||||
$this->grav['log']->addDebug(sprintf(">>>> Saved cached forms: %s\n%s", $this->getFormCacheId(), $this->arrayToString($this->forms)));
|
||||
$this->grav['log']->debug(sprintf(">>>> Saved cached forms: %s\n%s", $this->getFormCacheId(), $this->arrayToString($this->forms)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ $form-active-color: #000;
|
|||
}
|
||||
|
||||
.form-honeybear {
|
||||
visibility: hidden;
|
||||
display: none;
|
||||
position: absolute !important;
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
overflow: hidden;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip-path: rect(0px, 1px, 1px, 0px);
|
||||
}
|
||||
|
||||
.form-errors p {
|
||||
|
|
|
|||
|
|
@ -12,30 +12,30 @@
|
|||
{% set value = field.default|merge(value) %}
|
||||
{% endif %}
|
||||
|
||||
<div class="checkboxes {{ form_field_wrapper_classes }} {{ field.wrapper_classes }}">
|
||||
{% for key, text in field.options %}
|
||||
|
||||
{% set id = field.id|default(field.name)|hyphenize ~ '-' ~ key %}
|
||||
{% set name = field.use == 'keys' ? key : id %}
|
||||
{% set val = field.use == 'keys' ? '1' : key %}
|
||||
{% set checked = (field.use == 'keys' ? value[key] : key in value) %}
|
||||
{% set help = (key in field.help_options|keys ? field.help_options[key] : false) %}
|
||||
|
||||
<div class="checkboxes {{ form_field_wrapper_classes }} {{ field.wrapper_classes }}">
|
||||
{% set disabled = key in field.disabled_options %}
|
||||
<input type="checkbox"
|
||||
id="{{ id|e }}"
|
||||
value="{{ val|e }}"
|
||||
name="{{ (scope ~ field.name)|fieldName ~ '[' ~ name ~ ']' }}"
|
||||
class="{{ form_field_checkbox_classes }} {{ field.classes }}"
|
||||
{% if checked %}checked="checked"{% endif %}
|
||||
{% if field.disabled or isDisabledToggleable %}disabled="disabled"{% endif %}
|
||||
{% if disabled %}disabled="disabled"{% endif %}
|
||||
>
|
||||
<label style="display: inline" for="{{ id|e }}">
|
||||
<label style="display: inline; {% if disabled %}opacity: 0.6; cursor: no-drop;{% endif %}" for="{{ id|e }}">
|
||||
{% if help %}
|
||||
<span class="hint--bottom" data-hint="{{ help|t|e('html_attr') }}">{{ text|t|e }}</span>
|
||||
{% else %}
|
||||
{{ text|t|e }}
|
||||
{% endif %}
|
||||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -8,6 +8,8 @@
|
|||
style="visibility:hidden;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);"
|
||||
{% endif %}
|
||||
class="form-honeybear"
|
||||
tabindex="-1"
|
||||
autocomplete="off"
|
||||
name="{{ (scope ~ field.name)|fieldName }}"
|
||||
value="{{ input_value|e }}" />
|
||||
{% endblock %}
|
||||
|
|
|
|||
2
plugins/problems/.gitignore
vendored
Normal file
2
plugins/problems/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
node_modules
|
||||
package-lock.json
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
# v2.1.2
|
||||
## 10/22/2024
|
||||
|
||||
1. [](#improved)
|
||||
* Improved `gd` module check [#36](https://github.com/getgrav/grav-plugin-problems/pull/36)
|
||||
|
||||
# v2.1.1
|
||||
## 04/14/2021
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
name: Problems
|
||||
slug: problems
|
||||
type: plugin
|
||||
version: 2.1.1
|
||||
version: 2.1.2
|
||||
description: Detects and reports problems found in the site.
|
||||
icon: exclamation-circle
|
||||
author:
|
||||
|
|
|
|||
|
|
@ -57,19 +57,21 @@ class PHPModules extends Problem
|
|||
$msg = 'PHP GD (Image Manipulation Library) is %s installed';
|
||||
if (defined('GD_VERSION') && function_exists('gd_info')) {
|
||||
|
||||
$msg = $modules_success['gd'] = sprintf($msg, 'successfully');
|
||||
$msg = sprintf($msg, 'successfully');
|
||||
|
||||
// Extra checks for Image support
|
||||
$ginfo = gd_info();
|
||||
$gda = array('PNG Support', 'JPEG Support', 'FreeType Support', 'GIF Read Support');
|
||||
$gda = array('PNG Support', 'JPEG Support', 'FreeType Support', 'GIF Read Support', 'WebP Support', 'AVIF Support');
|
||||
$gda_msg = '';
|
||||
$problems_found = false;
|
||||
|
||||
foreach ($gda as $image_type) {
|
||||
if (!$ginfo[$image_type]) {
|
||||
if (!array_key_exists($image_type, $ginfo)) {
|
||||
$problems_found = true;
|
||||
$gda_msg = "missing $image_type, but is ";
|
||||
break;
|
||||
if($gda_msg !== '') {
|
||||
$gda_msg .= ', ';
|
||||
}
|
||||
$gda_msg .= $image_type;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
0
plugins/problems/css/spectre-icons.css
Executable file → Normal file
0
plugins/problems/css/spectre-icons.css
Executable file → Normal file
0
plugins/problems/css/spectre-icons.min.css
vendored
Executable file → Normal file
0
plugins/problems/css/spectre-icons.min.css
vendored
Executable file → Normal file
0
plugins/problems/css/spectre.css
Executable file → Normal file
0
plugins/problems/css/spectre.css
Executable file → Normal file
0
plugins/problems/css/spectre.min.css
vendored
Executable file → Normal file
0
plugins/problems/css/spectre.min.css
vendored
Executable file → Normal file
15
plugins/problems/hebe.json
Normal file
15
plugins/problems/hebe.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"project":"grav-plugin-problems",
|
||||
"platforms":{
|
||||
"grav":{
|
||||
"nodes":{
|
||||
"plugin":[
|
||||
{
|
||||
"source":"/",
|
||||
"destination":"/user/plugins/problems"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
0
plugins/problems/package.json
Executable file → Normal file
0
plugins/problems/package.json
Executable file → Normal file
0
plugins/problems/scss/_accordions.scss
Executable file → Normal file
0
plugins/problems/scss/_accordions.scss
Executable file → Normal file
0
plugins/problems/scss/_animations.scss
Executable file → Normal file
0
plugins/problems/scss/_animations.scss
Executable file → Normal file
0
plugins/problems/scss/_asian.scss
Executable file → Normal file
0
plugins/problems/scss/_asian.scss
Executable file → Normal file
0
plugins/problems/scss/_autocomplete.scss
Executable file → Normal file
0
plugins/problems/scss/_autocomplete.scss
Executable file → Normal file
0
plugins/problems/scss/_avatars.scss
Executable file → Normal file
0
plugins/problems/scss/_avatars.scss
Executable file → Normal file
0
plugins/problems/scss/_badges.scss
Executable file → Normal file
0
plugins/problems/scss/_badges.scss
Executable file → Normal file
0
plugins/problems/scss/_bars.scss
Executable file → Normal file
0
plugins/problems/scss/_bars.scss
Executable file → Normal file
0
plugins/problems/scss/_base.scss
Executable file → Normal file
0
plugins/problems/scss/_base.scss
Executable file → Normal file
0
plugins/problems/scss/_breadcrumbs.scss
Executable file → Normal file
0
plugins/problems/scss/_breadcrumbs.scss
Executable file → Normal file
0
plugins/problems/scss/_buttons.scss
Executable file → Normal file
0
plugins/problems/scss/_buttons.scss
Executable file → Normal file
0
plugins/problems/scss/_calendars.scss
Executable file → Normal file
0
plugins/problems/scss/_calendars.scss
Executable file → Normal file
0
plugins/problems/scss/_cards.scss
Executable file → Normal file
0
plugins/problems/scss/_cards.scss
Executable file → Normal file
0
plugins/problems/scss/_carousels.scss
Executable file → Normal file
0
plugins/problems/scss/_carousels.scss
Executable file → Normal file
0
plugins/problems/scss/_chips.scss
Executable file → Normal file
0
plugins/problems/scss/_chips.scss
Executable file → Normal file
0
plugins/problems/scss/_codes.scss
Executable file → Normal file
0
plugins/problems/scss/_codes.scss
Executable file → Normal file
0
plugins/problems/scss/_comparison-sliders.scss
Executable file → Normal file
0
plugins/problems/scss/_comparison-sliders.scss
Executable file → Normal file
0
plugins/problems/scss/_dropdowns.scss
Executable file → Normal file
0
plugins/problems/scss/_dropdowns.scss
Executable file → Normal file
0
plugins/problems/scss/_empty.scss
Executable file → Normal file
0
plugins/problems/scss/_empty.scss
Executable file → Normal file
0
plugins/problems/scss/_filters.scss
Executable file → Normal file
0
plugins/problems/scss/_filters.scss
Executable file → Normal file
0
plugins/problems/scss/_forms.scss
Executable file → Normal file
0
plugins/problems/scss/_forms.scss
Executable file → Normal file
0
plugins/problems/scss/_icons.scss
Executable file → Normal file
0
plugins/problems/scss/_icons.scss
Executable file → Normal file
0
plugins/problems/scss/_labels.scss
Executable file → Normal file
0
plugins/problems/scss/_labels.scss
Executable file → Normal file
0
plugins/problems/scss/_layout.scss
Executable file → Normal file
0
plugins/problems/scss/_layout.scss
Executable file → Normal file
0
plugins/problems/scss/_media.scss
Executable file → Normal file
0
plugins/problems/scss/_media.scss
Executable file → Normal file
0
plugins/problems/scss/_menus.scss
Executable file → Normal file
0
plugins/problems/scss/_menus.scss
Executable file → Normal file
0
plugins/problems/scss/_meters.scss
Executable file → Normal file
0
plugins/problems/scss/_meters.scss
Executable file → Normal file
0
plugins/problems/scss/_mixins.scss
Executable file → Normal file
0
plugins/problems/scss/_mixins.scss
Executable file → Normal file
0
plugins/problems/scss/_modals.scss
Executable file → Normal file
0
plugins/problems/scss/_modals.scss
Executable file → Normal file
0
plugins/problems/scss/_navbar.scss
Executable file → Normal file
0
plugins/problems/scss/_navbar.scss
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue