Compare commits

...

7 Commits

Author SHA1 Message Date
Dan Brown
d9b9303a42 Updated version and assets for release v25.12.8 2026-02-27 10:29:04 +00:00
Dan Brown
50a7183b32 Merge branch 'v25-12' into release 2026-02-27 10:28:13 +00:00
Dan Brown
25ed242f61 Deps: Updated PHP package versions 2026-02-27 10:09:41 +00:00
Dan Brown
7aef0a48b3 Content: Updated filters to allow some required attributes
- Allows target attribute on links.
- Allows custom mention attribute on links.

Adds test case to cover these.
For #6034
2026-02-23 08:08:44 +00:00
Dan Brown
1db1083064 Updated version and assets for release v25.12.7 2026-02-19 23:34:11 +00:00
Dan Brown
664eb6d980 Merge branch 'v25-12' into release 2026-02-19 23:32:47 +00:00
Dan Brown
80204518a2 Page Content: Better handling for empty content filtering
For #6028
2026-02-19 23:25:00 +00:00
7 changed files with 226 additions and 164 deletions

View File

@@ -71,6 +71,8 @@ class ConfiguredHtmlPurifier
$config->set('Core.AllowHostnameUnderscore', true); $config->set('Core.AllowHostnameUnderscore', true);
$config->set('CSS.AllowTricky', true); $config->set('CSS.AllowTricky', true);
$config->set('HTML.SafeIframe', true); $config->set('HTML.SafeIframe', true);
$config->set('HTML.TargetNoopener', false);
$config->set('HTML.TargetNoreferrer', false);
$config->set('Attr.EnableID', true); $config->set('Attr.EnableID', true);
$config->set('Attr.ID.HTML5', true); $config->set('Attr.ID.HTML5', true);
$config->set('Output.FixInnerHTML', false); $config->set('Output.FixInnerHTML', false);
@@ -141,6 +143,12 @@ class ConfiguredHtmlPurifier
'drawio-diagram', 'drawio-diagram',
'Number', 'Number',
); );
// Allow target="_blank" on links
$definition->addAttribute('a', 'target', 'Enum#_blank');
// Allow mention-ids on links
$definition->addAttribute('a', 'data-mention-user-id', 'Number');
} }
public function purify(string $html): string public function purify(string $html): string

View File

@@ -103,7 +103,13 @@ class HtmlDocument
*/ */
public function getBody(): DOMNode public function getBody(): DOMNode
{ {
return $this->document->getElementsByTagName('body')[0]; $bodies = $this->document->getElementsByTagName('body');
if ($bodies->length === 0) {
return new DOMElement('body', '');
}
return $bodies[0];
} }
/** /**

330
composer.lock generated
View File

@@ -62,16 +62,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.369.36", "version": "3.371.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "2a69e7df5e03be9e08f9f73fb6a8cc9dd63b59c0" "reference": "32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/2a69e7df5e03be9e08f9f73fb6a8cc9dd63b59c0", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec",
"reference": "2a69e7df5e03be9e08f9f73fb6a8cc9dd63b59c0", "reference": "32090a8ac3ec8859cb83bdde800b8f0ecf92d8ec",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -153,9 +153,9 @@
"support": { "support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions", "forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.369.36" "source": "https://github.com/aws/aws-sdk-php/tree/3.371.2"
}, },
"time": "2026-02-17T19:45:01+00:00" "time": "2026-02-26T19:06:10+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@@ -982,16 +982,16 @@
}, },
{ {
"name": "firebase/php-jwt", "name": "firebase/php-jwt",
"version": "v7.0.2", "version": "v7.0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/firebase/php-jwt.git", "url": "https://github.com/firebase/php-jwt.git",
"reference": "5645b43af647b6947daac1d0f659dd1fbe8d3b65" "reference": "28aa0694bcfdfa5e2959c394d5a1ee7a5083629e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/5645b43af647b6947daac1d0f659dd1fbe8d3b65", "url": "https://api.github.com/repos/firebase/php-jwt/zipball/28aa0694bcfdfa5e2959c394d5a1ee7a5083629e",
"reference": "5645b43af647b6947daac1d0f659dd1fbe8d3b65", "reference": "28aa0694bcfdfa5e2959c394d5a1ee7a5083629e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1039,9 +1039,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/firebase/php-jwt/issues", "issues": "https://github.com/firebase/php-jwt/issues",
"source": "https://github.com/firebase/php-jwt/tree/v7.0.2" "source": "https://github.com/firebase/php-jwt/tree/v7.0.3"
}, },
"time": "2025-12-16T22:17:28+00:00" "time": "2026-02-25T22:16:40+00:00"
}, },
{ {
"name": "fruitcake/php-cors", "name": "fruitcake/php-cors",
@@ -1657,16 +1657,16 @@
}, },
{ {
"name": "intervention/image", "name": "intervention/image",
"version": "3.11.6", "version": "3.11.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Intervention/image.git", "url": "https://github.com/Intervention/image.git",
"reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1" "reference": "2159bcccff18f09d2a392679b81a82c5a003f9bb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/5f6d27d9fd56312c47f347929e7ac15345c605a1", "url": "https://api.github.com/repos/Intervention/image/zipball/2159bcccff18f09d2a392679b81a82c5a003f9bb",
"reference": "5f6d27d9fd56312c47f347929e7ac15345c605a1", "reference": "2159bcccff18f09d2a392679b81a82c5a003f9bb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1713,7 +1713,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/Intervention/image/issues", "issues": "https://github.com/Intervention/image/issues",
"source": "https://github.com/Intervention/image/tree/3.11.6" "source": "https://github.com/Intervention/image/tree/3.11.7"
}, },
"funding": [ "funding": [
{ {
@@ -1729,7 +1729,7 @@
"type": "ko_fi" "type": "ko_fi"
} }
], ],
"time": "2025-12-17T13:38:29+00:00" "time": "2026-02-19T13:11:17+00:00"
}, },
{ {
"name": "knplabs/knp-snappy", "name": "knplabs/knp-snappy",
@@ -1800,16 +1800,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v12.52.0", "version": "v12.53.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7" "reference": "f57f035c0d34503d9ff30be76159bb35a003cd1f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/d5511fa74f4608dbb99864198b1954042aa8d5a7", "url": "https://api.github.com/repos/laravel/framework/zipball/f57f035c0d34503d9ff30be76159bb35a003cd1f",
"reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7", "reference": "f57f035c0d34503d9ff30be76159bb35a003cd1f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2018,7 +2018,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2026-02-17T17:07:04+00:00" "time": "2026-02-24T14:35:15+00:00"
}, },
{ {
"name": "laravel/prompts", "name": "laravel/prompts",
@@ -2081,16 +2081,16 @@
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
"version": "v2.0.9", "version": "v2.0.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/serializable-closure.git", "url": "https://github.com/laravel/serializable-closure.git",
"reference": "8f631589ab07b7b52fead814965f5a800459cb3e" "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8f631589ab07b7b52fead814965f5a800459cb3e", "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/870fc81d2f879903dfc5b60bf8a0f94a1609e669",
"reference": "8f631589ab07b7b52fead814965f5a800459cb3e", "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2138,36 +2138,36 @@
"issues": "https://github.com/laravel/serializable-closure/issues", "issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure" "source": "https://github.com/laravel/serializable-closure"
}, },
"time": "2026-02-03T06:55:34+00:00" "time": "2026-02-20T19:59:49+00:00"
}, },
{ {
"name": "laravel/socialite", "name": "laravel/socialite",
"version": "v5.24.2", "version": "v5.24.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/socialite.git", "url": "https://github.com/laravel/socialite.git",
"reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613" "reference": "0feb62267e7b8abc68593ca37639ad302728c129"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/socialite/zipball/5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613", "url": "https://api.github.com/repos/laravel/socialite/zipball/0feb62267e7b8abc68593ca37639ad302728c129",
"reference": "5cea2eebf11ca4bc6c2f20495c82a70a9b3d1613", "reference": "0feb62267e7b8abc68593ca37639ad302728c129",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"firebase/php-jwt": "^6.4|^7.0", "firebase/php-jwt": "^6.4|^7.0",
"guzzlehttp/guzzle": "^6.0|^7.0", "guzzlehttp/guzzle": "^6.0|^7.0",
"illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "illuminate/http": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"league/oauth1-client": "^1.11", "league/oauth1-client": "^1.11",
"php": "^7.2|^8.0", "php": "^7.2|^8.0",
"phpseclib/phpseclib": "^3.0" "phpseclib/phpseclib": "^3.0"
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "^1.0", "mockery/mockery": "^1.0",
"orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8", "orchestra/testbench": "^4.18|^5.20|^6.47|^7.55|^8.36|^9.15|^10.8|^11.0",
"phpstan/phpstan": "^1.12.23", "phpstan/phpstan": "^1.12.23",
"phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0" "phpunit/phpunit": "^8.0|^9.3|^10.4|^11.5|^12.0"
}, },
@@ -2210,7 +2210,7 @@
"issues": "https://github.com/laravel/socialite/issues", "issues": "https://github.com/laravel/socialite/issues",
"source": "https://github.com/laravel/socialite" "source": "https://github.com/laravel/socialite"
}, },
"time": "2026-01-10T16:07:28+00:00" "time": "2026-02-21T13:32:50+00:00"
}, },
{ {
"name": "laravel/tinker", "name": "laravel/tinker",
@@ -2469,16 +2469,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "3.31.0", "version": "3.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725",
"reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2546,22 +2546,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem/issues", "issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.31.0" "source": "https://github.com/thephpleague/flysystem/tree/3.32.0"
}, },
"time": "2026-01-23T15:38:47+00:00" "time": "2026-02-25T17:01:41+00:00"
}, },
{ {
"name": "league/flysystem-aws-s3-v3", "name": "league/flysystem-aws-s3-v3",
"version": "3.31.0", "version": "3.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
"reference": "e36a2bc60b06332c92e4435047797ded352b446f" "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/e36a2bc60b06332c92e4435047797ded352b446f", "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/a1979df7c9784d334ea6df356aed3d18ac6673d0",
"reference": "e36a2bc60b06332c92e4435047797ded352b446f", "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2601,9 +2601,9 @@
"storage" "storage"
], ],
"support": { "support": {
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.31.0" "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.32.0"
}, },
"time": "2026-01-23T15:30:45+00:00" "time": "2026-02-25T16:46:44+00:00"
}, },
{ {
"name": "league/flysystem-local", "name": "league/flysystem-local",
@@ -3465,16 +3465,16 @@
}, },
{ {
"name": "nette/schema", "name": "nette/schema",
"version": "v1.3.4", "version": "v1.3.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nette/schema.git", "url": "https://github.com/nette/schema.git",
"reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7" "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nette/schema/zipball/086497a2f34b82fede9b5a41cc8e131d087cd8f7", "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002",
"reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7", "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3482,8 +3482,10 @@
"php": "8.1 - 8.5" "php": "8.1 - 8.5"
}, },
"require-dev": { "require-dev": {
"nette/phpstan-rules": "^1.0",
"nette/tester": "^2.6", "nette/tester": "^2.6",
"phpstan/phpstan": "^2.0@stable", "phpstan/extension-installer": "^1.4@stable",
"phpstan/phpstan": "^2.1.39@stable",
"tracy/tracy": "^2.8" "tracy/tracy": "^2.8"
}, },
"type": "library", "type": "library",
@@ -3524,9 +3526,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/nette/schema/issues", "issues": "https://github.com/nette/schema/issues",
"source": "https://github.com/nette/schema/tree/v1.3.4" "source": "https://github.com/nette/schema/tree/v1.3.5"
}, },
"time": "2026-02-08T02:54:00+00:00" "time": "2026-02-23T03:47:12+00:00"
}, },
{ {
"name": "nette/utils", "name": "nette/utils",
@@ -4186,16 +4188,16 @@
}, },
{ {
"name": "predis/predis", "name": "predis/predis",
"version": "v3.4.0", "version": "v3.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/predis/predis.git", "url": "https://github.com/predis/predis.git",
"reference": "1183f5732e6b10efd33f64984a96726eaecb59aa" "reference": "0850f2f36ee179f0ff96c92c750e1366c6cd754c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/predis/predis/zipball/1183f5732e6b10efd33f64984a96726eaecb59aa", "url": "https://api.github.com/repos/predis/predis/zipball/0850f2f36ee179f0ff96c92c750e1366c6cd754c",
"reference": "1183f5732e6b10efd33f64984a96726eaecb59aa", "reference": "0850f2f36ee179f0ff96c92c750e1366c6cd754c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4237,7 +4239,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/predis/predis/issues", "issues": "https://github.com/predis/predis/issues",
"source": "https://github.com/predis/predis/tree/v3.4.0" "source": "https://github.com/predis/predis/tree/v3.4.1"
}, },
"funding": [ "funding": [
{ {
@@ -4245,7 +4247,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-02-11T17:30:28+00:00" "time": "2026-02-23T19:51:21+00:00"
}, },
{ {
"name": "psr/clock", "name": "psr/clock",
@@ -4980,33 +4982,35 @@
}, },
{ {
"name": "sabberworm/php-css-parser", "name": "sabberworm/php-css-parser",
"version": "v9.1.0", "version": "v9.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git",
"reference": "1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb" "reference": "59373045e11ad47b5c18fc615feee0219e42f6d3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb", "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/59373045e11ad47b5c18fc615feee0219e42f6d3",
"reference": "1b363fdbdc6dd0ca0f4bf98d3a4d7f388133f1fb", "reference": "59373045e11ad47b5c18fc615feee0219e42f6d3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-iconv": "*", "ext-iconv": "*",
"php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", "php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"thecodingmachine/safe": "^1.3 || ^2.5 || ^3.3" "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.4"
}, },
"require-dev": { "require-dev": {
"php-parallel-lint/php-parallel-lint": "1.4.0", "php-parallel-lint/php-parallel-lint": "1.4.0",
"phpstan/extension-installer": "1.4.3", "phpstan/extension-installer": "1.4.3",
"phpstan/phpstan": "1.12.28 || 2.1.25", "phpstan/phpstan": "1.12.32 || 2.1.32",
"phpstan/phpstan-phpunit": "1.4.2 || 2.0.7", "phpstan/phpstan-phpunit": "1.4.2 || 2.0.8",
"phpstan/phpstan-strict-rules": "1.6.2 || 2.0.6", "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.7",
"phpunit/phpunit": "8.5.46", "phpunit/phpunit": "8.5.52",
"rawr/phpunit-data-provider": "3.3.1", "rawr/phpunit-data-provider": "3.3.1",
"rector/rector": "1.2.10 || 2.1.7", "rector/rector": "1.2.10 || 2.2.8",
"rector/type-perfect": "1.0.0 || 2.1.0" "rector/type-perfect": "1.0.0 || 2.1.0",
"squizlabs/php_codesniffer": "4.0.1",
"thecodingmachine/phpstan-safe-rule": "1.2.0 || 1.4.1"
}, },
"suggest": { "suggest": {
"ext-mbstring": "for parsing UTF-8 CSS" "ext-mbstring": "for parsing UTF-8 CSS"
@@ -5014,10 +5018,14 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "9.2.x-dev" "dev-main": "9.3.x-dev"
} }
}, },
"autoload": { "autoload": {
"files": [
"src/Rule/Rule.php",
"src/RuleSet/RuleContainer.php"
],
"psr-4": { "psr-4": {
"Sabberworm\\CSS\\": "src/" "Sabberworm\\CSS\\": "src/"
} }
@@ -5048,9 +5056,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues",
"source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.1.0" "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.2.0"
}, },
"time": "2025-09-14T07:37:21+00:00" "time": "2026-02-21T17:12:03+00:00"
}, },
{ {
"name": "socialiteproviders/discord", "name": "socialiteproviders/discord",
@@ -5500,16 +5508,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" "reference": "6d643a93b47398599124022eb24d97c153c12f27"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", "url": "https://api.github.com/repos/symfony/console/zipball/6d643a93b47398599124022eb24d97c153c12f27",
"reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", "reference": "6d643a93b47398599124022eb24d97c153c12f27",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5574,7 +5582,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.4.4" "source": "https://github.com/symfony/console/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -5594,20 +5602,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-13T11:36:38+00:00" "time": "2026-02-25T17:02:47+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
"version": "v7.4.0", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/css-selector.git", "url": "https://github.com/symfony/css-selector.git",
"reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" "reference": "2e7c52c647b406e2107dd867db424a4dbac91864"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "url": "https://api.github.com/repos/symfony/css-selector/zipball/2e7c52c647b406e2107dd867db424a4dbac91864",
"reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "reference": "2e7c52c647b406e2107dd867db424a4dbac91864",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5643,7 +5651,7 @@
"description": "Converts CSS selectors to XPath expressions", "description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/css-selector/tree/v7.4.0" "source": "https://github.com/symfony/css-selector/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -5663,7 +5671,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-10-30T13:39:42+00:00" "time": "2026-02-17T07:53:42+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
@@ -5977,16 +5985,16 @@
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v7.4.0", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "d551b38811096d0be9c4691d406991b47c0c630a" "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e",
"reference": "d551b38811096d0be9c4691d406991b47c0c630a", "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6023,7 +6031,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v7.4.0" "source": "https://github.com/symfony/filesystem/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6043,20 +6051,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-11-27T13:27:24+00:00" "time": "2026-02-25T16:50:00+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v7.4.5", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", "url": "https://api.github.com/repos/symfony/finder/zipball/8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
"reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6091,7 +6099,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v7.4.5" "source": "https://github.com/symfony/finder/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6111,20 +6119,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-26T15:07:59+00:00" "time": "2026-01-29T09:40:50+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v7.4.5", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "446d0db2b1f21575f1284b74533e425096abdfb6" "reference": "fd97d5e926e988a363cef56fbbf88c5c528e9065"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/fd97d5e926e988a363cef56fbbf88c5c528e9065",
"reference": "446d0db2b1f21575f1284b74533e425096abdfb6", "reference": "fd97d5e926e988a363cef56fbbf88c5c528e9065",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6173,7 +6181,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.4.5" "source": "https://github.com/symfony/http-foundation/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6193,20 +6201,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-27T16:16:02+00:00" "time": "2026-02-21T16:25:55+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.4.5", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "229eda477017f92bd2ce7615d06222ec0c19e82a" "reference": "002ac0cf4cd972a7fd0912dcd513a95e8a81ce83"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/002ac0cf4cd972a7fd0912dcd513a95e8a81ce83",
"reference": "229eda477017f92bd2ce7615d06222ec0c19e82a", "reference": "002ac0cf4cd972a7fd0912dcd513a95e8a81ce83",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6248,7 +6256,7 @@
"symfony/config": "^6.4|^7.0|^8.0", "symfony/config": "^6.4|^7.0|^8.0",
"symfony/console": "^6.4|^7.0|^8.0", "symfony/console": "^6.4|^7.0|^8.0",
"symfony/css-selector": "^6.4|^7.0|^8.0", "symfony/css-selector": "^6.4|^7.0|^8.0",
"symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0",
"symfony/dom-crawler": "^6.4|^7.0|^8.0", "symfony/dom-crawler": "^6.4|^7.0|^8.0",
"symfony/expression-language": "^6.4|^7.0|^8.0", "symfony/expression-language": "^6.4|^7.0|^8.0",
"symfony/finder": "^6.4|^7.0|^8.0", "symfony/finder": "^6.4|^7.0|^8.0",
@@ -6292,7 +6300,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.4.5" "source": "https://github.com/symfony/http-kernel/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6312,20 +6320,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-28T10:33:42+00:00" "time": "2026-02-26T08:30:57+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mailer.git", "url": "https://github.com/symfony/mailer.git",
"reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6" "reference": "b02726f39a20bc65e30364f5c750c4ddbf1f58e9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/7b750074c40c694ceb34cb926d6dffee231c5cd6", "url": "https://api.github.com/repos/symfony/mailer/zipball/b02726f39a20bc65e30364f5c750c4ddbf1f58e9",
"reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6", "reference": "b02726f39a20bc65e30364f5c750c4ddbf1f58e9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6376,7 +6384,7 @@
"description": "Helps sending emails", "description": "Helps sending emails",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/mailer/tree/v7.4.4" "source": "https://github.com/symfony/mailer/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6396,20 +6404,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-08T08:25:11+00:00" "time": "2026-02-25T16:50:00+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v7.4.5", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "b18c7e6e9eee1e19958138df10412f3c4c316148" "reference": "9fc881d95feae4c6c48678cb6372bd8a7ba04f5f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/b18c7e6e9eee1e19958138df10412f3c4c316148", "url": "https://api.github.com/repos/symfony/mime/zipball/9fc881d95feae4c6c48678cb6372bd8a7ba04f5f",
"reference": "b18c7e6e9eee1e19958138df10412f3c4c316148", "reference": "9fc881d95feae4c6c48678cb6372bd8a7ba04f5f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6420,7 +6428,7 @@
}, },
"conflict": { "conflict": {
"egulias/email-validator": "~3.0.0", "egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<5.2|>=6", "phpdocumentor/reflection-docblock": "<5.2|>=7",
"phpdocumentor/type-resolver": "<1.5.1", "phpdocumentor/type-resolver": "<1.5.1",
"symfony/mailer": "<6.4", "symfony/mailer": "<6.4",
"symfony/serializer": "<6.4.3|>7.0,<7.0.3" "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
@@ -6428,7 +6436,7 @@
"require-dev": { "require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4", "egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0", "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^5.2", "phpdocumentor/reflection-docblock": "^5.2|^6.0",
"symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/dependency-injection": "^6.4|^7.0|^8.0",
"symfony/process": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0",
"symfony/property-access": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4|^7.0|^8.0",
@@ -6465,7 +6473,7 @@
"mime-type" "mime-type"
], ],
"support": { "support": {
"source": "https://github.com/symfony/mime/tree/v7.4.5" "source": "https://github.com/symfony/mime/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -6485,7 +6493,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-27T08:59:58+00:00" "time": "2026-02-05T15:57:06+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -7383,16 +7391,16 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "0798827fe2c79caeed41d70b680c2c3507d10147" "reference": "238d749c56b804b31a9bf3e26519d93b65a60938"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/0798827fe2c79caeed41d70b680c2c3507d10147", "url": "https://api.github.com/repos/symfony/routing/zipball/238d749c56b804b31a9bf3e26519d93b65a60938",
"reference": "0798827fe2c79caeed41d70b680c2c3507d10147", "reference": "238d749c56b804b31a9bf3e26519d93b65a60938",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7444,7 +7452,7 @@
"url" "url"
], ],
"support": { "support": {
"source": "https://github.com/symfony/routing/tree/v7.4.4" "source": "https://github.com/symfony/routing/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -7464,7 +7472,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-12T12:19:02+00:00" "time": "2026-02-25T16:50:00+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
@@ -7555,16 +7563,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" "reference": "9f209231affa85aa930a5e46e6eb03381424b30b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b",
"reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", "reference": "9f209231affa85aa930a5e46e6eb03381424b30b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7622,7 +7630,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.4.4" "source": "https://github.com/symfony/string/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -7642,20 +7650,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-12T10:54:30+00:00" "time": "2026-02-09T09:33:46+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "bfde13711f53f549e73b06d27b35a55207528877" "reference": "1888cf064399868af3784b9e043240f1d89d25ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/bfde13711f53f549e73b06d27b35a55207528877", "url": "https://api.github.com/repos/symfony/translation/zipball/1888cf064399868af3784b9e043240f1d89d25ce",
"reference": "bfde13711f53f549e73b06d27b35a55207528877", "reference": "1888cf064399868af3784b9e043240f1d89d25ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7722,7 +7730,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v7.4.4" "source": "https://github.com/symfony/translation/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -7742,7 +7750,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-13T10:40:19+00:00" "time": "2026-02-17T07:53:42+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@@ -7906,16 +7914,16 @@
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "0e4769b46a0c3c62390d124635ce59f66874b282" "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e4769b46a0c3c62390d124635ce59f66874b282", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/045321c440ac18347b136c63d2e9bf28a2dc0291",
"reference": "0e4769b46a0c3c62390d124635ce59f66874b282", "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7969,7 +7977,7 @@
"dump" "dump"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.4.4" "source": "https://github.com/symfony/var-dumper/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -7989,7 +7997,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-01T22:13:48+00:00" "time": "2026-02-15T10:53:20+00:00"
}, },
{ {
"name": "thecodingmachine/safe", "name": "thecodingmachine/safe",
@@ -9160,11 +9168,11 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "2.1.39", "version": "2.1.40",
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
"reference": "c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", "reference": "9b2c7aeb83a75d8680ea5e7c9b7fca88052b766b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9209,7 +9217,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-02-11T14:48:56+00:00" "time": "2026-02-23T15:04:35+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@@ -10831,16 +10839,16 @@
}, },
{ {
"name": "symfony/dom-crawler", "name": "symfony/dom-crawler",
"version": "v7.4.4", "version": "v7.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dom-crawler.git", "url": "https://github.com/symfony/dom-crawler.git",
"reference": "71fd6a82fc357c8b5de22f78b228acfc43dee965" "reference": "487ba8fa43da9a8e6503fe939b45ecd96875410e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/71fd6a82fc357c8b5de22f78b228acfc43dee965", "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/487ba8fa43da9a8e6503fe939b45ecd96875410e",
"reference": "71fd6a82fc357c8b5de22f78b228acfc43dee965", "reference": "487ba8fa43da9a8e6503fe939b45ecd96875410e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -10879,7 +10887,7 @@
"description": "Eases DOM navigation for HTML and XML documents", "description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dom-crawler/tree/v7.4.4" "source": "https://github.com/symfony/dom-crawler/tree/v7.4.6"
}, },
"funding": [ "funding": [
{ {
@@ -10899,7 +10907,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-01-05T08:47:25+00:00" "time": "2026-02-17T07:53:42+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",

View File

@@ -1 +1 @@
9a9b39ad13bada8f7c71e2224593d37c967b4ebe5ec048877cd30ca3ff33d898 6b4fe778d645978b3720f7d035a6c3965024d4d5d6d29e3114bb6db499b7e61e

View File

@@ -478,4 +478,25 @@ HTML;
$resp->assertSee($expected, false); $resp->assertSee($expected, false);
} }
} }
public function test_allow_list_does_not_filter_cases()
{
$testCasesExpectedByInput = [
'<p><a href="https://example.com" target="_blank">New tab linkydoodle</a></p>',
'<p><a href="https://example.com/user/1" data-mention-user-id="5">@mentionusertext</a></p>',
'<details><summary>Hello</summary><p>Mydetailshere</p></details>',
];
config()->set('app.content_filtering', 'a');
$page = $this->entities->page();
$this->asEditor();
foreach ($testCasesExpectedByInput as $input) {
$page->html = $input;
$page->save();
$resp = $this->get($page->getUrl());
$resp->assertSee($input, false);
}
}
} }

View File

@@ -282,4 +282,23 @@ class PageEditorTest extends TestCase
$resp->assertOk(); $resp->assertOk();
$resp->assertDontSee('hellotherethisisaturtlemonster', false); $resp->assertDontSee('hellotherethisisaturtlemonster', false);
} }
public function test_editor_html_filtered_does_not_cause_error_if_empty()
{
$emptyExamples = ['', '<p></p>', '<p>&nbsp;</p>', ' ', "\n"];
$editor = $this->users->editor();
$page = $this->entities->page();
$page->updated_by = $editor->id;
foreach ($emptyExamples as $emptyExample) {
$page->html = $emptyExample;
$page->save();
$resp = $this->asAdmin()->get($page->getUrl('edit'));
$resp->assertOk();
$resp = $this->asAdmin()->get("/ajax/page/{$page->id}");
$resp->assertOk();
}
}
} }

View File

@@ -1 +1 @@
v25.12.6 v25.12.8