From b80c689c5b1860a1807a34b2ed50db42da4a3974 Mon Sep 17 00:00:00 2001 From: unocha-jenkins Date: Thu, 29 Aug 2024 06:39:26 +0000 Subject: [PATCH 01/13] chore: Update all outdated drupal/* unocha/* drush/* packages. --- composer.lock | 146 ++++++++++++++++++++++++++------------------------ 1 file changed, 75 insertions(+), 71 deletions(-) diff --git a/composer.lock b/composer.lock index 0f693f309..8b5d038dc 100644 --- a/composer.lock +++ b/composer.lock @@ -118,16 +118,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.320.5", + "version": "3.321.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "afda5aefd59da90208d2f59427ce81e91535b1f2" + "reference": "cea02601e77af2b164746087aa4f75270cfd0426" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/afda5aefd59da90208d2f59427ce81e91535b1f2", - "reference": "afda5aefd59da90208d2f59427ce81e91535b1f2", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cea02601e77af2b164746087aa4f75270cfd0426", + "reference": "cea02601e77af2b164746087aa4f75270cfd0426", "shasum": "" }, "require": { @@ -210,9 +210,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.320.5" + "source": "https://github.com/aws/aws-sdk-php/tree/3.321.0" }, - "time": "2024-08-21T18:14:31+00:00" + "time": "2024-08-28T18:11:46+00:00" }, { "name": "behat/mink", @@ -698,48 +698,48 @@ }, { "name": "composer/composer", - "version": "2.7.7", + "version": "2.7.8", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23" + "reference": "a2edd4e4414c17008ab585e0c62574fdb644ebfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23", + "url": "https://api.github.com/repos/composer/composer/zipball/a2edd4e4414c17008ab585e0c62574fdb644ebfc", + "reference": "a2edd4e4414c17008ab585e0c62574fdb644ebfc", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", + "composer/ca-bundle": "^1.5", "composer/class-map-generator": "^1.3.3", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.1 || ^3.1", + "composer/pcre": "^2.2 || ^3.2", "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", + "justinrainbow/json-schema": "^5.3", "php": "^7.2.5 || ^8.0", "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8 || ^3", + "react/promise": "^3.2", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.2", "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11 || ^7", - "symfony/filesystem": "^5.4 || ^6.0 || ^7", - "symfony/finder": "^5.4 || ^6.0 || ^7", + "symfony/console": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/filesystem": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/finder": "^5.4.35 || ^6.3.12 || ^7.0.3", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4 || ^6.0 || ^7" + "symfony/process": "^5.4.35 || ^6.3.12 || ^7.0.3" }, "require-dev": { - "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan": "^1.11.8", "phpstan/phpstan-deprecation-rules": "^1.2.0", "phpstan/phpstan-phpunit": "^1.4.0", "phpstan/phpstan-strict-rules": "^1.6.0", "phpstan/phpstan-symfony": "^1.4.0", - "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + "symfony/phpunit-bridge": "^6.4.3 || ^7.0.1" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -792,7 +792,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.7" + "source": "https://github.com/composer/composer/tree/2.7.8" }, "funding": [ { @@ -808,7 +808,7 @@ "type": "tidelift" } ], - "time": "2024-06-10T20:11:12+00:00" + "time": "2024-08-22T13:28:36+00:00" }, { "name": "composer/installers", @@ -1027,16 +1027,16 @@ }, { "name": "composer/pcre", - "version": "3.3.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/1637e067347a0c40bbb1e3cd786b20dcab556a81", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { @@ -1086,7 +1086,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.0" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -1102,7 +1102,7 @@ "type": "tidelift" } ], - "time": "2024-08-19T19:43:53+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", @@ -3874,17 +3874,17 @@ }, { "name": "drupal/imagemagick", - "version": "4.0.1", + "version": "4.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/imagemagick.git", - "reference": "4.0.1" + "reference": "4.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/imagemagick-4.0.1.zip", - "reference": "4.0.1", - "shasum": "f8489049fe3206a0d83efac9717fede838c20e87" + "url": "https://ftp.drupal.org/files/projects/imagemagick-4.0.2.zip", + "reference": "4.0.2", + "shasum": "758bdf632dd8f2eeb97d198b692d20a59cdbdc13" }, "require": { "drupal/core": "^10.3 | ^11", @@ -3894,8 +3894,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.1", - "datestamp": "1719035672", + "version": "4.0.2", + "datestamp": "1724827811", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4199,7 +4199,7 @@ "shasum": "fc8ea60619b6b4682bade340e13fb4565d3a7e0c" }, "require": { - "drupal/core": "^10" + "drupal/core": "^9.1 || ^10" }, "type": "drupal-module", "extra": { @@ -4398,7 +4398,7 @@ "shasum": "c25246747dac4372c7d5a5a5fd0f276d9e468eff" }, "require": { - "drupal/core": "^10", + "drupal/core": "^9.3 || ^10", "drupal/mailsystem": "^4" }, "require-dev": { @@ -4629,26 +4629,26 @@ }, { "name": "drupal/seckit", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/seckit.git", - "reference": "2.0.1" + "reference": "2.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/seckit-2.0.1.zip", - "reference": "2.0.1", - "shasum": "2eee3b9719bdd5951c2b78f419c86f4765010439" + "url": "https://ftp.drupal.org/files/projects/seckit-2.0.2.zip", + "reference": "2.0.2", + "shasum": "19c421c0c5b966d20903024e6029599c33b4707d" }, "require": { - "drupal/core": "^9.3 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.1", - "datestamp": "1671195208", + "version": "2.0.2", + "datestamp": "1724766049", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4657,7 +4657,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -4684,7 +4684,7 @@ "security" ], "support": { - "source": "http://cgit.drupalcode.org/seckit", + "source": "https://git.drupalcode.org/project/seckit", "issues": "http://drupal.org/project/issues/seckit" } }, @@ -5167,7 +5167,7 @@ "shasum": "77906ae731878b68a181f82b073617b798e5f110" }, "require": { - "drupal/core": "^10", + "drupal/core": "^9.3 || ^10", "enshrined/svg-sanitize": ">=0.15 <1.0" }, "type": "drupal-module", @@ -5315,7 +5315,7 @@ "shasum": "9ea9eee91cf75f21fcc939704baa6a7ec10d7748" }, "require": { - "drupal/core": "^10" + "drupal/core": "^8.9 || ^9 || ^10" }, "type": "drupal-module", "extra": { @@ -6384,16 +6384,16 @@ }, { "name": "google/protobuf", - "version": "v4.27.3", + "version": "v4.28.0", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "ff079fe467bf86ac8f3359e2eb77a1613ebd204d" + "reference": "17e3d804bf6631c2744c99575698f9cd4878b84f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/ff079fe467bf86ac8f3359e2eb77a1613ebd204d", - "reference": "ff079fe467bf86ac8f3359e2eb77a1613ebd204d", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/17e3d804bf6631c2744c99575698f9cd4878b84f", + "reference": "17e3d804bf6631c2744c99575698f9cd4878b84f", "shasum": "" }, "require": { @@ -6422,9 +6422,9 @@ "proto" ], "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.27.3" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.28.0" }, - "time": "2024-07-31T13:27:16+00:00" + "time": "2024-08-28T17:54:02+00:00" }, { "name": "grasmash/expander", @@ -8621,16 +8621,16 @@ }, { "name": "open-telemetry/sem-conv", - "version": "1.25.0", + "version": "1.27.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sem-conv.git", - "reference": "23f457ba390847647a17068e0095d9ffe9a4824c" + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/23f457ba390847647a17068e0095d9ffe9a4824c", - "reference": "23f457ba390847647a17068e0095d9ffe9a4824c", + "url": "https://api.github.com/repos/opentelemetry-php/sem-conv/zipball/1dba705fea74bc0718d04be26090e3697e56f4e6", + "reference": "1dba705fea74bc0718d04be26090e3697e56f4e6", "shasum": "" }, "require": { @@ -8674,7 +8674,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-04-09T23:31:35+00:00" + "time": "2024-08-28T09:20:31+00:00" }, { "name": "openai-php/client", @@ -10094,16 +10094,16 @@ }, { "name": "phpstan/extension-installer", - "version": "1.4.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/phpstan/extension-installer.git", - "reference": "f6b87faf9fc7978eab2f7919a8760bc9f58f9203" + "reference": "46c8219b3fb0deb3fc08301e8f0797d321d17dcd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f6b87faf9fc7978eab2f7919a8760bc9f58f9203", - "reference": "f6b87faf9fc7978eab2f7919a8760bc9f58f9203", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/46c8219b3fb0deb3fc08301e8f0797d321d17dcd", + "reference": "46c8219b3fb0deb3fc08301e8f0797d321d17dcd", "shasum": "" }, "require": { @@ -10130,11 +10130,15 @@ "MIT" ], "description": "Composer plugin for automatic installation of PHPStan extensions", + "keywords": [ + "dev", + "static analysis" + ], "support": { "issues": "https://github.com/phpstan/extension-installer/issues", - "source": "https://github.com/phpstan/extension-installer/tree/1.4.1" + "source": "https://github.com/phpstan/extension-installer/tree/1.4.2" }, - "time": "2024-06-10T08:20:49+00:00" + "time": "2024-08-26T07:38:00+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -10185,16 +10189,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.11", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3" + "reference": "384af967d35b2162f69526c7276acadce534d0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/707c2aed5d8d0075666e673a5e71440c1d01a5a3", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", + "reference": "384af967d35b2162f69526c7276acadce534d0e1", "shasum": "" }, "require": { @@ -10239,7 +10243,7 @@ "type": "github" } ], - "time": "2024-08-19T14:37:29+00:00" + "time": "2024-08-27T09:18:05+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", From 1624ba5ebba761e0c4a6a41053ee6eeb74335347 Mon Sep 17 00:00:00 2001 From: orakili Date: Wed, 4 Sep 2024 15:16:01 +0000 Subject: [PATCH 02/13] fix: ensure the revision user and timestamp is correctly set when editing a term profile or user posting rights Refs: RW-1071 --- .../custom/reliefweb_fields/src/Form/TaxonomyTermProfile.php | 2 ++ .../reliefweb_fields/src/Form/TaxonomyTermUserPostingRights.php | 2 ++ 2 files changed, 4 insertions(+) diff --git a/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermProfile.php b/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermProfile.php index 6396a4d9e..60519c5db 100644 --- a/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermProfile.php +++ b/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermProfile.php @@ -42,6 +42,8 @@ public function actions(array $form, FormStateInterface $form_state) { * {@inheritdoc} */ public function save(array $form, FormStateInterface $form_state) { + $this->entity->setRevisionUserId($this->currentUser()->id()); + $this->entity->setRevisionCreationTime(time()); $this->entity->setRevisionLogMessage(strtr('!bundle profile update', [ '!bundle' => $this->getBundleLabel(), ])); diff --git a/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermUserPostingRights.php b/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermUserPostingRights.php index d84f68d8a..ddf19833c 100644 --- a/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermUserPostingRights.php +++ b/html/modules/custom/reliefweb_fields/src/Form/TaxonomyTermUserPostingRights.php @@ -42,6 +42,8 @@ public function actions(array $form, FormStateInterface $form_state) { * {@inheritdoc} */ public function save(array $form, FormStateInterface $form_state) { + $this->entity->setRevisionUserId($this->currentUser()->id()); + $this->entity->setRevisionCreationTime(time()); $this->entity->setRevisionLogMessage('User posting rights update'); return parent::save($form, $form_state); } From bb9f5140bfdb639e0dfdaf1d92b7b703399e2833 Mon Sep 17 00:00:00 2001 From: unocha-jenkins Date: Thu, 5 Sep 2024 06:39:33 +0000 Subject: [PATCH 03/13] chore: Update all outdated drupal/* unocha/* drush/* packages. --- composer.lock | 307 +++++++++++++++++++++++++------------------------- 1 file changed, 154 insertions(+), 153 deletions(-) diff --git a/composer.lock b/composer.lock index 8b5d038dc..5c465d48b 100644 --- a/composer.lock +++ b/composer.lock @@ -118,16 +118,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.321.0", + "version": "3.321.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "cea02601e77af2b164746087aa4f75270cfd0426" + "reference": "986326efde1d0598ec9fc1b185716550be8ef522" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cea02601e77af2b164746087aa4f75270cfd0426", - "reference": "cea02601e77af2b164746087aa4f75270cfd0426", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/986326efde1d0598ec9fc1b185716550be8ef522", + "reference": "986326efde1d0598ec9fc1b185716550be8ef522", "shasum": "" }, "require": { @@ -210,9 +210,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.321.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.321.4" }, - "time": "2024-08-28T18:11:46+00:00" + "time": "2024-09-04T18:09:31+00:00" }, { "name": "behat/mink", @@ -698,16 +698,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": { @@ -792,7 +792,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": [ { @@ -808,7 +808,7 @@ "type": "tidelift" } ], - "time": "2024-08-22T13:28:36+00:00" + "time": "2024-09-04T12:43:28+00:00" }, { "name": "composer/installers", @@ -2534,11 +2534,11 @@ "source": { "type": "git", "url": "https://git.drupalcode.org/project/aws.git", - "reference": "5c8371feefd3ea641cca486925e3db9e628b07ba" + "reference": "be61670b6b693440e840e73d1c5ac16afde98320" }, "require": { "aws/aws-sdk-php": "^3.54", - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.2 || ^10 || ^11" }, "type": "drupal-module", "extra": { @@ -2546,8 +2546,8 @@ "dev-2.0.x": "2.0.x-dev" }, "drupal": { - "version": "2.0.3+4-dev", - "datestamp": "1690752016", + "version": "2.0.3+7-dev", + "datestamp": "1725464452", "security-coverage": { "status": "not-covered", "message": "Dev releases are not covered by Drupal security advisories." @@ -2891,26 +2891,26 @@ }, { "name": "drupal/content_entity_clone", - "version": "1.0.2", + "version": "1.0.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/content_entity_clone.git", - "reference": "1.0.2" + "reference": "1.0.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/content_entity_clone-1.0.2.zip", - "reference": "1.0.2", - "shasum": "657b4d43b5f57e3fd992f7d936c9e7c8adf2900d" + "url": "https://ftp.drupal.org/files/projects/content_entity_clone-1.0.4.zip", + "reference": "1.0.4", + "shasum": "af50c04d73b7583be5f1a3d44b8272e4378b92fc" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^9 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.2", - "datestamp": "1685532631", + "version": "1.0.4", + "datestamp": "1725468026", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3492,17 +3492,17 @@ }, { "name": "drupal/geofield", - "version": "1.60.0", + "version": "1.61.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield.git", - "reference": "8.x-1.60" + "reference": "8.x-1.61" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.60.zip", - "reference": "8.x-1.60", - "shasum": "ffb1891148b343208e7a190c8cc606a339c74ee1" + "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.61.zip", + "reference": "8.x-1.61", + "shasum": "b204f101ee536597b9c293f66f75102d6ea2d268" }, "require": { "drupal/core": "^9 || ^10 || ^11", @@ -3515,8 +3515,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.60", - "datestamp": "1722078200", + "version": "8.x-1.61", + "datestamp": "1725441883", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7902,23 +7902,24 @@ }, { "name": "mikey179/vfsstream", - "version": "v1.6.11", + "version": "v1.6.12", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^7.5||^8.5||^9.6", + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "extra": { @@ -7949,20 +7950,20 @@ "source": "https://github.com/bovigo/vfsStream/tree/master", "wiki": "https://github.com/bovigo/vfsStream/wiki" }, - "time": "2022-02-23T02:02:42+00:00" + "time": "2024-08-29T18:43:31+00:00" }, { "name": "mtdowling/jmespath.php", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b" + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", "shasum": "" }, "require": { @@ -7979,7 +7980,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -8013,9 +8014,9 @@ ], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" }, - "time": "2023-08-25T10:54:48+00:00" + "time": "2024-09-04T18:46:31+00:00" }, { "name": "myclabs/deep-copy", @@ -9638,16 +9639,16 @@ }, { "name": "php-http/multipart-stream-builder", - "version": "1.3.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24" + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/ed56da23b95949ae4747378bed8a5b61a2fdae24", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e", "shasum": "" }, "require": { @@ -9688,9 +9689,9 @@ ], "support": { "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.1" + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2" }, - "time": "2024-06-10T14:51:55+00:00" + "time": "2024-09-04T13:22:54+00:00" }, { "name": "php-http/promise", @@ -10094,22 +10095,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", @@ -10136,22 +10137,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/phpdoc-parser", - "version": "1.29.1", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "shasum": "" }, "require": { @@ -10183,22 +10184,22 @@ "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.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-08-29T09:54:52+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "384af967d35b2162f69526c7276acadce534d0e1" + "reference": "d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/384af967d35b2162f69526c7276acadce534d0e1", - "reference": "384af967d35b2162f69526c7276acadce534d0e1", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2", + "reference": "d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2", "shasum": "" }, "require": { @@ -10243,7 +10244,7 @@ "type": "github" } ], - "time": "2024-08-27T09:18:05+00:00" + "time": "2024-09-03T19:55:22+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -13088,16 +13089,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": { @@ -13162,7 +13163,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.10" + "source": "https://github.com/symfony/console/tree/v6.4.11" }, "funding": [ { @@ -13178,7 +13179,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-15T22:48:29+00:00" }, { "name": "symfony/css-selector", @@ -13247,16 +13248,16 @@ }, { "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": { @@ -13308,7 +13309,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": [ { @@ -13324,7 +13325,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:32:07+00:00" + "time": "2024-08-29T08:15:38+00:00" }, { "name": "symfony/deprecation-contracts", @@ -13759,16 +13760,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": { @@ -13803,7 +13804,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": [ { @@ -13819,7 +13820,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:06:38+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/http-foundation", @@ -13900,16 +13901,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": { @@ -13994,7 +13995,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": [ { @@ -14010,7 +14011,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T14:52:04+00:00" + "time": "2024-08-30T16:57:20+00:00" }, { "name": "symfony/lock", @@ -14173,16 +14174,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": { @@ -14238,7 +14239,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": [ { @@ -14254,20 +14255,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-08-13T12:15:02+00:00" }, { "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": { @@ -14320,7 +14321,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": [ { @@ -14336,7 +14337,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/polyfill-ctype", @@ -15420,16 +15421,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": { @@ -15483,7 +15484,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": [ { @@ -15499,20 +15500,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": { @@ -15566,7 +15567,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.10" + "source": "https://github.com/symfony/routing/tree/v6.4.11" }, "funding": [ { @@ -15582,20 +15583,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": { @@ -15664,7 +15665,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": [ { @@ -15680,7 +15681,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:13:26+00:00" + "time": "2024-08-17T07:51:47+00:00" }, { "name": "symfony/service-contracts", @@ -15767,16 +15768,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": { @@ -15833,7 +15834,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.10" + "source": "https://github.com/symfony/string/tree/v6.4.11" }, "funding": [ { @@ -15849,7 +15850,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:21:14+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "symfony/translation-contracts", @@ -15931,16 +15932,16 @@ }, { "name": "symfony/uid", - "version": "v6.4.8", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf" + "reference": "6a0394ad707de386547223948fac1e0f2805bc0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "url": "https://api.github.com/repos/symfony/uid/zipball/6a0394ad707de386547223948fac1e0f2805bc0b", + "reference": "6a0394ad707de386547223948fac1e0f2805bc0b", "shasum": "" }, "require": { @@ -15985,7 +15986,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.8" + "source": "https://github.com/symfony/uid/tree/v6.4.11" }, "funding": [ { @@ -16001,20 +16002,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "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": { @@ -16082,7 +16083,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": [ { @@ -16098,20 +16099,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": { @@ -16167,7 +16168,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": [ { @@ -16183,7 +16184,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-30T16:03:21+00:00" }, { "name": "symfony/var-exporter", @@ -16264,16 +16265,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": { @@ -16316,7 +16317,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": [ { @@ -16332,7 +16333,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-08-12T09:55:28+00:00" }, { "name": "theseer/tokenizer", From 54e85bb401c1285a9e35157175e3113d4abd323d Mon Sep 17 00:00:00 2001 From: Peter Lieverdink Date: Mon, 9 Sep 2024 14:19:07 +1000 Subject: [PATCH 04/13] chore: Add required modules for using Entra ID via OIDC. So that we can eventually remove HID. For now, some extra patches are needed, too. Refs: OPS-10834 --- PATCHES/openid_connect-3390668-6.patch | 17 + ...openid_connect_windows_aad-3346603-5.patch | 13 + composer.json | 2 + composer.lock | 461 +++++++++++++++++- composer.patches.json | 6 + 5 files changed, 493 insertions(+), 6 deletions(-) create mode 100644 PATCHES/openid_connect-3390668-6.patch create mode 100644 PATCHES/openid_connect_windows_aad-3346603-5.patch diff --git a/PATCHES/openid_connect-3390668-6.patch b/PATCHES/openid_connect-3390668-6.patch new file mode 100644 index 000000000..a2390b189 --- /dev/null +++ b/PATCHES/openid_connect-3390668-6.patch @@ -0,0 +1,17 @@ +diff --git a/src/Controller/OpenIDConnectRedirectController.php b/src/Controller/OpenIDConnectRedirectController.php +index 3271c54..a4fc578 100644 +--- a/src/Controller/OpenIDConnectRedirectController.php ++++ b/src/Controller/OpenIDConnectRedirectController.php +@@ -295,7 +295,11 @@ class OpenIDConnectRedirectController implements ContainerInjectionInterface, Ac + if ($op === 'login') { + $success = $this->openIDConnect->completeAuthorization($openid_connect_client, $tokens); + +- if (!$success) { ++ // We need the full user object to check if the account is blocked. ++ $account = $this->currentUser->getAccount(); ++ ++ // Display an error if the current user is blocked and not anonymous. ++ if (!$success && $this->currentUser->id() && !$account->isBlocked()) { + $this->messenger()->addError($this->t('Logging in with @provider could not be completed due to an error.', $provider_param)); + } + } diff --git a/PATCHES/openid_connect_windows_aad-3346603-5.patch b/PATCHES/openid_connect_windows_aad-3346603-5.patch new file mode 100644 index 000000000..56a481852 --- /dev/null +++ b/PATCHES/openid_connect_windows_aad-3346603-5.patch @@ -0,0 +1,13 @@ +diff --git a/src/Plugin/OpenIDConnectClient/WindowsAad.php b/src/Plugin/OpenIDConnectClient/WindowsAad.php +index 8845843..6431581 100644 +--- a/src/Plugin/OpenIDConnectClient/WindowsAad.php ++++ b/src/Plugin/OpenIDConnectClient/WindowsAad.php +@@ -318,7 +318,7 @@ as the mapping between Azure AD accounts and Drupal users.
+ case 2: + $v2 = str_contains($endpoints['token'], '/oauth2/v2.0/'); + if (!$v2) { +- $request_options['form_params']['resource'] = 'https://graph.microsoft.com'; ++ $request_options['form_params']['scope'] = 'https://graph.microsoft.com/.default'; + } + break; + } diff --git a/composer.json b/composer.json index 90afa5e7a..2b56e1dbf 100644 --- a/composer.json +++ b/composer.json @@ -50,6 +50,8 @@ "drupal/memcache": "^2.5", "drupal/metatag": "^1.22", "drupal/mimemail": "^1.0@alpha", + "drupal/openid_connect": "dev-3.x", + "drupal/openid_connect_windows_aad": "^2.0@beta", "drupal/pathauto": "^1.11", "drupal/redirect": "^1.8", "drupal/seckit": "^2.0", diff --git a/composer.lock b/composer.lock index 5c465d48b..1865543df 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ec50a27a9b67a132328f44fec4a3de61", + "content-hash": "ef61109ad92cfb8a5719745fbef232bc", "packages": [ { "name": "asm89/stack-cors", @@ -3440,6 +3440,60 @@ "source": "https://git.drupalcode.org/project/environment_indicator" } }, + { + "name": "drupal/externalauth", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/externalauth.git", + "reference": "2.0.6" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/externalauth-2.0.6.zip", + "reference": "2.0.6", + "shasum": "0dbc9fbab0901e940d52b239e08f031797f6bd2a" + }, + "require": { + "drupal/core": "^9.5 || ^10 || ^11" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.6", + "datestamp": "1720689758", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Sven Decabooter", + "homepage": "https://www.drupal.org/u/svendecabooter", + "role": "Maintainer" + }, + { + "name": "snufkin", + "homepage": "https://www.drupal.org/user/58645" + }, + { + "name": "svendecabooter", + "homepage": "https://www.drupal.org/user/35369" + } + ], + "description": "Helper module to authenticate users using an external site / service and storing identification details", + "homepage": "https://drupal.org/project/externalauth", + "support": { + "source": "https://git.drupalcode.org/project/externalauth", + "issues": "https://www.drupal.org/project/issues/externalauth" + } + }, { "name": "drupal/file_mdm", "version": "3.1.0", @@ -4104,6 +4158,77 @@ "issues": "https://www.drupal.org/project/issues/jsonlog" } }, + { + "name": "drupal/key", + "version": "1.19.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/key.git", + "reference": "8.x-1.19" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/key-8.x-1.19.zip", + "reference": "8.x-1.19", + "shasum": "ee8f7b8f8babd381f1e4423dccede94b4eb5985c" + }, + "require": { + "drupal/core": ">=8.9 <12" + }, + "require-dev": { + "drush/drush": ">=9" + }, + "suggest": { + "drush/drush": ">=11" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.19", + "datestamp": "1720053341", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + }, + "drush": { + "services": { + "drush.services.yml": ">=9" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Cellar Door", + "homepage": "https://www.drupal.org/user/658076" + }, + { + "name": "crashtest_", + "homepage": "https://www.drupal.org/user/261457" + }, + { + "name": "nerdstein", + "homepage": "https://www.drupal.org/user/1557710" + }, + { + "name": "rlhawk", + "homepage": "https://www.drupal.org/user/352283" + } + ], + "description": "Provides the ability to manage site-wide keys", + "homepage": "http://drupal.org/project/key", + "keywords": [ + "Drupal" + ], + "support": { + "source": "https://git.drupalcode.org/project/key", + "issues": "http://drupal.org/project/key" + } + }, { "name": "drupal/mailsystem", "version": "4.5.0", @@ -4199,7 +4324,7 @@ "shasum": "fc8ea60619b6b4682bade340e13fb4565d3a7e0c" }, "require": { - "drupal/core": "^9.1 || ^10" + "drupal/core": "^10" }, "type": "drupal-module", "extra": { @@ -4398,7 +4523,7 @@ "shasum": "c25246747dac4372c7d5a5a5fd0f276d9e468eff" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^10", "drupal/mailsystem": "^4" }, "require-dev": { @@ -4500,6 +4625,142 @@ "source": "https://git.drupalcode.org/project/monitoring" } }, + { + "name": "drupal/openid_connect", + "version": "dev-3.x", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/openid_connect.git", + "reference": "d10926f866959b8b57204fcd3fa9584a739142fd" + }, + "require": { + "drupal/core": "^9.3 || ^10", + "drupal/externalauth": "^2.0", + "ext-json": "*", + "php": ">=7.1.0" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev" + }, + "drupal": { + "version": "3.0.0-alpha3+1-dev", + "datestamp": "1717345768", + "security-coverage": { + "status": "not-covered", + "message": "Dev releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "bojanz", + "homepage": "https://www.drupal.org/user/86106" + }, + { + "name": "jcnventura", + "homepage": "https://www.drupal.org/user/122464" + }, + { + "name": "pfrilling", + "homepage": "https://www.drupal.org/user/169695" + }, + { + "name": "pjcdawkins", + "homepage": "https://www.drupal.org/user/1025236" + }, + { + "name": "sanduhrs", + "homepage": "https://www.drupal.org/user/28074" + } + ], + "description": "A pluggable client implementation for the OpenID Connect protocol.", + "homepage": "https://www.drupal.org/project/openid_connect", + "keywords": [ + "Drupal" + ], + "support": { + "source": "https://git.drupalcode.org/project/openid_connect", + "issues": "https://www.drupal.org/project/issues/openid_connect" + } + }, + { + "name": "drupal/openid_connect_windows_aad", + "version": "2.0.0-beta7", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/openid_connect_windows_aad.git", + "reference": "2.0.0-beta7" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/openid_connect_windows_aad-2.0.0-beta7.zip", + "reference": "2.0.0-beta7", + "shasum": "fff769a63f20c2481dfcadfd1622032188007cf4" + }, + "require": { + "drupal/core": "^9 || ^10", + "drupal/key": "^1.0", + "drupal/openid_connect": "^2.0 || ^3.0", + "lcobucci/jwt": "^4.2.1", + "php": ">=8.0.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.0-beta7", + "datestamp": "1701908835", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "acrazyanimal", + "homepage": "https://www.drupal.org/user/696648" + }, + { + "name": "ajayNimbolkar", + "homepage": "https://www.drupal.org/user/2876727" + }, + { + "name": "batigolix", + "homepage": "https://www.drupal.org/user/22175" + }, + { + "name": "fabianderijk", + "homepage": "https://www.drupal.org/user/278745" + }, + { + "name": "tomvv", + "homepage": "https://www.drupal.org/user/2748021" + }, + { + "name": "webflo", + "homepage": "https://www.drupal.org/user/254778" + } + ], + "description": "A CTools plugin that adds a Windows Azure AD client to OpenID Connect.", + "homepage": "https://www.drupal.org/project/openid_connect_windows_aad", + "keywords": [ + "Drupal" + ], + "support": { + "source": "http://cgit.drupalcode.org/openid_connect_windows_aad", + "issues": "https://www.drupal.org/project/issues/openid_connect_windows_aad" + } + }, { "name": "drupal/pathauto", "version": "1.13.0", @@ -5167,7 +5428,7 @@ "shasum": "77906ae731878b68a181f82b073617b798e5f110" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^10", "enshrined/svg-sanitize": ">=0.15 <1.0" }, "type": "drupal-module", @@ -5315,7 +5576,7 @@ "shasum": "9ea9eee91cf75f21fcc939704baa6a7ec10d7748" }, "require": { - "drupal/core": "^8.9 || ^9 || ^10" + "drupal/core": "^10" }, "type": "drupal-module", "extra": { @@ -7014,6 +7275,144 @@ }, "time": "2024-07-06T21:00:26+00:00" }, + { + "name": "lcobucci/clock", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/clock.git", + "reference": "6f28b826ea01306b07980cb8320ab30b966cd715" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/6f28b826ea01306b07980cb8320ab30b966cd715", + "reference": "6f28b826ea01306b07980cb8320ab30b966cd715", + "shasum": "" + }, + "require": { + "php": "~8.2.0 || ~8.3.0", + "psr/clock": "^1.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "infection/infection": "^0.27", + "lcobucci/coding-standard": "^11.0.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.10.25", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^10.2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Lcobucci\\Clock\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Luís Cobucci", + "email": "lcobucci@gmail.com" + } + ], + "description": "Yet another clock abstraction", + "support": { + "issues": "https://github.com/lcobucci/clock/issues", + "source": "https://github.com/lcobucci/clock/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2023-11-17T17:00:27+00:00" + }, + { + "name": "lcobucci/jwt", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/jwt.git", + "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/4d7de2fe0d51a96418c0d04004986e410e87f6b4", + "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4", + "shasum": "" + }, + "require": { + "ext-hash": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-sodium": "*", + "lcobucci/clock": "^2.0 || ^3.0", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "infection/infection": "^0.21", + "lcobucci/coding-standard": "^6.0", + "mikey179/vfsstream": "^1.6.7", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/php-invoker": "^3.1", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Lcobucci\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Luís Cobucci", + "email": "lcobucci@gmail.com", + "role": "Developer" + } + ], + "description": "A simple library to work with JSON Web Token and JSON Web Signature", + "keywords": [ + "JWS", + "jwt" + ], + "support": { + "issues": "https://github.com/lcobucci/jwt/issues", + "source": "https://github.com/lcobucci/jwt/tree/4.3.0" + }, + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2023-01-02T13:28:00+00:00" + }, { "name": "league/commonmark", "version": "2.5.1", @@ -10816,6 +11215,54 @@ }, "time": "2021-02-03T23:26:27+00:00" }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, { "name": "psr/container", "version": "2.0.2", @@ -17560,7 +18007,9 @@ "drupal/config_split": 5, "drupal/imageapi_optimize_binaries": 10, "drupal/inline_entity_form": 5, - "drupal/mimemail": 15 + "drupal/mimemail": 15, + "drupal/openid_connect": 20, + "drupal/openid_connect_windows_aad": 10 }, "prefer-stable": true, "prefer-lowest": false, diff --git a/composer.patches.json b/composer.patches.json index 013386075..57f3ab49c 100644 --- a/composer.patches.json +++ b/composer.patches.json @@ -21,6 +21,12 @@ "drupal/jsonlog": { "Direct logging to Elastic cluster": "PATCHES/jsonlog--3460929--elastic-direct-logging.patch" }, + "drupal/openid_connect": { + "Handle case if user is in blocked state after SSO Authorization": "PATCHES/openid_connect-3390668-6.patch" + }, + "drupal/openid_connect_windows_aad": { + "Failed to get authentication tokens for Windows Azure AD": "PATCHES/openid_connect_windows_aad-3346603-5.patch" + }, "drupal/svg_image": { "Drupal 10.2 compatibility": "PATCHES/svg_image--3413668--drupal-10.2-compatibility.patch" }, From e97e6fc98c67549c242880b6934184f84734939c Mon Sep 17 00:00:00 2001 From: Peter Lieverdink Date: Mon, 9 Sep 2024 14:22:57 +1000 Subject: [PATCH 05/13] chore: Add configuration for key and openid_connect modules. Refs: OPS-10834 --- config/key.key.entraid_client_secret.yml | 15 +++++++++++++ config/openid_connect.client.entraid.yml | 28 ++++++++++++++++++++++++ config/openid_connect.settings.yml | 11 ++++++++++ 3 files changed, 54 insertions(+) create mode 100644 config/key.key.entraid_client_secret.yml create mode 100644 config/openid_connect.client.entraid.yml create mode 100644 config/openid_connect.settings.yml diff --git a/config/key.key.entraid_client_secret.yml b/config/key.key.entraid_client_secret.yml new file mode 100644 index 000000000..4e6da6498 --- /dev/null +++ b/config/key.key.entraid_client_secret.yml @@ -0,0 +1,15 @@ +uuid: fbbdd5c7-ec5e-417d-a829-52df6ce2e78e +langcode: en +status: true +dependencies: { } +id: entraid_client_secret +label: 'Entra ID Client Secret' +description: 'Entra ID Client Secret' +key_type: authentication +key_type_settings: { } +key_provider: file +key_provider_settings: + file_location: /srv/www/shared/entraid.key + strip_line_breaks: true +key_input: none +key_input_settings: { } diff --git a/config/openid_connect.client.entraid.yml b/config/openid_connect.client.entraid.yml new file mode 100644 index 000000000..c1190dc15 --- /dev/null +++ b/config/openid_connect.client.entraid.yml @@ -0,0 +1,28 @@ +uuid: ff1f957d-f7d8-44e2-ac3c-2050bc2befa9 +langcode: en +status: true +dependencies: + module: + - openid_connect_windows_aad +id: entraid +label: 'Entra ID (UNITE ID)' +plugin: windows_aad +settings: + client_id: 60f61dfa-1af4-4b6a-bb62-73c95ead00d1 + client_secret: entraid_client_secret + authorization_endpoint_wa: 'https://login.microsoftonline.com/0f9e35db-544f-4f60-bdcc-5ea416e6dc70/oauth2/v2.0/authorize' + token_endpoint_wa: 'https://login.microsoftonline.com/0f9e35db-544f-4f60-bdcc-5ea416e6dc70/oauth2/v2.0/token' + userinfo_endpoint_wa: '' + map_ad_groups_to_roles: false + group_mapping: + method: 0 + mappings: '' + strict: false + userinfo_graph_api_wa: 0 + userinfo_graph_api_use_other_mails: false + userinfo_update_email: true + hide_email_address_warning: false + subject_key: sub + end_session_endpoint: '' + iss_allowed_domains: 'https://dev.reliefweb-int.ahconu.org' + front_channel_logout_url: '' diff --git a/config/openid_connect.settings.yml b/config/openid_connect.settings.yml new file mode 100644 index 000000000..438b2aed6 --- /dev/null +++ b/config/openid_connect.settings.yml @@ -0,0 +1,11 @@ +always_save_userinfo: true +connect_existing_users: true +override_registration_settings: false +end_session_enabled: true +user_login_display: below +redirect_login: '' +redirect_logout: '/' +userinfo_mappings: + timezone: zoneinfo + user_picture: picture +role_mappings: { } From b0e21c6f67f531e5910e01893c024e11b6803c2f Mon Sep 17 00:00:00 2001 From: Peter Lieverdink Date: Mon, 9 Sep 2024 14:25:17 +1000 Subject: [PATCH 06/13] chore: Enable the new auth modules! Refs: OPS-10834 --- config/core.extension.yml | 4 ++++ config/openid_connect.client.entraid.yml | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/config/core.extension.yml b/config/core.extension.yml index e55567a06..e34122ade 100644 --- a/config/core.extension.yml +++ b/config/core.extension.yml @@ -20,6 +20,7 @@ module: dynamic_page_cache: 0 editor: 0 environment_indicator: 0 + externalauth: 0 field: 0 field_ui: 0 file: 0 @@ -38,6 +39,7 @@ module: inline_entity_form: 0 inline_form_errors: 0 jsonlog: 0 + key: 0 language: 0 link: 0 locale: 0 @@ -60,6 +62,8 @@ module: ocha_ai_chat: 0 ocha_ai_tag: 0 ocha_monitoring: 0 + openid_connect: 0 + openid_connect_windows_aad: 0 options: 0 page_cache: 0 path: 0 diff --git a/config/openid_connect.client.entraid.yml b/config/openid_connect.client.entraid.yml index c1190dc15..7585a2f15 100644 --- a/config/openid_connect.client.entraid.yml +++ b/config/openid_connect.client.entraid.yml @@ -8,10 +8,10 @@ id: entraid label: 'Entra ID (UNITE ID)' plugin: windows_aad settings: - client_id: 60f61dfa-1af4-4b6a-bb62-73c95ead00d1 + client_id: entraid_client_id client_secret: entraid_client_secret - authorization_endpoint_wa: 'https://login.microsoftonline.com/0f9e35db-544f-4f60-bdcc-5ea416e6dc70/oauth2/v2.0/authorize' - token_endpoint_wa: 'https://login.microsoftonline.com/0f9e35db-544f-4f60-bdcc-5ea416e6dc70/oauth2/v2.0/token' + authorization_endpoint_wa: '' + token_endpoint_wa: '' userinfo_endpoint_wa: '' map_ad_groups_to_roles: false group_mapping: @@ -24,5 +24,5 @@ settings: hide_email_address_warning: false subject_key: sub end_session_endpoint: '' - iss_allowed_domains: 'https://dev.reliefweb-int.ahconu.org' + iss_allowed_domains: '' front_channel_logout_url: '' From c7be15c1200c86e28ac37d3731a795964a768acb Mon Sep 17 00:00:00 2001 From: Andy Footner Date: Thu, 12 Sep 2024 11:24:12 +0200 Subject: [PATCH 07/13] chore: pass on credentials to action Refs: OPS-10254 --- .github/workflows/composer-update.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/composer-update.yml b/.github/workflows/composer-update.yml index be7c6baf2..c7ceb132d 100644 --- a/.github/workflows/composer-update.yml +++ b/.github/workflows/composer-update.yml @@ -13,8 +13,10 @@ jobs: id: update-action uses: UN-OCHA/actions/composer-update@main with: + aws_access_key_id: ${{ secrets.ECR_AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ secrets.ECR_AWS_SECRET_ACCESS_KEY }} github_access_token: ${{ secrets.PAT }} - patch_branch: 'develop' - patch_maintainers: ${{ vars.DRUPAL_MAINTAINERS }} + patch_branch: ${{ github.head_ref || github.ref_name }} + patch_maintainers: ${{ secrets.DRUPAL_MAINTAINERS }} slack_bot_token: ${{ secrets.SLACK_BOT_TOKEN }} slack_channel_name: ${{ vars.SLACK_CHANNEL }} From f03101a3e12248d6a75c284ea989e7951f683b04 Mon Sep 17 00:00:00 2001 From: orakili Date: Fri, 13 Sep 2024 02:38:55 +0000 Subject: [PATCH 08/13] chore: composer update (Drupal 10.3.5, ocha_ai 1.6.0, honeypot downgrade to 2.1.4) --- .../core--drupal--3467860-aggregation.patch | 255 ++++++++-- composer.json | 2 +- composer.lock | 467 +++++++++--------- 3 files changed, 446 insertions(+), 278 deletions(-) diff --git a/PATCHES/core--drupal--3467860-aggregation.patch b/PATCHES/core--drupal--3467860-aggregation.patch index a233d22e9..c5c835d22 100644 --- a/PATCHES/core--drupal--3467860-aggregation.patch +++ b/PATCHES/core--drupal--3467860-aggregation.patch @@ -1,37 +1,189 @@ +diff --git a/core/core.libraries.yml b/core/core.libraries.yml +index d6136b22aa..8151d7e33e 100644 +--- a/core/core.libraries.yml ++++ b/core/core.libraries.yml +@@ -823,8 +823,7 @@ drupal.touchevents-test: + drupal.vertical-tabs: + version: VERSION + js: +- # Load before core/drupal.collapse. +- misc/vertical-tabs.js: { weight: -1 } ++ misc/vertical-tabs.js: {} + css: + 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 fcd294a649..8182f2cc59 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]); -+ } -+ } +@@ -91,31 +91,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; + } + + /** +@@ -125,15 +171,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 []; + } +@@ -157,7 +197,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) { +@@ -211,7 +251,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'])) { +@@ -233,24 +273,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 70ebcf5170..73d3e7ea00 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/drupal.vertical-tabs + + internal.drupal.ckeditor5.table: + 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 31340bf472..a7cec55b3e 100644 --- a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php @@ -8,6 +8,8 @@ @@ -140,19 +292,24 @@ 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 { +@@ -169,22 +194,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()); @@ -163,30 +320,26 @@ index d5e2190439..4630ad647d 100644 return [ 'one js only library and one css only library' => [ (new AttachedAssets())->setAlreadyLoadedLibraries([])->setLibraries(['core/drupal']), -@@ -204,16 +219,6 @@ public static function providerAttachedCssAssets() { +@@ -204,13 +224,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, - ], +@@ -238,6 +256,32 @@ public static function providerAttachedJsAssets() { ]; } diff --git a/composer.json b/composer.json index 2b56e1dbf..4db66b68e 100644 --- a/composer.json +++ b/composer.json @@ -39,7 +39,7 @@ "drupal/geofield": "^1.52", "drupal/google_tag": "^1.6", "drupal/guidelines": "^1.0", - "drupal/honeypot": "^2.1", + "drupal/honeypot": "2.1.4", "drupal/imageapi_optimize_binaries": "^1.0@beta", "drupal/imageapi_optimize_webp": "^2.0", "drupal/imagemagick": "^4.0", diff --git a/composer.lock b/composer.lock index 1865543df..4658e3d6c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ef61109ad92cfb8a5719745fbef232bc", + "content-hash": "fa83edf0d251608ba959078e1ce18d02", "packages": [ { "name": "asm89/stack-cors", @@ -118,16 +118,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.321.4", + "version": "3.321.10", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "986326efde1d0598ec9fc1b185716550be8ef522" + "reference": "a81a9a2cb5f451e03f8ef68b02ebfecfbf1fa7f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/986326efde1d0598ec9fc1b185716550be8ef522", - "reference": "986326efde1d0598ec9fc1b185716550be8ef522", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a81a9a2cb5f451e03f8ef68b02ebfecfbf1fa7f2", + "reference": "a81a9a2cb5f451e03f8ef68b02ebfecfbf1fa7f2", "shasum": "" }, "require": { @@ -210,9 +210,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.321.4" + "source": "https://github.com/aws/aws-sdk-php/tree/3.321.10" }, - "time": "2024-09-04T18:09:31+00:00" + "time": "2024-09-12T18:08:32+00:00" }, { "name": "behat/mink", @@ -2050,16 +2050,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": { @@ -2070,11 +2070,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" @@ -2120,9 +2120,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", @@ -2534,7 +2534,7 @@ "source": { "type": "git", "url": "https://git.drupalcode.org/project/aws.git", - "reference": "be61670b6b693440e840e73d1c5ac16afde98320" + "reference": "8189f4bf5967349815fdac013fe6c331a956b24b" }, "require": { "aws/aws-sdk-php": "^3.54", @@ -2546,8 +2546,8 @@ "dev-2.0.x": "2.0.x-dev" }, "drupal": { - "version": "2.0.3+7-dev", - "datestamp": "1725464452", + "version": "2.0.4+1-dev", + "datestamp": "1725630062", "security-coverage": { "status": "not-covered", "message": "Dev releases are not covered by Drupal security advisories." @@ -2695,29 +2695,29 @@ }, { "name": "drupal/components", - "version": "3.0.0-beta3", + "version": "3.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/components.git", - "reference": "3.0.0-beta3" + "reference": "3.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-3.0.0-beta3.zip", - "reference": "3.0.0-beta3", - "shasum": "47ced4332f0a655ca38ae1b54e97a8e78d59f0bc" + "url": "https://ftp.drupal.org/files/projects/components-3.1.0.zip", + "reference": "3.1.0", + "shasum": "a9d9f7517f54038d0d6fa68185d80e26d2ad1d8d" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^10.2 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0-beta3", - "datestamp": "1651759488", + "version": "3.1.0", + "datestamp": "1725921122", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -2728,9 +2728,13 @@ "authors": [ { "name": "JohnAlbin", - "homepage": "https://www.drupal.org/user/32095", + "homepage": "https://www.drupal.org/user/1036766", "email": "virtually.johnalbin@gmail.com" }, + { + "name": "johnalbin", + "homepage": "https://www.drupal.org/user/32095" + }, { "name": "robloach", "homepage": "https://www.drupal.org/user/61114" @@ -2936,16 +2940,16 @@ }, { "name": "drupal/core", - "version": "10.3.2", + "version": "10.3.5", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a" + "reference": "831a269a4d99957638977ec325c3346f896d9f08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/10e79c67a903844bef02a5cf10475d9a8b623e7a", - "reference": "10e79c67a903844bef02a5cf10475d9a8b623e7a", + "url": "https://api.github.com/repos/drupal/core/zipball/831a269a4d99957638977ec325c3346f896d9f08", + "reference": "831a269a4d99957638977ec325c3346f896d9f08", "shasum": "" }, "require": { @@ -2991,7 +2995,7 @@ "symfony/serializer": "^6.4", "symfony/validator": "^6.4", "symfony/yaml": "^6.4", - "twig/twig": "^3.9.3" + "twig/twig": "^3.14.0" }, "conflict": { "drush/drush": "<12.4.3" @@ -3094,22 +3098,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.5" }, - "time": "2024-08-08T09:23:57+00:00" + "time": "2024-09-12T09:45:37+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.3.2", + "version": "10.3.5", "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": { @@ -3144,13 +3148,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.5" }, - "time": "2024-05-11T08:21:39+00:00" + "time": "2024-08-22T14:31:34+00:00" }, { "name": "drupal/core-dev", - "version": "10.3.2", + "version": "10.3.5", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", @@ -3200,22 +3204,22 @@ ], "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.5" }, "time": "2024-07-04T10:19:29+00:00" }, { "name": "drupal/core-recommended", - "version": "10.3.2", + "version": "10.3.5", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "18b7288d2e661afadfff4a714c5a166bf2554124" + "reference": "055a27d032e1fdcbac90976a14bdd152b368d761" }, "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/055a27d032e1fdcbac90976a14bdd152b368d761", + "reference": "055a27d032e1fdcbac90976a14bdd152b368d761", "shasum": "" }, "require": { @@ -3224,7 +3228,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.5", "egulias/email-validator": "~4.0.2", "guzzlehttp/guzzle": "~7.8.1", "guzzlehttp/promises": "~2.0.2", @@ -3273,7 +3277,7 @@ "symfony/var-dumper": "~v6.4.7", "symfony/var-exporter": "~v6.4.7", "symfony/yaml": "~v6.4.7", - "twig/twig": "~v3.10.2" + "twig/twig": "~v3.14.0" }, "conflict": { "webflo/drupal-core-strict": "*" @@ -3285,9 +3289,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.5" }, - "time": "2024-08-08T09:23:57+00:00" + "time": "2024-09-12T09:45:37+00:00" }, { "name": "drupal/ctools", @@ -3713,29 +3717,29 @@ }, { "name": "drupal/honeypot", - "version": "2.2.0", + "version": "2.1.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/honeypot.git", - "reference": "2.2.0" + "reference": "2.1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/honeypot-2.2.0.zip", - "reference": "2.2.0", - "shasum": "56397c3779ebac1526cce9ecd39385017ee9a837" + "url": "https://ftp.drupal.org/files/projects/honeypot-2.1.4.zip", + "reference": "2.1.4", + "shasum": "adf76c3520c0e458177dbe6d638aa2d6ae40a95b" }, "require": { - "drupal/core": "^10.3 || ^11" + "drupal/core": "^9.2 || ^10" }, "require-dev": { - "drupal/rules": "^4.0" + "drupal/rules": "^3.x-dev" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.2.0", - "datestamp": "1723761042", + "version": "2.1.4", + "datestamp": "1723489062", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4492,7 +4496,7 @@ "role": "Developer" }, { - "name": "Dave Reid", + "name": "dave reid", "homepage": "https://www.drupal.org/user/53892" } ], @@ -4890,17 +4894,17 @@ }, { "name": "drupal/seckit", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/seckit.git", - "reference": "2.0.2" + "reference": "2.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/seckit-2.0.2.zip", - "reference": "2.0.2", - "shasum": "19c421c0c5b966d20903024e6029599c33b4707d" + "url": "https://ftp.drupal.org/files/projects/seckit-2.0.3.zip", + "reference": "2.0.3", + "shasum": "34d38f2daaf99781ef6b7e7fbe2eeabc73a7ca16" }, "require": { "drupal/core": "^9.5 || ^10 || ^11" @@ -4908,8 +4912,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1724766049", + "version": "2.0.3", + "datestamp": "1726075930", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5736,26 +5740,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" @@ -5995,20 +5999,21 @@ }, { "name": "elastic/transport", - "version": "v8.8.0", + "version": "v8.10.0", "source": { "type": "git", "url": "https://github.com/elastic/elastic-transport-php.git", - "reference": "cdf9f63a16ec6bfb4c881ab89aa0e2a61fb7c20b" + "reference": "8be37d679637545e50b1cea9f8ee903888783021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elastic-transport-php/zipball/cdf9f63a16ec6bfb4c881ab89aa0e2a61fb7c20b", - "reference": "cdf9f63a16ec6bfb4c881ab89aa0e2a61fb7c20b", + "url": "https://api.github.com/repos/elastic/elastic-transport-php/zipball/8be37d679637545e50b1cea9f8ee903888783021", + "reference": "8be37d679637545e50b1cea9f8ee903888783021", "shasum": "" }, "require": { "composer-runtime-api": "^2.0", + "open-telemetry/api": "^1.0", "php": "^7.4 || ^8.0", "php-http/discovery": "^1.14", "php-http/httplug": "^2.3", @@ -6019,9 +6024,11 @@ }, "require-dev": { "nyholm/psr7": "^1.5", + "open-telemetry/sdk": "^1.0", "php-http/mock-client": "^1.5", "phpstan/phpstan": "^1.4", - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^9.5", + "symfony/http-client": "^5.4" }, "type": "library", "autoload": { @@ -6044,26 +6051,26 @@ ], "support": { "issues": "https://github.com/elastic/elastic-transport-php/issues", - "source": "https://github.com/elastic/elastic-transport-php/tree/v8.8.0" + "source": "https://github.com/elastic/elastic-transport-php/tree/v8.10.0" }, - "time": "2023-11-08T10:51:51+00:00" + "time": "2024-08-14T08:55:07+00:00" }, { "name": "elasticsearch/elasticsearch", - "version": "v8.14.0", + "version": "v8.15.0", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "bff3c3e2402f6a20449404637f91a5ae214eff46" + "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/bff3c3e2402f6a20449404637f91a5ae214eff46", - "reference": "bff3c3e2402f6a20449404637f91a5ae214eff46", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/34c2444fa8d4c3e6c8b009bd8dea90bca007203b", + "reference": "34c2444fa8d4c3e6c8b009bd8dea90bca007203b", "shasum": "" }, "require": { - "elastic/transport": "^8.8", + "elastic/transport": "^8.10", "guzzlehttp/guzzle": "^7.0", "php": "^7.4 || ^8.0", "psr/http-client": "^1.0", @@ -6102,31 +6109,31 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v8.14.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v8.15.0" }, - "time": "2024-06-12T19:58:31+00:00" + "time": "2024-08-14T14:32:50+00:00" }, { "name": "enshrined/svg-sanitize", - "version": "0.19.0", + "version": "0.20.0", "source": { "type": "git", "url": "https://github.com/darylldoyle/svg-sanitizer.git", - "reference": "e95cd17be68e45f523cbfb0fe50cdd891b0cf20e" + "reference": "068d9fcf912c88a0471d101d95a2caa87c50aee7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/e95cd17be68e45f523cbfb0fe50cdd891b0cf20e", - "reference": "e95cd17be68e45f523cbfb0fe50cdd891b0cf20e", + "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/068d9fcf912c88a0471d101d95a2caa87c50aee7", + "reference": "068d9fcf912c88a0471d101d95a2caa87c50aee7", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", - "php": "^5.6 || ^7.0 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^8.5" + "phpunit/phpunit": "^6.5 || ^8.5" }, "type": "library", "autoload": { @@ -6147,9 +6154,9 @@ "description": "An SVG sanitizer for PHP", "support": { "issues": "https://github.com/darylldoyle/svg-sanitizer/issues", - "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.19.0" + "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.20.0" }, - "time": "2024-06-18T10:27:15+00:00" + "time": "2024-09-05T10:18:12+00:00" }, { "name": "fileeye/mimemap", @@ -6387,16 +6394,16 @@ }, { "name": "google/auth", - "version": "v1.41.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038" + "reference": "0c25599a91530b5847f129b271c536f75a7563f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", - "reference": "1043ea18fe7f5dfbf5b208ce3ee6d6b6ab8cb038", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/0c25599a91530b5847f129b271c536f75a7563f5", + "reference": "0c25599a91530b5847f129b271c536f75a7563f5", "shasum": "" }, "require": { @@ -6441,22 +6448,22 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.41.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.42.0" }, - "time": "2024-07-10T15:21:07+00:00" + "time": "2024-08-26T18:33:48+00:00" }, { "name": "google/common-protos", - "version": "v4.7.0", + "version": "4.8.3", "source": { "type": "git", "url": "https://github.com/googleapis/common-protos-php.git", - "reference": "e58068776f57605c336e32c7db373f0a81da17b8" + "reference": "38a9a8bb459fa618da797d25d7bf36bb21d1103d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/e58068776f57605c336e32c7db373f0a81da17b8", - "reference": "e58068776f57605c336e32c7db373f0a81da17b8", + "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/38a9a8bb459fa618da797d25d7bf36bb21d1103d", + "reference": "38a9a8bb459fa618da797d25d7bf36bb21d1103d", "shasum": "" }, "require": { @@ -6467,6 +6474,14 @@ "phpunit/phpunit": "^9.6" }, "type": "library", + "extra": { + "component": { + "id": "common-protos", + "target": "googleapis/common-protos-php.git", + "path": "CommonProtos", + "entry": "README.md" + } + }, "autoload": { "psr-4": { "Google\\Api\\": "src/Api", @@ -6492,23 +6507,22 @@ "google" ], "support": { - "issues": "https://github.com/googleapis/common-protos-php/issues", - "source": "https://github.com/googleapis/common-protos-php/tree/v4.7.0" + "source": "https://github.com/googleapis/common-protos-php/tree/v4.8.3" }, - "time": "2024-07-25T20:20:43+00:00" + "time": "2024-09-07T01:37:15+00:00" }, { "name": "google/gax", - "version": "v1.34.0", + "version": "v1.34.1", "source": { "type": "git", "url": "https://github.com/googleapis/gax-php.git", - "reference": "28aa3e95969a75b278606a88448992a6396a119e" + "reference": "173f0a97323284f91fd453c4ed7ed8317ecf6cfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/gax-php/zipball/28aa3e95969a75b278606a88448992a6396a119e", - "reference": "28aa3e95969a75b278606a88448992a6396a119e", + "url": "https://api.github.com/repos/googleapis/gax-php/zipball/173f0a97323284f91fd453c4ed7ed8317ecf6cfa", + "reference": "173f0a97323284f91fd453c4ed7ed8317ecf6cfa", "shasum": "" }, "require": { @@ -6550,9 +6564,9 @@ ], "support": { "issues": "https://github.com/googleapis/gax-php/issues", - "source": "https://github.com/googleapis/gax-php/tree/v1.34.0" + "source": "https://github.com/googleapis/gax-php/tree/v1.34.1" }, - "time": "2024-05-30T00:35:13+00:00" + "time": "2024-08-15T18:00:58+00:00" }, { "name": "google/grpc-gcp", @@ -6645,16 +6659,16 @@ }, { "name": "google/protobuf", - "version": "v4.28.0", + "version": "v4.28.1", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "17e3d804bf6631c2744c99575698f9cd4878b84f" + "reference": "80c95a932b0323d40a1cbcfdac721a0dffb23e12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/17e3d804bf6631c2744c99575698f9cd4878b84f", - "reference": "17e3d804bf6631c2744c99575698f9cd4878b84f", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/80c95a932b0323d40a1cbcfdac721a0dffb23e12", + "reference": "80c95a932b0323d40a1cbcfdac721a0dffb23e12", "shasum": "" }, "require": { @@ -6683,9 +6697,9 @@ "proto" ], "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.28.0" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.28.1" }, - "time": "2024-08-28T17:54:02+00:00" + "time": "2024-09-11T15:26:51+00:00" }, { "name": "grasmash/expander", @@ -7415,16 +7429,16 @@ }, { "name": "league/commonmark", - "version": "2.5.1", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c" + "reference": "b650144166dfa7703e62a22e493b853b58d874b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/ac815920de0eff6de947eac0a6a94e5ed0fb147c", - "reference": "ac815920de0eff6de947eac0a6a94e5ed0fb147c", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0", + "reference": "b650144166dfa7703e62a22e493b853b58d874b0", "shasum": "" }, "require": { @@ -7437,8 +7451,8 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.31.0", - "commonmark/commonmark.js": "0.31.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", "erusev/parsedown": "^1.0", @@ -7517,7 +7531,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T12:52:09+00:00" + "time": "2024-08-16T11:46:16+00:00" }, { "name": "league/config", @@ -10542,16 +10556,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": { @@ -10583,22 +10597,22 @@ "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": "phpstan/phpstan", - "version": "1.12.1", + "version": "1.12.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2" + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2", - "reference": "d8ed7fffa66de1db0d2972267d8ed1d8fa0fe5a2", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", + "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", "shasum": "" }, "require": { @@ -10643,25 +10657,25 @@ "type": "github" } ], - "time": "2024-09-03T19:55:22+00:00" + "time": "2024-09-09T08:10:35+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-deprecation-rules.git", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26" + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/fa8cce7720fa782899a0aa97b6a41225d1bb7b26", - "reference": "fa8cce7720fa782899a0aa97b6a41225d1bb7b26", + "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/f94d246cc143ec5a23da868f8f7e1393b50eaa82", + "reference": "f94d246cc143ec5a23da868f8f7e1393b50eaa82", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.11" + "phpstan/phpstan": "^1.12" }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2", @@ -10688,9 +10702,9 @@ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.", "support": { "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues", - "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.0" + "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.2.1" }, - "time": "2024-04-20T06:39:48+00:00" + "time": "2024-09-11T15:52:35+00:00" }, { "name": "phpstan/phpstan-phpunit", @@ -11528,16 +11542,16 @@ }, { "name": "psr/log", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "79dff0b268932c640297f5208d6298f71855c03e" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", - "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -11572,9 +11586,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2024-08-21T13:31:24+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psy/psysh", @@ -15270,36 +15284,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" @@ -15323,7 +15329,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": [ { @@ -15339,24 +15345,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+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": { @@ -15399,7 +15405,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": [ { @@ -15415,24 +15421,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+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": { @@ -15479,7 +15485,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": [ { @@ -15495,24 +15501,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": { @@ -15555,7 +15561,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": [ { @@ -15571,24 +15577,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+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": { @@ -15631,7 +15637,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": [ { @@ -15647,7 +15653,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", @@ -15728,20 +15734,20 @@ }, { "name": "symfony/polyfill-uuid", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9" + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-uuid": "*" @@ -15787,7 +15793,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" }, "funding": [ { @@ -15803,7 +15809,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", @@ -16834,24 +16840,24 @@ }, { "name": "twig/twig", - "version": "v3.10.3", + "version": "v3.14.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572" + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", @@ -16897,7 +16903,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.10.3" + "source": "https://github.com/twigphp/Twig/tree/v3.14.0" }, "funding": [ { @@ -16909,7 +16915,7 @@ "type": "tidelift" } ], - "time": "2024-05-16T10:04:27+00:00" + "time": "2024-09-09T17:55:12+00:00" }, { "name": "un-ocha/oauth2-hid", @@ -17028,16 +17034,16 @@ }, { "name": "unocha/ocha_ai", - "version": "v1.5.1", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/UN-OCHA/ocha_ai.git", - "reference": "02bf7a6bee3771ad07bc8d83fc2a4ca5be51feac" + "reference": "a4f322fb1fb81fec024114102b127b74ad7b84bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/UN-OCHA/ocha_ai/zipball/02bf7a6bee3771ad07bc8d83fc2a4ca5be51feac", - "reference": "02bf7a6bee3771ad07bc8d83fc2a4ca5be51feac", + "url": "https://api.github.com/repos/UN-OCHA/ocha_ai/zipball/a4f322fb1fb81fec024114102b127b74ad7b84bb", + "reference": "a4f322fb1fb81fec024114102b127b74ad7b84bb", "shasum": "" }, "require": { @@ -17069,9 +17075,9 @@ "description": "OCHA AI module", "support": { "issues": "https://github.com/UN-OCHA/ocha_ai/issues", - "source": "https://github.com/UN-OCHA/ocha_ai/tree/v1.5.1" + "source": "https://github.com/UN-OCHA/ocha_ai/tree/v1.6.0" }, - "time": "2024-08-27T07:57:48+00:00" + "time": "2024-09-13T01:49:31+00:00" }, { "name": "unocha/ocha_monitoring", @@ -17949,11 +17955,17 @@ }, { "name": "weitzman/drupal-test-traits", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", - "url": "https://git.drupalcode.org/project/dtt/", - "reference": "9385da6be0db48ecdb27e6646ae2bb0864c1dcee" + "url": "https://git.drupalcode.org/project/dtt.git", + "reference": "5e3df23c93f4f3e4f34fd7677df10bc06616f4ce" + }, + "dist": { + "type": "zip", + "url": "https://git.drupalcode.org/api/v4/projects/project%2Fdtt/repository/archive.zip?sha=5e3df23c93f4f3e4f34fd7677df10bc06616f4ce", + "reference": "5e3df23c93f4f3e4f34fd7677df10bc06616f4ce", + "shasum": "" }, "require": { "php": ">=8.1" @@ -17996,7 +18008,10 @@ } ], "description": "Traits for testing Drupal sites that have user content (versus unpopulated sites).", - "time": "2024-05-08T13:42:59+00:00" + "support": { + "source": "https://git.drupalcode.org/project/dtt/-/tree/2.3.1" + }, + "time": "2024-08-10T19:01:22+00:00" } ], "aliases": [], From 735e81d80c55c06ec626832695b0f9afcfb0c686 Mon Sep 17 00:00:00 2001 From: orakili Date: Fri, 13 Sep 2024 03:57:28 +0000 Subject: [PATCH 09/13] chore: update ocha_ai to 1.6.1 --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 4658e3d6c..c31076985 100644 --- a/composer.lock +++ b/composer.lock @@ -17034,16 +17034,16 @@ }, { "name": "unocha/ocha_ai", - "version": "v1.6.0", + "version": "v1.6.1", "source": { "type": "git", "url": "https://github.com/UN-OCHA/ocha_ai.git", - "reference": "a4f322fb1fb81fec024114102b127b74ad7b84bb" + "reference": "839856d3a14891f75b04acba328dc4dc9a0ec725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/UN-OCHA/ocha_ai/zipball/a4f322fb1fb81fec024114102b127b74ad7b84bb", - "reference": "a4f322fb1fb81fec024114102b127b74ad7b84bb", + "url": "https://api.github.com/repos/UN-OCHA/ocha_ai/zipball/839856d3a14891f75b04acba328dc4dc9a0ec725", + "reference": "839856d3a14891f75b04acba328dc4dc9a0ec725", "shasum": "" }, "require": { @@ -17075,9 +17075,9 @@ "description": "OCHA AI module", "support": { "issues": "https://github.com/UN-OCHA/ocha_ai/issues", - "source": "https://github.com/UN-OCHA/ocha_ai/tree/v1.6.0" + "source": "https://github.com/UN-OCHA/ocha_ai/tree/v1.6.1" }, - "time": "2024-09-13T01:49:31+00:00" + "time": "2024-09-13T03:48:18+00:00" }, { "name": "unocha/ocha_monitoring", From b4467efed877c9649c8eaab9f02113bf0af24f55 Mon Sep 17 00:00:00 2001 From: orakili Date: Fri, 13 Sep 2024 06:23:58 +0000 Subject: [PATCH 10/13] chore: update ocha_ai settings for 1.6.1 --- config/ocha_ai.settings.yml | 37 ++++++++++++++++++++++---------- config/ocha_ai_chat.settings.yml | 8 +++++-- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/config/ocha_ai.settings.yml b/config/ocha_ai.settings.yml index dd5d6d91a..7cc312fe2 100644 --- a/config/ocha_ai.settings.yml +++ b/config/ocha_ai.settings.yml @@ -1,4 +1,9 @@ plugins: + answer_validator: + similarity_ranker: + min_similarity: 0.8 + similarity_embedding: + min_similarity: 0.2 completion: aws_bedrock: model: amazon.titan-text-express-v1 @@ -45,11 +50,11 @@ plugins: endpoint: '' version: '' region: us-east-1 - api_key: null + api_key: '' batch_size: '1' dimensions: 1024 max_tokens: 8192 - api_secret: null + api_secret: '' role_arn: '' azure_openai: model: text-embedding-ada-002 @@ -60,6 +65,10 @@ plugins: batch_size: 16 dimensions: 1536 max_tokens: 4096 + ranker: + ocha_ai_helper_ranker: + limit: 5 + endpoint: 'http://ocha-ai-helper/test/correlate/texts' source: reliefweb: api_url: 'https://api.reliefweb.int/v1' @@ -72,23 +81,29 @@ plugins: mupdf: mutool: /usr/bin/mutool text_splitter: - token: - length: 384 - overlap: 96 + nlp_sentence: + length: null + overlap: null + endpoint: 'http://ocha-ai-helper/test/split/sentences' sentence: length: 4 overlap: 2 + token: + length: 384 + overlap: 96 vector_store: - elasticsearch: + elasticsearch_flattened: url: REPLACE_WITH_URL - base_index_name: ocha_ai + base_index_name: ocha_ai_flattened indexing_batch_size: 10 - topk: 5 - min_similarity: 0.3 + topk: 10 + min_similarity: 0.1 cutoff_coefficient: 0.5 - elasticsearch_flattened: + expand_passage_before: 0 + expand_passage_after: 0 + elasticsearch: url: REPLACE_WITH_URL - base_index_name: ocha_ai_flattened + base_index_name: ocha_ai indexing_batch_size: 10 topk: 5 min_similarity: 0.3 diff --git a/config/ocha_ai_chat.settings.yml b/config/ocha_ai_chat.settings.yml index ea9937b60..02a05712a 100644 --- a/config/ocha_ai_chat.settings.yml +++ b/config/ocha_ai_chat.settings.yml @@ -7,19 +7,23 @@ defaults: format: markdown_editor feedback: both formatting: basic - answer_min_similarity: 1.25 answers: no_document: 'Sorry, no source documents were found.' no_passage: 'Sorry, I could not find information to answer the question.' no_answer: 'Sorry, I was unable to answer your question. Please try again in a short moment.' invalid_answer: "Sorry, I'm unable to answer your question. Please clarify." - document_embedding_error: 'Sorry, there was an error trying to retrieve the documents to the answer to your question.' + document_embedding_error: 'Sorry, there was an error trying to retrieve the documents to answer your question.' question_embedding_error: 'Sorry, there was an error trying to process the question.' plugins: + answer_validator: + plugin_id: similarity_embedding completion: plugin_id: aws_bedrock_titan_text_premier_v1 embedding: plugin_id: aws_bedrock_titan_embed_text_v2 + ranker: + plugin_id: NULL + limit: 5 source: plugin_id: reliefweb reliefweb: From 2d254b1423d97d0d32b5b6cf6f9d32a4280c33ac Mon Sep 17 00:00:00 2001 From: orakili Date: Tue, 17 Sep 2024 07:27:57 +0000 Subject: [PATCH 11/13] chore: remove now redundant taxonomy_term_revision Refs: RW-1076 --- config/core.extension.yml | 1 - config/user.role.editor.yml | 6 ++---- config/user.role.webmaster.yml | 8 +++---- .../reliefweb_entities.module | 21 ------------------- .../reliefweb_fields.info.yml | 1 - .../reliefweb_revisions.info.yml | 1 - 6 files changed, 5 insertions(+), 33 deletions(-) diff --git a/config/core.extension.yml b/config/core.extension.yml index e34122ade..7223522be 100644 --- a/config/core.extension.yml +++ b/config/core.extension.yml @@ -106,7 +106,6 @@ module: system: 0 taxonomy: 0 taxonomy_term_preview: 0 - taxonomy_term_revision: 0 text: 0 theme_switcher: 0 token: 0 diff --git a/config/user.role.editor.yml b/config/user.role.editor.yml index 58ddfc54a..d2d35bba3 100644 --- a/config/user.role.editor.yml +++ b/config/user.role.editor.yml @@ -44,7 +44,6 @@ dependencies: - reliefweb_users - system - taxonomy - - taxonomy_term_revision id: editor label: Editor weight: 2 @@ -147,12 +146,12 @@ permissions: - 'edit terms in source' - 'edit terms in tag' - 'edit user posting rights' + - 'revert all taxonomy revisions' - 'revert announcement revisions' - 'revert blog_post revisions' - 'revert book revisions' - 'revert job revisions' - 'revert report revisions' - - 'revert term revision' - 'revert topic revisions' - 'revert training revisions' - 'see other bookmarks' @@ -163,6 +162,7 @@ permissions: - 'use text format html' - 'use text format markdown' - 'view all media revisions' + - 'view all taxonomy revisions' - 'view announcement revisions' - 'view any content' - 'view blog_post revisions' @@ -176,8 +176,6 @@ permissions: - 'view published guideline entities' - 'view reliefweb admin menu' - 'view report revisions' - - 'view term revision data' - - 'view term revision list' - 'view the administration theme' - 'view topic revisions' - 'view training revisions' diff --git a/config/user.role.webmaster.yml b/config/user.role.webmaster.yml index d9aceae06..45d49dd02 100644 --- a/config/user.role.webmaster.yml +++ b/config/user.role.webmaster.yml @@ -33,7 +33,6 @@ dependencies: - reliefweb_users - system - taxonomy - - taxonomy_term_revision id: webmaster label: Webmaster weight: 4 @@ -65,8 +64,8 @@ permissions: - 'create terms in training_type' - 'create terms in vulnerable_group' - 'delete all guideline revisions' + - 'delete all taxonomy revisions' - 'delete guideline entities' - - 'delete term revision' - 'delete terms in career_category' - 'delete terms in content_format' - 'delete terms in country' @@ -120,17 +119,16 @@ permissions: - 'guideline_list view revisions' - 'manage ocha ai chat config' - 'revert all guideline revisions' - - 'revert term revision' + - 'revert all taxonomy revisions' - 'see other bookmarks' - 'sort all guideline' - 'sort editorial guidelines' - 'use text format guideline' - 'view all guideline revisions' + - 'view all taxonomy revisions' - 'view ocha ai admin config menu' - 'view ocha ai chat logs' - 'view published guideline entities' - 'view reliefweb admin menu' - - 'view term revision data' - - 'view term revision list' - 'view the administration theme' - 'view unpublished guideline entities' diff --git a/html/modules/custom/reliefweb_entities/reliefweb_entities.module b/html/modules/custom/reliefweb_entities/reliefweb_entities.module index 5e2f99a9c..829121f1d 100644 --- a/html/modules/custom/reliefweb_entities/reliefweb_entities.module +++ b/html/modules/custom/reliefweb_entities/reliefweb_entities.module @@ -499,22 +499,6 @@ function reliefweb_entities_form_alter(array &$form, FormStateInterface $form_st } } -/** - * Implements hook_module_implements_alter(). - */ -function reliefweb_entities_module_implements_alter(array &$implementation, $hook) { - // Remove the hook_entity_presave() implementation from the - // taxonomy_term_revision module because it doesn't allow us to speify the - // revision user or timestamp. This is replaced by - // reliefweb_entities_set_taxonomy_term_revision(). - // - // @see taxonomy_term_revision_entity_presave() - // @see reliefweb_entities_set_taxonomy_term_revision() - if ($hook === 'entity_presave') { - unset($implementation['taxonomy_term_revision']); - } -} - /** * Implements hook_theme_registry_alter(). */ @@ -580,13 +564,8 @@ function reliefweb_entities_entity_presave(EntityInterface $entity) { /** * Set a taxonomy term's revision information. * - * Note: this replaces the taxonomy_term_revision_entity_presave() which - * is not flexible and forces the revision user ID and creation time. - * * @param \Drupal\Core\Entity\EntityInterface $entity * Entity. - * - * @see taxonomy_term_revision_entity_presave() */ function reliefweb_entities_set_taxonomy_term_revision(EntityInterface $entity) { // Saving new revision of term on each save. diff --git a/html/modules/custom/reliefweb_fields/reliefweb_fields.info.yml b/html/modules/custom/reliefweb_fields/reliefweb_fields.info.yml index 779da529a..a318b46fa 100644 --- a/html/modules/custom/reliefweb_fields/reliefweb_fields.info.yml +++ b/html/modules/custom/reliefweb_fields/reliefweb_fields.info.yml @@ -6,5 +6,4 @@ core_version_requirement: ^9 || ^10 dependencies: - drupal:reliefweb_form - drupal:taxonomy - - drupal:taxonomy_term_revision - drupal:taxonomy_term_preview diff --git a/html/modules/custom/reliefweb_revisions/reliefweb_revisions.info.yml b/html/modules/custom/reliefweb_revisions/reliefweb_revisions.info.yml index 0b2e0516d..88497232a 100644 --- a/html/modules/custom/reliefweb_revisions/reliefweb_revisions.info.yml +++ b/html/modules/custom/reliefweb_revisions/reliefweb_revisions.info.yml @@ -5,4 +5,3 @@ package: reliefweb core_version_requirement: ^9 || ^10 dependencies: - drupal:reliefweb_utility - - taxonomy_term_revision:taxonomy_term_revision From 2359fb8e26966c5d3e1431d325b1ddc54754ce0e Mon Sep 17 00:00:00 2001 From: orakili Date: Tue, 17 Sep 2024 07:39:31 +0000 Subject: [PATCH 12/13] chore: reduce time limit for first interaction on chat form Refs: RW-1040 --- config/honeypot.settings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/honeypot.settings.yml b/config/honeypot.settings.yml index 7ff59afc4..2b0abef8a 100644 --- a/config/honeypot.settings.yml +++ b/config/honeypot.settings.yml @@ -9,7 +9,7 @@ unprotected_forms: - honeypot_settings_form log: true element_name: url -time_limit: 5 +time_limit: 2 expire: 300 form_settings: user_register_form: false From d9cc449ad472707b0a5ef4ba0e4db93f09c43388 Mon Sep 17 00:00:00 2001 From: orakili Date: Tue, 17 Sep 2024 22:18:46 +0000 Subject: [PATCH 13/13] feat: also log number of jobs changed by editors for job tagging stats Refs: RW-1078 --- .../custom/reliefweb_reporting/reliefweb_reporting.module | 1 + 1 file changed, 1 insertion(+) diff --git a/html/modules/custom/reliefweb_reporting/reliefweb_reporting.module b/html/modules/custom/reliefweb_reporting/reliefweb_reporting.module index b2fe92dee..efdb4a214 100644 --- a/html/modules/custom/reliefweb_reporting/reliefweb_reporting.module +++ b/html/modules/custom/reliefweb_reporting/reliefweb_reporting.module @@ -106,6 +106,7 @@ function reliefweb_reporting_get_weekly_ai_tagging_stats() { 'jobs_tagged_by_ai' => count($jobs), 'career_categories_changed_by_editors' => count($changed_career_categories), 'themes_changed_by_editors' => count($changed_themes), + 'jobs_changed_by_editors' => count($changed_career_categories + $changed_themes), ]; return $data;