diff --git a/blt/blt.yml b/blt/blt.yml index 6f6b9003f..9a8a2096e 100644 --- a/blt/blt.yml +++ b/blt/blt.yml @@ -164,11 +164,11 @@ multisites: - siw - sociology - southasia - - sparkbox_sandbox - stanfordsciencefellows - starlab - statistics - sts + - suac - swshumsci_sandbox - symsys - tessier_lavigne_lab diff --git a/blt/src/Blt/Plugin/Commands/HsAcquiaApiCommands.php b/blt/src/Blt/Plugin/Commands/HsAcquiaApiCommands.php index 583191018..9627f5288 100644 --- a/blt/src/Blt/Plugin/Commands/HsAcquiaApiCommands.php +++ b/blt/src/Blt/Plugin/Commands/HsAcquiaApiCommands.php @@ -29,6 +29,20 @@ class HsAcquiaApiCommands extends BltTasks { */ protected $failedDatabases = []; + /** + * Keyed array of environment UUIDs. + * + * @var array + */ + protected $enivronments = []; + + /** + * Keyed array with access token data and expiration. + * + * @var array + */ + protected $accessToken = []; + /** * Get the environment UUID for the application from the machine name. * @@ -41,9 +55,13 @@ class HsAcquiaApiCommands extends BltTasks { * @throws \Exception */ protected function getEnvironmentUuid(string $name) { + if (isset($this->enivronments[$name])) { + return $this->enivronments[$name]; + } /** @var \AcquiaCloudApi\Response\EnvironmentResponse $env */ foreach ($this->acquiaEnvironments->getAll($this->appId) as $env) { if ($env->name == $name) { + $this->enivronments[$name] = $env->uuid; return $env->uuid; } } @@ -147,44 +165,46 @@ public function syncStaging(array $options = [ 'env' => 'test', 'no-notify' => FALSE, ]) { - $task_started = time() - (60 * 60 * 24); $this->connectAcquiaApi(); + $from_uuid = $this->getEnvironmentUuid('prod'); + $to_uuid = $this->getEnvironmentUuid($options['env']); - $sites = $this->getSitesToSync($task_started, $options); + $this->taskStartedTime = time() - (60 * 60 * 24); + + $sites = $this->getSitesToSync($options); if (empty($options['no-interaction']) && !$this->confirm(sprintf('Are you sure you wish to stage the following sites: %s', implode(', ', $sites)))) { return; } $count = count($sites); - $copy_sites = array_splice($sites, 0, 4); - - foreach ($copy_sites as $site) { - $this->say("Copying $site database to staging."); - $this->acquiaDatabases->copy($this->getEnvironmentUuid('prod'), $site, $this->getEnvironmentUuid($options['env'])); - } - + $concurrent_copies = 5; + $in_progress = []; while (!empty($sites)) { - echo '.'; - sleep(10); - $finished_databases = $this->getCompletedDatabaseCopies($task_started); - - if ($finished = array_intersect($copy_sites, $finished_databases)) { - echo PHP_EOL; - foreach ($finished as $copied_db) { - $db_position = array_search($copied_db, $copy_sites); - $new_site = array_splice($sites, 0, 1); - $new_site = reset($new_site); - $copy_sites[$db_position] = $new_site; - $this->say("Copying $new_site database to staging."); - $this->connectAcquiaApi(); - $this->say($this->acquiaDatabases->copy($this->getEnvironmentUuid('prod'), $new_site, $this->getEnvironmentUuid($options['env']))->message); + if (count($in_progress) >= $concurrent_copies) { + // Check for completion. + foreach ($in_progress as $key => $database_name) { + if ($this->databaseCopyFinished($database_name)) { + unset($in_progress[$key]); + } } } - } - $this->yell("$count database have been copied to staging."); - if (array_unique($this->failedDatabases)) { - $this->yell('Databases failed: ' . implode(', ', array_unique($this->failedDatabases)), 40, 'red'); + $copy_these = array_splice($sites, 0, $concurrent_copies - count($in_progress)); + foreach ($copy_these as $database_name) { + $in_progress[] = $database_name; + $this->say(sprintf('Copying database %s', $database_name)); + $access_token = $this->getAccessToken(); + $client = new Client(); + $response = $client->post("https://cloud.acquia.com/api/environments/$to_uuid/databases", [ + 'headers' => ['Authorization' => "Bearer $access_token"], + 'json' => ['name' => $database_name, 'source' => $from_uuid], + ]); + $message = json_decode((string) $response->getBody(), TRUE, 512, JSON_THROW_ON_ERROR); + $this->say($message['message']); + } + echo '.'; + sleep(30); } + $this->yell("$count database have been copied to staging."); $root = $this->getConfigValue('repo.root'); if (file_exists("$root/keys/secrets.settings.php")) { @@ -196,7 +216,7 @@ public function syncStaging(array $options = [ 'form_params' => [ 'payload' => json_encode([ 'username' => 'Acquia Cloud', - 'text' => sprintf('All Databases have been copied to %s environment.', $options['env']), + 'text' => sprintf('%s Databases have been copied to %s environment.', $count, $options['env']), 'icon_emoji' => 'information_source', ]), ], @@ -205,33 +225,53 @@ public function syncStaging(array $options = [ } /** - * Get a list of all databases that have finished copying after a time. + * Call the API and usig the notifications, find out if it's done copying. * - * @param int $time_comparison - * Time to compare the completed task. + * @param string $database_name + * Acquia database name. * - * @return array - * Array of database names. + * @return bool + * If the database has been copied in the past 12 hours. */ - protected function getCompletedDatabaseCopies($time_comparison) { - $databases = []; - $this->connectAcquiaApi(); - /** @var \AcquiaCloudApi\Response\NotificationResponse $notification */ - foreach ($this->acquiaNotifications->getAll($this->appId) as $notification) { - if ( - isset($notification->event) && - $notification->event == 'DatabaseCopied' && - strtotime($notification->created_at) >= $time_comparison - ) { - if ($notification->status == 'completed') { - $databases = array_merge($databases, $notification->context->database->names); - } - elseif ($notification->status != 'in-progress') { - $this->failedDatabases = array_merge($this->failedDatabases, $notification->context->database->names); - } - } + protected function databaseCopyFinished(string $database_name): bool { + $access_token = $this->getAccessToken(); + $client = new Client(); + $created_since = date('c', time() - (60 * 60 * 12)); + $response = $client->get("https://cloud.acquia.com/api/applications/{$this->appId}/notifications", [ + 'headers' => ['Authorization' => "Bearer $access_token"], + 'query' => [ + 'filter' => "event=DatabaseCopied;description=@*$database_name*;status!=in-progress;created_at>=$created_since", + ], + ]); + $message = json_decode((string) $response->getBody(), TRUE, 512, JSON_THROW_ON_ERROR); + return $message['total'] > 0; + } + + /** + * Call the API and fetch the OAuth token. + * + * @return string + * Access bearer token. + */ + protected function getAccessToken(): string { + if (isset($this->accessToken['expires']) && time() <= $this->accessToken['expires']) { + return $this->accessToken['token']; } - return array_values(array_unique($databases)); + + $client = new Client(); + $response = $client->post('https://accounts.acquia.com/api/auth/oauth/token', [ + 'form_params' => [ + 'client_id' => getenv('ACQUIA_KEY'), + 'client_secret' => getenv('ACQUIA_SECRET'), + 'grant_type' => 'client_credentials', + ], + ]); + $response_body = json_decode((string) $response->getBody(), TRUE, 512, JSON_THROW_ON_ERROR); + $this->accessToken = [ + 'token' => $response_body['access_token'], + 'expires' => time() + $response_body['expires_in'] - 60, + ]; + return $this->accessToken['token']; } /** @@ -285,38 +325,34 @@ protected function connectAcquiaApi() { /** * Get an overall list of database names to sync. * - * @param int $task_started - * Time to compare the completed task. * @param array $options * Array of keyed command options. * * @return array * Array of database names to sync. */ - protected function getSitesToSync($task_started, array $options) { - $finished_databases = $this->getCompletedDatabaseCopies($task_started); - + protected function getSitesToSync(array $options) { $sites = $this->getConfigValue('multisites'); foreach ($sites as $key => &$db_name) { $db_name = $db_name == 'default' ? 'humscigryphon' : $db_name; if (strpos($db_name, 'sandbox') !== FALSE) { unset($sites[$key]); + continue; + } + + $this->say(sprintf('Checking if %s has recently been copied', $db_name)); + if ($this->databaseCopyFinished($db_name)) { + unset($sites[$key]); } } + asort($sites); $sites = array_values($sites); if (!empty($options['exclude'])) { $exclude = explode(',', $options['exclude']); $sites = array_diff($sites, $exclude); } - - if ($options['resume']) { - asort($finished_databases); - $last_database = end($finished_databases); - $last_db_position = array_search($last_database, $sites); - $sites = array_slice($sites, $last_db_position); - } - return array_diff($sites, $finished_databases); + return array_values($sites); } /** diff --git a/composer.lock b/composer.lock index fb9380f15..a832f26ac 100644 --- a/composer.lock +++ b/composer.lock @@ -643,23 +643,23 @@ }, { "name": "composer/semver", - "version": "3.2.6", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "83e511e247de329283478496f7a1e114c9517506" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", - "reference": "83e511e247de329283478496f7a1e114c9517506", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -704,7 +704,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.6" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -720,7 +720,7 @@ "type": "tidelift" } ], - "time": "2021-10-25T11:34:17+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "consolidation/annotated-command", @@ -1778,32 +1778,28 @@ }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -1838,7 +1834,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -1854,20 +1850,20 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "doctrine/reflection", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/reflection.git", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5" + "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", + "reference": "1034e5e71f89978b80f9c1570e7226f6c3b9b6fb", "shasum": "" }, "require": { @@ -1879,18 +1875,13 @@ "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^6.0 || ^8.2.0", - "doctrine/common": "^2.10", - "phpstan/phpstan": "^0.11.0 || ^0.12.20", - "phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "doctrine/coding-standard": "^9", + "doctrine/common": "^3.3", + "phpstan/phpstan": "^1.4.10", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" @@ -1934,10 +1925,10 @@ ], "support": { "issues": "https://github.com/doctrine/reflection/issues", - "source": "https://github.com/doctrine/reflection/tree/1.2.2" + "source": "https://github.com/doctrine/reflection/tree/1.2.3" }, "abandoned": "roave/better-reflection", - "time": "2020-10-27T21:46:55+00:00" + "time": "2022-05-31T18:46:25+00:00" }, { "name": "drupal/acquia_connector", @@ -4297,24 +4288,24 @@ }, { "name": "drupal/core", - "version": "9.3.15", + "version": "9.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "c29310a4d08d5072d7f713da744c0831636b4779" + "reference": "144db3a317317c4c2fb7d97ee62962a0b3647004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/c29310a4d08d5072d7f713da744c0831636b4779", - "reference": "c29310a4d08d5072d7f713da744c0831636b4779", + "url": "https://api.github.com/repos/drupal/core/zipball/144db3a317317c4c2fb7d97ee62962a0b3647004", + "reference": "144db3a317317c4c2fb7d97ee62962a0b3647004", "shasum": "" }, "require": { - "asm89/stack-cors": "^1.1", - "composer/semver": "^3.0", - "doctrine/annotations": "^1.12", - "doctrine/reflection": "^1.1", - "egulias/email-validator": "^2.1.22|^3.0", + "asm89/stack-cors": "^1.3", + "composer/semver": "^3.3", + "doctrine/annotations": "^1.13", + "doctrine/reflection": "^1.2", + "egulias/email-validator": "^2.1.22|^3.2", "ext-date": "*", "ext-dom": "*", "ext-filter": "*", @@ -4328,35 +4319,36 @@ "ext-spl": "*", "ext-tokenizer": "*", "ext-xml": "*", - "guzzlehttp/guzzle": "^6.5.6", - "laminas/laminas-diactoros": "^2.1", - "laminas/laminas-feed": "^2.12", - "masterminds/html5": "^2.1", + "guzzlehttp/guzzle": "^6.5.7 || ^7.4.4", + "laminas/laminas-diactoros": "^2.11", + "laminas/laminas-feed": "^2.17", + "masterminds/html5": "^2.7", "pear/archive_tar": "^1.4.14", "php": ">=7.3.0", - "psr/log": "^1.0", + "psr/log": "^1.1", "stack/builder": "^1.0", - "symfony-cmf/routing": "^2.1", + "symfony-cmf/routing": "^2.3", "symfony/console": "^4.4", "symfony/dependency-injection": "^4.4", "symfony/event-dispatcher": "^4.4", "symfony/http-foundation": "^4.4.7", "symfony/http-kernel": "^4.4", "symfony/mime": "^5.4", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-iconv": "^1.25", + "symfony/polyfill-php80": "^1.25", "symfony/process": "^4.4", - "symfony/psr-http-message-bridge": "^2.0", + "symfony/psr-http-message-bridge": "^2.1", "symfony/routing": "^4.4", "symfony/serializer": "^4.4", "symfony/translation": "^4.4", "symfony/validator": "^4.4", "symfony/yaml": "^4.4.19", - "twig/twig": "^2.12.0", + "twig/twig": "^2.15", "typo3/phar-stream-wrapper": "^3.1.3" }, "conflict": { - "drush/drush": "<8.1.10" + "drush/drush": "<8.1.10", + "symfony/http-foundation": "4.4.42" }, "replace": { "drupal/action": "self.version", @@ -4440,12 +4432,14 @@ "drupal/migrate_drupal_multilingual": "self.version", "drupal/migrate_drupal_ui": "self.version", "drupal/minimal": "self.version", + "drupal/mysql": "self.version", "drupal/node": "self.version", "drupal/olivero": "self.version", "drupal/options": "self.version", "drupal/page_cache": "self.version", "drupal/path": "self.version", "drupal/path_alias": "self.version", + "drupal/pgsql": "self.version", "drupal/quickedit": "self.version", "drupal/rdf": "self.version", "drupal/responsive_image": "self.version", @@ -4455,6 +4449,7 @@ "drupal/settings_tray": "self.version", "drupal/seven": "self.version", "drupal/shortcut": "self.version", + "drupal/sqlite": "self.version", "drupal/standard": "self.version", "drupal/stark": "self.version", "drupal/statistics": "self.version", @@ -4529,9 +4524,6 @@ "lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php", "lib/Drupal/Core/Database/Connection.php", "lib/Drupal/Core/Database/Database.php", - "lib/Drupal/Core/Database/Driver/mysql/Connection.php", - "lib/Drupal/Core/Database/Driver/pgsql/Connection.php", - "lib/Drupal/Core/Database/Driver/sqlite/Connection.php", "lib/Drupal/Core/Database/Statement.php", "lib/Drupal/Core/Database/StatementInterface.php", "lib/Drupal/Core/DependencyInjection/Container.php", @@ -4548,22 +4540,22 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/9.3.15" + "source": "https://github.com/drupal/core/tree/9.4.0" }, - "time": "2022-06-01T15:45:43+00:00" + "time": "2022-06-15T16:34:03+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "9.3.15", + "version": "9.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "a9dd9def8891e1c388719474720b57d3fe929a2f" + "reference": "3286dbf43922b4eb8b51ef55572aa8f2e78ba7aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/a9dd9def8891e1c388719474720b57d3fe929a2f", - "reference": "a9dd9def8891e1c388719474720b57d3fe929a2f", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/3286dbf43922b4eb8b51ef55572aa8f2e78ba7aa", + "reference": "3286dbf43922b4eb8b51ef55572aa8f2e78ba7aa", "shasum": "" }, "require": { @@ -4598,22 +4590,22 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/9.3.15" + "source": "https://github.com/drupal/core-composer-scaffold/tree/9.4.0" }, - "time": "2022-02-24T17:40:56+00:00" + "time": "2022-02-24T17:40:53+00:00" }, { "name": "drupal/core-project-message", - "version": "9.3.15", + "version": "9.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", - "reference": "69664743736977676e11f824301ea3e925a712fc" + "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-project-message/zipball/69664743736977676e11f824301ea3e925a712fc", - "reference": "69664743736977676e11f824301ea3e925a712fc", + "url": "https://api.github.com/repos/drupal/core-project-message/zipball/5dfa0b75a057caf6542be67f61e7531c737db48c", + "reference": "5dfa0b75a057caf6542be67f61e7531c737db48c", "shasum": "" }, "require": { @@ -4639,81 +4631,81 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/9.3.15" + "source": "https://github.com/drupal/core-project-message/tree/9.4.0" }, - "time": "2022-02-24T17:40:56+00:00" + "time": "2022-02-24T17:40:53+00:00" }, { "name": "drupal/core-recommended", - "version": "9.3.15", + "version": "9.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "36b1d9dbe4f946b3c19fb91831aa1994e1e38782" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/36b1d9dbe4f946b3c19fb91831aa1994e1e38782", - "reference": "36b1d9dbe4f946b3c19fb91831aa1994e1e38782", - "shasum": "" - }, - "require": { - "asm89/stack-cors": "1.3.0", - "composer/semver": "3.2.6", - "doctrine/annotations": "1.13.2", - "doctrine/lexer": "1.2.1", - "doctrine/reflection": "1.2.2", - "drupal/core": "9.3.15", - "egulias/email-validator": "3.1.2", - "guzzlehttp/guzzle": "6.5.6", - "guzzlehttp/promises": "1.5.1", - "guzzlehttp/psr7": "1.8.5", - "laminas/laminas-diactoros": "2.8.0", - "laminas/laminas-escaper": "2.9.0", - "laminas/laminas-feed": "2.15.0", - "laminas/laminas-stdlib": "3.6.1", - "masterminds/html5": "2.7.5", - "pear/archive_tar": "1.4.14", - "pear/console_getopt": "v1.4.3", - "pear/pear-core-minimal": "v1.10.11", - "pear/pear_exception": "v1.0.2", - "psr/cache": "1.0.1", - "psr/container": "1.1.1", - "psr/http-factory": "1.0.1", - "psr/http-message": "1.0.1", - "psr/log": "1.1.4", - "ralouphie/getallheaders": "3.0.3", - "stack/builder": "v1.0.6", - "symfony-cmf/routing": "2.3.4", - "symfony/console": "v4.4.34", - "symfony/debug": "v4.4.31", - "symfony/dependency-injection": "v4.4.34", - "symfony/deprecation-contracts": "v2.5.0", - "symfony/error-handler": "v4.4.34", - "symfony/event-dispatcher": "v4.4.34", - "symfony/event-dispatcher-contracts": "v1.1.11", - "symfony/http-client-contracts": "v2.5.0", - "symfony/http-foundation": "v4.4.34", - "symfony/http-kernel": "v4.4.35", - "symfony/mime": "v5.4.0", - "symfony/polyfill-ctype": "v1.23.0", - "symfony/polyfill-iconv": "v1.23.0", - "symfony/polyfill-intl-idn": "v1.23.0", - "symfony/polyfill-intl-normalizer": "v1.23.0", - "symfony/polyfill-mbstring": "v1.23.1", - "symfony/polyfill-php80": "v1.23.1", - "symfony/process": "v4.4.35", - "symfony/psr-http-message-bridge": "v2.1.2", - "symfony/routing": "v4.4.34", - "symfony/serializer": "v4.4.35", - "symfony/service-contracts": "v2.5.0", - "symfony/translation": "v4.4.34", - "symfony/translation-contracts": "v2.5.0", - "symfony/validator": "v4.4.35", - "symfony/var-dumper": "v5.4.0", - "symfony/yaml": "v4.4.34", - "twig/twig": "v2.14.11", - "typo3/phar-stream-wrapper": "v3.1.7" + "reference": "bacfdd46a0ebef9bbd88362aaede3f2eeb2da9fa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/bacfdd46a0ebef9bbd88362aaede3f2eeb2da9fa", + "reference": "bacfdd46a0ebef9bbd88362aaede3f2eeb2da9fa", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "~1.3.0", + "composer/semver": "~3.3.2", + "doctrine/annotations": "~1.13.2", + "doctrine/lexer": "~1.2.3", + "doctrine/reflection": "~1.2.3", + "drupal/core": "9.4.0", + "egulias/email-validator": "~3.2", + "guzzlehttp/guzzle": "~6.5.7", + "guzzlehttp/promises": "~1.5.1", + "guzzlehttp/psr7": "~1.8.5", + "laminas/laminas-diactoros": "~2.11.0", + "laminas/laminas-escaper": "~2.9.0", + "laminas/laminas-feed": "~2.17.0", + "laminas/laminas-stdlib": "~3.7.1", + "masterminds/html5": "~2.7.5", + "pear/archive_tar": "~1.4.14", + "pear/console_getopt": "~v1.4.3", + "pear/pear-core-minimal": "~v1.10.11", + "pear/pear_exception": "~v1.0.2", + "psr/cache": "~1.0.1", + "psr/container": "~1.1.1", + "psr/http-factory": "~1.0.1", + "psr/http-message": "~1.0.1", + "psr/log": "~1.1.4", + "ralouphie/getallheaders": "~3.0.3", + "stack/builder": "~v1.0.6", + "symfony-cmf/routing": "~2.3.4", + "symfony/console": "~v4.4.42", + "symfony/debug": "~v4.4.41", + "symfony/dependency-injection": "~v4.4.42", + "symfony/deprecation-contracts": "~v2.5.1", + "symfony/error-handler": "~v4.4.41", + "symfony/event-dispatcher": "~v4.4.42", + "symfony/event-dispatcher-contracts": "~v1.1.12", + "symfony/http-client-contracts": "~v2.5.1", + "symfony/http-foundation": "~v4.4.41", + "symfony/http-kernel": "~v4.4.42", + "symfony/mime": "~v5.4.9", + "symfony/polyfill-ctype": "~v1.25.0", + "symfony/polyfill-iconv": "~v1.25.0", + "symfony/polyfill-intl-idn": "~v1.25.0", + "symfony/polyfill-intl-normalizer": "~v1.25.0", + "symfony/polyfill-mbstring": "~v1.25.0", + "symfony/polyfill-php80": "~v1.25.0", + "symfony/process": "~v4.4.41", + "symfony/psr-http-message-bridge": "~v2.1.2", + "symfony/routing": "~v4.4.41", + "symfony/serializer": "~v4.4.42", + "symfony/service-contracts": "~v2.5.1", + "symfony/translation": "~v4.4.41", + "symfony/translation-contracts": "~v2.5.1", + "symfony/validator": "~v4.4.41", + "symfony/var-dumper": "~v5.4.9", + "symfony/yaml": "~v4.4.37", + "twig/twig": "~v2.15.1", + "typo3/phar-stream-wrapper": "~v3.1.7" }, "conflict": { "webflo/drupal-core-strict": "*" @@ -4723,11 +4715,11 @@ "license": [ "GPL-2.0-or-later" ], - "description": "Locked core dependencies; require this project INSTEAD OF drupal/core.", + "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/9.3.15" + "source": "https://github.com/drupal/core-recommended/tree/9.4.0" }, - "time": "2022-06-01T15:45:43+00:00" + "time": "2022-06-15T16:34:03+00:00" }, { "name": "drupal/crop", @@ -4788,17 +4780,17 @@ }, { "name": "drupal/csv_serialization", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/csv_serialization.git", - "reference": "8.x-2.0" + "reference": "8.x-2.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/csv_serialization-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "3531383a6926a4ed761be56553997c2a937449ac" + "url": "https://ftp.drupal.org/files/projects/csv_serialization-8.x-2.1.zip", + "reference": "8.x-2.1", + "shasum": "10b8629a5808ed1ecf358d5ca7054d6c14a476d4" }, "require": { "drupal/core": "^8 || ^9", @@ -4811,8 +4803,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0", - "datestamp": "1612801962", + "version": "8.x-2.1", + "datestamp": "1655054417", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7374,39 +7366,37 @@ }, { "name": "drupal/jquery_ui_touch_punch", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/jquery_ui_touch_punch.git", - "reference": "1.0.0" + "reference": "1.0.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui_touch_punch-1.0.0.zip", - "reference": "1.0.0", - "shasum": "8444a0ed897ba3d8e8876a9602ec8b3dca678cd1" + "url": "https://ftp.drupal.org/files/projects/jquery_ui_touch_punch-1.0.1.zip", + "reference": "1.0.1", + "shasum": "b43aad846b3c5a9501fb15f356144ff1e6bb2e24" }, "require": { "drupal/core": "^8 || ^9", - "drupal/jquery_ui": "^1.0" - }, - "suggest": { - "furf/jquery-ui-touch-punch": "Required to use drupal/jquery_ui_touch_punch module." + "drupal/jquery_ui": "^1.0", + "politsin/jquery-ui-touch-punch": "^1.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.0", - "datestamp": "1591893292", + "version": "1.0.1", + "datestamp": "1654879041", "security-coverage": { - "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -7423,8 +7413,7 @@ ], "support": { "source": "https://www.drupal.org/project/jquery_ui_touch_punch", - "issues": "https://www.drupal.org/project/issues/jquery_ui_touch_punch", - "irc": "irc://irc.freenode.org/drupal-contribute" + "issues": "https://www.drupal.org/project/issues/jquery_ui_touch_punch" } }, { @@ -8117,17 +8106,17 @@ }, { "name": "drupal/menu_item_extras", - "version": "2.16.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_item_extras.git", - "reference": "8.x-2.16" + "reference": "8.x-2.17" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_item_extras-8.x-2.16.zip", - "reference": "8.x-2.16", - "shasum": "4ec194392abd534b9e917a29612be5f80a7993a0" + "url": "https://ftp.drupal.org/files/projects/menu_item_extras-8.x-2.17.zip", + "reference": "8.x-2.17", + "shasum": "1bb89c6cad458ba9140684fd0e02bccb238023c8" }, "require": { "drupal/core": "^8 || ^9" @@ -8135,8 +8124,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.16", - "datestamp": "1629830739", + "version": "8.x-2.17", + "datestamp": "1655020997", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8664,26 +8653,26 @@ }, { "name": "drupal/mysql56", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/mysql56.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/mysql56-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "9666b1c8df22509e2443ed98f8edd7c14f8a5234" + "url": "https://ftp.drupal.org/files/projects/mysql56-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "52e24d93d0435440acea0bb77f1ac5b76a56875a" }, "require": { - "drupal/core": "~9.0.0-beta3 || 9.1.* || 9.2.* || 9.3.*" + "drupal/core": "^9" }, "type": "library", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1634249671", + "version": "8.x-1.4", + "datestamp": "1655263843", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8983,17 +8972,17 @@ }, { "name": "drupal/path_redirect_import", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/path_redirect_import.git", - "reference": "2.0.3" + "reference": "2.0.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/path_redirect_import-2.0.3.zip", - "reference": "2.0.3", - "shasum": "e029bc251368e35bc6c8b27b65cabaa6f41d5cf8" + "url": "https://ftp.drupal.org/files/projects/path_redirect_import-2.0.4.zip", + "reference": "2.0.4", + "shasum": "08baa45f8b6fe17767c7f5b9ba5f0e0509f54d1b" }, "require": { "drupal/core": ">=9.1", @@ -9008,8 +8997,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.3", - "datestamp": "1654672493", + "version": "2.0.4", + "datestamp": "1654773286", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -12159,16 +12148,16 @@ }, { "name": "egulias/email-validator", - "version": "3.1.2", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ee0db30118f661fb166bcffbf5d82032df484697" + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", - "reference": "ee0db30118f661fb166bcffbf5d82032df484697", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", "shasum": "" }, "require": { @@ -12215,7 +12204,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" + "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" }, "funding": [ { @@ -12223,7 +12212,7 @@ "type": "github" } ], - "time": "2021-10-11T09:18:27+00:00" + "time": "2022-06-18T20:57:19+00:00" }, { "name": "eluceo/ical", @@ -12875,16 +12864,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.6", + "version": "6.5.7", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f092dd734083473658de3ee4bef093ed77d2689c" + "reference": "724562fa861e21a4071c652c8a159934e4f05592" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f092dd734083473658de3ee4bef093ed77d2689c", - "reference": "f092dd734083473658de3ee4bef093ed77d2689c", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/724562fa861e21a4071c652c8a159934e4f05592", + "reference": "724562fa861e21a4071c652c8a159934e4f05592", "shasum": "" }, "require": { @@ -12970,7 +12959,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5.6" + "source": "https://github.com/guzzle/guzzle/tree/6.5.7" }, "funding": [ { @@ -12986,7 +12975,7 @@ "type": "tidelift" } ], - "time": "2022-05-25T13:19:12+00:00" + "time": "2022-06-09T21:36:50+00:00" }, { "name": "guzzlehttp/promises", @@ -13324,16 +13313,16 @@ }, { "name": "laminas/laminas-diactoros", - "version": "2.8.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199" + "reference": "d1bc565b23c2040fafde398a8a5db083c47928c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199", - "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/d1bc565b23c2040fafde398a8a5db083c47928c0", + "reference": "d1bc565b23c2040fafde398a8a5db083c47928c0", "shasum": "" }, "require": { @@ -13419,7 +13408,7 @@ "type": "community_bridge" } ], - "time": "2021-09-22T03:54:36+00:00" + "time": "2022-05-17T10:57:52+00:00" }, { "name": "laminas/laminas-escaper", @@ -13485,16 +13474,16 @@ }, { "name": "laminas/laminas-feed", - "version": "2.15.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-feed.git", - "reference": "3ef837a12833c74b438d2c3780023c4244e0abae" + "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/3ef837a12833c74b438d2c3780023c4244e0abae", - "reference": "3ef837a12833c74b438d2c3780023c4244e0abae", + "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", + "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", "shasum": "" }, "require": { @@ -13558,20 +13547,20 @@ "type": "community_bridge" } ], - "time": "2021-09-20T18:11:11+00:00" + "time": "2022-03-24T10:26:04+00:00" }, { "name": "laminas/laminas-stdlib", - "version": "3.6.1", + "version": "3.7.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "db581851a092246ad99e12d4fddf105184924c71" + "reference": "bcd869e2fe88d567800057c1434f2380354fe325" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/db581851a092246ad99e12d4fddf105184924c71", - "reference": "db581851a092246ad99e12d4fddf105184924c71", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/bcd869e2fe88d567800057c1434f2380354fe325", + "reference": "bcd869e2fe88d567800057c1434f2380354fe325", "shasum": "" }, "require": { @@ -13582,8 +13571,8 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.3.0", - "phpbench/phpbench": "^0.17.1", - "phpunit/phpunit": "~9.3.7", + "phpbench/phpbench": "^1.0", + "phpunit/phpunit": "^9.3.7", "psalm/plugin-phpunit": "^0.16.0", "vimeo/psalm": "^4.7" }, @@ -13617,7 +13606,7 @@ "type": "community_bridge" } ], - "time": "2021-11-10T11:33:52+00:00" + "time": "2022-01-21T15:50:46+00:00" }, { "name": "league/container", @@ -14521,16 +14510,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.6.0", + "version": "v6.6.3", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1" + "reference": "9400f305a898f194caff5521f64e5dfa926626f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e43bac82edc26ca04b36143a48bde1c051cfd5b1", - "reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9400f305a898f194caff5521f64e5dfa926626f3", + "reference": "9400f305a898f194caff5521f64e5dfa926626f3", "shasum": "" }, "require": { @@ -14542,8 +14531,8 @@ "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.2", - "php-parallel-lint/php-console-highlighter": "^0.5.0", - "php-parallel-lint/php-parallel-lint": "^1.3.1", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcompatibility/php-compatibility": "^9.3.5", "roave/security-advisories": "dev-latest", "squizlabs/php_codesniffer": "^3.6.2", @@ -14587,7 +14576,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.0" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.3" }, "funding": [ { @@ -14595,7 +14584,45 @@ "type": "github" } ], - "time": "2022-02-28T15:31:21+00:00" + "time": "2022-06-20T09:21:02+00:00" + }, + { + "name": "politsin/jquery-ui-touch-punch", + "version": "1.0", + "source": { + "type": "git", + "url": "https://github.com/politsin/jquery-ui-touch-punch.git", + "reference": "2fe375e05821e267f0f3c0e063197f5c406896dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/politsin/jquery-ui-touch-punch/zipball/2fe375e05821e267f0f3c0e063197f5c406896dd", + "reference": "2fe375e05821e267f0f3c0e063197f5c406896dd", + "shasum": "" + }, + "type": "drupal-library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dave Furfero", + "email": "furf@furf.com" + } + ], + "description": "Extension to jQuery UI for mobile touch event support.", + "homepage": "http://touchpunch.furf.com/", + "keywords": [ + "gestures", + "mobile", + "touch" + ], + "support": { + "issues": "https://github.com/politsin/jquery-ui-touch-punch/issues", + "source": "https://github.com/politsin/jquery-ui-touch-punch/tree/1.0" + }, + "time": "2020-12-15T10:26:18+00:00" }, { "name": "psr/cache", @@ -14648,20 +14675,20 @@ }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -14690,9 +14717,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/http-factory", @@ -15106,16 +15133,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.6.1", + "version": "v4.6.3", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "5e46819fdb76657f13e05a8f264d06efd9163c3d" + "reference": "bfc9c79dd6b728a41d1de988f545f6e64728a51d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/5e46819fdb76657f13e05a8f264d06efd9163c3d", - "reference": "5e46819fdb76657f13e05a8f264d06efd9163c3d", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/bfc9c79dd6b728a41d1de988f545f6e64728a51d", + "reference": "bfc9c79dd6b728a41d1de988f545f6e64728a51d", "shasum": "" }, "require": { @@ -15123,7 +15150,7 @@ "ext-openssl": "*", "ext-zlib": "*", "php": ">=7.1 || ^8.0", - "psr/log": "~1.1", + "psr/log": "~1.1 || ^2.0 || ^3.0", "robrichards/xmlseclibs": "^3.1.1", "webmozart/assert": "^1.9" }, @@ -15158,9 +15185,9 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.1" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.3" }, - "time": "2022-05-23T20:49:55+00:00" + "time": "2022-06-13T14:04:10+00:00" }, { "name": "simplesamlphp/simplesamlphp", @@ -17089,16 +17116,16 @@ }, { "name": "su-sws/stanford_media", - "version": "8.3.1", + "version": "8.3.2", "source": { "type": "git", "url": "https://github.com/SU-SWS/stanford_media.git", - "reference": "678803b82a8fc325cf8b03375e2eeef17022b541" + "reference": "a44b214285fc33bf5db261c65d31b6367f97c2ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SU-SWS/stanford_media/zipball/678803b82a8fc325cf8b03375e2eeef17022b541", - "reference": "678803b82a8fc325cf8b03375e2eeef17022b541", + "url": "https://api.github.com/repos/SU-SWS/stanford_media/zipball/a44b214285fc33bf5db261c65d31b6367f97c2ec", + "reference": "a44b214285fc33bf5db261c65d31b6367f97c2ec", "shasum": "" }, "require": { @@ -17151,9 +17178,9 @@ "homepage": "https://github.com/SU-SWS/stanford_media", "support": { "issues": "https://github.com/SU-SWS/stanford_media/issues", - "source": "https://github.com/SU-SWS/stanford_media/tree/8.3.1" + "source": "https://github.com/SU-SWS/stanford_media/tree/8.3.2" }, - "time": "2022-05-06T22:21:48+00:00" + "time": "2022-06-15T18:35:58+00:00" }, { "name": "su-sws/stanford_migrate", @@ -17435,16 +17462,16 @@ }, { "name": "symfony/console", - "version": "v4.4.34", + "version": "v4.4.42", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "329b3a75cc6b16d435ba1b1a41df54a53382a3f0" + "reference": "cce7a9f99e22937a71a16b23afa762558808d587" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/329b3a75cc6b16d435ba1b1a41df54a53382a3f0", - "reference": "329b3a75cc6b16d435ba1b1a41df54a53382a3f0", + "url": "https://api.github.com/repos/symfony/console/zipball/cce7a9f99e22937a71a16b23afa762558808d587", + "reference": "cce7a9f99e22937a71a16b23afa762558808d587", "shasum": "" }, "require": { @@ -17505,7 +17532,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.34" + "source": "https://github.com/symfony/console/tree/v4.4.42" }, "funding": [ { @@ -17521,20 +17548,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T12:23:33+00:00" + "time": "2022-05-14T12:35:33+00:00" }, { "name": "symfony/debug", - "version": "v4.4.31", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "43ede438d4cb52cd589ae5dc070e9323866ba8e0" + "reference": "6637e62480b60817b9a6984154a533e8e64c6bd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/43ede438d4cb52cd589ae5dc070e9323866ba8e0", - "reference": "43ede438d4cb52cd589ae5dc070e9323866ba8e0", + "url": "https://api.github.com/repos/symfony/debug/zipball/6637e62480b60817b9a6984154a533e8e64c6bd5", + "reference": "6637e62480b60817b9a6984154a533e8e64c6bd5", "shasum": "" }, "require": { @@ -17573,7 +17600,7 @@ "description": "Provides tools to ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.31" + "source": "https://github.com/symfony/debug/tree/v4.4.41" }, "funding": [ { @@ -17590,20 +17617,20 @@ } ], "abandoned": "symfony/error-handler", - "time": "2021-09-24T13:30:14+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/dependency-injection", - "version": "v4.4.34", + "version": "v4.4.42", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "117d7f132ed7efbd535ec947709d49bec1b9d24b" + "reference": "f6fdbf252765a09c7ac243617f79f1babef792c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/117d7f132ed7efbd535ec947709d49bec1b9d24b", - "reference": "117d7f132ed7efbd535ec947709d49bec1b9d24b", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f6fdbf252765a09c7ac243617f79f1babef792c9", + "reference": "f6fdbf252765a09c7ac243617f79f1babef792c9", "shasum": "" }, "require": { @@ -17616,7 +17643,7 @@ "symfony/config": "<4.3|>=5.0", "symfony/finder": "<3.4", "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" + "symfony/yaml": "<4.4.26" }, "provide": { "psr/container-implementation": "1.0", @@ -17625,7 +17652,7 @@ "require-dev": { "symfony/config": "^4.3", "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/yaml": "^4.4|^5.0" + "symfony/yaml": "^4.4.26|^5.0" }, "suggest": { "symfony/config": "", @@ -17660,7 +17687,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/v4.4.34" + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.42" }, "funding": [ { @@ -17676,20 +17703,20 @@ "type": "tidelift" } ], - "time": "2021-11-15T14:42:25+00:00" + "time": "2022-05-24T15:15:52+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -17727,7 +17754,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" }, "funding": [ { @@ -17743,20 +17770,20 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.34", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "17785c374645def1e884d8ec49976c156c61db4d" + "reference": "529feb0e03133dbd5fd3707200147cc4903206da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/17785c374645def1e884d8ec49976c156c61db4d", - "reference": "17785c374645def1e884d8ec49976c156c61db4d", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/529feb0e03133dbd5fd3707200147cc4903206da", + "reference": "529feb0e03133dbd5fd3707200147cc4903206da", "shasum": "" }, "require": { @@ -17795,7 +17822,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v4.4.34" + "source": "https://github.com/symfony/error-handler/tree/v4.4.41" }, "funding": [ { @@ -17811,20 +17838,20 @@ "type": "tidelift" } ], - "time": "2021-11-12T14:57:39+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.34", + "version": "v4.4.42", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8" + "reference": "708e761740c16b02c86e3f0c932018a06b895d40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8", - "reference": "1a024b45369c9d55d76b6b8a241bd20c9ea1cbd8", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/708e761740c16b02c86e3f0c932018a06b895d40", + "reference": "708e761740c16b02c86e3f0c932018a06b895d40", "shasum": "" }, "require": { @@ -17879,7 +17906,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.34" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.42" }, "funding": [ { @@ -17895,20 +17922,20 @@ "type": "tidelift" } ], - "time": "2021-11-15T14:42:25+00:00" + "time": "2022-05-05T15:33:49+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.11", + "version": "v1.1.12", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c" + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", - "reference": "01e9a4efac0ee33a05dfdf93b346f62e7d0e998c", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", "shasum": "" }, "require": { @@ -17958,7 +17985,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.11" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.12" }, "funding": [ { @@ -17974,7 +18001,7 @@ "type": "tidelift" } ], - "time": "2021-03-23T15:25:38+00:00" + "time": "2022-01-02T09:41:36+00:00" }, { "name": "symfony/filesystem", @@ -18103,16 +18130,16 @@ }, { "name": "symfony/http-client-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166" + "reference": "1a4f708e4e87f335d1b1be6148060739152f0bd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/1a4f708e4e87f335d1b1be6148060739152f0bd5", + "reference": "1a4f708e4e87f335d1b1be6148060739152f0bd5", "shasum": "" }, "require": { @@ -18161,7 +18188,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.1" }, "funding": [ { @@ -18177,20 +18204,20 @@ "type": "tidelift" } ], - "time": "2021-11-03T09:24:47+00:00" + "time": "2022-03-13T20:07:29+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.4.34", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f4cbbb6fc428588ce8373802461e7fe84e6809ab" + "reference": "27441220aebeb096b4eb8267acaaa7feb5e4266c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4cbbb6fc428588ce8373802461e7fe84e6809ab", - "reference": "f4cbbb6fc428588ce8373802461e7fe84e6809ab", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27441220aebeb096b4eb8267acaaa7feb5e4266c", + "reference": "27441220aebeb096b4eb8267acaaa7feb5e4266c", "shasum": "" }, "require": { @@ -18229,7 +18256,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v4.4.34" + "source": "https://github.com/symfony/http-foundation/tree/v4.4.41" }, "funding": [ { @@ -18245,20 +18272,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T12:23:33+00:00" + "time": "2022-04-21T07:22:34+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.35", + "version": "v4.4.42", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fb793f1381c34b79a43596a532a6a49bd729c9db" + "reference": "04181de9459df639512dadf83d544ce12edd6776" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fb793f1381c34b79a43596a532a6a49bd729c9db", - "reference": "fb793f1381c34b79a43596a532a6a49bd729c9db", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/04181de9459df639512dadf83d544ce12edd6776", + "reference": "04181de9459df639512dadf83d544ce12edd6776", "shasum": "" }, "require": { @@ -18333,7 +18360,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/v4.4.35" + "source": "https://github.com/symfony/http-kernel/tree/v4.4.42" }, "funding": [ { @@ -18349,20 +18376,20 @@ "type": "tidelift" } ], - "time": "2021-11-24T08:40:10+00:00" + "time": "2022-05-27T07:04:21+00:00" }, { "name": "symfony/mime", - "version": "v5.4.0", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "d4365000217b67c01acff407573906ff91bcfb34" + "reference": "2b3802a24e48d0cfccf885173d2aac91e73df92e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34", - "reference": "d4365000217b67c01acff407573906ff91bcfb34", + "url": "https://api.github.com/repos/symfony/mime/zipball/2b3802a24e48d0cfccf885173d2aac91e73df92e", + "reference": "2b3802a24e48d0cfccf885173d2aac91e73df92e", "shasum": "" }, "require": { @@ -18416,7 +18443,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.0" + "source": "https://github.com/symfony/mime/tree/v5.4.9" }, "funding": [ { @@ -18432,25 +18459,28 @@ "type": "tidelift" } ], - "time": "2021-11-23T10:19:22+00:00" + "time": "2022-05-21T10:24:18+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.23.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" + "reference": "30885182c981ab175d4d034db0f6f469898070ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-ctype": "*" + }, "suggest": { "ext-ctype": "For best performance" }, @@ -18495,7 +18525,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -18511,25 +18541,28 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-10-20T20:35:02+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.23.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933" + "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40", + "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-iconv": "*" + }, "suggest": { "ext-iconv": "For best performance" }, @@ -18575,7 +18608,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" }, "funding": [ { @@ -18591,20 +18624,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2022-01-04T09:04:05+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.23.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65" + "reference": "749045c69efb97c70d25d7463abba812e91f3a44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65", - "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", + "reference": "749045c69efb97c70d25d7463abba812e91f3a44", "shasum": "" }, "require": { @@ -18662,7 +18695,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" }, "funding": [ { @@ -18678,11 +18711,11 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2021-09-14T14:02:44+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.23.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -18746,7 +18779,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -18766,21 +18799,24 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.23.1", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", - "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-mbstring": "*" + }, "suggest": { "ext-mbstring": "For best performance" }, @@ -18826,7 +18862,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -18842,7 +18878,7 @@ "type": "tidelift" } ], - "time": "2021-05-27T12:26:48+00:00" + "time": "2021-11-30T18:21:41+00:00" }, { "name": "symfony/polyfill-php72", @@ -19001,16 +19037,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.23.1", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", - "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -19064,7 +19100,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -19080,7 +19116,7 @@ "type": "tidelift" } ], - "time": "2021-07-28T13:41:28+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", @@ -19163,16 +19199,16 @@ }, { "name": "symfony/process", - "version": "v4.4.35", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c2098705326addae6e6742151dfade47ac71da1b" + "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c2098705326addae6e6742151dfade47ac71da1b", - "reference": "c2098705326addae6e6742151dfade47ac71da1b", + "url": "https://api.github.com/repos/symfony/process/zipball/9eedd60225506d56e42210a70c21bb80ca8456ce", + "reference": "9eedd60225506d56e42210a70c21bb80ca8456ce", "shasum": "" }, "require": { @@ -19205,7 +19241,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.35" + "source": "https://github.com/symfony/process/tree/v4.4.41" }, "funding": [ { @@ -19221,7 +19257,7 @@ "type": "tidelift" } ], - "time": "2021-11-22T22:36:24+00:00" + "time": "2022-04-04T10:19:07+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -19313,16 +19349,16 @@ }, { "name": "symfony/routing", - "version": "v4.4.34", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "fc9dda0c8496f8ef0a89805c2eabfc43b8cef366" + "reference": "c25e38d403c00d5ddcfc514f016f1b534abdf052" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/fc9dda0c8496f8ef0a89805c2eabfc43b8cef366", - "reference": "fc9dda0c8496f8ef0a89805c2eabfc43b8cef366", + "url": "https://api.github.com/repos/symfony/routing/zipball/c25e38d403c00d5ddcfc514f016f1b534abdf052", + "reference": "c25e38d403c00d5ddcfc514f016f1b534abdf052", "shasum": "" }, "require": { @@ -19382,7 +19418,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v4.4.34" + "source": "https://github.com/symfony/routing/tree/v4.4.41" }, "funding": [ { @@ -19398,20 +19434,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T12:23:33+00:00" + "time": "2022-04-12T15:19:55+00:00" }, { "name": "symfony/serializer", - "version": "v4.4.35", + "version": "v4.4.42", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "1b2ae02cb1b923987947e013688c51954a80b751" + "reference": "234c6d024b5664d8fe6c117140196e00ba3fa626" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/1b2ae02cb1b923987947e013688c51954a80b751", - "reference": "1b2ae02cb1b923987947e013688c51954a80b751", + "url": "https://api.github.com/repos/symfony/serializer/zipball/234c6d024b5664d8fe6c117140196e00ba3fa626", + "reference": "234c6d024b5664d8fe6c117140196e00ba3fa626", "shasum": "" }, "require": { @@ -19436,7 +19472,7 @@ "symfony/error-handler": "^4.4|^5.0", "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/mime": "^4.4|^5.0", - "symfony/property-access": "^3.4.41|^4.4.9|^5.0.9", + "symfony/property-access": "^4.4.36|^5.3.13", "symfony/property-info": "^3.4.13|~4.0|^5.0", "symfony/validator": "^3.4|^4.0|^5.0", "symfony/yaml": "^3.4|^4.0|^5.0" @@ -19476,7 +19512,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/v4.4.35" + "source": "https://github.com/symfony/serializer/tree/v4.4.42" }, "funding": [ { @@ -19492,26 +19528,26 @@ "type": "tidelift" } ], - "time": "2021-11-24T08:12:42+00:00" + "time": "2022-05-10T09:16:50+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -19559,7 +19595,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" }, "funding": [ { @@ -19575,20 +19611,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:48:04+00:00" + "time": "2022-03-13T20:07:29+00:00" }, { "name": "symfony/translation", - "version": "v4.4.34", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "26d330720627b234803595ecfc0191eeabc65190" + "reference": "dcb67eae126e74507e0b4f0b9ac6ef35b37c3331" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/26d330720627b234803595ecfc0191eeabc65190", - "reference": "26d330720627b234803595ecfc0191eeabc65190", + "url": "https://api.github.com/repos/symfony/translation/zipball/dcb67eae126e74507e0b4f0b9ac6ef35b37c3331", + "reference": "dcb67eae126e74507e0b4f0b9ac6ef35b37c3331", "shasum": "" }, "require": { @@ -19648,7 +19684,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v4.4.34" + "source": "https://github.com/symfony/translation/tree/v4.4.41" }, "funding": [ { @@ -19664,20 +19700,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T12:23:33+00:00" + "time": "2022-04-21T07:22:34+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e" + "reference": "1211df0afa701e45a04253110e959d4af4ef0f07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/1211df0afa701e45a04253110e959d4af4ef0f07", + "reference": "1211df0afa701e45a04253110e959d4af4ef0f07", "shasum": "" }, "require": { @@ -19726,7 +19762,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.1" }, "funding": [ { @@ -19742,7 +19778,7 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/twig-bridge", @@ -19849,16 +19885,16 @@ }, { "name": "symfony/validator", - "version": "v4.4.35", + "version": "v4.4.41", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "629f420d8350634fd8ed686d4472c1f10044b265" + "reference": "b79a7830b8ead3fb0a2a0080ba6f5b2a0861c28c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/629f420d8350634fd8ed686d4472c1f10044b265", - "reference": "629f420d8350634fd8ed686d4472c1f10044b265", + "url": "https://api.github.com/repos/symfony/validator/zipball/b79a7830b8ead3fb0a2a0080ba6f5b2a0861c28c", + "reference": "b79a7830b8ead3fb0a2a0080ba6f5b2a0861c28c", "shasum": "" }, "require": { @@ -19869,7 +19905,7 @@ "symfony/translation-contracts": "^1.1|^2" }, "conflict": { - "doctrine/lexer": "<1.0.2", + "doctrine/lexer": "<1.1", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "symfony/dependency-injection": "<3.4", "symfony/http-kernel": "<4.4", @@ -19935,7 +19971,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v4.4.35" + "source": "https://github.com/symfony/validator/tree/v4.4.41" }, "funding": [ { @@ -19951,20 +19987,20 @@ "type": "tidelift" } ], - "time": "2021-11-22T21:43:32+00:00" + "time": "2022-04-14T15:50:15+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.0", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9" + "reference": "af52239a330fafd192c773795520dc2dd62b5657" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/89ab66eaef230c9cd1992de2e9a1b26652b127b9", - "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/af52239a330fafd192c773795520dc2dd62b5657", + "reference": "af52239a330fafd192c773795520dc2dd62b5657", "shasum": "" }, "require": { @@ -20024,7 +20060,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.0" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.9" }, "funding": [ { @@ -20040,20 +20076,20 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:30:56+00:00" + "time": "2022-05-21T10:24:18+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.34", + "version": "v4.4.37", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2c309e258adeb9970229042be39b360d34986fad" + "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2c309e258adeb9970229042be39b360d34986fad", - "reference": "2c309e258adeb9970229042be39b360d34986fad", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d7f637cc0f0cc14beb0984f2bb50da560b271311", + "reference": "d7f637cc0f0cc14beb0984f2bb50da560b271311", "shasum": "" }, "require": { @@ -20095,7 +20131,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.34" + "source": "https://github.com/symfony/yaml/tree/v4.4.37" }, "funding": [ { @@ -20111,7 +20147,7 @@ "type": "tidelift" } ], - "time": "2021-11-18T18:49:23+00:00" + "time": "2022-01-24T20:11:01+00:00" }, { "name": "twig/extensions", @@ -20175,16 +20211,16 @@ }, { "name": "twig/twig", - "version": "v2.14.11", + "version": "v2.15.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727" + "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/66baa66f29ee30e487e05f1679903e36eb01d727", - "reference": "66baa66f29ee30e487e05f1679903e36eb01d727", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", + "reference": "3b7cedb2f736899a7dbd0ba3d6da335a015f5cc4", "shasum": "" }, "require": { @@ -20200,7 +20236,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.14-dev" + "dev-master": "2.15-dev" } }, "autoload": { @@ -20239,7 +20275,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.11" + "source": "https://github.com/twigphp/Twig/tree/v2.15.1" }, "funding": [ { @@ -20251,7 +20287,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T06:57:25+00:00" + "time": "2022-05-17T05:46:24+00:00" }, { "name": "typo3/phar-stream-wrapper", @@ -20878,16 +20914,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.31", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5" + "reference": "e646d160bf1223d3595b227b69d903777fbcfb5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/15524571ae0686a7facc2eb1f40f600e5bbce9e5", - "reference": "15524571ae0686a7facc2eb1f40f600e5bbce9e5", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/e646d160bf1223d3595b227b69d903777fbcfb5f", + "reference": "e646d160bf1223d3595b227b69d903777fbcfb5f", "shasum": "" }, "require": { @@ -20950,11 +20986,11 @@ { "name": "Michael Bodnarchuk", "email": "davert@mail.ua", - "homepage": "http://codegyre.com" + "homepage": "https://codegyre.com" } ], "description": "BDD-style testing framework", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "BDD", "TDD", @@ -20964,7 +21000,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.31" + "source": "https://github.com/Codeception/Codeception/tree/4.2.0" }, "funding": [ { @@ -20972,7 +21008,7 @@ "type": "open_collective" } ], - "time": "2022-03-13T17:07:08+00:00" + "time": "2022-06-16T05:33:39+00:00" }, { "name": "codeception/lib-asserts", @@ -22885,22 +22921,22 @@ }, { "name": "drupal/core-dev", - "version": "9.3.15", + "version": "9.4.0", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", - "reference": "d093ec9dd1106069fd01535235dd5797662a61cb" + "reference": "72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/d093ec9dd1106069fd01535235dd5797662a61cb", - "reference": "d093ec9dd1106069fd01535235dd5797662a61cb", + "url": "https://api.github.com/repos/drupal/core-dev/zipball/72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29", + "reference": "72ddd684df05fc22e97d42ddba5fb6c5ee9f9b29", "shasum": "" }, "require": { "behat/mink": "^1.8", "behat/mink-selenium2-driver": "^1.4", - "composer/composer": "^2.0.2", + "composer/composer": "^2.2.12", "drupal/coder": "^8.3.10", "easyrdf/easyrdf": "^0.9 || ^1.0", "friends-of-behat/mink-browserkit-driver": "^1.4", @@ -22929,9 +22965,9 @@ ], "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/9.3.15" + "source": "https://github.com/drupal/core-dev/tree/9.4.0" }, - "time": "2021-11-30T05:41:29+00:00" + "time": "2022-04-14T00:37:13+00:00" }, { "name": "drupal/devel", @@ -24328,16 +24364,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.20", + "version": "9.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", "shasum": "" }, "require": { @@ -24371,7 +24407,6 @@ "sebastian/version": "^3.0.2" }, "require-dev": { - "ext-pdo": "*", "phpspec/prophecy-phpunit": "^2.0.1" }, "suggest": { @@ -24415,7 +24450,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" }, "funding": [ { @@ -24427,7 +24462,7 @@ "type": "github" } ], - "time": "2022-04-01T12:37:26+00:00" + "time": "2022-06-19T12:14:25+00:00" }, { "name": "react/promise", @@ -25636,12 +25671,12 @@ "source": { "type": "git", "url": "https://github.com/SU-SWS/blt-sws.git", - "reference": "2befd4afb0d8e0461b2c1862b180f4e239c5cb9d" + "reference": "551cda0ab5ce6261437c7205d88051a30610f33d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SU-SWS/blt-sws/zipball/2befd4afb0d8e0461b2c1862b180f4e239c5cb9d", - "reference": "2befd4afb0d8e0461b2c1862b180f4e239c5cb9d", + "url": "https://api.github.com/repos/SU-SWS/blt-sws/zipball/551cda0ab5ce6261437c7205d88051a30610f33d", + "reference": "551cda0ab5ce6261437c7205d88051a30610f33d", "shasum": "" }, "require": { @@ -25669,7 +25704,7 @@ "issues": "https://github.com/SU-SWS/blt-sws/issues", "source": "https://github.com/SU-SWS/blt-sws/tree/main" }, - "time": "2022-05-13T03:06:15+00:00" + "time": "2022-06-13T22:48:36+00:00" }, { "name": "su-sws/drupal-dev", diff --git a/config/default/core.entity_form_display.paragraph_row.hs_flexible_page.default.yml b/config/default/core.entity_form_display.paragraph_row.hs_flexible_page.default.yml deleted file mode 100644 index 0992834d2..000000000 --- a/config/default/core.entity_form_display.paragraph_row.hs_flexible_page.default.yml +++ /dev/null @@ -1,36 +0,0 @@ -uuid: 2690a2c4-3af9-457d-963d-52d886b8fbc1 -langcode: en -status: true -dependencies: - config: - - field.field.paragraph_row.hs_flexible_page.field_hs_flexible_components - - field.field.paragraph_row.hs_flexible_page.field_hs_flexible_row_style - - react_paragraphs.paragraphs_row_type.hs_flexible_page - module: - - paragraphs -id: paragraph_row.hs_flexible_page.default -targetEntityType: paragraph_row -bundle: hs_flexible_page -mode: default -content: - field_hs_flexible_components: - type: entity_reference_paragraphs - weight: 1 - region: content - settings: - title: Paragraph - title_plural: Paragraphs - edit_mode: open - add_mode: dropdown - form_display_mode: default - default_paragraph_type: '' - third_party_settings: { } - field_hs_flexible_row_style: - type: options_select - weight: 0 - region: content - settings: { } - third_party_settings: { } -hidden: - created: true - status: true diff --git a/config/default/core.entity_view_display.media.embeddable.media_library.yml b/config/default/core.entity_view_display.media.embeddable.media_library.yml index faf6826f4..155ef71c2 100644 --- a/config/default/core.entity_view_display.media.embeddable.media_library.yml +++ b/config/default/core.entity_view_display.media.embeddable.media_library.yml @@ -21,6 +21,8 @@ content: settings: image_link: '' image_style: medium + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.media.file.media_library.yml b/config/default/core.entity_view_display.media.file.media_library.yml index f5f813367..97d5143c3 100644 --- a/config/default/core.entity_view_display.media.file.media_library.yml +++ b/config/default/core.entity_view_display.media.file.media_library.yml @@ -20,6 +20,8 @@ content: settings: image_link: '' image_style: medium + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.media.google_form.media_library.yml b/config/default/core.entity_view_display.media.google_form.media_library.yml index 0cb3ff6e9..ccf5f7db9 100644 --- a/config/default/core.entity_view_display.media.google_form.media_library.yml +++ b/config/default/core.entity_view_display.media.google_form.media_library.yml @@ -5,6 +5,7 @@ dependencies: config: - core.entity_view_mode.media.media_library - field.field.media.google_form.field_media_google_form + - field.field.media.google_form.field_media_google_height - image.style.medium - media.type.google_form module: @@ -20,6 +21,8 @@ content: settings: image_link: '' image_style: medium + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.media.image.media_library.yml b/config/default/core.entity_view_display.media.image.media_library.yml index 1596f6593..db0fae758 100644 --- a/config/default/core.entity_view_display.media.image.media_library.yml +++ b/config/default/core.entity_view_display.media.image.media_library.yml @@ -21,6 +21,8 @@ content: settings: image_link: '' image_style: medium + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.media.image.stanford_image_large.yml b/config/default/core.entity_view_display.media.image.stanford_image_large.yml index 009f655b1..778e65db3 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_large.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_large.yml @@ -23,6 +23,8 @@ content: settings: image_link: '' image_style: hs_large_scaled_480px + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_large_square.yml b/config/default/core.entity_view_display.media.image.stanford_image_large_square.yml index d4bd6fd02..90c3b34fa 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_large_square.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_large_square.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_large_square_480x480 + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_medium.yml b/config/default/core.entity_view_display.media.image.stanford_image_medium.yml index 9856f9b54..64f1bfcf3 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_medium.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_medium.yml @@ -23,6 +23,8 @@ content: settings: image_link: '' image_style: hs_medium_scaled_360px + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_medium_square.yml b/config/default/core.entity_view_display.media.image.stanford_image_medium_square.yml index 630799239..1a912c5da 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_medium_square.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_medium_square.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_medium_square_360x360 + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_small.yml b/config/default/core.entity_view_display.media.image.stanford_image_small.yml index e9662678e..00215f52a 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_small.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_small.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_small_scaled_200px + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_small_square.yml b/config/default/core.entity_view_display.media.image.stanford_image_small_square.yml index 42d002913..fc384f044 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_small_square.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_small_square.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_small_square_200x200 + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_xl.yml b/config/default/core.entity_view_display.media.image.stanford_image_xl.yml index a8cf52d26..854d5d8a7 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_xl.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_xl.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_xl_scaled_700px + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.stanford_image_xl_square.yml b/config/default/core.entity_view_display.media.image.stanford_image_xl_square.yml index f300b7013..a4c1e7e70 100644 --- a/config/default/core.entity_view_display.media.image.stanford_image_xl_square.yml +++ b/config/default/core.entity_view_display.media.image.stanford_image_xl_square.yml @@ -30,6 +30,8 @@ content: settings: image_link: '' image_style: hs_xlarge_square_700x700 + image_loading: + attribute: lazy third_party_settings: field_formatter_class: class: '' diff --git a/config/default/core.entity_view_display.media.image.thumbnail.yml b/config/default/core.entity_view_display.media.image.thumbnail.yml index ed1277a72..ea3d96210 100644 --- a/config/default/core.entity_view_display.media.image.thumbnail.yml +++ b/config/default/core.entity_view_display.media.image.thumbnail.yml @@ -5,6 +5,7 @@ dependencies: config: - core.entity_view_mode.media.thumbnail - field.field.media.image.field_media_image + - field.field.media.image.field_media_image_caption - image.style.thumbnail - media.type.image module: @@ -22,6 +23,8 @@ content: settings: image_link: '' image_style: thumbnail + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.media.video.media_library.yml b/config/default/core.entity_view_display.media.video.media_library.yml index 3f61fe7b3..7359509ca 100644 --- a/config/default/core.entity_view_display.media.video.media_library.yml +++ b/config/default/core.entity_view_display.media.video.media_library.yml @@ -20,6 +20,8 @@ content: settings: image_link: '' image_style: medium + image_loading: + attribute: lazy third_party_settings: { } weight: 0 region: content diff --git a/config/default/core.entity_view_display.paragraph_row.hs_flexible_page.default.yml b/config/default/core.entity_view_display.paragraph_row.hs_flexible_page.default.yml deleted file mode 100644 index a74baadb9..000000000 --- a/config/default/core.entity_view_display.paragraph_row.hs_flexible_page.default.yml +++ /dev/null @@ -1,27 +0,0 @@ -uuid: 19ed6dcb-f767-4422-baa4-c563ee134d70 -langcode: en -status: true -dependencies: - config: - - field.field.paragraph_row.hs_flexible_page.field_hs_flexible_components - - field.field.paragraph_row.hs_flexible_page.field_hs_flexible_row_style - - react_paragraphs.paragraphs_row_type.hs_flexible_page - module: - - entity_reference_revisions -id: paragraph_row.hs_flexible_page.default -targetEntityType: paragraph_row -bundle: hs_flexible_page -mode: default -content: - field_hs_flexible_components: - type: entity_reference_revisions_entity_view - label: hidden - settings: - view_mode: default - link: '' - third_party_settings: { } - weight: 0 - region: content -hidden: - field_hs_flexible_row_style: true - search_api_excerpt: true diff --git a/config/default/core.extension.yml b/config/default/core.extension.yml index 39611b7c0..772cc65f1 100644 --- a/config/default/core.extension.yml +++ b/config/default/core.extension.yml @@ -167,6 +167,7 @@ module: migrate_plus: 0 migrate_source_csv: 0 migrate_tools: 0 + mysql: 0 node: 0 node_revision_delete: 0 oembed_providers: 0 @@ -180,7 +181,6 @@ module: preprocess_event_dispatcher: 0 publishcontent: 0 rabbit_hole: 0 - react_paragraphs: 0 readonly_field_widget: 0 real_aes: 0 redirect: 0 diff --git a/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_components.yml b/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_components.yml deleted file mode 100644 index d4d57195c..000000000 --- a/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_components.yml +++ /dev/null @@ -1,96 +0,0 @@ -uuid: a4bc3c12-8a15-45e1-9007-4fb0b2704f8f -langcode: en -status: true -dependencies: - config: - - field.storage.paragraph_row.field_hs_flexible_components - - paragraphs.paragraphs_type.hs_callout_box - - paragraphs.paragraphs_type.hs_carousel - - paragraphs.paragraphs_type.hs_clr_bnd - - paragraphs.paragraphs_type.hs_priv_text_area - - paragraphs.paragraphs_type.hs_row - - react_paragraphs.paragraphs_row_type.hs_flexible_page - module: - - entity_reference_revisions -id: paragraph_row.hs_flexible_page.field_hs_flexible_components -field_name: field_hs_flexible_components -entity_type: paragraph_row -bundle: hs_flexible_page -label: Components -description: '' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: - handler: 'default:paragraph' - handler_settings: - target_bundles: - hs_callout_box: hs_callout_box - hs_priv_text_area: hs_priv_text_area - hs_row: hs_row - hs_carousel: hs_carousel - hs_clr_bnd: hs_clr_bnd - negate: 1 - target_bundles_drag_drop: - hs_accordion: - weight: -38 - enabled: false - hs_banner: - weight: -32 - enabled: false - hs_callout_box: - weight: -37 - enabled: true - hs_carousel: - weight: -33 - enabled: true - hs_clr_bnd: - weight: 26 - enabled: true - hs_collection: - weight: -36 - enabled: false - hs_gradient_hero: - weight: -35 - enabled: false - hs_gradient_hero_slider: - weight: -34 - enabled: false - hs_hero_image: - weight: -31 - enabled: false - hs_postcard: - weight: -29 - enabled: false - hs_priv_text_area: - weight: -28 - enabled: true - hs_row: - weight: -27 - enabled: true - hs_spotlight: - weight: -26 - enabled: false - hs_testimonial: - weight: -25 - enabled: false - hs_text_area: - weight: -39 - enabled: false - hs_timeline: - weight: -23 - enabled: false - hs_timeline_item: - weight: -24 - enabled: false - hs_view: - weight: -22 - enabled: false - hs_webform: - weight: -21 - enabled: false - stanford_gallery: - weight: -30 - enabled: false -field_type: entity_reference_revisions diff --git a/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_row_style.yml b/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_row_style.yml deleted file mode 100644 index 70555d12e..000000000 --- a/config/default/field.field.paragraph_row.hs_flexible_page.field_hs_flexible_row_style.yml +++ /dev/null @@ -1,21 +0,0 @@ -uuid: ad697c84-407e-4662-8e3a-3759e0fb0942 -langcode: en -status: true -dependencies: - config: - - field.storage.paragraph_row.field_hs_flexible_row_style - - react_paragraphs.paragraphs_row_type.hs_flexible_page - module: - - options -id: paragraph_row.hs_flexible_page.field_hs_flexible_row_style -field_name: field_hs_flexible_row_style -entity_type: paragraph_row -bundle: hs_flexible_page -label: 'Row Style' -description: 'Allows you to add styles to the background of the row.' -required: false -translatable: false -default_value: { } -default_value_callback: '' -settings: { } -field_type: list_string diff --git a/config/default/field.storage.paragraph_row.field_hs_flexible_components.yml b/config/default/field.storage.paragraph_row.field_hs_flexible_components.yml deleted file mode 100644 index b464fbf1e..000000000 --- a/config/default/field.storage.paragraph_row.field_hs_flexible_components.yml +++ /dev/null @@ -1,21 +0,0 @@ -uuid: 7c0719b4-81f3-44e2-a86d-49057f58c395 -langcode: en -status: true -dependencies: - module: - - entity_reference_revisions - - paragraphs - - react_paragraphs -id: paragraph_row.field_hs_flexible_components -field_name: field_hs_flexible_components -entity_type: paragraph_row -type: entity_reference_revisions -settings: - target_type: paragraph -module: entity_reference_revisions -locked: false -cardinality: 4 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/config/default/field.storage.paragraph_row.field_hs_flexible_row_style.yml b/config/default/field.storage.paragraph_row.field_hs_flexible_row_style.yml deleted file mode 100644 index 38e456795..000000000 --- a/config/default/field.storage.paragraph_row.field_hs_flexible_row_style.yml +++ /dev/null @@ -1,31 +0,0 @@ -uuid: 34a1eedf-a6a5-427a-a2f1-ee64e5b0f784 -langcode: en -status: true -dependencies: - module: - - field_permissions - - options - - react_paragraphs -third_party_settings: - field_permissions: - permission_type: custom -id: paragraph_row.field_hs_flexible_row_style -field_name: field_hs_flexible_row_style -entity_type: paragraph_row -type: list_string -settings: - allowed_values: - - - value: well - label: 'Well Limited-width' - - - value: well-full-width - label: 'Well Full-width' - allowed_values_function: '' -module: options -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/config/default/jsonapi.settings.yml b/config/default/jsonapi.settings.yml index bf8b5aaa3..21ab848ca 100644 --- a/config/default/jsonapi.settings.yml +++ b/config/default/jsonapi.settings.yml @@ -2,3 +2,6 @@ _core: default_config_hash: p_qzzTwtOMiIPE7CyG0wD6M-UCpBp6Y5E4LhNCnCRpY langcode: en read_only: true +maintenance_header_retry_seconds: + min: 5 + max: 10 diff --git a/config/default/react_paragraphs.paragraphs_row_type.hs_flexible_page.yml b/config/default/react_paragraphs.paragraphs_row_type.hs_flexible_page.yml deleted file mode 100644 index 4aff41048..000000000 --- a/config/default/react_paragraphs.paragraphs_row_type.hs_flexible_page.yml +++ /dev/null @@ -1,8 +0,0 @@ -uuid: b7ebab4b-0196-4f18-b01a-a43b32a7f7a5 -langcode: en -status: true -dependencies: { } -id: hs_flexible_page -label: 'Flexible Page' -description: '' -behavior_plugins: { } diff --git a/config/default/rest.resource.entity.paragraph_row.yml b/config/default/rest.resource.entity.paragraph_row.yml deleted file mode 100644 index 94e3e36d3..000000000 --- a/config/default/rest.resource.entity.paragraph_row.yml +++ /dev/null @@ -1,18 +0,0 @@ -uuid: 0706c02b-b198-4d4f-ad85-4f063756d452 -langcode: en -status: true -dependencies: - module: - - react_paragraphs - - serialization - - user -id: entity.paragraph_row -plugin_id: 'entity:paragraph_row' -granularity: resource -configuration: - methods: - - GET - formats: - - json - authentication: - - cookie diff --git a/config/default/rest.resource.react_paragraphs.yml b/config/default/rest.resource.react_paragraphs.yml deleted file mode 100644 index 3d94044f9..000000000 --- a/config/default/rest.resource.react_paragraphs.yml +++ /dev/null @@ -1,19 +0,0 @@ -uuid: cef9901c-190f-451e-814a-23cd2d905a76 -langcode: en -status: true -dependencies: - module: - - react_paragraphs - - serialization - - user -_core: - default_config_hash: 8eTQ2Rt2BxewKlFZcwaE1mGx77CC2UvTg1_N6Z9ICUM -id: react_paragraphs -plugin_id: react_paragraphs -granularity: method -configuration: - GET: - supported_formats: - - json - supported_auth: - - cookie diff --git a/config/default/views.view.media.yml b/config/default/views.view.media.yml index eaa8b44ba..319b04a9b 100644 --- a/config/default/views.view.media.yml +++ b/config/default/views.view.media.yml @@ -133,6 +133,8 @@ display: settings: image_link: '' image_style: thumbnail + image_loading: + attribute: lazy group_column: '' group_columns: { } group_rows: true diff --git a/config/default/views.view.media_library.yml b/config/default/views.view.media_library.yml index 3cc453734..99cfaf0ef 100644 --- a/config/default/views.view.media_library.yml +++ b/config/default/views.view.media_library.yml @@ -1198,6 +1198,8 @@ display: settings: image_link: '' image_style: media_library + image_loading: + attribute: lazy name: id: name table: media_field_data diff --git a/config/default/views.view.new_default_image_alt_text.yml b/config/default/views.view.new_default_image_alt_text.yml index abac5c050..9d789fb9e 100644 --- a/config/default/views.view.new_default_image_alt_text.yml +++ b/config/default/views.view.new_default_image_alt_text.yml @@ -145,6 +145,8 @@ display: settings: image_link: '' image_style: hs_small_scaled_200px + image_loading: + attribute: lazy group_column: '' group_columns: { } group_rows: true @@ -274,6 +276,8 @@ display: settings: image_link: '' image_style: '' + image_loading: + attribute: lazy group_column: '' group_columns: { } group_rows: true diff --git a/docroot/.htaccess b/docroot/.htaccess index a2fe0fa9d..80b4a625f 100644 --- a/docroot/.htaccess +++ b/docroot/.htaccess @@ -53,6 +53,11 @@ AddEncoding gzip svgz php_value assert.active 0 +# PHP 8, Apache 1 and 2. + + php_value assert.active 0 + + # Requires mod_expires to be enabled. # Enable expirations. diff --git a/docroot/modules/humsci/hs_migrate/tests/src/Unit/Plugin/migrate/process/SubProcessTest.php b/docroot/modules/humsci/hs_migrate/tests/src/Unit/Plugin/migrate/process/SubProcessTest.php index 47b23fbe3..86b318c90 100644 --- a/docroot/modules/humsci/hs_migrate/tests/src/Unit/Plugin/migrate/process/SubProcessTest.php +++ b/docroot/modules/humsci/hs_migrate/tests/src/Unit/Plugin/migrate/process/SubProcessTest.php @@ -3,6 +3,7 @@ namespace Drupal\Tests\hs_migrate\Unit\Plulgin\migrate\process; use Drupal\hs_migrate\Plugin\migrate\process\SubProcess as HsSubProcess; +use Drupal\migrate\MigrateException; use Drupal\migrate\MigrateExecutable; use Drupal\migrate\Plugin\migrate\process\SubProcess as OrigSubProcess; use Drupal\migrate\Row; @@ -30,8 +31,8 @@ public function testTranform() { $value = simplexml_load_string('akey'); $new_value = $hs_plugin->transform($value, $migrate_executable, $row, 'field_foo'); - $this->assertArrayEquals(['' => []], $new_value); - $this->expectException(\Error::class); + $this->assertEquals(['' => []], $new_value); + $this->expectException(MigrateException::class); $original_plugin->transform($value, $migrate_executable, $row, 'field_foo'); } diff --git a/docroot/profiles/humsci/su_humsci_profile/modules/humsci_default_content/humsci_default_content.info.yml b/docroot/profiles/humsci/su_humsci_profile/modules/humsci_default_content/humsci_default_content.info.yml index 8cbeb80bb..2d6c284ea 100644 --- a/docroot/profiles/humsci/su_humsci_profile/modules/humsci_default_content/humsci_default_content.info.yml +++ b/docroot/profiles/humsci/su_humsci_profile/modules/humsci_default_content/humsci_default_content.info.yml @@ -3,7 +3,7 @@ description: 'DO NOT INSTALL. This is for profile installation task only.' core_version_requirement: '^8.8 || ^9' hidden: true type: module -version: 9.3.20 +version: 9.3.21 default_content: block_content: - 2b7335a6-d3a4-468b-b515-9b1e2be558bc diff --git a/docroot/profiles/humsci/su_humsci_profile/modules/humsci_events_listeners/humsci_events_listeners.info.yml b/docroot/profiles/humsci/su_humsci_profile/modules/humsci_events_listeners/humsci_events_listeners.info.yml index eac39660a..071e00d58 100644 --- a/docroot/profiles/humsci/su_humsci_profile/modules/humsci_events_listeners/humsci_events_listeners.info.yml +++ b/docroot/profiles/humsci/su_humsci_profile/modules/humsci_events_listeners/humsci_events_listeners.info.yml @@ -14,4 +14,4 @@ dependencies: - 'hook_event_dispatcher:toolbar_event_dispatcher' - 'hook_event_dispatcher:user_event_dispatcher' - 'hook_event_dispatcher:views_event_dispatcher' -version: 9.3.20 +version: 9.3.21 diff --git a/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.info.yml b/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.info.yml index 8c51c9dae..00986aba7 100644 --- a/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.info.yml +++ b/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.info.yml @@ -1,7 +1,7 @@ name: 'Stanford HumSci' type: profile description: 'Installation profile for HumSci Drupal' -version: 9.3.20 +version: 9.3.21 core_version_requirement: '^8.8 || ^9' themes: - material_admin diff --git a/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.post_update.php b/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.post_update.php index cb91b8eb5..48f4d3c47 100644 --- a/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.post_update.php +++ b/docroot/profiles/humsci/su_humsci_profile/su_humsci_profile.post_update.php @@ -181,7 +181,8 @@ function su_humsci_profile_post_update_9200() { $parent_type = $spotlight->get('parent_type')->getString(); $parent_id = $spotlight->get('parent_id')->getString(); - if (!$parent_type || !\Drupal::entityTypeManager()->hasDefinition($parent_type)) { + if (!$parent_type || !\Drupal::entityTypeManager() + ->hasDefinition($parent_type)) { continue; } $parent = \Drupal::entityTypeManager() @@ -243,3 +244,66 @@ function su_humsci_profile_post_update_9201() { _su_humsci_profile_disable_paragraph('node', 'hs_basic_page', 'field_hs_page_components', 'hs_row'); _su_humsci_profile_enable_paragraph('node', 'hs_basic_page', 'field_hs_page_components', 'stanford_gallery'); } + +/** + * Delete any react pararaphs fields. + */ +function su_humsci_profile_post_update_9202() { + $react_paragraphs_fields = []; + foreach (FieldConfig::loadMultiple() as $field) { + if ( + $field->getType() == 'entity_reference_revisions' && + $field->getSetting('handler') == 'default:paragraph_row' + ) { + $react_paragraphs_fields[$field->getName()] = $field; + } + } + if ($react_paragraphs_fields) { + $paragraphs = \Drupal::entityTypeManager() + ->getStorage('paragraph') + ->loadByProperties(['parent_field_name' => array_keys($react_paragraphs_fields)]); + foreach ($paragraphs as $paragraph) { + $paragraph->delete(); + } + } + $rows = \Drupal::entityTypeManager() + ->getStorage('paragraph_row') + ->loadMultiple(); + foreach ($rows as $row) { + $row->delete(); + } + foreach ($react_paragraphs_fields as $field) { + $field->delete(); + } + $row_types = \Drupal::entityTypeManager() + ->getStorage('paragraphs_row_type') + ->loadMultiple(); + foreach ($row_types as $row_type) { + $row_type->delete(); + } + \Drupal::service('module_installer')->uninstall(['react_paragraphs']); +} + +/** + * Fix reference to private files component that doesn't exist. + */ +function su_humsci_profile_post_update_9203() { + $paragraph_types = \Drupal::entityTypeManager() + ->getStorage('paragraphs_type') + ->loadMultiple(); + foreach (FieldConfig::loadMultiple() as $field) { + if ( + $field->getType() == 'entity_reference_revisions' && + $field->getSetting('handler') == 'default:paragraph' + ) { + $handler_settings = $field->getSetting('handler_settings'); + if ($missing_paragraph_types = array_diff($handler_settings['target_bundles'], array_keys($paragraph_types))) { + foreach ($missing_paragraph_types as $unknown_paragraph_type) { + unset($handler_settings['target_bundles'][$unknown_paragraph_type]); + unset($handler_settings['target_bundles_drag_drop'][$unknown_paragraph_type]); + } + $field->setSetting('handler_settings', $handler_settings)->save(); + } + } + } +} diff --git a/docroot/sites/default/default.settings.php b/docroot/sites/default/default.settings.php index 718890224..72be7750b 100644 --- a/docroot/sites/default/default.settings.php +++ b/docroot/sites/default/default.settings.php @@ -170,9 +170,9 @@ * information on these defaults and the potential issues. * * More details can be found in the constructor methods for each driver: - * - \Drupal\Core\Database\Driver\mysql\Connection::__construct() - * - \Drupal\Core\Database\Driver\pgsql\Connection::__construct() - * - \Drupal\Core\Database\Driver\sqlite\Connection::__construct() + * - \Drupal\mysql\Driver\Database\mysql\Connection::__construct() + * - \Drupal\pgsql\Driver\Database\pgsql\Connection::__construct() + * - \Drupal\sqlite\Driver\Database\sqlite\Connection::__construct() * * Sample Database configuration format for PostgreSQL (pgsql): * @code @@ -703,6 +703,8 @@ * @endcode * will allow the site to run off of all variants of example.com and * example.org, with all subdomains included. + * + * @see https://www.drupal.org/docs/installing-drupal/trusted-host-settings */ /** diff --git a/docroot/sites/sparkbox_sandbox/blt.yml b/docroot/sites/sparkbox_sandbox/blt.yml deleted file mode 100644 index b072987a9..000000000 --- a/docroot/sites/sparkbox_sandbox/blt.yml +++ /dev/null @@ -1,12 +0,0 @@ -project: - local: - hostname: null - protocol: null - machine_name: sparkbox_sandbox - human_name: sparkbox_sandbox -drush: - aliases: - local: sparkbox_sandbox.local - remote: sparkbox_sandbox.prod -drupal: - db: { } diff --git a/docroot/sites/suac/blt.yml b/docroot/sites/suac/blt.yml new file mode 100644 index 000000000..093fc8f9f --- /dev/null +++ b/docroot/sites/suac/blt.yml @@ -0,0 +1,12 @@ +project: + machine_name: suac + human_name: suac + local: + protocol: http + hostname: suac.suhumsci.loc +drush: + aliases: + local: suac.local + remote: suac.prod +drupal: + db: { } diff --git a/docroot/sites/sparkbox_sandbox/default.local.drush.yml b/docroot/sites/suac/default.local.drush.yml similarity index 100% rename from docroot/sites/sparkbox_sandbox/default.local.drush.yml rename to docroot/sites/suac/default.local.drush.yml diff --git a/docroot/sites/sparkbox_sandbox/default.services.yml b/docroot/sites/suac/default.services.yml similarity index 76% rename from docroot/sites/sparkbox_sandbox/default.services.yml rename to docroot/sites/suac/default.services.yml index e1bbbc7e2..ff6797d95 100644 --- a/docroot/sites/sparkbox_sandbox/default.services.yml +++ b/docroot/sites/suac/default.services.yml @@ -11,10 +11,11 @@ parameters: # @default 100 gc_divisor: 100 # - # Set session lifetime (in seconds), i.e. the time from the user's last - # visit to the active session may be deleted by the session garbage - # collector. When a session is deleted, authenticated users are logged out, - # and the contents of the user's $_SESSION variable is discarded. + # Set session lifetime (in seconds), i.e. the grace period for session + # data. Sessions are deleted by the session garbage collector after one + # session lifetime has elapsed since the user's last visit. When a session + # is deleted, authenticated users are logged out, and the contents of the + # user's session is discarded. # @default 200000 gc_maxlifetime: 200000 # @@ -36,6 +37,22 @@ parameters: # @default none # cookie_domain: '.example.com' # + # Set the session ID string length. The length can be between 22 to 256. The + # PHP recommended value is 48. See + # https://www.php.net/manual/session.security.ini.php for more information. + # This value should be kept in sync with + # \Drupal\Core\Session\SessionConfiguration::__construct() + # @default 48 + sid_length: 48 + # + # Set the number of bits in encoded session ID character. The possible + # values are '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", + # ","). The PHP recommended value is 6. See + # https://www.php.net/manual/session.security.ini.php for more information. + # This value should be kept in sync with + # \Drupal\Core\Session\SessionConfiguration::__construct() + # @default 6 + sid_bits_per_character: 6 twig.config: # Twig debugging: # @@ -53,7 +70,7 @@ parameters: # For more information about debugging Twig templates, see # https://www.drupal.org/node/1906392. # - # Not recommended in production environments + # Enabling Twig debugging is not recommended in production environments. # @default false debug: false # Twig auto-reload: @@ -62,7 +79,7 @@ parameters: # If you don't provide a value for auto_reload, it will be determined # based on the value of debug. # - # Not recommended in production environments + # Enabling auto-reload is not recommended in production environments. # @default null auto_reload: null # Twig cache: @@ -73,7 +90,7 @@ parameters: # auto_reload setting above should be enabled rather than disabling the # Twig cache. # - # Not recommended in production environments + # Disabling the Twig cache is not recommended in production environments. # @default true cache: true renderer.config: @@ -118,23 +135,23 @@ parameters: # Cacheability debugging: # # Responses with cacheability metadata (CacheableResponseInterface instances) - # get X-Drupal-Cache-Tags and X-Drupal-Cache-Contexts headers. + # get X-Drupal-Cache-Tags, X-Drupal-Cache-Contexts and X-Drupal-Cache-Max-Age + # headers. # # For more information about debugging cacheable responses, see # https://www.drupal.org/developing/api/8/response/cacheable-response-interface # - # Not recommended in production environments + # Enabling cacheability debugging is not recommended in production + # environments. # @default false http.response.debug_cacheability_headers: false - factory.keyvalue: - {} + factory.keyvalue: {} # Default key/value storage service to use. # @default keyvalue.database # default: keyvalue.database # Collection-specific overrides. # state: keyvalue.database - factory.keyvalue.expirable: - {} + factory.keyvalue.expirable: {} # Default key/value expirable storage service to use. # @default keyvalue.database.expirable # default: keyvalue.database.expirable @@ -154,10 +171,10 @@ parameters: - webcal - rtsp - # Configure Cross-Site HTTP requests (CORS). - # Read https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS - # for more information about the topic in general. - # Note: By default the configuration is disabled. + # Configure Cross-Site HTTP requests (CORS). + # Read https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS + # for more information about the topic in general. + # Note: By default the configuration is disabled. cors.config: enabled: false # Specify allowed headers, like 'x-allowed-header'. diff --git a/docroot/sites/sparkbox_sandbox/default.settings.php b/docroot/sites/suac/default.settings.php similarity index 91% rename from docroot/sites/sparkbox_sandbox/default.settings.php rename to docroot/sites/suac/default.settings.php index 0bb18b0da..718890224 100644 --- a/docroot/sites/sparkbox_sandbox/default.settings.php +++ b/docroot/sites/suac/default.settings.php @@ -1,6 +1,6 @@ 'main_', * @endcode * - * Per-table prefixes are deprecated as of Drupal 8.2, and will be removed in - * Drupal 9.0. After that, only a single prefix for all tables will be - * supported. - * - * To provide prefixes for specific tables, set 'prefix' as an array. - * The array's keys are the table names and the values are the prefixes. - * The 'default' element is mandatory and holds the prefix for any tables - * not specified elsewhere in the array. Example: - * @code - * 'prefix' => [ - * 'default' => 'main_', - * 'users' => 'shared_', - * 'sessions' => 'shared_', - * 'role' => 'shared_', - * 'authmap' => 'shared_', - * ], - * @endcode - * You can also use a reference to a schema/database as a prefix. This may be - * useful if your Drupal installation exists in a schema that is not the default - * or you want to access several databases from the same code base at the same - * time. - * Example: - * @code - * 'prefix' => [ - * 'default' => 'main.', - * 'users' => 'shared.', - * 'sessions' => 'shared.', - * 'role' => 'shared.', - * 'authmap' => 'shared.', - * ]; - * @endcode - * NOTE: MySQL and SQLite's definition of a schema is a database. - * * Advanced users can add or override initial commands to execute when * connecting to the database server, as well as PDO connection settings. For * example, to enable MySQL SELECT queries to exceed the max_join_size system @@ -308,16 +275,18 @@ $settings['update_free_access'] = FALSE; /** - * Fallback to HTTP for Update Manager. + * Fallback to HTTP for Update Manager and for fetching security advisories. * - * If your Drupal site fails to connect to updates.drupal.org using HTTPS to - * fetch Drupal core, module and theme update status, you may uncomment this - * setting and set it to TRUE to allow an insecure fallback to HTTP. Note that - * doing so will open your site up to a potential man-in-the-middle attack. You - * should instead attempt to resolve the issues before enabling this option. + * If your site fails to connect to updates.drupal.org over HTTPS (either when + * fetching data on available updates, or when fetching the feed of critical + * security announcements), you may uncomment this setting and set it to TRUE to + * allow an insecure fallback to HTTP. Note that doing so will open your site up + * to a potential man-in-the-middle attack. You should instead attempt to + * resolve the issues before enabling this option. * @see https://www.drupal.org/docs/system-requirements/php-requirements#openssl * @see https://en.wikipedia.org/wiki/Man-in-the-middle_attack * @see \Drupal\update\UpdateFetcher + * @see \Drupal\system\SecurityAdvisories\SecurityAdvisoriesFetcher */ # $settings['update_fetch_with_http_fallback'] = TRUE; @@ -385,17 +354,20 @@ * Sets which headers to trust from your reverse proxy. * * Common values are: - * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL + * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR + * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST + * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT + * - \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO * - \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED * * Note the default value of * @code - * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED + * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED * @endcode * is not secure by default. The value should be set to only the specific * headers the reverse proxy uses. For example: * @code - * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL + * \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO * @endcode * This would trust the following headers: * - X_FORWARDED_FOR @@ -403,11 +375,14 @@ * - X_FORWARDED_PROTO * - X_FORWARDED_PORT * - * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL + * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR + * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST + * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT + * @see \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO * @see \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED * @see \Symfony\Component\HttpFoundation\Request::setTrustedProxies */ -# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED; +# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_HOST | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PORT | \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED; /** @@ -603,6 +578,21 @@ # ini_set('pcre.backtrack_limit', 200000); # ini_set('pcre.recursion_limit', 200000); +/** + * Add Permissions-Policy header to disable Google FLoC. + * + * By default, Drupal sends the 'Permissions-Policy: interest-cohort=()' header + * to disable Google's Federated Learning of Cohorts feature, introduced in + * Chrome 89. + * + * See https://en.wikipedia.org/wiki/Federated_Learning_of_Cohorts for more + * information about FLoC. + * + * If you don't wish to disable FLoC in Chrome, you can set this value + * to FALSE. + */ +# $settings['block_interest_cohort'] = TRUE; + /** * Configuration overrides. * diff --git a/docroot/sites/sparkbox_sandbox/services.yml b/docroot/sites/suac/services.yml similarity index 100% rename from docroot/sites/sparkbox_sandbox/services.yml rename to docroot/sites/suac/services.yml diff --git a/docroot/sites/sparkbox_sandbox/settings.php b/docroot/sites/suac/settings.php similarity index 92% rename from docroot/sites/sparkbox_sandbox/settings.php rename to docroot/sites/suac/settings.php index a525d5fd9..127324cc7 100644 --- a/docroot/sites/sparkbox_sandbox/settings.php +++ b/docroot/sites/suac/settings.php @@ -1,6 +1,6 @@ RewriteEngine on @@ -82,7 +82,7 @@ index b1ee36bf..a2fe0fa9 100644 # Set "protossl" to "s" if we were accessed via https://. This is used later # if you enable "www." stripping or enforcement, in order to ensure that # you don't bounce between http and https. -@@ -139,6 +208,8 @@ AddEncoding gzip svgz +@@ -144,6 +213,8 @@ AddEncoding gzip svgz RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$ # Allow access to test-specific PHP files: RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?\.php diff --git a/tests/codeception/functional/Install/Content/FlexiblePageCest.php b/tests/codeception/functional/Install/Content/FlexiblePageCest.php index e5c1d548c..20e636470 100644 --- a/tests/codeception/functional/Install/Content/FlexiblePageCest.php +++ b/tests/codeception/functional/Install/Content/FlexiblePageCest.php @@ -33,7 +33,7 @@ public function testHeroParagraph(FunctionalTester $I) { $I->waitForText('Add or select media'); $I->dropFileInDropzone(dirname(__FILE__, 3) . '/logo.jpg'); $I->click('Upload and Continue'); - $I->waitForText('Alternative text'); + $I->waitForText('Decorative Image'); $I->click('Save and insert', '.ui-dialog-buttonset'); $I->waitForText('The maximum number of media items have been selected'); $I->click('.paragraph-type--hs-hero-image summary'); @@ -75,7 +75,7 @@ public function testPhotoAlbum(FunctionalTester $I) { $I->waitForText('Add or select media'); $I->dropFileInDropzone(dirname(__FILE__, 3) . '/logo.jpg'); $I->click('Upload and Continue'); - $I->waitForText('Alternative text'); + $I->waitForText('Decorative Image'); $I->click('Save and insert', '.ui-dialog-buttonset'); $I->waitForElementVisible('.media-library-item__preview img'); $I->click('Save'); diff --git a/tests/codeception/functional/MediaCest.php b/tests/codeception/functional/MediaCest.php index 15f5a4688..594b8f55e 100644 --- a/tests/codeception/functional/MediaCest.php +++ b/tests/codeception/functional/MediaCest.php @@ -45,6 +45,7 @@ public function testImages(FunctionalTester $I) { $I->dropFileInDropzone(__DIR__ . '/logo.jpg'); $I->click('Upload'); $I->fillField('Name', 'Logo File'); + $I->uncheckOption('Decorative Image'); $I->fillField('Alternative text', 'Stanford Logo'); $I->click('Save'); $I->canSee('Saved 1 Media Items');