From 1982076d7c599476980c45a0d748af36a33b34fc Mon Sep 17 00:00:00 2001 From: berliner Date: Wed, 11 Sep 2024 09:15:45 +0200 Subject: [PATCH] HPC-9711: Update to Drupal 10.3.3 --- composer.lock | 410 +++++++++--------- .../3467860-asset-patch-vertical-tabs.patch | 263 ++++++++--- 2 files changed, 410 insertions(+), 263 deletions(-) diff --git a/composer.lock b/composer.lock index b41279a03..c3ea0877d 100644 --- a/composer.lock +++ b/composer.lock @@ -1065,16 +1065,16 @@ }, { "name": "doctrine/annotations", - "version": "1.14.3", + "version": "1.14.4", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", - "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915", + "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915", "shasum": "" }, "require": { @@ -1085,11 +1085,11 @@ }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "~1.4.10 || ^1.10.28", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "vimeo/psalm": "^4.10" + "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7", + "vimeo/psalm": "^4.30 || ^5.14" }, "suggest": { "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" @@ -1135,9 +1135,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.14.3" + "source": "https://github.com/doctrine/annotations/tree/1.14.4" }, - "time": "2023-02-01T09:20:38+00:00" + "time": "2024-09-05T10:15:52+00:00" }, { "name": "doctrine/deprecations", @@ -1614,7 +1614,7 @@ ], "authors": [ { - "name": "AjitS", + "name": "ajits", "homepage": "https://www.drupal.org/user/981944" }, { @@ -1657,6 +1657,10 @@ "name": "prabeen.giri", "homepage": "https://www.drupal.org/user/913078" }, + { + "name": "scott_earnest", + "homepage": "https://www.drupal.org/user/416158" + }, { "name": "str8", "homepage": "https://www.drupal.org/user/2865063" @@ -2211,16 +2215,16 @@ }, { "name": "drupal/core", - "version": "10.3.2", + "version": "10.3.3", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a" + "reference": "900f85d93564fa8bea99519c11b564b22df7fb97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/10e79c67a903844bef02a5cf10475d9a8b623e7a", - "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a", + "url": "https://api.github.com/repos/drupal/core/zipball/900f85d93564fa8bea99519c11b564b22df7fb97", + "reference": "900f85d93564fa8bea99519c11b564b22df7fb97", "shasum": "" }, "require": { @@ -2369,22 +2373,22 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.3.2" + "source": "https://github.com/drupal/core/tree/10.3.3" }, - "time": "2024-08-08T09:23:57+00:00" + "time": "2024-09-05T08:50:05+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.2", + "version": "10.3.3", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "a1a186caeb89899143e0c6912ccee9d3d7181dbe" + "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/a1a186caeb89899143e0c6912ccee9d3d7181dbe", - "reference": "a1a186caeb89899143e0c6912ccee9d3d7181dbe", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/f58ab5c0d02d275c5aa226c4505b457e41b161cc", + "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc", "shasum": "" }, "require": { @@ -2419,13 +2423,13 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.2" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.3" }, - "time": "2024-05-11T08:21:39+00:00" + "time": "2024-08-22T14:31:34+00:00" }, { "name": "drupal/core-project-message", - "version": "10.3.2", + "version": "10.3.3", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", @@ -2460,22 +2464,22 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/11.0.1" + "source": "https://github.com/drupal/core-project-message/tree/11.0.2" }, "time": "2023-07-24T07:55:25+00:00" }, { "name": "drupal/core-recommended", - "version": "10.3.2", + "version": "10.3.3", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "18b7288d2e661afadfff4a714c5a166bf2554124" + "reference": "b143dbac12b8f3aa0c87c4af6300c619fc1abfeb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/18b7288d2e661afadfff4a714c5a166bf2554124", - "reference": "18b7288d2e661afadfff4a714c5a166bf2554124", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/b143dbac12b8f3aa0c87c4af6300c619fc1abfeb", + "reference": "b143dbac12b8f3aa0c87c4af6300c619fc1abfeb", "shasum": "" }, "require": { @@ -2484,7 +2488,7 @@ "doctrine/annotations": "~1.14.3", "doctrine/deprecations": "~1.1.3", "doctrine/lexer": "~2.1.1", - "drupal/core": "10.3.2", + "drupal/core": "10.3.3", "egulias/email-validator": "~4.0.2", "guzzlehttp/guzzle": "~7.8.1", "guzzlehttp/promises": "~2.0.2", @@ -2545,9 +2549,9 @@ ], "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.", "support": { - "source": "https://github.com/drupal/core-recommended/tree/10.3.2" + "source": "https://github.com/drupal/core-recommended/tree/10.3.3" }, - "time": "2024-08-08T09:23:57+00:00" + "time": "2024-09-05T08:50:05+00:00" }, { "name": "drupal/crop", @@ -2836,11 +2840,15 @@ ], "authors": [ { - "name": "Anybody", + "name": "anybody", "homepage": "https://www.drupal.org/user/291091" }, { - "name": "Hydra", + "name": "grevil", + "homepage": "https://www.drupal.org/user/3668491" + }, + { + "name": "hydra", "homepage": "https://www.drupal.org/user/647364" }, { @@ -6111,26 +6119,26 @@ }, { "name": "drupal/username_enumeration_prevention", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/username_enumeration_prevention.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/username_enumeration_prevention-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "fa3f1f57a9d5ad77943c484ff7e1e40f5cd73df7" + "url": "https://ftp.drupal.org/files/projects/username_enumeration_prevention-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "29fab36a86de64694b3074d42ac948547459aea6" }, "require": { - "drupal/core": "^8 || ^9 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1670892402", + "version": "8.x-1.4", + "datestamp": "1725566327", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6277,20 +6285,20 @@ }, { "name": "drupal/viewsreference", - "version": "2.0.0-beta9", + "version": "2.0.0-beta10", "source": { "type": "git", "url": "https://git.drupalcode.org/project/viewsreference.git", - "reference": "8.x-2.0-beta9" + "reference": "8.x-2.0-beta10" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/viewsreference-8.x-2.0-beta9.zip", - "reference": "8.x-2.0-beta9", - "shasum": "3ccf5039a67a66a5530b12894b14c9391b01550f" + "url": "https://ftp.drupal.org/files/projects/viewsreference-8.x-2.0-beta10.zip", + "reference": "8.x-2.0-beta10", + "shasum": "699c3f790d3dbe6ebcd890916409c66562a04eb4" }, "require": { - "drupal/core": "^9.3 || ^10 || ^11" + "drupal/core": "^10 || ^11" }, "conflict": { "drupal/viewsreferennce": "*" @@ -6301,8 +6309,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0-beta9", - "datestamp": "1722575139", + "version": "8.x-2.0-beta10", + "datestamp": "1725510905", "security-coverage": { "status": "not-covered", "message": "Beta releases are not covered by Drupal security advisories." @@ -9043,16 +9051,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.29.0", + "version": "1.29.1", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0" + "reference": "59ee38f7480904cd6487e5cbdea4d80ff2758719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0", - "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/59ee38f7480904cd6487e5cbdea4d80ff2758719", + "reference": "59ee38f7480904cd6487e5cbdea4d80ff2758719", "shasum": "" }, "require": { @@ -9087,7 +9095,7 @@ "phpcompatibility/php-compatibility": "^9.3", "phpstan/phpstan": "^1.1", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0", + "phpunit/phpunit": "^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, @@ -9142,9 +9150,9 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.1" }, - "time": "2023-06-14T22:48:31+00:00" + "time": "2024-09-03T00:55:32+00:00" }, { "name": "phpowermove/docblock", @@ -9200,16 +9208,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.0", + "version": "1.30.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" + "reference": "51b95ec8670af41009e2b2b56873bad96682413e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", + "reference": "51b95ec8670af41009e2b2b56873bad96682413e", "shasum": "" }, "require": { @@ -9241,9 +9249,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" }, - "time": "2024-08-29T09:54:52+00:00" + "time": "2024-09-07T20:13:05+00:00" }, { "name": "psr/cache", @@ -10120,16 +10128,16 @@ }, { "name": "symfony/console", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", + "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", "shasum": "" }, "require": { @@ -10194,7 +10202,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.10" + "source": "https://github.com/symfony/console/tree/v6.4.11" }, "funding": [ { @@ -10210,20 +10218,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-15T22:48:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb" + "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", - "reference": "5caf9c5f6085f13b27d70a236b776c07e4a1c3eb", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", "shasum": "" }, "require": { @@ -10275,7 +10283,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.10" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" }, "funding": [ { @@ -10291,7 +10299,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:32:07+00:00" + "time": "2024-08-29T08:15:38+00:00" }, { "name": "symfony/deprecation-contracts", @@ -10659,16 +10667,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "af29198d87112bebdd397bd7735fbd115997824c" + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c", - "reference": "af29198d87112bebdd397bd7735fbd115997824c", + "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", "shasum": "" }, "require": { @@ -10703,7 +10711,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.10" + "source": "https://github.com/symfony/finder/tree/v6.4.11" }, "funding": [ { @@ -10719,7 +10727,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:06:38+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/http-foundation", @@ -10800,16 +10808,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "147e0daf618d7575b5007055340d09aece5cf068" + "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/147e0daf618d7575b5007055340d09aece5cf068", - "reference": "147e0daf618d7575b5007055340d09aece5cf068", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", "shasum": "" }, "require": { @@ -10894,7 +10902,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.10" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" }, "funding": [ { @@ -10910,7 +10918,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T14:52:04+00:00" + "time": "2024-08-30T16:57:20+00:00" }, { "name": "symfony/mailer", @@ -10994,16 +11002,16 @@ }, { "name": "symfony/mime", - "version": "v6.4.9", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7d048964877324debdcb4e0549becfa064a20d43" + "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7d048964877324debdcb4e0549becfa064a20d43", - "reference": "7d048964877324debdcb4e0549becfa064a20d43", + "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553", + "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553", "shasum": "" }, "require": { @@ -11059,7 +11067,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.9" + "source": "https://github.com/symfony/mime/tree/v6.4.11" }, "funding": [ { @@ -11075,7 +11083,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-08-13T12:15:02+00:00" }, { "name": "symfony/polyfill-ctype", @@ -11561,36 +11569,28 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "10112722600777e02d2745716b70c5db4ca70442" + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", - "reference": "10112722600777e02d2745716b70c5db4ca70442", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, - "type": "library", + "type": "metapackage", "extra": { "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -11614,7 +11614,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0" }, "funding": [ { @@ -11630,24 +11630,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -11694,7 +11694,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -11710,24 +11710,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -11770,7 +11770,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -11786,7 +11786,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", @@ -11928,16 +11928,16 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "89a24648d73e4eee30893b0da16abc454a65c53b" + "reference": "74835ba54eca99a38f374f7a6d932fa510124773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/89a24648d73e4eee30893b0da16abc454a65c53b", - "reference": "89a24648d73e4eee30893b0da16abc454a65c53b", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/74835ba54eca99a38f374f7a6d932fa510124773", + "reference": "74835ba54eca99a38f374f7a6d932fa510124773", "shasum": "" }, "require": { @@ -11991,7 +11991,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.10" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.11" }, "funding": [ { @@ -12007,20 +12007,20 @@ "type": "tidelift" } ], - "time": "2024-07-15T09:36:38+00:00" + "time": "2024-08-14T13:55:58+00:00" }, { "name": "symfony/routing", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87" + "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/aad19fe10753ba842f0d653a8db819c4b3affa87", - "reference": "aad19fe10753ba842f0d653a8db819c4b3affa87", + "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", "shasum": "" }, "require": { @@ -12074,7 +12074,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.10" + "source": "https://github.com/symfony/routing/tree/v6.4.11" }, "funding": [ { @@ -12090,20 +12090,20 @@ "type": "tidelift" } ], - "time": "2024-07-15T09:26:24+00:00" + "time": "2024-08-29T08:15:38+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718" + "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/9a67fcf320561e96f94d62bbe0e169ac534a5718", - "reference": "9a67fcf320561e96f94d62bbe0e169ac534a5718", + "url": "https://api.github.com/repos/symfony/serializer/zipball/a75d03d7720417f8a654e73e8f02acdea8779cd0", + "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0", "shasum": "" }, "require": { @@ -12172,7 +12172,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.10" + "source": "https://github.com/symfony/serializer/tree/v6.4.11" }, "funding": [ { @@ -12188,7 +12188,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:13:26+00:00" + "time": "2024-08-17T07:51:47+00:00" }, { "name": "symfony/service-contracts", @@ -12275,16 +12275,16 @@ }, { "name": "symfony/string", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ccf9b30251719567bfd46494138327522b9a9446" + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446", - "reference": "ccf9b30251719567bfd46494138327522b9a9446", + "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", "shasum": "" }, "require": { @@ -12341,7 +12341,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.10" + "source": "https://github.com/symfony/string/tree/v6.4.11" }, "funding": [ { @@ -12357,7 +12357,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:21:14+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "symfony/translation-contracts", @@ -12439,16 +12439,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd" + "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", - "reference": "bcf939a9d1acd7d2912e9474c0c3d7840a03cbcd", + "url": "https://api.github.com/repos/symfony/validator/zipball/4ff41cf10af1de99ad92895411b55c9f309bc2d8", + "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8", "shasum": "" }, "require": { @@ -12516,7 +12516,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.10" + "source": "https://github.com/symfony/validator/tree/v6.4.11" }, "funding": [ { @@ -12532,20 +12532,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-30T15:57:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4" + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a71cc3374f5fb9759da1961d28c452373b343dd4", - "reference": "a71cc3374f5fb9759da1961d28c452373b343dd4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", + "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", "shasum": "" }, "require": { @@ -12601,7 +12601,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.10" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" }, "funding": [ { @@ -12617,7 +12617,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-30T16:03:21+00:00" }, { "name": "symfony/var-exporter", @@ -12698,16 +12698,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.8", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "52903de178d542850f6f341ba92995d3d63e60c9" + "reference": "be37e7f13195e05ab84ca5269365591edd240335" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9", - "reference": "52903de178d542850f6f341ba92995d3d63e60c9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", + "reference": "be37e7f13195e05ab84ca5269365591edd240335", "shasum": "" }, "require": { @@ -12750,7 +12750,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.8" + "source": "https://github.com/symfony/yaml/tree/v6.4.11" }, "funding": [ { @@ -12766,7 +12766,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "twig/twig", @@ -13489,16 +13489,16 @@ }, { "name": "composer/composer", - "version": "2.7.8", + "version": "2.7.9", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "a2edd4e4414c17008ab585e0c62574fdb644ebfc" + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/a2edd4e4414c17008ab585e0c62574fdb644ebfc", - "reference": "a2edd4e4414c17008ab585e0c62574fdb644ebfc", + "url": "https://api.github.com/repos/composer/composer/zipball/e30ccdd665828ae66eb1be78f056e39e1d5f55ab", + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab", "shasum": "" }, "require": { @@ -13583,7 +13583,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.8" + "source": "https://github.com/composer/composer/tree/2.7.9" }, "funding": [ { @@ -13599,7 +13599,7 @@ "type": "tidelift" } ], - "time": "2024-08-22T13:28:36+00:00" + "time": "2024-09-04T12:43:28+00:00" }, { "name": "composer/metadata-minifier", @@ -14246,7 +14246,7 @@ }, { "name": "drupal/core-dev", - "version": "10.3.2", + "version": "10.3.3", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", @@ -14296,7 +14296,7 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.3.2" + "source": "https://github.com/drupal/core-dev/tree/10.3.3" }, "time": "2024-07-04T10:19:29+00:00" }, @@ -16256,22 +16256,22 @@ }, { "name": "phpstan/extension-installer", - "version": "1.4.2", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/phpstan/extension-installer.git", - "reference": "46c8219b3fb0deb3fc08301e8f0797d321d17dcd" + "reference": "85e90b3942d06b2326fba0403ec24fe912372936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/46c8219b3fb0deb3fc08301e8f0797d321d17dcd", - "reference": "46c8219b3fb0deb3fc08301e8f0797d321d17dcd", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936", + "reference": "85e90b3942d06b2326fba0403ec24fe912372936", "shasum": "" }, "require": { "composer-plugin-api": "^2.0", "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.9.0" + "phpstan/phpstan": "^1.9.0 || ^2.0" }, "require-dev": { "composer/composer": "^2.0", @@ -16298,22 +16298,22 @@ ], "support": { "issues": "https://github.com/phpstan/extension-installer/issues", - "source": "https://github.com/phpstan/extension-installer/tree/1.4.2" + "source": "https://github.com/phpstan/extension-installer/tree/1.4.3" }, - "time": "2024-08-26T07:38:00+00:00" + "time": "2024-09-04T20:21:43+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.0", + "version": "1.12.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "384af967d35b2162f69526c7276acadce534d0e1" + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", - "reference": "384af967d35b2162f69526c7276acadce534d0e1", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", "shasum": "" }, "require": { @@ -16358,7 +16358,7 @@ "type": "github" } ], - "time": "2024-08-27T09:18:05+00:00" + "time": "2024-09-09T08:10:35+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -18442,16 +18442,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "ad510515b11ba5291fdd59b25d70227bfac2d7ab" + "reference": "168f412dcd6caf3813a9cc0f286cd68f6a76f070" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/ad510515b11ba5291fdd59b25d70227bfac2d7ab", - "reference": "ad510515b11ba5291fdd59b25d70227bfac2d7ab", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/168f412dcd6caf3813a9cc0f286cd68f6a76f070", + "reference": "168f412dcd6caf3813a9cc0f286cd68f6a76f070", "shasum": "" }, "require": { @@ -18504,7 +18504,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.10" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.11" }, "funding": [ { @@ -18520,24 +18520,24 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", - "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -18580,7 +18580,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" }, "funding": [ { @@ -18596,24 +18596,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php82", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php82.git", - "reference": "77ff49780f56906788a88974867ed68bc49fae5b" + "reference": "5d2ed36f7734637dacc025f179698031951b1692" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/77ff49780f56906788a88974867ed68bc49fae5b", - "reference": "77ff49780f56906788a88974867ed68bc49fae5b", + "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/5d2ed36f7734637dacc025f179698031951b1692", + "reference": "5d2ed36f7734637dacc025f179698031951b1692", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -18656,7 +18656,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php82/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php82/tree/v1.31.0" }, "funding": [ { @@ -18672,7 +18672,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "theseer/tokenizer", diff --git a/patches/3467860-asset-patch-vertical-tabs.patch b/patches/3467860-asset-patch-vertical-tabs.patch index 0714f86bc..41150ae60 100644 --- a/patches/3467860-asset-patch-vertical-tabs.patch +++ b/patches/3467860-asset-patch-vertical-tabs.patch @@ -1,8 +1,8 @@ diff --git a/core/core.libraries.yml b/core/core.libraries.yml -index 8f9f90944c..2956bf1645 100644 +index 9e34b6c95bd1fe2e2581c987be2dbfa53dace052..6bb1856b8e3d51a936797c58e5744a121db6a4fb 100644 --- a/core/core.libraries.yml +++ b/core/core.libraries.yml -@@ -823,7 +823,7 @@ drupal.vertical-tabs: +@@ -726,7 +726,7 @@ drupal.vertical-tabs: version: VERSION js: # Load before core/drupal.collapse. @@ -12,39 +12,185 @@ index 8f9f90944c..2956bf1645 100644 component: misc/vertical-tabs.css: {} diff --git a/core/lib/Drupal/Core/Asset/AssetResolver.php b/core/lib/Drupal/Core/Asset/AssetResolver.php -index fcd294a649..8f29d18be5 100644 +index 4d42f4235984e499e92a765f4cf8301415c69cad..e853f63b78c864210dd78c004b8a2b651f01b081 100644 --- a/core/lib/Drupal/Core/Asset/AssetResolver.php +++ b/core/lib/Drupal/Core/Asset/AssetResolver.php -@@ -235,6 +235,27 @@ public function getJsAssets(AttachedAssetsInterface $assets, $optimize, ?Languag - $theme_info = $this->themeManager->getActiveTheme(); - $libraries_to_load = $this->getLibrariesToLoad($assets); - -+ // Remove all libraries without JS as we can ignore. -+ foreach ($libraries_to_load as $key => $library) { -+ [$extension, $name] = explode('/', $library, 2); -+ $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); -+ if (empty($definition['js'])) { -+ unset($libraries_to_load[$key]); -+ } -+ } +@@ -107,31 +107,77 @@ public function __construct(LibraryDiscoveryInterface $library_discovery, Librar + * $assets = new AttachedAssets(); + * $assets->setLibraries(['core/a', 'core/b', 'core/c']); + * $assets->setAlreadyLoadedLibraries(['core/c']); +- * $resolver->getLibrariesToLoad($assets) === ['core/a', 'core/b', 'core/d'] ++ * $resolver->getLibrariesToLoad($assets, 'js') === ['core/a', 'core/b', 'core/d'] + * @endcode + * ++ * The attached assets tend to be in the order that libraries were attached ++ * during a request. To minimize the number of unique aggregated asset URLs ++ * and files, we normalize the list by filtering out libraries that don't ++ * include the asset type being built as well as ensuring a reliable order of ++ * the libraries based on their dependencies. ++ * + * @param \Drupal\Core\Asset\AttachedAssetsInterface $assets + * The assets attached to the current response. ++ * @param string|null $asset_type ++ * The asset type to load. + * + * @return string[] + * A list of libraries and their dependencies, in the order they should be + * loaded, excluding any libraries that have already been loaded. + */ +- protected function getLibrariesToLoad(AttachedAssetsInterface $assets) { +- // The order of libraries passed in via assets can differ, so to reduce +- // variation, first normalize the requested libraries to the minimal +- // representative set before then expanding the list to include all +- // dependencies. ++ protected function getLibrariesToLoad(AttachedAssetsInterface $assets, ?string $asset_type = NULL) { + // @see Drupal\FunctionalTests\Core\Asset\AssetOptimizationTestUmami + // @todo https://www.drupal.org/project/drupal/issues/1945262 +- $libraries = $assets->getLibraries(); +- if ($libraries) { +- $libraries = $this->libraryDependencyResolver->getMinimalRepresentativeSubset($libraries); ++ $libraries_to_load = array_diff( ++ $this->libraryDependencyResolver->getLibrariesWithDependencies($assets->getLibraries()), ++ $this->libraryDependencyResolver->getLibrariesWithDependencies($assets->getAlreadyLoadedLibraries()) ++ ); ++ if ($asset_type) { ++ $libraries_to_load = $this->filterLibrariesByType($libraries_to_load, $asset_type); + } +- return array_diff( +- $this->libraryDependencyResolver->getLibrariesWithDependencies($libraries), + -+ // Need to ensure that the order of the JavaScript we want to include is -+ // based on the minimal representative subset in a specific order. This is -+ // needed to ensure that groups produced here and groups produced from -+ // generating optimized scripts are the same. If we don't get the same -+ // groups in the same order, user will not fetch the correct scripts. ++ // We now have a complete list of libraries requested. However, this list ++ // could be in any order depending on when libraries were attached during ++ // the page request, which can result in different file contents and URLs ++ // even for an otherwise identical set of libraries. To ensure that any ++ // particular set of libraries results in the same aggregate URL, sort the ++ // libraries, then generate the minimum representative set again. + sort($libraries_to_load); + $minimum_libraries = $this->libraryDependencyResolver->getMinimalRepresentativeSubset($libraries_to_load); + $libraries_to_load = array_diff( + $this->libraryDependencyResolver->getLibrariesWithDependencies($minimum_libraries), -+ $this->libraryDependencyResolver->getLibrariesWithDependencies($assets->getAlreadyLoadedLibraries()) -+ ); + $this->libraryDependencyResolver->getLibrariesWithDependencies($assets->getAlreadyLoadedLibraries()) + ); ++ ++ // Now remove any libraries without the relevant asset type again, since ++ // they have been brought back in via dependencies. ++ if ($asset_type) { ++ $libraries_to_load = $this->filterLibrariesByType($libraries_to_load, $asset_type); ++ } ++ ++ return $libraries_to_load; ++ } + ++ /** ++ * Filter libraries that don't contain an asset type. ++ * ++ * @param array $libraries ++ * An array of library definitions. ++ * @param string $asset_type ++ * The type of asset, either 'js' or 'css'. ++ * ++ * @return array ++ * The filtered libraries array. ++ */ ++ protected function filterLibrariesByType(array $libraries, string $asset_type): array { ++ foreach ($libraries as $key => $library) { ++ [$extension, $name] = explode('/', $library, 2); ++ $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); ++ if (empty($definition[$asset_type])) { ++ unset($libraries[$key]); ++ } ++ } ++ return $libraries; + } + + /** +@@ -141,15 +187,9 @@ public function getCssAssets(AttachedAssetsInterface $assets, $optimize, ?Langua + if (!$assets->getLibraries()) { + return []; + } +- $libraries_to_load = $this->getLibrariesToLoad($assets); +- foreach ($libraries_to_load as $key => $library) { +- [$extension, $name] = explode('/', $library, 2); +- $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); +- if (empty($definition['css'])) { +- unset($libraries_to_load[$key]); +- } +- } +- $libraries_to_load = array_values($libraries_to_load); ++ // Get the complete list of libraries to load including dependencies. ++ $libraries_to_load = $this->getLibrariesToLoad($assets, 'css'); ++ + if (!$libraries_to_load) { + return []; + } +@@ -177,7 +217,7 @@ public function getCssAssets(AttachedAssetsInterface $assets, $optimize, ?Langua + 'preprocess' => TRUE, + ]; + +- foreach ($libraries_to_load as $key => $library) { ++ foreach ($libraries_to_load as $library) { + [$extension, $name] = explode('/', $library, 2); + $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); + foreach ($definition['css'] as $options) { +@@ -231,7 +271,7 @@ public function getCssAssets(AttachedAssetsInterface $assets, $optimize, ?Langua + protected function getJsSettingsAssets(AttachedAssetsInterface $assets) { + $settings = []; + +- foreach ($this->getLibrariesToLoad($assets) as $library) { ++ foreach ($this->getLibrariesToLoad($assets, 'js') as $library) { + [$extension, $name] = explode('/', $library, 2); + $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); + if (isset($definition['drupalSettings'])) { +@@ -253,24 +293,19 @@ public function getJsAssets(AttachedAssetsInterface $assets, $optimize, ?Languag + $language = $this->languageManager->getCurrentLanguage(); + } + $theme_info = $this->themeManager->getActiveTheme(); +- $libraries_to_load = $this->getLibrariesToLoad($assets); ++ ++ // Get the complete list of libraries to load including dependencies. ++ $libraries_to_load = $this->getLibrariesToLoad($assets, 'js'); + // Collect all libraries that contain JS assets and are in the header. - // Also remove any libraries with no JavaScript from the libraries to - // load. +- // Also remove any libraries with no JavaScript from the libraries to +- // load. + $header_js_libraries = []; + foreach ($libraries_to_load as $key => $library) { + [$extension, $name] = explode('/', $library, 2); + $definition = $this->libraryDiscovery->getLibraryByName($extension, $name); +- if (empty($definition['js'])) { +- unset($libraries_to_load[$key]); +- continue; +- } + if (!empty($definition['header'])) { + $header_js_libraries[] = $library; + } + } +- $libraries_to_load = array_values($libraries_to_load); + + // If all the libraries to load contained only CSS, there is nothing further + // to do here, so return early. +diff --git a/core/modules/ckeditor5/ckeditor5.libraries.yml b/core/modules/ckeditor5/ckeditor5.libraries.yml +index 70ebcf51704a2e7562eead3e69925b5148cc5246..dc98fb949c3e9a94378bb88b025e3202d953324a 100644 +--- a/core/modules/ckeditor5/ckeditor5.libraries.yml ++++ b/core/modules/ckeditor5/ckeditor5.libraries.yml +@@ -99,6 +99,7 @@ internal.drupal.ckeditor5.filter.admin: + - core/once + - core/drupal.ajax + - core/drupalSettings ++ - core/vertical-tabs + + internal.drupal.ckeditor5.table: + css: +@@ -119,6 +120,7 @@ internal.admin: + - core/jquery + - core/once + - core/drupal.announce ++ - core/drupal.vertical-tabs + + internal.admin.specialCharacters: + css: diff --git a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php -index d5e2190439..4630ad647d 100644 +index faf3dcd3c8b31b556e1653ed8f471a1629adf0de..3ea3dc87c0c3e2a178e88256a414610e4f0e4291 100644 --- a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php @@ -8,6 +8,8 @@ @@ -56,7 +202,7 @@ index d5e2190439..4630ad647d 100644 use Drupal\Core\Cache\MemoryBackend; use Drupal\Core\Language\LanguageInterface; use Drupal\Tests\UnitTestCase; -@@ -90,51 +92,74 @@ protected function setUp(): void { +@@ -97,51 +99,74 @@ protected function setUp(): void { $this->libraryDiscovery = $this->getMockBuilder('Drupal\Core\Asset\LibraryDiscovery') ->disableOriginalConstructor() ->getMock(); @@ -153,56 +299,57 @@ index d5e2190439..4630ad647d 100644 $this->moduleHandler = $this->createMock('\Drupal\Core\Extension\ModuleHandlerInterface'); $this->themeManager = $this->createMock('\Drupal\Core\Theme\ThemeManagerInterface'); $active_theme = $this->getMockBuilder('\Drupal\Core\Theme\ActiveTheme') -@@ -169,22 +194,12 @@ protected function setUp(): void { +@@ -178,22 +203,17 @@ protected function setUp(): void { * @dataProvider providerAttachedCssAssets */ public function testGetCssAssets(AttachedAssetsInterface $assets_a, AttachedAssetsInterface $assets_b, $expected_css_cache_item_count): void { -- $this->libraryDiscovery->expects($this->any()) -- ->method('getLibraryByName') -- ->willReturnOnConsecutiveCalls( -- $this->libraries['drupal'], -- $this->libraries['llama'], -- $this->libraries['llama'], -- $this->libraries['piggy'], -- $this->libraries['piggy'], -- ); +- $map = [ +- ['core', 'drupal', $this->libraries['drupal']], +- ['core', 'jquery', $this->libraries['jquery']], +- ['llama', 'css', $this->libraries['llama']], +- ['piggy', 'css', $this->libraries['piggy']], +- ]; +- $this->libraryDiscovery->method('getLibraryByName') +- ->willReturnMap($map); +- ++ $this->libraryDiscovery->expects($this->any()) ++ ->method('getLibraryByName') ++ ->willReturnCallback(function ($extension, $name) { ++ return $this->libraries[$extension . '/' . $name]; ++ }); $this->assetResolver->getCssAssets($assets_a, FALSE, $this->english); $this->assetResolver->getCssAssets($assets_b, FALSE, $this->english); $this->assertCount($expected_css_cache_item_count, $this->cache->getAllCids()); } - + public static function providerAttachedCssAssets() { - $time = time(); return [ 'one js only library and one css only library' => [ (new AttachedAssets())->setAlreadyLoadedLibraries([])->setLibraries(['core/drupal']), -@@ -204,16 +219,6 @@ public static function providerAttachedCssAssets() { +@@ -213,13 +233,11 @@ public static function providerAttachedCssAssets() { * @dataProvider providerAttachedJsAssets */ public function testGetJsAssets(AttachedAssetsInterface $assets_a, AttachedAssetsInterface $assets_b, $expected_js_cache_item_count, $expected_multilingual_js_cache_item_count): void { -- $this->libraryDiscovery->expects($this->any()) -- ->method('getLibraryByName') -- ->willReturnOnConsecutiveCalls( -- $this->libraries['drupal'], -- $this->libraries['drupal'], -- $this->libraries['jquery'], -- $this->libraries['drupal'], -- $this->libraries['drupal'], -- $this->libraries['jquery'], -- ); +- $map = [ +- ['core', 'drupal', $this->libraries['drupal']], +- ['core', 'jquery', $this->libraries['jquery']], +- ]; +- $this->libraryDiscovery->method('getLibraryByName') +- ->willReturnMap($map); +- ++ $this->libraryDiscovery->expects($this->any()) ++ ->method('getLibraryByName') ++ ->willReturnCallback(function ($extension, $name) { ++ return $this->libraries[$extension . '/' . $name]; ++ }); $this->assetResolver->getJsAssets($assets_a, FALSE, $this->english); $this->assetResolver->getJsAssets($assets_b, FALSE, $this->english); $this->assertCount($expected_js_cache_item_count, $this->cache->getAllCids()); -@@ -236,11 +241,37 @@ public static function providerAttachedJsAssets() { - (new AttachedAssets())->setAlreadyLoadedLibraries([])->setLibraries(['core/drupal'])->setSettings(['currentTime' => $time]), - (new AttachedAssets())->setAlreadyLoadedLibraries([])->setLibraries(['core/drupal', 'core/jquery'])->setSettings(['currentTime' => $time]), - 2, -- 3, -+ 4, - ], +@@ -247,6 +265,32 @@ public static function providerAttachedJsAssets() { ]; } - + + /** + * Test that order of scripts are correct. + */ @@ -230,5 +377,5 @@ index d5e2190439..4630ad647d 100644 + } + } - - if (!defined('CSS_AGGREGATE_DEFAULT')) { + + if (!defined('CSS_AGGREGATE_DEFAULT')) { \ No newline at end of file