diff --git a/.docksal/commands/init-site b/.docksal/commands/init-site index 501333354..955646f79 100755 --- a/.docksal/commands/init-site +++ b/.docksal/commands/init-site @@ -7,8 +7,9 @@ fin composer install fin drush si -y --account-pass=admin fin drush config-set system.site uuid ${UUID} -y +fin drush entity:delete shortcut_set fin drush cim -y fin build-theme fin test-content -fin drush cr -fin drush cim -y +fin drush pmu shortcut +fin drush en -y shortcut diff --git a/.docksal/commands/test b/.docksal/commands/test index 77e6adfb2..3641ba018 100755 --- a/.docksal/commands/test +++ b/.docksal/commands/test @@ -16,5 +16,5 @@ fin php-cs #fin test-content #fin cypress #fin phpunit -#fin behat +fin behat #fin pa11y diff --git a/.docksal/commands/test-content b/.docksal/commands/test-content index f7dd953c3..6d669fcb4 100755 --- a/.docksal/commands/test-content +++ b/.docksal/commands/test-content @@ -6,4 +6,4 @@ fin drush update-migration-config fin drush migrate:import --group=entity_staging -fin drush config-set -y system.site page.front '/node/16' +fin drush config-set -y system.site page.front '/node/4' diff --git a/.docksal/docksal.env b/.docksal/docksal.env index 94a08a295..b516fa445 100644 --- a/.docksal/docksal.env +++ b/.docksal/docksal.env @@ -29,12 +29,11 @@ MYSQL_PORT_MAPPING='0:3306' # To override locally, copy the two lines below into .docksal/docksal-local.env and adjust as necessary XDEBUG_ENABLED=0 IS_DOCKSAL_PROJECT=true +COMPOSER_DEFAULT_VERSION=2 # Project specific variables HOSTING_PLATFORM=pantheon DOCROOT=web -REMOTE_GIT_REPO=ssh://codeserver.dev.8b475ada-bb6e-4d5b-9ee3-dfd8abff9b5e@codeserver.dev.8b475ada-bb6e-4d5b-9ee3-dfd8abff9b5e.drush.in:2222/~/repository.git -REMOTE_DEPLOY_BRANCH=master UUID=1aa3a078-6e7f-4336-b6d9-bec3b1e61561 THEME_NAME=provus # The folder that storybook will be published from. Can create an obscured URL for semi-privacy. diff --git a/.docksal/docksal.yml b/.docksal/docksal.yml index feb5a68c3..958c86b4e 100644 --- a/.docksal/docksal.yml +++ b/.docksal/docksal.yml @@ -8,13 +8,11 @@ services: volumes: - ../tests/pa11y/wcag2-config.json:/home/node/app/wcag2-config.json - solr: - image: docksal/solr:4.x - extends: - file: ${HOME}/.docksal/stacks/services.yml - service: solr + db: + image: docksal/mysql:5.7 cli: + image: docksal/cli:2.13-php7.4 environment: - IS_DOCKSAL_PROJECT - DRUPAL_HASH_SALT diff --git a/.travis.yml b/.travis.yml index ed9d2140f..17b70f1c5 100755 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ install: - env | grep REMOTE_GIT_REPO >> .docksal/docksal-local.env - env | grep GH_TOKEN >> .docksal/docksal-local.env - env | grep TRAVIS_REPO_SLUG >> .docksal/docksal-local.env - - cp .docksal/docksal-local.yml.sample .docksal/docksal-local.yml before_script: - fin init diff --git a/composer.json b/composer.json index 6e1827604..da537108e 100755 --- a/composer.json +++ b/composer.json @@ -21,15 +21,16 @@ } }, { - "type":"package", + "type": "package", "package": { - "name": "enyo/dropzone", - "version": "5.7", - "type": "drupal-library", - "dist": { - "url": "https://github.com/enyo/dropzone/archive/v5.7.0.zip", - "type": "zip" - } + "name": "library-enyo/dropzone", + "version": "5.7.0", + "type": "drupal-library", + "source": { + "url": "https://github.com/enyo/dropzone", + "type": "git", + "reference": "v5.7.0" + } } }, { @@ -58,47 +59,49 @@ "drupal/auto_entitylabel": "^3.0@beta", "drupal/calendar_link": "^1.1", "drupal/chosen": "^3.0", - "drupal/components": "^1.1", + "drupal/components": "^2.2", "drupal/config_ignore": "^2.2", "drupal/console": "^1.0.2", - "drupal/core": "^8.9.15", - "drupal/core-composer-scaffold": "^8.9", - "drupal/devel": "^2.1", + "drupal/core": "^9.1.5", + "drupal/core-composer-scaffold": "^9.1", + "drupal/devel": "^4.1", "drupal/dropzonejs": "^2.1", - "drupal/emulsify_twig": "^1.0", + "drupal/emulsify_twig": "^2.0", "drupal/entity": "~1.0-rc3", "drupal/entity_embed": "^1.0", "drupal/entity_staging": "^1.x-dev@dev", - "drupal/environment_indicator": "^3.7", + "drupal/environment_indicator": "^4.0", "drupal/extlink": "^1.3", "drupal/facets": "^1.4", + "drupal/field_group": "^3.1", "drupal/focal_point": "^1.4", - "drupal/fullcalendar_view": "^2.6", + "drupal/fullcalendar_view": "^2.8", "drupal/geocoder": "^3.6", "drupal/geofield": "^1.13", "drupal/geofield_map": "^2.63", "drupal/google_analytics": "^3.0", "drupal/inline_entity_form": "^1.0", + "drupal/layout_builder_at": "^2.11", "drupal/layout_builder_browser": "^1.1", "drupal/layout_builder_modal": "^1.0", "drupal/layout_builder_restrictions": "^2.5", "drupal/layout_builder_styles": "^1.0@beta", "drupal/layout_library": "^1.0", - "drupal/linkit": "^4.3", + "drupal/layout_paragraphs": "^1.0@beta", + "drupal/linkit": "^6.0@beta", "drupal/media_bulk_upload": "^1.0@alpha", - "drupal/memcache": "2.0", + "drupal/memcache": "^2.3", "drupal/menu_block": "1.x-dev", "drupal/menu_breadcrumb": "^1.12", - "drupal/migrate_directory": "^1.0", - "drupal/migrate_plus": "^4.2", - "drupal/migrate_tools": "^4.5", + "drupal/migrate_plus": "^5.1", "drupal/office_hours": "^1.2", "drupal/pathauto": "^1.6", "drupal/pdfpreview": "^1.0", "drupal/redirect": "^1.6", "drupal/search_api": "^1.16", - "drupal/search_api_glossary": "^4.0", + "drupal/search_api_glossary": "4.x-dev@dev", "drupal/search_api_solr": "^1.4", + "drupal/section_library": "^1.0@beta", "drupal/simple_instagram_feed": "^3.8", "drupal/smart_trim": "^1.2", "drupal/socialfeed": "^1.0", @@ -107,22 +110,19 @@ "drupal/view_unpublished": "^1.0@RC", "drupal/viewsreference": "^1.4", "drupal/vocabulary_condition": "^1.0", - "drupal/webform": "^5.9", - "drush/drush": "^9.0.0", - "enyo/dropzone": "5.7", + "drupal/webform": "^6.0", + "drush/drush": "^10.4", "geocoder-php/google-maps-provider": "^4.4", "harvesthq/chosen": "^1.8", "jsanahuja/jqueryinstagramfeed": "dev-master", "kporras07/composer-symlinks": "dev-master", "oomphinc/composer-installers-extender": "^2.0", - "symfony/event-dispatcher": "4.3.4 as 3.4.99", "vlucas/phpdotenv": "^2.4", "webflo/drupal-finder": "^1.0.0", "webmozart/path-util": "^2.3", "zaporylie/composer-drupal-optimizations": "^1.0" }, "require-dev": { - "behat/behat": "3.3", "dmore/behat-chrome-extension": "^1.3", "drupal/drupal-extension": "^4.0", "mglaman/drupal-check": "^1.1" @@ -196,8 +196,8 @@ }, "patches": { "drupal/core": { - "Block visibility has wrong logic [923934]": "https://www.drupal.org/files/issues/2020-02-11/block_visibility_has_wrong_logic-923934-14-reroll-32-drupal-8.8.2.patch", - "Temp workaround for entity_staging to choose block uuid over revision id [#2942975]": "src/patches/2942975-drupal_8_9_x-137.patch" + "Temp workaround for entity_staging to choose block uuid over revision id [#2942975]": "src/patches/2942975_145-d9-2-provus.patch", + "Block visibility has wrong logic [923934]": "https://www.drupal.org/files/issues/2021-06-29/923934-44.patch" }, "drupal/config_ignore": { "Support config ignore export [#2942975]": "https://www.drupal.org/files/issues/2020-01-11/support-for-export-2857247-44.patch" @@ -205,9 +205,6 @@ "drupal/entity_staging": { "Stream wrapper bug [#3216474]": "https://git.drupalcode.org/project/entity_staging/-/merge_requests/3.diff", "Unsupported operand types bug [#3145936]": "https://www.drupal.org/files/issues/2020-06-04/entity-staging-unsuported-operand-types-3145936-2.patch" - }, - "drupal/devel": { - "Missing Drush commands [3106091]": "https://www.drupal.org/files/issues/2020-01-29/drush-service-rename-3106091-2.patch" } } } diff --git a/composer.lock b/composer.lock index 4cb0dd0d3..081ff81c5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a08b354405eff2e4e5462f57b5d35faa", + "content-hash": "9352afc0d46581758aceefb77c087dbf", "packages": [ { "name": "abraham/twitteroauth", @@ -193,16 +193,16 @@ }, { "name": "chi-teck/drupal-code-generator", - "version": "1.32.1", + "version": "1.33.1", "source": { "type": "git", "url": "https://github.com/Chi-teck/drupal-code-generator.git", - "reference": "8abba7131ed4c89c1e8fc6dca0d05a4b6d0b2749" + "reference": "5f814e980b6f9cf1ca8c74cc9385c3d81090d388" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/8abba7131ed4c89c1e8fc6dca0d05a4b6d0b2749", - "reference": "8abba7131ed4c89c1e8fc6dca0d05a4b6d0b2749", + "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/5f814e980b6f9cf1ca8c74cc9385c3d81090d388", + "reference": "5f814e980b6f9cf1ca8c74cc9385c3d81090d388", "shasum": "" }, "require": { @@ -212,6 +212,9 @@ "symfony/filesystem": "^2.7 || ^3.4 || ^4.0", "twig/twig": "^1.41 || ^2.12" }, + "conflict": { + "drush/drush": "< 10.3.2" + }, "bin": [ "bin/dcg" ], @@ -236,9 +239,9 @@ "description": "Drupal code generator", "support": { "issues": "https://github.com/Chi-teck/drupal-code-generator/issues", - "source": "https://github.com/Chi-teck/drupal-code-generator/tree/1.32.1" + "source": "https://github.com/Chi-teck/drupal-code-generator/tree/1.33.1" }, - "time": "2020-07-15T06:08:04+00:00" + "time": "2020-12-05T05:59:11+00:00" }, { "name": "clue/stream-filter", @@ -308,16 +311,16 @@ }, { "name": "commerceguys/addressing", - "version": "v1.2.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/commerceguys/addressing.git", - "reference": "00c263fa945e7f78524bbb6b99d331f3b493be2a" + "reference": "311040bd78ea2ea82105dd1f17205c449ac8de47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/commerceguys/addressing/zipball/00c263fa945e7f78524bbb6b99d331f3b493be2a", - "reference": "00c263fa945e7f78524bbb6b99d331f3b493be2a", + "url": "https://api.github.com/repos/commerceguys/addressing/zipball/311040bd78ea2ea82105dd1f17205c449ac8de47", + "reference": "311040bd78ea2ea82105dd1f17205c449ac8de47", "shasum": "" }, "require": { @@ -365,22 +368,22 @@ ], "support": { "issues": "https://github.com/commerceguys/addressing/issues", - "source": "https://github.com/commerceguys/addressing/tree/v1.2.0" + "source": "https://github.com/commerceguys/addressing/tree/v1.2.1" }, - "time": "2021-03-14T20:04:10+00:00" + "time": "2021-05-17T08:05:21+00:00" }, { "name": "composer/ca-bundle", - "version": "1.2.9", + "version": "1.2.10", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", "shasum": "" }, "require": { @@ -427,7 +430,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.2.9" + "source": "https://github.com/composer/ca-bundle/tree/1.2.10" }, "funding": [ { @@ -443,7 +446,7 @@ "type": "tidelift" } ], - "time": "2021-01-12T12:10:35+00:00" + "time": "2021-06-07T13:58:28+00:00" }, { "name": "composer/installers", @@ -597,28 +600,29 @@ }, { "name": "composer/semver", - "version": "1.7.2", + "version": "3.2.5", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a" + "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/647490bbcaf7fc4891c58f47b825eb99d19c377a", - "reference": "647490bbcaf7fc4891c58f47b825eb99d19c377a", + "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", + "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.5 || ^5.0.5" + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -657,7 +661,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/1.7.2" + "source": "https://github.com/composer/semver/tree/3.2.5" }, "funding": [ { @@ -673,94 +677,39 @@ "type": "tidelift" } ], - "time": "2020-12-03T15:47:16+00:00" + "time": "2021-05-24T12:41:47+00:00" }, { "name": "consolidation/annotated-command", - "version": "2.12.1", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "0ee361762df2274f360c085e3239784a53f850b5" + "reference": "ec297e05cb86557671c2d6cbb1bebba6c7ae2c60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/0ee361762df2274f360c085e3239784a53f850b5", - "reference": "0ee361762df2274f360c085e3239784a53f850b5", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/ec297e05cb86557671c2d6cbb1bebba6c7ae2c60", + "reference": "ec297e05cb86557671c2d6cbb1bebba6c7ae2c60", "shasum": "" }, "require": { - "consolidation/output-formatters": "^3.5.1", - "php": ">=5.4.5", - "psr/log": "^1", - "symfony/console": "^2.8|^3|^4", - "symfony/event-dispatcher": "^2.5|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5" + "consolidation/output-formatters": "^4.1.1", + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/console": "^4.4.8|~5.1.0", + "symfony/event-dispatcher": "^4.4.8|^5", + "symfony/finder": "^4.4.8|^5" }, "require-dev": { - "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2.7" + "phpunit/phpunit": ">=7.5.20", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" }, "type": "library", "extra": { - "scenarios": { - "finder5": { - "require": { - "symfony/finder": "^5" - }, - "config": { - "platform": { - "php": "7.2.5" - } - } - }, - "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } - }, - "phpunit4": { - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } - } - }, "branch-alias": { - "dev-master": "2.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -781,9 +730,9 @@ "description": "Initialize Symfony Console commands from annotated command class methods.", "support": { "issues": "https://github.com/consolidation/annotated-command/issues", - "source": "https://github.com/consolidation/annotated-command/tree/2.12.1" + "source": "https://github.com/consolidation/annotated-command/tree/4.2.4" }, - "time": "2020-10-11T04:30:03+00:00" + "time": "2020-12-10T16:56:39+00:00" }, { "name": "consolidation/config", @@ -942,74 +891,32 @@ }, { "name": "consolidation/log", - "version": "1.1.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/consolidation/log.git", - "reference": "b2e887325ee90abc96b0a8b7b474cd9e7c896e3a" + "reference": "82a2aaaa621a7b976e50a745a8d249d5085ee2b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/b2e887325ee90abc96b0a8b7b474cd9e7c896e3a", - "reference": "b2e887325ee90abc96b0a8b7b474cd9e7c896e3a", + "url": "https://api.github.com/repos/consolidation/log/zipball/82a2aaaa621a7b976e50a745a8d249d5085ee2b1", + "reference": "82a2aaaa621a7b976e50a745a8d249d5085ee2b1", "shasum": "" }, "require": { - "php": ">=5.4.5", + "php": ">=7.1.3", "psr/log": "^1.0", - "symfony/console": "^2.8|^3|^4" + "symfony/console": "^4|^5" }, "require-dev": { - "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2" + "phpunit/phpunit": ">=7.5.20", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" }, "type": "library", "extra": { - "scenarios": { - "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } - }, - "phpunit4": { - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - } - } - }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -1030,101 +937,45 @@ "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", "support": { "issues": "https://github.com/consolidation/log/issues", - "source": "https://github.com/consolidation/log/tree/master" + "source": "https://github.com/consolidation/log/tree/2.0.2" }, - "time": "2019-01-01T17:30:51+00:00" + "time": "2020-12-10T16:26:23+00:00" }, { "name": "consolidation/output-formatters", - "version": "3.5.1", + "version": "4.1.2", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "0d38f13051ef05c223a2bb8e962d668e24785196" + "reference": "5821e6ae076bf690058a4de6c94dce97398a69c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/0d38f13051ef05c223a2bb8e962d668e24785196", - "reference": "0d38f13051ef05c223a2bb8e962d668e24785196", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/5821e6ae076bf690058a4de6c94dce97398a69c9", + "reference": "5821e6ae076bf690058a4de6c94dce97398a69c9", "shasum": "" }, "require": { "dflydev/dot-access-data": "^1.1.0", - "php": ">=5.4.0", - "symfony/console": "^2.8|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5" + "php": ">=7.1.3", + "symfony/console": "^4|^5", + "symfony/finder": "^4|^5" }, "require-dev": { - "g1a/composer-test-scenarios": "^3", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^5.7.27", - "squizlabs/php_codesniffer": "^2.7", - "symfony/var-dumper": "^2.8|^3|^4", - "victorjonsson/markdowndocs": "^1.3" + "php-coveralls/php-coveralls": "^2.4.2", + "phpunit/phpunit": ">=7", + "squizlabs/php_codesniffer": "^3", + "symfony/var-dumper": "^4", + "symfony/yaml": "^4", + "yoast/phpunit-polyfills": "^0.2.0" }, "suggest": { "symfony/var-dumper": "For using the var_dump formatter" }, "type": "library", "extra": { - "scenarios": { - "finder5": { - "require": { - "symfony/finder": "^5" - }, - "config": { - "platform": { - "php": "7.2.5" - } - } - }, - "symfony4": { - "require": { - "symfony/console": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^6" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony3": { - "require": { - "symfony/console": "^3.4", - "symfony/finder": "^3.4", - "symfony/var-dumper": "^3.4" - }, - "config": { - "platform": { - "php": "5.6.32" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.4.8" - } - }, - "scenario-options": { - "create-lockfile": "false" - } - } - }, "branch-alias": { - "dev-master": "3.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -1145,54 +996,55 @@ "description": "Format text by applying transformations provided by plug-in formatters.", "support": { "issues": "https://github.com/consolidation/output-formatters/issues", - "source": "https://github.com/consolidation/output-formatters/tree/3.5.1" + "source": "https://github.com/consolidation/output-formatters/tree/4.1.2" }, - "time": "2020-10-11T04:15:32+00:00" + "time": "2020-12-12T19:04:59+00:00" }, { "name": "consolidation/robo", - "version": "1.4.13", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/consolidation/Robo.git", - "reference": "fd28dcca1b935950ece26e63541fbdeeb09f7343" + "reference": "b365df174d9cfb0f5814e4f3275a1c558b17bc4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/Robo/zipball/fd28dcca1b935950ece26e63541fbdeeb09f7343", - "reference": "fd28dcca1b935950ece26e63541fbdeeb09f7343", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/b365df174d9cfb0f5814e4f3275a1c558b17bc4c", + "reference": "b365df174d9cfb0f5814e4f3275a1c558b17bc4c", "shasum": "" }, "require": { - "consolidation/annotated-command": "^2.12.1|^4.1", - "consolidation/config": "^1.2.1", - "consolidation/log": "^1.1.1|^2", - "consolidation/output-formatters": "^3.5.1|^4.1", - "consolidation/self-update": "^1.1.5", - "grasmash/yaml-expander": "^1.4", + "consolidation/annotated-command": "^4.2.1", + "consolidation/config": "^1.2.1|^2", + "consolidation/log": "^1.1.1|^2.0.1", + "consolidation/output-formatters": "^4.1.1", + "consolidation/self-update": "^1.2", "league/container": "^2.4.1", - "php": ">=5.5.0", - "symfony/console": "^2.8|^3|^4", - "symfony/event-dispatcher": "^2.5|^3|^4", - "symfony/filesystem": "^2.5|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5", - "symfony/process": "^2.5|^3|^4" + "php": ">=7.1.3", + "symfony/console": "^4.4.11|^5", + "symfony/event-dispatcher": "^4.4.11|^5", + "symfony/filesystem": "^4.4.11|^5", + "symfony/finder": "^4.4.11|^5", + "symfony/process": "^4.4.11|^5", + "symfony/yaml": "^4.0 || ^5.0" }, - "replace": { - "codegyre/robo": "< 1.0" + "conflict": { + "codegyre/robo": "*" }, "require-dev": { "g1a/composer-test-scenarios": "^3", "natxet/cssmin": "3.0.4", "patchwork/jsqueeze": "^2", "pear/archive_tar": "^1.4.4", - "php-coveralls/php-coveralls": "^1", - "phpunit/phpunit": "^5.7.27", + "php-coveralls/php-coveralls": "^2.2", + "phpdocumentor/reflection-docblock": "^4.3.2", + "phpunit/phpunit": "^6.5.14", "squizlabs/php_codesniffer": "^3" }, "suggest": { "henrikbjorn/lurker": "For monitoring filesystem changes in taskWatch", - "natxet/CssMin": "For minifying CSS files in taskMinify", + "natxet/cssmin": "For minifying CSS files in taskMinify", "patchwork/jsqueeze": "For minifying JS files in taskMinify", "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively." }, @@ -1202,48 +1054,29 @@ "type": "library", "extra": { "scenarios": { - "finder5": { - "require": { - "symfony/finder": "^5" - }, - "config": { - "platform": { - "php": "7.2.5" - } - } - }, "symfony4": { "require": { - "symfony/console": "^4" - }, - "config": { - "platform": { - "php": "7.1.3" - } - } - }, - "symfony2": { - "require": { - "symfony/console": "^2.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36" + "symfony/console": "^4.4.11", + "symfony/event-dispatcher": "^4.4.11", + "symfony/filesystem": "^4.4.11", + "symfony/finder": "^4.4.11", + "symfony/process": "^4.4.11", + "phpunit/phpunit": "^6", + "nikic/php-parser": "^2" }, "remove": [ - "php-coveralls/php-coveralls" + "codeception/phpunit-wrapper" ], "config": { "platform": { - "php": "5.5.9" + "php": "7.1.3" } - }, - "scenario-options": { - "create-lockfile": "false" } } }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "2.x-dev", + "dev-main": "2.x-dev" } }, "autoload": { @@ -1264,9 +1097,9 @@ "description": "Modern task runner", "support": { "issues": "https://github.com/consolidation/Robo/issues", - "source": "https://github.com/consolidation/Robo/tree/1.4.13" + "source": "https://github.com/consolidation/Robo/tree/2.2.2" }, - "time": "2020-10-11T04:51:34+00:00" + "time": "2020-12-18T22:09:18+00:00" }, { "name": "consolidation/self-update", @@ -1382,52 +1215,34 @@ }, { "name": "consolidation/site-process", - "version": "2.1.0", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/consolidation/site-process.git", - "reference": "f3211fa4c60671c6f068184221f06f932556e443" + "reference": "ef57711d7049f7606ce936ded16ad93f1ad7f02c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-process/zipball/f3211fa4c60671c6f068184221f06f932556e443", - "reference": "f3211fa4c60671c6f068184221f06f932556e443", + "url": "https://api.github.com/repos/consolidation/site-process/zipball/ef57711d7049f7606ce936ded16ad93f1ad7f02c", + "reference": "ef57711d7049f7606ce936ded16ad93f1ad7f02c", "shasum": "" }, "require": { - "consolidation/config": "^1.2.1", + "consolidation/config": "^1.2.1|^2", "consolidation/site-alias": "^3", - "php": ">=5.6.0", - "symfony/process": "^3.4" + "php": ">=7.1.3", + "symfony/console": "^2.8.52|^3|^4.4|^5", + "symfony/process": "^4.3.4" }, "require-dev": { - "consolidation/robo": "^1.3", - "g1a/composer-test-scenarios": "^3", - "knplabs/github-api": "^2.7", - "php-coveralls/php-coveralls": "^1", - "php-http/guzzle6-adapter": "^1.1", - "phpunit/phpunit": "^6", - "squizlabs/php_codesniffer": "^2.8" + "phpunit/phpunit": "^7.5.20|^8.5.14", + "squizlabs/php_codesniffer": "^3", + "yoast/phpunit-polyfills": "^0.2.0" }, "type": "library", "extra": { - "scenarios": { - "phpunit5": { - "require-dev": { - "phpunit/phpunit": "^5.7.27" - }, - "remove": [ - "php-coveralls/php-coveralls" - ], - "config": { - "platform": { - "php": "5.6.33" - } - } - } - }, "branch-alias": { - "dev-master": "0.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -1452,9 +1267,9 @@ "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", "support": { "issues": "https://github.com/consolidation/site-process/issues", - "source": "https://github.com/consolidation/site-process/tree/2.1.0" + "source": "https://github.com/consolidation/site-process/tree/4.1.0" }, - "time": "2019-09-10T17:56:24+00:00" + "time": "2021-02-21T02:53:33+00:00" }, { "name": "container-interop/container-interop", @@ -1494,16 +1309,16 @@ }, { "name": "cweagans/composer-patches", - "version": "1.7.0", + "version": "1.7.1", "source": { "type": "git", "url": "https://github.com/cweagans/composer-patches.git", - "reference": "ae02121445ad75f4eaff800cc532b5e6233e2ddf" + "reference": "9888dcc74993c030b75f3dd548bb5e20cdbd740c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/ae02121445ad75f4eaff800cc532b5e6233e2ddf", - "reference": "ae02121445ad75f4eaff800cc532b5e6233e2ddf", + "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/9888dcc74993c030b75f3dd548bb5e20cdbd740c", + "reference": "9888dcc74993c030b75f3dd548bb5e20cdbd740c", "shasum": "" }, "require": { @@ -1536,9 +1351,9 @@ "description": "Provides a way to patch Composer packages.", "support": { "issues": "https://github.com/cweagans/composer-patches/issues", - "source": "https://github.com/cweagans/composer-patches/tree/1.7.0" + "source": "https://github.com/cweagans/composer-patches/tree/1.7.1" }, - "time": "2020-09-30T17:56:20+00:00" + "time": "2021-06-08T15:12:46+00:00" }, { "name": "davedevelopment/stiphle", @@ -1781,16 +1596,16 @@ }, { "name": "doctrine/annotations", - "version": "1.13.1", + "version": "1.13.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f" + "reference": "5b668aef16090008790395c02c893b1ba13f7e08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", - "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08", "shasum": "" }, "require": { @@ -1847,30 +1662,29 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.1" + "source": "https://github.com/doctrine/annotations/tree/1.13.2" }, - "time": "2021-05-16T18:07:53+00:00" + "time": "2021-08-05T19:00:23+00:00" }, { "name": "doctrine/cache", - "version": "1.11.3", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "3bb5588cec00a0268829cc4a518490df6741af9d" + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/3bb5588cec00a0268829cc4a518490df6741af9d", - "reference": "3bb5588cec00a0268829cc4a518490df6741af9d", + "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", "shasum": "" }, "require": { "php": "~7.1 || ^8.0" }, "conflict": { - "doctrine/common": ">2.2,<2.4", - "psr/cache": ">=3" + "doctrine/common": ">2.2,<2.4" }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", @@ -1879,8 +1693,9 @@ "mongodb/mongodb": "^1.1", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0", - "symfony/cache": "^4.4 || ^5.2" + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", + "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" }, "suggest": { "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" @@ -1932,7 +1747,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.11.3" + "source": "https://github.com/doctrine/cache/tree/1.12.1" }, "funding": [ { @@ -1948,30 +1763,30 @@ "type": "tidelift" } ], - "time": "2021-05-25T09:01:55+00:00" + "time": "2021-07-17T14:39:21+00:00" }, { "name": "doctrine/collections", - "version": "1.6.7", + "version": "1.6.8", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", "shasum": "" }, "require": { "php": "^7.1.3 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.2.1" }, "type": "library", "autoload": { @@ -2015,9 +1830,9 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.7" + "source": "https://github.com/doctrine/collections/tree/1.6.8" }, - "time": "2020-07-27T17:53:49+00:00" + "time": "2021-08-10T18:51:53+00:00" }, { "name": "doctrine/common", @@ -2645,17 +2460,17 @@ }, { "name": "drupal/admin_toolbar", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/admin_toolbar.git", - "reference": "3.0.0" + "reference": "3.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.0.0.zip", - "reference": "3.0.0", - "shasum": "204f7a0e8b62a8a54256142cf38ca139739fb65c" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.0.2.zip", + "reference": "3.0.2", + "shasum": "a3b7a8030695d0c1d49ec57786321e2dd142184a" }, "require": { "drupal/core": "^8.8.0 || ^9.0" @@ -2666,8 +2481,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0", - "datestamp": "1611311186", + "version": "3.0.2", + "datestamp": "1629907124", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2726,7 +2541,7 @@ }, { "name": "drupal/admin_toolbar_tools", - "version": "2.4.0", + "version": "2.5.0", "require": { "drupal/admin_toolbar": "*", "drupal/core": "^8.8.0 || ^9.0" @@ -2734,8 +2549,8 @@ "type": "metapackage", "extra": { "drupal": { - "version": "8.x-2.4", - "datestamp": "1601999178", + "version": "8.x-2.5", + "datestamp": "1629907119", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3102,26 +2917,26 @@ }, { "name": "drupal/components", - "version": "1.1.0", + "version": "2.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/components.git", - "reference": "8.x-1.1" + "reference": "8.x-2.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-8.x-1.1.zip", - "reference": "8.x-1.1", - "shasum": "72af8ff1ca842556ee4b95335595c24703acdb75" + "url": "https://ftp.drupal.org/files/projects/components-8.x-2.4.zip", + "reference": "8.x-2.4", + "shasum": "9b083c2f845ff2e1a1632efcf24f88cecd7479cc" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "^8.7.7 || ^9" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.1", - "datestamp": "1556870881", + "version": "8.x-2.4", + "datestamp": "1618861606", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3135,35 +2950,39 @@ "authors": [ { "name": "JohnAlbin", - "homepage": "https://www.drupal.org/user/32095" + "homepage": "https://www.drupal.org/user/32095", + "email": "virtually.johnalbin@gmail.com" }, { "name": "RobLoach", "homepage": "https://www.drupal.org/user/61114" } ], - "description": "Registers “component libraries” defined in modules and themes with the Twig system", - "homepage": "https://www.drupal.org/project/components", + "description": "Registers folders of components defined by your theme or module as Twig namespaces", + "homepage": "https://drupal.org/project/components", "support": { "source": "https://git.drupalcode.org/project/components" } }, { "name": "drupal/config_filter", - "version": "1.8.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_filter.git", - "reference": "8.x-1.8" + "reference": "8.x-2.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-1.8.zip", - "reference": "8.x-1.8", - "shasum": "5def5f97e79d6f5af6bb7007f012443475c90bfe" + "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-2.2.zip", + "reference": "8.x-2.2", + "shasum": "dc6bc8107255066507cfc1d6766e664c3673cda0" }, "require": { - "drupal/core": "^8 || ^9" + "drupal/core": "^8.8 || ^9" + }, + "conflict": { + "drush/drush": "<10" }, "suggest": { "drupal/config_split": "Split site configuration for different environments." @@ -3171,8 +2990,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.8", - "datestamp": "1603870062", + "version": "8.x-2.2", + "datestamp": "1601934694", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3559,24 +3378,23 @@ }, { "name": "drupal/core", - "version": "8.9.16", + "version": "9.2.4", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "498effa27ae5111f53f04fbe80fd05369a88c53d" + "reference": "c723626030c728ec2f9f6526e6cd5f029c9e628c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/498effa27ae5111f53f04fbe80fd05369a88c53d", - "reference": "498effa27ae5111f53f04fbe80fd05369a88c53d", + "url": "https://api.github.com/repos/drupal/core/zipball/c723626030c728ec2f9f6526e6cd5f029c9e628c", + "reference": "c723626030c728ec2f9f6526e6cd5f029c9e628c", "shasum": "" }, "require": { "asm89/stack-cors": "^1.1", - "composer/semver": "^1.0", - "doctrine/annotations": "^1.4", - "doctrine/common": "^2.7", - "easyrdf/easyrdf": "^0.9", + "composer/semver": "^3.0", + "doctrine/annotations": "^1.12", + "doctrine/reflection": "^1.1", "egulias/email-validator": "^2.0", "ext-date": "*", "ext-dom": "*", @@ -3591,34 +3409,33 @@ "ext-spl": "*", "ext-tokenizer": "*", "ext-xml": "*", - "guzzlehttp/guzzle": "^6.3", - "laminas/laminas-diactoros": "^1.8", + "guzzlehttp/guzzle": "^6.5.2", + "laminas/laminas-diactoros": "^2.1", "laminas/laminas-feed": "^2.12", "masterminds/html5": "^2.1", - "pear/archive_tar": "^1.4.12", - "php": "^7.0.8", + "pear/archive_tar": "^1.4.14", + "php": ">=7.3.0", "psr/log": "^1.0", "stack/builder": "^1.0", - "symfony-cmf/routing": "^1.4", - "symfony/class-loader": "~3.4.0", - "symfony/console": "~3.4.0", - "symfony/dependency-injection": "~3.4.26", - "symfony/event-dispatcher": "~3.4.0", - "symfony/http-foundation": "~3.4.35", - "symfony/http-kernel": "~3.4.14", + "symfony-cmf/routing": "^2.1", + "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.3.0", "symfony/polyfill-iconv": "^1.0", - "symfony/process": "~3.4.0", - "symfony/psr-http-message-bridge": "^1.1.2", - "symfony/routing": "~3.4.0", - "symfony/serializer": "~3.4.0", - "symfony/translation": "~3.4.0", - "symfony/validator": "~3.4.0", - "symfony/yaml": "~3.4.5", - "twig/twig": "^1.38.2", + "symfony/process": "^4.4", + "symfony/psr-http-message-bridge": "^2.0", + "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", "typo3/phar-stream-wrapper": "^3.1.3" }, "conflict": { - "drupal/pathauto": "<1.6", "drush/drush": "<8.1.10" }, "replace": { @@ -3631,7 +3448,6 @@ "drupal/big_pipe": "self.version", "drupal/block": "self.version", "drupal/block_content": "self.version", - "drupal/block_place": "self.version", "drupal/book": "self.version", "drupal/breakpoint": "self.version", "drupal/ckeditor": "self.version", @@ -3657,6 +3473,7 @@ "drupal/core-file-cache": "self.version", "drupal/core-file-security": "self.version", "drupal/core-filesystem": "self.version", + "drupal/core-front-matter": "self.version", "drupal/core-gettext": "self.version", "drupal/core-graph": "self.version", "drupal/core-http-foundation": "self.version", @@ -3703,6 +3520,7 @@ "drupal/migrate_drupal_ui": "self.version", "drupal/minimal": "self.version", "drupal/node": "self.version", + "drupal/olivero": "self.version", "drupal/options": "self.version", "drupal/page_cache": "self.version", "drupal/path": "self.version", @@ -3716,7 +3534,6 @@ "drupal/settings_tray": "self.version", "drupal/seven": "self.version", "drupal/shortcut": "self.version", - "drupal/simpletest": "self.version", "drupal/standard": "self.version", "drupal/stark": "self.version", "drupal/statistics": "self.version", @@ -3749,7 +3566,7 @@ "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", "[web-root]/index.php": "assets/scaffold/files/index.php", "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", - "[web-root]/README.txt": "assets/scaffold/files/drupal.README.txt", + "[web-root]/README.md": "assets/scaffold/files/drupal.README.md", "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", "[web-root]/update.php": "assets/scaffold/files/update.php", "[web-root]/web.config": "assets/scaffold/files/web.config", @@ -3773,12 +3590,34 @@ }, "classmap": [ "lib/Drupal.php", + "lib/Drupal/Component/DependencyInjection/Container.php", + "lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php", + "lib/Drupal/Component/FileCache/FileCacheFactory.php", "lib/Drupal/Component/Utility/Timer.php", "lib/Drupal/Component/Utility/Unicode.php", + "lib/Drupal/Core/Cache/Cache.php", + "lib/Drupal/Core/Cache/CacheBackendInterface.php", + "lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php", + "lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php", + "lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php", + "lib/Drupal/Core/Cache/DatabaseBackend.php", + "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", "lib/Drupal/Core/DrupalKernel.php", "lib/Drupal/Core/DrupalKernelInterface.php", + "lib/Drupal/Core/Http/InputBag.php", + "lib/Drupal/Core/Installer/InstallerRedirectTrait.php", "lib/Drupal/Core/Site/Settings.php" + ], + "files": [ + "includes/bootstrap.inc" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3787,27 +3626,27 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/8.9.16" + "source": "https://github.com/drupal/core/tree/9.2.4" }, - "time": "2021-05-25T09:17:58+00:00" + "time": "2021-08-12T17:48:08+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "8.9.15", + "version": "9.2.4", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "c902d07cb49ef73777e2b33a39e54c2861a8c81d" + "reference": "e146f2d0bab60c798c7cc91eae79f25c43a96899" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/c902d07cb49ef73777e2b33a39e54c2861a8c81d", - "reference": "c902d07cb49ef73777e2b33a39e54c2861a8c81d", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/e146f2d0bab60c798c7cc91eae79f25c43a96899", + "reference": "e146f2d0bab60c798c7cc91eae79f25c43a96899", "shasum": "" }, "require": { "composer-plugin-api": "^1 || ^2", - "php": ">=7.0.8" + "php": ">=7.3.0" }, "conflict": { "drupal-composer/drupal-scaffold": "*" @@ -3837,9 +3676,9 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/8.9.5" + "source": "https://github.com/drupal/core-composer-scaffold/tree/9.2.4" }, - "time": "2020-08-07T22:30:30+00:00" + "time": "2021-07-10T22:39:33+00:00" }, { "name": "drupal/crop", @@ -3900,17 +3739,17 @@ }, { "name": "drupal/ctools", - "version": "3.5.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/ctools.git", - "reference": "8.x-3.5" + "reference": "8.x-3.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ctools-8.x-3.5.zip", - "reference": "8.x-3.5", - "shasum": "0113cd1e787ff3bde088c836c2d79d14136b0013" + "url": "https://ftp.drupal.org/files/projects/ctools-8.x-3.7.zip", + "reference": "8.x-3.7", + "shasum": "b11c0981a1d2ab3cc9e8e614a337d8e2a2a70c0e" }, "require": { "drupal/core": "^8.8 || ^9" @@ -3918,8 +3757,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.5", - "datestamp": "1618592931", + "version": "8.x-3.7", + "datestamp": "1623860918", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3993,27 +3832,37 @@ }, { "name": "drupal/devel", - "version": "2.1.0", + "version": "4.1.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/devel.git", - "reference": "8.x-2.1" + "reference": "4.1.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/devel-8.x-2.1.zip", - "reference": "8.x-2.1", - "shasum": "8f735892922aa5f228e681e645e5f02b1c008f14" + "url": "https://ftp.drupal.org/files/projects/devel-4.1.1.zip", + "reference": "4.1.1", + "shasum": "88e5d49dda26a3136291ecd97bc6c8e897b24198" }, "require": { - "drupal/core": "~8.0", - "symfony/var-dumper": "~2.7|^3|^4" + "doctrine/common": "^2.7", + "drupal/core": "^8.8 || ^9", + "symfony/var-dumper": "^4 || ^5" }, - "type": "drupal-module", + "conflict": { + "kint-php/kint": "<3" + }, + "require-dev": { + "drush/drush": "^10" + }, + "suggest": { + "kint-php/kint": "Kint provides an informative display of arrays/objects. Useful for debugging and developing." + }, + "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.1", - "datestamp": "1556799496", + "version": "4.1.1", + "datestamp": "1609419527", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4021,48 +3870,30 @@ }, "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Moshe Weitzman", - "homepage": "https://github.com/weitzman", - "email": "weitzman@tejasa.com", - "role": "Maintainer" - }, - { - "name": "Hans Salvisberg", - "homepage": "https://www.drupal.org/u/salvis", - "email": "drupal@salvisberg.com", - "role": "Maintainer" - }, - { - "name": "Luca Lusso", - "homepage": "https://www.drupal.org/u/lussoluca", - "role": "Maintainer" - }, - { - "name": "Marco (willzyx)", - "homepage": "https://www.drupal.org/u/willzyx", - "role": "Maintainer" + "name": "drupalspoons", + "homepage": "https://www.drupal.org/user/3647684" }, { - "name": "See contributors", - "homepage": "https://www.drupal.org/node/3236/committers" + "name": "moshe weitzman", + "homepage": "https://www.drupal.org/user/23" } ], "description": "Various blocks, pages, and functions for developers.", - "homepage": "http://drupal.org/project/devel", + "homepage": "https://www.drupal.org/project/devel", "support": { - "source": "http://cgit.drupalcode.org/devel", - "issues": "http://drupal.org/project/devel", - "irc": "irc://irc.freenode.org/drupal-contribute" + "source": "https://gitlab.com/drupalspoons/devel", + "issues": "https://gitlab.com/drupalspoons/devel/-/issues", + "slack": "https://drupal.slack.com/archives/C012WAW1MH6" } }, { @@ -4220,26 +4051,26 @@ }, { "name": "drupal/emulsify_twig", - "version": "1.0.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/emulsify_twig.git", - "reference": "8.x-1.0" + "reference": "2.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/emulsify_twig-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "f31caba7ee80fb85203552b7d3abb7d37e5c5ca3" + "url": "https://ftp.drupal.org/files/projects/emulsify_twig-2.0.0.zip", + "reference": "2.0.0", + "shasum": "22eec73344aadd0004f58b39d3b8774a7d1dcbd8" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "^8 || ^9" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.0", - "datestamp": "1573841584", + "version": "2.0.0", + "datestamp": "1591387856", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4424,6 +4255,65 @@ "irc": "irc://irc.freenode.org/drupal-media" } }, + { + "name": "drupal/entity_reference_revisions", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/entity_reference_revisions.git", + "reference": "8.x-1.9" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.9.zip", + "reference": "8.x-1.9", + "shasum": "e1c51bdea495eb3b458130d6f0a00c347f5637df" + }, + "require": { + "drupal/core": "^8.7.7 || ^9" + }, + "require-dev": { + "drupal/diff": "1.x-dev" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.9", + "datestamp": "1614805871", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Berdir", + "homepage": "https://www.drupal.org/user/214652" + }, + { + "name": "Frans", + "homepage": "https://www.drupal.org/user/514222" + }, + { + "name": "jeroen.b", + "homepage": "https://www.drupal.org/user/1853532" + }, + { + "name": "miro_dietiker", + "homepage": "https://www.drupal.org/user/227761" + } + ], + "description": "Entity Reference Revisions", + "homepage": "https://www.drupal.org/project/entity_reference_revisions", + "support": { + "source": "https://git.drupalcode.org/project/entity_reference_revisions" + } + }, { "name": "drupal/entity_staging", "version": "dev-1.x", @@ -4474,26 +4364,26 @@ }, { "name": "drupal/environment_indicator", - "version": "3.7.0", + "version": "4.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/environment_indicator.git", - "reference": "8.x-3.7" + "reference": "4.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/environment_indicator-8.x-3.7.zip", - "reference": "8.x-3.7", - "shasum": "c5e27581a10f446f7c88568279454f20f5910dc9" + "url": "https://ftp.drupal.org/files/projects/environment_indicator-4.0.3.zip", + "reference": "4.0.3", + "shasum": "2518cdb8f758e94a9415a16ff2d114504eca5ef4" }, "require": { - "drupal/core": "^8" + "drupal/core": "^8.8 || ^9" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.7", - "datestamp": "1568149685", + "version": "4.0.3", + "datestamp": "1617285310", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4586,29 +4476,32 @@ }, { "name": "drupal/facets", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/facets.git", - "reference": "8.x-1.7" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/facets-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "5a8a1092617c4dde96f691e23300d0d436c5fcb3" + "url": "https://ftp.drupal.org/files/projects/facets-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "f621b84b59c5315db14a0529df5dfc74ca5bc9de" }, "require": { "drupal/core": "^8.8 || ^9" }, + "conflict": { + "drupal/search_api": "<1.14" + }, "require-dev": { - "drupal/search_api": "~1.5" + "drupal/search_api": "~1.14" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1613751460", + "version": "8.x-1.8", + "datestamp": "1620838256", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4652,6 +4545,70 @@ "irc": "irc://irc.freenode.org/drupal-search-api" } }, + { + "name": "drupal/field_group", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/field_group.git", + "reference": "8.x-3.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/field_group-8.x-3.2.zip", + "reference": "8.x-3.2", + "shasum": "2020bbfe40f6ba43bc733ae7c8761632572433a0" + }, + "require": { + "drupal/core": "^8.8 || ^9" + }, + "require-dev": { + "drupal/jquery_ui_accordion": "^1.0" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-3.2", + "datestamp": "1628513585", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Hydra", + "homepage": "https://www.drupal.org/user/647364" + }, + { + "name": "Stalski", + "homepage": "https://www.drupal.org/user/322618" + }, + { + "name": "jyve", + "homepage": "https://www.drupal.org/user/591438" + }, + { + "name": "nils.destoop", + "homepage": "https://www.drupal.org/user/361625" + }, + { + "name": "swentel", + "homepage": "https://www.drupal.org/user/107403" + } + ], + "description": "Provides the field_group module.", + "homepage": "https://www.drupal.org/project/field_group", + "support": { + "source": "https://git.drupalcode.org/project/field_group", + "issues": "https://www.drupal.org/project/issues/field_group" + } + }, { "name": "drupal/file_mdm", "version": "2.1.0", @@ -4755,17 +4712,17 @@ }, { "name": "drupal/fullcalendar_view", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/fullcalendar_view.git", - "reference": "8.x-2.7" + "reference": "8.x-2.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/fullcalendar_view-8.x-2.7.zip", - "reference": "8.x-2.7", - "shasum": "51e88db2f9803bcaf5951ad9bc88e8a03ab28898" + "url": "https://ftp.drupal.org/files/projects/fullcalendar_view-8.x-2.8.zip", + "reference": "8.x-2.8", + "shasum": "3a8043abac636f4f559b1bbde2e2a5964209a89f" }, "require": { "drupal/core": "^8 || ^9" @@ -4773,8 +4730,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.7", - "datestamp": "1596410912", + "version": "8.x-2.8", + "datestamp": "1626141050", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4786,6 +4743,10 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "KarinG", + "homepage": "https://www.drupal.org/user/787114" + }, { "name": "Mingsong", "homepage": "https://www.drupal.org/user/2986445" @@ -4924,17 +4885,17 @@ }, { "name": "drupal/geofield", - "version": "1.22.0", + "version": "1.34.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield.git", - "reference": "8.x-1.22" + "reference": "8.x-1.34" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.22.zip", - "reference": "8.x-1.22", - "shasum": "6fd9299863cf1bbda8747772febf4b90399f6580" + "url": "https://ftp.drupal.org/files/projects/geofield-8.x-1.34.zip", + "reference": "8.x-1.34", + "shasum": "69b6253475b7d810ccc44fa8791c2ff026c0ae6b" }, "require": { "drupal/core": "^8.8 || ^9", @@ -4943,8 +4904,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.22", - "datestamp": "1617652199", + "version": "8.x-1.34", + "datestamp": "1626906581", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5002,27 +4963,27 @@ }, { "name": "drupal/geofield_map", - "version": "2.67.0", + "version": "2.70.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/geofield_map.git", - "reference": "8.x-2.67" + "reference": "8.x-2.70" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/geofield_map-8.x-2.67.zip", - "reference": "8.x-2.67", - "shasum": "6b98bbcaf1de0c38da8683b39aa9c43ccf226d82" + "url": "https://ftp.drupal.org/files/projects/geofield_map-8.x-2.70.zip", + "reference": "8.x-2.70", + "shasum": "d01e5527240ac90631116decb45d195dd372c799" }, "require": { "drupal/core": "^8.8 || ^9", - "drupal/geofield": "^1.0" + "drupal/geofield": "^1.31" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.67", - "datestamp": "1597844476", + "version": "8.x-2.70", + "datestamp": "1626553818", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5120,29 +5081,29 @@ }, { "name": "drupal/imagemagick", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/imagemagick.git", - "reference": "8.x-3.1" + "reference": "8.x-3.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/imagemagick-8.x-3.1.zip", - "reference": "8.x-3.1", - "shasum": "f427b06312325aa667c549fed261f73f29e231e7" + "url": "https://ftp.drupal.org/files/projects/imagemagick-8.x-3.2.zip", + "reference": "8.x-3.2", + "shasum": "35346cda3bb9c989387a282dd7f7bb4da4f70fce" }, "require": { - "drupal/core": "^8.8 || ^9", + "drupal/core": "^8.9 || ^9.1", "drupal/file_mdm": "^2", "drupal/sophron": "^1", - "php": ">=7" + "php": ">=7.1" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.1", - "datestamp": "1581420882", + "version": "8.x-3.2", + "datestamp": "1622711751", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5289,19 +5250,66 @@ "source": "https://git.drupalcode.org/project/inline_entity_form" } }, + { + "name": "drupal/layout_builder_at", + "version": "2.12.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/layout_builder_at.git", + "reference": "8.x-2.12" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/layout_builder_at-8.x-2.12.zip", + "reference": "8.x-2.12", + "shasum": "6b79b7c2df90281d350b4cdda6de6be5fc84b1b8" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-2.12", + "datestamp": "1619341272", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Kristof De Jaeger (swentel)", + "homepage": "https://www.drupal.org/u/swentel", + "role": "Maintainer" + } + ], + "description": "Layout Builder Asymmetric Translation", + "homepage": "https://www.drupal.org/project/layout_builder_at", + "support": { + "source": "https://git.drupalcode.org/project/layout_builder_at", + "issues": "https://www.drupal.org/project/issues/layout_builder_at", + "irc": "irc://irc.freenode.org/drupal-contribute" + } + }, { "name": "drupal/layout_builder_browser", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/layout_builder_browser.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/layout_builder_browser-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "5d4b7a99399242847104abe6478085bcd1eb88fa" + "url": "https://ftp.drupal.org/files/projects/layout_builder_browser-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "cf590c8d0300dfeae96637a0d9eff6710c6bd8a9" }, "require": { "drupal/core": "^8 || ^9" @@ -5309,8 +5317,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1605541371", + "version": "8.x-1.3", + "datestamp": "1628603644", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5398,17 +5406,17 @@ }, { "name": "drupal/layout_builder_restrictions", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/layout_builder_restrictions.git", - "reference": "8.x-2.8" + "reference": "8.x-2.9" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/layout_builder_restrictions-8.x-2.8.zip", - "reference": "8.x-2.8", - "shasum": "89e1efccd83ac0796cdd6bd33a82186f1539f8f5" + "url": "https://ftp.drupal.org/files/projects/layout_builder_restrictions-8.x-2.9.zip", + "reference": "8.x-2.9", + "shasum": "042489e1fb8a976fb029f4e9546224b3ea84f304" }, "require": { "drupal/core": "^8 || ^9" @@ -5421,8 +5429,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.8", - "datestamp": "1606569511", + "version": "8.x-2.9", + "datestamp": "1624208343", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5590,27 +5598,28 @@ } }, { - "name": "drupal/linkit", - "version": "4.3.0", + "name": "drupal/layout_paragraphs", + "version": "1.0.0", "source": { "type": "git", - "url": "https://git.drupalcode.org/project/linkit.git", - "reference": "8.x-4.3" + "url": "https://git.drupalcode.org/project/layout_paragraphs.git", + "reference": "1.0.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/linkit-8.x-4.3.zip", - "reference": "8.x-4.3", - "shasum": "e624ea2f18a6100b76a8337e24f7c08df6e2235e" + "url": "https://ftp.drupal.org/files/projects/layout_paragraphs-1.0.0.zip", + "reference": "1.0.0", + "shasum": "6b4bbb8fc50f70092d1c1ed720076be9f8904218" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "^8 || ^9", + "drupal/paragraphs": "^1.6" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-4.3", - "datestamp": "1490205830", + "version": "1.0.0", + "datestamp": "1621524309", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5621,6 +5630,61 @@ "license": [ "GPL-2.0+" ], + "authors": [ + { + "name": "itamair", + "homepage": "https://www.drupal.org/user/1179076" + }, + { + "name": "justin2pin", + "homepage": "https://www.drupal.org/user/278450" + } + ], + "description": "Layout Paragraphs", + "homepage": "https://www.drupal.org/project/layout_paragraphs", + "keywords": [ + "Drupal" + ], + "support": { + "source": "http://cgit.drupalcode.org/layout_paragraphs", + "issues": "https://www.drupal.org/project/issues/layout_paragraphs" + } + }, + { + "name": "drupal/linkit", + "version": "6.0.0-beta2", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/linkit.git", + "reference": "6.0.0-beta2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/linkit-6.0.0-beta2.zip", + "reference": "6.0.0-beta2", + "shasum": "388cd47159eef6c505646c7d5a96e7e653439a94" + }, + "require": { + "drupal/core": "^8.7.7 || ^9" + }, + "require-dev": { + "drupal/imce": "*" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "6.0.0-beta2", + "datestamp": "1608957496", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], "authors": [ { "name": "Emil Stjerneman", @@ -5696,35 +5760,38 @@ }, { "name": "drupal/memcache", - "version": "2.0.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/memcache.git", - "reference": "8.x-2.0" + "reference": "8.x-2.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/memcache-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "78c09097c42781343f4069b4823dce7acd98a8b1" + "url": "https://ftp.drupal.org/files/projects/memcache-8.x-2.3.zip", + "reference": "8.x-2.3", + "shasum": "b2f9715612be74f9ce55daaf838f6f17a9eb2f5a" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "^8.9 || ^9" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0", - "datestamp": "1540546681", + "version": "8.x-2.3", + "datestamp": "1614802365", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } + }, + "branch-alias": { + "dev-8.x-2.x": "2.x-dev" } }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -5893,76 +5960,26 @@ } }, { - "name": "drupal/migrate_directory", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/migrate_directory.git", - "reference": "8.x-1.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_directory-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "bbfdb1a8e617bc2ec1bc95fe196197aa58d663ec" - }, - "require": { - "drupal/core": "^8" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.0", - "datestamp": "1556906881", - "security-coverage": { - "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "socketwench", - "homepage": "https://www.drupal.org/user/65793" - } - ], - "description": "Migrate Directory", - "homepage": "https://www.drupal.org/project/migrate_directory", - "keywords": [ - "Drupal" - ], - "support": { - "source": "http://cgit.drupalcode.org/migrate_directory", - "issues": "https://www.drupal.org/project/issues/migrate_directory" - } - }, - { - "name": "drupal/migrate_plus", - "version": "4.2.0", + "name": "drupal/migrate_plus", + "version": "5.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/migrate_plus.git", - "reference": "8.x-4.2" + "reference": "8.x-5.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_plus-8.x-4.2.zip", - "reference": "8.x-4.2", - "shasum": "5736a43e39cc5c091d54ceef2849ea35ba979af3" + "url": "https://ftp.drupal.org/files/projects/migrate_plus-8.x-5.1.zip", + "reference": "8.x-5.1", + "shasum": "1257427ab0c64459c3c1e42bb2a98d3114b77163" }, "require": { - "drupal/core": "^8.3" + "drupal/core": "^8.8 || ^9", + "php": ">=7.1" }, "require-dev": { - "drupal/entity": "*", "drupal/migrate_example_advanced_setup": "*", - "drupal/migrate_example_setup": "*", - "drupal/migrate_tools": "*", - "drupal/profile": "*" + "drupal/migrate_example_setup": "*" }, "suggest": { "ext-soap": "*", @@ -5971,8 +5988,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-4.2", - "datestamp": "1555683487", + "version": "8.x-5.1", + "datestamp": "1588261060", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5981,7 +5998,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -5990,49 +6007,50 @@ "role": "Maintainer" }, { - "name": "mikeryan", - "homepage": "https://www.drupal.org/user/4420" + "name": "Lucas Hedding", + "homepage": "https://www.drupal.org/u/heddn", + "role": "Maintainer" } ], "description": "Enhancements to core migration support.", "homepage": "https://www.drupal.org/project/migrate_plus", "support": { - "source": "https://cgit.drupalcode.org/migrate_plus", + "source": "https://git.drupalcode.org/project/migrate_plus", "issues": "https://www.drupal.org/project/issues/migrate_plus", - "irc": "irc://irc.freenode.org/drupal-migrate" + "slack": "#migrate" } }, { "name": "drupal/migrate_tools", - "version": "4.5.0", + "version": "dev-5.x", "source": { "type": "git", "url": "https://git.drupalcode.org/project/migrate_tools.git", - "reference": "8.x-4.5" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_tools-8.x-4.5.zip", - "reference": "8.x-4.5", - "shasum": "06390b359bf53c50a30f2d6dc4c7542bfb1fe7ca" + "reference": "56d82b4fc111dd26f2c3a1e53c06015eb854df20" }, "require": { - "drupal/core": "^8 || ^9", - "drupal/migrate_plus": "^4 || ^5" + "drupal/core": "^8.8 | ^9", + "drupal/migrate_plus": "^5", + "php": ">=7.1" }, "require-dev": { - "drupal/migrate_plus": "4.x-dev", - "drupal/migrate_source_csv": "^2.2", + "drupal/migrate_source_csv": "^3.0", "drush/drush": "^10" }, + "suggest": { + "drush/drush": "^9 || ^10" + }, "type": "drupal-module", "extra": { + "branch-alias": { + "dev-5.x": "5.x-dev" + }, "drupal": { - "version": "8.x-4.5", - "datestamp": "1574693285", + "version": "8.x-5.0+13-dev", + "datestamp": "1618603463", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "Dev releases are not covered by Drupal security advisories." } }, "drush": { @@ -6047,8 +6065,14 @@ ], "authors": [ { - "name": "drupalspoons", - "homepage": "https://www.drupal.org/user/3647684" + "name": "Mike Ryan", + "homepage": "https://www.drupal.org/u/mikeryan", + "role": "Maintainer" + }, + { + "name": "Lucas Hedding", + "homepage": "https://www.drupal.org/u/heddn", + "role": "Maintainer" }, { "name": "mikeryan", @@ -6058,24 +6082,24 @@ "description": "Tools to assist in developing and running migrations.", "homepage": "http://drupal.org/project/migrate_tools", "support": { - "source": "http://cgit.drupalcode.org/migrate_tools", - "issues": "http://drupal.org/project/migrate_tools", - "irc": "irc://irc.freenode.org/drupal-migrate" + "source": "https://git.drupalcode.org/project/migrate_tools", + "issues": "https://www.drupal.org/project/issues/migrate_tools", + "slack": "#migrate" } }, { "name": "drupal/office_hours", - "version": "1.3.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/office_hours.git", - "reference": "8.x-1.3" + "reference": "8.x-1.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "92f3501b72de9bfce282981d8f1b2eec18822c29" + "url": "https://ftp.drupal.org/files/projects/office_hours-8.x-1.5.zip", + "reference": "8.x-1.5", + "shasum": "745079dfca40222a034da0475e516c0aa1317c67" }, "require": { "drupal/core": "^8 || ^9" @@ -6083,8 +6107,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1592488115", + "version": "8.x-1.5", + "datestamp": "1623916796", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6122,6 +6146,87 @@ "irc": "irc://irc.freenode.org/drupal-contribute" } }, + { + "name": "drupal/paragraphs", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/paragraphs.git", + "reference": "8.x-1.12" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "3b67d8af1160af42d93a4610be1e02869e428965" + }, + "require": { + "drupal/core": "^8.8 || ^9", + "drupal/entity_reference_revisions": "~1.3" + }, + "require-dev": { + "drupal/block_field": "~1.0", + "drupal/ctools": "3.x-dev", + "drupal/diff": "~1.0", + "drupal/entity_browser": "2.x-dev", + "drupal/entity_usage": "2.x-dev", + "drupal/field_group": "3.x-dev", + "drupal/inline_entity_form": "~1.0", + "drupal/paragraphs-paragraphs_library": "*", + "drupal/replicate": "~1.0", + "drupal/search_api": "~1.0", + "drupal/search_api_db": "*" + }, + "suggest": { + "drupal/entity_browser": "Recommended for an improved user experience when using the Paragraphs library module" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.12", + "datestamp": "1590140081", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Berdir", + "homepage": "https://www.drupal.org/user/214652" + }, + { + "name": "Frans", + "homepage": "https://www.drupal.org/user/514222" + }, + { + "name": "Primsi", + "homepage": "https://www.drupal.org/user/282629" + }, + { + "name": "jeroen.b", + "homepage": "https://www.drupal.org/user/1853532" + }, + { + "name": "jstoller", + "homepage": "https://www.drupal.org/user/99012" + }, + { + "name": "miro_dietiker", + "homepage": "https://www.drupal.org/user/227761" + } + ], + "description": "Enables the creation of Paragraphs entities.", + "homepage": "https://www.drupal.org/project/paragraphs", + "support": { + "source": "https://git.drupalcode.org/project/paragraphs" + } + }, { "name": "drupal/pathauto", "version": "1.8.0", @@ -6303,17 +6408,17 @@ }, { "name": "drupal/search_api", - "version": "1.19.0", + "version": "1.20.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/search_api.git", - "reference": "8.x-1.19" + "reference": "8.x-1.20" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.19.zip", - "reference": "8.x-1.19", - "shasum": "5654e9d02117e28c585d89a25ea3cc40d20c5019" + "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.20.zip", + "reference": "8.x-1.20", + "shasum": "4bed60ac7b502ccc1d4a01411aa35d2cb7f496c7" }, "require": { "drupal/core": "^8.8 || ^9" @@ -6334,8 +6439,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.19", - "datestamp": "1612192040", + "version": "8.x-1.20", + "datestamp": "1626684847", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6343,7 +6448,7 @@ }, "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, @@ -6375,31 +6480,28 @@ }, { "name": "drupal/search_api_glossary", - "version": "4.0.0", + "version": "dev-4.x", "source": { "type": "git", "url": "https://git.drupalcode.org/project/search_api_glossary.git", - "reference": "8.x-4.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/search_api_glossary-8.x-4.0.zip", - "reference": "8.x-4.0", - "shasum": "7b272c22c7d6c59eca0d790883640697d1bffe92" + "reference": "ea3e10b5f792686793d96e9e86f0a3b156a4a74a" }, "require": { - "drupal/core": "~8.0", + "drupal/core": "^8.8 || ^9", "drupal/facets": "*", "drupal/search_api": "*" }, "type": "drupal-module", "extra": { + "branch-alias": { + "dev-4.x": "4.x-dev" + }, "drupal": { - "version": "8.x-4.0", + "version": "8.x-4.0+0-dev", "datestamp": "1556197985", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "Dev releases are not covered by Drupal security advisories." } } }, @@ -6408,6 +6510,11 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "dakku", + "homepage": "https://www.drupal.org/user/151868", + "email": "dakku@example.com" + }, { "name": "dakku", "homepage": "https://www.drupal.org/user/97634" @@ -6421,17 +6528,17 @@ }, { "name": "drupal/search_api_solr", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/search_api_solr.git", - "reference": "8.x-1.10" + "reference": "8.x-1.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/search_api_solr-8.x-1.10.zip", - "reference": "8.x-1.10", - "shasum": "102f5ab2eed75593c2cc30dae71db57ac9485a9a" + "url": "https://ftp.drupal.org/files/projects/search_api_solr-8.x-1.11.zip", + "reference": "8.x-1.11", + "shasum": "5ceae0889e19c512307eebbedcc3145f8cdf55ad" }, "require": { "drupal/core": "^8.9 || ^9", @@ -6439,7 +6546,7 @@ "solarium/solarium": "^6.0" }, "conflict": { - "drupal/acquia_connector": "<1.24 || ^2", + "drupal/acquia_connector": "<3.0", "drupal/acquia_search_solr": "*", "drupal/search_api_pantheon": "<1.1" }, @@ -6457,8 +6564,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.10", - "datestamp": "1614330588", + "version": "8.x-1.11", + "datestamp": "1622736934", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6506,6 +6613,59 @@ "irc": "irc://irc.freenode.org/drupal-search-api" } }, + { + "name": "drupal/section_library", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/section_library.git", + "reference": "1.0.0" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/section_library-1.0.0.zip", + "reference": "1.0.0", + "shasum": "432c0f8147c21a874495942d0f6a6be322cef921" + }, + "require": { + "drupal/core": "^8.7.7 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "1.0.0", + "datestamp": "1627939517", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Mahmoud Zayed", + "homepage": "https://www.drupal.org/u/mahmoud-zayed", + "role": "Maintainer" + } + ], + "description": "Create reusable templates for single or multiple sections at the layout builder.", + "homepage": "https://www.drupal.org/project/section_library", + "keywords": [ + "Drupal", + "Layout Builder", + "library", + "section", + "template" + ], + "support": { + "source": "http://cgit.drupalcode.org/section_library", + "issues": "https://www.drupal.org/project/issues/section_library" + } + }, { "name": "drupal/simple_instagram_feed", "version": "3.11.0", @@ -6614,17 +6774,17 @@ }, { "name": "drupal/socialfeed", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/socialfeed.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/socialfeed-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "39250d3107bd8c2a288f25799493b2a5de2e55ce" + "url": "https://ftp.drupal.org/files/projects/socialfeed-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "cfbda04825cdc52dc226301c1d2fff8ffbf7af21" }, "require": { "abraham/twitteroauth": "^1", @@ -6637,8 +6797,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1598110944", + "version": "8.x-1.3", + "datestamp": "1624287426", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6745,7 +6905,7 @@ "extra": { "drupal": { "version": "8.x-1.1", - "datestamp": "1601040732", + "datestamp": "1601040759", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7108,26 +7268,26 @@ }, { "name": "drupal/webform", - "version": "5.26.0", + "version": "6.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "8.x-5.26" + "reference": "6.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.26.zip", - "reference": "8.x-5.26", - "shasum": "bad9019e2c23cc2e9195e340a0cc4e8eda36a2a6" + "url": "https://ftp.drupal.org/files/projects/webform-6.0.5.zip", + "reference": "6.0.5", + "shasum": "a925d604e3b4a29f5a688a8e84fdb3a93490f641" }, "require": { - "drupal/core": "^8.8" + "drupal/core": "^8.8 || ^9" }, "require-dev": { "drupal/address": "~1.0", "drupal/bootstrap": "~3.0", "drupal/captcha": "~1.0", - "drupal/chosen": "~2.0", + "drupal/chosen": "~3.0", "drupal/clientside_validation": "~3.0", "drupal/clientside_validation_jquery": "*", "drupal/devel": "~3.0", @@ -7135,6 +7295,9 @@ "drupal/entity_print": "~2.0", "drupal/gnode": "*", "drupal/group": "1.0", + "drupal/jquery_ui": "~1.0", + "drupal/jquery_ui_checkboxradio": "~1.0", + "drupal/jquery_ui_datepicker": "~1.0", "drupal/lingotek": "~3.0", "drupal/mailsystem": "~4.0", "drupal/paragraphs": "~1.0", @@ -7156,11 +7319,15 @@ "drupal/webform_share": "*", "drupal/webform_ui": "*" }, + "suggest": { + "drupal/jquery_ui_checkboxradio": "Provides jQuery UI Checkboxradio library. Required by the Webform jQueryUI Buttons module. The Webform jQueryUI Buttons module is deprecated because jQueryUI is no longer maintained.", + "drupal/jquery_ui_datepicker": "Provides jQuery UI Datepicker library. Required to support datepickers. The Webform jQueryUI Datepicker module is deprecated because jQueryUI is no longer maintained." + }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-5.26", - "datestamp": "1620250064", + "version": "6.0.5", + "datestamp": "1629909787", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7168,7 +7335,7 @@ }, "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, @@ -7212,55 +7379,55 @@ }, { "name": "drush/drush", - "version": "9.7.3", + "version": "10.6.0", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "6ab9a89ab18189618eea40bf8e6553c1817ee210" + "reference": "c86d327359baddb0a2f51bb458703826469a0445" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/6ab9a89ab18189618eea40bf8e6553c1817ee210", - "reference": "6ab9a89ab18189618eea40bf8e6553c1817ee210", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/c86d327359baddb0a2f51bb458703826469a0445", + "reference": "c86d327359baddb0a2f51bb458703826469a0445", "shasum": "" }, "require": { - "chi-teck/drupal-code-generator": "^1.28.1", - "composer/semver": "^1.4", - "consolidation/annotated-command": "^2.12", + "chi-teck/drupal-code-generator": "^1.32.1", + "composer/semver": "^1.4 || ^3", "consolidation/config": "^1.2", "consolidation/filter-via-dot-access-data": "^1", - "consolidation/output-formatters": "^3.3.1", - "consolidation/robo": "^1.4.6", + "consolidation/robo": "^1.4.11 || ^2", "consolidation/site-alias": "^3.0.0@stable", - "consolidation/site-process": "^2.0.3", + "consolidation/site-process": "^2.1 || ^4", + "enlightn/security-checker": "^1", "ext-dom": "*", "grasmash/yaml-expander": "^1.1.1", + "guzzlehttp/guzzle": "^6.3 || ^7.0", "league/container": "~2", - "php": ">=5.6.0", + "php": ">=7.1.3", "psr/log": "~1.0", "psy/psysh": "~0.6", - "symfony/console": "^3.4", "symfony/event-dispatcher": "^3.4 || ^4.0", - "symfony/finder": "^3.4 || ^4.0", - "symfony/process": "^3.4", - "symfony/var-dumper": "^3.4 || ^4.0", - "symfony/yaml": "^3.4", - "webflo/drupal-finder": "^1.1", + "symfony/finder": "^3.4 || ^4.0 || ^5", + "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0", + "symfony/yaml": "^3.4 || ^4.0", + "webflo/drupal-finder": "^1.2", "webmozart/path-util": "^2.1.0" }, + "conflict": { + "drupal/migrate_run": "*", + "drupal/migrate_tools": "<= 5" + }, "require-dev": { - "composer/installers": "^1.2", + "composer/installers": "^1.7", "cweagans/composer-patches": "~1.0", + "david-garcia/phpwhois": "4.3.0", "drupal/alinks": "1.0.0", - "drupal/core-recommended": "^8.9", - "drupal/devel": "^2", - "drupal/empty_theme": "1.0", - "g1a/composer-test-scenarios": "^3", - "lox/xhprof": "dev-master", - "phpunit/phpunit": "^4.8.36 || ^6.1", + "drupal/core-recommended": "^8.8", + "phpunit/phpunit": ">=7.5.20", "squizlabs/php_codesniffer": "^2.7 || ^3", - "vlucas/phpdotenv": "^2.4" + "vlucas/phpdotenv": "^2.4", + "yoast/phpunit-polyfills": "^0.2.0" }, "bin": [ "drush" @@ -7292,21 +7459,6 @@ "sut/drush/contrib/{$name}": [ "type:drupal-drush" ] - }, - "scenarios": { - "php5": { - "config": { - "platform": { - "php": "5.6.38" - } - }, - "require-dev": { - "drupal/core-recommended": "~8.6.0" - } - } - }, - "branch-alias": { - "dev-master": "9.x-dev" } }, "autoload": { @@ -7360,7 +7512,7 @@ "irc": "irc://irc.freenode.org/drush", "issues": "https://github.com/drush-ops/drush/issues", "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/9.7.3" + "source": "https://github.com/drush-ops/drush/tree/10.6.0" }, "funding": [ { @@ -7368,75 +7520,7 @@ "type": "github" } ], - "time": "2021-03-22T17:00:48+00:00" - }, - { - "name": "easyrdf/easyrdf", - "version": "0.9.1", - "source": { - "type": "git", - "url": "https://github.com/easyrdf/easyrdf.git", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "ext-pcre": "*", - "php": ">=5.2.8" - }, - "require-dev": { - "phpunit/phpunit": "~3.5", - "sami/sami": "~1.4", - "squizlabs/php_codesniffer": "~1.4.3" - }, - "suggest": { - "ml/json-ld": "~1.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "EasyRdf_": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nicholas Humfrey", - "email": "njh@aelius.com", - "homepage": "http://www.aelius.com/njh/", - "role": "Developer" - }, - { - "name": "Alexey Zakhlestin", - "email": "indeyets@gmail.com", - "role": "Developer" - } - ], - "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", - "homepage": "http://www.easyrdf.org/", - "keywords": [ - "Linked Data", - "RDF", - "Semantic Web", - "Turtle", - "rdfa", - "sparql" - ], - "support": { - "forum": "http://groups.google.com/group/easyrdf/", - "irc": "irc://chat.freenode.net/easyrdf", - "issues": "http://github.com/njh/easyrdf/issues", - "source": "https://github.com/easyrdf/easyrdf/tree/0.9.1" - }, - "time": "2015-02-27T09:45:49+00:00" + "time": "2021-08-13T10:40:40+00:00" }, { "name": "egulias/email-validator", @@ -7507,32 +7591,89 @@ "time": "2020-12-29T14:50:06+00:00" }, { - "name": "enyo/dropzone", - "version": "5.7", - "dist": { - "type": "zip", - "url": "https://github.com/enyo/dropzone/archive/v5.7.0.zip" - }, - "type": "drupal-library" - }, - { - "name": "espresso-dev/instagram-basic-display-php", - "version": "v1.1.6", + "name": "enlightn/security-checker", + "version": "v1.9.0", "source": { "type": "git", - "url": "https://github.com/espresso-dev/instagram-basic-display-php.git", - "reference": "e15ac322fd5ee3b8469bcb3e16c90667b8f2e208" + "url": "https://github.com/enlightn/security-checker.git", + "reference": "dc5bce653fa4d9c792e9dcffa728c0642847c1e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/espresso-dev/instagram-basic-display-php/zipball/e15ac322fd5ee3b8469bcb3e16c90667b8f2e208", - "reference": "e15ac322fd5ee3b8469bcb3e16c90667b8f2e208", + "url": "https://api.github.com/repos/enlightn/security-checker/zipball/dc5bce653fa4d9c792e9dcffa728c0642847c1e1", + "reference": "dc5bce653fa4d9c792e9dcffa728c0642847c1e1", "shasum": "" }, "require": { - "ext-curl": "*", "ext-json": "*", - "php": ">=5.6" + "guzzlehttp/guzzle": "^6.3|^7.0", + "php": ">=5.6", + "symfony/console": "^3.4|^4|^5", + "symfony/finder": "^3|^4|^5", + "symfony/process": "^3.4|^4|^5", + "symfony/yaml": "^3.4|^4|^5" + }, + "require-dev": { + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^2.18", + "phpunit/phpunit": "^5.5|^6|^7|^8|^9" + }, + "bin": [ + "security-checker" + ], + "type": "library", + "autoload": { + "psr-4": { + "Enlightn\\SecurityChecker\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paras Malhotra", + "email": "paras@laravel-enlightn.com" + }, + { + "name": "Miguel Piedrafita", + "email": "soy@miguelpiedrafita.com" + } + ], + "description": "A PHP dependency vulnerabilities scanner based on the Security Advisories Database.", + "keywords": [ + "package", + "php", + "scanner", + "security", + "security advisories", + "vulnerability scanner" + ], + "support": { + "issues": "https://github.com/enlightn/security-checker/issues", + "source": "https://github.com/enlightn/security-checker/tree/v1.9.0" + }, + "time": "2021-05-06T09:03:35+00:00" + }, + { + "name": "espresso-dev/instagram-basic-display-php", + "version": "v1.1.6", + "source": { + "type": "git", + "url": "https://github.com/espresso-dev/instagram-basic-display-php.git", + "reference": "e15ac322fd5ee3b8469bcb3e16c90667b8f2e208" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/espresso-dev/instagram-basic-display-php/zipball/e15ac322fd5ee3b8469bcb3e16c90667b8f2e208", + "reference": "e15ac322fd5ee3b8469bcb3e16c90667b8f2e208", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.6" }, "type": "library", "autoload": { @@ -8191,40 +8332,52 @@ }, { "name": "laminas/laminas-diactoros", - "version": "1.8.7p2", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa" + "reference": "7d2034110ae18afe05050b796a3ee4b3fe177876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6991c1af7c8d2c8efee81b22ba97024781824aaa", - "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/7d2034110ae18afe05050b796a3ee4b3fe177876", + "reference": "7d2034110ae18afe05050b796a3ee4b3fe177876", "shasum": "" }, "require": { "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0", + "php": "^7.3 || ~8.0.0", + "psr/http-factory": "^1.0", "psr/http-message": "^1.0" }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "replace": { - "zendframework/zend-diactoros": "~1.8.7.0" + "zendframework/zend-diactoros": "^2.2.1" }, "require-dev": { + "ext-curl": "*", "ext-dom": "*", + "ext-gd": "*", "ext-libxml": "*", - "laminas/laminas-coding-standard": "~1.0", - "php-http/psr7-integration-tests": "dev-master", - "phpunit/phpunit": "^5.7.16 || ^6.0.8 || ^7.2.7" + "http-interop/http-factory-tests": "^0.8.0", + "laminas/laminas-coding-standard": "~1.0.0", + "php-http/psr7-integration-tests": "^1.1", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.1", + "psalm/plugin-phpunit": "^0.14.0", + "vimeo/psalm": "^4.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-release-1.8": "1.8.x-dev" + "laminas": { + "config-provider": "Laminas\\Diactoros\\ConfigProvider", + "module": "Laminas\\Diactoros" } }, "autoload": { @@ -8260,6 +8413,7 @@ "http", "laminas", "psr", + "psr-17", "psr-7" ], "support": { @@ -8270,20 +8424,26 @@ "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", "source": "https://github.com/laminas/laminas-diactoros" }, - "time": "2020-03-23T15:28:28+00:00" + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-05-18T14:41:54+00:00" }, { "name": "laminas/laminas-escaper", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "5e04bc5ae5990b17159d79d331055e2c645e5cc5" + "reference": "2d6dce99668b413610e9544183fa10392437f542" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/5e04bc5ae5990b17159d79d331055e2c645e5cc5", - "reference": "5e04bc5ae5990b17159d79d331055e2c645e5cc5", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/2d6dce99668b413610e9544183fa10392437f542", + "reference": "2d6dce99668b413610e9544183fa10392437f542", "shasum": "" }, "require": { @@ -8294,7 +8454,7 @@ "zendframework/zend-escaper": "^2.6.1" }, "require-dev": { - "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-coding-standard": "~2.3.0", "phpunit/phpunit": "^9.3", "psalm/plugin-phpunit": "^0.12.2", "vimeo/psalm": "^3.16" @@ -8333,7 +8493,7 @@ "type": "community_bridge" } ], - "time": "2020-11-17T21:26:43+00:00" + "time": "2021-06-26T14:26:08+00:00" }, { "name": "laminas/laminas-feed", @@ -8417,29 +8577,30 @@ }, { "name": "laminas/laminas-stdlib", - "version": "3.3.1", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe" + "reference": "c8ac6a76a133e682acfabc821d4a2ec646934b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", - "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/c8ac6a76a133e682acfabc821d4a2ec646934b12", + "reference": "c8ac6a76a133e682acfabc821d4a2ec646934b12", "shasum": "" }, "require": { - "laminas/laminas-zendframework-bridge": "^1.0", "php": "^7.3 || ^8.0" }, - "replace": { - "zendframework/zend-stdlib": "^3.2.1" + "conflict": { + "zendframework/zend-stdlib": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-coding-standard": "~2.3.0", "phpbench/phpbench": "^0.17.1", - "phpunit/phpunit": "~9.3.7" + "phpunit/phpunit": "~9.3.7", + "psalm/plugin-phpunit": "^0.16.0", + "vimeo/psalm": "^4.7" }, "type": "library", "autoload": { @@ -8471,20 +8632,20 @@ "type": "community_bridge" } ], - "time": "2020-11-19T20:18:59+00:00" + "time": "2021-08-03T13:40:40+00:00" }, { "name": "laminas/laminas-zendframework-bridge", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32" + "reference": "13af2502d9bb6f7d33be2de4b51fb68c6cdb476e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6cccbddfcfc742eb02158d6137ca5687d92cee32", - "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/13af2502d9bb6f7d33be2de4b51fb68c6cdb476e", + "reference": "13af2502d9bb6f7d33be2de4b51fb68c6cdb476e", "shasum": "" }, "require": { @@ -8533,7 +8694,7 @@ "type": "community_bridge" } ], - "time": "2021-02-25T21:54:58+00:00" + "time": "2021-06-24T12:49:22+00:00" }, { "name": "league/container", @@ -8674,16 +8835,16 @@ }, { "name": "masterminds/html5", - "version": "2.7.4", + "version": "2.7.5", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "9227822783c75406cfe400984b2f095cdf03d417" + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/9227822783c75406cfe400984b2f095cdf03d417", - "reference": "9227822783c75406cfe400984b2f095cdf03d417", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab", + "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab", "shasum": "" }, "require": { @@ -8693,7 +8854,7 @@ "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" }, "type": "library", "extra": { @@ -8737,28 +8898,29 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.7.4" + "source": "https://github.com/Masterminds/html5-php/tree/2.7.5" }, - "time": "2020-10-01T13:52:52+00:00" + "time": "2021-07-01T14:25:37+00:00" }, { "name": "nesbot/carbon", - "version": "2.47.0", + "version": "2.52.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "606262fd8888b75317ba9461825a24fc34001e1e" + "reference": "369c0e2737c56a0f39c946dd261855255a6fccbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/606262fd8888b75317ba9461825a24fc34001e1e", - "reference": "606262fd8888b75317ba9461825a24fc34001e1e", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/369c0e2737c56a0f39c946dd261855255a6fccbe", + "reference": "369c0e2737c56a0f39c946dd261855255a6fccbe", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { @@ -8777,8 +8939,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" }, "laravel": { "providers": [ @@ -8804,15 +8966,15 @@ { "name": "Brian Nesbitt", "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" + "homepage": "https://markido.com" }, { "name": "kylekatarnls", - "homepage": "http://github.com/kylekatarnls" + "homepage": "https://github.com/kylekatarnls" } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "http://carbon.nesbot.com", + "homepage": "https://carbon.nesbot.com", "keywords": [ "date", "datetime", @@ -8832,20 +8994,20 @@ "type": "tidelift" } ], - "time": "2021-04-13T21:54:02+00:00" + "time": "2021-08-14T19:10:52+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.5", + "version": "v4.12.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" + "reference": "6608f01670c3cc5079e18c1dab1104e002579143" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6608f01670c3cc5079e18c1dab1104e002579143", + "reference": "6608f01670c3cc5079e18c1dab1104e002579143", "shasum": "" }, "require": { @@ -8886,9 +9048,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.12.0" }, - "time": "2021-05-03T19:11:20+00:00" + "time": "2021-07-21T10:44:31+00:00" }, { "name": "oomphinc/composer-installers-extender", @@ -8949,16 +9111,16 @@ }, { "name": "pear/archive_tar", - "version": "1.4.13", + "version": "1.4.14", "source": { "type": "git", "url": "https://github.com/pear/Archive_Tar.git", - "reference": "2b87b41178cc6d4ad3cba678a46a1cae49786011" + "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/2b87b41178cc6d4ad3cba678a46a1cae49786011", - "reference": "2b87b41178cc6d4ad3cba678a46a1cae49786011", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", + "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", "shasum": "" }, "require": { @@ -9025,7 +9187,7 @@ "type": "patreon" } ], - "time": "2021-02-16T10:50:50+00:00" + "time": "2021-07-20T13:53:39+00:00" }, { "name": "pear/console_getopt", @@ -9080,16 +9242,16 @@ }, { "name": "pear/pear-core-minimal", - "version": "v1.10.10", + "version": "v1.10.11", "source": { "type": "git", "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7" + "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/625a3c429d9b2c1546438679074cac1b089116a7", - "reference": "625a3c429d9b2c1546438679074cac1b089116a7", + "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d", + "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d", "shasum": "" }, "require": { @@ -9124,7 +9286,7 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", "source": "https://github.com/pear/pear-core-minimal" }, - "time": "2019-11-19T19:00:24+00:00" + "time": "2021-08-10T22:31:03+00:00" }, { "name": "pear/pear_exception", @@ -9268,16 +9430,16 @@ }, { "name": "php-http/discovery", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "788f72d64c43dc361e7fcc7464c3d947c64984a7" + "reference": "778f722e29250c1fac0bbdef2c122fa5d038c9eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/788f72d64c43dc361e7fcc7464c3d947c64984a7", - "reference": "788f72d64c43dc361e7fcc7464c3d947c64984a7", + "url": "https://api.github.com/repos/php-http/discovery/zipball/778f722e29250c1fac0bbdef2c122fa5d038c9eb", + "reference": "778f722e29250c1fac0bbdef2c122fa5d038c9eb", "shasum": "" }, "require": { @@ -9294,8 +9456,7 @@ "puli/composer-plugin": "1.0.0-beta10" }, "suggest": { - "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories", - "puli/composer-plugin": "Sets up Puli which is recommended for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details." + "php-http/message": "Allow to use Guzzle, Diactoros or Slim Framework factories" }, "type": "library", "extra": { @@ -9331,9 +9492,9 @@ ], "support": { "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.13.0" + "source": "https://github.com/php-http/discovery/tree/1.14.0" }, - "time": "2020-11-27T14:49:42+00:00" + "time": "2021-06-01T14:30:21+00:00" }, { "name": "php-http/guzzle6-adapter", @@ -9466,16 +9627,16 @@ }, { "name": "php-http/message", - "version": "1.11.0", + "version": "1.11.2", "source": { "type": "git", "url": "https://github.com/php-http/message.git", - "reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29" + "reference": "295c82867d07261f2fa4b3a26677519fc6f7f5f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/fb0dbce7355cad4f4f6a225f537c34d013571f29", - "reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29", + "url": "https://api.github.com/repos/php-http/message/zipball/295c82867d07261f2fa4b3a26677519fc6f7f5f6", + "reference": "295c82867d07261f2fa4b3a26677519fc6f7f5f6", "shasum": "" }, "require": { @@ -9534,9 +9695,9 @@ ], "support": { "issues": "https://github.com/php-http/message/issues", - "source": "https://github.com/php-http/message/tree/1.11.0" + "source": "https://github.com/php-http/message/tree/1.11.2" }, - "time": "2021-02-01T08:54:58+00:00" + "time": "2021-08-03T11:52:11+00:00" }, { "name": "php-http/message-factory", @@ -10127,16 +10288,16 @@ }, { "name": "solarium/solarium", - "version": "6.1.1", + "version": "6.1.5", "source": { "type": "git", "url": "https://github.com/solariumphp/solarium.git", - "reference": "a161014dea4799c46adeb542d0a25ec334dcccc2" + "reference": "beec496540c3d227201c556729d2c61d1c1f8ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/solariumphp/solarium/zipball/a161014dea4799c46adeb542d0a25ec334dcccc2", - "reference": "a161014dea4799c46adeb542d0a25ec334dcccc2", + "url": "https://api.github.com/repos/solariumphp/solarium/zipball/beec496540c3d227201c556729d2c61d1c1f8ab1", + "reference": "beec496540c3d227201c556729d2c61d1c1f8ab1", "shasum": "" }, "require": { @@ -10155,7 +10316,7 @@ "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12", "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5 || ^9.4", + "phpunit/phpunit": "^9.5", "roave/security-advisories": "dev-master", "symfony/event-dispatcher": "^4.3 || ^5.0" }, @@ -10184,31 +10345,31 @@ ], "support": { "issues": "https://github.com/solariumphp/solarium/issues", - "source": "https://github.com/solariumphp/solarium/tree/6.1.1" + "source": "https://github.com/solariumphp/solarium/tree/6.1.5" }, - "time": "2021-02-05T13:03:56+00:00" + "time": "2021-08-12T15:28:32+00:00" }, { "name": "spatie/calendar-links", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spatie/calendar-links.git", - "reference": "fe4b566b6f47c1fac54e393ae72b44808ae48fa7" + "reference": "aa984fb84d218cc8962b8f89ef46437298534c24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/calendar-links/zipball/fe4b566b6f47c1fac54e393ae72b44808ae48fa7", - "reference": "fe4b566b6f47c1fac54e393ae72b44808ae48fa7", + "url": "https://api.github.com/repos/spatie/calendar-links/zipball/aa984fb84d218cc8962b8f89ef46437298534c24", + "reference": "aa984fb84d218cc8962b8f89ef46437298534c24", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.0", - "spatie/phpunit-snapshot-assertions": "^3.0|^4.0", - "vimeo/psalm": "^4.1" + "phpunit/phpunit": "^9.0", + "spatie/phpunit-snapshot-assertions": "^4.0", + "vimeo/psalm": "^4.7" }, "type": "library", "autoload": { @@ -10236,7 +10397,7 @@ ], "support": { "issues": "https://github.com/spatie/calendar-links/issues", - "source": "https://github.com/spatie/calendar-links/tree/1.5.0" + "source": "https://github.com/spatie/calendar-links/tree/1.6.0" }, "funding": [ { @@ -10244,7 +10405,7 @@ "type": "custom" } ], - "time": "2021-04-22T15:06:47+00:00" + "time": "2021-04-22T15:16:31+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -10407,43 +10568,43 @@ }, { "name": "symfony-cmf/routing", - "version": "1.4.1", + "version": "2.3.3", "source": { "type": "git", - "url": "https://github.com/symfony-cmf/routing.git", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + "url": "https://github.com/symfony-cmf/Routing.git", + "reference": "3c97e7b7709b313cecfb76d691ad4cc22acbf3f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "url": "https://api.github.com/repos/symfony-cmf/Routing/zipball/3c97e7b7709b313cecfb76d691ad4cc22acbf3f5", + "reference": "3c97e7b7709b313cecfb76d691ad4cc22acbf3f5", "shasum": "" }, "require": { - "php": "^5.3.9|^7.0", - "psr/log": "1.*", - "symfony/http-kernel": "^2.2|3.*", - "symfony/routing": "^2.2|3.*" + "php": "^7.2 || ^8.0", + "psr/log": "^1.0", + "symfony/http-kernel": "^4.4 || ^5.0", + "symfony/routing": "^4.4 || ^5.0" }, "require-dev": { - "friendsofsymfony/jsrouting-bundle": "^1.1", - "symfony-cmf/testing": "^1.3", - "symfony/config": "^2.2|3.*", - "symfony/dependency-injection": "^2.0.5|3.*", - "symfony/event-dispatcher": "^2.1|3.*" + "symfony-cmf/testing": "^3@dev", + "symfony/config": "^4.4 || ^5.0", + "symfony/dependency-injection": "^4.4 || ^5.0", + "symfony/event-dispatcher": "^4.4 || ^5.0", + "symfony/phpunit-bridge": "^5.0" }, "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (^4.4 || ^5.0)" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "" + "Symfony\\Cmf\\Component\\Routing\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10456,46 +10617,56 @@ "homepage": "https://github.com/symfony-cmf/Routing/contributors" } ], - "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", + "description": "Extends the Symfony routing component for dynamic routes and chaining several routers", "homepage": "http://cmf.symfony.com", "keywords": [ "database", "routing" ], "support": { - "issues": "https://github.com/symfony-cmf/routing/issues", - "source": "https://github.com/symfony-cmf/routing/tree/1.4" + "issues": "https://github.com/symfony-cmf/Routing/issues", + "source": "https://github.com/symfony-cmf/Routing/tree/2.3.3" }, - "time": "2017-05-09T08:10:41+00:00" + "time": "2020-10-06T10:15:37+00:00" }, { - "name": "symfony/class-loader", - "version": "v3.4.47", + "name": "symfony/config", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "a22265a9f3511c0212bf79f54910ca5a77c0e92c" + "url": "https://github.com/symfony/config.git", + "reference": "8132e8d645d703e9b7c9c4f25067b93638683a35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/a22265a9f3511c0212bf79f54910ca5a77c0e92c", - "reference": "a22265a9f3511c0212bf79f54910ca5a77c0e92c", + "url": "https://api.github.com/repos/symfony/config/zipball/8132e8d645d703e9b7c9c4f25067b93638683a35", + "reference": "8132e8d645d703e9b7c9c4f25067b93638683a35", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" }, "require-dev": { - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/polyfill-apcu": "~1.1" + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" + "Symfony\\Component\\Config\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -10515,10 +10686,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ClassLoader Component", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/class-loader/tree/v3.4.47" + "source": "https://github.com/symfony/config/tree/v4.4.27" }, "funding": [ { @@ -10534,44 +10705,58 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-21T12:19:41+00:00" }, { - "name": "symfony/config", - "version": "v3.4.47", + "name": "symfony/console", + "version": "v4.4.29", "source": { "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f" + "url": "https://github.com/symfony/console.git", + "reference": "8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", - "reference": "bc6b3fd3930d4b53a60b42fe2ed6fc466b75f03f", + "url": "https://api.github.com/repos/symfony/console/zipball/8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b", + "reference": "8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0|~4.0", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" }, "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "psr/log": ">=3", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/event-dispatcher": "~3.3|~4.0", - "symfony/finder": "~3.3|~4.0", - "symfony/yaml": "~3.0|~4.0" + "psr/log": "^1|^2", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" }, "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Config\\": "" + "Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -10591,10 +10776,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Config Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v3.4.47" + "source": "https://github.com/symfony/console/tree/v4.4.29" }, "funding": [ { @@ -10610,52 +10795,30 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-27T19:04:53+00:00" }, { - "name": "symfony/console", - "version": "v3.4.47", + "name": "symfony/css-selector", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81" + "url": "https://github.com/symfony/css-selector.git", + "reference": "5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81", - "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6", + "reference": "5194f18bd80d106f11efa8f7cd0fbdcc3af96ce6", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/debug": "~2.8|~3.0|~4.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.3|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/lock": "~3.4|~4.0", - "symfony/process": "~3.3|~4.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" + "Symfony\\Component\\CssSelector\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -10670,15 +10833,19 @@ "name": "Fabien Potencier", "email": "fabien@symfony.com" }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v3.4.47" + "source": "https://github.com/symfony/css-selector/tree/v4.4.27" }, "funding": [ { @@ -10694,57 +10861,39 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-21T12:19:41+00:00" }, { - "name": "symfony/contracts", - "version": "v1.1.10", + "name": "symfony/debug", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/contracts.git", - "reference": "011c20407c4b99d454f44021d023fb39ce23b73d" + "url": "https://github.com/symfony/debug.git", + "reference": "2f9160e92eb64c95da7368c867b663a8e34e980c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/011c20407c4b99d454f44021d023fb39ce23b73d", - "reference": "011c20407c4b99d454f44021d023fb39ce23b73d", + "url": "https://api.github.com/repos/symfony/debug/zipball/2f9160e92eb64c95da7368c867b663a8e34e980c", + "reference": "2f9160e92eb64c95da7368c867b663a8e34e980c", "shasum": "" }, "require": { "php": ">=7.1.3", - "psr/cache": "^1.0", - "psr/container": "^1.0" + "psr/log": "^1|^2|^3" }, - "replace": { - "symfony/cache-contracts": "self.version", - "symfony/event-dispatcher-contracts": "self.version", - "symfony/http-client-contracts": "self.version", - "symfony/service-contracts": "self.version", - "symfony/translation-contracts": "self.version" + "conflict": { + "symfony/http-kernel": "<3.4" }, "require-dev": { - "symfony/polyfill-intl-idn": "^1.10" - }, - "suggest": { - "psr/event-dispatcher": "When using the EventDispatcher contracts", - "symfony/cache-implementation": "", - "symfony/event-dispatcher-implementation": "", - "symfony/http-client-implementation": "", - "symfony/service-implementation": "", - "symfony/translation-implementation": "" + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Contracts\\": "" + "Symfony\\Component\\Debug\\": "" }, "exclude-from-classmap": [ - "**/Tests/" + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -10753,26 +10902,18 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "A set of abstractions extracted out of the Symfony components", + "description": "Provides tools to ease debugging PHP code", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], "support": { - "source": "https://github.com/symfony/contracts/tree/v1.1.10" + "source": "https://github.com/symfony/debug/tree/v4.4.27" }, "funding": [ { @@ -10788,29 +10929,54 @@ "type": "tidelift" } ], - "time": "2020-09-02T16:08:58+00:00" + "time": "2021-07-22T07:21:39+00:00" }, { - "name": "symfony/css-selector", - "version": "v4.4.22", + "name": "symfony/dependency-injection", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "01c77324d1d47efbfd7891f62a7c256c69330115" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "52866e2cb314972ff36c5b3d405ba8f523e56f6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/01c77324d1d47efbfd7891f62a7c256c69330115", - "reference": "01c77324d1d47efbfd7891f62a7c256c69330115", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/52866e2cb314972ff36c5b3d405ba8f523e56f6e", + "reference": "52866e2cb314972ff36c5b3d405ba8f523e56f6e", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\CssSelector\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -10825,19 +10991,15 @@ "name": "Fabien Potencier", "email": "fabien@symfony.com" }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Converts CSS selectors to XPath expressions", + "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/css-selector/tree/v4.4.22" + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.27" }, "funding": [ { @@ -10853,40 +11015,38 @@ "type": "tidelift" } ], - "time": "2021-04-07T15:47:03+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { - "name": "symfony/debug", - "version": "v4.4.22", + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "45b2136377cca5f10af858968d6079a482bca473" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/45b2136377cca5f10af858968d6079a482bca473", - "reference": "45b2136377cca5f10af858968d6079a482bca473", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/polyfill-php80": "^1.15" - }, - "conflict": { - "symfony/http-kernel": "<3.4" - }, - "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" + "php": ">=7.1" }, "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" }, - "exclude-from-classmap": [ - "/Tests/" + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -10895,18 +11055,18 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to ease debugging PHP code", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.22" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" }, "funding": [ { @@ -10922,51 +11082,42 @@ "type": "tidelift" } ], - "time": "2021-04-02T07:50:12+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { - "name": "symfony/dependency-injection", - "version": "v3.4.47", + "name": "symfony/dom-crawler", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "86aa075c9e0b13ac7db8d73d1f9d8b656143881a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/51d2a2708c6ceadad84393f8581df1dcf9e5e84b", - "reference": "51d2a2708c6ceadad84393f8581df1dcf9e5e84b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/86aa075c9e0b13ac7db8d73d1f9d8b656143881a", + "reference": "86aa075c9e0b13ac7db8d73d1f9d8b656143881a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/container": "^1.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/config": "<3.3.7", - "symfony/finder": "<3.3", - "symfony/proxy-manager-bridge": "<3.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "psr/container-implementation": "1.0" + "masterminds/html5": "<2.6" }, "require-dev": { - "symfony/config": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" }, "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "symfony/css-selector": "" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" + "Symfony\\Component\\DomCrawler\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -10986,10 +11137,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DependencyInjection Component", + "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v3.4.47" + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.27" }, "funding": [ { @@ -11005,41 +11156,36 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v4.4.20", + "name": "symfony/error-handler", + "version": "v4.4.27", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "be133557f1b0e6672367325b508e65da5513a311" + "url": "https://github.com/symfony/error-handler.git", + "reference": "16ac2be1c0f49d6d9eb9d3ce9324bde268717905" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/be133557f1b0e6672367325b508e65da5513a311", - "reference": "be133557f1b0e6672367325b508e65da5513a311", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/16ac2be1c0f49d6d9eb9d3ce9324bde268717905", + "reference": "16ac2be1c0f49d6d9eb9d3ce9324bde268717905", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/css-selector": "" + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" + "Symfony\\Component\\ErrorHandler\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -11059,10 +11205,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Eases DOM navigation for HTML and XML documents", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v4.4.20" + "source": "https://github.com/symfony/error-handler/tree/v4.4.27" }, "funding": [ { @@ -11078,25 +11224,26 @@ "type": "tidelift" } ], - "time": "2021-02-14T12:29:41+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.3.4", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2" + "reference": "958a128b184fcf0ba45ec90c0e88554c9327c2e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/429d0a1451d4c9c4abe1959b2986b88794b9b7d2", - "reference": "429d0a1451d4c9c4abe1959b2986b88794b9b7d2", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/958a128b184fcf0ba45ec90c0e88554c9327c2e9", + "reference": "958a128b184fcf0ba45ec90c0e88554c9327c2e9", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/dependency-injection": "<3.4" @@ -11106,24 +11253,20 @@ "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "^3.4|^4.0", - "symfony/service-contracts": "^1.1", - "symfony/stopwatch": "~3.4|~4.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/dependency-injection": "", "symfony/http-kernel": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -11146,30 +11289,124 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "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.3.4" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.27" }, - "time": "2019-08-26T08:55:16+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-23T15:41:52+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-07-06T13:19:58+00:00" }, { "name": "symfony/filesystem", - "version": "v4.4.22", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "f0f06656a18304cdeacb2c4c0113a2b78a2b4c2a" + "reference": "517fb795794faf29086a77d99eb8f35e457837a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/f0f06656a18304cdeacb2c4c0113a2b78a2b4c2a", - "reference": "f0f06656a18304cdeacb2c4c0113a2b78a2b4c2a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/517fb795794faf29086a77d99eb8f35e457837a7", + "reference": "517fb795794faf29086a77d99eb8f35e457837a7", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -11197,7 +11434,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v4.4.22" + "source": "https://github.com/symfony/filesystem/tree/v4.4.27" }, "funding": [ { @@ -11213,24 +11450,25 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:24:12+00:00" + "time": "2021-07-21T12:19:41+00:00" }, { "name": "symfony/finder", - "version": "v4.4.20", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" + "reference": "42414d7ac96fc2880a783b872185789dea0d4262" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "url": "https://api.github.com/repos/symfony/finder/zipball/42414d7ac96fc2880a783b872185789dea0d4262", + "reference": "42414d7ac96fc2880a783b872185789dea0d4262", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -11258,7 +11496,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v4.4.20" + "source": "https://github.com/symfony/finder/tree/v4.4.27" }, "funding": [ { @@ -11274,29 +11512,109 @@ "type": "tidelift" } ], - "time": "2021-02-12T10:48:09+00:00" + "time": "2021-07-23T15:41:52+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-11T23:07:08+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.4.47", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8" + "reference": "7016057b01f0ed3ec3ba1f31a580b6661667c2e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b9885fcce6fe494201da4f70a9309770e9d13dc8", - "reference": "b9885fcce6fe494201da4f70a9309770e9d13dc8", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7016057b01f0ed3ec3ba1f31a580b6661667c2e1", + "reference": "7016057b01f0ed3ec3ba1f31a580b6661667c2e1", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php70": "~1.6" + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0|~4.0" + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" }, "type": "library", "autoload": { @@ -11321,10 +11639,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v3.4.47" + "source": "https://github.com/symfony/http-foundation/tree/v4.4.29" }, "funding": [ { @@ -11340,65 +11658,67 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-27T14:32:23+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.4.49", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "5aa72405f5bd5583c36ed6e756acb17d3f98ac40" + "reference": "752b170e1ba0dd4104e7fa17c1cef1ec8a7fc506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5aa72405f5bd5583c36ed6e756acb17d3f98ac40", - "reference": "5aa72405f5bd5583c36ed6e756acb17d3f98ac40", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/752b170e1ba0dd4104e7fa17c1cef1ec8a7fc506", + "reference": "752b170e1ba0dd4104e7fa17c1cef1ec8a7fc506", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0", - "symfony/debug": "^3.3.3|~4.0", - "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php56": "~1.8" + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/config": "<2.8", - "symfony/dependency-injection": "<3.4.10|<4.0.10,>=4", - "symfony/var-dumper": "<3.3", - "twig/twig": "<1.34|<2.4,>=2" + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" }, "provide": { - "psr/log-implementation": "1.0" - }, - "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~2.8|~3.0|~4.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/console": "~2.8|~3.0|~4.0", - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "^3.4.10|^4.0.10", - "symfony/dom-crawler": "~2.8|~3.0|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~2.8|~3.0|~4.0", - "symfony/templating": "~2.8|~3.0|~4.0", - "symfony/translation": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0" + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", "symfony/config": "", "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" + "symfony/dependency-injection": "" }, "type": "library", "autoload": { @@ -11423,10 +11743,93 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpKernel Component", + "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.29" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-29T06:45:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "633e4e8afe9e529e5599d71238849a4218dd497b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/633e4e8afe9e529e5599d71238849a4218dd497b", + "reference": "633e4e8afe9e529e5599d71238849a4218dd497b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.1", + "symfony/property-info": "^4.4|^5.1", + "symfony/serializer": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], "support": { - "source": "https://github.com/symfony/http-kernel/tree/v3.4.49" + "source": "https://github.com/symfony/mime/tree/v5.3.4" }, "funding": [ { @@ -11442,7 +11845,7 @@ "type": "tidelift" } ], - "time": "2021-05-19T12:06:59+00:00" + "time": "2021-07-21T12:40:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -11776,16 +12179,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -11836,7 +12239,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -11852,35 +12255,43 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { - "name": "symfony/polyfill-php56", - "version": "v1.20.0", + "name": "symfony/polyfill-php72", + "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", - "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", "shasum": "" }, "require": { "php": ">=7.1" }, - "type": "metapackage", + "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -11895,7 +12306,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -11904,7 +12315,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php56/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" }, "funding": [ { @@ -11920,35 +12331,46 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", + "name": "symfony/polyfill-php73", + "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { "php": ">=7.1" }, - "type": "metapackage", + "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -11963,7 +12385,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -11972,7 +12394,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" }, "funding": [ { @@ -11988,20 +12410,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.23.0", + "name": "symfony/polyfill-php80", + "version": "v1.23.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { @@ -12019,10 +12441,13 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "files": [ "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -12030,6 +12455,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -12039,7 +12468,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -12048,7 +12477,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" }, "funding": [ { @@ -12064,20 +12493,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:17:38+00:00" + "time": "2021-07-28T13:41:28+00:00" }, { - "name": "symfony/polyfill-php80", + "name": "symfony/polyfill-php81", "version": "v1.23.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "e66119f3de95efc359483f810c4c3e6436279436" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", - "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436", + "reference": "e66119f3de95efc359483f810c4c3e6436279436", "shasum": "" }, "require": { @@ -12095,7 +12524,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "files": [ "bootstrap.php" @@ -12109,10 +12538,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -12122,7 +12547,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -12131,7 +12556,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0" }, "funding": [ { @@ -12147,24 +12572,25 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2021-05-21T13:25:03+00:00" }, { "name": "symfony/process", - "version": "v3.4.47", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca" + "reference": "0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b8648cf1d5af12a44a51d07ef9bf980921f15fca", - "reference": "b8648cf1d5af12a44a51d07ef9bf980921f15fca", + "url": "https://api.github.com/repos/symfony/process/zipball/0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f", + "reference": "0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -12189,10 +12615,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v3.4.47" + "source": "https://github.com/symfony/process/tree/v4.4.27" }, "funding": [ { @@ -12208,31 +12634,36 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v1.2.0", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad" + "reference": "c9012994c4b4fb23e7c57dd86b763a417a04feba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad", - "reference": "9ab9d71f97d5c7d35a121a7fb69f74fee95cd0ad", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c9012994c4b4fb23e7c57dd86b763a417a04feba", + "reference": "c9012994c4b4fb23e7c57dd86b763a417a04feba", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "psr/http-message": "^1.0", - "symfony/http-foundation": "^3.4 || ^4.0" + "symfony/http-foundation": "^4.4 || ^5.0" }, "require-dev": { "nyholm/psr7": "^1.1", - "symfony/phpunit-bridge": "^3.4.20 || ^4.0", - "zendframework/zend-diactoros": "^1.4.1 || ^2.0" + "psr/log": "^1.1 || ^2 || ^3", + "symfony/browser-kit": "^4.4 || ^5.0", + "symfony/config": "^4.4 || ^5.0", + "symfony/event-dispatcher": "^4.4 || ^5.0", + "symfony/framework-bundle": "^4.4 || ^5.0", + "symfony/http-kernel": "^4.4 || ^5.0", + "symfony/phpunit-bridge": "^4.4.19 || ^5.2" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" @@ -12240,7 +12671,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-main": "2.1-dev" } }, "autoload": { @@ -12256,13 +12687,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" } ], "description": "PSR HTTP message bridge", @@ -12275,40 +12706,55 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/master" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.1" }, - "time": "2019-03-11T18:22:33+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-27T17:25:39+00:00" }, { "name": "symfony/routing", - "version": "v3.4.47", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c" + "reference": "244609821beece97167fa7ba4eef49d2a31862db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3e522ac69cadffd8131cc2b22157fa7662331a6c", - "reference": "3e522ac69cadffd8131cc2b22157fa7662331a6c", + "url": "https://api.github.com/repos/symfony/routing/zipball/244609821beece97167fa7ba4eef49d2a31862db", + "reference": "244609821beece97167fa7ba4eef49d2a31862db", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/config": "<3.3.1", - "symfony/dependency-injection": "<3.3", + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "^3.3.1|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/yaml": "~3.4|~4.0" + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -12340,7 +12786,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Routing Component", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ "router", @@ -12349,7 +12795,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v3.4.47" + "source": "https://github.com/symfony/routing/tree/v4.4.27" }, "funding": [ { @@ -12365,48 +12811,51 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/serializer", - "version": "v3.4.47", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "6d69ccc1dcfb64c1e9c9444588643e98718d1849" + "reference": "85b67b809a8a1c06aa67dea3d6c442380d071864" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/6d69ccc1dcfb64c1e9c9444588643e98718d1849", - "reference": "6d69ccc1dcfb64c1e9c9444588643e98718d1849", + "url": "https://api.github.com/repos/symfony/serializer/zipball/85b67b809a8a1c06aa67dea3d6c442380d071864", + "reference": "85b67b809a8a1c06aa67dea3d6c442380d071864", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpdocumentor/type-resolver": "<0.2.1", - "symfony/dependency-injection": "<3.2", - "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", - "symfony/property-info": "<3.1", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "symfony/dependency-injection": "<3.4", + "symfony/property-access": "<3.4", + "symfony/property-info": "<3.4", "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.1|~4.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.2|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/property-info": "^3.4.13|~4.0", - "symfony/yaml": "~3.4|~4.0" + "doctrine/annotations": "^1.10.4", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "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-info": "^3.4.13|~4.0|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "doctrine/annotations": "For using the annotation mapping.", "psr/cache-implementation": "For using the metadata cache.", "symfony/config": "For using the XML mapping loader.", "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.", @@ -12437,10 +12886,89 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Serializer Component", + "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.27" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-21T13:02:15+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "source": "https://github.com/symfony/serializer/tree/v3.4.47" + "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" }, "funding": [ { @@ -12456,40 +12984,47 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-04-01T10:43:52+00:00" }, { "name": "symfony/translation", - "version": "v3.4.47", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88" + "reference": "2e3c0f2bf704d635ba862e7198d72331a62d82ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/be83ee6c065cb32becdb306ba61160d598b1ce88", - "reference": "be83ee6c065cb32becdb306ba61160d598b1ce88", + "url": "https://api.github.com/repos/symfony/translation/zipball/2e3c0f2bf704d635ba862e7198d72331a62d82ba", + "reference": "2e3c0f2bf704d635ba862e7198d72331a62d82ba", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<2.8", + "symfony/config": "<3.4", "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", "symfony/yaml": "<3.4" }, + "provide": { + "symfony/translation-implementation": "1.0|2.0" + }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/finder": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -12519,10 +13054,88 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v4.4.27" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-21T13:12:00+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "source": "https://github.com/symfony/translation/tree/v3.4.47" + "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" }, "funding": [ { @@ -12538,60 +13151,68 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/validator", - "version": "v3.4.47", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "d25ceea5c99022aecf37adf157c76c31fc5dcbed" + "reference": "43ee727eac546610f8da01cf69857fde34b394ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/d25ceea5c99022aecf37adf157c76c31fc5dcbed", - "reference": "d25ceea5c99022aecf37adf157c76c31fc5dcbed", + "url": "https://api.github.com/repos/symfony/validator/zipball/43ee727eac546610f8da01cf69857fde34b394ea", + "reference": "43ee727eac546610f8da01cf69857fde34b394ea", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.8|~3.0|~4.0" + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2" }, "conflict": { "doctrine/lexer": "<1.0.2", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/dependency-injection": "<3.3", - "symfony/http-kernel": "<3.3.5", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.3", + "symfony/translation": ">=5.0", "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "~1.7", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10", - "symfony/cache": "~3.1|~4.0", - "symfony/config": "~2.8|~3.0|~4.0", - "symfony/dependency-injection": "~3.3|~4.0", - "symfony/expression-language": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "~2.8|~3.0|~4.0", - "symfony/http-kernel": "^3.3.5|~4.0", - "symfony/intl": "^2.8.18|^3.2.5|~4.0", - "symfony/property-access": "~2.8|~3.0|~4.0", - "symfony/var-dumper": "~3.3|~4.0", - "symfony/yaml": "~3.4|~4.0" + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "egulias/email-validator": "^2.1.10|^3", + "symfony/cache": "^3.4|^4.0|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/http-foundation": "^4.1|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^4.3|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "doctrine/cache": "For using the default cached annotation reader.", "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the metadata cache.", + "psr/cache-implementation": "For using the mapping cache.", "symfony/config": "", "symfony/expression-language": "For using the Expression validator", "symfony/http-foundation": "", "symfony/intl": "", "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", "symfony/yaml": "" }, "type": "library", @@ -12617,10 +13238,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Validator Component", + "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v3.4.47" + "source": "https://github.com/symfony/validator/tree/v4.4.29" }, "funding": [ { @@ -12636,37 +13257,36 @@ "type": "tidelift" } ], - "time": "2020-10-28T05:23:51+00:00" + "time": "2021-07-27T06:31:16+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.22", + "version": "v5.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7" + "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7", - "reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0", + "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", + "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -12709,7 +13329,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.22" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.6" }, "funding": [ { @@ -12725,31 +13345,31 @@ "type": "tidelift" } ], - "time": "2021-04-19T13:36:17+00:00" + "time": "2021-07-27T01:56:02+00:00" }, { "name": "symfony/yaml", - "version": "v3.4.47", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "88289caa3c166321883f67fe5130188ebbb47094" + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/88289caa3c166321883f67fe5130188ebbb47094", - "reference": "88289caa3c166321883f67fe5130188ebbb47094", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": ">=7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/console": "<3.4" }, "require-dev": { - "symfony/console": "~3.4|~4.0" + "symfony/console": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -12777,10 +13397,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v3.4.47" + "source": "https://github.com/symfony/yaml/tree/v4.4.29" }, "funding": [ { @@ -12796,25 +13416,26 @@ "type": "tidelift" } ], - "time": "2020-10-24T10:57:07+00:00" + "time": "2021-07-27T16:19:30+00:00" }, { "name": "twig/twig", - "version": "v1.44.4", + "version": "v2.14.6", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "4d400421528e9fa40caaffcf7824c172526dd99d" + "reference": "27e5cf2b05e3744accf39d4c68a3235d9966d260" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/4d400421528e9fa40caaffcf7824c172526dd99d", - "reference": "4d400421528e9fa40caaffcf7824c172526dd99d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/27e5cf2b05e3744accf39d4c68a3235d9966d260", + "reference": "27e5cf2b05e3744accf39d4c68a3235d9966d260", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8" + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { "psr/container": "^1.0", @@ -12823,7 +13444,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.44-dev" + "dev-master": "2.14-dev" } }, "autoload": { @@ -12862,7 +13483,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.44.4" + "source": "https://github.com/twigphp/Twig/tree/v2.14.6" }, "funding": [ { @@ -12874,7 +13495,7 @@ "type": "tidelift" } ], - "time": "2021-05-16T12:11:20+00:00" + "time": "2021-05-16T12:12:47+00:00" }, { "name": "typo3/phar-stream-wrapper", @@ -13272,41 +13893,39 @@ "packages-dev": [ { "name": "behat/behat", - "version": "v3.3.0", + "version": "v3.8.1", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "15a3a1857457eaa29cdf41564a5e421effb09526" + "reference": "fbb065457d523d9856d4b50775b4151a7598b510" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/15a3a1857457eaa29cdf41564a5e421effb09526", - "reference": "15a3a1857457eaa29cdf41564a5e421effb09526", + "url": "https://api.github.com/repos/Behat/Behat/zipball/fbb065457d523d9856d4b50775b4151a7598b510", + "reference": "fbb065457d523d9856d4b50775b4151a7598b510", "shasum": "" }, "require": { - "behat/gherkin": "^4.4.4", - "behat/transliterator": "~1.0", - "container-interop/container-interop": "^1.1", + "behat/gherkin": "^4.6.0", + "behat/transliterator": "^1.2", "ext-mbstring": "*", - "php": ">=5.3.3", - "symfony/class-loader": "~2.1||~3.0", - "symfony/config": "~2.3||~3.0", - "symfony/console": "~2.5||~3.0", - "symfony/dependency-injection": "~2.1||~3.0", - "symfony/event-dispatcher": "~2.1||~3.0", - "symfony/translation": "~2.3||~3.0", - "symfony/yaml": "~2.1||~3.0" + "php": "^7.2 || ^8.0", + "psr/container": "^1.0", + "symfony/config": "^4.4 || ^5.0", + "symfony/console": "^4.4 || ^5.0", + "symfony/dependency-injection": "^4.4 || ^5.0", + "symfony/event-dispatcher": "^4.4 || ^5.0", + "symfony/translation": "^4.4 || ^5.0", + "symfony/yaml": "^4.4 || ^5.0" }, "require-dev": { + "container-interop/container-interop": "^1.2", "herrera-io/box": "~1.6.1", - "phpunit/phpunit": "~4.5", - "symfony/process": "~2.5|~3.0" + "phpunit/phpunit": "^8.5 || ^9.0", + "symfony/process": "^4.4 || ^5.0" }, "suggest": { - "behat/mink-extension": "for integration with Mink testing framework", - "behat/symfony2-extension": "for integration with Symfony2 web framework", - "behat/yii-extension": "for integration with Yii web framework" + "ext-dom": "Needed to output test results in JUnit format." }, "bin": [ "bin/behat" @@ -13314,13 +13933,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "3.8.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Behat": "src/", - "Behat\\Testwork": "src/" + "psr-4": { + "Behat\\Behat\\": "src/Behat/Behat/", + "Behat\\Testwork\\": "src/Behat/Testwork/" } }, "notification-url": "https://packagist.org/downloads/", @@ -13334,7 +13953,7 @@ "homepage": "http://everzet.com" } ], - "description": "Scenario-oriented BDD framework for PHP 5.3", + "description": "Scenario-oriented BDD framework for PHP", "homepage": "http://behat.org/", "keywords": [ "Agile", @@ -13352,9 +13971,9 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.3.0" + "source": "https://github.com/Behat/Behat/tree/v3.8.1" }, - "time": "2016-12-25T13:43:52+00:00" + "time": "2020-11-07T15:55:18+00:00" }, { "name": "behat/gherkin", @@ -13784,21 +14403,21 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.6", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c" + "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", - "reference": "f27e06cd9675801df441b3656569b328e04aa37c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339", + "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0" + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^0.12.55", @@ -13828,7 +14447,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" + "source": "https://github.com/composer/xdebug-handler/tree/2.0.2" }, "funding": [ { @@ -13844,7 +14463,7 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:01:18+00:00" + "time": "2021-07-31T17:03:58+00:00" }, { "name": "dmore/behat-chrome-extension", @@ -14136,16 +14755,16 @@ }, { "name": "instaclick/php-webdriver", - "version": "1.4.7", + "version": "1.4.9", "source": { "type": "git", "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712" + "reference": "961b12178cb71f8667afaf2f66ab3e000e060e1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/b5f330e900e9b3edfc18024a5ec8c07136075712", - "reference": "b5f330e900e9b3edfc18024a5ec8c07136075712", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/961b12178cb71f8667afaf2f66ab3e000e060e1c", + "reference": "961b12178cb71f8667afaf2f66ab3e000e060e1c", "shasum": "" }, "require": { @@ -14193,22 +14812,22 @@ ], "support": { "issues": "https://github.com/instaclick/php-webdriver/issues", - "source": "https://github.com/instaclick/php-webdriver/tree/1.x" + "source": "https://github.com/instaclick/php-webdriver/tree/1.4.9" }, - "time": "2019-09-25T09:05:11+00:00" + "time": "2021-06-28T22:23:20+00:00" }, { "name": "jean85/pretty-package-versions", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "b2c4ec2033a0196317a467cb197c7c843b794ddf" + "reference": "694492c653c518456af2805f04eec445b997ed1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/b2c4ec2033a0196317a467cb197c7c843b794ddf", - "reference": "b2c4ec2033a0196317a467cb197c7c843b794ddf", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/694492c653c518456af2805f04eec445b997ed1f", + "reference": "694492c653c518456af2805f04eec445b997ed1f", "shasum": "" }, "require": { @@ -14252,28 +14871,28 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.3" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.4" }, - "time": "2021-02-22T10:52:38+00:00" + "time": "2021-05-26T08:46:42+00:00" }, { "name": "mglaman/drupal-check", - "version": "1.1.8", + "version": "1.1.10", "source": { "type": "git", "url": "https://github.com/mglaman/drupal-check.git", - "reference": "58549723fb306112ca367861a6e03032edc3d285" + "reference": "b7bcfb2f766332a888bb6d550dedbb508a3a9d41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/drupal-check/zipball/58549723fb306112ca367861a6e03032edc3d285", - "reference": "58549723fb306112ca367861a6e03032edc3d285", + "url": "https://api.github.com/repos/mglaman/drupal-check/zipball/b7bcfb2f766332a888bb6d550dedbb508a3a9d41", + "reference": "b7bcfb2f766332a888bb6d550dedbb508a3a9d41", "shasum": "" }, "require": { - "composer/xdebug-handler": "^1.3", + "composer/xdebug-handler": "^1.1 | ^2.0.1", "jean85/pretty-package-versions": "^1.5.0 || ^2.0.1", - "mglaman/phpstan-drupal": "^0.12.8", + "mglaman/phpstan-drupal": "^0.12.12", "nette/neon": "^3.1", "php": "^7.2.5|^8.0", "phpstan/phpstan-deprecation-rules": "^0.12.6", @@ -14313,7 +14932,7 @@ "description": "CLI tool for running checks on a Drupal code base", "support": { "issues": "https://github.com/mglaman/drupal-check/issues", - "source": "https://github.com/mglaman/drupal-check/tree/1.1.8" + "source": "https://github.com/mglaman/drupal-check/tree/1.1.10" }, "funding": [ { @@ -14329,26 +14948,26 @@ "type": "tidelift" } ], - "time": "2021-03-17T21:31:35+00:00" + "time": "2021-07-22T03:52:26+00:00" }, { "name": "mglaman/phpstan-drupal", - "version": "0.12.9", + "version": "0.12.12", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "f2e1446663fe38a12b1270d35bc332d8806f9f75" + "reference": "548fa7cb31239997863bf695f04a9fefd04c7288" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/f2e1446663fe38a12b1270d35bc332d8806f9f75", - "reference": "f2e1446663fe38a12b1270d35bc332d8806f9f75", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/548fa7cb31239997863bf695f04a9fefd04c7288", + "reference": "548fa7cb31239997863bf695f04a9fefd04c7288", "shasum": "" }, "require": { "nette/finder": "^2.5", "php": "^7.1 || ^8.0", - "phpstan/phpstan": "^0.12.64", + "phpstan/phpstan": "^0.12.65", "symfony/yaml": "~3.4.5|^4.2", "webflo/drupal-finder": "^1.2" }, @@ -14414,7 +15033,7 @@ "description": "Drupal extension and rules for PHPStan", "support": { "issues": "https://github.com/mglaman/phpstan-drupal/issues", - "source": "https://github.com/mglaman/phpstan-drupal/tree/0.12.9" + "source": "https://github.com/mglaman/phpstan-drupal/tree/0.12.12" }, "funding": [ { @@ -14430,7 +15049,7 @@ "type": "tidelift" } ], - "time": "2021-03-11T00:17:32+00:00" + "time": "2021-07-21T20:46:24+00:00" }, { "name": "nette/finder", @@ -14566,16 +15185,16 @@ }, { "name": "nette/utils", - "version": "v3.2.2", + "version": "v3.2.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" + "reference": "5c36cc1ba9bb6abb8a9e425cf054e0c3fd5b9822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", + "url": "https://api.github.com/repos/nette/utils/zipball/5c36cc1ba9bb6abb8a9e425cf054e0c3fd5b9822", + "reference": "5c36cc1ba9bb6abb8a9e425cf054e0c3fd5b9822", "shasum": "" }, "require": { @@ -14645,22 +15264,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.2" + "source": "https://github.com/nette/utils/tree/v3.2.3" }, - "time": "2021-03-03T22:53:25+00:00" + "time": "2021-08-16T21:05:00+00:00" }, { "name": "phpstan/phpstan", - "version": "0.12.86", + "version": "0.12.96", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "a84fdc53ecca7643dbc89ef8880d8b393a6c155a" + "reference": "a98bdc51318f20fcae8c953d266f81a70254917f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a84fdc53ecca7643dbc89ef8880d8b393a6c155a", - "reference": "a84fdc53ecca7643dbc89ef8880d8b393a6c155a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a98bdc51318f20fcae8c953d266f81a70254917f", + "reference": "a98bdc51318f20fcae8c953d266f81a70254917f", "shasum": "" }, "require": { @@ -14691,13 +15310,17 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.86" + "source": "https://github.com/phpstan/phpstan/tree/0.12.96" }, "funding": [ { "url": "https://github.com/ondrejmirtes", "type": "github" }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, { "url": "https://www.patreon.com/phpstan", "type": "patreon" @@ -14707,7 +15330,7 @@ "type": "tidelift" } ], - "time": "2021-05-08T11:29:01+00:00" + "time": "2021-08-21T11:55:13+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -14762,21 +15385,22 @@ }, { "name": "symfony/browser-kit", - "version": "v4.4.22", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1" + "reference": "9629d1524d8ced5a4ec3e94abdbd638b4ec8319b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1", - "reference": "4c8b42b4aae93517e8f67d68c5cbe69413e3e3c1", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/9629d1524d8ced5a4ec3e94abdbd638b4ec8319b", + "reference": "9629d1524d8ced5a4ec3e94abdbd638b4ec8319b", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { "symfony/css-selector": "^3.4|^4.0|^5.0", @@ -14813,7 +15437,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v4.4.22" + "source": "https://github.com/symfony/browser-kit/tree/v4.4.27" }, "funding": [ { @@ -14829,25 +15453,25 @@ "type": "tidelift" } ], - "time": "2021-04-08T07:40:10+00:00" + "time": "2021-07-21T12:19:41+00:00" }, { "name": "textalk/websocket", - "version": "1.5.3", + "version": "1.5.5", "source": { "type": "git", "url": "https://github.com/Textalk/websocket-php.git", - "reference": "25f6e322bfaf978a665391efdddc135d4edd60eb" + "reference": "846542f82658132cd36acb7a7e8ce0f03960c295" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Textalk/websocket-php/zipball/25f6e322bfaf978a665391efdddc135d4edd60eb", - "reference": "25f6e322bfaf978a665391efdddc135d4edd60eb", + "url": "https://api.github.com/repos/Textalk/websocket-php/zipball/846542f82658132cd36acb7a7e8ce0f03960c295", + "reference": "846542f82658132cd36acb7a7e8ce0f03960c295", "shasum": "" }, "require": { "php": "^7.2 | ^8.0", - "psr/log": "^1.0" + "psr/log": "^1 | ^2 | ^3" }, "require-dev": { "php-coveralls/php-coveralls": "^2.0", @@ -14876,26 +15500,23 @@ "description": "WebSocket client and server", "support": { "issues": "https://github.com/Textalk/websocket-php/issues", - "source": "https://github.com/Textalk/websocket-php/tree/1.5.3" + "source": "https://github.com/Textalk/websocket-php/tree/1.5.5" }, - "time": "2021-04-18T15:27:16+00:00" - } - ], - "aliases": [ - { - "package": "symfony/event-dispatcher", - "version": "4.3.4.0", - "alias": "3.4.99", - "alias_normalized": "3.4.99.0" + "time": "2021-08-07T10:21:40+00:00" } ], + "aliases": [], "minimum-stability": "dev", "stability-flags": { "drupal/auto_entitylabel": 10, "drupal/entity_staging": 20, "drupal/layout_builder_styles": 10, + "drupal/layout_paragraphs": 10, + "drupal/linkit": 10, "drupal/media_bulk_upload": 15, "drupal/menu_block": 20, + "drupal/search_api_glossary": 20, + "drupal/section_library": 10, "drupal/view_unpublished": 5, "jsanahuja/jqueryinstagramfeed": 20, "kporras07/composer-symlinks": 20 @@ -14904,5 +15525,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } diff --git a/config/content/files/media-icons/generic/audio.png b/config/content/files/media-icons/generic/audio.png new file mode 100644 index 000000000..8ae7f9999 Binary files /dev/null and b/config/content/files/media-icons/generic/audio.png differ diff --git a/config/default/core.entity_view_display.block_content.link_group.default.yml b/config/default/core.entity_view_display.block_content.link_group.default.yml index 953d321e0..6611c568e 100644 --- a/config/default/core.entity_view_display.block_content.link_group.default.yml +++ b/config/default/core.entity_view_display.block_content.link_group.default.yml @@ -29,7 +29,7 @@ mode: default content: field_automatic_article_type: weight: 1 - label: above + label: hidden settings: link: true third_party_settings: { } @@ -37,7 +37,7 @@ content: region: content field_automatic_event_type: weight: 2 - label: above + label: hidden settings: link: true third_party_settings: { } diff --git a/config/default/core.extension.yml b/config/default/core.extension.yml index adac9484b..517d621cf 100644 --- a/config/default/core.extension.yml +++ b/config/default/core.extension.yml @@ -53,7 +53,6 @@ module: imagemagick: 0 inline_entity_form: 0 jsonapi: 0 - kint: 0 language: 0 layout_builder: 0 layout_builder_browser: 0 @@ -116,12 +115,12 @@ module: extlink: 1 menu_link_content: 1 views: 10 - minimal: 1000 + standard: 1000 theme: classy: 0 provus: 0 seven: 0 stable: 0 -profile: minimal +profile: standard _core: default_config_hash: R4IF-ClDHXxblLcG0L7MgsLvfBIMAvi_skumNFQwkDc diff --git a/config/default/shortcut.set.default.yml b/config/default/shortcut.set.default.yml deleted file mode 100644 index 7c22288e8..000000000 --- a/config/default/shortcut.set.default.yml +++ /dev/null @@ -1,8 +0,0 @@ -uuid: 55275f81-0690-4726-a38c-f591ff1085e3 -langcode: en -status: true -dependencies: { } -_core: - default_config_hash: U5VlGjd_SfV0Qm_EfnaynOfc549cNscFAx48JfYoMRI -id: default -label: Default diff --git a/src/modules/provus_blocks/provus_blocks.info.yml b/src/modules/provus_blocks/provus_blocks.info.yml index 75a7bbd32..6c8b56c1e 100644 --- a/src/modules/provus_blocks/provus_blocks.info.yml +++ b/src/modules/provus_blocks/provus_blocks.info.yml @@ -1,7 +1,7 @@ name: 'Provus Blocks' type: module description: 'Custom provus blocks.' -core: 8.x +core_version_requirement: ^8 || ^9 package: 'provus' dependencies: diff --git a/src/modules/provus_blocks/provus_blocks.module b/src/modules/provus_blocks/provus_blocks.module index 81fe65740..1595ca8b5 100644 --- a/src/modules/provus_blocks/provus_blocks.module +++ b/src/modules/provus_blocks/provus_blocks.module @@ -69,12 +69,14 @@ function provus_blocks_preprocess_field(&$vars) { if (isset($item['content']['#media'])) { $fid = $item['content']['#media']->getSource()->getSourceFieldValue($item['content']['#media']); $file = File::load($fid); - $url_full = $file->url(); - $style = ImageStyle::load('thumbnail'); - $url_thumbnail = $style->buildUrl($file->getFileUri()); - $vars['items'][$key]['image_thumb_src'] = $url_thumbnail; - $vars['items'][$key]['image_src'] = $url_full; - $vars['items'][$key]['image_alt'] = $item['content']['#media']->get('field_media_image')->first()->get('alt')->getString(); + if ($file instanceof File) { + $url_full = $file->createFileUrl(); + $style = ImageStyle::load('thumbnail'); + $url_thumbnail = $style->buildUrl($file->getFileUri()); + $vars['items'][$key]['image_thumb_src'] = $url_thumbnail; + $vars['items'][$key]['image_src'] = $url_full; + $vars['items'][$key]['image_alt'] = $item['content']['#media']->get('field_media_image')->first()->get('alt')->getString(); + } } } } diff --git a/src/modules/provus_department/composer.json b/src/modules/provus_department/composer.json new file mode 100644 index 000000000..eea6a060d --- /dev/null +++ b/src/modules/provus_department/composer.json @@ -0,0 +1,18 @@ +{ + "name": "drupal/provus_department", + "description": "Departments as groups for Provus", + "type": "drupal-module", + "license": "GPL-2.0-or-later", + "minimum-stability": "dev", + "authors": [ + { + "name": "acouch", + "homepage": "https://www.drupal.org/u/acouch", + "email": "acinternets@gmail.com" + } + ], + "require": { + "drupal/group": "^1.4", + "drupal/group_content_menu": "^1.0" + } +} diff --git a/src/modules/provus_department/provus_department.info.yml b/src/modules/provus_department/provus_department.info.yml new file mode 100644 index 000000000..948e02002 --- /dev/null +++ b/src/modules/provus_department/provus_department.info.yml @@ -0,0 +1,8 @@ +name: Provus Department +type: module +description: Departments as groups for Provus +package: Provus +core: 8.x +core_version_requirement: ^8 || ^9 +dependencies: + - group diff --git a/src/modules/provus_department/provus_department.module b/src/modules/provus_department/provus_department.module new file mode 100644 index 000000000..0138b2552 --- /dev/null +++ b/src/modules/provus_department/provus_department.module @@ -0,0 +1,10 @@ +' . t('About') . ''; - $output .= '

' . t('Provus Migrate Example') . '

'; - return $output; - - default: - } -} diff --git a/src/patches/2942975-drupal_8_9_x-137.patch b/src/patches/2942975-drupal_8_9_x-137.patch deleted file mode 100644 index ad73f6055..000000000 --- a/src/patches/2942975-drupal_8_9_x-137.patch +++ /dev/null @@ -1,528 +0,0 @@ -diff --git a/core/modules/layout_builder/config/schema/layout_builder.schema.yml b/core/modules/layout_builder/config/schema/layout_builder.schema.yml -index 862c90ecbe..f657f0ecc3 100644 ---- a/core/modules/layout_builder/config/schema/layout_builder.schema.yml -+++ b/core/modules/layout_builder/config/schema/layout_builder.schema.yml -@@ -66,6 +66,12 @@ inline_block: - block_serialized: - type: string - label: 'Serialized block' -+ type: -+ type: string -+ label: 'Block type' -+ uuid: -+ type: string -+ label: 'Block UUID' - - block.settings.inline_block:*: - type: inline_block -diff --git a/core/modules/layout_builder/layout_builder.services.yml b/core/modules/layout_builder/layout_builder.services.yml -index b2ee1fe13e..4bd651a0ea 100644 ---- a/core/modules/layout_builder/layout_builder.services.yml -+++ b/core/modules/layout_builder/layout_builder.services.yml -@@ -58,3 +58,14 @@ services: - class: Drupal\layout_builder\Controller\LayoutBuilderHtmlEntityFormController - public: false - arguments: ['@layout_builder.controller.entity_form.inner'] -+ layout_builder.normalizer.entity_display: -+ class: Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer -+ tags: -+ # Priority must be higher than serializer.normalizer.config_entity. -+ - { name: normalizer, priority: 1 } -+ arguments: ['@entity_type.manager', '@entity_type.repository', '@entity_field.manager'] -+ layout_builder.normalizer.section_data: -+ class: Drupal\layout_builder\Normalizer\SectionDataNormalizer -+ tags: -+ # Priority must be higher than serializer.normalizer.typed_data. -+ - { name: normalizer, priority: 1 } -diff --git a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php -index 3243be97a6..d92cbdc14b 100644 ---- a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php -+++ b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php -@@ -101,7 +101,10 @@ public function equals(FieldItemListInterface $list_to_compare) { - * @ingroup layout_builder_access - */ - public function defaultAccess($operation = 'view', AccountInterface $account = NULL) { -- // @todo Allow access in https://www.drupal.org/node/2942975. -+ if ($operation === 'view') { -+ return parent::defaultAccess($operation, $account); -+ } -+ - return AccessResult::forbidden(); - } - -diff --git a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php -index 71005ee48c..3b11198991 100644 ---- a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php -+++ b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php -@@ -5,8 +5,6 @@ - use Drupal\Core\DependencyInjection\ContainerBuilder; - use Drupal\Core\DependencyInjection\ServiceProviderInterface; - use Drupal\layout_builder\EventSubscriber\SetInlineBlockDependency; --use Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer; --use Symfony\Component\DependencyInjection\ChildDefinition; - use Symfony\Component\DependencyInjection\Definition; - use Symfony\Component\DependencyInjection\Reference; - -@@ -39,14 +37,6 @@ public function register(ContainerBuilder $container) { - $definition->addTag('event_subscriber'); - $container->setDefinition('layout_builder.get_block_dependency_subscriber', $definition); - } -- if (isset($modules['serialization'])) { -- $definition = (new ChildDefinition('serializer.normalizer.config_entity')) -- ->setClass(LayoutEntityDisplayNormalizer::class) -- // Ensure that this normalizer takes precedence for Layout Builder data -- // over the generic serializer.normalizer.config_entity. -- ->addTag('normalizer', ['priority' => 5]); -- $container->setDefinition('layout_builder.normalizer.layout_entity_display', $definition); -- } - } - - } -diff --git a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php -index 886304fa29..720767e1a4 100644 ---- a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php -+++ b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php -@@ -3,6 +3,7 @@ - namespace Drupal\layout_builder\Normalizer; - - use Drupal\layout_builder\Entity\LayoutEntityDisplayInterface; -+use Drupal\layout_builder\Section; - use Drupal\serialization\Normalizer\ConfigEntityNormalizer; - - /** -@@ -21,13 +22,26 @@ class LayoutEntityDisplayNormalizer extends ConfigEntityNormalizer { - /** - * {@inheritdoc} - */ -- protected static function getDataWithoutInternals(array $data) { -- $data = parent::getDataWithoutInternals($data); -- // Do not expose the actual layout sections in normalization. -- // @todo Determine what to expose here in -- // https://www.drupal.org/node/2942975. -- unset($data['third_party_settings']['layout_builder']['sections']); -+ public function normalize($object, $format = NULL, array $context = []) { -+ $data = static::getDataWithoutInternals($object->toArray()); -+ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { -+ $sections = &$data['third_party_settings']['layout_builder']['sections']; -+ $sections = array_map(static function (Section $section) { -+ return $section->toArray(); -+ }, $sections); -+ } - return $data; - } - -+ /** -+ * {@inheritdoc} -+ */ -+ public function denormalize($data, $class, $format = NULL, array $context = []) { -+ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { -+ $sections = &$data['third_party_settings']['layout_builder']['sections']; -+ $sections = array_map([Section::class, 'fromArray'], $sections); -+ } -+ return parent::denormalize(static::getDataWithoutInternals($data), $class, $format, $context); -+ } -+ - } -diff --git a/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php -new file mode 100644 -index 0000000000..5674439586 ---- /dev/null -+++ b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php -@@ -0,0 +1,34 @@ -+getValue()->toArray(); -+ } -+ -+ /** -+ * {@inheritdoc} -+ */ -+ public function denormalize($data, $class, $format = NULL, array $context = []) { -+ return Section::fromArray($data); -+ } -+ -+} -diff --git a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php -index 01f64eb37f..1edbe61e2a 100644 ---- a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php -+++ b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php -@@ -234,6 +234,10 @@ protected function getEntity() { - if (!empty($this->configuration['block_serialized'])) { - $this->blockContent = unserialize($this->configuration['block_serialized']); - } -+ elseif (!empty($this->configuration['uuid'])) { -+ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); -+ $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; -+ } - elseif (!empty($this->configuration['block_revision_id'])) { - $entity = $this->entityTypeManager->getStorage('block_content')->loadRevision($this->configuration['block_revision_id']); - $this->blockContent = $entity; -@@ -279,7 +283,11 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE - $block = unserialize($this->configuration['block_serialized']); - } - if ($duplicate_block) { -- if (empty($block) && !empty($this->configuration['block_revision_id'])) { -+ if (empty($block) && !empty($this->configuration['uuid'])) { -+ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); -+ $block = !empty($entity) ? current($entity) : NULL; -+ } -+ elseif (empty($block) && !empty($this->configuration['block_revision_id'])) { - $block = $this->entityTypeManager->getStorage('block_content')->loadRevision($this->configuration['block_revision_id']); - } - if ($block) { -@@ -294,6 +302,8 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE - $block->save(); - $this->configuration['block_revision_id'] = $block->getRevisionId(); - $this->configuration['block_serialized'] = NULL; -+ $this->configuration['type'] = $block->bundle(); -+ $this->configuration['uuid'] = $block->uuid(); - } - } - -diff --git a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php -index 8783904d49..4352bae88c 100644 ---- a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php -+++ b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php -@@ -30,8 +30,18 @@ class SectionData extends TypedData { - * {@inheritdoc} - */ - public function setValue($value, $notify = TRUE) { -+ -+ if ($value && is_array($value)) { -+ $value = Section::fromArray($value); -+ } -+ - if ($value && !$value instanceof Section) { -- throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); -+ if (isset($value->value) && !$value->value instanceof Section) { -+ throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); -+ } -+ else { -+ parent::setValue($value->value, $notify); -+ } - } - parent::setValue($value, $notify); - } -diff --git a/core/modules/layout_builder/src/Section.php b/core/modules/layout_builder/src/Section.php -index 41fe13c57e..edea749412 100644 ---- a/core/modules/layout_builder/src/Section.php -+++ b/core/modules/layout_builder/src/Section.php -@@ -337,9 +337,9 @@ public function toArray() { - return [ - 'layout_id' => $this->getLayoutId(), - 'layout_settings' => $this->getLayoutSettings(), -- 'components' => array_map(function (SectionComponent $component) { -+ 'components' => array_values(array_map(function (SectionComponent $component) { - return $component->toArray(); -- }, $this->getComponents()), -+ }, $this->getComponents())), - 'third_party_settings' => $this->thirdPartySettings, - ]; - } -diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php -index e008e042bd..011e97d96b 100644 ---- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php -+++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php -@@ -2,14 +2,14 @@ - - namespace Drupal\Tests\layout_builder\Functional\Hal; - --use Drupal\FunctionalTests\Hal\EntityViewDisplayHalJsonAnonTest; -+use Drupal\Tests\layout_builder\Functional\Rest\LayoutBuilderEntityViewDisplayResourceTestBase; - use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait; - - /** - * @group layout_builder - * @group rest - */ --class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDisplayHalJsonAnonTest { -+class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends LayoutBuilderEntityViewDisplayResourceTestBase { - - use BasicAuthResourceTestTrait; - -@@ -23,4 +23,9 @@ class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDispl - */ - protected static $auth = 'basic_auth'; - -+ /** -+ * {@inheritdoc} -+ */ -+ protected $defaultTheme = 'stark'; -+ - } -diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php -index 7da257f4a7..c6dd2f5d21 100644 ---- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php -+++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php -@@ -36,9 +36,37 @@ protected function getExpectedNormalizedEntity() { - $expected = parent::getExpectedNormalizedEntity(); - array_unshift($expected['dependencies']['module'], 'layout_builder'); - $expected['hidden'][OverridesSectionStorage::FIELD_NAME] = TRUE; -+ /** @var \Drupal\layout_builder\Section[] $sections */ -+ $sections = $this->entity->getThirdPartySetting('layout_builder', 'sections'); -+ $components = $sections[0]->getComponents(); -+ $component = array_pop($components); - $expected['third_party_settings']['layout_builder'] = [ - 'enabled' => TRUE, - 'allow_custom' => TRUE, -+ 'sections' => [ -+ [ -+ 'layout_id' => 'layout_onecol', -+ 'layout_settings' => [ -+ 'label' => '', -+ ], -+ 'components' => [ -+ [ -+ 'uuid' => $component->getUuid(), -+ 'region' => 'content', -+ 'configuration' => [ -+ 'label_display' => '0', -+ 'context_mapping' => [ -+ 'entity' => 'layout_builder.entity', -+ ], -+ 'id' => 'extra_field_block:node:camelids:links', -+ ], -+ 'weight' => 0, -+ 'additional' => [], -+ ], -+ ], -+ 'third_party_settings' => [], -+ ], -+ ], - ]; - return $expected; - } -diff --git a/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php -new file mode 100644 -index 0000000000..be271dd4f3 ---- /dev/null -+++ b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php -@@ -0,0 +1,95 @@ -+normalizer = new SectionDataNormalizer(); -+ } -+ -+ /** -+ * @covers ::supportsNormalization -+ */ -+ public function testSupportsNormalization() { -+ $section_data = $this->prophesize(SectionData::class); -+ $this->assertTrue($this->normalizer->supportsNormalization($section_data->reveal())); -+ } -+ -+ /** -+ * @covers ::supportsDenormalization -+ */ -+ public function testSupportsDenormalization() { -+ $this->assertTrue($this->normalizer->supportsDenormalization([], SectionData::class)); -+ } -+ -+ /** -+ * Tests the normalize function. -+ * -+ * @covers ::normalize -+ */ -+ public function testNormalize() { -+ $data = ['foo']; -+ $section_data = $this->prophesize(SectionData::class); -+ $section = $this->prophesize(Section::class); -+ $section->toArray() -+ ->willReturn($data); -+ $section_data->getValue() -+ ->willReturn($section); -+ $this->assertArrayEquals($data, $this->normalizer->normalize($section_data->reveal())); -+ } -+ -+ /** -+ * Tests the denormalize function. -+ * -+ * @covers ::denormalize -+ */ -+ public function testDenormalize() { -+ $data = [ -+ 'layout_id' => $this->randomMachineName(), -+ 'layout_settings' => [ -+ 'label' => $this->randomMachineName(), -+ ], -+ 'components' => [], -+ 'third_party_settings' => [], -+ ]; -+ $target_instance = $this->prophesize(FieldItemInterface::class); -+ $target_instance->getDataDefinition() -+ ->willReturn($this->prophesize(DataDefinitionInterface::class)); -+ $context = [ -+ 'target_instance' => [ -+ $target_instance, -+ ], -+ ]; -+ /** @var \Drupal\layout_builder\Section $section_data */ -+ $section_data = $this->normalizer->denormalize($data, SectionData::class, $context); -+ $this->assertEquals($data['layout_id'], $section_data->getLayoutId()); -+ $this->assertEquals($data['components'], $section_data->getComponents()); -+ foreach ($section_data->getThirdPartyProviders() as $provider) { -+ $this->assertEquals($data['third_party_settings'], $section_data->getThirdPartySettings($provider)); -+ } -+ } -+ -+} -diff --git a/core/profiles/demo_umami/config/install/core.entity_view_display.node.recipe.full.yml b/core/profiles/demo_umami/config/install/core.entity_view_display.node.recipe.full.yml -index eddea371d1..4134bcf11b 100644 ---- a/core/profiles/demo_umami/config/install/core.entity_view_display.node.recipe.full.yml -+++ b/core/profiles/demo_umami/config/install/core.entity_view_display.node.recipe.full.yml -@@ -31,7 +31,7 @@ third_party_settings: - layout_settings: - label: '' - components: -- eadd557c-6414-40e5-9a95-355720385477: -+ - - uuid: eadd557c-6414-40e5-9a95-355720385477 - region: content - configuration: -@@ -47,7 +47,7 @@ third_party_settings: - type: entity_reference_label - additional: { } - weight: 3 -- 0eff9e1d-4e73-4748-b910-e5568df1d5aa: -+ - - uuid: 0eff9e1d-4e73-4748-b910-e5568df1d5aa - region: content - configuration: -@@ -63,7 +63,7 @@ third_party_settings: - type: entity_reference_label - additional: { } - weight: 2 -- 44801518-fe93-421a-bdcb-550493c7925d: -+ - - uuid: 44801518-fe93-421a-bdcb-550493c7925d - region: content - configuration: -@@ -84,7 +84,7 @@ third_party_settings: - layout_settings: - label: '' - components: -- cc87463d-bb75-4eca-a2d0-42f0b643f8a7: -+ - - uuid: cc87463d-bb75-4eca-a2d0-42f0b643f8a7 - region: content - configuration: -@@ -103,7 +103,7 @@ third_party_settings: - view_mode: view_mode - additional: { } - weight: 4 -- df8bfafc-210c-4d86-9745-e47081ab0fd4: -+ - - uuid: df8bfafc-210c-4d86-9745-e47081ab0fd4 - region: fifth - configuration: -@@ -118,7 +118,7 @@ third_party_settings: - type: list_default - additional: { } - weight: 0 -- a2d450d0-08ce-4123-bca0-411bfa1da132: -+ - - uuid: a2d450d0-08ce-4123-bca0-411bfa1da132 - region: fourth - configuration: -@@ -135,7 +135,7 @@ third_party_settings: - type: number_integer - additional: { } - weight: 0 -- f91febc6-d924-47a2-8ffd-b71d3b2597c7: -+ - - uuid: f91febc6-d924-47a2-8ffd-b71d3b2597c7 - region: third - configuration: -@@ -152,7 +152,7 @@ third_party_settings: - type: number_integer - additional: { } - weight: 0 -- 00488840-db50-4afe-9c30-a123e6707fa9: -+ - - uuid: 00488840-db50-4afe-9c30-a123e6707fa9 - region: second - configuration: -@@ -169,7 +169,7 @@ third_party_settings: - type: number_integer - additional: { } - weight: 0 -- 69d8bce1-28ae-4287-a05b-a2166679f867: -+ - - uuid: 69d8bce1-28ae-4287-a05b-a2166679f867 - region: first - configuration: -@@ -195,7 +195,7 @@ third_party_settings: - label: '' - column_widths: 33-67 - components: -- 6924bf2e-8baa-4081-803a-7a2d3b7d8e14: -+ - - uuid: 6924bf2e-8baa-4081-803a-7a2d3b7d8e14 - region: first - configuration: -@@ -211,7 +211,7 @@ third_party_settings: - type: string - additional: { } - weight: 0 -- f61cae40-5865-4c4c-98fa-14b8234e7b98: -+ - - uuid: f61cae40-5865-4c4c-98fa-14b8234e7b98 - region: second - configuration: -@@ -232,7 +232,7 @@ third_party_settings: - layout_settings: - label: '' - components: -- d4b753a7-e1b1-4062-a1d0-a2666362693e: -+ - - uuid: d4b753a7-e1b1-4062-a1d0-a2666362693e - region: content - configuration: diff --git a/src/patches/2942975_145-d9-2-provus.patch b/src/patches/2942975_145-d9-2-provus.patch new file mode 100644 index 000000000..78172154e --- /dev/null +++ b/src/patches/2942975_145-d9-2-provus.patch @@ -0,0 +1,1201 @@ +diff --git a/core/modules/layout_builder/config/schema/layout_builder.schema.yml b/core/modules/layout_builder/config/schema/layout_builder.schema.yml +index 862c90ecbe..f657f0ecc3 100644 +--- a/core/modules/layout_builder/config/schema/layout_builder.schema.yml ++++ b/core/modules/layout_builder/config/schema/layout_builder.schema.yml +@@ -66,6 +66,12 @@ inline_block: + block_serialized: + type: string + label: 'Serialized block' ++ type: ++ type: string ++ label: 'Block type' ++ uuid: ++ type: string ++ label: 'Block UUID' + + block.settings.inline_block:*: + type: inline_block +diff --git a/core/modules/layout_builder/layout_builder.services.yml b/core/modules/layout_builder/layout_builder.services.yml +index bce1734e71..9c1d3b70f3 100644 +--- a/core/modules/layout_builder/layout_builder.services.yml ++++ b/core/modules/layout_builder/layout_builder.services.yml +@@ -56,3 +56,14 @@ services: + arguments: ['@layout_builder.tempstore_repository', '@messenger'] + tags: + - { name: event_subscriber } ++ layout_builder.normalizer.entity_display: ++ class: Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer ++ tags: ++ # Priority must be higher than serializer.normalizer.config_entity. ++ - { name: normalizer, priority: 1 } ++ arguments: ['@entity_type.manager', '@entity_type.repository', '@entity_field.manager'] ++ layout_builder.normalizer.section_data: ++ class: Drupal\layout_builder\Normalizer\SectionDataNormalizer ++ tags: ++ # Priority must be higher than serializer.normalizer.typed_data. ++ - { name: normalizer, priority: 1 } +diff --git a/core/modules/layout_builder/src/Element/LayoutBuilder.php b/core/modules/layout_builder/src/Element/LayoutBuilder.php +index 98923d7698..fbcf139e53 100644 +--- a/core/modules/layout_builder/src/Element/LayoutBuilder.php ++++ b/core/modules/layout_builder/src/Element/LayoutBuilder.php +@@ -52,7 +52,7 @@ class LayoutBuilder extends RenderElement implements ContainerFactoryPluginInter + * The messenger service. This is no longer used and will be removed in + * drupal:10.0.0. + */ +- public function __construct(array $configuration, $plugin_id, $plugin_definition, $event_dispatcher, $messenger = NULL) { ++ public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, $messenger = NULL) { + parent::__construct($configuration, $plugin_id, $plugin_definition); + + if (!($event_dispatcher instanceof EventDispatcherInterface)) { +@@ -182,7 +182,10 @@ protected function buildAddSectionLink(SectionStorageInterface $section_storage, + $title = $this->t('Add section at start of layout'); + } + else { +- $title = $this->t('Add section between @first and @second', ['@first' => $delta, '@second' => $delta + 1]); ++ $title = $this->t('Add section between @first and @second', [ ++ '@first' => $delta, ++ '@second' => $delta + 1, ++ ]); + } + } + +@@ -272,7 +275,10 @@ protected function buildAdministrativeSection(SectionStorageInterface $section_s + $build[$region]['layout_builder_add_block']['link'] = [ + '#type' => 'link', + // Add one to the current delta since it is zero-indexed. +- '#title' => $this->t('Add block in @section, @region region', ['@section' => $section_label, '@region' => $region_labels[$region]]), ++ '#title' => $this->t('Add block in @section, @region region', [ ++ '@section' => $section_label, ++ '@region' => $region_labels[$region], ++ ]), + '#url' => Url::fromRoute('layout_builder.choose_block', + [ + 'section_storage_type' => $storage_type, +diff --git a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php +index c0288297f6..452bc9a65e 100644 +--- a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php ++++ b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php +@@ -350,7 +350,11 @@ public function label() { + $bundle_info = \Drupal::service('entity_type.bundle.info')->getBundleInfo($this->getTargetEntityTypeId()); + $bundle_label = $bundle_info[$this->getTargetBundle()]['label']; + $target_entity_type = $this->entityTypeManager()->getDefinition($this->getTargetEntityTypeId()); +- return new TranslatableMarkup('@bundle @label', ['@bundle' => $bundle_label, '@label' => $target_entity_type->getPluralLabel()]); ++ return new TranslatableMarkup('@bundle @label', ++ [ ++ '@bundle' => $bundle_label, ++ '@label' => $target_entity_type->getPluralLabel(), ++ ]); + } + + /** +@@ -535,7 +539,10 @@ private function getSectionComponentForFieldName($field_name) { + foreach ($this->getSections() as $section) { + foreach ($section->getComponents() as $component) { + $plugin = $component->getPlugin(); +- if ($plugin instanceof DerivativeInspectionInterface && in_array($plugin->getBaseId(), ['field_block', 'extra_field_block'], TRUE)) { ++ if ($plugin instanceof DerivativeInspectionInterface && in_array($plugin->getBaseId(), ++ [ ++ 'field_block', 'extra_field_block', ++ ], TRUE)) { + // FieldBlock derivative IDs are in the format + // [entity_type]:[bundle]:[field]. + list(, , $field_block_field_name) = explode(PluginBase::DERIVATIVE_SEPARATOR, $plugin->getDerivativeId()); +diff --git a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php +index d9218b5387..26a8eec8bd 100644 +--- a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php ++++ b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php +@@ -47,7 +47,9 @@ public function __construct(AccountInterface $current_user) { + * {@inheritdoc} + */ + public static function getSubscribedEvents() { +- $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = ['onBuildRender', 100]; ++ $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = [ ++ 'onBuildRender', 100, ++ ]; + return $events; + } + +diff --git a/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php b/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php +index e335b87ab8..3dae574751 100644 +--- a/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php ++++ b/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php +@@ -11,8 +11,7 @@ + use Symfony\Component\EventDispatcher\EventSubscriberInterface; + + /** +- * An event subscriber to prepare section storage via the +- * \Drupal\layout_builder\Event\PrepareLayoutEvent. ++ * An event subscriber to prepare section storage via PrepareLayoutEvent. + * + * @see \Drupal\layout_builder\Event\PrepareLayoutEvent + * @see \Drupal\layout_builder\Element\LayoutBuilder::prepareLayout() +diff --git a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php +index 28b17399ab..2b8888e3e6 100644 +--- a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php ++++ b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php +@@ -101,7 +101,10 @@ public function equals(FieldItemListInterface $list_to_compare) { + * @ingroup layout_builder_access + */ + public function defaultAccess($operation = 'view', AccountInterface $account = NULL) { +- // @todo Allow access in https://www.drupal.org/node/2942975. ++ if ($operation === 'view') { ++ return parent::defaultAccess($operation, $account); ++ } ++ + return AccessResult::forbidden(); + } + +diff --git a/core/modules/layout_builder/src/Form/MoveBlockForm.php b/core/modules/layout_builder/src/Form/MoveBlockForm.php +index ef0568ead0..5c257df7fd 100644 +--- a/core/modules/layout_builder/src/Form/MoveBlockForm.php ++++ b/core/modules/layout_builder/src/Form/MoveBlockForm.php +@@ -155,7 +155,11 @@ public function buildForm(array $form, FormStateInterface $form_state, SectionSt + ]; + $current_section = $sections[$selected_delta]; + +- $aria_label = $this->t('Blocks in Section: @section, Region: @region', ['@section' => $selected_delta + 1, '@region' => $selected_region]); ++ $aria_label = $this->t('Blocks in Section: @section, Region: @region', ++ [ ++ '@section' => $selected_delta + 1, ++ '@region' => $selected_region, ++ ]); + + $form['components_wrapper']['components'] = [ + '#type' => 'table', +diff --git a/core/modules/layout_builder/src/InlineBlockUsage.php b/core/modules/layout_builder/src/InlineBlockUsage.php +index ab94d4c535..46c073af73 100644 +--- a/core/modules/layout_builder/src/InlineBlockUsage.php ++++ b/core/modules/layout_builder/src/InlineBlockUsage.php +@@ -80,7 +80,10 @@ public function deleteUsage(array $block_content_ids) { + public function getUsage($block_content_id) { + $query = $this->database->select('inline_block_usage'); + $query->condition('block_content_id', $block_content_id); +- $query->fields('inline_block_usage', ['layout_entity_id', 'layout_entity_type']); ++ $query->fields('inline_block_usage', ++ [ ++ 'layout_entity_id', 'layout_entity_type', ++ ]); + $query->range(0, 1); + return $query->execute()->fetchObject(); + } +diff --git a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +index f0b078c48e..d5db01dbff 100644 +--- a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php ++++ b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +@@ -5,8 +5,6 @@ + use Drupal\Core\DependencyInjection\ContainerBuilder; + use Drupal\Core\DependencyInjection\ServiceProviderInterface; + use Drupal\layout_builder\EventSubscriber\SetInlineBlockDependency; +-use Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer; +-use Symfony\Component\DependencyInjection\ChildDefinition; + use Symfony\Component\DependencyInjection\Definition; + use Symfony\Component\DependencyInjection\Reference; + +@@ -40,14 +38,6 @@ public function register(ContainerBuilder $container) { + $definition->setPublic(TRUE); + $container->setDefinition('layout_builder.get_block_dependency_subscriber', $definition); + } +- if (isset($modules['serialization'])) { +- $definition = (new ChildDefinition('serializer.normalizer.config_entity')) +- ->setClass(LayoutEntityDisplayNormalizer::class) +- // Ensure that this normalizer takes precedence for Layout Builder data +- // over the generic serializer.normalizer.config_entity. +- ->addTag('normalizer', ['priority' => 5]); +- $container->setDefinition('layout_builder.normalizer.layout_entity_display', $definition); +- } + } + + } +diff --git a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php +index 886304fa29..720767e1a4 100644 +--- a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php ++++ b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php +@@ -3,6 +3,7 @@ + namespace Drupal\layout_builder\Normalizer; + + use Drupal\layout_builder\Entity\LayoutEntityDisplayInterface; ++use Drupal\layout_builder\Section; + use Drupal\serialization\Normalizer\ConfigEntityNormalizer; + + /** +@@ -21,13 +22,26 @@ class LayoutEntityDisplayNormalizer extends ConfigEntityNormalizer { + /** + * {@inheritdoc} + */ +- protected static function getDataWithoutInternals(array $data) { +- $data = parent::getDataWithoutInternals($data); +- // Do not expose the actual layout sections in normalization. +- // @todo Determine what to expose here in +- // https://www.drupal.org/node/2942975. +- unset($data['third_party_settings']['layout_builder']['sections']); ++ public function normalize($object, $format = NULL, array $context = []) { ++ $data = static::getDataWithoutInternals($object->toArray()); ++ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { ++ $sections = &$data['third_party_settings']['layout_builder']['sections']; ++ $sections = array_map(static function (Section $section) { ++ return $section->toArray(); ++ }, $sections); ++ } + return $data; + } + ++ /** ++ * {@inheritdoc} ++ */ ++ public function denormalize($data, $class, $format = NULL, array $context = []) { ++ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { ++ $sections = &$data['third_party_settings']['layout_builder']['sections']; ++ $sections = array_map([Section::class, 'fromArray'], $sections); ++ } ++ return parent::denormalize(static::getDataWithoutInternals($data), $class, $format, $context); ++ } ++ + } +diff --git a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php +index 80d9b97315..02d27d3a03 100644 +--- a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php ++++ b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php +@@ -167,7 +167,11 @@ public function build() { + } + catch (\Exception $e) { + $build = []; +- $this->logger->warning('The field "%field" failed to render with the error of "%error".', ['%field' => $this->fieldName, '%error' => $e->getMessage()]); ++ $this->logger->warning('The field "%field" failed to render with the error of "%error".', ++ [ ++ '%field' => $this->fieldName, ++ '%error' => $e->getMessage(), ++ ]); + } + CacheableMetadata::createFromRenderArray($build)->addCacheableDependency($this)->applyTo($build); + return $build; +diff --git a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php +index 9f347174d3..770852097f 100644 +--- a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php ++++ b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php +@@ -229,6 +229,11 @@ protected function getEntity() { + if (!empty($this->configuration['block_serialized'])) { + $this->blockContent = unserialize($this->configuration['block_serialized']); + } ++ elseif (!empty($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; ++ } ++ + elseif (!empty($this->configuration['block_revision_id'])) { + $entity = $this->entityTypeManager->getStorage('block_content')->loadRevision($this->configuration['block_revision_id']); + $this->blockContent = $entity; +@@ -239,6 +244,10 @@ protected function getEntity() { + 'reusable' => FALSE, + ]); + } ++ if (!isset($this->blockContent) && isset($this->configuration['type']) && isset($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; ++ } + if ($this->blockContent instanceof RefinableDependentAccessInterface && $dependee = $this->getAccessDependency()) { + $this->blockContent->setAccessDependency($dependee); + } +@@ -270,7 +279,12 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta + public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE) { + /** @var \Drupal\block_content\BlockContentInterface $block */ + $block = NULL; +- if (!empty($this->configuration['block_serialized'])) { ++ if (empty($block) && !empty($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $block = !empty($entity) ? current($entity) : NULL; ++ } ++ elseif (empty($block) && !empty($this->configuration['block_revision_id'])) { ++ + $block = unserialize($this->configuration['block_serialized']); + } + if ($duplicate_block) { +@@ -291,6 +305,8 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE + $block->save(); + $this->configuration['block_revision_id'] = $block->getRevisionId(); + $this->configuration['block_serialized'] = NULL; ++ $this->configuration['type'] = $block->bundle(); ++ $this->configuration['uuid'] = $block->uuid(); + } + } + +diff --git a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php +index 8783904d49..4352bae88c 100644 +--- a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php ++++ b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php +@@ -30,8 +30,18 @@ class SectionData extends TypedData { + * {@inheritdoc} + */ + public function setValue($value, $notify = TRUE) { ++ ++ if ($value && is_array($value)) { ++ $value = Section::fromArray($value); ++ } ++ + if ($value && !$value instanceof Section) { +- throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); ++ if (isset($value->value) && !$value->value instanceof Section) { ++ throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); ++ } ++ else { ++ parent::setValue($value->value, $notify); ++ } + } + parent::setValue($value, $notify); + } +diff --git a/core/modules/layout_builder/src/Section.php b/core/modules/layout_builder/src/Section.php +index cd27437cb2..2a170d7012 100644 +--- a/core/modules/layout_builder/src/Section.php ++++ b/core/modules/layout_builder/src/Section.php +@@ -344,9 +344,9 @@ public function toArray() { + return [ + 'layout_id' => $this->getLayoutId(), + 'layout_settings' => $this->getLayoutSettings(), +- 'components' => array_map(function (SectionComponent $component) { ++ 'components' => array_values(array_map(function (SectionComponent $component) { + return $component->toArray(); +- }, $this->getComponents()), ++ }, $this->getComponents())), + 'third_party_settings' => $this->thirdPartySettings, + ]; + } +diff --git a/core/modules/layout_builder/src/SectionStorageInterface.php b/core/modules/layout_builder/src/SectionStorageInterface.php +index 35b3a9c87b..8cd7b5d38d 100644 +--- a/core/modules/layout_builder/src/SectionStorageInterface.php ++++ b/core/modules/layout_builder/src/SectionStorageInterface.php +@@ -136,7 +136,9 @@ public function save(); + public function isApplicable(RefinableCacheableDependencyInterface $cacheability); + + /** +- * Overrides \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition(). ++ * Overrides PluginInspectionInterface::getPluginDefinition(). ++ * ++ * @see \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition() + * + * @return \Drupal\layout_builder\SectionStorage\SectionStorageDefinition + * The section storage definition. +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php b/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php +index 7922024334..9d57e70dcf 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php +@@ -7,7 +7,7 @@ + use Symfony\Component\HttpFoundation\Request; + + /** +- * Overrides the entity form controller service for layout builder decoration test. ++ * Overrides entity form controller service for layout builder decoration test. + */ + class LayoutBuilderDecorationTestHtmlEntityFormController extends FormController { + +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php b/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php +index cec4af43bb..c33f193bec 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php +@@ -12,8 +12,7 @@ + use Symfony\Component\EventDispatcher\EventSubscriberInterface; + + /** +- * An event subscriber to test altering section storage via the +- * \Drupal\layout_builder\Event\PrepareLayoutEvent. ++ * An event subscriber to test altering section storage via PrepareLayoutEvent. + * + * @see \Drupal\layout_builder\Event\PrepareLayoutEvent + * @see \Drupal\layout_builder\Element\LayoutBuilder::prepareLayout() +@@ -54,9 +53,15 @@ public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore + */ + public static function getSubscribedEvents() { + // Act before core's layout builder subscriber. +- $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = ['onBeforePrepareLayout', 20]; ++ $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = [ ++ 'onBeforePrepareLayout', ++ 20, ++ ]; + // Act after core's layout builder subscriber. +- $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = ['onAfterPrepareLayout', -10]; ++ $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = [ ++ 'onAfterPrepareLayout', ++ -10, ++ ]; + return $events; + } + +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php b/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php +index de0ee7d079..9d25c36839 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php +@@ -5,6 +5,8 @@ + use Drupal\Core\Layout\LayoutDefault; + + /** ++ * Layout Builder Test plugin. ++ * + * @Layout( + * id = "layout_builder_test_plugin", + * label = @Translation("Layout Builder Test Plugin"), +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php +index 95c66ddb09..1334a08ea9 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\AnonResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php +index 6721bfaa02..f92408a157 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php +@@ -2,14 +2,16 @@ + + namespace Drupal\Tests\layout_builder\Functional\Hal; + +-use Drupal\FunctionalTests\Hal\EntityViewDisplayHalJsonAnonTest; ++use Drupal\Tests\layout_builder\Functional\Rest\LayoutBuilderEntityViewDisplayResourceTestBase; + use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +-class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDisplayHalJsonAnonTest { ++class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends LayoutBuilderEntityViewDisplayResourceTestBase { + + use BasicAuthResourceTestTrait; + +@@ -23,4 +25,9 @@ class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDispl + */ + protected static $auth = 'basic_auth'; + ++ /** ++ * {@inheritdoc} ++ */ ++ protected $defaultTheme = 'stark'; ++ + } +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php +index ad272d297e..4190821fc5 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\CookieResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php +index d14af0ac93..00b204f172 100644 +--- a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php +@@ -56,8 +56,6 @@ protected function setUp(): void { + /** + * Tests Layout Builder access for an entity type that has bundles. + * +- * @dataProvider providerTestAccessWithBundles +- * + * @param array $permissions + * An array of permissions to grant to the user. + * @param bool $default_access +@@ -66,6 +64,8 @@ protected function setUp(): void { + * Whether access is expected for a non-editable override. + * @param bool $editable_access + * Whether access is expected for an editable override. ++ * ++ * @dataProvider providerTestAccessWithBundles + */ + public function testAccessWithBundles(array $permissions, $default_access, $non_editable_access, $editable_access) { + $permissions[] = 'edit own bundle_with_section_field content'; +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php +index 316c1f8916..ea6493fefc 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\AnonResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php +index 099e31ace0..470fd5b34c 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php +index de311a7325..8ccebcc091 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\CookieResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php +index 7d28bda963..ac8a4400b5 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php +@@ -36,9 +36,37 @@ protected function getExpectedNormalizedEntity() { + $expected = parent::getExpectedNormalizedEntity(); + array_unshift($expected['dependencies']['module'], 'layout_builder'); + $expected['hidden'][OverridesSectionStorage::FIELD_NAME] = TRUE; ++ /** @var \Drupal\layout_builder\Section[] $sections */ ++ $sections = $this->entity->getThirdPartySetting('layout_builder', 'sections'); ++ $components = $sections[0]->getComponents(); ++ $component = array_pop($components); + $expected['third_party_settings']['layout_builder'] = [ + 'enabled' => TRUE, + 'allow_custom' => TRUE, ++ 'sections' => [ ++ [ ++ 'layout_id' => 'layout_onecol', ++ 'layout_settings' => [ ++ 'label' => '', ++ ], ++ 'components' => [ ++ [ ++ 'uuid' => $component->getUuid(), ++ 'region' => 'content', ++ 'configuration' => [ ++ 'label_display' => '0', ++ 'context_mapping' => [ ++ 'entity' => 'layout_builder.entity', ++ ], ++ 'id' => 'extra_field_block:node:camelids:links', ++ ], ++ 'weight' => 0, ++ 'additional' => [], ++ ], ++ ], ++ 'third_party_settings' => [], ++ ], ++ ], + ]; + return $expected; + } +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php +index 63d3ba0663..779cf321a3 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php +index 751e8ad3c5..92768dadf9 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php +index fef266ca49..a908febf50 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php +index d50e1fa400..5034b6e929 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php +@@ -81,7 +81,10 @@ public function testBlockFilter() { + // Get the Content Fields category, which will be closed before filtering. + $contentFieldsCategory = $page->find('named', ['content', 'Content fields']); + // Link that belongs to the Content Fields category, to verify collapse. +- $promoteToFrontPageLink = $page->find('named', ['content', 'Promoted to front page']); ++ $promoteToFrontPageLink = $page->find('named', [ ++ 'content', ++ 'Promoted to front page', ++ ]); + // Test that front page link is visible until Content Fields collapsed. + $this->assertTrue($promoteToFrontPageLink->isVisible()); + $contentFieldsCategory->click(); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php +index 4fccd1c842..b0cc0c6e61 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php +@@ -44,7 +44,7 @@ protected function setUp(): void { + */ + public function testValidationMessage() { + // @todo Work out why this fixes random fails in this test. +- // https://www.drupal.org/project/drupal/issues/3055982 ++ // https://www.drupal.org/project/drupal/issues/3055982 + $this->getSession()->resizeWindow(800, 1000); + $assert_session = $this->assertSession(); + $page = $this->getSession()->getPage(); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php +index 01b76696c5..d96525f6f3 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php +@@ -94,7 +94,10 @@ public function testContentPreviewToggle() { + $this->assertContextualLinks(); + + // Confirm repositioning blocks works with content preview disabled. +- $this->assertOrderInPage([$links_field_placeholder_label, $body_field_placeholder_label]); ++ $this->assertOrderInPage([ ++ $links_field_placeholder_label, ++ $body_field_placeholder_label, ++ ]); + + $region_content = '.layout__region--content'; + $links_block = "[data-layout-content-preview-placeholder-label='$links_field_placeholder_label']"; +@@ -110,7 +113,10 @@ public function testContentPreviewToggle() { + $assert_session->pageTextNotContains($content_preview_body_text); + + // Check that drag successfully repositioned blocks. +- $this->assertOrderInPage([$body_field_placeholder_label, $links_field_placeholder_label]); ++ $this->assertOrderInPage([ ++ $body_field_placeholder_label, ++ $links_field_placeholder_label, ++ ]); + + // Check if block position maintained after enabling content preview. + $this->assertTrue($page->hasUncheckedField('layout-builder-content-preview')); +@@ -118,7 +124,10 @@ public function testContentPreviewToggle() { + $this->assertNotEmpty($assert_session->waitForText($content_preview_body_text)); + $assert_session->pageTextContains($content_preview_body_text); + $this->assertNotEmpty($assert_session->waitForText('Placeholder for the "Links" field')); +- $this->assertOrderInPage([$content_preview_body_text, 'Placeholder for the "Links" field']); ++ $this->assertOrderInPage([ ++ $content_preview_body_text, ++ 'Placeholder for the "Links" field', ++ ]); + } + + /** +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php +index bbcd3cf512..3c6fe1f76c 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php +@@ -209,7 +209,10 @@ public function testInlineBlocksRevisioning() { + ])); + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + $this->drupalGet('node/1/layout'); + + // Add an inline block. +@@ -271,7 +274,10 @@ public function testInlineBlocksRevisioningIntegrity() { + 'create and edit custom blocks', + ])); + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + $block_1_locator = static::INLINE_BLOCK_LOCATOR; + $block_2_locator = sprintf('%s + %s', static::INLINE_BLOCK_LOCATOR, static::INLINE_BLOCK_LOCATOR); +@@ -486,7 +492,10 @@ public function testAccess() { + + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + // Ensure we have 2 copies of the block in node overrides. + $this->drupalGet('node/1/layout'); +@@ -536,7 +545,10 @@ public function testAddWorkFlow() { + + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + $layout_default_path = 'admin/structure/types/manage/bundle_with_section_field/display/default/layout'; + $this->drupalGet($layout_default_path); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php +index dbf68d6179..75f2e539ca 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php +@@ -49,7 +49,10 @@ protected function setUp() { + + $this->drupalPlaceBlock('local_tasks_block'); + +- $this->createContentType(['type' => 'bundle_with_section_field', 'new_revision' => TRUE]); ++ $this->createContentType([ ++ 'type' => 'bundle_with_section_field', ++ 'new_revision' => TRUE, ++ ]); + $this->createNode([ + 'type' => 'bundle_with_section_field', + 'title' => 'The node title', +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php +index 1562216da5..2e04d11a1e 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php +@@ -157,7 +157,10 @@ public function testLayoutBuilderUi() { + + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['link', 'Two column'])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Two column', ++ ])); + + $this->clickLink('Two column'); + $assert_session->waitForElementVisible('named', ['button', 'Add section']); +@@ -293,7 +296,10 @@ public function testConfigurableLayoutSections() { + // Add another section. + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $assert_session->waitForElementVisible('named', ['link', 'Layout plugin (with settings)']); ++ $assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Layout plugin (with settings)', ++ ]); + $assert_session->elementExists('css', '#drupal-off-canvas'); + + $assert_session->linkExists('Layout plugin (with settings)'); +@@ -309,7 +315,10 @@ public function testConfigurableLayoutSections() { + // Ensure validation error is displayed for ConfigureSectionForm. + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $assert_session->waitForElementVisible('named', ['link', 'Layout plugin (with settings)']); ++ $assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Layout plugin (with settings)', ++ ]); + $this->clickLink('Layout plugin (with settings)'); + $this->assertOffCanvasFormAfterWait('layout_builder_configure_section'); + $page->fillField('layout_settings[setting_1]', 'Test Validation Error Message'); +@@ -466,7 +475,10 @@ private function openAddBlockForm($block_title) { + $assert_session->linkExists('Add block'); + $this->clickLink('Add block'); + $assert_session->assertWaitOnAjaxRequest(); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['link', $block_title])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'link', ++ $block_title, ++ ])); + $this->clickLink($block_title); + $this->assertOffCanvasFormAfterWait('layout_builder_add_block'); + } +@@ -481,7 +493,10 @@ private function assertOffCanvasFormAfterWait($expected_form_id) { + $this->assertSession()->assertWaitOnAjaxRequest(); + $off_canvas = $this->assertSession()->waitForElementVisible('css', '#drupal-off-canvas'); + $this->assertNotNull($off_canvas); +- $form_id_element = $off_canvas->find('hidden_field_selector', ['hidden_field', 'form_id']); ++ $form_id_element = $off_canvas->find('hidden_field_selector', [ ++ 'hidden_field', ++ 'form_id', ++ ]); + // Ensure the form ID has the correct value and that the form is visible. + $this->assertNotEmpty($form_id_element); + $this->assertSame($expected_form_id, $form_id_element->getValue()); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php +index 6523bd6367..0d20caaab9 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php +@@ -22,6 +22,9 @@ class LayoutBuilderUiTest extends WebDriverTestBase { + */ + const FIELD_UI_PREFIX = 'admin/structure/types/manage/bundle_with_section_field'; + ++ /** ++ * {@inheritdoc} ++ */ + protected static $modules = [ + 'layout_builder', + 'block', +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php +index 3b857b10e5..1d47867c2b 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php +@@ -100,7 +100,10 @@ public function testMoveBlock() { + + // Reorder body field in current region. + $this->openBodyMoveForm(1, 'content', ['Links', 'Body (current)']); +- $this->moveBlockWithKeyboard('up', 'Body (current)', ['Body (current)*', 'Links']); ++ $this->moveBlockWithKeyboard('up', 'Body (current)', [ ++ 'Body (current)*', ++ 'Links', ++ ]); + $page->pressButton('Move'); + $expected_block_order = [ + '.block-field-blocknodebundle-with-section-fieldbody', +@@ -115,7 +118,10 @@ public function testMoveBlock() { + $this->openBodyMoveForm(1, 'content', ['Body (current)', 'Links']); + $page->selectFieldOption('Region', '0:first'); + $this->assertBlockTable(['Powered by Drupal', 'Body (current)']); +- $this->moveBlockWithKeyboard('up', 'Body', ['Body (current)*', 'Powered by Drupal']); ++ $this->moveBlockWithKeyboard('up', 'Body', [ ++ 'Body (current)*', ++ 'Powered by Drupal', ++ ]); + $page->pressButton('Move'); + $expected_block_order = [ + '.block-field-blocknodebundle-with-section-fieldbody', +@@ -241,7 +247,10 @@ protected function openBodyMoveForm($delta, $region, array $initial_blocks) { + $body_field_locator = "[data-layout-delta=\"$delta\"] [data-region=\"$region\"] .block-field-blocknodebundle-with-section-fieldbody"; + $this->clickContextualLink($body_field_locator, 'Move'); + $assert_session->assertWaitOnAjaxRequest(); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['select', 'Region'])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'select', ++ 'Region', ++ ])); + $assert_session->fieldValueEquals('Region', "$delta:$region"); + $this->assertBlockTable($initial_blocks); + } +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php +index 2fd7cd7a78..2b2fdc2a66 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php +@@ -18,6 +18,9 @@ class TestMultiWidthLayoutsTest extends WebDriverTestBase { + */ + const FIELD_UI_PREFIX = 'admin/structure/types/manage/bundle_with_section_field'; + ++ /** ++ * {@inheritdoc} ++ */ + protected static $modules = [ + 'layout_builder', + 'block', +diff --git a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php +index 6bcf83e7f3..e27cc073f0 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php +@@ -18,6 +18,8 @@ + class LayoutBuilderElementTest extends KernelTestBase { + + /** ++ * Tests TestStore Deprecation Notice. ++ * + * @group legacy + */ + public function testConstructorTempStoreDeprecation() { +@@ -33,6 +35,8 @@ public function testConstructorTempStoreDeprecation() { + } + + /** ++ * Tests Messenger Deprecation Notice. ++ * + * @group legacy + */ + public function testConstructorMessengerDeprecation() { +diff --git a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php +index e806c0a581..4b8e9c74f1 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php +@@ -37,11 +37,16 @@ protected function getSectionStorage(array $section_data) { + */ + public function testInvalidConfiguration() { + $this->expectException(SchemaIncompleteException::class); +- $this->sectionStorage->getSection(0)->getComponent('first-uuid')->setConfiguration(['id' => 'foo', 'bar' => 'baz']); ++ $this->sectionStorage->getSection(0)->getComponent('first-uuid')->setConfiguration([ ++ 'id' => 'foo', ++ 'bar' => 'baz', ++ ]); + $this->sectionStorage->save(); + } + + /** ++ * Check Layout Builder Enabled or not. ++ * + * @dataProvider providerTestIsLayoutBuilderEnabled + */ + public function testIsLayoutBuilderEnabled($expected, $view_mode, $enabled) { +@@ -69,13 +74,17 @@ public function providerTestIsLayoutBuilderEnabled() { + $data['default disabled'] = [FALSE, 'default', FALSE]; + $data['full enabled'] = [TRUE, 'full', TRUE]; + $data['full disabled'] = [FALSE, 'full', FALSE]; +- $data['_custom enabled'] = [FALSE, '_custom', TRUE]; +- $data['_custom disabled'] = [FALSE, '_custom', FALSE]; ++ $data['_custom enabled'] = [ ++ FALSE, '_custom', TRUE, ++ ]; ++ $data['_custom disabled'] = [ ++ FALSE, '_custom', FALSE, ++ ]; + return $data; + } + + /** +- * Tests that setting overridable enables Layout Builder only when TRUE. ++ * Setting overridable enables Layout Builder only when set to TRUE. + */ + public function testSetOverridable() { + // Disable Layout Builder. +@@ -85,9 +94,11 @@ public function testSetOverridable() { + $this->sectionStorage->setOverridable(); + $this->assertTrue($this->sectionStorage->isLayoutBuilderEnabled()); + +- // Ensure Layout Builder is still enabled after setting Overridable to FALSE. ++ // Ensure Layout Builder is still enabled ++ // after setting Overridable to FALSE. + $this->sectionStorage->setOverridable(FALSE); +- $this->assertTrue($this->sectionStorage->isLayoutBuilderEnabled()); ++ $this->assertEquals($this->sectionStorage->isLayoutBuilderEnabled(), ++ TRUE); + } + + } +diff --git a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php +index ef67ae87ac..3542b98c71 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php +@@ -160,10 +160,16 @@ public function providerTestAccess() { + FALSE, TRUE, $section_data, ['configure editable entity_test entity_test layout overrides'], + ]; + $data['enabled, no data, bundle edit overrides, edit access'] = [ +- TRUE, TRUE, [], ['configure editable entity_test entity_test layout overrides', 'administer entity_test content'], ++ TRUE, TRUE, [], [ ++ 'configure editable entity_test entity_test layout overrides', ++ 'administer entity_test content', ++ ], + ]; + $data['enabled, data, bundle edit overrides, edit access'] = [ +- TRUE, TRUE, $section_data, ['configure editable entity_test entity_test layout overrides', 'administer entity_test content'], ++ TRUE, TRUE, $section_data, [ ++ 'configure editable entity_test entity_test layout overrides', ++ 'administer entity_test content', ++ ], + ]; + return $data; + } +diff --git a/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php b/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php +index 02be9fefcf..e74444a2c7 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php +@@ -31,6 +31,11 @@ public function testAddBlankSection() { + + } + ++/** ++ * Defines the interface for an object that stores layout section list. ++ * ++ * @see \Drupal\layout_builder\SectionListInterface ++ */ + class TestSectionList implements SectionListInterface { + + use SectionStorageTrait { +diff --git a/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php b/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php +index cbd92bf279..0d2fe42b7c 100644 +--- a/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php ++++ b/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php +@@ -477,12 +477,12 @@ public function testOnBuildRenderEmptyBuildWithCacheTags() { + $expected_build = []; + + $expected_cache = $expected_build + [ +- '#cache' => [ +- 'contexts' => [], +- 'tags' => ['empty_build_cache_test', 'test'], +- 'max-age' => -1, +- ], +- ]; ++ '#cache' => [ ++ 'contexts' => [], ++ 'tags' => ['empty_build_cache_test', 'test'], ++ 'max-age' => -1, ++ ], ++ ]; + + $subscriber->onBuildRender($event); + $result = $event->getBuild(); +diff --git a/core/modules/layout_builder/tests/src/Unit/SectionTest.php b/core/modules/layout_builder/tests/src/Unit/SectionTest.php +index 2e21947de9..316b108cfa 100644 +--- a/core/modules/layout_builder/tests/src/Unit/SectionTest.php ++++ b/core/modules/layout_builder/tests/src/Unit/SectionTest.php +@@ -38,7 +38,10 @@ protected function setUp(): void { + (new SectionComponent('first-uuid', 'ordered-region', ['id' => 'first-block-id']))->setWeight(2), + ], + [ +- 'bad_judgement' => ['blink_speed' => 'fast', 'spin_direction' => 'clockwise'], ++ 'bad_judgement' => [ ++ 'blink_speed' => 'fast', ++ 'spin_direction' => 'clockwise', ++ ], + 'hunt_and_peck' => ['delay' => '300ms'], + ] + ); +diff --git a/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php +new file mode 100644 +index 0000000000..be271dd4f3 +--- /dev/null ++++ b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php +@@ -0,0 +1,95 @@ ++normalizer = new SectionDataNormalizer(); ++ } ++ ++ /** ++ * @covers ::supportsNormalization ++ */ ++ public function testSupportsNormalization() { ++ $section_data = $this->prophesize(SectionData::class); ++ $this->assertTrue($this->normalizer->supportsNormalization($section_data->reveal())); ++ } ++ ++ /** ++ * @covers ::supportsDenormalization ++ */ ++ public function testSupportsDenormalization() { ++ $this->assertTrue($this->normalizer->supportsDenormalization([], SectionData::class)); ++ } ++ ++ /** ++ * Tests the normalize function. ++ * ++ * @covers ::normalize ++ */ ++ public function testNormalize() { ++ $data = ['foo']; ++ $section_data = $this->prophesize(SectionData::class); ++ $section = $this->prophesize(Section::class); ++ $section->toArray() ++ ->willReturn($data); ++ $section_data->getValue() ++ ->willReturn($section); ++ $this->assertArrayEquals($data, $this->normalizer->normalize($section_data->reveal())); ++ } ++ ++ /** ++ * Tests the denormalize function. ++ * ++ * @covers ::denormalize ++ */ ++ public function testDenormalize() { ++ $data = [ ++ 'layout_id' => $this->randomMachineName(), ++ 'layout_settings' => [ ++ 'label' => $this->randomMachineName(), ++ ], ++ 'components' => [], ++ 'third_party_settings' => [], ++ ]; ++ $target_instance = $this->prophesize(FieldItemInterface::class); ++ $target_instance->getDataDefinition() ++ ->willReturn($this->prophesize(DataDefinitionInterface::class)); ++ $context = [ ++ 'target_instance' => [ ++ $target_instance, ++ ], ++ ]; ++ /** @var \Drupal\layout_builder\Section $section_data */ ++ $section_data = $this->normalizer->denormalize($data, SectionData::class, $context); ++ $this->assertEquals($data['layout_id'], $section_data->getLayoutId()); ++ $this->assertEquals($data['components'], $section_data->getComponents()); ++ foreach ($section_data->getThirdPartyProviders() as $provider) { ++ $this->assertEquals($data['third_party_settings'], $section_data->getThirdPartySettings($provider)); ++ } ++ } ++ ++} +diff --git a/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php +new file mode 100644 +index 0000000000..5674439586 +--- /dev/null ++++ b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php +@@ -0,0 +1,34 @@ ++getValue()->toArray(); ++ } ++ ++ /** ++ * {@inheritdoc} ++ */ ++ public function denormalize($data, $class, $format = NULL, array $context = []) { ++ return Section::fromArray($data); ++ } ++} ++ diff --git a/src/patches/2942975_145-provus.patch b/src/patches/2942975_145-provus.patch new file mode 100644 index 000000000..6a02587ef --- /dev/null +++ b/src/patches/2942975_145-provus.patch @@ -0,0 +1,1201 @@ +diff --git a/core/modules/layout_builder/config/schema/layout_builder.schema.yml b/core/modules/layout_builder/config/schema/layout_builder.schema.yml +index 862c90ecbe..f657f0ecc3 100644 +--- a/core/modules/layout_builder/config/schema/layout_builder.schema.yml ++++ b/core/modules/layout_builder/config/schema/layout_builder.schema.yml +@@ -66,6 +66,12 @@ inline_block: + block_serialized: + type: string + label: 'Serialized block' ++ type: ++ type: string ++ label: 'Block type' ++ uuid: ++ type: string ++ label: 'Block UUID' + + block.settings.inline_block:*: + type: inline_block +diff --git a/core/modules/layout_builder/layout_builder.services.yml b/core/modules/layout_builder/layout_builder.services.yml +index bce1734e71..9c1d3b70f3 100644 +--- a/core/modules/layout_builder/layout_builder.services.yml ++++ b/core/modules/layout_builder/layout_builder.services.yml +@@ -56,3 +56,14 @@ services: + arguments: ['@layout_builder.tempstore_repository', '@messenger'] + tags: + - { name: event_subscriber } ++ layout_builder.normalizer.entity_display: ++ class: Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer ++ tags: ++ # Priority must be higher than serializer.normalizer.config_entity. ++ - { name: normalizer, priority: 1 } ++ arguments: ['@entity_type.manager', '@entity_type.repository', '@entity_field.manager'] ++ layout_builder.normalizer.section_data: ++ class: Drupal\layout_builder\Normalizer\SectionDataNormalizer ++ tags: ++ # Priority must be higher than serializer.normalizer.typed_data. ++ - { name: normalizer, priority: 1 } +diff --git a/core/modules/layout_builder/src/Element/LayoutBuilder.php b/core/modules/layout_builder/src/Element/LayoutBuilder.php +index 8bf656475b..c2bc75c6e6 100644 +--- a/core/modules/layout_builder/src/Element/LayoutBuilder.php ++++ b/core/modules/layout_builder/src/Element/LayoutBuilder.php +@@ -52,7 +52,7 @@ class LayoutBuilder extends RenderElement implements ContainerFactoryPluginInter + * The messenger service. This is no longer used and will be removed in + * drupal:10.0.0. + */ +- public function __construct(array $configuration, $plugin_id, $plugin_definition, $event_dispatcher, $messenger = NULL) { ++ public function __construct(array $configuration, $plugin_id, $plugin_definition, EventDispatcherInterface $event_dispatcher, $messenger = NULL) { + parent::__construct($configuration, $plugin_id, $plugin_definition); + + if (!($event_dispatcher instanceof EventDispatcherInterface)) { +@@ -182,7 +182,10 @@ protected function buildAddSectionLink(SectionStorageInterface $section_storage, + $title = $this->t('Add section at start of layout'); + } + else { +- $title = $this->t('Add section between @first and @second', ['@first' => $delta, '@second' => $delta + 1]); ++ $title = $this->t('Add section between @first and @second', [ ++ '@first' => $delta, ++ '@second' => $delta + 1, ++ ]); + } + } + +@@ -272,7 +275,10 @@ protected function buildAdministrativeSection(SectionStorageInterface $section_s + $build[$region]['layout_builder_add_block']['link'] = [ + '#type' => 'link', + // Add one to the current delta since it is zero-indexed. +- '#title' => $this->t('Add block in @section, @region region', ['@section' => $section_label, '@region' => $region_labels[$region]]), ++ '#title' => $this->t('Add block in @section, @region region', [ ++ '@section' => $section_label, ++ '@region' => $region_labels[$region], ++ ]), + '#url' => Url::fromRoute('layout_builder.choose_block', + [ + 'section_storage_type' => $storage_type, +diff --git a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php +index 6094889664..8ccb121ad9 100644 +--- a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php ++++ b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php +@@ -351,7 +351,11 @@ public function label() { + $bundle_info = \Drupal::service('entity_type.bundle.info')->getBundleInfo($this->getTargetEntityTypeId()); + $bundle_label = $bundle_info[$this->getTargetBundle()]['label']; + $target_entity_type = $this->entityTypeManager()->getDefinition($this->getTargetEntityTypeId()); +- return new TranslatableMarkup('@bundle @label', ['@bundle' => $bundle_label, '@label' => $target_entity_type->getPluralLabel()]); ++ return new TranslatableMarkup('@bundle @label', ++ [ ++ '@bundle' => $bundle_label, ++ '@label' => $target_entity_type->getPluralLabel(), ++ ]); + } + + /** +@@ -536,7 +540,10 @@ private function getSectionComponentForFieldName($field_name) { + foreach ($this->getSections() as $section) { + foreach ($section->getComponents() as $component) { + $plugin = $component->getPlugin(); +- if ($plugin instanceof DerivativeInspectionInterface && in_array($plugin->getBaseId(), ['field_block', 'extra_field_block'], TRUE)) { ++ if ($plugin instanceof DerivativeInspectionInterface && in_array($plugin->getBaseId(), ++ [ ++ 'field_block', 'extra_field_block', ++ ], TRUE)) { + // FieldBlock derivative IDs are in the format + // [entity_type]:[bundle]:[field]. + list(, , $field_block_field_name) = explode(PluginBase::DERIVATIVE_SEPARATOR, $plugin->getDerivativeId()); +diff --git a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php +index d9218b5387..26a8eec8bd 100644 +--- a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php ++++ b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php +@@ -47,7 +47,9 @@ public function __construct(AccountInterface $current_user) { + * {@inheritdoc} + */ + public static function getSubscribedEvents() { +- $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = ['onBuildRender', 100]; ++ $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = [ ++ 'onBuildRender', 100, ++ ]; + return $events; + } + +diff --git a/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php b/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php +index e335b87ab8..3dae574751 100644 +--- a/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php ++++ b/core/modules/layout_builder/src/EventSubscriber/PrepareLayout.php +@@ -11,8 +11,7 @@ + use Symfony\Component\EventDispatcher\EventSubscriberInterface; + + /** +- * An event subscriber to prepare section storage via the +- * \Drupal\layout_builder\Event\PrepareLayoutEvent. ++ * An event subscriber to prepare section storage via PrepareLayoutEvent. + * + * @see \Drupal\layout_builder\Event\PrepareLayoutEvent + * @see \Drupal\layout_builder\Element\LayoutBuilder::prepareLayout() +diff --git a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php +index 9870bc41b3..6337a9af2e 100644 +--- a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php ++++ b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php +@@ -101,7 +101,10 @@ public function equals(FieldItemListInterface $list_to_compare) { + * @ingroup layout_builder_access + */ + public function defaultAccess($operation = 'view', AccountInterface $account = NULL) { +- // @todo Allow access in https://www.drupal.org/node/2942975. ++ if ($operation === 'view') { ++ return parent::defaultAccess($operation, $account); ++ } ++ + return AccessResult::forbidden(); + } + +diff --git a/core/modules/layout_builder/src/Form/MoveBlockForm.php b/core/modules/layout_builder/src/Form/MoveBlockForm.php +index d051de47e8..abcf28c11f 100644 +--- a/core/modules/layout_builder/src/Form/MoveBlockForm.php ++++ b/core/modules/layout_builder/src/Form/MoveBlockForm.php +@@ -155,7 +155,11 @@ public function buildForm(array $form, FormStateInterface $form_state, SectionSt + ]; + $current_section = $sections[$selected_delta]; + +- $aria_label = $this->t('Blocks in Section: @section, Region: @region', ['@section' => $selected_delta + 1, '@region' => $selected_region]); ++ $aria_label = $this->t('Blocks in Section: @section, Region: @region', ++ [ ++ '@section' => $selected_delta + 1, ++ '@region' => $selected_region, ++ ]); + + $form['components_wrapper']['components'] = [ + '#type' => 'table', +diff --git a/core/modules/layout_builder/src/InlineBlockUsage.php b/core/modules/layout_builder/src/InlineBlockUsage.php +index ab94d4c535..46c073af73 100644 +--- a/core/modules/layout_builder/src/InlineBlockUsage.php ++++ b/core/modules/layout_builder/src/InlineBlockUsage.php +@@ -80,7 +80,10 @@ public function deleteUsage(array $block_content_ids) { + public function getUsage($block_content_id) { + $query = $this->database->select('inline_block_usage'); + $query->condition('block_content_id', $block_content_id); +- $query->fields('inline_block_usage', ['layout_entity_id', 'layout_entity_type']); ++ $query->fields('inline_block_usage', ++ [ ++ 'layout_entity_id', 'layout_entity_type', ++ ]); + $query->range(0, 1); + return $query->execute()->fetchObject(); + } +diff --git a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +index f0b078c48e..d5db01dbff 100644 +--- a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php ++++ b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +@@ -5,8 +5,6 @@ + use Drupal\Core\DependencyInjection\ContainerBuilder; + use Drupal\Core\DependencyInjection\ServiceProviderInterface; + use Drupal\layout_builder\EventSubscriber\SetInlineBlockDependency; +-use Drupal\layout_builder\Normalizer\LayoutEntityDisplayNormalizer; +-use Symfony\Component\DependencyInjection\ChildDefinition; + use Symfony\Component\DependencyInjection\Definition; + use Symfony\Component\DependencyInjection\Reference; + +@@ -40,14 +38,6 @@ public function register(ContainerBuilder $container) { + $definition->setPublic(TRUE); + $container->setDefinition('layout_builder.get_block_dependency_subscriber', $definition); + } +- if (isset($modules['serialization'])) { +- $definition = (new ChildDefinition('serializer.normalizer.config_entity')) +- ->setClass(LayoutEntityDisplayNormalizer::class) +- // Ensure that this normalizer takes precedence for Layout Builder data +- // over the generic serializer.normalizer.config_entity. +- ->addTag('normalizer', ['priority' => 5]); +- $container->setDefinition('layout_builder.normalizer.layout_entity_display', $definition); +- } + } + + } +diff --git a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php +index 886304fa29..720767e1a4 100644 +--- a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php ++++ b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php +@@ -3,6 +3,7 @@ + namespace Drupal\layout_builder\Normalizer; + + use Drupal\layout_builder\Entity\LayoutEntityDisplayInterface; ++use Drupal\layout_builder\Section; + use Drupal\serialization\Normalizer\ConfigEntityNormalizer; + + /** +@@ -21,13 +22,26 @@ class LayoutEntityDisplayNormalizer extends ConfigEntityNormalizer { + /** + * {@inheritdoc} + */ +- protected static function getDataWithoutInternals(array $data) { +- $data = parent::getDataWithoutInternals($data); +- // Do not expose the actual layout sections in normalization. +- // @todo Determine what to expose here in +- // https://www.drupal.org/node/2942975. +- unset($data['third_party_settings']['layout_builder']['sections']); ++ public function normalize($object, $format = NULL, array $context = []) { ++ $data = static::getDataWithoutInternals($object->toArray()); ++ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { ++ $sections = &$data['third_party_settings']['layout_builder']['sections']; ++ $sections = array_map(static function (Section $section) { ++ return $section->toArray(); ++ }, $sections); ++ } + return $data; + } + ++ /** ++ * {@inheritdoc} ++ */ ++ public function denormalize($data, $class, $format = NULL, array $context = []) { ++ if (!empty($data['third_party_settings']['layout_builder']['sections'])) { ++ $sections = &$data['third_party_settings']['layout_builder']['sections']; ++ $sections = array_map([Section::class, 'fromArray'], $sections); ++ } ++ return parent::denormalize(static::getDataWithoutInternals($data), $class, $format, $context); ++ } ++ + } +diff --git a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php +index 80d9b97315..02d27d3a03 100644 +--- a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php ++++ b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php +@@ -167,7 +167,11 @@ public function build() { + } + catch (\Exception $e) { + $build = []; +- $this->logger->warning('The field "%field" failed to render with the error of "%error".', ['%field' => $this->fieldName, '%error' => $e->getMessage()]); ++ $this->logger->warning('The field "%field" failed to render with the error of "%error".', ++ [ ++ '%field' => $this->fieldName, ++ '%error' => $e->getMessage(), ++ ]); + } + CacheableMetadata::createFromRenderArray($build)->addCacheableDependency($this)->applyTo($build); + return $build; +diff --git a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php +index 9f347174d3..770852097f 100644 +--- a/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php ++++ b/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php +@@ -229,6 +229,11 @@ protected function getEntity() { + if (!empty($this->configuration['block_serialized'])) { + $this->blockContent = unserialize($this->configuration['block_serialized']); + } ++ elseif (!empty($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; ++ } ++ + elseif (!empty($this->configuration['block_revision_id'])) { + $entity = $this->entityTypeManager->getStorage('block_content')->loadRevision($this->configuration['block_revision_id']); + $this->blockContent = $entity; +@@ -239,6 +244,10 @@ protected function getEntity() { + 'reusable' => FALSE, + ]); + } ++ if (!isset($this->blockContent) && isset($this->configuration['type']) && isset($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; ++ } + if ($this->blockContent instanceof RefinableDependentAccessInterface && $dependee = $this->getAccessDependency()) { + $this->blockContent->setAccessDependency($dependee); + } +@@ -270,7 +279,12 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta + public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE) { + /** @var \Drupal\block_content\BlockContentInterface $block */ + $block = NULL; +- if (!empty($this->configuration['block_serialized'])) { ++ if (empty($block) && !empty($this->configuration['uuid'])) { ++ $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); ++ $block = !empty($entity) ? current($entity) : NULL; ++ } ++ elseif (empty($block) && !empty($this->configuration['block_revision_id'])) { ++ + $block = unserialize($this->configuration['block_serialized']); + } + if ($duplicate_block) { +@@ -291,6 +305,8 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE + $block->save(); + $this->configuration['block_revision_id'] = $block->getRevisionId(); + $this->configuration['block_serialized'] = NULL; ++ $this->configuration['type'] = $block->bundle(); ++ $this->configuration['uuid'] = $block->uuid(); + } + } + +diff --git a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php +index 8783904d49..4352bae88c 100644 +--- a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php ++++ b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php +@@ -30,8 +30,18 @@ class SectionData extends TypedData { + * {@inheritdoc} + */ + public function setValue($value, $notify = TRUE) { ++ ++ if ($value && is_array($value)) { ++ $value = Section::fromArray($value); ++ } ++ + if ($value && !$value instanceof Section) { +- throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); ++ if (isset($value->value) && !$value->value instanceof Section) { ++ throw new \InvalidArgumentException(sprintf('Value assigned to "%s" is not a valid section', $this->getName())); ++ } ++ else { ++ parent::setValue($value->value, $notify); ++ } + } + parent::setValue($value, $notify); + } +diff --git a/core/modules/layout_builder/src/Section.php b/core/modules/layout_builder/src/Section.php +index cd27437cb2..2a170d7012 100644 +--- a/core/modules/layout_builder/src/Section.php ++++ b/core/modules/layout_builder/src/Section.php +@@ -344,9 +344,9 @@ public function toArray() { + return [ + 'layout_id' => $this->getLayoutId(), + 'layout_settings' => $this->getLayoutSettings(), +- 'components' => array_map(function (SectionComponent $component) { ++ 'components' => array_values(array_map(function (SectionComponent $component) { + return $component->toArray(); +- }, $this->getComponents()), ++ }, $this->getComponents())), + 'third_party_settings' => $this->thirdPartySettings, + ]; + } +diff --git a/core/modules/layout_builder/src/SectionStorageInterface.php b/core/modules/layout_builder/src/SectionStorageInterface.php +index 35b3a9c87b..8cd7b5d38d 100644 +--- a/core/modules/layout_builder/src/SectionStorageInterface.php ++++ b/core/modules/layout_builder/src/SectionStorageInterface.php +@@ -136,7 +136,9 @@ public function save(); + public function isApplicable(RefinableCacheableDependencyInterface $cacheability); + + /** +- * Overrides \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition(). ++ * Overrides PluginInspectionInterface::getPluginDefinition(). ++ * ++ * @see \Drupal\Component\Plugin\PluginInspectionInterface::getPluginDefinition() + * + * @return \Drupal\layout_builder\SectionStorage\SectionStorageDefinition + * The section storage definition. +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php b/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php +index 7922024334..9d57e70dcf 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_decoration_test/src/Controller/LayoutBuilderDecorationTestHtmlEntityFormController.php +@@ -7,7 +7,7 @@ + use Symfony\Component\HttpFoundation\Request; + + /** +- * Overrides the entity form controller service for layout builder decoration test. ++ * Overrides entity form controller service for layout builder decoration test. + */ + class LayoutBuilderDecorationTestHtmlEntityFormController extends FormController { + +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php b/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php +index cec4af43bb..c33f193bec 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_element_test/src/EventSubscriber/TestPrepareLayout.php +@@ -12,8 +12,7 @@ + use Symfony\Component\EventDispatcher\EventSubscriberInterface; + + /** +- * An event subscriber to test altering section storage via the +- * \Drupal\layout_builder\Event\PrepareLayoutEvent. ++ * An event subscriber to test altering section storage via PrepareLayoutEvent. + * + * @see \Drupal\layout_builder\Event\PrepareLayoutEvent + * @see \Drupal\layout_builder\Element\LayoutBuilder::prepareLayout() +@@ -54,9 +53,15 @@ public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore + */ + public static function getSubscribedEvents() { + // Act before core's layout builder subscriber. +- $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = ['onBeforePrepareLayout', 20]; ++ $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = [ ++ 'onBeforePrepareLayout', ++ 20, ++ ]; + // Act after core's layout builder subscriber. +- $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = ['onAfterPrepareLayout', -10]; ++ $events[LayoutBuilderEvents::PREPARE_LAYOUT][] = [ ++ 'onAfterPrepareLayout', ++ -10, ++ ]; + return $events; + } + +diff --git a/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php b/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php +index de0ee7d079..9d25c36839 100644 +--- a/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php ++++ b/core/modules/layout_builder/tests/modules/layout_builder_test/src/Plugin/Layout/LayoutBuilderTestPlugin.php +@@ -5,6 +5,8 @@ + use Drupal\Core\Layout\LayoutDefault; + + /** ++ * Layout Builder Test plugin. ++ * + * @Layout( + * id = "layout_builder_test_plugin", + * label = @Translation("Layout Builder Test Plugin"), +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php +index 95c66ddb09..1334a08ea9 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonAnonTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\AnonResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php +index 6721bfaa02..f92408a157 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest.php +@@ -2,14 +2,16 @@ + + namespace Drupal\Tests\layout_builder\Functional\Hal; + +-use Drupal\FunctionalTests\Hal\EntityViewDisplayHalJsonAnonTest; ++use Drupal\Tests\layout_builder\Functional\Rest\LayoutBuilderEntityViewDisplayResourceTestBase; + use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +-class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDisplayHalJsonAnonTest { ++class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends LayoutBuilderEntityViewDisplayResourceTestBase { + + use BasicAuthResourceTestTrait; + +@@ -23,4 +25,9 @@ class LayoutBuilderEntityViewDisplayHalJsonBasicAuthTest extends EntityViewDispl + */ + protected static $auth = 'basic_auth'; + ++ /** ++ * {@inheritdoc} ++ */ ++ protected $defaultTheme = 'stark'; ++ + } +diff --git a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php +index ad272d297e..4190821fc5 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Hal/LayoutBuilderEntityViewDisplayHalJsonCookieTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\CookieResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayHalJsonCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php +index 2f92dbee69..10e218e4af 100644 +--- a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderAccessTest.php +@@ -56,8 +56,6 @@ protected function setUp(): void { + /** + * Tests Layout Builder access for an entity type that has bundles. + * +- * @dataProvider providerTestAccessWithBundles +- * + * @param array $permissions + * An array of permissions to grant to the user. + * @param bool $default_access +@@ -68,6 +66,8 @@ protected function setUp(): void { + * Whether access is expected for an editable override. + * @param array $permission_dependencies + * An array of expected permission dependencies. ++ * ++ * @dataProvider providerTestAccessWithBundles + */ + public function testAccessWithBundles(array $permissions, $default_access, $non_editable_access, $editable_access, array $permission_dependencies) { + $permissions[] = 'edit own bundle_with_section_field content'; +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php +index 316c1f8916..ea6493fefc 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonAnonTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\AnonResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php +index 099e31ace0..470fd5b34c 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonBasicAuthTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php +index de311a7325..8ccebcc091 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayJsonCookieTest.php +@@ -5,6 +5,8 @@ + use Drupal\Tests\rest\Functional\CookieResourceTestTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayJsonCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php +index 7d28bda963..ac8a4400b5 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayResourceTestBase.php +@@ -36,9 +36,37 @@ protected function getExpectedNormalizedEntity() { + $expected = parent::getExpectedNormalizedEntity(); + array_unshift($expected['dependencies']['module'], 'layout_builder'); + $expected['hidden'][OverridesSectionStorage::FIELD_NAME] = TRUE; ++ /** @var \Drupal\layout_builder\Section[] $sections */ ++ $sections = $this->entity->getThirdPartySetting('layout_builder', 'sections'); ++ $components = $sections[0]->getComponents(); ++ $component = array_pop($components); + $expected['third_party_settings']['layout_builder'] = [ + 'enabled' => TRUE, + 'allow_custom' => TRUE, ++ 'sections' => [ ++ [ ++ 'layout_id' => 'layout_onecol', ++ 'layout_settings' => [ ++ 'label' => '', ++ ], ++ 'components' => [ ++ [ ++ 'uuid' => $component->getUuid(), ++ 'region' => 'content', ++ 'configuration' => [ ++ 'label_display' => '0', ++ 'context_mapping' => [ ++ 'entity' => 'layout_builder.entity', ++ ], ++ 'id' => 'extra_field_block:node:camelids:links', ++ ], ++ 'weight' => 0, ++ 'additional' => [], ++ ], ++ ], ++ 'third_party_settings' => [], ++ ], ++ ], + ]; + return $expected; + } +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php +index 63d3ba0663..779cf321a3 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlAnonTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlAnonTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php +index 751e8ad3c5..92768dadf9 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlBasicAuthTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlBasicAuthTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php +index fef266ca49..a908febf50 100644 +--- a/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php ++++ b/core/modules/layout_builder/tests/src/Functional/Rest/LayoutBuilderEntityViewDisplayXmlCookieTest.php +@@ -6,6 +6,8 @@ + use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait; + + /** ++ * Provides a class LayoutBuilderEntityViewDisplayXmlCookieTest. ++ * + * @group layout_builder + * @group rest + */ +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php +index d50e1fa400..5034b6e929 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFilterTest.php +@@ -81,7 +81,10 @@ public function testBlockFilter() { + // Get the Content Fields category, which will be closed before filtering. + $contentFieldsCategory = $page->find('named', ['content', 'Content fields']); + // Link that belongs to the Content Fields category, to verify collapse. +- $promoteToFrontPageLink = $page->find('named', ['content', 'Promoted to front page']); ++ $promoteToFrontPageLink = $page->find('named', [ ++ 'content', ++ 'Promoted to front page', ++ ]); + // Test that front page link is visible until Content Fields collapsed. + $this->assertTrue($promoteToFrontPageLink->isVisible()); + $contentFieldsCategory->click(); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php +index 4fccd1c842..b0cc0c6e61 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php +@@ -44,7 +44,7 @@ protected function setUp(): void { + */ + public function testValidationMessage() { + // @todo Work out why this fixes random fails in this test. +- // https://www.drupal.org/project/drupal/issues/3055982 ++ // https://www.drupal.org/project/drupal/issues/3055982 + $this->getSession()->resizeWindow(800, 1000); + $assert_session = $this->assertSession(); + $page = $this->getSession()->getPage(); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php +index 01b76696c5..d96525f6f3 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/ContentPreviewToggleTest.php +@@ -94,7 +94,10 @@ public function testContentPreviewToggle() { + $this->assertContextualLinks(); + + // Confirm repositioning blocks works with content preview disabled. +- $this->assertOrderInPage([$links_field_placeholder_label, $body_field_placeholder_label]); ++ $this->assertOrderInPage([ ++ $links_field_placeholder_label, ++ $body_field_placeholder_label, ++ ]); + + $region_content = '.layout__region--content'; + $links_block = "[data-layout-content-preview-placeholder-label='$links_field_placeholder_label']"; +@@ -110,7 +113,10 @@ public function testContentPreviewToggle() { + $assert_session->pageTextNotContains($content_preview_body_text); + + // Check that drag successfully repositioned blocks. +- $this->assertOrderInPage([$body_field_placeholder_label, $links_field_placeholder_label]); ++ $this->assertOrderInPage([ ++ $body_field_placeholder_label, ++ $links_field_placeholder_label, ++ ]); + + // Check if block position maintained after enabling content preview. + $this->assertTrue($page->hasUncheckedField('layout-builder-content-preview')); +@@ -118,7 +124,10 @@ public function testContentPreviewToggle() { + $this->assertNotEmpty($assert_session->waitForText($content_preview_body_text)); + $assert_session->pageTextContains($content_preview_body_text); + $this->assertNotEmpty($assert_session->waitForText('Placeholder for the "Links" field')); +- $this->assertOrderInPage([$content_preview_body_text, 'Placeholder for the "Links" field']); ++ $this->assertOrderInPage([ ++ $content_preview_body_text, ++ 'Placeholder for the "Links" field', ++ ]); + } + + /** +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php +index bbcd3cf512..3c6fe1f76c 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTest.php +@@ -209,7 +209,10 @@ public function testInlineBlocksRevisioning() { + ])); + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + $this->drupalGet('node/1/layout'); + + // Add an inline block. +@@ -271,7 +274,10 @@ public function testInlineBlocksRevisioningIntegrity() { + 'create and edit custom blocks', + ])); + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + $block_1_locator = static::INLINE_BLOCK_LOCATOR; + $block_2_locator = sprintf('%s + %s', static::INLINE_BLOCK_LOCATOR, static::INLINE_BLOCK_LOCATOR); +@@ -486,7 +492,10 @@ public function testAccess() { + + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + // Ensure we have 2 copies of the block in node overrides. + $this->drupalGet('node/1/layout'); +@@ -536,7 +545,10 @@ public function testAddWorkFlow() { + + // Enable layout builder and overrides. + $this->drupalGet(static::FIELD_UI_PREFIX . '/display/default'); +- $this->submitForm(['layout[enabled]' => TRUE, 'layout[allow_custom]' => TRUE], 'Save'); ++ $this->submitForm([ ++ 'layout[enabled]' => TRUE, ++ 'layout[allow_custom]' => TRUE, ++ ], 'Save'); + + $layout_default_path = 'admin/structure/types/manage/bundle_with_section_field/display/default/layout'; + $this->drupalGet($layout_default_path); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php +index dbf68d6179..75f2e539ca 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/InlineBlockTestBase.php +@@ -49,7 +49,10 @@ protected function setUp() { + + $this->drupalPlaceBlock('local_tasks_block'); + +- $this->createContentType(['type' => 'bundle_with_section_field', 'new_revision' => TRUE]); ++ $this->createContentType([ ++ 'type' => 'bundle_with_section_field', ++ 'new_revision' => TRUE, ++ ]); + $this->createNode([ + 'type' => 'bundle_with_section_field', + 'title' => 'The node title', +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php +index 1562216da5..2e04d11a1e 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderTest.php +@@ -157,7 +157,10 @@ public function testLayoutBuilderUi() { + + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['link', 'Two column'])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Two column', ++ ])); + + $this->clickLink('Two column'); + $assert_session->waitForElementVisible('named', ['button', 'Add section']); +@@ -293,7 +296,10 @@ public function testConfigurableLayoutSections() { + // Add another section. + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $assert_session->waitForElementVisible('named', ['link', 'Layout plugin (with settings)']); ++ $assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Layout plugin (with settings)', ++ ]); + $assert_session->elementExists('css', '#drupal-off-canvas'); + + $assert_session->linkExists('Layout plugin (with settings)'); +@@ -309,7 +315,10 @@ public function testConfigurableLayoutSections() { + // Ensure validation error is displayed for ConfigureSectionForm. + $assert_session->linkExists('Add section'); + $this->clickLink('Add section'); +- $assert_session->waitForElementVisible('named', ['link', 'Layout plugin (with settings)']); ++ $assert_session->waitForElementVisible('named', [ ++ 'link', ++ 'Layout plugin (with settings)', ++ ]); + $this->clickLink('Layout plugin (with settings)'); + $this->assertOffCanvasFormAfterWait('layout_builder_configure_section'); + $page->fillField('layout_settings[setting_1]', 'Test Validation Error Message'); +@@ -466,7 +475,10 @@ private function openAddBlockForm($block_title) { + $assert_session->linkExists('Add block'); + $this->clickLink('Add block'); + $assert_session->assertWaitOnAjaxRequest(); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['link', $block_title])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'link', ++ $block_title, ++ ])); + $this->clickLink($block_title); + $this->assertOffCanvasFormAfterWait('layout_builder_add_block'); + } +@@ -481,7 +493,10 @@ private function assertOffCanvasFormAfterWait($expected_form_id) { + $this->assertSession()->assertWaitOnAjaxRequest(); + $off_canvas = $this->assertSession()->waitForElementVisible('css', '#drupal-off-canvas'); + $this->assertNotNull($off_canvas); +- $form_id_element = $off_canvas->find('hidden_field_selector', ['hidden_field', 'form_id']); ++ $form_id_element = $off_canvas->find('hidden_field_selector', [ ++ 'hidden_field', ++ 'form_id', ++ ]); + // Ensure the form ID has the correct value and that the form is visible. + $this->assertNotEmpty($form_id_element); + $this->assertSame($expected_form_id, $form_id_element->getValue()); +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php +index 6523bd6367..0d20caaab9 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderUiTest.php +@@ -22,6 +22,9 @@ class LayoutBuilderUiTest extends WebDriverTestBase { + */ + const FIELD_UI_PREFIX = 'admin/structure/types/manage/bundle_with_section_field'; + ++ /** ++ * {@inheritdoc} ++ */ + protected static $modules = [ + 'layout_builder', + 'block', +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php +index 3b857b10e5..1d47867c2b 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/MoveBlockFormTest.php +@@ -100,7 +100,10 @@ public function testMoveBlock() { + + // Reorder body field in current region. + $this->openBodyMoveForm(1, 'content', ['Links', 'Body (current)']); +- $this->moveBlockWithKeyboard('up', 'Body (current)', ['Body (current)*', 'Links']); ++ $this->moveBlockWithKeyboard('up', 'Body (current)', [ ++ 'Body (current)*', ++ 'Links', ++ ]); + $page->pressButton('Move'); + $expected_block_order = [ + '.block-field-blocknodebundle-with-section-fieldbody', +@@ -115,7 +118,10 @@ public function testMoveBlock() { + $this->openBodyMoveForm(1, 'content', ['Body (current)', 'Links']); + $page->selectFieldOption('Region', '0:first'); + $this->assertBlockTable(['Powered by Drupal', 'Body (current)']); +- $this->moveBlockWithKeyboard('up', 'Body', ['Body (current)*', 'Powered by Drupal']); ++ $this->moveBlockWithKeyboard('up', 'Body', [ ++ 'Body (current)*', ++ 'Powered by Drupal', ++ ]); + $page->pressButton('Move'); + $expected_block_order = [ + '.block-field-blocknodebundle-with-section-fieldbody', +@@ -241,7 +247,10 @@ protected function openBodyMoveForm($delta, $region, array $initial_blocks) { + $body_field_locator = "[data-layout-delta=\"$delta\"] [data-region=\"$region\"] .block-field-blocknodebundle-with-section-fieldbody"; + $this->clickContextualLink($body_field_locator, 'Move'); + $assert_session->assertWaitOnAjaxRequest(); +- $this->assertNotEmpty($assert_session->waitForElementVisible('named', ['select', 'Region'])); ++ $this->assertNotEmpty($assert_session->waitForElementVisible('named', [ ++ 'select', ++ 'Region', ++ ])); + $assert_session->fieldValueEquals('Region', "$delta:$region"); + $this->assertBlockTable($initial_blocks); + } +diff --git a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php +index 2fd7cd7a78..2b2fdc2a66 100644 +--- a/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php ++++ b/core/modules/layout_builder/tests/src/FunctionalJavascript/TestMultiWidthLayoutsTest.php +@@ -18,6 +18,9 @@ class TestMultiWidthLayoutsTest extends WebDriverTestBase { + */ + const FIELD_UI_PREFIX = 'admin/structure/types/manage/bundle_with_section_field'; + ++ /** ++ * {@inheritdoc} ++ */ + protected static $modules = [ + 'layout_builder', + 'block', +diff --git a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php +index 6bcf83e7f3..e27cc073f0 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderElementTest.php +@@ -18,6 +18,8 @@ + class LayoutBuilderElementTest extends KernelTestBase { + + /** ++ * Tests TestStore Deprecation Notice. ++ * + * @group legacy + */ + public function testConstructorTempStoreDeprecation() { +@@ -33,6 +35,8 @@ public function testConstructorTempStoreDeprecation() { + } + + /** ++ * Tests Messenger Deprecation Notice. ++ * + * @group legacy + */ + public function testConstructorMessengerDeprecation() { +diff --git a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php +index 3d4d2052ec..513fe93fb2 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/LayoutBuilderEntityViewDisplayTest.php +@@ -37,11 +37,16 @@ protected function getSectionList(array $section_data) { + */ + public function testInvalidConfiguration() { + $this->expectException(SchemaIncompleteException::class); +- $this->sectionList->getSection(0)->getComponent('first-uuid')->setConfiguration(['id' => 'foo', 'bar' => 'baz']); ++ $this->sectionStorage->getSection(0)->getComponent('first-uuid')->setConfiguration([ ++ 'id' => 'foo', ++ 'bar' => 'baz', ++ ]); + $this->sectionList->save(); + } + + /** ++ * Check Layout Builder Enabled or not. ++ * + * @dataProvider providerTestIsLayoutBuilderEnabled + */ + public function testIsLayoutBuilderEnabled($expected, $view_mode, $enabled) { +@@ -69,13 +74,17 @@ public function providerTestIsLayoutBuilderEnabled() { + $data['default disabled'] = [FALSE, 'default', FALSE]; + $data['full enabled'] = [TRUE, 'full', TRUE]; + $data['full disabled'] = [FALSE, 'full', FALSE]; +- $data['_custom enabled'] = [FALSE, '_custom', TRUE]; +- $data['_custom disabled'] = [FALSE, '_custom', FALSE]; ++ $data['_custom enabled'] = [ ++ FALSE, '_custom', TRUE, ++ ]; ++ $data['_custom disabled'] = [ ++ FALSE, '_custom', FALSE, ++ ]; + return $data; + } + + /** +- * Tests that setting overridable enables Layout Builder only when TRUE. ++ * Setting overridable enables Layout Builder only when set to TRUE. + */ + public function testSetOverridable() { + // Disable Layout Builder. +@@ -85,9 +94,11 @@ public function testSetOverridable() { + $this->sectionList->setOverridable(); + $this->assertTrue($this->sectionList->isLayoutBuilderEnabled()); + +- // Ensure Layout Builder is still enabled after setting Overridable to FALSE. ++ // Ensure Layout Builder is still enabled ++ // after setting Overridable to FALSE. + $this->sectionList->setOverridable(FALSE); +- $this->assertTrue($this->sectionList->isLayoutBuilderEnabled()); ++ $this->assertEquals($this->sectionStorage->isLayoutBuilderEnabled(), ++ TRUE); + } + + } +diff --git a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php +index ef67ae87ac..3542b98c71 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/OverridesSectionStorageTest.php +@@ -160,10 +160,16 @@ public function providerTestAccess() { + FALSE, TRUE, $section_data, ['configure editable entity_test entity_test layout overrides'], + ]; + $data['enabled, no data, bundle edit overrides, edit access'] = [ +- TRUE, TRUE, [], ['configure editable entity_test entity_test layout overrides', 'administer entity_test content'], ++ TRUE, TRUE, [], [ ++ 'configure editable entity_test entity_test layout overrides', ++ 'administer entity_test content', ++ ], + ]; + $data['enabled, data, bundle edit overrides, edit access'] = [ +- TRUE, TRUE, $section_data, ['configure editable entity_test entity_test layout overrides', 'administer entity_test content'], ++ TRUE, TRUE, $section_data, [ ++ 'configure editable entity_test entity_test layout overrides', ++ 'administer entity_test content', ++ ], + ]; + return $data; + } +diff --git a/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php b/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php +index 723947c5a2..9dd17d1cfd 100644 +--- a/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php ++++ b/core/modules/layout_builder/tests/src/Kernel/SectionListTraitTest.php +@@ -31,6 +31,11 @@ public function testAddBlankSection() { + + } + ++/** ++ * Defines the interface for an object that stores layout section list. ++ * ++ * @see \Drupal\layout_builder\SectionListInterface ++ */ + class TestSectionList implements SectionListInterface { + + use SectionListTrait { +diff --git a/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php b/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php +index cbd92bf279..0d2fe42b7c 100644 +--- a/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php ++++ b/core/modules/layout_builder/tests/src/Unit/BlockComponentRenderArrayTest.php +@@ -477,12 +477,12 @@ public function testOnBuildRenderEmptyBuildWithCacheTags() { + $expected_build = []; + + $expected_cache = $expected_build + [ +- '#cache' => [ +- 'contexts' => [], +- 'tags' => ['empty_build_cache_test', 'test'], +- 'max-age' => -1, +- ], +- ]; ++ '#cache' => [ ++ 'contexts' => [], ++ 'tags' => ['empty_build_cache_test', 'test'], ++ 'max-age' => -1, ++ ], ++ ]; + + $subscriber->onBuildRender($event); + $result = $event->getBuild(); +diff --git a/core/modules/layout_builder/tests/src/Unit/SectionTest.php b/core/modules/layout_builder/tests/src/Unit/SectionTest.php +index 2e21947de9..316b108cfa 100644 +--- a/core/modules/layout_builder/tests/src/Unit/SectionTest.php ++++ b/core/modules/layout_builder/tests/src/Unit/SectionTest.php +@@ -38,7 +38,10 @@ protected function setUp(): void { + (new SectionComponent('first-uuid', 'ordered-region', ['id' => 'first-block-id']))->setWeight(2), + ], + [ +- 'bad_judgement' => ['blink_speed' => 'fast', 'spin_direction' => 'clockwise'], ++ 'bad_judgement' => [ ++ 'blink_speed' => 'fast', ++ 'spin_direction' => 'clockwise', ++ ], + 'hunt_and_peck' => ['delay' => '300ms'], + ] + ); +diff --git a/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php +new file mode 100644 +index 0000000000..be271dd4f3 +--- /dev/null ++++ b/core/modules/layout_builder/tests/src/Unit/SectionDataNormalizerTest.php +@@ -0,0 +1,95 @@ ++normalizer = new SectionDataNormalizer(); ++ } ++ ++ /** ++ * @covers ::supportsNormalization ++ */ ++ public function testSupportsNormalization() { ++ $section_data = $this->prophesize(SectionData::class); ++ $this->assertTrue($this->normalizer->supportsNormalization($section_data->reveal())); ++ } ++ ++ /** ++ * @covers ::supportsDenormalization ++ */ ++ public function testSupportsDenormalization() { ++ $this->assertTrue($this->normalizer->supportsDenormalization([], SectionData::class)); ++ } ++ ++ /** ++ * Tests the normalize function. ++ * ++ * @covers ::normalize ++ */ ++ public function testNormalize() { ++ $data = ['foo']; ++ $section_data = $this->prophesize(SectionData::class); ++ $section = $this->prophesize(Section::class); ++ $section->toArray() ++ ->willReturn($data); ++ $section_data->getValue() ++ ->willReturn($section); ++ $this->assertArrayEquals($data, $this->normalizer->normalize($section_data->reveal())); ++ } ++ ++ /** ++ * Tests the denormalize function. ++ * ++ * @covers ::denormalize ++ */ ++ public function testDenormalize() { ++ $data = [ ++ 'layout_id' => $this->randomMachineName(), ++ 'layout_settings' => [ ++ 'label' => $this->randomMachineName(), ++ ], ++ 'components' => [], ++ 'third_party_settings' => [], ++ ]; ++ $target_instance = $this->prophesize(FieldItemInterface::class); ++ $target_instance->getDataDefinition() ++ ->willReturn($this->prophesize(DataDefinitionInterface::class)); ++ $context = [ ++ 'target_instance' => [ ++ $target_instance, ++ ], ++ ]; ++ /** @var \Drupal\layout_builder\Section $section_data */ ++ $section_data = $this->normalizer->denormalize($data, SectionData::class, $context); ++ $this->assertEquals($data['layout_id'], $section_data->getLayoutId()); ++ $this->assertEquals($data['components'], $section_data->getComponents()); ++ foreach ($section_data->getThirdPartyProviders() as $provider) { ++ $this->assertEquals($data['third_party_settings'], $section_data->getThirdPartySettings($provider)); ++ } ++ } ++ ++} +diff --git a/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php +new file mode 100644 +index 0000000000..5674439586 +--- /dev/null ++++ b/core/modules/layout_builder/src/Normalizer/SectionDataNormalizer.php +@@ -0,0 +1,34 @@ ++getValue()->toArray(); ++ } ++ ++ /** ++ * {@inheritdoc} ++ */ ++ public function denormalize($data, $class, $format = NULL, array $context = []) { ++ return Section::fromArray($data); ++ } ++ ++ diff --git a/src/patches/README.md b/src/patches/README.md new file mode 100644 index 000000000..4a7ea2e6c --- /dev/null +++ b/src/patches/README.md @@ -0,0 +1,11 @@ +# Provus Patches + +## 2942975 + +Allows inline blocks to export by ID. It is from this issue: http://drupal.org/node/2942975 + +``2942975_145-provus.patch`` is the patch against 9.3.x which is based on the upstream patch. + +The file ``diff-2942975_145-provus.txt`` shows the difference between the upstream patch and this local one. + +``2942975_145-d9-2-provus.patch`` is the patch against 9.2.x which is currently supported. diff --git a/src/patches/diff-2942975_145-provus.txt b/src/patches/diff-2942975_145-provus.txt new file mode 100644 index 000000000..2bd9897b8 --- /dev/null +++ b/src/patches/diff-2942975_145-provus.txt @@ -0,0 +1,42 @@ +272c272 +< index 9f347174d3..160ce058d3 100644 +--- +> index 9f347174d3..770852097f 100644 +275c275,287 +< @@ -239,6 +239,10 @@ protected function getEntity() { +--- +> @@ -229,6 +229,11 @@ protected function getEntity() { +> if (!empty($this->configuration['block_serialized'])) { +> $this->blockContent = unserialize($this->configuration['block_serialized']); +> } +> + elseif (!empty($this->configuration['uuid'])) { +> + $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); +> + $this->blockContent = is_array($entity) ? array_pop($entity) : $entity; +> + } +> + +> elseif (!empty($this->configuration['block_revision_id'])) { +> $entity = $this->entityTypeManager->getStorage('block_content')->loadRevision($this->configuration['block_revision_id']); +> $this->blockContent = $entity; +> @@ -239,6 +244,10 @@ protected function getEntity() { +286c298,312 +< @@ -291,6 +295,8 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE +--- +> @@ -270,7 +279,12 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta +> public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE) { +> /** @var \Drupal\block_content\BlockContentInterface $block */ +> $block = NULL; +> - if (!empty($this->configuration['block_serialized'])) { +> + if (empty($block) && !empty($this->configuration['uuid'])) { +> + $entity = $this->entityTypeManager->getStorage('block_content')->loadByProperties(['uuid' => $this->configuration['uuid']]); +> + $block = !empty($entity) ? current($entity) : NULL; +> + } +> + elseif (empty($block) && !empty($this->configuration['block_revision_id'])) { +> + +> $block = unserialize($this->configuration['block_serialized']); +> } +> if ($duplicate_block) { +> @@ -291,6 +305,8 @@ public function saveBlockContent($new_revision = FALSE, $duplicate_block = FALSE +1175c1201 +< +} +--- +> + diff --git a/src/themes/provus/components/00-base/misc/iframe.scss b/src/themes/provus/components/00-base/misc/iframe.scss new file mode 100644 index 000000000..00b0356c8 --- /dev/null +++ b/src/themes/provus/components/00-base/misc/iframe.scss @@ -0,0 +1,7 @@ +iframe { + width: 100% !important; + + @include desktop { + width: auto; + } +} diff --git a/src/themes/provus/provus.info.yml b/src/themes/provus/provus.info.yml index 5acd6b247..cde9e1818 100644 --- a/src/themes/provus/provus.info.yml +++ b/src/themes/provus/provus.info.yml @@ -3,6 +3,7 @@ type: theme description: Theme based on Emulsify. base theme: stable core: 8.x +core_version_requirement: ^8 || ^9 # Libraries (These are loaded on every page. Use https://www.drupal.org/developing/api/8/assets#twig whenever possible.) libraries: diff --git a/src/themes/provus/provus.theme b/src/themes/provus/provus.theme index 4213ed628..d51ed0d02 100644 --- a/src/themes/provus/provus.theme +++ b/src/themes/provus/provus.theme @@ -10,6 +10,7 @@ use Drupal\Core\Block\BlockPluginInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\Element; use Drupal\Core\Template\Attribute; +use Drupal\Core\Entity\EntityRepository; use Drupal\Core\Url; use Drupal\file\Entity\File; use Drupal\image\Entity\ImageStyle; @@ -261,7 +262,7 @@ function provus_preprocess_node(&$vars) { $date_format = 'provus_default'; break; } - $vars['date'] = format_date($vars['node']->getCreatedTime(), $date_format); + $vars['date'] = \Drupal::service('date.formatter')->format($vars['node']->getCreatedTime(), $date_format); // For nodes using the publish date in certain view modes, put the publish // date into the date var. if (array_key_exists('field_publish_date', $vars['content']) && Element::children($vars['content']['field_publish_date'])) { @@ -460,7 +461,7 @@ function provus_preprocess_field(&$vars) { if (isset($item['content']['#media'])) { $fid = $item['content']['#media']->getSource()->getSourceFieldValue($item['content']['#media']); $file = File::load($fid); - $url_full = $file->url(); + $url_full = $file->createFileUrl(); $style = ImageStyle::load('thumbnail'); $url_thumbnail = $style->buildUrl($file->getFileUri()); $vars['items'][$key]['image_thumb_src'] = $url_thumbnail; @@ -594,7 +595,7 @@ function provus_preprocess_banner(&$vars, $block) { if (!empty($logo_image[0])) { $logo_fid = $logo_image[0]->get('field_media_image')->target_id; $logo_file = File::load($logo_fid); - $vars['logo_src'] = $logo_file->url(); + $vars['logo_src'] = $logo_file->createFileUrl(); $vars['logo_alt'] = $logo_image[0]->get('field_media_image')->alt; } // Get person picture. @@ -938,7 +939,7 @@ function provus_preprocess_fileslist(&$vars, $block) { $item['file__url'] = $file->url(); $item['file__icon'] = $icon; $item['file__size'] = format_size($file->getSize()); - $item['file__changed'] = format_date($file->getChangedTime(), 'provus_default'); + $item['file__changed'] = \Drupal::service('date.formatter')->format($file->getChangedTime(), 'county_default'); $items[] = $item; } } @@ -1111,7 +1112,7 @@ function _prepare_teaser_search(&$vars, $type = 'node') { */ function _provus_current_path() { $current_path = \Drupal::service('path.current')->getPath(); - $result = \Drupal::service('path.alias_manager')->getAliasByPath($current_path); + $result = \Drupal::service('path_alias.manager')->getAliasByPath($current_path); return trim($result, '/'); } @@ -1197,8 +1198,8 @@ function _provus_mainmenu_set_expanded($item, $id) { if ($item['in_active_trail']) { list($bundle, $uuid) = explode(':', $id); // Set expanded setting from item. - $menu_link_content_entity = \Drupal::entityManager() - ->loadEntityByUuid($bundle, $uuid); + $entity_repository = \Drupal::service('entity.repository'); + $menu_link_content_entity = $entity_repository->loadEntityByUuid($bundle, $uuid); $item['is_expanded'] = $menu_link_content_entity->isExpanded(); if (!$item['is_expanded']) { unset($item['below']); diff --git a/src/themes/provus/templates/block/block--inline-item--card-background.html.twig b/src/themes/provus/templates/block/block--inline-item--card-background.html.twig index 592b8a9c5..b5af0c8a0 100644 --- a/src/themes/provus/templates/block/block--inline-item--card-background.html.twig +++ b/src/themes/provus/templates/block/block--inline-item--card-background.html.twig @@ -28,7 +28,7 @@
{% embed "@molecules/card/card-bg.twig" with { - card__heading: content.field_heading|render|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES')|truncate(50, true), + card__heading: content.field_heading, card__button__content: content.field_link.0['#title'], card__button__url: content.field_link.0['#url'], card__date: content.field_date, diff --git a/tests/behat/features/articles.feature b/tests/behat/features/articles.feature index af148c1b0..dfe4ff5b8 100644 --- a/tests/behat/features/articles.feature +++ b/tests/behat/features/articles.feature @@ -4,7 +4,4 @@ Feature: Test News and Press Releases pages Scenario: Ensure News page exists Given I am on "/news" Then I should see "News" - -Scenario: Ensure Press Releases page exists - Given I am on "/press" - Then I should see "Press Release" + And I should see "What is Atomic Web Design?" diff --git a/tests/behat/features/events.feature b/tests/behat/features/events.feature index 45c3ada41..d656b8f41 100644 --- a/tests/behat/features/events.feature +++ b/tests/behat/features/events.feature @@ -3,4 +3,4 @@ Feature: Test events Scenario: Ensure calendar loaded Given I am on "/events" - Then I should see "Test Event 3" + Then I should see "Events" diff --git a/tests/behat/features/landing_page.feature b/tests/behat/features/landing_page.feature index 6a88109cd..e575d2d8e 100644 --- a/tests/behat/features/landing_page.feature +++ b/tests/behat/features/landing_page.feature @@ -3,4 +3,4 @@ Feature: Test landing page content type Scenario: Ensure homepage working Given I am on "/" - Then I should see "Welcome to Southport County" + Then I should see "Welcome to Provus" diff --git a/tests/behat/features/page.feature b/tests/behat/features/page.feature index 4edc2fd70..a163996ad 100644 --- a/tests/behat/features/page.feature +++ b/tests/behat/features/page.feature @@ -2,5 +2,5 @@ Feature: Test pages Scenario: Ensure test page contains promo card - Given I am on "/people" - Then I should see "The people working for you." + Given I am on "/node/18" + Then I should see "Staff"