diff --git a/.circleci/config.yml b/.circleci/config.yml index dcbfd2b3b1..4186d4ff2a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -295,34 +295,25 @@ jobs: docker: - image: cimg/php:8.2-browsers environment: - DRUPAL_VERSION: 10.2 + DRUPAL_VERSION: 10.3 DRUPAL_PROJECT_SHA: 10.x <<: *job-build-isolated - build-isolated-php-82-legacy: - <<: *runner_config - docker: - - image: cimg/php:8.2-browsers - environment: - DRUPAL_VERSION: 10.2 - DRUPAL_PROJECT_SHA: 10.x - <<: *job-build-isolated - - build-isolated-php-82-next: + build-isolated-php-83: <<: *runner_config docker: - - image: cimg/php:8.2-browsers + - image: cimg/php:8.3-browsers environment: - DRUPAL_VERSION: 10@beta + DRUPAL_VERSION: 10.3 DRUPAL_PROJECT_SHA: 10.x <<: *job-build-isolated - build-isolated-php-83: + build-isolated-php-83-legacy: <<: *runner_config docker: - image: cimg/php:8.3-browsers environment: - DRUPAL_VERSION: stable + DRUPAL_VERSION: 10.3 DRUPAL_PROJECT_SHA: 10.x <<: *job-build-isolated @@ -335,6 +326,24 @@ jobs: DRUPAL_PROJECT_SHA: 10.x <<: *job-build-isolated + # build-isolated-php-84: + # <<: *runner_config + # docker: + # - image: cimg/php:8.4-browsers + # environment: + # DRUPAL_VERSION: stable + # DRUPAL_PROJECT_SHA: 10.x + # <<: *job-build-isolated + + # build-isolated-php-84-next: + # <<: *runner_config + # docker: + # - image: cimg/php:8.4-browsers + # environment: + # DRUPAL_VERSION: 10@beta + # DRUPAL_PROJECT_SHA: 10.x + # <<: *job-build-isolated + # Used to pass the built code down the pipeline. build-minimal: <<: *runner_config @@ -514,7 +523,7 @@ jobs: ################################################################################ workflows: - version: 2 + version: 2.1 # # Commit workflow. Runs for every commit push to the remote repository. commit: @@ -525,19 +534,13 @@ workflows: ignore: /^content\/.*/ tags: only: /.*/ - - build-isolated-php-82-legacy: - filters: - branches: - ignore: /^content\/.*/ - tags: - only: /.*/ - - build-isolated-php-82-next: + - build-isolated-php-83: filters: branches: ignore: /^content\/.*/ tags: only: /.*/ - - build-isolated-php-83: + - build-isolated-php-83-legacy: filters: branches: ignore: /^content\/.*/ @@ -549,13 +552,26 @@ workflows: ignore: /^content\/.*/ tags: only: /.*/ + # - build-isolated-php-84: + # filters: + # branches: + # ignore: /^content\/.*/ + # tags: + # only: /.*/ + # - build-isolated-php-84-next: + # filters: + # branches: + # ignore: /^content\/.*/ + # tags: + # only: /.*/ - build-minimal: requires: - build-isolated-php-82 - - build-isolated-php-82-legacy - - build-isolated-php-82-next - build-isolated-php-83 + - build-isolated-php-83-legacy - build-isolated-php-83-next + # - build-isolated-php-84 + # - build-isolated-php-84-next filters: branches: ignore: /^content\/.*/ @@ -564,10 +580,11 @@ workflows: - build-minimal-subtheme: requires: - build-isolated-php-82 - - build-isolated-php-82-legacy - - build-isolated-php-82-next - build-isolated-php-83 + - build-isolated-php-83-legacy - build-isolated-php-83-next + # - build-isolated-php-84 + # - build-isolated-php-84-next filters: branches: ignore: /^content\/.*/ @@ -576,10 +593,11 @@ workflows: - build-govcms: requires: - build-isolated-php-82 - - build-isolated-php-82-legacy - - build-isolated-php-82-next - build-isolated-php-83 + - build-isolated-php-83-legacy - build-isolated-php-83-next + # - build-isolated-php-84 + # - build-isolated-php-84-next filters: branches: ignore: /^content\/.*/ @@ -588,10 +606,11 @@ workflows: - build-govcms-subtheme: requires: - build-isolated-php-82 - - build-isolated-php-82-legacy - - build-isolated-php-82-next - build-isolated-php-83 + - build-isolated-php-83-legacy - build-isolated-php-83-next + # - build-isolated-php-84 + # - build-isolated-php-84-next filters: branches: ignore: /^content\/.*/ @@ -600,10 +619,11 @@ workflows: - build-govcms-subtheme-sibling: requires: - build-isolated-php-82 - - build-isolated-php-82-legacy - - build-isolated-php-82-next - build-isolated-php-83 + - build-isolated-php-83-legacy - build-isolated-php-83-next + # - build-isolated-php-84 + # - build-isolated-php-84-next filters: branches: ignore: /^content\/.*/ diff --git a/.docker/cli.dockerfile b/.docker/cli.dockerfile index 9296f6f52f..36d18dbbe9 100644 --- a/.docker/cli.dockerfile +++ b/.docker/cli.dockerfile @@ -6,11 +6,11 @@ # - Installs CivicTheme dependencies and builds assets # - Creates sub-theme, installs dependencies and builds assets # -# @see https://hub.docker.com/r/uselagoon/php-8.2-cli-drupal/tags +# @see https://hub.docker.com/r/uselagoon/php-8.3-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal # # hadolint global ignore=DL3018 -FROM uselagoon/php-8.2-cli-drupal:24.5.1 +FROM uselagoon/php-8.3-cli-drupal:24.10.0 # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. diff --git a/.docker/cli.onlytheme.dockerfile b/.docker/cli.onlytheme.dockerfile index 2e0d5beaf1..8bb59f8666 100644 --- a/.docker/cli.onlytheme.dockerfile +++ b/.docker/cli.onlytheme.dockerfile @@ -5,11 +5,11 @@ # - Installs Composer dependencies # - Installs CivicTheme dependencies and builds assets # -# @see https://hub.docker.com/r/uselagoon/php-8.2-cli-drupal/tags +# @see https://hub.docker.com/r/uselagoon/php-8.3-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal # # hadolint global ignore=DL3018 -FROM uselagoon/php-8.2-cli-drupal:24.5.1 +FROM uselagoon/php-8.3-cli-drupal:24.10.0 # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. diff --git a/.docker/cli.sibling.dockerfile b/.docker/cli.sibling.dockerfile index 964d6b4914..17285fc748 100644 --- a/.docker/cli.sibling.dockerfile +++ b/.docker/cli.sibling.dockerfile @@ -6,11 +6,11 @@ # - Installs CivicTheme dependencies and builds assets # - Creates sub-theme as a sibling, installs dependencies and builds assets # -# @see https://hub.docker.com/r/uselagoon/php-8.2-cli-drupal/tags +# @see https://hub.docker.com/r/uselagoon/php-8.3-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal # # hadolint global ignore=DL3018 -FROM uselagoon/php-8.2-cli-drupal:24.5.1 +FROM uselagoon/php-8.3-cli-drupal:24.10.0 # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. diff --git a/.docker/php.dockerfile b/.docker/php.dockerfile index 407ceb1a58..f9da8c0c50 100644 --- a/.docker/php.dockerfile +++ b/.docker/php.dockerfile @@ -8,9 +8,9 @@ ARG CLI_IMAGE # hadolint ignore=DL3006 FROM ${CLI_IMAGE:-cli} as cli -# @see https://hub.docker.com/r/uselagoon/php-8.2-fpm/tags +# @see https://hub.docker.com/r/uselagoon/php-8.3-fpm/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-fpm -FROM uselagoon/php-8.2-fpm:24.5.1 +FROM uselagoon/php-8.3-fpm:24.10.0 RUN apk add --no-cache tzdata diff --git a/composer.json b/composer.json index 0bc2e2301d..e9dfdb3040 100644 --- a/composer.json +++ b/composer.json @@ -6,9 +6,9 @@ "php": ">=8.2", "composer/installers": "^2.1", "cweagans/composer-patches": "^1.7", - "drupal/core-composer-scaffold": "^10.2", + "drupal/core-composer-scaffold": "^10.3", "drupal/core-project-message": "^10", - "drupal/core-recommended": "^10.2", + "drupal/core-recommended": "^10.3", "drupal/search_api": "^1.30", "drush/drush": "^12", "oomphinc/composer-installers-extender": "^2.0", @@ -88,10 +88,11 @@ "php-http/discovery": true, "phpstan/extension-installer": true, "pyrech/composer-changelogs": true, - "wikimedia/composer-merge-plugin": true + "wikimedia/composer-merge-plugin": true, + "tbachert/spi": true }, "platform": { - "php": "8.2.13" + "php": "8.3.8" }, "process-timeout": 0, "sort-packages": true @@ -173,9 +174,6 @@ "patches": { "drupal/core": { "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2023-07-16/3204271-20-missing-layout-exception.patch" - }, - "mglaman/phpstan-drupal": { - "Allow to provide drupal_root via an environment variable.": "https://github.com/mglaman/phpstan-drupal/pull/702.patch" } }, "preserve-paths": [ diff --git a/composer.lock b/composer.lock index d744624b80..ccaa2cfe67 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": "aaecd9359a4bd902a3f93b53ae56bdc3", + "content-hash": "7386e390430c8a338638924c31e96f99", "packages": [ { "name": "asm89/stack-cors", @@ -604,24 +604,24 @@ }, { "name": "composer/semver", - "version": "3.4.2", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -665,7 +665,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.2" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -681,7 +681,7 @@ "type": "tidelift" } ], - "time": "2024-07-12T11:35:52+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "consolidation/annotated-command", @@ -903,16 +903,16 @@ }, { "name": "consolidation/output-formatters", - "version": "4.5.0", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540" + "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/7a611b01eb48eb19cd54672339fc08c0985bf540", - "reference": "7a611b01eb48eb19cd54672339fc08c0985bf540", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/5fd5656718d7068a02d046f418a7ba873d5abbfe", + "reference": "5fd5656718d7068a02d046f418a7ba873d5abbfe", "shasum": "" }, "require": { @@ -951,9 +951,9 @@ "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/4.5.0" + "source": "https://github.com/consolidation/output-formatters/tree/4.6.0" }, - "time": "2024-04-02T15:18:52+00:00" + "time": "2024-10-18T14:02:48+00:00" }, { "name": "consolidation/robo", @@ -1646,16 +1646,16 @@ }, { "name": "doctrine/common", - "version": "3.4.4", + "version": "3.4.5", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a" + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", - "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", + "url": "https://api.github.com/repos/doctrine/common/zipball/6c8fef961f67b8bc802ce3e32e3ebd1022907286", + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286", "shasum": "" }, "require": { @@ -1717,7 +1717,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.4" + "source": "https://github.com/doctrine/common/tree/3.4.5" }, "funding": [ { @@ -1733,20 +1733,20 @@ "type": "tidelift" } ], - "time": "2024-04-16T13:35:33+00:00" + "time": "2024-10-08T15:53:43+00:00" }, { "name": "doctrine/dbal", - "version": "3.9.1", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7" + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", "shasum": "" }, "require": { @@ -1762,7 +1762,7 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.12.0", + "phpstan/phpstan": "1.12.6", "phpstan/phpstan-strict-rules": "^1.6", "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", @@ -1830,7 +1830,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.9.1" + "source": "https://github.com/doctrine/dbal/tree/3.9.3" }, "funding": [ { @@ -1846,7 +1846,7 @@ "type": "tidelift" } ], - "time": "2024-09-01T13:49:23+00:00" + "time": "2024-10-10T17:56:43+00:00" }, { "name": "doctrine/deprecations", @@ -2066,16 +2066,16 @@ }, { "name": "doctrine/persistence", - "version": "3.3.3", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "b337726451f5d530df338fc7f68dee8781b49779" + "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/b337726451f5d530df338fc7f68dee8781b49779", - "reference": "b337726451f5d530df338fc7f68dee8781b49779", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/0ea965320cec355dba75031c1b23d4c78362e3ff", + "reference": "0ea965320cec355dba75031c1b23d4c78362e3ff", "shasum": "" }, "require": { @@ -2089,12 +2089,11 @@ "require-dev": { "doctrine/coding-standard": "^12", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.11.1", + "phpstan/phpstan": "1.12.7", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.24.0" + "phpunit/phpunit": "^8.5.38 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.0 || ^7.0" }, "type": "library", "autoload": { @@ -2143,7 +2142,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.3.3" + "source": "https://github.com/doctrine/persistence/tree/3.4.0" }, "funding": [ { @@ -2159,7 +2158,7 @@ "type": "tidelift" } ], - "time": "2024-06-20T10:14:30+00:00" + "time": "2024-10-30T19:48:12+00:00" }, { "name": "drupal/address", @@ -2230,20 +2229,20 @@ }, { "name": "drupal/admin_toolbar", - "version": "3.4.2", + "version": "3.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/admin_toolbar.git", - "reference": "3.4.2" + "reference": "3.5.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.4.2.zip", - "reference": "3.4.2", - "shasum": "f5a008e5c73f5a11c6c8067c0ea6ebb76aa33854" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.5.0.zip", + "reference": "3.5.0", + "shasum": "099e8d4dc98e1d551b4f9cffdc39599eb8ad04e8" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "require-dev": { "drupal/admin_toolbar_tools": "*" @@ -2251,8 +2250,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.4.2", - "datestamp": "1696006195", + "version": "3.5.0", + "datestamp": "1722639094", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2495,17 +2494,17 @@ }, { "name": "drupal/chosen", - "version": "4.0.1", + "version": "4.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/chosen.git", - "reference": "4.0.1" + "reference": "4.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/chosen-4.0.1.zip", - "reference": "4.0.1", - "shasum": "03ec154a6e2994873efc57d974cb535dd3bf9629" + "url": "https://ftp.drupal.org/files/projects/chosen-4.0.3.zip", + "reference": "4.0.3", + "shasum": "72a4090b4b21ff7341d1f2e05866b25feede3188" }, "require": { "drupal/chosen_lib": "*", @@ -2514,8 +2513,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.1", - "datestamp": "1715856677", + "version": "4.0.3", + "datestamp": "1725307446", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2638,29 +2637,29 @@ }, { "name": "drupal/components", - "version": "3.0.0-beta3", + "version": "3.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/components.git", - "reference": "3.0.0-beta3" + "reference": "3.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-3.0.0-beta3.zip", - "reference": "3.0.0-beta3", - "shasum": "47ced4332f0a655ca38ae1b54e97a8e78d59f0bc" + "url": "https://ftp.drupal.org/files/projects/components-3.1.0.zip", + "reference": "3.1.0", + "shasum": "a9d9f7517f54038d0d6fa68185d80e26d2ad1d8d" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^10.2 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.0-beta3", - "datestamp": "1651759488", + "version": "3.1.0", + "datestamp": "1725921122", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -2691,26 +2690,26 @@ }, { "name": "drupal/config_devel", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_devel.git", - "reference": "8.x-1.9" + "reference": "8.x-1.10" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_devel-8.x-1.9.zip", - "reference": "8.x-1.9", - "shasum": "a9cb90575ec854b8d8adb4633a0ddc47c490ca87" + "url": "https://ftp.drupal.org/files/projects/config_devel-8.x-1.10.zip", + "reference": "8.x-1.10", + "shasum": "d47415b4be32180f27fcd58e86107a9a7b1351f3" }, "require": { - "drupal/core": "^9.3 || ^10" + "drupal/core": "^9.3 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.9", - "datestamp": "1678264813", + "version": "8.x-1.10", + "datestamp": "1727184343", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2751,20 +2750,20 @@ }, { "name": "drupal/config_filter", - "version": "2.6.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_filter.git", - "reference": "8.x-2.6" + "reference": "8.x-2.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-2.6.zip", - "reference": "8.x-2.6", - "shasum": "fd1a057a402436fc906c63bf0a74722f73b9b155" + "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-2.7.zip", + "reference": "8.x-2.7", + "shasum": "7fe7161b93c7e24c6db135f1cf82d144bef66e50" }, "require": { - "drupal/core": "^8.8 || ^9 || ^10" + "drupal/core": "^8.8 || ^9 || ^10 || ^11" }, "conflict": { "drush/drush": "<10" @@ -2775,8 +2774,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.6", - "datestamp": "1698308577", + "version": "8.x-2.7", + "datestamp": "1727472458", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3105,26 +3104,26 @@ }, { "name": "drupal/config_update", - "version": "2.0.0-alpha3", + "version": "2.0.0-alpha4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_update.git", - "reference": "2.0.0-alpha3" + "reference": "2.0.0-alpha4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_update-2.0.0-alpha3.zip", - "reference": "2.0.0-alpha3", - "shasum": "c35e81e8fb77efdff5ddca3a87116ea0c522a7e2" + "url": "https://ftp.drupal.org/files/projects/config_update-2.0.0-alpha4.zip", + "reference": "2.0.0-alpha4", + "shasum": "d8ea528b0b3e24918356bb72bef61408f650aa8e" }, "require": { - "drupal/core": "^9.4 || ^10" + "drupal/core": "^9.4 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0-alpha3", - "datestamp": "1683807608", + "version": "2.0.0-alpha4", + "datestamp": "1724596931", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -3262,27 +3261,27 @@ }, { "name": "drupal/contact_storage", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/contact_storage.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/contact_storage-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "719dad5a991aa32e14c9bcb7b9dc76830e2331df" + "url": "https://ftp.drupal.org/files/projects/contact_storage-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "42def93e522b18d240d9f94026bf4fea0a653c83" }, "require": { - "drupal/core": "^9.1 || ^10", + "drupal/core": "^9.1 || ^10 || ^11", "drupal/token": "^1.6" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1667651867", + "version": "8.x-1.4", + "datestamp": "1723970772", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3442,16 +3441,16 @@ }, { "name": "drupal/core", - "version": "10.2.7", + "version": "10.3.6", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "4416c8a86e5b57b5acc595e4855ce50fdb6a542d" + "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/4416c8a86e5b57b5acc595e4855ce50fdb6a542d", - "reference": "4416c8a86e5b57b5acc595e4855ce50fdb6a542d", + "url": "https://api.github.com/repos/drupal/core/zipball/168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6", + "reference": "168ec99f2012aeb4e93c6c7dd4a90dc919ae96c6", "shasum": "" }, "require": { @@ -3497,7 +3496,7 @@ "symfony/serializer": "^6.4", "symfony/validator": "^6.4", "symfony/yaml": "^6.4", - "twig/twig": "^3.5.0" + "twig/twig": "^3.14.0" }, "conflict": { "drush/drush": "<12.4.3" @@ -3590,7 +3589,8 @@ "lib/Drupal/Core/DrupalKernel.php", "lib/Drupal/Core/DrupalKernelInterface.php", "lib/Drupal/Core/Installer/InstallerRedirectTrait.php", - "lib/Drupal/Core/Site/Settings.php" + "lib/Drupal/Core/Site/Settings.php", + "lib/Drupal/Component/Datetime/Time.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3599,22 +3599,22 @@ ], "description": "Drupal is an open source content management platform powering millions of websites and applications.", "support": { - "source": "https://github.com/drupal/core/tree/10.2.7" + "source": "https://github.com/drupal/core/tree/10.3.6" }, - "time": "2024-06-06T07:25:42+00:00" + "time": "2024-10-03T08:58:13+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.2.7", + "version": "10.3.6", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "adc702b6ef38a0446abe90267acb96aa806995cf" + "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/adc702b6ef38a0446abe90267acb96aa806995cf", - "reference": "adc702b6ef38a0446abe90267acb96aa806995cf", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/f58ab5c0d02d275c5aa226c4505b457e41b161cc", + "reference": "f58ab5c0d02d275c5aa226c4505b457e41b161cc", "shasum": "" }, "require": { @@ -3649,13 +3649,13 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.2.7" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.3.6" }, - "time": "2024-04-09T07:27:23+00:00" + "time": "2024-08-22T14:31:34+00:00" }, { "name": "drupal/core-project-message", - "version": "10.3.5", + "version": "10.3.7", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", @@ -3690,80 +3690,80 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/11.0.3" + "source": "https://github.com/drupal/core-project-message/tree/11.0.5" }, "time": "2023-07-24T07:55:25+00:00" }, { "name": "drupal/core-recommended", - "version": "10.2.7", + "version": "10.3.6", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "afaac96cde3b05179d11152ed646f9f6772e7a0e" + "reference": "5ddec63138dc10869dea5d1cd4e72c977bb9b538" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/afaac96cde3b05179d11152ed646f9f6772e7a0e", - "reference": "afaac96cde3b05179d11152ed646f9f6772e7a0e", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/5ddec63138dc10869dea5d1cd4e72c977bb9b538", + "reference": "5ddec63138dc10869dea5d1cd4e72c977bb9b538", "shasum": "" }, "require": { "asm89/stack-cors": "~v2.2.0", "composer/semver": "~3.4.0", "doctrine/annotations": "~1.14.3", - "doctrine/deprecations": "~1.1.2", - "doctrine/lexer": "~2.1.0", - "drupal/core": "10.2.7", + "doctrine/deprecations": "~1.1.3", + "doctrine/lexer": "~2.1.1", + "drupal/core": "10.3.6", "egulias/email-validator": "~4.0.2", "guzzlehttp/guzzle": "~7.8.1", "guzzlehttp/promises": "~2.0.2", "guzzlehttp/psr7": "~2.6.2", - "masterminds/html5": "~2.8.1", - "mck89/peast": "~v1.15.4", - "pear/archive_tar": "~1.4.14", + "masterminds/html5": "~2.9.0", + "mck89/peast": "~v1.16.2", + "pear/archive_tar": "~1.5.0", "pear/console_getopt": "~v1.4.3", - "pear/pear-core-minimal": "~v1.10.14", + "pear/pear-core-minimal": "~v1.10.15", "pear/pear_exception": "~v1.0.2", "psr/cache": "~3.0.0", "psr/container": "~2.0.2", "psr/event-dispatcher": "~1.0.0", "psr/http-client": "~1.0.3", - "psr/http-factory": "~1.0.2", + "psr/http-factory": "~1.1.0", "psr/log": "~3.0.0", "ralouphie/getallheaders": "~3.0.3", - "sebastian/diff": "~4.0.5", - "symfony/console": "~v6.4.1", - "symfony/dependency-injection": "~v6.4.1", - "symfony/deprecation-contracts": "~v3.4.0", - "symfony/error-handler": "~v6.4.0", - "symfony/event-dispatcher": "~v6.4.0", - "symfony/event-dispatcher-contracts": "~v3.4.0", - "symfony/filesystem": "~v6.4.0", - "symfony/finder": "~v6.4.0", - "symfony/http-foundation": "~v6.4.0", - "symfony/http-kernel": "~v6.4.1", - "symfony/mailer": "~v6.4.0", - "symfony/mime": "~v6.4.0", - "symfony/polyfill-ctype": "~v1.28.0", - "symfony/polyfill-iconv": "~v1.28.0", - "symfony/polyfill-intl-grapheme": "~v1.28.0", - "symfony/polyfill-intl-idn": "~v1.28.0", - "symfony/polyfill-intl-normalizer": "~v1.28.0", - "symfony/polyfill-mbstring": "~v1.28.0", - "symfony/polyfill-php83": "~v1.28.0", - "symfony/process": "~v6.4.0", - "symfony/psr-http-message-bridge": "~v6.4.0", - "symfony/routing": "~v6.4.1", - "symfony/serializer": "~v6.4.1", - "symfony/service-contracts": "~v3.4.0", - "symfony/string": "~v6.4.0", - "symfony/translation-contracts": "~v3.4.0", - "symfony/validator": "~v6.4.0", - "symfony/var-dumper": "~v6.4.0", - "symfony/var-exporter": "~v6.4.1", - "symfony/yaml": "~v6.4.0", - "twig/twig": "~v3.8.0" + "sebastian/diff": "~4.0.6", + "symfony/console": "~v6.4.8", + "symfony/dependency-injection": "~v6.4.7", + "symfony/deprecation-contracts": "~v3.5.0", + "symfony/error-handler": "~v6.4.7", + "symfony/event-dispatcher": "~v6.4.7", + "symfony/event-dispatcher-contracts": "~v3.5.0", + "symfony/filesystem": "~v6.4.8", + "symfony/finder": "~v6.4.8", + "symfony/http-foundation": "~v6.4.7", + "symfony/http-kernel": "~v6.4.7", + "symfony/mailer": "~v6.4.7", + "symfony/mime": "~v6.4.7", + "symfony/polyfill-ctype": "~v1.29.0", + "symfony/polyfill-iconv": "~v1.29.0", + "symfony/polyfill-intl-grapheme": "~v1.29.0", + "symfony/polyfill-intl-idn": "~v1.29.0", + "symfony/polyfill-intl-normalizer": "~v1.29.0", + "symfony/polyfill-mbstring": "~v1.29.0", + "symfony/polyfill-php83": "~v1.29.0", + "symfony/process": "~v6.4.8", + "symfony/psr-http-message-bridge": "~v6.4.7", + "symfony/routing": "~v6.4.7", + "symfony/serializer": "~v6.4.7", + "symfony/service-contracts": "~v3.5.0", + "symfony/string": "~v6.4.8", + "symfony/translation-contracts": "~v3.5.0", + "symfony/validator": "~v6.4.7", + "symfony/var-dumper": "~v6.4.7", + "symfony/var-exporter": "~v6.4.7", + "symfony/yaml": "~v6.4.7", + "twig/twig": "~v3.14.0" }, "conflict": { "webflo/drupal-core-strict": "*" @@ -3775,9 +3775,9 @@ ], "description": "Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.", "support": { - "source": "https://github.com/drupal/core-recommended/tree/10.2.7" + "source": "https://github.com/drupal/core-recommended/tree/10.3.6" }, - "time": "2024-06-06T07:25:42+00:00" + "time": "2024-10-03T08:58:13+00:00" }, { "name": "drupal/crop", @@ -4120,17 +4120,17 @@ }, { "name": "drupal/diff", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/diff.git", - "reference": "8.x-1.7" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "d282bdf3350ac71f95b38576a9f397bdbab8d249" + "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "a104bf731a282f06ff0d5a7fb861c01b5b933765" }, "require": { "drupal/core": "^10 || ^11", @@ -4145,13 +4145,13 @@ "phpstan/phpstan-deprecation-rules": "*", "phpstan/phpstan-phpunit": "1.4.x-dev", "phpstan/phpstan-strict-rules": "^1@stable", - "previousnext/coding-standard": "^1" + "previousnext/coding-standard": "1.0.1" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1718073570", + "version": "8.x-1.8", + "datestamp": "1727892285", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4227,20 +4227,20 @@ }, { "name": "drupal/dropzonejs", - "version": "2.10.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/dropzonejs.git", - "reference": "8.x-2.10" + "reference": "8.x-2.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/dropzonejs-8.x-2.10.zip", - "reference": "8.x-2.10", - "shasum": "72bee3bce2d29eace381edba1a7e0237db6ecd48" + "url": "https://ftp.drupal.org/files/projects/dropzonejs-8.x-2.11.zip", + "reference": "8.x-2.11", + "shasum": "0fb4eff1bba2fd33850db0dfd9929ef4bd4569ee" }, "require": { - "drupal/core": "^9.3 || ^10" + "drupal/core": "^9.3 || ^10 || ^11" }, "require-dev": { "drupal/entity_browser": "^2.5" @@ -4251,8 +4251,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.10", - "datestamp": "1709584348", + "version": "8.x-2.11", + "datestamp": "1723381576", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4320,20 +4320,20 @@ }, { "name": "drupal/ds", - "version": "3.22.0", + "version": "3.24.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/ds.git", - "reference": "8.x-3.22" + "reference": "8.x-3.24" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ds-8.x-3.22.zip", - "reference": "8.x-3.22", - "shasum": "4f14bbc3dd966372947fec079e19e1c3ac961b57" + "url": "https://ftp.drupal.org/files/projects/ds-8.x-3.24.zip", + "reference": "8.x-3.24", + "shasum": "5b575bc231cd627a33f201daaa6b1a3a70d28e84" }, "require": { - "drupal/core": "^10" + "drupal/core": "^10.2 || ^11" }, "require-dev": { "drupal/devel": "5.x-dev", @@ -4342,8 +4342,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.22", - "datestamp": "1715854314", + "version": "8.x-3.24", + "datestamp": "1726653898", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4453,29 +4453,29 @@ }, { "name": "drupal/embed", - "version": "1.7.0", + "version": "1.9.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/embed.git", - "reference": "8.x-1.7" + "reference": "8.x-1.9" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "b7ca4264be51038f947d26b6725fc0446b224f60" + "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.9.zip", + "reference": "8.x-1.9", + "shasum": "e6b4875e2b245ddf1a68a8615cbb4c5a378a0e9f" }, "require": { - "drupal/core": "^9.3 | ^10" + "drupal/core": "^9.5 | ^10" }, "require-dev": { - "drupal/ckeditor": "*" + "drupal/ckeditor": "^1.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1697642867", + "version": "8.x-1.9", + "datestamp": "1723283819", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4520,27 +4520,27 @@ }, { "name": "drupal/encrypt", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/encrypt.git", - "reference": "8.x-3.1" + "reference": "8.x-3.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/encrypt-8.x-3.1.zip", - "reference": "8.x-3.1", - "shasum": "357ca7fcf9879af66b5d0c5593da080f19664f17" + "url": "https://ftp.drupal.org/files/projects/encrypt-8.x-3.2.zip", + "reference": "8.x-3.2", + "shasum": "32a700eeb59aac51f6ce4651718243a1641d5ef0" }, "require": { - "drupal/core": "^8 || ^9 || ^10", - "drupal/key": "*" + "drupal/core": "^8 || ^9 || ^10 || ^11", + "drupal/key": "^1" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.1", - "datestamp": "1669655248", + "version": "8.x-3.2", + "datestamp": "1727640040", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4590,20 +4590,20 @@ }, { "name": "drupal/entity_browser", - "version": "2.10.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_browser.git", - "reference": "8.x-2.10" + "reference": "8.x-2.11" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.10.zip", - "reference": "8.x-2.10", - "shasum": "d52548ea66dc56108c2e211aeaff6e1cc0522e85" + "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.11.zip", + "reference": "8.x-2.11", + "shasum": "4ead3d3f9f6365fbc25cfbd0edcc5e0a9cc52e02" }, "require": { - "drupal/core": "^9.5 || ^10" + "drupal/core": "^10.2 || ^11" }, "conflict": { "drupal/media_entity": "1.*" @@ -4616,13 +4616,14 @@ "drupal/entityqueue": "^1.0", "drupal/inline_entity_form": "^1.0@rc", "drupal/paragraphs": "^1.0", + "drupal/search_api": "^1.0", "drupal/token": "^1.0" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.10", - "datestamp": "1702325310", + "version": "8.x-2.11", + "datestamp": "1723378138", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4662,7 +4663,7 @@ "homepage": "https://www.drupal.org/user/471638" }, { - "name": "Primsi", + "name": "primsi", "homepage": "https://www.drupal.org/user/282629" }, { @@ -4684,26 +4685,26 @@ }, { "name": "drupal/entity_class_formatter", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_class_formatter.git", - "reference": "2.0.0" + "reference": "2.0.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_class_formatter-2.0.0.zip", - "reference": "2.0.0", - "shasum": "5276500ebe5c9d7a872f820efa9ccd0a0111cd21" + "url": "https://ftp.drupal.org/files/projects/entity_class_formatter-2.0.1.zip", + "reference": "2.0.1", + "shasum": "93bb170db238af3da167f74c54d0ce619c62641c" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0", - "datestamp": "1666232163", + "version": "2.0.1", + "datestamp": "1727689886", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4892,26 +4893,26 @@ }, { "name": "drupal/entity_reference_display", - "version": "2.0.0", + "version": "2.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_reference_display.git", - "reference": "2.0.0" + "reference": "2.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_reference_display-2.0.0.zip", - "reference": "2.0.0", - "shasum": "bd2b540cbd3fa3f4c2019625228a1695fa17f8ce" + "url": "https://ftp.drupal.org/files/projects/entity_reference_display-2.0.2.zip", + "reference": "2.0.2", + "shasum": "5f5180dd5343a7ad747c9c4ba9002d1435a576ad" }, "require": { - "drupal/core": "^8 || ^9 || ^10" + "drupal/core": "^10.2 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0", - "datestamp": "1666231181", + "version": "2.0.2", + "datestamp": "1728359889", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -4952,29 +4953,29 @@ }, { "name": "drupal/entity_reference_revisions", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/entity_reference_revisions.git", - "reference": "8.x-1.11" + "reference": "8.x-1.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "de21cbb0d8a0344dc3496addcad4ed536747cec5" + "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "2a2ff8617c7ce01b56df1caaf0a563da04948e26" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^9 || ^10 || ^11" }, "require-dev": { - "drupal/diff": "1.x-dev" + "drupal/diff": "^1 || ^2" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1705140721", + "version": "8.x-1.12", + "datestamp": "1722804497", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5141,28 +5142,28 @@ }, { "name": "drupal/facets", - "version": "2.0.7", + "version": "2.0.9", "source": { "type": "git", "url": "https://git.drupalcode.org/project/facets.git", - "reference": "2.0.7" + "reference": "2.0.9" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/facets-2.0.7.zip", - "reference": "2.0.7", - "shasum": "a58ad0c4c3fc2750bf095232a54218ae906852e3" + "url": "https://ftp.drupal.org/files/projects/facets-2.0.9.zip", + "reference": "2.0.9", + "shasum": "54512df3448c2464ef2bee7eefa825115562c9d5" }, "require": { - "drupal/core": "^9.3 || ^10.0" + "drupal/core": "^10 || ^11" }, "conflict": { - "drupal/search_api": "<1.14" + "drupal/search_api": "<1.30" }, "require-dev": { - "drupal/jquery_ui_slider": "~2.0", - "drupal/jquery_ui_touch_punch": "~1.1", - "drupal/search_api": "^1.28||1.x-dev" + "drupal/jquery_ui_slider": "^2.1", + "drupal/jquery_ui_touch_punch": "^1.1", + "drupal/search_api": "1.x-dev" }, "suggest": { "drupal/jquery_ui_slider": "Required for the 'Facets Range Widget' module to work", @@ -5171,8 +5172,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.7", - "datestamp": "1709900263", + "version": "2.0.9", + "datestamp": "1728492418", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5197,44 +5198,47 @@ "homepage": "https://www.drupal.org/user/124705" }, { - "name": "Nick_vh", + "name": "nick_vh", "homepage": "https://www.drupal.org/user/122682" }, { - "name": "StryKaizer", + "name": "strykaizer", "homepage": "https://www.drupal.org/user/462700" } ], "description": "The Facet module allows site builders to easily create and manage faceted search interfaces.", "homepage": "https://www.drupal.org/project/facets", "support": { - "source": "git://git.drupal.org/project/facets.git", + "source": "https://git.drupalcode.org/project/facets", "issues": "https://www.drupal.org/project/issues/facets", "irc": "irc://irc.freenode.org/drupal-search-api" } }, { "name": "drupal/field_group", - "version": "3.4.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/field_group.git", - "reference": "8.x-3.4" + "reference": "8.x-3.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/field_group-8.x-3.4.zip", - "reference": "8.x-3.4", - "shasum": "80b937e1a11f8b29c69d853fc4bf798c057c6f94" + "url": "https://ftp.drupal.org/files/projects/field_group-8.x-3.6.zip", + "reference": "8.x-3.6", + "shasum": "427c0a65dc1936e69e60c120776056cfe5b43e86" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.2 || ^10 || ^11" + }, + "require-dev": { + "drupal/jquery_ui_accordion": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.4", - "datestamp": "1667241979", + "version": "8.x-3.6", + "datestamp": "1722672510", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5288,26 +5292,26 @@ }, { "name": "drupal/file_to_media", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/file_to_media.git", - "reference": "1.0.2" + "reference": "1.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/file_to_media-1.0.2.zip", - "reference": "1.0.2", - "shasum": "f095507f1343e58136ce5fbe0b60b41905158899" + "url": "https://ftp.drupal.org/files/projects/file_to_media-1.0.3.zip", + "reference": "1.0.3", + "shasum": "efe42174c66a6c58e3894a7d9f5d40c06e2e0794" }, "require": { - "drupal/core": "^8.8 || ~9.0 || ^10" + "drupal/core": "^8.8 || ~9.0 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.2", - "datestamp": "1704328714", + "version": "1.0.3", + "datestamp": "1723677677", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5582,29 +5586,29 @@ }, { "name": "drupal/honeypot", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/honeypot.git", - "reference": "2.1.3" + "reference": "2.1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/honeypot-2.1.3.zip", - "reference": "2.1.3", - "shasum": "101105029a10a574ef6017824182500ab9905856" + "url": "https://ftp.drupal.org/files/projects/honeypot-2.1.4.zip", + "reference": "2.1.4", + "shasum": "adf76c3520c0e458177dbe6d638aa2d6ae40a95b" }, "require": { "drupal/core": "^9.2 || ^10" }, "require-dev": { - "drupal/rules": "^3.0" + "drupal/rules": "^3.x-dev" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.3", - "datestamp": "1695604754", + "version": "2.1.4", + "datestamp": "1723489062", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -5622,7 +5626,7 @@ "email": "geerlingguy@mac.com" }, { - "name": "Manuel Garcia", + "name": "manuel garcia", "homepage": "https://www.drupal.org/user/213194" }, { @@ -6288,26 +6292,26 @@ }, { "name": "drupal/login_security", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/login_security.git", - "reference": "2.0.1" + "reference": "2.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/login_security-2.0.1.zip", - "reference": "2.0.1", - "shasum": "47527303abd8126d599629e1548f3bc3fb6807af" + "url": "https://ftp.drupal.org/files/projects/login_security-2.0.2.zip", + "reference": "2.0.2", + "shasum": "801c7588cac81fbadfd4ace0d6c2fd4e3032293c" }, "require": { - "drupal/core": "^8.9 || ^9 || ^10" + "drupal/core": "^8.9 || ^9 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.1", - "datestamp": "1672756360", + "version": "2.0.2", + "datestamp": "1724058576", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6361,26 +6365,26 @@ }, { "name": "drupal/mailsystem", - "version": "4.4.0", + "version": "4.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/mailsystem.git", - "reference": "8.x-4.4" + "reference": "8.x-4.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/mailsystem-8.x-4.4.zip", - "reference": "8.x-4.4", - "shasum": "49b2e9efd090cdb4a282c7638b1c76d6723c47b6" + "url": "https://ftp.drupal.org/files/projects/mailsystem-8.x-4.5.zip", + "reference": "8.x-4.5", + "shasum": "e52a814a87b343ab69f8d8ef462a9873c1d01158" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^9 || ^10.1 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-4.4", - "datestamp": "1657576306", + "version": "8.x-4.5", + "datestamp": "1723379369", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6510,26 +6514,26 @@ }, { "name": "drupal/media_entity_file_replace", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/media_entity_file_replace.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/media_entity_file_replace-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "e5e1aa2519c3e3f65e8a8291c324bc527f649147" + "url": "https://ftp.drupal.org/files/projects/media_entity_file_replace-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "cfc0d500aba8b6ade547c9a17173f9a89fde02d0" }, "require": { - "drupal/core": "^9 || ^10" + "drupal/core": "^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1701092779", + "version": "8.x-1.3", + "datestamp": "1724336085", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6669,26 +6673,26 @@ }, { "name": "drupal/menu_block", - "version": "1.11.0", + "version": "1.13.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_block.git", - "reference": "8.x-1.11" + "reference": "8.x-1.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_block-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "7b2dec26a81177094860b1f884cca5c40b60fa85" + "url": "https://ftp.drupal.org/files/projects/menu_block-8.x-1.13.zip", + "reference": "8.x-1.13", + "shasum": "693a932cba9bd5767bdeee506de446228bc4cc8c" }, "require": { - "drupal/core": "^9.1 || ^10" + "drupal/core": "^10.1 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1715036334", + "version": "8.x-1.13", + "datestamp": "1722579322", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6733,26 +6737,26 @@ }, { "name": "drupal/menu_trail_by_path", - "version": "2.0.1", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/menu_trail_by_path.git", - "reference": "2.0.1" + "reference": "2.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_trail_by_path-2.0.1.zip", - "reference": "2.0.1", - "shasum": "3c2c1b0ee669c26e6ccba8a345605b7c932be2bf" + "url": "https://ftp.drupal.org/files/projects/menu_trail_by_path-2.1.0.zip", + "reference": "2.1.0", + "shasum": "286f3066d3ce0a941eb73ad699c63bccd7108984" }, "require": { - "drupal/core": "^8.8 || ^9.0 || ^10" + "drupal/core": "^9 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.1", - "datestamp": "1701298206", + "version": "2.1.0", + "datestamp": "1724357864", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -6793,42 +6797,45 @@ }, { "name": "drupal/metatag", - "version": "2.0.0", + "version": "2.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/metatag.git", - "reference": "2.0.0" + "reference": "2.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/metatag-2.0.0.zip", - "reference": "2.0.0", - "shasum": "2966c854d982b7069b1c0111519427990ebbad40" + "url": "https://ftp.drupal.org/files/projects/metatag-2.0.2.zip", + "reference": "2.0.2", + "shasum": "748013c50a0ed5e10359413bb3481392a0bf0d3f" }, "require": { - "drupal/core": "^9.4 || ^10", + "drupal/core": "^9.4 || ^10 || ^11", "drupal/token": "^1.0", "php": ">=8.0" }, "require-dev": { - "drupal/devel": "^4.0 || ^5.0", - "drupal/hal": "^9 || ^1 || ^2", + "drupal/hal": "^1 || ^2 || ^9", "drupal/metatag_dc": "*", "drupal/metatag_open_graph": "*", "drupal/page_manager": "^4.0", "drupal/redirect": "^1.0", - "drupal/webprofiler": "^9 || ^10", + "ergebnis/composer-normalize": "*", "mpyw/phpunit-patch-serializable-comparison": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.0", - "datestamp": "1692368265", + "version": "2.0.2", + "datestamp": "1722869772", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" } + }, + "composer-normalize": { + "indent-size": 2, + "indent-style": "space" } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -7095,17 +7102,17 @@ }, { "name": "drupal/minisite", - "version": "2.2.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/minisite.git", - "reference": "2.2.0" + "reference": "2.3.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/minisite-2.2.0.zip", - "reference": "2.2.0", - "shasum": "19e281c1397ecb3d16698d90ed72ec6d5bd662a8" + "url": "https://ftp.drupal.org/files/projects/minisite-2.3.0.zip", + "reference": "2.3.0", + "shasum": "5981835888b5cffe068069cfdc40188afff14456" }, "require": { "drupal/core": "^10", @@ -7117,8 +7124,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "2.2.0", - "datestamp": "1720142214", + "version": "2.3.0", + "datestamp": "1729474349", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7132,19 +7139,23 @@ "authors": [ { "name": "Joseph Zhao", - "homepage": "https://www.drupal.org/user/3800156", + "homepage": "https://www.drupal.org/user/3832961", "email": "joseph.zhao@xing.net.au" }, { "name": "Jason Guo", - "homepage": "https://www.drupal.org/user/1987218", + "homepage": "https://www.drupal.org/user/3800156", "email": "jason.guo@xing.net.au" }, { "name": "Alex Skrypnyk", - "homepage": "https://www.drupal.org/user/2906813", + "homepage": "https://www.drupal.org/user/1987218", "email": "alex@integratedexperts.com" }, + { + "name": "ruwanl", + "homepage": "https://www.drupal.org/user/2906813" + }, { "name": "suhyeon", "homepage": "https://www.drupal.org/user/3567157" @@ -7401,20 +7412,20 @@ }, { "name": "drupal/paragraphs", - "version": "1.17.0", + "version": "1.18.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/paragraphs.git", - "reference": "8.x-1.17" + "reference": "8.x-1.18" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.17.zip", - "reference": "8.x-1.17", - "shasum": "81c05f6a1eb59ab957c9ac97b2e79d6c9837bd72" + "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.18.zip", + "reference": "8.x-1.18", + "shasum": "594e2937ea5c95fc88b60420590c4d83f5cd71ee" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^10.2 || ^11", "drupal/entity_reference_revisions": "~1.3" }, "require-dev": { @@ -7422,6 +7433,7 @@ "drupal/diff": "1.x-dev", "drupal/entity_browser": "2.x-dev", "drupal/entity_usage": "2.x-dev", + "drupal/feeds": "^3", "drupal/field_group": "3.x-dev", "drupal/inline_entity_form": "1.x-dev", "drupal/paragraphs-paragraphs_library": "*", @@ -7435,8 +7447,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.17", - "datestamp": "1709804220", + "version": "8.x-1.18", + "datestamp": "1723029144", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7449,7 +7461,7 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { @@ -7469,7 +7481,7 @@ "homepage": "https://www.drupal.org/user/227761" }, { - "name": "Primsi", + "name": "primsi", "homepage": "https://www.drupal.org/user/282629" } ], @@ -7481,26 +7493,26 @@ }, { "name": "drupal/password_policy", - "version": "4.0.1", + "version": "4.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/password_policy.git", - "reference": "4.0.1" + "reference": "4.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/password_policy-4.0.1.zip", - "reference": "4.0.1", - "shasum": "a132988f77d02c28d5c0f8f6c84a2d37eaa36c1f" + "url": "https://ftp.drupal.org/files/projects/password_policy-4.0.3.zip", + "reference": "4.0.3", + "shasum": "f583ede0ebd749459538d02dd527028d57a4e1ac" }, "require": { - "drupal/core": "^9.1 || ^10" + "drupal/core": "^9.1 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.1", - "datestamp": "1712532453", + "version": "4.0.3", + "datestamp": "1723552706", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7554,31 +7566,34 @@ }, { "name": "drupal/pathauto", - "version": "1.12.0", + "version": "1.13.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/pathauto.git", - "reference": "8.x-1.12" + "reference": "8.x-1.13" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.12.zip", - "reference": "8.x-1.12", - "shasum": "b7b6432e315e38e59a7c6cc117134326c580de4c" + "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.13.zip", + "reference": "8.x-1.13", + "shasum": "e64b5a82cf1b8ab48bce400b21ae6fc99c8078fd" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^9.4 || ^10 || ^11", "drupal/ctools": "*", "drupal/token": "*" }, + "require-dev": { + "drupal/forum": "*" + }, "suggest": { "drupal/redirect": "When installed Pathauto will provide a new \"Update Action\" in case your URLs change. This is the recommended update action and is considered the best practice for SEO and usability." }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.12", - "datestamp": "1712319355", + "version": "8.x-1.13", + "datestamp": "1722507672", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7698,7 +7713,7 @@ ], "authors": [ { - "name": "Heine", + "name": "heine", "homepage": "https://www.drupal.org/user/17943" }, { @@ -7718,17 +7733,17 @@ }, { "name": "drupal/recaptcha", - "version": "3.3.0", + "version": "3.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/recaptcha.git", - "reference": "8.x-3.3" + "reference": "8.x-3.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/recaptcha-8.x-3.3.zip", - "reference": "8.x-3.3", - "shasum": "376331ed5a0761d5414d294d6778bce4c308d6d5" + "url": "https://ftp.drupal.org/files/projects/recaptcha-8.x-3.4.zip", + "reference": "8.x-3.4", + "shasum": "95fa7ac5dd064ea6a1c14fc4881778bf68200598" }, "require": { "drupal/captcha": "^1.15 || ^2.0", @@ -7738,8 +7753,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-3.3", - "datestamp": "1720755549", + "version": "8.x-3.4", + "datestamp": "1723563033", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7805,28 +7820,28 @@ }, { "name": "drupal/recaptcha_v3", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/recaptcha_v3.git", - "reference": "2.0.2" + "reference": "2.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/recaptcha_v3-2.0.2.zip", - "reference": "2.0.2", - "shasum": "239e04bdb74179997e422c13cd76cfaac68bdf00" + "url": "https://ftp.drupal.org/files/projects/recaptcha_v3-2.0.3.zip", + "reference": "2.0.3", + "shasum": "51bdbfd4602550fb4822ba8725e8899e23d4568a" }, "require": { "drupal/captcha": "^2.0", - "drupal/core": "^9.5 || ^10", + "drupal/core": "^10 || ^11", "google/recaptcha": "^1.3" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.2", - "datestamp": "1692590086", + "version": "2.0.3", + "datestamp": "1723447296", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7839,7 +7854,7 @@ ], "authors": [ { - "name": "B-Prod", + "name": "b-prod", "homepage": "https://www.drupal.org/user/407852" }, { @@ -7859,26 +7874,26 @@ }, { "name": "drupal/redirect", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/redirect.git", - "reference": "8.x-1.9" + "reference": "8.x-1.10" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.9.zip", - "reference": "8.x-1.9", - "shasum": "2987de20f509e9f7cec8a0f81d3a6774f9b0ba3e" + "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.10.zip", + "reference": "8.x-1.10", + "shasum": "9d72d7e0717dbdea3ab3306c5d6840da5bd3024c" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.2 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.9", - "datestamp": "1693393506", + "version": "8.x-1.10", + "datestamp": "1723277641", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7915,26 +7930,26 @@ }, { "name": "drupal/rest_menu_items", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/rest_menu_items.git", - "reference": "3.0.3" + "reference": "3.0.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/rest_menu_items-3.0.3.zip", - "reference": "3.0.3", - "shasum": "c1b78212bcae000d34a4a1cbd881904b6d597d47" + "url": "https://ftp.drupal.org/files/projects/rest_menu_items-3.0.4.zip", + "reference": "3.0.4", + "shasum": "4d2688dc0d547d7cd6cff00d2db19bd1cbb67585" }, "require": { - "drupal/core": "^8.8.4 || ^9 || ^10" + "drupal/core": "^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "3.0.3", - "datestamp": "1668502571", + "version": "3.0.4", + "datestamp": "1728391637", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7974,26 +7989,26 @@ }, { "name": "drupal/robotstxt", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/robotstxt.git", - "reference": "8.x-1.5" + "reference": "8.x-1.6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/robotstxt-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "08c2b8dcd7b7f7e3bf0f7b7b88f128603d3b11b1" + "url": "https://ftp.drupal.org/files/projects/robotstxt-8.x-1.6.zip", + "reference": "8.x-1.6", + "shasum": "157192b2c6b2cc9779336cb3a5e752ffa2409c6b" }, "require": { - "drupal/core": "^9.3 || ^10" + "drupal/core": "^9.3 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.5", - "datestamp": "1671555186", + "version": "8.x-1.6", + "datestamp": "1723570930", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8039,26 +8054,29 @@ }, { "name": "drupal/role_delegation", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/role_delegation.git", - "reference": "8.x-1.2" + "reference": "8.x-1.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/role_delegation-8.x-1.2.zip", - "reference": "8.x-1.2", - "shasum": "08095bada0f492e70d32fcf357a8c01825ca81fc" + "url": "https://ftp.drupal.org/files/projects/role_delegation-8.x-1.3.zip", + "reference": "8.x-1.3", + "shasum": "e03d9c82d509a2630750e50a3452bd70ca1c55a6" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^10.3 || ^11" + }, + "require-dev": { + "drupal/action": "^0.2" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.2", - "datestamp": "1644487627", + "version": "8.x-1.3", + "datestamp": "1726236826", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8384,26 +8402,26 @@ }, { "name": "drupal/seckit", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/seckit.git", - "reference": "2.0.1" + "reference": "2.0.3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/seckit-2.0.1.zip", - "reference": "2.0.1", - "shasum": "2eee3b9719bdd5951c2b78f419c86f4765010439" + "url": "https://ftp.drupal.org/files/projects/seckit-2.0.3.zip", + "reference": "2.0.3", + "shasum": "34d38f2daaf99781ef6b7e7fbe2eeabc73a7ca16" }, "require": { - "drupal/core": "^9.3 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.0.1", - "datestamp": "1671195208", + "version": "2.0.3", + "datestamp": "1726075930", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8412,7 +8430,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -8439,7 +8457,7 @@ "security" ], "support": { - "source": "http://cgit.drupalcode.org/seckit", + "source": "https://git.drupalcode.org/project/seckit", "issues": "http://drupal.org/project/issues/seckit" } }, @@ -8648,27 +8666,27 @@ }, { "name": "drupal/simple_sitemap", - "version": "4.1.9", + "version": "4.2.1", "source": { "type": "git", "url": "https://git.drupalcode.org/project/simple_sitemap.git", - "reference": "4.1.9" + "reference": "4.2.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simple_sitemap-4.1.9.zip", - "reference": "4.1.9", - "shasum": "d86d90408b334cd7470ea631e3be5acca2103377" + "url": "https://ftp.drupal.org/files/projects/simple_sitemap-4.2.1.zip", + "reference": "4.2.1", + "shasum": "d96b481571ca2fecdb305e87d2557f9338116864" }, "require": { - "drupal/core": "^9.3 || ^10", + "drupal/core": "^10.2 || ^11", "ext-xmlwriter": "*" }, "type": "drupal-module", "extra": { "drupal": { - "version": "4.1.9", - "datestamp": "1712441608", + "version": "4.2.1", + "datestamp": "1723802052", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8829,7 +8847,7 @@ ], "authors": [ { - "name": "AdamPS", + "name": "adamps", "homepage": "https://www.drupal.org/user/2650563" } ], @@ -8892,17 +8910,17 @@ }, { "name": "drupal/tfa", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/tfa.git", - "reference": "8.x-1.7" + "reference": "8.x-1.8" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "a5e70d146da5bc44f97bfe6fbbda61cc8310fa87" + "url": "https://ftp.drupal.org/files/projects/tfa-8.x-1.8.zip", + "reference": "8.x-1.8", + "shasum": "fda56a048fc15d2d24601981785d3974cd29acd9" }, "require": { "chillerlan/php-qrcode": "^1.0.9 || ^2.0 || ^3.2 || ^4.0", @@ -8925,8 +8943,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.7", - "datestamp": "1713484490", + "version": "8.x-1.8", + "datestamp": "1727892298", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9020,11 +9038,11 @@ ], "authors": [ { - "name": "Berdir", + "name": "berdir", "homepage": "https://www.drupal.org/user/214652" }, { - "name": "Dave Reid", + "name": "dave reid", "homepage": "https://www.drupal.org/user/53892" }, { @@ -9113,26 +9131,26 @@ }, { "name": "drupal/username_enumeration_prevention", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/username_enumeration_prevention.git", - "reference": "8.x-1.3" + "reference": "8.x-1.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/username_enumeration_prevention-8.x-1.3.zip", - "reference": "8.x-1.3", - "shasum": "fa3f1f57a9d5ad77943c484ff7e1e40f5cd73df7" + "url": "https://ftp.drupal.org/files/projects/username_enumeration_prevention-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "29fab36a86de64694b3074d42ac948547459aea6" }, "require": { - "drupal/core": "^8 || ^9 || ^10" + "drupal/core": "^9.5 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.3", - "datestamp": "1670892402", + "version": "8.x-1.4", + "datestamp": "1725566327", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -9484,20 +9502,20 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.17.0", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" + "reference": "cb56001e54359df7ae76dc522d08845dc741621b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b", + "reference": "cb56001e54359df7ae76dc522d08845dc741621b", "shasum": "" }, "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "cerdic/css-tidy": "^1.7 || ^2.0", @@ -9539,9 +9557,9 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0" }, - "time": "2023-11-17T15:01:25+00:00" + "time": "2024-11-01T03:51:45+00:00" }, { "name": "google/recaptcha", @@ -9692,115 +9710,115 @@ }, { "name": "govcms/govcms", - "version": "3.16.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/govCMS/GovCMS.git", - "reference": "1b6733d5036c55ae26b74a15bab093a8b5480bd2" + "reference": "637f7f9c1eae94fae27235c4007526be0e1bf5ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/govCMS/GovCMS/zipball/1b6733d5036c55ae26b74a15bab093a8b5480bd2", - "reference": "1b6733d5036c55ae26b74a15bab093a8b5480bd2", + "url": "https://api.github.com/repos/govCMS/GovCMS/zipball/637f7f9c1eae94fae27235c4007526be0e1bf5ea", + "reference": "637f7f9c1eae94fae27235c4007526be0e1bf5ea", "shasum": "" }, "require": { "composer/installers": "^2.0", "cweagans/composer-patches": "^1.7", "drupal/address": "2.0.2", - "drupal/admin_toolbar": "3.4.2", + "drupal/admin_toolbar": "3.5.0", "drupal/bigmenu": "2.0.0-rc3", "drupal/block_inactive_users": "2.7.0", "drupal/captcha": "2.0.6", - "drupal/chosen": "4.0.1", - "drupal/components": "3.0.0-beta3", - "drupal/config_filter": "2.6.0", + "drupal/chosen": "4.0.3", + "drupal/components": "3.1.0", + "drupal/config_filter": "2.7.0", "drupal/config_ignore": "3.3.0", "drupal/config_perms": "2.1", "drupal/config_split": "2.0.1", - "drupal/config_update": "2.0.0-alpha3", + "drupal/config_update": "2.0.0-alpha4", "drupal/consultation-consultation": "1.0.4", "drupal/consumers": "1.19.0", - "drupal/contact_storage": "1.3.0", + "drupal/contact_storage": "1.4.0", "drupal/context": "5.0.0-rc1", - "drupal/core-composer-scaffold": "10.2.7", - "drupal/core-recommended": "10.2.7", + "drupal/core-composer-scaffold": "10.3.6", + "drupal/core-recommended": "10.3.6", "drupal/crop": "2.4.0", "drupal/ctools": "4.1.0", "drupal/devel": "5.1.2", - "drupal/diff": "1.7.0", - "drupal/dropzonejs": "2.10.0", - "drupal/ds": "3.22.0", + "drupal/diff": "1.8.0", + "drupal/dropzonejs": "2.11.0", + "drupal/ds": "3.24.0", "drupal/dynamic_entity_reference": "3.2.0", - "drupal/embed": "1.7.0", - "drupal/encrypt": "3.1.0", - "drupal/entity_browser": "2.10.0", - "drupal/entity_class_formatter": "2.0.0", + "drupal/embed": "1.9.0", + "drupal/encrypt": "3.2.0", + "drupal/entity_browser": "2.11.0", + "drupal/entity_class_formatter": "2.0.1", "drupal/entity_embed": "1.6.0", "drupal/entity_hierarchy": "3.3.11", - "drupal/entity_reference_display": "2.0.0", - "drupal/entity_reference_revisions": "1.11.0", + "drupal/entity_reference_display": "2.0.2", + "drupal/entity_reference_revisions": "1.12.0", "drupal/environment_indicator": "4.0.19", "drupal/events_log_track": "3.1.9", - "drupal/facets": "2.0.7", - "drupal/field_group": "3.4.0", - "drupal/file_to_media": "1.0.2", + "drupal/facets": "2.0.9", + "drupal/field_group": "3.6.0", + "drupal/file_to_media": "1.0.3", "drupal/focal_point": "2.1.0", "drupal/google_analytics": "4.0.2", "drupal/govcms_dlm": "2.0.0", - "drupal/honeypot": "2.1.3", + "drupal/honeypot": "2.1.4", "drupal/inline_entity_form": "3.0.0-rc20", "drupal/key": "1.19.0", "drupal/layout_builder_modal": "1.2.0", "drupal/layout_builder_restrictions": "2.20.0", "drupal/linked_field": "1.5.0", "drupal/linkit": "6.1.4", - "drupal/login_security": "2.0.1", - "drupal/mailsystem": "4.4.0", + "drupal/login_security": "2.0.2", + "drupal/mailsystem": "4.5.0", "drupal/media_bulk_upload": "3.0.2", - "drupal/media_entity_file_replace": "1.2.0", + "drupal/media_entity_file_replace": "1.3.0", "drupal/media_file_delete": "1.3.1", "drupal/media_vimeo_domain_privacy": "1.1", - "drupal/menu_block": "1.11.0", - "drupal/menu_trail_by_path": "2.0.1", - "drupal/metatag": "2.0.0", + "drupal/menu_block": "1.13.0", + "drupal/menu_trail_by_path": "2.1.0", + "drupal/metatag": "2.0.2", "drupal/migrate_file": "2.1.2", "drupal/migrate_plus": "6.0.4", "drupal/migrate_source_csv": "3.6.0", "drupal/migrate_tools": "6.0.4", - "drupal/minisite": "2.2.0", + "drupal/minisite": "2.3.0", "drupal/modifiers": "1.6.0", "drupal/module_permissions": "3.2.0", "drupal/panels": "4.8.0", - "drupal/paragraphs": "1.17.0", - "drupal/password_policy": "4.0.1", - "drupal/pathauto": "1.12.0", + "drupal/paragraphs": "1.18.0", + "drupal/password_policy": "4.0.3", + "drupal/pathauto": "1.13.0", "drupal/real_aes": "2.6.0", - "drupal/recaptcha": "3.3.0", - "drupal/recaptcha_v3": "2.0.2", - "drupal/redirect": "1.9.0", - "drupal/rest_menu_items": "3.0.3", - "drupal/robotstxt": "1.5.0", - "drupal/role_delegation": "1.2.0", + "drupal/recaptcha": "3.4.0", + "drupal/recaptcha_v3": "2.0.3", + "drupal/redirect": "1.10.0", + "drupal/rest_menu_items": "3.0.4", + "drupal/robotstxt": "1.6.0", + "drupal/role_delegation": "1.3.0", "drupal/scheduled_transitions": "2.5.0", "drupal/search_api": "1.35.0", "drupal/search_api_attachments": "9.0.3", "drupal/search_api_solr": "4.3.5", - "drupal/seckit": "2.0.1", + "drupal/seckit": "2.0.3", "drupal/securitytxt": "1.6.0", "drupal/shield": "1.8.0", "drupal/simple_oauth": "5.2.5", - "drupal/simple_sitemap": "4.1.9", + "drupal/simple_sitemap": "4.2.1", "drupal/symfony_mailer": "1.4.1", - "drupal/tfa": "1.7.0", + "drupal/tfa": "1.8.0", "drupal/token": "1.15.0", "drupal/twig_tweak": "3.3.0", - "drupal/username_enumeration_prevention": "1.3.0", + "drupal/username_enumeration_prevention": "1.4.0", "drupal/webform": "6.2.7", "govcms-assets/chosen": "2.2.1", "govcms-assets/dropzone": "5.7.2", "oomphinc/composer-installers-extender": "^2.0", - "php": "^8.1.0", + "php": "^8.3.0", "webflo/drupal-finder": "^1.2" }, "require-dev": { @@ -9843,9 +9861,6 @@ "enable-patching": true, "composer-exit-on-patch-failure": true, "patches": { - "drupal/login_security": { - "Correctly detect invalid username/password or blocked account login errors - https://www.drupal.org/project/login_security/issues/3292974": "https://www.drupal.org/files/issues/2023-02-14/login_security-3292974-21.patch" - }, "drupal/tfa": { "Create Email one-time-code Validation Plugin & related Setup Plugin - https://www.drupal.org/project/tfa/issues/2930541": "https://www.drupal.org/files/issues/2023-07-19/tfa-2930541-81.patch" } @@ -9865,7 +9880,7 @@ "source": "https://github.com/GovCMS/GovCMS/releases", "wiki": "https://github.com/GovCMS/GovCMS/wiki" }, - "time": "2024-08-26T01:19:01+00:00" + "time": "2024-11-03T22:28:47+00:00" }, { "name": "graham-campbell/result-type", @@ -10165,16 +10180,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -10228,7 +10243,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -10244,7 +10259,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -10461,30 +10476,30 @@ }, { "name": "laminas/laminas-stdlib", - "version": "3.19.0", + "version": "3.20.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "6a192dd0882b514e45506f533b833b623b78fff3" + "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/6a192dd0882b514e45506f533b833b623b78fff3", - "reference": "6a192dd0882b514e45506f533b833b623b78fff3", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/8974a1213be42c3e2f70b2c27b17f910291ab2f4", + "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "conflict": { "zendframework/zend-stdlib": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "^2.5", - "phpbench/phpbench": "^1.2.15", - "phpunit/phpunit": "^10.5.8", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.20.0" + "laminas/laminas-coding-standard": "^3.0", + "phpbench/phpbench": "^1.3.1", + "phpunit/phpunit": "^10.5.38", + "psalm/plugin-phpunit": "^0.19.0", + "vimeo/psalm": "^5.26.1" }, "type": "library", "autoload": { @@ -10516,38 +10531,38 @@ "type": "community_bridge" } ], - "time": "2024-01-19T12:39:49+00:00" + "time": "2024-10-29T13:46:07+00:00" }, { "name": "lcobucci/clock", - "version": "3.2.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "6f28b826ea01306b07980cb8320ab30b966cd715" + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/6f28b826ea01306b07980cb8320ab30b966cd715", - "reference": "6f28b826ea01306b07980cb8320ab30b966cd715", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/db3713a61addfffd615b79bf0bc22f0ccc61b86b", + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b", "shasum": "" }, "require": { - "php": "~8.2.0 || ~8.3.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.27", - "lcobucci/coding-standard": "^11.0.0", + "infection/infection": "^0.29", + "lcobucci/coding-standard": "^11.1.0", "phpstan/extension-installer": "^1.3.1", "phpstan/phpstan": "^1.10.25", "phpstan/phpstan-deprecation-rules": "^1.1.3", "phpstan/phpstan-phpunit": "^1.3.13", "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^10.2.3" + "phpunit/phpunit": "^11.3.6" }, "type": "library", "autoload": { @@ -10568,7 +10583,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.2.0" + "source": "https://github.com/lcobucci/clock/tree/3.3.1" }, "funding": [ { @@ -10580,7 +10595,7 @@ "type": "patreon" } ], - "time": "2023-11-17T17:00:27+00:00" + "time": "2024-09-24T20:45:14+00:00" }, { "name": "lcobucci/jwt", @@ -10658,16 +10673,16 @@ }, { "name": "league/container", - "version": "4.2.2", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/thephpleague/container.git", - "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88" + "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/ff346319ca1ff0e78277dc2311a42107cc1aab88", - "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88", + "url": "https://api.github.com/repos/thephpleague/container/zipball/72f9bebe7bd623007782a40f5ec305661ab706d8", + "reference": "72f9bebe7bd623007782a40f5ec305661ab706d8", "shasum": "" }, "require": { @@ -10728,7 +10743,7 @@ ], "support": { "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/4.2.2" + "source": "https://github.com/thephpleague/container/tree/4.2.3" }, "funding": [ { @@ -10736,20 +10751,20 @@ "type": "github" } ], - "time": "2024-03-13T13:12:53+00:00" + "time": "2024-10-23T12:06:58+00:00" }, { "name": "league/csv", - "version": "9.16.0", + "version": "9.18.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "998280c6c34bd67d8125fdc8b45bae28d761b440" + "reference": "b02d010e4055ae992247f6ffd1e7b103ef2a0790" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/998280c6c34bd67d8125fdc8b45bae28d761b440", - "reference": "998280c6c34bd67d8125fdc8b45bae28d761b440", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/b02d010e4055ae992247f6ffd1e7b103ef2a0790", + "reference": "b02d010e4055ae992247f6ffd1e7b103ef2a0790", "shasum": "" }, "require": { @@ -10757,17 +10772,16 @@ "php": "^8.1.2" }, "require-dev": { - "doctrine/collections": "^2.2.2", "ext-dom": "*", "ext-xdebug": "*", - "friendsofphp/php-cs-fixer": "^3.57.1", - "phpbench/phpbench": "^1.2.15", - "phpstan/phpstan": "^1.11.1", - "phpstan/phpstan-deprecation-rules": "^1.2.0", + "friendsofphp/php-cs-fixer": "^3.64.0", + "phpbench/phpbench": "^1.3.1", + "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan-deprecation-rules": "^1.2.1", "phpstan/phpstan-phpunit": "^1.4.0", - "phpstan/phpstan-strict-rules": "^1.6.0", - "phpunit/phpunit": "^10.5.16 || ^11.1.3", - "symfony/var-dumper": "^6.4.6 || ^7.0.7" + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^10.5.16 || ^11.4.1", + "symfony/var-dumper": "^6.4.8 || ^7.1.5" }, "suggest": { "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", @@ -10785,7 +10799,7 @@ "src/functions_include.php" ], "psr-4": { - "League\\Csv\\": "src" + "League\\Csv\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10824,7 +10838,7 @@ "type": "github" } ], - "time": "2024-05-24T11:04:54+00:00" + "time": "2024-10-18T08:14:48+00:00" }, { "name": "league/event", @@ -11144,16 +11158,16 @@ }, { "name": "maennchen/zipstream-php", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" + "reference": "6187e9cc4493da94b9b63eb2315821552015fca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", - "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/6187e9cc4493da94b9b63eb2315821552015fca9", + "reference": "6187e9cc4493da94b9b63eb2315821552015fca9", "shasum": "" }, "require": { @@ -11209,32 +11223,28 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.1" }, "funding": [ { "url": "https://github.com/maennchen", "type": "github" - }, - { - "url": "https://opencollective.com/zipstream", - "type": "open_collective" } ], - "time": "2023-06-21T14:59:35+00:00" + "time": "2024-10-10T12:33:01+00:00" }, { "name": "masterminds/html5", - "version": "2.8.1", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", "shasum": "" }, "require": { @@ -11242,7 +11252,7 @@ "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" }, "type": "library", "extra": { @@ -11286,22 +11296,22 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" }, - "time": "2023-05-10T11:58:31+00:00" + "time": "2024-03-31T07:05:07+00:00" }, { "name": "mck89/peast", - "version": "v1.15.4", + "version": "v1.16.3", "source": { "type": "git", "url": "https://github.com/mck89/peast.git", - "reference": "1df4dc28a6b5bb7ab117ab073c1712256e954e18" + "reference": "645ec21b650bc2aced18285c85f220d22afc1430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mck89/peast/zipball/1df4dc28a6b5bb7ab117ab073c1712256e954e18", - "reference": "1df4dc28a6b5bb7ab117ab073c1712256e954e18", + "url": "https://api.github.com/repos/mck89/peast/zipball/645ec21b650bc2aced18285c85f220d22afc1430", + "reference": "645ec21b650bc2aced18285c85f220d22afc1430", "shasum": "" }, "require": { @@ -11314,7 +11324,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15.4-dev" + "dev-master": "1.16.3-dev" } }, "autoload": { @@ -11335,9 +11345,9 @@ "description": "Peast is PHP library that generates AST for JavaScript code", "support": { "issues": "https://github.com/mck89/peast/issues", - "source": "https://github.com/mck89/peast/tree/v1.15.4" + "source": "https://github.com/mck89/peast/tree/v1.16.3" }, - "time": "2023-08-12T08:29:29+00:00" + "time": "2024-07-23T14:00:32+00:00" }, { "name": "mkalkbrenner/php-htmldiff-advanced", @@ -11382,16 +11392,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.2.0", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb" + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", - "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", "shasum": "" }, "require": { @@ -11434,9 +11444,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" }, - "time": "2024-09-15T16:40:33+00:00" + "time": "2024-10-08T18:51:32+00:00" }, { "name": "oomphinc/composer-installers-extender", @@ -11614,16 +11624,16 @@ }, { "name": "pear/archive_tar", - "version": "1.4.14", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/pear/Archive_Tar.git", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" + "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/b439c859564f5cbb0f64ad6002d0afe84a889602", + "reference": "b439c859564f5cbb0f64ad6002d0afe84a889602", "shasum": "" }, "require": { @@ -11654,7 +11664,7 @@ "./" ], "license": [ - "BSD-3-Clause" + "BSD-2-Clause" ], "authors": [ { @@ -11680,17 +11690,7 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", "source": "https://github.com/pear/Archive_Tar" }, - "funding": [ - { - "url": "https://github.com/mrook", - "type": "github" - }, - { - "url": "https://www.patreon.com/michielrook", - "type": "patreon" - } - ], - "time": "2021-07-20T13:53:39+00:00" + "time": "2024-03-16T16:21:40+00:00" }, { "name": "pear/console_getopt", @@ -11853,7 +11853,7 @@ }, { "name": "phootwork/collection", - "version": "v3.2.2", + "version": "v3.2.3", "source": { "type": "git", "url": "https://github.com/phootwork/collection.git", @@ -11902,22 +11902,22 @@ ], "support": { "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/collection/tree/v3.2.2" + "source": "https://github.com/phootwork/collection/tree/v3.2.3" }, "time": "2022-08-27T12:51:24+00:00" }, { "name": "phootwork/lang", - "version": "v3.2.2", + "version": "v3.2.3", "source": { "type": "git", "url": "https://github.com/phootwork/lang.git", - "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597" + "reference": "52ec8cce740ce1c424eef02f43b43d5ddfec7b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phootwork/lang/zipball/baaf154ae7d521ebeee5e89105f5b12b0f234597", - "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597", + "url": "https://api.github.com/repos/phootwork/lang/zipball/52ec8cce740ce1c424eef02f43b43d5ddfec7b5e", + "reference": "52ec8cce740ce1c424eef02f43b43d5ddfec7b5e", "shasum": "" }, "require": { @@ -11951,9 +11951,9 @@ ], "support": { "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/lang/tree/v3.2.2" + "source": "https://github.com/phootwork/lang/tree/v3.2.3" }, - "time": "2023-05-26T05:37:59+00:00" + "time": "2024-10-03T13:43:19+00:00" }, { "name": "phpoption/phpoption", @@ -12389,20 +12389,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -12426,7 +12426,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -12438,9 +12438,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -12849,16 +12849,16 @@ }, { "name": "symfony/console", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" + "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b", + "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b", "shasum": "" }, "require": { @@ -12923,7 +12923,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.11" + "source": "https://github.com/symfony/console/tree/v6.4.14" }, "funding": [ { @@ -12939,20 +12939,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:29+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/css-selector", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08" + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/4b61b02fe15db48e3687ce1c45ea385d1780fe08", - "reference": "4b61b02fe15db48e3687ce1c45ea385d1780fe08", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/cb23e97813c5837a041b73a6d63a9ddff0778f5e", + "reference": "cb23e97813c5837a041b73a6d63a9ddff0778f5e", "shasum": "" }, "require": { @@ -12988,7 +12988,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.4.8" + "source": "https://github.com/symfony/css-selector/tree/v6.4.13" }, "funding": [ { @@ -13004,20 +13004,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" + "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", + "reference": "728ae8f4e190133ce99d6d5f0bc1e8c8bd7c7a96", "shasum": "" }, "require": { @@ -13069,7 +13069,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.13" }, "funding": [ { @@ -13085,20 +13085,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { @@ -13107,7 +13107,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -13136,7 +13136,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -13152,20 +13152,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.10", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", "shasum": "" }, "require": { @@ -13211,7 +13211,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + "source": "https://github.com/symfony/error-handler/tree/v6.4.14" }, "funding": [ { @@ -13227,20 +13227,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", "shasum": "" }, "require": { @@ -13291,7 +13291,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" }, "funding": [ { @@ -13307,20 +13307,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "4e64b49bf370ade88e567de29465762e316e4224" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", - "reference": "4e64b49bf370ade88e567de29465762e316e4224", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { @@ -13330,7 +13330,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -13367,7 +13367,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -13383,20 +13383,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", "shasum": "" }, "require": { @@ -13433,7 +13433,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + "source": "https://github.com/symfony/filesystem/tree/v6.4.13" }, "funding": [ { @@ -13449,20 +13449,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/finder", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", + "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", "shasum": "" }, "require": { @@ -13497,7 +13497,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.11" + "source": "https://github.com/symfony/finder/tree/v6.4.13" }, "funding": [ { @@ -13513,20 +13513,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:27:37+00:00" + "time": "2024-10-01T08:30:56+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.10", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" + "reference": "ba020a321a95519303a3f09ec2824d34d601c388" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", + "reference": "ba020a321a95519303a3f09ec2824d34d601c388", "shasum": "" }, "require": { @@ -13574,7 +13574,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.14" }, "funding": [ { @@ -13590,20 +13590,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:36:27+00:00" + "time": "2024-11-05T16:39:55+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" + "reference": "8278a947d0369754a47b758a9e17b72cab970951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8278a947d0369754a47b758a9e17b72cab970951", + "reference": "8278a947d0369754a47b758a9e17b72cab970951", "shasum": "" }, "require": { @@ -13688,7 +13688,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.14" }, "funding": [ { @@ -13704,20 +13704,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:57:20+00:00" + "time": "2024-11-06T09:45:21+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "url": "https://api.github.com/repos/symfony/mailer/zipball/c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", + "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", "shasum": "" }, "require": { @@ -13768,7 +13768,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.9" + "source": "https://github.com/symfony/mailer/tree/v6.4.13" }, "funding": [ { @@ -13784,20 +13784,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:05+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/mime", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553" + "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553", - "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553", + "url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855", + "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855", "shasum": "" }, "require": { @@ -13853,7 +13853,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.11" + "source": "https://github.com/symfony/mime/tree/v6.4.13" }, "funding": [ { @@ -13869,20 +13869,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T12:15:02+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -13896,9 +13896,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -13935,7 +13932,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -13951,20 +13948,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1" + "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/6de50471469b8c9afc38164452ab2b6170ee71c1", - "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", + "reference": "cd4226d140ecd3d0f13d32ed0a4a095ffe871d2f", "shasum": "" }, "require": { @@ -13978,9 +13975,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14018,7 +14012,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.29.0" }, "funding": [ { @@ -14034,20 +14028,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -14058,9 +14052,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14099,7 +14090,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -14115,20 +14106,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -14141,9 +14132,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14186,7 +14174,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -14202,20 +14190,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:30:37+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -14226,9 +14214,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14270,7 +14255,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -14286,20 +14271,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -14313,9 +14298,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14353,7 +14335,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -14369,7 +14351,7 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php56", @@ -14662,16 +14644,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { @@ -14680,9 +14662,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -14722,7 +14701,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -14738,20 +14717,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T06:22:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.4.8", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + "reference": "25214adbb0996d18112548de20c281be9f27279f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", + "reference": "25214adbb0996d18112548de20c281be9f27279f", "shasum": "" }, "require": { @@ -14783,7 +14762,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.8" + "source": "https://github.com/symfony/process/tree/v6.4.14" }, "funding": [ { @@ -14799,20 +14778,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-11-06T09:25:01+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "74835ba54eca99a38f374f7a6d932fa510124773" + "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/74835ba54eca99a38f374f7a6d932fa510124773", - "reference": "74835ba54eca99a38f374f7a6d932fa510124773", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c9cf83326a1074f83a738fc5320945abf7fb7fec", + "reference": "c9cf83326a1074f83a738fc5320945abf7fb7fec", "shasum": "" }, "require": { @@ -14866,7 +14845,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.11" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.13" }, "funding": [ { @@ -14882,20 +14861,20 @@ "type": "tidelift" } ], - "time": "2024-08-14T13:55:58+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/routing", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" + "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278", + "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278", "shasum": "" }, "require": { @@ -14949,7 +14928,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.11" + "source": "https://github.com/symfony/routing/tree/v6.4.13" }, "funding": [ { @@ -14965,20 +14944,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-10-01T08:30:56+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0" + "reference": "8be421505938b11a0ca4f656e4322232236386f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/a75d03d7720417f8a654e73e8f02acdea8779cd0", - "reference": "a75d03d7720417f8a654e73e8f02acdea8779cd0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/8be421505938b11a0ca4f656e4322232236386f0", + "reference": "8be421505938b11a0ca4f656e4322232236386f0", "shasum": "" }, "require": { @@ -15047,7 +15026,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.4.11" + "source": "https://github.com/symfony/serializer/tree/v6.4.13" }, "funding": [ { @@ -15063,25 +15042,26 @@ "type": "tidelift" } ], - "time": "2024-08-17T07:51:47+00:00" + "time": "2024-10-03T09:58:04+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -15089,7 +15069,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -15129,7 +15109,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -15145,20 +15125,20 @@ "type": "tidelift" } ], - "time": "2023-12-19T21:51:00+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" + "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", + "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", "shasum": "" }, "require": { @@ -15215,7 +15195,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.11" + "source": "https://github.com/symfony/string/tree/v6.4.13" }, "funding": [ { @@ -15231,20 +15211,20 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b" + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", - "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", "shasum": "" }, "require": { @@ -15253,7 +15233,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -15293,7 +15273,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" }, "funding": [ { @@ -15309,20 +15289,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/validator", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8" + "reference": "dc259b85e59a6569e205966d447dec0a7d95facf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/4ff41cf10af1de99ad92895411b55c9f309bc2d8", - "reference": "4ff41cf10af1de99ad92895411b55c9f309bc2d8", + "url": "https://api.github.com/repos/symfony/validator/zipball/dc259b85e59a6569e205966d447dec0a7d95facf", + "reference": "dc259b85e59a6569e205966d447dec0a7d95facf", "shasum": "" }, "require": { @@ -15390,7 +15370,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.11" + "source": "https://github.com/symfony/validator/tree/v6.4.14" }, "funding": [ { @@ -15406,20 +15386,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T15:57:55+00:00" + "time": "2024-11-04T11:33:53+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "93c09246038178717a9c14b809ea8151ffcf7091" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/93c09246038178717a9c14b809ea8151ffcf7091", + "reference": "93c09246038178717a9c14b809ea8151ffcf7091", "shasum": "" }, "require": { @@ -15475,7 +15455,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.14" }, "funding": [ { @@ -15491,20 +15471,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:03:21+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" + "reference": "0f605f72a363f8743001038a176eeb2a11223b51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51", + "reference": "0f605f72a363f8743001038a176eeb2a11223b51", "shasum": "" }, "require": { @@ -15552,7 +15532,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.13" }, "funding": [ { @@ -15568,20 +15548,20 @@ "type": "tidelift" } ], - "time": "2024-06-24T15:53:56+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "be37e7f13195e05ab84ca5269365591edd240335" + "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", - "reference": "be37e7f13195e05ab84ca5269365591edd240335", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", + "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", "shasum": "" }, "require": { @@ -15624,7 +15604,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.11" + "source": "https://github.com/symfony/yaml/tree/v6.4.13" }, "funding": [ { @@ -15640,7 +15620,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -15697,30 +15677,37 @@ }, { "name": "twig/twig", - "version": "v3.8.0", + "version": "v3.14.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", - "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, "type": "library", "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], "psr-4": { "Twig\\": "src/" } @@ -15753,7 +15740,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + "source": "https://github.com/twigphp/Twig/tree/v3.14.2" }, "funding": [ { @@ -15765,7 +15752,7 @@ "type": "tidelift" } ], - "time": "2023-11-21T18:54:41+00:00" + "time": "2024-11-07T12:36:22+00:00" }, { "name": "vlucas/phpdotenv", @@ -16066,20 +16053,20 @@ "packages-dev": [ { "name": "behat/behat", - "version": "v3.14.0", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "2a3832d9cb853a794af3a576f9e524ae460f3340" + "reference": "132e32fdad69340f503b103a5ccaf5dd72ce7d83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/2a3832d9cb853a794af3a576f9e524ae460f3340", - "reference": "2a3832d9cb853a794af3a576f9e524ae460f3340", + "url": "https://api.github.com/repos/Behat/Behat/zipball/132e32fdad69340f503b103a5ccaf5dd72ce7d83", + "reference": "132e32fdad69340f503b103a5ccaf5dd72ce7d83", "shasum": "" }, "require": { - "behat/gherkin": "^4.9.0", + "behat/gherkin": "^4.10.0", "behat/transliterator": "^1.2", "ext-mbstring": "*", "php": "^7.2 || ^8.0", @@ -16093,7 +16080,6 @@ }, "require-dev": { "herrera-io/box": "~1.6.1", - "phpspec/prophecy": "^1.15", "phpunit/phpunit": "^8.5 || ^9.0", "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0", "vimeo/psalm": "^4.8" @@ -16130,7 +16116,7 @@ } ], "description": "Scenario-oriented BDD framework for PHP", - "homepage": "http://behat.org/", + "homepage": "https://behat.org/", "keywords": [ "Agile", "BDD", @@ -16147,31 +16133,31 @@ ], "support": { "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.14.0" + "source": "https://github.com/Behat/Behat/tree/v3.15.0" }, - "time": "2023-12-09T13:55:02+00:00" + "time": "2024-10-30T07:54:51+00:00" }, { "name": "behat/gherkin", - "version": "v4.9.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", + "reference": "cbb83c4c435dd8d05a161f2a5ae322e61b2f4db6", "shasum": "" }, "require": { "php": "~7.2|~8.0" }, "require-dev": { - "cucumber/cucumber": "dev-gherkin-22.0.0", + "cucumber/cucumber": "dev-gherkin-24.1.0", "phpunit/phpunit": "~8|~9", - "symfony/yaml": "~3|~4|~5" + "symfony/yaml": "~3|~4|~5|~6|~7" }, "suggest": { "symfony/yaml": "If you want to parse features, represented in YAML files" @@ -16210,9 +16196,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.9.0" + "source": "https://github.com/Behat/Gherkin/tree/v4.10.0" }, - "time": "2021-10-12T13:05:09+00:00" + "time": "2024-10-19T14:46:06+00:00" }, { "name": "behat/mink", @@ -16460,6 +16446,66 @@ }, "time": "2022-03-30T09:27:43+00:00" }, + { + "name": "brick/math", + "version": "0.12.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.12.1" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-11-29T23:19:16+00:00" + }, { "name": "colinodell/psr-testlogger", "version": "v1.3.0", @@ -16541,16 +16587,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.1", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a" + "reference": "3b1fc3f0be055baa7c6258b1467849c3e8204eb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a", - "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/3b1fc3f0be055baa7c6258b1467849c3e8204eb2", + "reference": "3b1fc3f0be055baa7c6258b1467849c3e8204eb2", "shasum": "" }, "require": { @@ -16560,8 +16606,8 @@ }, "require-dev": { "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8 || ^9", "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", @@ -16597,7 +16643,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.5.1" + "source": "https://github.com/composer/ca-bundle/tree/1.5.3" }, "funding": [ { @@ -16613,20 +16659,20 @@ "type": "tidelift" } ], - "time": "2024-07-08T15:28:20+00:00" + "time": "2024-11-04T10:15:26+00:00" }, { "name": "composer/class-map-generator", - "version": "1.3.4", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/98bbf6780e56e0fd2404fe4b82eb665a0f93b783", + "reference": "98bbf6780e56e0fd2404fe4b82eb665a0f93b783", "shasum": "" }, "require": { @@ -16639,8 +16685,8 @@ "phpstan/phpstan-deprecation-rules": "^1", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8", + "symfony/filesystem": "^5.4 || ^6" }, "type": "library", "extra": { @@ -16670,7 +16716,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + "source": "https://github.com/composer/class-map-generator/tree/1.4.0" }, "funding": [ { @@ -16686,25 +16732,25 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:13:04+00:00" + "time": "2024-10-03T18:14:00+00:00" }, { "name": "composer/composer", - "version": "2.7.9", + "version": "2.8.2", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab" + "reference": "6e543d03187c882ea1c6ba43add2467754427803" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/e30ccdd665828ae66eb1be78f056e39e1d5f55ab", - "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab", + "url": "https://api.github.com/repos/composer/composer/zipball/6e543d03187c882ea1c6ba43add2467754427803", + "reference": "6e543d03187c882ea1c6ba43add2467754427803", "shasum": "" }, "require": { "composer/ca-bundle": "^1.5", - "composer/class-map-generator": "^1.3.3", + "composer/class-map-generator": "^1.4.0", "composer/metadata-minifier": "^1.0", "composer/pcre": "^2.2 || ^3.2", "composer/semver": "^3.3", @@ -16744,7 +16790,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.7-dev" + "dev-main": "2.8-dev" }, "phpstan": { "includes": [ @@ -16784,7 +16830,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.9" + "source": "https://github.com/composer/composer/tree/2.8.2" }, "funding": [ { @@ -16800,7 +16846,7 @@ "type": "tidelift" } ], - "time": "2024-09-04T12:43:28+00:00" + "time": "2024-10-29T15:12:11+00:00" }, { "name": "composer/metadata-minifier", @@ -17302,16 +17348,16 @@ }, { "name": "drevops/behat-screenshot", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/drevops/behat-screenshot.git", - "reference": "d19d34670cbf90883094c35eb0287c1e90f5933d" + "reference": "16bca425d79e34ab4ef09657568ef1e4829b3719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drevops/behat-screenshot/zipball/d19d34670cbf90883094c35eb0287c1e90f5933d", - "reference": "d19d34670cbf90883094c35eb0287c1e90f5933d", + "url": "https://api.github.com/repos/drevops/behat-screenshot/zipball/16bca425d79e34ab4ef09657568ef1e4829b3719", + "reference": "16bca425d79e34ab4ef09657568ef1e4829b3719", "shasum": "" }, "require": { @@ -17324,12 +17370,15 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8", "behat/mink-browserkit-driver": "^2.2", - "behat/mink-selenium2-driver": "^1.7", + "dantleech/gherkin-lint": "^0.2.3", "dealerdirect/phpcodesniffer-composer-installer": "^1", "drevops/behat-phpserver": "^1.2", "drupal/coder": "^8.3", "dvdoug/behat-code-coverage": "^5.3", + "ergebnis/composer-normalize": "^2.44", "escapestudios/symfony2-coding-standard": "^3", + "lullabot/mink-selenium2-driver": "^1.7", + "lullabot/php-webdriver": "^2.0.4", "mikey179/vfsstream": "^1.6", "opis/closure": "^3.6", "phpmd/phpmd": "^2.13", @@ -17359,15 +17408,19 @@ "description": "Behat extension and step definitions to create HTML and image screenshots on demand or when tests fail", "support": { "issues": "https://github.com/drevops/behat-screenshot/issues", - "source": "https://github.com/drevops/behat-screenshot/tree/1.5.0" + "source": "https://github.com/drevops/behat-screenshot/tree/1.6.0" }, "funding": [ { - "url": "https://www.patreon.com/alexskrypnyk", + "url": "https://github.com/drevops", + "type": "github" + }, + { + "url": "https://www.patreon.com/drevops", "type": "patreon" } ], - "time": "2024-04-19T04:12:41+00:00" + "time": "2024-11-04T12:14:10+00:00" }, { "name": "drevops/behat-steps", @@ -17442,16 +17495,16 @@ }, { "name": "drupal/coder", - "version": "8.3.24", + "version": "8.3.25", "source": { "type": "git", "url": "https://github.com/pfrenssen/coder.git", - "reference": "1a59890f972db5da091354f0191dec1037f7c582" + "reference": "c58e5a0c44c0010bbc8a91fc468f4667e177b976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pfrenssen/coder/zipball/1a59890f972db5da091354f0191dec1037f7c582", - "reference": "1a59890f972db5da091354f0191dec1037f7c582", + "url": "https://api.github.com/repos/pfrenssen/coder/zipball/c58e5a0c44c0010bbc8a91fc468f4667e177b976", + "reference": "c58e5a0c44c0010bbc8a91fc468f4667e177b976", "shasum": "" }, "require": { @@ -17489,11 +17542,11 @@ "issues": "https://www.drupal.org/project/issues/coder", "source": "https://www.drupal.org/project/coder" }, - "time": "2024-04-21T06:13:24+00:00" + "time": "2024-09-22T19:02:16+00:00" }, { "name": "drupal/core-dev", - "version": "10.2.8", + "version": "10.2.10", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", @@ -17543,47 +17596,46 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.2.8" + "source": "https://github.com/drupal/core-dev/tree/10.2.10" }, "time": "2024-02-14T18:07:20+00:00" }, { "name": "drupal/drupal-driver", - "version": "v2.2.2", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/jhedstrom/DrupalDriver.git", - "reference": "632712db66681b76651518bf5ab1e60fddc70a39" + "reference": "52835be563891d74656fbaaf045dacc43ac5f701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/632712db66681b76651518bf5ab1e60fddc70a39", - "reference": "632712db66681b76651518bf5ab1e60fddc70a39", + "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/52835be563891d74656fbaaf045dacc43ac5f701", + "reference": "52835be563891d74656fbaaf045dacc43ac5f701", "shasum": "" }, "require": { - "drupal/core-utility": "^8.4 || ^9 || ^10@beta", + "drupal/core-utility": "^8.4 || ^9 || ^10 || ^11", "php": ">=7.4", - "symfony/dependency-injection": "~2.6|~3.0|~4.4|^6", - "symfony/process": "~2.5|~3.0|~4.4|^6" + "symfony/dependency-injection": "~2.6 || ~3.0 || ~4.4 || ^6 || ^7.1", + "symfony/process": "~2.5 || ~3.0 || ~4.4 || ^6 || ^7.1" }, "conflict": { "drupal/core": ">=8.0 <9.3" }, "require-dev": { "composer/installers": "^2.1", - "dms/phpunit-arraysubset-asserts": "^0.4.0", + "dms/phpunit-arraysubset-asserts": "^0.4.0 || ^0.5.0", "drupal/coder": "~8.3.0", - "drupal/core-composer-scaffold": "^8.4 || ^9 || ^10@beta", - "drupal/core-recommended": "^8.4 || ^9 || ^10@beta", - "drupal/mailsystem": "^4.4", + "drupal/core-composer-scaffold": "^8.4 || ^9 || ^10 || ^11", + "drupal/core-recommended": "^8.4 || ^9 || ^10 || ^11", + "drupal/mailsystem": "^4.4 || 4.x-dev", "drush-ops/behat-drush-endpoint": "*", - "mglaman/drupal-check": "^1", "mockery/mockery": "^1.5", "palantirnet/drupal-rector": "^0.13", "php-parallel-lint/php-parallel-lint": "^1.0", "phpspec/phpspec": "~2.0 || ~4.0 || ~6.1 || dev-main", - "phpunit/phpunit": "~6.0 || ~7.0 || ^9", + "phpunit/phpunit": "~6.0 || ~7.0 || ^9 || ^10", "symfony/phpunit-bridge": "^6.1" }, "type": "library", @@ -17627,7 +17679,7 @@ ], "support": { "issues": "https://github.com/jhedstrom/DrupalDriver/issues", - "source": "https://github.com/jhedstrom/DrupalDriver/tree/v2.2.2" + "source": "https://github.com/jhedstrom/DrupalDriver/tree/v2.3.0" }, "funding": [ { @@ -17635,27 +17687,27 @@ "type": "github" } ], - "time": "2023-01-06T17:22:24+00:00" + "time": "2024-10-21T16:17:44+00:00" }, { "name": "drupal/drupal-extension", - "version": "v5.0.0", + "version": "v5.1.0", "source": { "type": "git", "url": "https://github.com/jhedstrom/drupalextension.git", - "reference": "d77136a6068ec286b9bd57c5cba400b82452859f" + "reference": "454a3ce03f59b26dc3f0b739d778afebe0e35cb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/d77136a6068ec286b9bd57c5cba400b82452859f", - "reference": "d77136a6068ec286b9bd57c5cba400b82452859f", + "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/454a3ce03f59b26dc3f0b739d778afebe0e35cb9", + "reference": "454a3ce03f59b26dc3f0b739d778afebe0e35cb9", "shasum": "" }, "require": { "behat/behat": "~3.2", "behat/mink-browserkit-driver": "^2.1.0", "behat/mink-selenium2-driver": "~1.1", - "drupal/drupal-driver": "^2.2.1", + "drupal/drupal-driver": "^2.2.1 || dev-master", "friends-of-behat/mink-extension": "^2.7.1", "symfony/http-client": "~4.4 || ^5 || ^6", "webflo/drupal-finder": "^1.2" @@ -17665,7 +17717,7 @@ "drupal/coder": "^8.3", "drupal/core": "^10", "drupal/core-composer-scaffold": "^10", - "drush/drush": "^11.6.0 || ^12.4", + "drush/drush": "^11.6.0 || ^12.4 || ^13", "php-parallel-lint/php-parallel-lint": "^1.3", "phpspec/phpspec": "^4.0 || ^6.0 || ^7.0" }, @@ -17717,7 +17769,7 @@ ], "support": { "issues": "https://github.com/jhedstrom/drupalextension/issues", - "source": "https://github.com/jhedstrom/drupalextension/tree/v5.0.0" + "source": "https://github.com/jhedstrom/drupalextension/tree/v5.1.0" }, "funding": [ { @@ -17725,20 +17777,20 @@ "type": "github" } ], - "time": "2023-12-13T17:17:05+00:00" + "time": "2024-10-21T21:00:55+00:00" }, { "name": "ergebnis/composer-normalize", - "version": "2.43.0", + "version": "2.44.0", "source": { "type": "git", "url": "https://github.com/ergebnis/composer-normalize.git", - "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75" + "reference": "bd0c446426bb837ae0cc9f97948167e658bd11d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/4b46330c84bb8f43fac79f5c5a05162fc7c80d75", - "reference": "4b46330c84bb8f43fac79f5c5a05162fc7c80d75", + "url": "https://api.github.com/repos/ergebnis/composer-normalize/zipball/bd0c446426bb837ae0cc9f97948167e658bd11d2", + "reference": "bd0c446426bb837ae0cc9f97948167e658bd11d2", "shasum": "" }, "require": { @@ -17749,20 +17801,20 @@ "ext-json": "*", "justinrainbow/json-schema": "^5.2.12", "localheinz/diff": "^1.1.1", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "composer/composer": "^2.7.7", - "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.30.1", - "ergebnis/phpunit-slow-test-detector": "^2.14.0", + "ergebnis/license": "^2.5.0", + "ergebnis/php-cs-fixer-config": "^6.37.0", + "ergebnis/phpunit-slow-test-detector": "^2.16.0", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.19", + "phpunit/phpunit": "^9.6.20", "psalm/plugin-phpunit": "~0.19.0", - "rector/rector": "^1.1.0", - "symfony/filesystem": "^5.4.40", - "vimeo/psalm": "^5.24.0" + "rector/rector": "^1.2.5", + "symfony/filesystem": "^5.4.41", + "vimeo/psalm": "^5.26.1" }, "type": "composer-plugin", "extra": { @@ -17802,37 +17854,37 @@ "security": "https://github.com/ergebnis/composer-normalize/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/composer-normalize" }, - "time": "2024-06-16T13:22:18+00:00" + "time": "2024-09-30T21:56:22+00:00" }, { "name": "ergebnis/json", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json.git", - "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0" + "reference": "84051b4e243d6a8e2f8271604b11ffa52d29bc7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json/zipball/a457f25a5ba7ea11fc94f84d53678c5211abfce0", - "reference": "a457f25a5ba7ea11fc94f84d53678c5211abfce0", + "url": "https://api.github.com/repos/ergebnis/json/zipball/84051b4e243d6a8e2f8271604b11ffa52d29bc7a", + "reference": "84051b4e243d6a8e2f8271604b11ffa52d29bc7a", "shasum": "" }, "require": { "ext-json": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "ergebnis/data-provider": "^3.2.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.36.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.1", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.18", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "^1.2.5", + "vimeo/psalm": "^5.26.1" }, "type": "library", "extra": { @@ -17867,20 +17919,20 @@ "security": "https://github.com/ergebnis/json/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json" }, - "time": "2024-01-29T15:09:24+00:00" + "time": "2024-09-27T15:01:05+00:00" }, { "name": "ergebnis/json-normalizer", - "version": "4.5.0", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-normalizer.git", - "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152" + "reference": "859fd3cee417f0b10a8e6ffb8dbeb03587106b8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/f0ee9e70739f121b27fac8b743e4a52b23de2152", - "reference": "f0ee9e70739f121b27fac8b743e4a52b23de2152", + "url": "https://api.github.com/repos/ergebnis/json-normalizer/zipball/859fd3cee417f0b10a8e6ffb8dbeb03587106b8b", + "reference": "859fd3cee417f0b10a8e6ffb8dbeb03587106b8b", "shasum": "" }, "require": { @@ -17890,20 +17942,20 @@ "ergebnis/json-schema-validator": "^4.2.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.12", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "composer/semver": "^3.4.0", + "composer/semver": "^3.4.3", "ergebnis/data-provider": "^3.2.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.36.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.1", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.4", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.19", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "^1.2.5", + "vimeo/psalm": "^5.26.1" }, "suggest": { "composer/semver": "If you want to use ComposerJsonNormalizer or VersionConstraintNormalizer" @@ -17936,39 +17988,43 @@ "security": "https://github.com/ergebnis/json-normalizer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-normalizer" }, - "time": "2024-01-30T09:10:15+00:00" + "time": "2024-09-27T15:11:59+00:00" }, { "name": "ergebnis/json-pointer", - "version": "3.4.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-pointer.git", - "reference": "b654757d873050622c2166f55ab25d04685261c5" + "reference": "f6ff71e69305b8ab5e4457e374b35dcd0812609b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/b654757d873050622c2166f55ab25d04685261c5", - "reference": "b654757d873050622c2166f55ab25d04685261c5", + "url": "https://api.github.com/repos/ergebnis/json-pointer/zipball/f6ff71e69305b8ab5e4457e374b35dcd0812609b", + "reference": "f6ff71e69305b8ab5e4457e374b35dcd0812609b", "shasum": "" }, "require": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { + "ergebnis/composer-normalize": "^2.43.0", "ergebnis/data-provider": "^3.2.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.32.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.0", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.19", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "^1.2.1", + "vimeo/psalm": "^5.25.0" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, "composer-normalize": { "indent-size": 2, "indent-style": "space" @@ -18002,38 +18058,38 @@ "security": "https://github.com/ergebnis/json-pointer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-pointer" }, - "time": "2024-01-29T16:37:15+00:00" + "time": "2024-09-27T15:47:15+00:00" }, { "name": "ergebnis/json-printer", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-printer.git", - "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced" + "reference": "d2e51379dc62d73017a779a78fcfba568de39e0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/549e16fe6de34b8c3aee7b421be12caa552f3ced", - "reference": "549e16fe6de34b8c3aee7b421be12caa552f3ced", + "url": "https://api.github.com/repos/ergebnis/json-printer/zipball/d2e51379dc62d73017a779a78fcfba568de39e0a", + "reference": "d2e51379dc62d73017a779a78fcfba568de39e0a", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "ergebnis/data-provider": "^3.2.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.36.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.1", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.19", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "~1.2.5", + "vimeo/psalm": "^5.26.1" }, "type": "library", "autoload": { @@ -18064,20 +18120,20 @@ "security": "https://github.com/ergebnis/json-printer/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-printer" }, - "time": "2024-01-29T15:33:37+00:00" + "time": "2024-09-27T15:19:56+00:00" }, { "name": "ergebnis/json-schema-validator", - "version": "4.2.0", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/ergebnis/json-schema-validator.git", - "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef" + "reference": "73f938f8995c6ad1e37d2c1dfeaa8336861f9db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef", - "reference": "10ed514fdc3f9b71f8a92c567afea21a2f6fa1ef", + "url": "https://api.github.com/repos/ergebnis/json-schema-validator/zipball/73f938f8995c6ad1e37d2c1dfeaa8336861f9db8", + "reference": "73f938f8995c6ad1e37d2c1dfeaa8336861f9db8", "shasum": "" }, "require": { @@ -18085,19 +18141,19 @@ "ergebnis/json-pointer": "^3.4.0", "ext-json": "*", "justinrainbow/json-schema": "^5.2.12", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "ergebnis/data-provider": "^3.2.0", "ergebnis/license": "^2.4.0", - "ergebnis/php-cs-fixer-config": "^6.20.0", - "ergebnis/phpunit-slow-test-detector": "^2.9.0", + "ergebnis/php-cs-fixer-config": "^6.36.0", + "ergebnis/phpunit-slow-test-detector": "^2.15.1", "fakerphp/faker": "^1.23.1", "infection/infection": "~0.26.6", - "phpunit/phpunit": "^9.6.16", - "psalm/plugin-phpunit": "~0.18.4", - "rector/rector": "~0.19.2", - "vimeo/psalm": "^5.20.0" + "phpunit/phpunit": "^9.6.20", + "psalm/plugin-phpunit": "~0.19.0", + "rector/rector": "^1.2.5", + "vimeo/psalm": "^5.26.1" }, "type": "library", "extra": { @@ -18134,7 +18190,7 @@ "security": "https://github.com/ergebnis/json-schema-validator/blob/main/.github/SECURITY.md", "source": "https://github.com/ergebnis/json-schema-validator" }, - "time": "2024-01-29T16:50:15+00:00" + "time": "2024-09-27T15:16:33+00:00" }, { "name": "friends-of-behat/mink-extension", @@ -18259,16 +18315,16 @@ }, { "name": "google/protobuf", - "version": "v3.25.5", + "version": "v4.28.3", "source": { "type": "git", "url": "https://github.com/protocolbuffers/protobuf-php.git", - "reference": "dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4" + "reference": "c5c311e0f3d89928251ac5a2f0e3db283612c100" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4", - "reference": "dd2cf3f7b577dced3851c2ea76c3daa9f8aa0ff4", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/c5c311e0f3d89928251ac5a2f0e3db283612c100", + "reference": "c5c311e0f3d89928251ac5a2f0e3db283612c100", "shasum": "" }, "require": { @@ -18297,9 +18353,9 @@ "proto" ], "support": { - "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.25.5" + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.28.3" }, - "time": "2024-09-18T22:04:15+00:00" + "time": "2024-10-22T22:27:17+00:00" }, { "name": "instaclick/php-webdriver", @@ -18491,16 +18547,16 @@ }, { "name": "mglaman/phpstan-drupal", - "version": "1.2.12", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "346bdddda169a56b6ebb7dc17893f0ac8f33a4f1" + "reference": "2bc25a59b53c8f3990f168efd71241d9c25ea0c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/346bdddda169a56b6ebb7dc17893f0ac8f33a4f1", - "reference": "346bdddda169a56b6ebb7dc17893f0ac8f33a4f1", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/2bc25a59b53c8f3990f168efd71241d9c25ea0c3", + "reference": "2bc25a59b53c8f3990f168efd71241d9c25ea0c3", "shasum": "" }, "require": { @@ -18509,7 +18565,7 @@ "phpstan/phpstan-deprecation-rules": "^1.1.4", "symfony/finder": "^4.2 || ^5.0 || ^6.0 || ^7.0", "symfony/yaml": "^4.2|| ^5.0 || ^6.0 || ^7.0", - "webflo/drupal-finder": "^1.2" + "webflo/drupal-finder": "^1.3.1" }, "require-dev": { "behat/mink": "^1.8", @@ -18575,7 +18631,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/1.2.12" + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.3.1" }, "funding": [ { @@ -18591,7 +18647,7 @@ "type": "tidelift" } ], - "time": "2024-08-07T21:15:21+00:00" + "time": "2024-09-27T08:54:16+00:00" }, { "name": "micheh/phpcs-gitlab", @@ -18757,35 +18813,104 @@ ], "time": "2024-06-12T14:39:25+00:00" }, + { + "name": "nyholm/psr7-server", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7-server.git", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/4335801d851f554ca43fa6e7d2602141538854dc", + "reference": "4335801d851f554ca43fa6e7d2602141538854dc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "nyholm/nsa": "^1.1", + "nyholm/psr7": "^1.3", + "phpunit/phpunit": "^7.0 || ^8.5 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Nyholm\\Psr7Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "Helper classes to handle PSR-7 server requests", + "homepage": "http://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7-server/issues", + "source": "https://github.com/Nyholm/psr7-server/tree/1.1.0" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2023-11-08T09:30:43+00:00" + }, { "name": "open-telemetry/api", - "version": "1.0.3", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/api.git", - "reference": "87de95d926f46262885d0d390060c095af13e2e5" + "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/87de95d926f46262885d0d390060c095af13e2e5", - "reference": "87de95d926f46262885d0d390060c095af13e2e5", + "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/542064815d38a6df55af7957cd6f1d7d967c99c6", + "reference": "542064815d38a6df55af7957cd6f1d7d967c99c6", "shasum": "" }, "require": { "open-telemetry/context": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "psr/log": "^1.1|^2.0|^3.0", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", "symfony/polyfill-php82": "^1.26" }, "conflict": { - "open-telemetry/sdk": "<=1.0.4" + "open-telemetry/sdk": "<=1.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.0.x-dev" + "dev-main": "1.1.x-dev" + }, + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] } }, "autoload": { @@ -18822,26 +18947,24 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-06T01:32:25+00:00" + "time": "2024-10-15T22:42:37+00:00" }, { "name": "open-telemetry/context", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/context.git", - "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c" + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", - "reference": "e9d254a7c89885e63fd2fde54e31e81aaaf52b7c", + "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/0cba875ea1953435f78aec7f1d75afa87bdbf7f3", + "reference": "0cba875ea1953435f78aec7f1d75afa87bdbf7f3", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", + "php": "^8.1", "symfony/polyfill-php82": "^1.26" }, "suggest": { @@ -18883,27 +19006,27 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-01-13T05:50:44+00:00" + "time": "2024-08-21T00:29:20+00:00" }, { "name": "open-telemetry/exporter-otlp", - "version": "1.0.4", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/exporter-otlp.git", - "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc" + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/342686bfce05867b56561a0af2fc8a4a8f27b3cc", - "reference": "342686bfce05867b56561a0af2fc8a4a8f27b3cc", + "url": "https://api.github.com/repos/opentelemetry-php/exporter-otlp/zipball/9b6de12204f25f8ab9540b46d6e7b5151897ce18", + "reference": "9b6de12204f25f8ab9540b46d6e7b5151897ce18", "shasum": "" }, "require": { "open-telemetry/api": "^1.0", "open-telemetry/gen-otlp-protobuf": "^1.1", "open-telemetry/sdk": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "php-http/discovery": "^1.14" }, "type": "library", @@ -18947,24 +19070,24 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-28T21:57:02+00:00" + "time": "2024-04-30T18:28:30+00:00" }, { "name": "open-telemetry/gen-otlp-protobuf", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/gen-otlp-protobuf.git", - "reference": "3aa87bc4d0279ebb53c2917a79f26602625c488e" + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/3aa87bc4d0279ebb53c2917a79f26602625c488e", - "reference": "3aa87bc4d0279ebb53c2917a79f26602625c488e", + "url": "https://api.github.com/repos/opentelemetry-php/gen-otlp-protobuf/zipball/66c3b98e998a726691c92e6405a82e6e7b8b169d", + "reference": "66c3b98e998a726691c92e6405a82e6e7b8b169d", "shasum": "" }, "require": { - "google/protobuf": "^3.3.0", + "google/protobuf": "^3.22 || ^4.0", "php": "^8.0" }, "suggest": { @@ -19010,47 +19133,54 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-04-30T18:28:30+00:00" + "time": "2024-10-30T11:49:49+00:00" }, { "name": "open-telemetry/sdk", - "version": "1.0.8", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/opentelemetry-php/sdk.git", - "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77" + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", - "reference": "1da4c0ca4f1a3c0fe84b81729dadec16f464fa77", + "url": "https://api.github.com/repos/opentelemetry-php/sdk/zipball/fb0ff8d8279a3776bd604791e2531dd0cc147e8b", + "reference": "fb0ff8d8279a3776bd604791e2531dd0cc147e8b", "shasum": "" }, "require": { "ext-json": "*", - "open-telemetry/api": "^1.0", + "nyholm/psr7-server": "^1.1", + "open-telemetry/api": "~1.0 || ~1.1", "open-telemetry/context": "^1.0", "open-telemetry/sem-conv": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^8.1", "php-http/discovery": "^1.14", "psr/http-client": "^1.0", "psr/http-client-implementation": "^1.0", "psr/http-factory-implementation": "^1.0", "psr/http-message": "^1.0.1|^2.0", "psr/log": "^1.1|^2.0|^3.0", + "ramsey/uuid": "^3.0 || ^4.0", "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.26", - "symfony/polyfill-php81": "^1.26", - "symfony/polyfill-php82": "^1.26" + "symfony/polyfill-php82": "^1.26", + "tbachert/spi": "^1.0.1" }, "suggest": { "ext-gmp": "To support unlimited number of synchronous metric readers", - "ext-mbstring": "To increase performance of string operations" + "ext-mbstring": "To increase performance of string operations", + "open-telemetry/sdk-configuration": "File-based OpenTelemetry SDK configuration" }, "type": "library", "extra": { "branch-alias": { "dev-main": "1.0.x-dev" + }, + "spi": { + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\HookManagerInterface": [ + "OpenTelemetry\\API\\Instrumentation\\AutoInstrumentation\\ExtensionHookManager" + ] } }, "autoload": { @@ -19093,7 +19223,7 @@ "issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "source": "https://github.com/open-telemetry/opentelemetry-php" }, - "time": "2024-02-02T03:42:40+00:00" + "time": "2024-10-18T21:01:35+00:00" }, { "name": "open-telemetry/sem-conv", @@ -19420,16 +19550,16 @@ }, { "name": "php-http/discovery", - "version": "1.19.4", + "version": "1.20.0", "source": { "type": "git", "url": "https://github.com/php-http/discovery.git", - "reference": "0700efda8d7526335132360167315fdab3aeb599" + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599", - "reference": "0700efda8d7526335132360167315fdab3aeb599", + "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d", + "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d", "shasum": "" }, "require": { @@ -19493,9 +19623,9 @@ ], "support": { "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.19.4" + "source": "https://github.com/php-http/discovery/tree/1.20.0" }, - "time": "2024-03-29T13:00:05+00:00" + "time": "2024-10-02T11:20:13+00:00" }, { "name": "php-http/guzzle7-adapter", @@ -19561,16 +19691,16 @@ }, { "name": "php-http/httplug", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/php-http/httplug.git", - "reference": "625ad742c360c8ac580fcc647a1541d29e257f67" + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67", - "reference": "625ad742c360c8ac580fcc647a1541d29e257f67", + "url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4", + "reference": "5cad731844891a4c282f3f3e1b582c46839d22f4", "shasum": "" }, "require": { @@ -19612,9 +19742,9 @@ ], "support": { "issues": "https://github.com/php-http/httplug/issues", - "source": "https://github.com/php-http/httplug/tree/2.4.0" + "source": "https://github.com/php-http/httplug/tree/2.4.1" }, - "time": "2023-04-14T15:10:03+00:00" + "time": "2024-09-23T11:39:58+00:00" }, { "name": "php-http/promise", @@ -19846,16 +19976,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.1", + "version": "5.5.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" + "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", + "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", "shasum": "" }, "require": { @@ -19868,13 +19998,13 @@ "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.5", + "mockery/mockery": "~1.3.5 || ~1.6.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.8", "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^5.13" + "psalm/phar": "^5.26" }, "type": "library", "extra": { @@ -19904,29 +20034,29 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1" }, - "time": "2024-05-21T05:55:05+00:00" + "time": "2024-11-06T11:58:54+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/1fb5ba8d045f5dd984ebded5b1cc66f29459422d", + "reference": "1fb5ba8d045f5dd984ebded5b1cc66f29459422d", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" + "phpstan/phpdoc-parser": "^1.18" }, "require-dev": { "ext-tokenizer": "*", @@ -19962,9 +20092,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.9.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2024-11-03T20:11:34+00:00" }, { "name": "phpmd/phpmd", @@ -20220,16 +20350,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.1", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51b95ec8670af41009e2b2b56873bad96682413e", - "reference": "51b95ec8670af41009e2b2b56873bad96682413e", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -20261,22 +20391,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2024-09-07T20:13:05+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.3", + "version": "1.12.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009" + "reference": "f6a60a4d66142b8156c9da923f1972657bc4748c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0fcbf194ab63d8159bb70d9aa3e1350051632009", - "reference": "0fcbf194ab63d8159bb70d9aa3e1350051632009", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f6a60a4d66142b8156c9da923f1972657bc4748c", + "reference": "f6a60a4d66142b8156c9da923f1972657bc4748c", "shasum": "" }, "require": { @@ -20321,7 +20451,7 @@ "type": "github" } ], - "time": "2024-09-09T08:10:35+00:00" + "time": "2024-11-06T19:06:49+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -20743,16 +20873,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.20", + "version": "9.6.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "49d7820565836236411f5dc002d16dd689cde42f" + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/49d7820565836236411f5dc002d16dd689cde42f", - "reference": "49d7820565836236411f5dc002d16dd689cde42f", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", "shasum": "" }, "require": { @@ -20767,7 +20897,7 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.31", + "phpunit/php-code-coverage": "^9.2.32", "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.4", @@ -20826,7 +20956,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" }, "funding": [ { @@ -20842,7 +20972,7 @@ "type": "tidelift" } ], - "time": "2024-07-10T11:45:39+00:00" + "time": "2024-09-19T10:50:18+00:00" }, { "name": "pyrech/composer-changelogs", @@ -20900,6 +21030,187 @@ }, "time": "2022-11-08T22:37:12+00:00" }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.6", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.6" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" + }, { "name": "react/promise", "version": "v3.2.0", @@ -20975,21 +21286,21 @@ }, { "name": "rector/rector", - "version": "1.2.5", + "version": "1.2.9", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "e98aa793ca3fcd17e893cfaf9103ac049775d339" + "reference": "7923bd5e48f8c26a922df91f7174f5bca2b3671d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/e98aa793ca3fcd17e893cfaf9103ac049775d339", - "reference": "e98aa793ca3fcd17e893cfaf9103ac049775d339", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/7923bd5e48f8c26a922df91f7174f5bca2b3671d", + "reference": "7923bd5e48f8c26a922df91f7174f5bca2b3671d", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.12.2" + "phpstan/phpstan": "^1.12.5" }, "conflict": { "rector/rector-doctrine": "*", @@ -21022,7 +21333,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.2.5" + "source": "https://github.com/rectorphp/rector/tree/1.2.9" }, "funding": [ { @@ -21030,7 +21341,7 @@ "type": "github" } ], - "time": "2024-09-08T17:43:24+00:00" + "time": "2024-11-04T18:26:57+00:00" }, { "name": "sebastian/cli-parser", @@ -22307,16 +22618,16 @@ }, { "name": "symfony/browser-kit", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8" + "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/62ab90b92066ef6cce5e79365625b4b1432464c8", - "reference": "62ab90b92066ef6cce5e79365625b4b1432464c8", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/65d4b3fd9556e4b5b41287bef93c671f8f9f86ab", + "reference": "65d4b3fd9556e4b5b41287bef93c671f8f9f86ab", "shasum": "" }, "require": { @@ -22355,7 +22666,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/v6.4.8" + "source": "https://github.com/symfony/browser-kit/tree/v6.4.13" }, "funding": [ { @@ -22371,7 +22682,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/config", @@ -22450,16 +22761,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "105b56a0305d219349edeb60a800082eca864e4b" + "reference": "ae074dffb018c37a57071990d16e6152728dd972" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/105b56a0305d219349edeb60a800082eca864e4b", - "reference": "105b56a0305d219349edeb60a800082eca864e4b", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ae074dffb018c37a57071990d16e6152728dd972", + "reference": "ae074dffb018c37a57071990d16e6152728dd972", "shasum": "" }, "require": { @@ -22497,7 +22808,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.4.8" + "source": "https://github.com/symfony/dom-crawler/tree/v6.4.13" }, "funding": [ { @@ -22513,20 +22824,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "4c92046bb788648ff1098cc66da69aa7eac8cb65" + "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/4c92046bb788648ff1098cc66da69aa7eac8cb65", - "reference": "4c92046bb788648ff1098cc66da69aa7eac8cb65", + "url": "https://api.github.com/repos/symfony/http-client/zipball/05d88cbd816ad6e0202edd9a9963cb9d615b8826", + "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826", "shasum": "" }, "require": { @@ -22590,7 +22901,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.11" + "source": "https://github.com/symfony/http-client/tree/v6.4.14" }, "funding": [ { @@ -22606,7 +22917,7 @@ "type": "tidelift" } ], - "time": "2024-08-26T06:30:21+00:00" + "time": "2024-11-05T16:39:55+00:00" }, { "name": "symfony/http-client-contracts", @@ -22688,16 +22999,16 @@ }, { "name": "symfony/lock", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "1387f50285c23607467c1f05b258bde65f1ab276" + "reference": "a69c3dd151ab7e14925f119164cfdf65d55392a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/1387f50285c23607467c1f05b258bde65f1ab276", - "reference": "1387f50285c23607467c1f05b258bde65f1ab276", + "url": "https://api.github.com/repos/symfony/lock/zipball/a69c3dd151ab7e14925f119164cfdf65d55392a4", + "reference": "a69c3dd151ab7e14925f119164cfdf65d55392a4", "shasum": "" }, "require": { @@ -22747,7 +23058,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v6.4.8" + "source": "https://github.com/symfony/lock/tree/v6.4.13" }, "funding": [ { @@ -22763,20 +23074,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-10-25T15:19:46+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "168f412dcd6caf3813a9cc0f286cd68f6a76f070" + "reference": "e6377bea5b114f70de6332fe935e160da5014ce8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/168f412dcd6caf3813a9cc0f286cd68f6a76f070", - "reference": "168f412dcd6caf3813a9cc0f286cd68f6a76f070", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e6377bea5b114f70de6332fe935e160da5014ce8", + "reference": "e6377bea5b114f70de6332fe935e160da5014ce8", "shasum": "" }, "require": { @@ -22829,7 +23140,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.11" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.13" }, "funding": [ { @@ -22845,7 +23156,7 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:27:37+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/polyfill-php73", @@ -23001,16 +23312,16 @@ }, { "name": "symfony/translation", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1" + "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/8d5e50c813ba2859a6dfc99a0765c550507934a1", - "reference": "8d5e50c813ba2859a6dfc99a0765c550507934a1", + "url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f", + "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f", "shasum": "" }, "require": { @@ -23075,7 +23386,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.1.3" + "source": "https://github.com/symfony/translation/tree/v7.1.6" }, "funding": [ { @@ -23091,7 +23402,59 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-09-28T12:35:13+00:00" + }, + { + "name": "tbachert/spi", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/Nevay/spi.git", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nevay/spi/zipball/2ddfaf815dafb45791a61b08170de8d583c16062", + "reference": "2ddfaf815dafb45791a61b08170de8d583c16062", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "composer/semver": "^1.0 || ^2.0 || ^3.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "infection/infection": "^0.27.9", + "phpunit/phpunit": "^10.5", + "psalm/phar": "^5.18" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-main": "0.2.x-dev" + }, + "class": "Nevay\\SPI\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Nevay\\SPI\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Service provider loading facility", + "keywords": [ + "service provider" + ], + "support": { + "issues": "https://github.com/Nevay/spi/issues", + "source": "https://github.com/Nevay/spi/tree/v1.0.2" + }, + "time": "2024-10-04T16:36:12+00:00" }, { "name": "theseer/tokenizer", @@ -23155,9 +23518,9 @@ "platform": { "php": ">=8.1" }, - "platform-dev": [], + "platform-dev": {}, "platform-overrides": { - "php": "8.2.13" + "php": "8.3.8" }, "plugin-api-version": "2.6.0" } diff --git a/phpcs.xml b/phpcs.xml index 28953b332e..e42a4cc21e 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -23,7 +23,7 @@ - + circle\.yml diff --git a/phpstan.neon b/phpstan.neon index 3f71bce93b..05e9d203cc 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -72,6 +72,3 @@ parameters: message: '#Parameter \#1 \$callback of function call_user_func expects callable.*#' paths: - web/modules/custom/cs_generated_content/src/CsGeneratedContentCivicthemeTrait.php - - # Skip deprecation until upgrade to 10.3. - # @see https://www.drupal.org/node/3426517 - message: '#Fetching deprecated class constant EXISTS_REPLACE#' diff --git a/tests/behat/bootstrap/FeatureContext.php b/tests/behat/bootstrap/FeatureContext.php index e74877da08..596756bdff 100644 --- a/tests/behat/bootstrap/FeatureContext.php +++ b/tests/behat/bootstrap/FeatureContext.php @@ -21,7 +21,6 @@ use DrevOps\BehatSteps\LinkTrait; use DrevOps\BehatSteps\MediaTrait; use DrevOps\BehatSteps\MenuTrait; -use DrevOps\BehatSteps\OverrideTrait; use DrevOps\BehatSteps\ParagraphsTrait; use DrevOps\BehatSteps\PathTrait; use DrevOps\BehatSteps\SelectTrait; @@ -54,7 +53,6 @@ class FeatureContext extends DrupalContext { use LinkTrait; use MediaTrait; use MenuTrait; - use OverrideTrait; use PathTrait; use ParagraphsTrait; use SelectTrait; @@ -253,7 +251,7 @@ public function iScrollToElementWithId(string $id): void { * * @todo Remove with next behat-steps release. */ - public function linkAssertTextHrefNotExists(string $text, string $href, string $locator = NULL): void { + public function linkAssertTextHrefNotExists(string $text, string $href, ?string $locator = NULL): void { /** @var \Behat\Mink\Element\DocumentElement $page */ $page = $this->getSession()->getPage(); @@ -357,7 +355,7 @@ public function setThemeAsDefault(string $name): void { * * @SuppressWarnings(PHPMD.StaticAccess) */ - public function themeVisitSettings(string $name = NULL): void { + public function themeVisitSettings(?string $name = NULL): void { if (!$name || $name === 'current') { $name = \Drupal::theme()->getActiveTheme()->getName(); } diff --git a/tests/behat/features/content_type.civictheme_alert.access.feature b/tests/behat/features/content_type.civictheme_alert.access.feature index 0c63e2f5a4..8d60db931e 100644 --- a/tests/behat/features/content_type.civictheme_alert.access.feature +++ b/tests/behat/features/content_type.civictheme_alert.access.feature @@ -28,8 +28,26 @@ Feature: CivicTheme Alert content type access Examples: | role | view | view_unpublished | add | edit | delete | - | anonymous user | 200 | 403 | 403 | 403 | 403 | | authenticated user | 200 | 403 | 403 | 403 | 403 | | civictheme_content_author | 200 | 200 | 200 | 200 | 200 | | civictheme_content_approver | 200 | 200 | 403 | 403 | 403 | | civictheme_site_administrator | 200 | 200 | 200 | 200 | 200 | + + @api + Scenario: CivicTheme alert content type access anonymous user + Given I am an anonymous user + When I go to "node/add/civictheme_alert" + Then the response status code should be 403 + + When I visit civictheme_alert "[TEST] Test Published CivicTheme Alert 1" + Then I should get a 200 HTTP response + + When I visit civictheme_alert "[TEST] Test Unpublished CivicTheme Alert 1" + Then I should get a 403 HTTP response + + When I edit civictheme_alert "[TEST] Test Published CivicTheme Alert 1" + Then the response status code should be 403 + + When I delete civictheme_alert "[TEST] Test Published CivicTheme Alert 1" + And I should get a 403 HTTP response + diff --git a/tests/behat/features/content_type.civictheme_event.access.feature b/tests/behat/features/content_type.civictheme_event.access.feature index 63c5e875af..f4e10ffd34 100644 --- a/tests/behat/features/content_type.civictheme_event.access.feature +++ b/tests/behat/features/content_type.civictheme_event.access.feature @@ -28,8 +28,27 @@ Feature: CivicTheme Event content type access Examples: | role | view | view_unpublished | add | edit | delete | - | anonymous user | 200 | 403 | 403 | 403 | 403 | | authenticated user | 200 | 403 | 403 | 403 | 403 | | civictheme_content_author | 200 | 200 | 200 | 200 | 200 | | civictheme_content_approver | 200 | 200 | 403 | 403 | 403 | | civictheme_site_administrator | 200 | 200 | 200 | 200 | 200 | + + @api + Scenario: CivicTheme event content type access anonymous user + Given I am an anonymous user + When I go to "node/add/civictheme_event" + Then the response status code should be 403 + + When I visit civictheme_event "[TEST] Test Published CivicTheme Event 1" + Then I should get a 200 HTTP response + + When I visit civictheme_event "[TEST] Test Unpublished CivicTheme Event 1" + Then I should get a 403 HTTP response + + When I edit civictheme_event "[TEST] Test Published CivicTheme Event 1" + Then the response status code should be 403 + + When I delete civictheme_event "[TEST] Test Published CivicTheme Event 1" + And I should get a 403 HTTP response + + diff --git a/tests/behat/features/content_type.civictheme_page.access.feature b/tests/behat/features/content_type.civictheme_page.access.feature index 3b10d73df9..4152305888 100644 --- a/tests/behat/features/content_type.civictheme_page.access.feature +++ b/tests/behat/features/content_type.civictheme_page.access.feature @@ -28,8 +28,25 @@ Feature: CivicTheme Page content type access Examples: | role | view | view_unpublished | add | edit | delete | - | anonymous user | 200 | 403 | 403 | 403 | 403 | | authenticated user | 200 | 403 | 403 | 403 | 403 | | civictheme_content_author | 200 | 200 | 200 | 200 | 200 | | civictheme_content_approver | 200 | 200 | 403 | 403 | 403 | | civictheme_site_administrator | 200 | 200 | 200 | 200 | 200 | + + @api + Scenario: CivicTheme page content type access anonymous user + Given I am an anonymous user + When I go to "node/add/civictheme_page" + Then the response status code should be 403 + + When I visit civictheme_page "[TEST] Test Published CivicTheme Page 1" + Then I should get a 200 HTTP response + + When I visit civictheme_page "[TEST] Test Unpublished CivicTheme Page 1" + Then I should get a 403 HTTP response + + When I edit civictheme_page "[TEST] Test Published CivicTheme Page 1" + Then the response status code should be 403 + + When I delete civictheme_page "[TEST] Test Published CivicTheme Page 1" + And I should get a 403 HTTP response diff --git a/tests/behat/features/form_elements.core_form_elements.feature b/tests/behat/features/form_elements.core_form_elements.feature new file mode 100644 index 0000000000..5a6acf95a1 --- /dev/null +++ b/tests/behat/features/form_elements.core_form_elements.feature @@ -0,0 +1,383 @@ +@p1 @civictheme @civictheme_form_updates @civictheme_core_form +Feature: Test a sample of the core form elements + + @api + Scenario: Fields appear as expected in civictheme + Given I am an anonymous user + When I visit "/civictheme-core-form-elements" + + Then I should see "CivicTheme Core Form Elements Form" in the ".ct-banner__title" element + + # Button (button) + And should see an "[name='op']" element + And should not see an "[name='op'].required" element + And should not see an "[name='op'][disabled]" element + And should see an "[value='Button (button)']" element + And should see an "[data-component-name='button']" element + And should see an "[type='submit']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular" element + And I should see an ".button.js-form-submit.form-submit" element + + # Checkbox (checkbox) + And I should see an "[name='checkbox']" element + And I should see an "[id='edit-checkbox']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control.form-checkbox" element + + # Checkboxes (checkboxes) + And I should see an "[name='checkboxes[option1]']" element + And I should see an "[id='edit-checkboxes-option1']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control.form-checkbox" element + And I should see an "[name='checkboxes[option2]']" element + And I should see an "[id='edit-checkboxes-option2']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control.form-checkbox" element + And I should see an "[name='checkboxes[option3]']" element + And I should see an "[id='edit-checkboxes-option3']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control.form-checkbox" element + + # Date (date) + And I should see an "[name='date']" element + And I should see an "[id='edit-date']" element + And I should see an ".form-date.form-element.form-element--type-date.form-element--api-date.form-control" element + + # Datelist (datelist) + And I should see an "[name='datelist[year]']" element + And I should see an "[id='edit-datelist-year']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + And I should see an "[name='datelist[month]']" element + And I should see an "[id='edit-datelist-month']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + And I should see an "[name='datelist[day]']" element + And I should see an "[id='edit-datelist-day']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + And I should see an "[name='datelist[hour]']" element + And I should see an "[id='edit-datelist-hour']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + And I should see an "[name='datelist[minute]']" element + And I should see an "[id='edit-datelist-minute']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + + # Datetime (datetime) + And I should see an "[name='datetime[date]']" element + And I should see an "[id='edit-datetime-date']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-date" element + And I should see an "[name='datetime[time]']" element + And I should see an "[id='edit-datetime-time']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-time" element + + # Email (email) + And I should see an "[name='email']" element + And I should see an "[id='edit-email']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-email" element + And I should see an ".form-email.form-element.form-element--type-email.form-element--api-email.form-control" element + + # Entity Autocomplete (entity_autocomplete) + And I should see an "[name='entity_autocomplete']" element + And I should see an "[id='edit-entity-autocomplete']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-autocomplete" element + + # File (file) + And I should see an "[name='files[file]']" element + And I should see an "[id='edit-file']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-file" element + + # Image Button (image_button) + And I should see an "[name='op'][type='image']" element + And I should see an "[id='edit-1--2']" element + And I should see an "[src='/themes/contrib/civictheme/assets/icons/download.svg']" element + + # Linkit (linkit) + And I should see an "[name='linkit']" element + And I should see an "[id='edit-linkit']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + + # Machine Name (machine_name) + And I should see an "[name='machine_name']" element + And I should see an "[id='edit-machine-name']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + + # Number (number) + And I should see an "[name='number']" element + And I should see an "[id='edit-number']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-number" element + And I should see an ".form-number.form-element.form-element--type-number.form-element--api-number.form-control" element + + # Password (password) + And I should see an "[name='password']" element + And I should see an "[id='edit-password']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + + # Password Confirm (password_confirm) + And I should see an "[name='password_confirm[pass1]']" element + And I should see an "[id='edit-password-confirm-pass1']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + And I should see an "[name='password_confirm[pass2]']" element + And I should see an "[id='edit-password-confirm-pass2']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + And I should see an ".form-text.form-element.form-element--type-password.form-element--api-password.form-control" element + And I should see an ".password-confirm.js-password-confirm" element + + # Path (path) + And I should see an "[name='path']" element + And I should see an "[id='edit-path']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-text" element + + # Radio (radio) + And I should see an "[name='radio']" element + And I should see an "[id='edit-radio']" element + And I should see an ".ct-radio.ct-theme-light.ct-field__control.form-radio" element + + # Radios (radios) + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option1']" element + And I should see an ".ct-radio.ct-theme-light.ct-field__control.form-radio" element + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option2']" element + And I should see an ".ct-radio.ct-theme-light.ct-field__control.form-radio" element + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option3']" element + And I should see an ".ct-radio.ct-theme-light.ct-field__control.form-radio" element + + # Range (range) + And I should see an "[name='range']" element + And I should see an "[id='edit-range']" element + And I should not see an ".ct-input.ct-theme-light.ct-field__control.form-range" element + + # Search (search) + And I should see an "[name='search']" element + And I should see an "[id='edit-search']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-search" element + + # Select (select) + And I should not see an "[name='select']" element + And I should not see an "[id='edit-select']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + + # Submit (submit) + And I should see an "[name='op'][type='submit']" element + And I should see an "[id='edit-1--3']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit" element + + # Table (table) + And I should see an "[id='edit-table']" element + And I should see an ".ct-table.ct-theme-light.ct-table--caption-before" element + + # Tel (tel) + And I should see an "[name='tel']" element + And I should see an "[id='edit-tel']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-tel" element + And I should see an ".form-tel.form-element.form-element--type-tel.form-element--api-tel.form-control" element + + # Textarea (textarea) + And I should see an "[name='textarea']" element + And I should see an "[id='edit-textarea']" element + And I should see an ".ct-textarea.ct-theme-light.ct-field__control.form-element" element + + # Textfield (textfield) + And I should see an "[name='textfield']" element + And I should see an "[id='edit-textfield']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text" element + + # Url (url) + And I should see an "[name='url']" element + And I should see an "[id='edit-url']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-url" element + And I should see an ".form-url.form-element.form-element--type-url.form-element--api-url.form-control" element + + # Weight (weight) + And I should see an "[name='weight']" element + And I should see an "[id='edit-weight']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select" element + + # Markup within a form + And I should see "Markup within a form" in the "h2" element + And I should see "Test content 1" in the "p" element + And I should see an ".ct-basic-content.ct-theme-light ul li" element + And I should see the text "List Item 1" + And I should see the text "List Item 2" + And I should see the text "List Item 3" + And I should see an ".ct-link" element + And I should see the link "Examples" with "https://www.drupal.org/docs/8/api/form-api/examples" + + @api + Scenario: Fields appear as expected in admin theme + Given I am logged in as a user with the "Site Administrator" role + When I visit "/admin/structure/civictheme-core-form-elements" + + Then I should see "Core Form Elements Form (Admin Theme)" in the ".page-title" element + + # Button (button) + And should see an "[name='op']" element + And should not see an "[name='op'].required" element + And should not see an "[name='op'][disabled]" element + And should see an "[value='Button (button)']" element + And should not see an "[data-component-name='button']" element + And should see an "[type='submit']" element + And I should not see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular" element + And I should see an ".button.js-form-submit.form-submit" element + + # Checkbox (checkbox) + And I should see an "[name='checkbox']" element + And I should see an "[id='edit-checkbox']" element + And I should see an ".form-checkbox.form-boolean.form-boolean--type-checkbox" element + + # Checkboxes (checkboxes) + And I should see an "[name='checkboxes[option1]']" element + And I should see an "[id='edit-checkboxes-option1']" element + And I should see an ".form-checkbox.form-boolean.form-boolean--type-checkbox" element + And I should see an "[name='checkboxes[option2]']" element + And I should see an "[id='edit-checkboxes-option2']" element + And I should see an ".form-checkbox.form-boolean.form-boolean--type-checkbox" element + And I should see an "[name='checkboxes[option3]']" element + And I should see an "[id='edit-checkboxes-option3']" element + And I should see an ".form-checkbox.form-boolean.form-boolean--type-checkbox" element + + # Datelist (datelist) + And I should see an "[name='datelist[year]']" element + And I should see an "[id='edit-datelist-year']" element + And I should see an ".form-select.form-element.form-element--type-select" element + And I should see an "[name='datelist[month]']" element + And I should see an "[id='edit-datelist-month']" element + And I should see an ".form-select.form-element.form-element--type-select" element + And I should see an "[name='datelist[day]']" element + And I should see an "[id='edit-datelist-day']" element + And I should see an ".form-select.form-element.form-element--type-select" element + And I should see an "[name='datelist[hour]']" element + And I should see an "[id='edit-datelist-hour']" element + And I should see an ".form-select.form-element.form-element--type-select" element + And I should see an "[name='datelist[minute]']" element + And I should see an "[id='edit-datelist-minute']" element + And I should see an ".form-select.form-element.form-element--type-select" element + + # Datetime (datetime) + And I should see an "[name='datetime[date]']" element + And I should see an "[id='edit-datetime-date']" element + And I should see an ".form-date.form-element.form-element--type-date" element + And I should see an "[name='datetime[time]']" element + And I should see an "[id='edit-datetime-time']" element + And I should see an ".form-time.form-element.form-element--type-time" element + + # Email (email) + And I should see an "[name='email']" element + And I should see an "[id='edit-email']" element + And I should see an ".form-email.form-element.form-element--type-email" element + + # Entity Autocomplete (entity_autocomplete) + And I should see an "[name='entity_autocomplete']" element + And I should see an "[id='edit-entity-autocomplete']" element + And I should see an ".form-autocomplete.form-text.form-element.form-element--type-text" element + + # File (file) + And I should see an "[name='files[file]']" element + And I should see an "[id='edit-file']" element + And I should see an ".form-file.form-element.form-element--type-file" element + + # Image Button (image_button) + And I should see an "[name='op'][type='image']" element + And I should see an "[id='edit-1--2']" element + And I should see an "[src='/themes/contrib/civictheme/assets/icons/download.svg']" element + + # Linkit (linkit) + And I should see an "[name='linkit']" element + And I should see an "[id='edit-linkit']" element + And I should see an ".form-text.form-element.form-element--type-text" element + + # Machine Name (machine_name) + And I should see an "[name='machine_name']" element + And I should see an "[id='edit-machine-name']" element + And I should see an ".form-text.required.form-element.form-element--type-text" element + + # Number (number) + And I should see an "[name='number']" element + And I should see an "[id='edit-number']" element + And I should see an ".form-number.form-element.form-element--type-number" element + + # Password (password) + And I should see an "[name='password']" element + And I should see an "[id='edit-password']" element + And I should see an ".form-text.form-element.form-element--type-password" element + + # Password Confirm (password_confirm) + And I should see an "[name='password_confirm[pass1]']" element + And I should see an "[id='edit-password-confirm-pass1']" element + And I should see an ".form-text.form-element.form-element--type-password" element + And I should see an "[name='password_confirm[pass2]']" element + And I should see an "[id='edit-password-confirm-pass2']" element + And I should see an ".form-text.form-element.form-element--type-password" element + + # Path (path) + And I should see an "[name='path']" element + And I should see an "[id='edit-path']" element + And I should see an ".form-text.form-element.form-element--type-text" element + + # Radio (radio) + And I should see an "[name='radio']" element + And I should see an "[id='edit-radio']" element + And I should see an ".form-radio.form-boolean.form-boolean--type-radio" element + + # Radios (radios) + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option1']" element + And I should see an ".form-radio.form-boolean.form-boolean--type-radio" element + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option2']" element + And I should see an ".form-radio.form-boolean.form-boolean--type-radio" element + And I should see an "[name='radios']" element + And I should see an "[id='edit-radios-option3']" element + And I should see an ".form-radio.form-boolean.form-boolean--type-radio" element + + # Range (range) + And I should see an "[name='range']" element + And I should see an "[id='edit-range']" element + And I should see an ".form-range" element + + # Search (search) + And I should see an "[name='search']" element + And I should see an "[id='edit-search']" element + And I should see an ".form-search.form-element.form-element--type-search" element + + # Select (select) + And I should see an "[name='select']" element + And I should see an "[id='edit-select']" element + And I should see an ".form-select.form-element.form-element--type-select" element + + # Submit (submit) + And I should see an "[name='op'][type='submit']" element + And I should see an "[id='edit-1--3']" element + And I should see an ".button.js-form-submit.form-submit" element + + # Table (table) + And I should see an "[id='edit-table']" element + And I should see an ".responsive-enabled" element + + # Tel (tel) + And I should see an "[name='tel']" element + And I should see an "[id='edit-tel']" element + And I should see an ".form-tel.form-element.form-element--type-tel" element + + # Textarea (textarea) + And I should see an "[name='textarea']" element + And I should see an "[id='edit-textarea']" element + And I should see an ".form-textarea.resize-vertical.form-element.form-element--type-textarea" element + + # Textfield (textfield) + And I should see an "[name='textfield']" element + And I should see an "[id='edit-textfield']" element + And I should see an ".form-text.form-element.form-element--type-text" element + + # Url (url) + And I should see an "[name='url']" element + And I should see an "[id='edit-url']" element + And I should see an ".form-url.form-element.form-element--type-url" element + + # Weight (weight) + And I should see an "[name='weight']" element + And I should see an "[id='edit-weight']" element + And I should see an ".form-select.form-element.form-element--type-select" element + + # Markup within a form + And I should see the text "Markup within a form" + And I should see the text "Test content 1" + And I should see the text "List Item 1" + And I should see the text "List Item 2" + And I should see the text "List Item 3" + And I should see the link "Examples" with "https://www.drupal.org/docs/8/api/form-api/examples" diff --git a/tests/behat/features/form_elements.webform_form_elements.feature b/tests/behat/features/form_elements.webform_form_elements.feature new file mode 100644 index 0000000000..6273158474 --- /dev/null +++ b/tests/behat/features/form_elements.webform_form_elements.feature @@ -0,0 +1,265 @@ +@p1 @civictheme @civictheme_form_updates @civictheme_webform +Feature: Test a sample of the webform elements in the webform + + @api + Scenario: Fields appear as expected + Given I am an anonymous user + When I visit "form/civictheme-test-webform-fields" + + Then I should see "Civictheme Test Webform - Fields" in the ".ct-banner__title" element + + # Checkbox (checkbox) + And I should see an "[name='checkbox']" element + And I should see an "[id='edit-checkbox']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control" element + And I should see an ".form-checkbox" element + + # Text field (textfield) + And I should see an "[name='text_field']" element + And I should see an "[id='edit-text-field']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control" element + And I should see an ".form-text" element + + # Radio buttons (select_to_display_textarea) + And I should see an "[name='select_to_display_textarea']" element + And I should see an "[id='edit-select-to-display-textarea-Display-textarea']" element + And I should see an "[id='edit-select-to-display-textarea-Do-not-display-textarea']" element + And I should see an ".ct-radio.ct-theme-light.ct-field__control" element + + # Textarea (textarea) + And I should see an "[name='textarea']" element + And I should see an "[id='edit-textarea']" element + And I should see an ".ct-textarea.ct-theme-light.ct-field__control" element + + # Checkbox to display textfield (checkbox_visible_text_field_1) + And I should see an "[name='checkbox_visible_text_field_1']" element + And I should see an "[id='edit-checkbox-visible-text-field-1']" element + And I should see an ".ct-checkbox.ct-theme-light.ct-field__control.form-checkbox" element + + # Text field 1 (text_field_1) + And I should see an "[name='text_field_1']" element + And I should see an "[id='edit-text-field-1']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text" element + + # Autocomplete (autocomplete) + And I should see an "[name='autocomplete']" element + And I should see an "[id='edit-autocomplete']" element + And I should see an ".js-form-item.form-item.js-form-type-webform-autocomplete.form-item-autocomplete.js-form-item-autocomplete" element + + # Color (color) + And I should see an "[name='color']" element + And I should see an "[id='edit-color']" element + And I should see an ".ct-field.ct-theme-light.ct-field--color.ct-field--vertical.form-item.js-form-item.js-form-type-color.form-type-color.form-type--color.js-form-item-color.form-item-color.form-item--color" element + + # Email (email) + And I should see an "[name='email']" element + And I should see an "[id='edit-email']" element + And I should see an ".ct-field.ct-theme-light.ct-field--email.ct-field--vertical.form-item.js-form-item.js-form-type-email.form-type-email.form-type--email.js-form-item-email.form-item-email.form-item--email" element + + # Email confirm (email_confirm) + And I should see an "[name='email_confirm[mail_1]']" element + And I should see an "[id='edit-email-confirm-mail-1']" element + And I should see an ".ct-field.ct-theme-light.ct-field--email.ct-field--vertical.form-item.js-form-item.js-form-type-email.form-type-email.form-type--email.js-form-item-email-confirm-mail-1.form-item-email-confirm-mail-1.form-item--email-confirm-mail-1" element + And I should see an "[name='email_confirm[mail_2]']" element + And I should see an "[id='edit-email-confirm-mail-2']" element + And I should see an ".ct-field.ct-theme-light.ct-field--email.ct-field--vertical.form-item.js-form-item.js-form-type-email.form-type-email.form-type--email.js-form-item-email-confirm-mail-2.form-item-email-confirm-mail-2.form-item--email-confirm-mail-2" element + + # Email multiple (email_multiple) + And I should see an "[name='email_multiple']" element + And I should see an "[id='edit-email-multiple']" element + And I should see an ".js-form-item.form-item.js-form-type-webform-email-multiple.form-item-email-multiple.js-form-item-email-multiple" element + + # Number (number) + And I should see an "[name='number']" element + And I should see an "[id='edit-number']" element + And I should see an ".ct-field.ct-theme-light.ct-field--number.ct-field--vertical.form-item.js-form-item.js-form-type-number.form-type-number.form-type--number.js-form-item-number.form-item-number.form-item--number" element + + # Number - Max 10 - Min 4 (number_max_10_min_4) + And I should see an "[name='number_max_10_min_4']" element + And I should see an "[id='edit-number-max-10-min-4']" element + And I should see an ".ct-field.ct-theme-light.ct-field--number.ct-field--vertical.form-item.js-form-item.js-form-type-number.form-type-number.form-type--number.js-form-item-number-max-10-min-4.form-item-number-max-10-min-4.form-item--number-max-10-min-4" element + + # Range (range) + And I should see an "[name='range']" element + And I should see an "[id='edit-range']" element + And I should see an ".js-form-item.form-item.js-form-type-range.form-item-range.js-form-item-range" element + + # Range Min 10 Max 100 Steps 10 (range_min_10_max_100_steps_10) + And I should see an "[name='range_min_10_max_100_steps_10']" element + And I should see an "[id='edit-range-min-10-max-100-steps-10']" element + And I should see an ".js-form-item.form-item.js-form-type-range.form-item-range-min-10-max-100-steps-10.js-form-item-range-min-10-max-100-steps-10" element + + # Rating (rating) + And I should see an "[name='rating']" element + And I should see an "[id='edit-rating']" element + And I should see an ".js-form-item.form-item.js-form-type-webform-rating.form-item-rating.js-form-item-rating" element + + # Telephone (telephone) + And I should see an "[name='telephone']" element + And I should see an "[id='edit-telephone']" element + And I should see an ".ct-field.ct-theme-light.ct-field--tel.ct-field--vertical.form-item.js-form-item.js-form-type-tel.form-type-tel.form-type--tel.js-form-item-telephone.form-item-telephone.form-item--telephone" element + + # Terms of service (terms_of_service) + And I should see an "[name='terms_of_service']" element + And I should see an "[id='edit-terms-of-service']" element + And I should see an ".ct-field.ct-theme-light.ct-field--checkbox.ct-field--vertical.form-type-webform-terms-of-service.js-form-type-webform-terms-of-service.form-item.js-form-item.js-form-type-checkbox.form-type-checkbox.form-type--checkbox.js-form-item-terms-of-service.form-item-terms-of-service.form-item--terms-of-service" element + + # URL (url) + And I should see an "[name='url']" element + And I should see an "[id='edit-url']" element + And I should see an ".ct-field.ct-theme-light.ct-field--url.ct-field--vertical.form-item.js-form-item.js-form-type-url.form-type-url.form-type--url.js-form-item-url.form-item-url.form-item--url" element + + # Address (address) + And I should see an "[name='address[address]']" element + And I should see an "[id='edit-address-address']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='address[address_2]']" element + And I should see an "[id='edit-address-address-2']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='address[city]']" element + And I should see an "[id='edit-address-city']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='address[state_province]']" element + And I should see an "[id='edit-address-state-province']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select.form-element.form-element--type-select.form-element--api-select.form-control" element + + And I should see an "[name='address[postal_code]']" element + And I should see an "[id='edit-address-postal-code']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='address[country]']" element + And I should see an "[id='edit-address-country']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select.form-element.form-element--type-select.form-element--api-select.form-control" element + + # Contact (contact) + And I should see an "[name='contact[name]']" element + And I should see an "[id='edit-contact-name']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[company]']" element + And I should see an "[id='edit-contact-company']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[email]']" element + And I should see an "[id='edit-contact-email']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-email.form-element.form-element--type-email.form-element--api-email.form-control" element + + And I should see an "[name='contact[phone]']" element + And I should see an "[id='edit-contact-phone']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-tel.form-element.form-element--type-tel.form-element--api-tel.form-control" element + + And I should see an "[name='contact[address]']" element + And I should see an "[id='edit-contact-address']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[address_2]']" element + And I should see an "[id='edit-contact-address-2']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[city]']" element + And I should see an "[id='edit-contact-city']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[state_province]']" element + And I should see an "[id='edit-contact-state-province']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select.form-element.form-element--type-select.form-element--api-select.form-control" element + + And I should see an "[name='contact[postal_code]']" element + And I should see an "[id='edit-contact-postal-code']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='contact[country]']" element + And I should see an "[id='edit-contact-country']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select.form-element.form-element--type-select.form-element--api-select.form-control" element + + # Link (link) + And I should see an "[name='link[title]']" element + And I should see an "[id='edit-link-title']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='link[url]']" element + And I should see an "[id='edit-link-url']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-url.form-element.form-element--type-url.form-element--api-url.form-control" element + + # Name (name) + And I should see an "[name='name[title][select]']" element + And I should see an "[id='edit-name-title-select']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-element.form-element--type-select.form-element--api-select.form-control" element + + And I should see an "[name='name[first]']" element + And I should see an "[id='edit-name-first']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='name[middle]']" element + And I should see an "[id='edit-name-middle']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='name[last]']" element + And I should see an "[id='edit-name-last']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='name[suffix]']" element + And I should see an "[id='edit-name-suffix']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + And I should see an "[name='name[degree]']" element + And I should see an "[id='edit-name-degree']" element + And I should see an ".ct-textfield.ct-theme-light.ct-field__control.form-text.form-element.form-element--type-textfield.form-element--api-textfield.form-control" element + + # Telephone advanced (telephone_advanced) + And I should see an "[name='telephone_advanced[type]']" element + And I should see an "[id='edit-telephone-advanced-type']" element + And I should see an ".ct-select.ct-theme-light.ct-field__control.form-select.form-element.form-element--type-select.form-element--api-select.form-control" element + + And I should see an "[name='telephone_advanced[phone]']" element + And I should see an "[id='edit-telephone-advanced-phone']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.js-webform-telephone-international.webform-webform-telephone-international.form-tel.form-element.form-element--type-tel.form-element--api-tel.form-control" element + + And I should see an "[name='telephone_advanced[ext]']" element + And I should see an "[id='edit-telephone-advanced-ext']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-number.form-element.form-element--type-number.form-element--api-number.form-control" element + # Audio file + And I should see an "[name='files[audio_file]']" element + And I should see an "[id='edit-audio-file-upload']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular.js-hide.button.js-form-submit.form-submit" element + + # Document file + And I should see an "[name='files[document_file]']" element + And I should see an "[id='edit-document-file-upload']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular.js-hide.button.js-form-submit.form-submit" element + + # File + And I should see an "[name='files[file]']" element + And I should see an "[id='edit-file-upload']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular.js-hide.button.js-form-submit.form-submit" element + + # Image file + And I should see an "[name='files[image_file]']" element + And I should see an "[id='edit-image-file-upload']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular.js-hide.button.js-form-submit.form-submit" element + + # Video file + And I should see an "[name='files[video_file]']" element + And I should see an "[id='edit-video-file-upload']" element + And I should see an ".ct-button.ct-theme-light.ct-button--primary.ct-button--submit.ct-button--regular.js-hide.button.js-form-submit.form-submit" element + # Date (date) + And I should see an "[name='date']" element + And I should see an "[id='edit-date']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-date" element + + # Date/time (date_time) + And I should see an "[name='date_time[date]']" element + And I should see an "[id='edit-date-time-date']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-date" element + And I should see an "[name='date_time[time]']" element + And I should see an "[id='edit-date-time-time']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control.form-time" element + + # Entity autocomplete (entity_autocomplete) + And I should see an "[name='entity_autocomplete']" element + And I should see an "[id='edit-entity-autocomplete']" element + And I should see an ".ct-input.ct-theme-light.ct-field__control" element + And I should see an ".form-autocomplete.form-text.form-element.form-element--type-entity_autocomplete.form-element--api-entity_autocomplete.form-control" element diff --git a/tests/behat/features/paragraph.civictheme_promo.render.feature b/tests/behat/features/paragraph.civictheme_promo.render.feature index efec561890..24df741317 100644 --- a/tests/behat/features/paragraph.civictheme_promo.render.feature +++ b/tests/behat/features/paragraph.civictheme_promo.render.feature @@ -11,12 +11,12 @@ Feature: Promo render Scenario: CivicTheme page content type page can be viewed by anonymous with Promo light with vertical spacing without background Given I am an anonymous user And "field_c_n_components" in "civictheme_page" "node" with "title" of "[TEST] Page Promo test 1" has "civictheme_promo" paragraph: - | field_c_p_title | [TEST] Promo title | - | field_c_p_theme | light | - | field_c_p_content:value | [TEST] Content text | - | field_c_p_content:format | civictheme_rich_text | - | field_c_p_vertical_spacing | both | - | field_c_p_link | 0: [TEST] link 1 - 1: https://example.com/link1 | + | field_c_p_title | [TEST] Promo title | + | field_c_p_theme | light | + | field_c_p_content:value | [TEST] Content text | + | field_c_p_content:format | civictheme_rich_text | + | field_c_p_vertical_spacing | both | + | field_c_p_link | 0: [TEST] link 1 PromoTest - 1: https://example.com/link1 | When I visit "civictheme_page" "[TEST] Page Promo test 1" And I should see an ".ct-promo" element @@ -28,19 +28,20 @@ Feature: Promo render And I should see an ".ct-promo__title" element And I should see an ".ct-promo__content" element And the response should contain "[TEST] link 1" + And the response should contain "PromoTest" And the response should contain "https://example.com/link1" @api Scenario: CivicTheme page content type page can be viewed by anonymous with promo dark without vertical space with background Given I am an anonymous user And "field_c_n_components" in "civictheme_page" "node" with "title" of "[TEST] Page Promo test 2" has "civictheme_promo" paragraph: - | field_c_p_title | [TEST] Promo title | - | field_c_p_theme | dark | - | field_c_p_content:value | [TEST] Content text | - | field_c_p_content:format | civictheme_rich_text | - | field_c_p_vertical_spacing | 0 | - | field_c_p_background | 1 | - | field_c_p_link | 0: [TEST] link 2 - 1: https://example.com/link2 | + | field_c_p_title | [TEST] Promo title | + | field_c_p_theme | dark | + | field_c_p_content:value | [TEST] Content text | + | field_c_p_content:format | civictheme_rich_text | + | field_c_p_vertical_spacing | 0 | + | field_c_p_background | 1 | + | field_c_p_link | 0: [TEST] link 2 PromoTest - 1: https://example.com/link2 | When I visit "civictheme_page" "[TEST] Page Promo test 2" And I should see an ".ct-promo" element @@ -53,4 +54,5 @@ Feature: Promo render And I should see an ".ct-promo__title" element And I should see an ".ct-promo__content" element And the response should contain "[TEST] link 2" + And the response should contain "PromoTest" And the response should contain "https://example.com/link2" diff --git a/tests/behat/features/styleguide.field.checkboxes.feature b/tests/behat/features/styleguide.field.checkboxes.feature index ddf37f17d6..2b8f647c4b 100644 --- a/tests/behat/features/styleguide.field.checkboxes.feature +++ b/tests/behat/features/styleguide.field.checkboxes.feature @@ -19,7 +19,7 @@ Feature: Field, Checkboxes And I should see a ".ct-field.js-form-item-test-checkboxes-1 input[id='edit-test-checkboxes-1-option-3']" element And I should see a ".ct-field.js-form-item-test-checkboxes-1 input[id='edit-test-checkboxes-1-option-4']" element And I should see a ".ct-field.js-form-item-test-checkboxes-1 input[id='edit-test-checkboxes-1-option-5']" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-1 input[required]" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-1.ct-field--required input" element And I should not see a ".ct-field.js-form-item-test-checkboxes-1 input[disabled]" element # Validate: Checkboxes, Title visible, default value, no description, no error, required, with attributes @@ -49,8 +49,8 @@ Feature: Field, Checkboxes And I should see a ".ct-field.js-form-item-test-checkboxes-2 input[id='edit-test-checkboxes-2-option-5']" element And I should see a ".ct-field.js-form-item-test-checkboxes-2 input[id='edit-test-checkboxes-2-option-5'][data-test='test-attribute-value']" element And I should see a ".ct-field.js-form-item-test-checkboxes-2 input[id='edit-test-checkboxes-2-option-5'].test-class" element - And I should see a ".ct-field.js-form-item-test-checkboxes-2 input[required]" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-2 input[disabled]" element + And I should see a ".ct-field.js-form-item-test-checkboxes-2.ct-field--required input" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-2.ct-field--disabled input[disabled]" element # Validate: Checkboxes, Title visually hidden, default value, description, no error And I should see an ".ct-field.js-form-item-test-checkboxes-3" element @@ -64,8 +64,8 @@ Feature: Field, Checkboxes And I should see a ".ct-field.js-form-item-test-checkboxes-3 input[id='edit-test-checkboxes-3-option-3']" element And I should see a ".ct-field.js-form-item-test-checkboxes-3 input[id='edit-test-checkboxes-3-option-4']" element And I should see a ".ct-field.js-form-item-test-checkboxes-3 input[id='edit-test-checkboxes-3-option-5']" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-3 input[required]" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-3 input[disabled]" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-3.ct-field--required input" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-3.ct-field--disabled input[disabled]" element # Validate: Checkboxes, Title hidden, no default value, description, required, error And I should see an ".ct-field.js-form-item-test-checkboxes-4" element @@ -78,8 +78,8 @@ Feature: Field, Checkboxes And I should see a ".ct-field.js-form-item-test-checkboxes-4 input[id='edit-test-checkboxes-4-option-3']" element And I should see a ".ct-field.js-form-item-test-checkboxes-4 input[id='edit-test-checkboxes-4-option-4']" element And I should see a ".ct-field.js-form-item-test-checkboxes-4 input[id='edit-test-checkboxes-4-option-5']" element - And I should see a ".ct-field.js-form-item-test-checkboxes-4 input[required]" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-4 input[disabled]" element + And I should see a ".ct-field.js-form-item-test-checkboxes-4.ct-field--required input" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-4.ct-field--disabled input[disabled]" element And I should see a ".ct-field.js-form-item-test-checkboxes-4 .ct-field-message:contains('This is an error message')" element # Validate: Checkboxes, Title visible, default value, no description, disabled @@ -94,5 +94,5 @@ Feature: Field, Checkboxes And I should see a ".ct-field.js-form-item-test-checkboxes-5 input[id='edit-test-checkboxes-5-option-3']" element And I should see a ".ct-field.js-form-item-test-checkboxes-5 input[id='edit-test-checkboxes-5-option-4']" element And I should see a ".ct-field.js-form-item-test-checkboxes-5 input[id='edit-test-checkboxes-5-option-5']" element - And I should not see a ".ct-field.js-form-item-test-checkboxes-5 input[required]" element - And I should see a ".ct-field.js-form-item-test-checkboxes-5 input[disabled]" element + And I should not see a ".ct-field.js-form-item-test-checkboxes-5.ct-field--required input" element + And I should see a ".ct-field.js-form-item-test-checkboxes-5.ct-field--disabled input[disabled]" element diff --git a/tests/phpunit/CircleCiConfigTest.php b/tests/phpunit/CircleCiConfigTest.php index 6afd2ed9be..9a8f11e54f 100644 --- a/tests/phpunit/CircleCiConfigTest.php +++ b/tests/phpunit/CircleCiConfigTest.php @@ -2,8 +2,8 @@ declare(strict_types=1); -use Drupal\Core\Serialization\Yaml; use PHPUnit\Framework\TestCase; +use Symfony\Component\Yaml\Yaml; /** * Class CircleCiConfigTest. @@ -35,7 +35,7 @@ protected function setUp(): void { if (!$file) { throw new \RuntimeException('Unable to read CircleCI config file.'); } - $this->config = Yaml::decode($file); + $this->config = Yaml::parse($file); } /** diff --git a/tests/phpunit/ScriptUnitTestBase.php b/tests/phpunit/ScriptUnitTestBase.php index 24373e0ada..1bb585bfe8 100644 --- a/tests/phpunit/ScriptUnitTestBase.php +++ b/tests/phpunit/ScriptUnitTestBase.php @@ -104,7 +104,7 @@ protected function fixtureFile(string $filename): string { /** * Path to a temporary file. */ - protected function toTmpPath(string $filename, string $prefix = NULL): string { + protected function toTmpPath(string $filename, ?string $prefix = NULL): string { return $prefix ? $this->tmpDir . DIRECTORY_SEPARATOR . $prefix . DIRECTORY_SEPARATOR . $filename : $this->tmpDir . DIRECTORY_SEPARATOR . $filename; } @@ -122,7 +122,7 @@ protected function printTempDir(): void { /** * Create a random unique temporary directory. */ - protected function tempdir(string $dir = NULL, string $prefix = 'tmp_', int $mode = 0700, int $max_attempts = 1000): string { + protected function tempdir(?string $dir = NULL, string $prefix = 'tmp_', int $mode = 0700, int $max_attempts = 1000): string { if (is_null($dir)) { $dir = sys_get_temp_dir(); } @@ -180,7 +180,7 @@ protected function arrayReplaceValue(array $array, callable|array $cb): array { * - key: (string) Source path (the key from $file_structure). * - value: (string) Path to a fixture file to use. */ - protected function createTmpFilesFromFixtures(array $fixture_map, string $prefix = NULL): array { + protected function createTmpFilesFromFixtures(array $fixture_map, ?string $prefix = NULL): array { $files = []; foreach ($fixture_map as $path => $fixture_file) { $tmp_path = $this->toTmpPath($path, $prefix); @@ -229,7 +229,7 @@ protected function createTmpFilesFromFixtures(array $fixture_map, string $prefix * * @SuppressWarnings(PHPMD.ElseExpression) */ - protected function replaceFixturePaths(array $fixture_map, string $prefix = NULL): array { + protected function replaceFixturePaths(array $fixture_map, ?string $prefix = NULL): array { foreach ($fixture_map as $k => $v) { if (is_array($v)) { $fixture_map[$k] = $this->replaceFixturePaths($v, $prefix); diff --git a/web/modules/custom/civictheme_content/civictheme_content.install b/web/modules/custom/civictheme_content/civictheme_content.install index 7034275144..e4aae1d1f2 100644 --- a/web/modules/custom/civictheme_content/civictheme_content.install +++ b/web/modules/custom/civictheme_content/civictheme_content.install @@ -19,9 +19,9 @@ declare(strict_types=1); +use Drupal\Core\Installer\Exception\InstallerException; use Drupal\civictheme\CivicthemeConfigImporter; use Drupal\civictheme_content\Helper; -use Drupal\Core\Installer\Exception\InstallerException; /** * Implements hook_install(). diff --git a/web/modules/custom/civictheme_content/modules/civictheme_content_corporate/civictheme_content_corporate.post_update.php b/web/modules/custom/civictheme_content/modules/civictheme_content_corporate/civictheme_content_corporate.post_update.php index 96d4ee42dc..6f7ad4f059 100644 --- a/web/modules/custom/civictheme_content/modules/civictheme_content_corporate/civictheme_content_corporate.post_update.php +++ b/web/modules/custom/civictheme_content/modules/civictheme_content_corporate/civictheme_content_corporate.post_update.php @@ -7,8 +7,8 @@ declare(strict_types=1); -use Drupal\civictheme_content\Helper; use Drupal\Core\Utility\UpdateException; +use Drupal\civictheme_content\Helper; /** * Common updates. diff --git a/web/modules/custom/civictheme_content/modules/civictheme_content_default/civictheme_content_default.post_update.php b/web/modules/custom/civictheme_content/modules/civictheme_content_default/civictheme_content_default.post_update.php index b2c19088da..5ee4d8b4c1 100644 --- a/web/modules/custom/civictheme_content/modules/civictheme_content_default/civictheme_content_default.post_update.php +++ b/web/modules/custom/civictheme_content/modules/civictheme_content_default/civictheme_content_default.post_update.php @@ -7,8 +7,8 @@ declare(strict_types=1); -use Drupal\civictheme_content\Helper; use Drupal\Core\Utility\UpdateException; +use Drupal\civictheme_content\Helper; /** * Common updates. diff --git a/web/modules/custom/civictheme_content/modules/civictheme_content_government/civictheme_content_government.post_update.php b/web/modules/custom/civictheme_content/modules/civictheme_content_government/civictheme_content_government.post_update.php index 262253b56b..0170e614e6 100644 --- a/web/modules/custom/civictheme_content/modules/civictheme_content_government/civictheme_content_government.post_update.php +++ b/web/modules/custom/civictheme_content/modules/civictheme_content_government/civictheme_content_government.post_update.php @@ -7,8 +7,8 @@ declare(strict_types=1); -use Drupal\civictheme_content\Helper; use Drupal\Core\Utility\UpdateException; +use Drupal\civictheme_content\Helper; /** * Common updates. diff --git a/web/modules/custom/civictheme_content/modules/civictheme_content_highereducation/civictheme_content_highereducation.post_update.php b/web/modules/custom/civictheme_content/modules/civictheme_content_highereducation/civictheme_content_highereducation.post_update.php index e6b30836ec..ee96650405 100644 --- a/web/modules/custom/civictheme_content/modules/civictheme_content_highereducation/civictheme_content_highereducation.post_update.php +++ b/web/modules/custom/civictheme_content/modules/civictheme_content_highereducation/civictheme_content_highereducation.post_update.php @@ -7,8 +7,8 @@ declare(strict_types=1); -use Drupal\civictheme_content\Helper; use Drupal\Core\Utility\UpdateException; +use Drupal\civictheme_content\Helper; /** * Common updates. diff --git a/web/modules/custom/civictheme_content/src/Helper.php b/web/modules/custom/civictheme_content/src/Helper.php index e64a4f3696..ef6b313b11 100644 --- a/web/modules/custom/civictheme_content/src/Helper.php +++ b/web/modules/custom/civictheme_content/src/Helper.php @@ -57,7 +57,7 @@ public static function log(string|\Stringable $message): void { * * @SuppressWarnings(PHPMD.StaticAccess) */ - public static function loadNodeByTitle(string $title, string $type = NULL): ?Node { + public static function loadNodeByTitle(string $title, ?string $type = NULL): ?Node { $query = \Drupal::entityQuery('node')->accessCheck(FALSE); $query->condition('title', $title); if ($type) { diff --git a/web/modules/custom/civictheme_dev/civictheme_dev.module b/web/modules/custom/civictheme_dev/civictheme_dev.module index 95a30f7cde..e7575d996d 100644 --- a/web/modules/custom/civictheme_dev/civictheme_dev.module +++ b/web/modules/custom/civictheme_dev/civictheme_dev.module @@ -7,9 +7,9 @@ declare(strict_types=1); +use Drupal\Core\Site\Settings; use Drupal\civictheme\CivicthemeConstants; use Drupal\civictheme\CivicthemeVersionManager; -use Drupal\Core\Site\Settings; use Drupal\views\ViewExecutable; require_once __DIR__ . '/styleguide.inc'; @@ -39,10 +39,6 @@ function civictheme_dev_preprocess_html(array &$variables): void { * Implements hook_styleguide_alter(). */ function civictheme_dev_styleguide_alter(array &$items): void { - // Remove password_confirm field from the form as CivicTheme does not support - // it. - unset($items['form']['content']['password_confirm']); - _civictheme_dev_styleguide__form_test__textfield($items); _civictheme_dev_styleguide__form_test__textarea($items); _civictheme_dev_styleguide__form_test__select($items); diff --git a/web/modules/custom/civictheme_dev/civictheme_dev.post_update.php b/web/modules/custom/civictheme_dev/civictheme_dev.post_update.php index e2cdc255a3..814e33ce54 100644 --- a/web/modules/custom/civictheme_dev/civictheme_dev.post_update.php +++ b/web/modules/custom/civictheme_dev/civictheme_dev.post_update.php @@ -7,8 +7,8 @@ declare(strict_types=1); -use Drupal\block\Entity\Block; use Drupal\Core\Utility\UpdateException; +use Drupal\block\Entity\Block; use Drupal\redirect\Entity\Redirect; use Drupal\user\Entity\User; diff --git a/web/modules/custom/civictheme_dev/civictheme_dev.routing.yml b/web/modules/custom/civictheme_dev/civictheme_dev.routing.yml new file mode 100644 index 0000000000..3581f5c99e --- /dev/null +++ b/web/modules/custom/civictheme_dev/civictheme_dev.routing.yml @@ -0,0 +1,14 @@ +civictheme_dev.styleguide_form: + path: '/civictheme-core-form-elements' + defaults: + _form: 'Drupal\civictheme_dev\Form\CoreFormElementsForm' + _title: 'CivicTheme Core Form Elements Form' + requirements: + _permission: 'access content' +civictheme_dev.admin_styleguide_form: + path: '/admin/structure/civictheme-core-form-elements' + defaults: + _form: 'Drupal\civictheme_dev\Form\CoreFormElementsForm' + _title: 'Core Form Elements Form (Admin Theme)' + requirements: + _permission: 'view the administration theme' diff --git a/web/modules/custom/civictheme_dev/config/install/webform.webform.civictheme_test_webform_fields.yml b/web/modules/custom/civictheme_dev/config/install/webform.webform.civictheme_test_webform_fields.yml new file mode 100644 index 0000000000..037263cca6 --- /dev/null +++ b/web/modules/custom/civictheme_dev/config/install/webform.webform.civictheme_test_webform_fields.yml @@ -0,0 +1,383 @@ +langcode: en +status: open +dependencies: { } +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: civictheme_test_webform_fields +title: 'Civictheme Test Webform - Fields' +description: '

This form will be used to test the available webform fields, including conditional form elements.

' +categories: { } +elements: |- + basic_elements_container: + '#type': container + checkbox: + '#type': checkbox + '#title': Checkbox + hidden: + '#type': hidden + '#title': Hidden + text_field: + '#type': textfield + '#title': 'Text field' + conditional_container: + '#type': container + select_to_display_textarea: + '#type': radios + '#title': 'Select to display textarea' + '#options': + 'Display textarea': 'Display textarea' + 'Do not display textarea': 'Do not display textarea' + textarea: + '#type': textarea + '#title': Textarea + '#states': + visible: + ':input[name="checkbox_visible_text_field_1"]': + checked: true + checkbox_visible_text_field_1: + '#type': checkbox + '#title': 'Check to display textfield' + text_field_1: + '#type': textfield + '#title': 'Text field 1' + '#states': + visible: + ':input[name="checkbox_visible_text_field_1"]': + checked: true + advanced_elements_container: + '#type': container + autocomplete: + '#type': webform_autocomplete + '#title': Autocomplete + '#autocomplete_items': gender + color: + '#type': color + '#title': Color + email: + '#type': email + '#title': Email + email_confirm: + '#type': webform_email_confirm + '#title': 'Email confirm' + '#confirm__title': 'Email confirm title - Test' + '#confirm__description': '

Email confirm description - test

' + '#confirm__placeholder': 'Email confirm placeholder- Test' + email_multiple: + '#type': webform_email_multiple + '#title': 'Email multiple' + number: + '#type': number + '#title': Number + number_max_10_min_4: + '#type': number + '#title': 'Number - Max 10 - Min 4' + '#min': 4 + '#max': 10 + range: + '#type': range + '#title': Range + range_min_10_max_100_steps_10: + '#type': range + '#title': 'Range Min 10 Max 100 Steps 10' + '#min': 10 + '#step': 10 + rating: + '#type': webform_rating + '#title': Rating + telephone: + '#type': tel + '#title': Telephone + terms_of_service: + '#type': webform_terms_of_service + '#terms_title': 'Terms of service' + '#terms_content': '

Terms of service test content

' + url: + '#type': url + '#title': URL + composite_elements_container: + '#type': container + address: + '#type': webform_address + '#title': Address + contact: + '#type': webform_contact + '#title': Contact + link: + '#type': webform_link + '#title': Link + name: + '#type': webform_name + '#title': Name + telephone_advanced: + '#type': webform_telephone + '#title': 'Telephone advanced' + markup_container: + '#type': container + advanced_html_text: + '#type': processed_text + '#text': "

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

" + '#format': civictheme_rich_text + label: + '#type': label + '#title': Label + more: + '#type': webform_more + file_uploads_container: + '#type': container + audio_file: + '#type': webform_audio_file + '#title': 'Audio file' + document_file: + '#type': webform_document_file + '#title': 'Document file' + file: + '#type': managed_file + '#title': File + image_file: + '#type': webform_image_file + '#title': 'Image file' + video_file: + '#type': webform_video_file + '#title': 'Video file' + options_element_container: + '#type': container + checkboxes: + '#type': checkboxes + '#title': Checkboxes + '#options': + 'Test Option 1': 'Test Option 1' + 'Test Option 2': 'Test Option 2' + 'Test Option 3': 'Test Option 3' + '#options_randomize': true + '#options_all': true + '#options_none': true + checkboxes_other: + '#type': webform_checkboxes_other + '#title': 'Checkboxes other' + '#options': education + '#options_randomize': true + radios: + '#type': radios + '#title': Radios + '#options': marital_status + radios_other: + '#type': webform_radios_other + '#title': 'Radios other' + '#options': phone_types + select: + '#type': select + '#title': Select + '#options': country_names + select_other: + '#type': webform_select_other + '#title': 'Select other' + '#options': ethnicity + datetime_elements_container: + '#type': container + date: + '#type': date + '#title': Date + date_time: + '#type': datetime + '#title': Date/time + entity_reference_container: + '#type': container + entity_autocomplete: + '#type': entity_autocomplete + '#title': 'Entity autocomplete' + '#target_type': node + '#selection_handler': 'default:node' + '#selection_settings': + target_bundles: + civictheme_alert: civictheme_alert + civictheme_event: civictheme_event + civictheme_page: civictheme_page +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: both + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: true + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: false + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 0 + preview_label: '' + preview_title: '' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: none + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: page + confirmation_url: '' + confirmation_title: '' + confirmation_message: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: none + purge_days: null + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: { } +variants: { } diff --git a/web/modules/custom/civictheme_dev/src/EventSubscriber/CivicthemeDevConfigDevelSubscriber.php b/web/modules/custom/civictheme_dev/src/EventSubscriber/CivicthemeDevConfigDevelSubscriber.php index e748cf16e1..fc1d8af8e2 100644 --- a/web/modules/custom/civictheme_dev/src/EventSubscriber/CivicthemeDevConfigDevelSubscriber.php +++ b/web/modules/custom/civictheme_dev/src/EventSubscriber/CivicthemeDevConfigDevelSubscriber.php @@ -4,12 +4,12 @@ namespace Drupal\civictheme_dev\EventSubscriber; +use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\ConfigManagerInterface; use Drupal\config_devel\Event\ConfigDevelEvents; use Drupal\config_devel\Event\ConfigDevelSaveEvent; use Drupal\config_devel\EventSubscriber\ConfigDevelSubscriberBase; use Drupal\config_filter\Plugin\ConfigFilterPluginManager; -use Drupal\Core\Config\ConfigFactoryInterface; -use Drupal\Core\Config\ConfigManagerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** diff --git a/web/modules/custom/civictheme_dev/src/Form/CoreFormElementsForm.php b/web/modules/custom/civictheme_dev/src/Form/CoreFormElementsForm.php new file mode 100644 index 0000000000..055b9bd54e --- /dev/null +++ b/web/modules/custom/civictheme_dev/src/Form/CoreFormElementsForm.php @@ -0,0 +1,311 @@ +get('plugin.manager.element_info'), + $container->get('entity_type.manager'), + $container->get('theme_handler'), + ); + } + + /** + * {@inheritDoc} + */ + public function getFormId(): string { + return 'styleguide_form'; + } + + /** + * {@inheritDoc} + * + * @phpstan-ignore-next-line + * @SuppressWarnings(PHPMD.StaticAccess) + */ + public function buildForm(array $form, FormStateInterface $form_state): array { + // Getting form element plugin manager. + $plugin_manager = $this->elementInfoManager; + + // Getting all defaults form element types. + $element_types = $plugin_manager->getDefinitions(); + $element_types = array_filter($element_types, static function (array $element) : bool { + $provider_list = [ + 'core', + 'linkit', + ]; + return in_array($element['provider'], $provider_list); + }); + ksort($element_types); + $form_element_groups = array_chunk($element_types, 5); + foreach ($form_element_groups as $key => $form_element_group) { + $group_id = 'form_element_group_' . $key; + $form[$group_id] = [ + '#type' => 'container', + '#civictheme_form_element' => TRUE, + ]; + // Creating form fields for each element. + foreach ($form_element_group as $form_element_type) { + $form_element_id = $form_element_type['id'] ?? NULL; + if ($form_element_id === NULL) { + continue; + } + $element = $plugin_manager->createInstance($form_element_id); + if (!$element instanceof FormElementBase) { + continue; + } + $form[$group_id][$form_element_id] = $this->createFormElement($form_element_id, $element); + } + } + + // Test non-form element html elements in form. + // Add more types as we support more non-form elements in forms. + // @see _civictheme_form_alter__non_form_elements. + $form['non_form_elements'] = [ + '#type' => 'container', + ]; + $form['non_form_elements']['markup'] = [ + '#type' => 'markup', + '#markup' => '

Markup within a form

Test content 1

  • List Item 1
  • List Item 2
  • List Item 3
', + ]; + $form['non_form_elements']['link'] = [ + '#type' => 'link', + '#title' => $this->t('Examples'), + '#url' => Url::fromUri('https://www.drupal.org/docs/8/api/form-api/examples'), + ]; + + return $form; + } + + /** + * Create form element. + * + * @param string $id + * Element id. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Actual element. + * + * @return array + * Form element. + * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + */ + protected function createFormElement(string $id, FormElementBase $element): array { + $form_element = [ + '#type' => $id, + '#title' => ucwords(str_replace('_', ' ', $id)) . ' (' . $id . ')', + '#description' => $this->t('Test of @id element.', ['@id' => $id]), + ]; + + switch ($id) { + case 'entity_autocomplete': + $form_element = $this->createEntityAutoCompleteFormElement($form_element, $element); + break; + + case 'radios': + case 'checkboxes': + $form_element = $this->createOptionsFormElement($form_element, $element); + break; + + case 'tableselect': + case 'table': + $form_element = $this->createTableFormElement($form_element, $element); + break; + + case 'image_button': + $form_element = $this->createImageButton($form_element, $element); + break; + + case 'button': + case 'submit': + $form_element = $this->createButton($form_element, $element); + break; + + case 'machine_name': + $form_element += [ + '#default_value' => '', + '#machine_name' => [ + 'exists' => function ($value) : bool { + return $this->entityTypeManager->getStorage('node_type')->load($value) !== NULL; + }, + ], + '#description' => $this->t("A unique machine-readable name. Can only contain lowercase letters, numbers, and underscores."), + ]; + break; + } + + return $form_element; + } + + /** + * {@inheritDoc} + * + * @phpstan-ignore-next-line + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + } + + /** + * Generates entity autocomplete form element. + * + * @param array $form_element + * Form element. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Form element. + * + * @return array + * Form element. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + protected function createEntityAutoCompleteFormElement(array $form_element, FormElementBase $element): array { + $form_element['#type'] = 'entity_autocomplete'; + $form_element['#target_type'] = 'node'; + $form_element['#selection_settings'] = [ + 'target_bundles' => ['civictheme_page'], + ]; + + return $form_element; + } + + /** + * Generates options-style form elements. + * + * @param array $form_element + * Form element. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Form element. + * + * @return array + * Form element. + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + protected function createOptionsFormElement(array $form_element, FormElementBase $element): array { + $form_element['#options'] = [ + 'option1' => 'Option 1', + 'option2' => 'Option 2', + 'option3' => 'Option 3', + ]; + + return $form_element; + } + + /** + * Create table form element helper. + * + * @param array $form_element + * Form element. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Form element. + * + * @return array + * Form element. + * + * @SuppressWarnings(PHPMD.ElseExpression) + */ + protected function createTableFormElement(array $form_element, FormElementBase $element): array { + $form_element['#header'] = ['Header 1', 'Header 2', 'Header 3']; + if ($element->getPluginId() === 'tableselect') { + $form_element['#options'] = [ + 'row1' => ['Row 1', 'Row 1', 'Row 1'], + 'row2' => ['Row 2', 'Row 2', 'Row 2'], + 'row3' => ['Row 3', 'Row 3', 'Row 3'], + 'row4' => ['Row 4', 'Row 4', 'Row 4'], + ]; + } + else { + $form_element['#rows'] = [ + ['Header 1' => 'Row 1', 'Header 2' => 'Row 1', 'Header 3' => 'Row 1'], + ['Header 1' => 'Row 1', 'Header 2' => 'Row 1', 'Header 3' => 'Row 1'], + ['Header 1' => 'Row 1', 'Header 2' => 'Row 1', 'Header 3' => 'Row 1'], + ['Header 1' => 'Row 1', 'Header 2' => 'Row 1', 'Header 3' => 'Row 1'], + ]; + } + + return $form_element; + } + + /** + * Create image button helper. + * + * @param array $form_element + * Form element. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Form element. + * + * @return array + * Form element. + * + * @phpstan-ignore-next-line + */ + protected function createImageButton(array $form_element, FormElementBase $element): array { + $theme_path = $this->themeHandler->getTheme('civictheme')->getPath(); + $icon_path = '/' . $theme_path . '/assets/icons/download.svg'; + $form_element['#src'] = $icon_path; + + return $this->createButton($form_element, $element); + } + + /** + * Create button helper. + * + * @param array $form_element + * Form element. + * @param \Drupal\Core\Render\Element\FormElementBase $element + * Form element. + * + * @return array + * Form element. + * + * @phpstan-ignore-next-line + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + protected function createButton(array $form_element, FormElementBase $element): array { + $form_element['#value'] = $form_element['#title']; + + return [ + [ + '#type' => 'html_tag', + '#tag' => 'h6', + '#value' => $form_element['#title'], + ], + $form_element, + ]; + } + +} diff --git a/web/modules/custom/cs_generated_content/src/CsGeneratedContentCivicthemeTrait.php b/web/modules/custom/cs_generated_content/src/CsGeneratedContentCivicthemeTrait.php index c13bb3fc79..b685ce0617 100644 --- a/web/modules/custom/cs_generated_content/src/CsGeneratedContentCivicthemeTrait.php +++ b/web/modules/custom/cs_generated_content/src/CsGeneratedContentCivicthemeTrait.php @@ -215,7 +215,7 @@ public static function civicthemeSizeLarge(): string { * @return array * Array of topics. */ - public static function civicthemeStaticTopics(int $count = NULL): array { + public static function civicthemeStaticTopics(?int $count = NULL): array { return static::staticTerms('civictheme_topics', $count); } @@ -257,7 +257,7 @@ public static function civicThemeExposeMultipleFilters(): array { * @return array * Array of site sections. */ - public static function civicthemeStaticSiteSections(int $count = NULL): array { + public static function civicthemeStaticSiteSections(?int $count = NULL): array { return static::staticTerms('civictheme_site_sections', $count); } diff --git a/web/modules/custom/cs_generated_content/src/CsGeneratedContentHelper.php b/web/modules/custom/cs_generated_content/src/CsGeneratedContentHelper.php index 758d1d5a87..d98fd2ba54 100644 --- a/web/modules/custom/cs_generated_content/src/CsGeneratedContentHelper.php +++ b/web/modules/custom/cs_generated_content/src/CsGeneratedContentHelper.php @@ -39,7 +39,7 @@ public static function randomRealWebform(): ?EntityInterface { * @return string * URL with a path. */ - public static function staticUrl(string $domain = NULL): string { + public static function staticUrl(?string $domain = NULL): string { $parts = []; $parts[] = 'https://'; $parts[] = $domain ? rtrim($domain, '/') : 'www.example.com'; diff --git a/web/sites/default/default.services.yml b/web/sites/default/default.services.yml index c4b964fc29..dacb3f7e9e 100644 --- a/web/sites/default/default.services.yml +++ b/web/sites/default/default.services.yml @@ -1,4 +1,8 @@ parameters: + # Toggles the super user access policy. If your website has at least one user + # with the Administrator role, it is advised to set this to false. This allows + # you to make user 1 a regular user, strengthening the security of your site. + security.enable_super_user: true session.storage.options: # Default ini options for sessions. # @@ -60,6 +64,11 @@ parameters: # \Drupal\Core\Session\SessionConfiguration::__construct() # @default 6 sid_bits_per_character: 6 + # By default, Drupal generates a session cookie name based on the full + # domain name. Set the name_suffix to a short random string to ensure this + # session cookie name is unique on different installations on the same + # domain and path (for example, when migrating from Drupal 7). + name_suffix: '' twig.config: # Twig debugging: # diff --git a/web/sites/default/default.settings.php b/web/sites/default/default.settings.php index 8819d64317..264597b163 100644 --- a/web/sites/default/default.settings.php +++ b/web/sites/default/default.settings.php @@ -77,7 +77,7 @@ * * @code * $databases['default']['default'] = [ - * 'database' => 'databasename', + * 'database' => 'database_name', * 'username' => 'sql_username', * 'password' => 'sql_password', * 'host' => 'localhost', @@ -193,7 +193,7 @@ * @code * $databases['default']['default'] = [ * 'driver' => 'pgsql', - * 'database' => 'databasename', + * 'database' => 'database_name', * 'username' => 'sql_username', * 'password' => 'sql_password', * 'host' => 'localhost', @@ -215,7 +215,7 @@ * 'driver' => 'my_driver', * 'namespace' => 'Drupal\my_module\Driver\Database\my_driver', * 'autoload' => 'modules/my_module/src/Driver/Database/my_driver/', - * 'database' => 'databasename', + * 'database' => 'database_name', * 'username' => 'sql_username', * 'password' => 'sql_password', * 'host' => 'localhost', @@ -230,7 +230,7 @@ * 'driver' => 'my_driver', * 'namespace' => 'Drupal\my_module\Driver\Database\my_driver', * 'autoload' => 'modules/my_module/src/Driver/Database/my_driver/', - * 'database' => 'databasename', + * 'database' => 'database_name', * 'username' => 'sql_username', * 'password' => 'sql_password', * 'host' => 'localhost', @@ -355,14 +355,13 @@ * security, or encryption benefits. In an environment where Drupal * is behind a reverse proxy, the real IP address of the client should * be determined such that the correct client IP address is available - * to Drupal's logging, statistics, and access management systems. In - * the most simple scenario, the proxy server will add an - * X-Forwarded-For header to the request that contains the client IP - * address. However, HTTP headers are vulnerable to spoofing, where a - * malicious client could bypass restrictions by setting the - * X-Forwarded-For header directly. Therefore, Drupal's proxy - * configuration requires the IP addresses of all remote proxies to be - * specified in $settings['reverse_proxy_addresses'] to work correctly. + * to Drupal's logging and access management systems. In the most simple + * scenario, the proxy server will add an X-Forwarded-For header to the request + * that contains the client IP address. However, HTTP headers are vulnerable to + * spoofing, where a malicious client could bypass restrictions by setting the + * X-Forwarded-For header directly. Therefore, Drupal's proxy configuration + * requires the IP addresses of all remote proxies to be specified in + * $settings['reverse_proxy_addresses'] to work correctly. * * Enable this setting to get Drupal to determine the client IP from the * X-Forwarded-For header. If you are unsure about this setting, do not have a @@ -808,6 +807,16 @@ */ $settings['entity_update_backup'] = TRUE; +/** + * State caching. + * + * State caching uses the cache collector pattern to cache all requested keys + * from the state API in a single cache entry, which can greatly reduce the + * amount of database queries. However, some sites may use state with a + * lot of dynamic keys which could result in a very large cache. + */ +$settings['state_cache'] = TRUE; + /** * Node migration type. * diff --git a/web/themes/contrib/civictheme/.storybook/preview.js b/web/themes/contrib/civictheme/.storybook/preview.js index 963867a5fc..8c3f4a1ea4 100644 --- a/web/themes/contrib/civictheme/.storybook/preview.js +++ b/web/themes/contrib/civictheme/.storybook/preview.js @@ -12,7 +12,7 @@ import { decoratorDocs } from '../components/00-base/storybook/storybook.docs.ut // Call attaching of behaviours. addDecorator((storyFn) => { - useEffect(() => Drupal.attachBehaviors(), []); + useEffect(() => Drupal.attachBehaviors()); return storyFn(); }); diff --git a/web/themes/contrib/civictheme/.stylelintrc.json b/web/themes/contrib/civictheme/.stylelintrc.json index 646df9cd89..07cf6d321e 100644 --- a/web/themes/contrib/civictheme/.stylelintrc.json +++ b/web/themes/contrib/civictheme/.stylelintrc.json @@ -33,6 +33,7 @@ "declaration-block-no-redundant-longhand-properties": null, "max-line-length": null, "no-descending-specificity": null, + "no-duplicate-selectors": null, "scss/at-mixin-argumentless-call-parentheses": "always", "scss/at-mixin-pattern": "^_?ct-[a-z0-9\\-]+$", "scss/at-else-closing-brace-newline-after": null, diff --git a/web/themes/contrib/civictheme/assets/sass/layout_builder/_layout_builder.scss b/web/themes/contrib/civictheme/assets/sass/layout_builder/_layout_builder.scss index a685b51a9e..3f86977a35 100644 --- a/web/themes/contrib/civictheme/assets/sass/layout_builder/_layout_builder.scss +++ b/web/themes/contrib/civictheme/assets/sass/layout_builder/_layout_builder.scss @@ -34,19 +34,6 @@ cursor: move; background-color: #fff; position: relative; - - div.contextual { - display: contents; - - ul { - border: 1px solid; - - li { - list-style: none; - display: list-item; - } - } - } } .block.block-layout-builder [tabindex='-1'] { diff --git a/web/themes/contrib/civictheme/assets/sass/page/_page.scss b/web/themes/contrib/civictheme/assets/sass/page/_page.scss new file mode 100644 index 0000000000..296d12b15f --- /dev/null +++ b/web/themes/contrib/civictheme/assets/sass/page/_page.scss @@ -0,0 +1,12 @@ +// +// Page level configuration. +// + +html { + // stylelint-disable property-no-vendor-prefix + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} diff --git a/web/themes/contrib/civictheme/assets/sass/theme.scss b/web/themes/contrib/civictheme/assets/sass/theme.scss index 99dfc9ecfa..b15ff323c1 100644 --- a/web/themes/contrib/civictheme/assets/sass/theme.scss +++ b/web/themes/contrib/civictheme/assets/sass/theme.scss @@ -5,4 +5,5 @@ // components. // // These overrides will not be visible in the Storybook. +@import 'page/page'; @import 'header/header'; diff --git a/web/themes/contrib/civictheme/civictheme.layouts.yml b/web/themes/contrib/civictheme/civictheme.layouts.yml index 0d01a6a9ac..3578b396f3 100644 --- a/web/themes/contrib/civictheme/civictheme.layouts.yml +++ b/web/themes/contrib/civictheme/civictheme.layouts.yml @@ -5,7 +5,7 @@ civictheme_three_columns: library: civictheme/layouts category: 'CivicTheme Layouts' class: '\Drupal\civictheme\Plugin\Layout\ThreeColumnsLayout' - default_region: content + default_region: main icon_map: - [first_above, main, second_above] - [first_below, main, second_below] diff --git a/web/themes/contrib/civictheme/civictheme.post_update.php b/web/themes/contrib/civictheme/civictheme.post_update.php index da6d6b2851..81ee2040db 100644 --- a/web/themes/contrib/civictheme/civictheme.post_update.php +++ b/web/themes/contrib/civictheme/civictheme.post_update.php @@ -290,7 +290,7 @@ function civictheme_post_update_rename_event_date_field(array &$sandbox): ?strin 'field_c_n_date_range' => [ 'type' => 'daterange_default', 'weight' => 13, - 'region' => 'content', + 'region' => 'main', 'settings' => [], 'third_party_settings' => [], ], diff --git a/web/themes/contrib/civictheme/civictheme.theme b/web/themes/contrib/civictheme/civictheme.theme index fef1ef8fa7..080911fdbb 100644 --- a/web/themes/contrib/civictheme/civictheme.theme +++ b/web/themes/contrib/civictheme/civictheme.theme @@ -27,6 +27,7 @@ require_once __DIR__ . '/includes/iframe.inc'; require_once __DIR__ . '/includes/image.inc'; require_once __DIR__ . '/includes/link.inc'; require_once __DIR__ . '/includes/automated_list.inc'; +require_once __DIR__ . '/includes/layout.inc'; require_once __DIR__ . '/includes/local_tasks.inc'; require_once __DIR__ . '/includes/libraries.inc'; require_once __DIR__ . '/includes/map.inc'; diff --git a/web/themes/contrib/civictheme/civictheme_starter_kit/.storybook/preview.js b/web/themes/contrib/civictheme/civictheme_starter_kit/.storybook/preview.js index f375d75e87..7537da7218 100644 --- a/web/themes/contrib/civictheme/civictheme_starter_kit/.storybook/preview.js +++ b/web/themes/contrib/civictheme/civictheme_starter_kit/.storybook/preview.js @@ -12,7 +12,7 @@ import { decoratorDocs } from '../components_combined/00-base/storybook/storyboo // Call attaching of behaviours. addDecorator((storyFn) => { - useEffect(() => Drupal.attachBehaviors(), []); + useEffect(() => Drupal.attachBehaviors()); return storyFn(); }); diff --git a/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/page/_page.scss b/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/page/_page.scss new file mode 100644 index 0000000000..296d12b15f --- /dev/null +++ b/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/page/_page.scss @@ -0,0 +1,12 @@ +// +// Page level configuration. +// + +html { + // stylelint-disable property-no-vendor-prefix + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} diff --git a/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/theme.scss b/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/theme.scss index 200ac2e9e4..9165ca22ff 100644 --- a/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/theme.scss +++ b/web/themes/contrib/civictheme/civictheme_starter_kit/assets/sass/theme.scss @@ -6,4 +6,5 @@ // // These overrides will not be visible in the Storybook. // @todo Refactor webpack config to use direct import from the CivicTheme theme. +@import 'page/page'; @import 'block/local-tasks'; diff --git a/web/themes/contrib/civictheme/civictheme_starter_kit/composer.json b/web/themes/contrib/civictheme/civictheme_starter_kit/composer.json index dd7632d74a..9327d1e59b 100644 --- a/web/themes/contrib/civictheme/civictheme_starter_kit/composer.json +++ b/web/themes/contrib/civictheme/civictheme_starter_kit/composer.json @@ -4,6 +4,6 @@ "type": "drupal-theme", "license": "proprietary", "require": { - "php": ">=8.2" + "php": ">=8.3" } } diff --git a/web/themes/contrib/civictheme/composer.dev.json b/web/themes/contrib/civictheme/composer.dev.json index 84ae2445a3..6aeaa88b7f 100644 --- a/web/themes/contrib/civictheme/composer.dev.json +++ b/web/themes/contrib/civictheme/composer.dev.json @@ -13,7 +13,8 @@ "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, - "phpstan/extension-installer": true + "phpstan/extension-installer": true, + "tbachert/spi": true } }, "extra": { diff --git a/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_alert.default.yml b/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_alert.default.yml index f6a953dd4b..ec383aaabe 100644 --- a/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_alert.default.yml +++ b/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_alert.default.yml @@ -45,6 +45,7 @@ content: timezone_override: '' format_type: medium separator: '-' + from_to: both third_party_settings: { } weight: 2 region: content diff --git a/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_event.default.yml b/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_event.default.yml index 389759f9ae..315b5fe677 100644 --- a/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_event.default.yml +++ b/web/themes/contrib/civictheme/config/install/core.entity_view_display.node.civictheme_event.default.yml @@ -109,6 +109,25 @@ third_party_settings: third_party_settings: { } weight: 3 additional: { } + 634c10b6-05e3-46e7-98af-534e416fa822: + uuid: 634c10b6-05e3-46e7-98af-534e416fa822 + region: content + configuration: + label_display: '0' + context_mapping: + entity: layout_builder.entity + id: 'field_block:node:civictheme_event:field_c_n_date_range' + formatter: + type: daterange_default + label: above + settings: + timezone_override: '' + format_type: medium + separator: '-' + from_to: both + third_party_settings: { } + weight: 0 + additional: { } third_party_settings: { } layout_builder_restrictions: allowed_block_categories: { } @@ -141,6 +160,7 @@ content: timezone_override: '' format_type: medium separator: '-' + from_to: both third_party_settings: { } weight: 0 region: content diff --git a/web/themes/contrib/civictheme/config/install/core.entity_view_display.paragraph.civictheme_event_card.default.yml b/web/themes/contrib/civictheme/config/install/core.entity_view_display.paragraph.civictheme_event_card.default.yml index 5f963b9d73..380268cc60 100644 --- a/web/themes/contrib/civictheme/config/install/core.entity_view_display.paragraph.civictheme_event_card.default.yml +++ b/web/themes/contrib/civictheme/config/install/core.entity_view_display.paragraph.civictheme_event_card.default.yml @@ -27,6 +27,7 @@ content: timezone_override: '' format_type: medium separator: '-' + from_to: both third_party_settings: { } weight: 9 region: content diff --git a/web/themes/contrib/civictheme/config/install/editor.editor.civictheme_rich_text.yml b/web/themes/contrib/civictheme/config/install/editor.editor.civictheme_rich_text.yml index 4f59051d00..d78af9afd8 100644 --- a/web/themes/contrib/civictheme/config/install/editor.editor.civictheme_rich_text.yml +++ b/web/themes/contrib/civictheme/config/install/editor.editor.civictheme_rich_text.yml @@ -107,9 +107,3 @@ settings: allow_view_mode_override: false image_upload: status: false - scheme: public - directory: inline-images - max_size: '' - max_dimensions: - width: null - height: null diff --git a/web/themes/contrib/civictheme/config/install/node.type.civictheme_alert.yml b/web/themes/contrib/civictheme/config/install/node.type.civictheme_alert.yml index 040935c4df..f6588cb822 100644 --- a/web/themes/contrib/civictheme/config/install/node.type.civictheme_alert.yml +++ b/web/themes/contrib/civictheme/config/install/node.type.civictheme_alert.yml @@ -10,7 +10,7 @@ third_party_settings: name: Alert type: civictheme_alert description: 'CivicTheme. Use alerts to provide information for site users using a status bar.' -help: '' +help: null new_revision: true preview_mode: 1 display_submitted: false diff --git a/web/themes/contrib/civictheme/config/install/node.type.civictheme_event.yml b/web/themes/contrib/civictheme/config/install/node.type.civictheme_event.yml index 0798d0c1b2..83ac09281e 100644 --- a/web/themes/contrib/civictheme/config/install/node.type.civictheme_event.yml +++ b/web/themes/contrib/civictheme/config/install/node.type.civictheme_event.yml @@ -11,7 +11,7 @@ third_party_settings: name: Event type: civictheme_event description: 'CivicTheme. Use Event pages to describe event information.' -help: '' +help: null new_revision: true preview_mode: 1 display_submitted: false diff --git a/web/themes/contrib/civictheme/config/install/node.type.civictheme_page.yml b/web/themes/contrib/civictheme/config/install/node.type.civictheme_page.yml index fd4b4ced47..be10fb301b 100644 --- a/web/themes/contrib/civictheme/config/install/node.type.civictheme_page.yml +++ b/web/themes/contrib/civictheme/config/install/node.type.civictheme_page.yml @@ -11,7 +11,7 @@ third_party_settings: name: Page type: civictheme_page description: "CivicTheme. Use pages for your static content such as an 'About us' page or other informational pages that will always be accessible on the site. These can be simple content pages or pages with a complex layout." -help: '' +help: null new_revision: true preview_mode: 1 display_submitted: false diff --git a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_media_tags.yml b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_media_tags.yml index 9aad8c22bc..7fe346bd43 100644 --- a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_media_tags.yml +++ b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_media_tags.yml @@ -3,5 +3,6 @@ status: true dependencies: { } name: 'Media tags' vid: civictheme_media_tags -description: '' +description: null weight: 0 +new_revision: false diff --git a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_site_sections.yml b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_site_sections.yml index a046e8682d..8a7ca11404 100644 --- a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_site_sections.yml +++ b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_site_sections.yml @@ -5,3 +5,4 @@ name: 'Site sections' vid: civictheme_site_sections description: 'Site sections used to group content.' weight: 0 +new_revision: false diff --git a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_topics.yml b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_topics.yml index 4b06156d58..bf715d3d38 100644 --- a/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_topics.yml +++ b/web/themes/contrib/civictheme/config/install/taxonomy.vocabulary.civictheme_topics.yml @@ -3,5 +3,6 @@ status: true dependencies: { } name: Topics vid: civictheme_topics -description: '' +description: null weight: 0 +new_revision: false diff --git a/web/themes/contrib/civictheme/config/install/views.view.civictheme_alerts.yml b/web/themes/contrib/civictheme/config/install/views.view.civictheme_alerts.yml index 26ef8e44d9..d12775402d 100644 --- a/web/themes/contrib/civictheme/config/install/views.view.civictheme_alerts.yml +++ b/web/themes/contrib/civictheme/config/install/views.view.civictheme_alerts.yml @@ -220,6 +220,7 @@ display: items_per_page_options_all_label: '- All -' offset: false offset_label: Offset + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/web/themes/contrib/civictheme/config/install/views.view.civictheme_automated_list.yml b/web/themes/contrib/civictheme/config/install/views.view.civictheme_automated_list.yml index b2bb5169d1..475e24e421 100644 --- a/web/themes/contrib/civictheme/config/install/views.view.civictheme_automated_list.yml +++ b/web/themes/contrib/civictheme/config/install/views.view.civictheme_automated_list.yml @@ -92,6 +92,7 @@ display: offset: false offset_label: Offset quantity: 5 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/web/themes/contrib/civictheme/config/install/views.view.civictheme_media.yml b/web/themes/contrib/civictheme/config/install/views.view.civictheme_media.yml index 60c22e5ecf..8d81c3d277 100644 --- a/web/themes/contrib/civictheme/config/install/views.view.civictheme_media.yml +++ b/web/themes/contrib/civictheme/config/install/views.view.civictheme_media.yml @@ -521,6 +521,7 @@ display: type: full options: offset: 0 + pagination_heading_level: h4 items_per_page: 50 total_pages: null id: 0 diff --git a/web/themes/contrib/civictheme/config/install/views.view.civictheme_moderated_content.yml b/web/themes/contrib/civictheme/config/install/views.view.civictheme_moderated_content.yml index 9e889d205f..90ca4a2e41 100644 --- a/web/themes/contrib/civictheme/config/install/views.view.civictheme_moderated_content.yml +++ b/web/themes/contrib/civictheme/config/install/views.view.civictheme_moderated_content.yml @@ -432,6 +432,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: diff --git a/web/themes/contrib/civictheme/config/optional/views.view.civictheme_search.yml b/web/themes/contrib/civictheme/config/optional/views.view.civictheme_search.yml index 0626d936c9..bb2a43e0c9 100644 --- a/web/themes/contrib/civictheme/config/optional/views.view.civictheme_search.yml +++ b/web/themes/contrib/civictheme/config/optional/views.view.civictheme_search.yml @@ -93,6 +93,7 @@ display: offset: false offset_label: Offset quantity: 9 + pagination_heading_level: h4 exposed_form: type: basic options: @@ -107,7 +108,7 @@ display: type: none options: { } cache: - type: none + type: search_api_none options: { } empty: result: diff --git a/web/themes/contrib/civictheme/includes/form.inc b/web/themes/contrib/civictheme/includes/form.inc index da2000d4dd..01f0d54b7d 100644 --- a/web/themes/contrib/civictheme/includes/form.inc +++ b/web/themes/contrib/civictheme/includes/form.inc @@ -53,28 +53,35 @@ function _civictheme_form_alter__webform_submission(array &$form, FormStateInter * if required. * * @SuppressWarnings(PHPMD.StaticAccess) + * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ function _civictheme_form_alter__non_form_elements(array &$elements): void { $element_keys = Element::children($elements); - foreach ($element_keys as $element_key) { - if (empty($elements[$element_key]['#type'])) { - continue; - } - - $nested_elements = Element::children($elements[$element_key]); - if (!empty($nested_elements)) { - _civictheme_form_alter__non_form_elements($elements[$element_key]); + $element_type = $elements[$element_key]['#type'] ?? NULL; + if (is_array($elements[$element_key])) { + $nested_elements = Element::children($elements[$element_key]); + if (!empty($nested_elements)) { + _civictheme_form_alter__non_form_elements($elements[$element_key]); + } } - - // Add elements to modify to this switch. - switch ($elements[$element_key]['#type']) { - case 'link': - _civictheme_form_alter__non_form_elements__link($elements[$element_key]); - break; - - default: - continue 2; + if ($element_type !== NULL) { + // Add elements to modify to this switch. + switch ($elements[$element_key]['#type']) { + case 'link': + _civictheme_form_alter__non_form_elements__link($elements[$element_key]); + break; + + case 'html_tag': + case 'markup': + case 'processed_text': + case 'webform_markup': + _civictheme_form_element__non_form_elements__markup($elements[$element_key]); + break; + + default: + continue 2; + } } } } @@ -92,7 +99,21 @@ function _civictheme_form_alter__non_form_elements__link(array &$element): void 'ct-button--secondary', 'ct-theme-' . $element_theme, ]); + return; } + $element['#attributes']['class'][] = 'ct-link'; +} + +/** + * Preprocesses markup render elements rendered in forms. + */ +function _civictheme_form_element__non_form_elements__markup(array &$element): void { + $element = [ + '#content' => $element, + '#component_theme' => _civictheme_form_element_get_component_theme($element), + '#vertical_spacing' => 'none', + '#theme' => 'civictheme_basic_content', + ]; } /** @@ -100,7 +121,7 @@ function _civictheme_form_alter__non_form_elements__link(array &$element): void * * @SuppressWarnings(PHPMD.StaticAccess) */ -function _civictheme_form_preprocess_hidden_form_elements(array $variables): void { +function _civictheme_form_preprocess_hidden_form_elements(array &$variables): void { if (empty($variables['form'])) { return; } diff --git a/web/themes/contrib/civictheme/includes/form_element.inc b/web/themes/contrib/civictheme/includes/form_element.inc index 159e9ef2df..25e10bdc44 100644 --- a/web/themes/contrib/civictheme/includes/form_element.inc +++ b/web/themes/contrib/civictheme/includes/form_element.inc @@ -91,6 +91,7 @@ declare(strict_types=1); use Drupal\civictheme\CivicthemeConstants; use Drupal\Component\Utility\Html; use Drupal\Core\Render\Element; +use Drupal\Core\Template\Attribute; /** * Implements hook_theme_suggestions_form_element_alter(). @@ -102,8 +103,75 @@ function civictheme_theme_suggestions_form_element_alter(array &$suggestions, ar // Note that sub-themes can opt-out from this behavior by implementing // hook_theme_suggestions_form_element_alter() and removing the suggestions // added here based on some conditions. - $suggestions[] = 'form_element__civictheme_field'; - $suggestions[] = 'form_element__civictheme_field__' . $variables['element']['#type']; + // @see _civictheme_supported_form_element() for a list of supported types. + $supported_form_element = isset($variables['element']['#type']) && _civictheme_supported_form_element($variables['element']); + if ($supported_form_element) { + $suggestions[] = 'form_element__civictheme_field'; + $suggestions[] = 'form_element__civictheme_field__' . $variables['element']['#type']; + } +} + +/** + * Check whether form render element is supported directly by CivicTheme. + * + * @param array $form_element + * The form element. + * + * This list has been derived with testing elements that extend + * \Drupal\Core\Render\Element\FormElement. + * + * @return bool + * Whether the form element is directly supported by CivicTheme. + */ +function _civictheme_supported_form_element(array $form_element): bool { + // Form elements can be explictly opted with `#civictheme_form_element` + // property. + if (!empty($form_element[CivicthemeConstants::CIVICTHEME_FORM_ELEMENT_PROPERTY])) { + return TRUE; + } + // This is a list of form elements that CivicTheme works with currently + // This list may change with changes to Drupal and updates to CivicTheme. + $form_element_type = $form_element['#type']; + $supported_core_types = [ + 'button', + 'checkbox', + 'checkboxes', + 'color', + 'date', + 'email', + 'entity_autocomplete', + 'file', + 'image_button', + 'linkit', + 'machine_name', + 'number', + 'password', + 'path', + 'radio', + 'radios', + 'search', + 'select', + 'tableselect', + 'textarea', + 'textfield', + 'url', + 'weight', + ]; + + $supported_webform_types = [ + 'tel', + 'webform_date', + 'webform_email', + 'webform_number', + 'webform_select', + 'webform_textarea', + 'webform_time', + 'webform_url', + ]; + + $supported_types = array_merge($supported_core_types, $supported_webform_types); + + return in_array($form_element_type, $supported_types); } /** @@ -183,7 +251,7 @@ function civictheme_preprocess_fieldset__form_element__civictheme_field__checkbo // Prepare control array. $control = []; foreach ($element['#options'] as $value => $label) { - $name = isset($element['#attributes']['name']) ? $element['#attributes']['name'] : (isset($element['#name']) ? $element['#name'] : ''); + $name = $element['#attributes']['name'] ?? ($element['#name'] ?? ''); $control[] = [ 'label' => $label, 'value' => $value, @@ -191,6 +259,8 @@ function civictheme_preprocess_fieldset__form_element__civictheme_field__checkbo 'id' => Html::cleanCssIdentifier($element['#id'] . '-' . $value), 'is_checked' => is_array($element['#default_value']) ? in_array($value, $element['#default_value']) : $element['#default_value'] == $value, 'is_disabled' => isset($element['#attributes']['disabled']), + // Checkboxes controls with a group cannot be required by definition. + 'is_required' => FALSE, 'attributes' => $attributes, 'modifier_class' => $modifier_class, ]; @@ -219,7 +289,7 @@ function civictheme_preprocess_fieldset__form_element__civictheme_field__radios( // Prepare control array. $control = []; foreach ($element['#options'] as $value => $label) { - $name = isset($element['#attributes']['name']) ? $element['#attributes']['name'] : (isset($element['#name']) ? $element['#name'] : ''); + $name = $element['#attributes']['name'] ?? ($element['#name'] ?? ''); $control[] = [ 'label' => $label, 'value' => $value, @@ -277,9 +347,9 @@ function civictheme_preprocess_input__submit(array &$variables): void { */ function _civictheme_preprocess_form_element__generic(array &$variables): void { $element = $variables['element']; - $variables['type'] = isset($element['#type']) ? $element['#type'] : 'input'; + $variables['type'] = $element['#type'] ?? 'input'; - $variables['title'] = isset($element['#title']) ? $element['#title'] : ''; + $variables['title'] = $element['#title'] ?? ''; $title_display = $element['#_title_display'] ?? $element['#title_display'] ?? $variables['title_display'] ?? 'visible'; $title_display = $title_display == 'none' ? 'hidden' : $title_display; @@ -291,12 +361,14 @@ function _civictheme_preprocess_form_element__generic(array &$variables): void { $variables['orientation'] = $variables['orientation'] ?? $title_display == 'inline' ? 'horizontal' : 'vertical'; - $variables['is_required'] = isset($element['#required']) ? $element['#required'] : FALSE; + $variables['is_required'] = $element['#required'] ?? FALSE; $variables['is_disabled'] = isset($element['#attributes']['disabled']); - $variables['description'] = isset($element['#description']) ? $element['#description'] : ''; - $variables['message'] = isset($element['#errors']) ? $element['#errors'] : ''; + $variables['description'] = $element['#description'] ?? ''; + $variables['message'] = $element['#errors'] ?? ''; $variables['is_invalid'] = isset($element['#errors']) && !empty($element['#errors']); - $variables['placeholder'] = isset($element['#placeholder']) ? $element['#placeholder'] : ''; + $variables['placeholder'] = $element['#placeholder'] ?? ''; + $variables['prefix'] = $element['#field_prefix'] ?? $element['#prefix'] ?? ''; + $variables['suffix'] = $element['#field_suffix'] ?? $element['#suffix'] ?? ''; } /** @@ -304,6 +376,7 @@ function _civictheme_preprocess_form_element__generic(array &$variables): void { * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) + * @SuppressWarnings(PHPMD.StaticAccess) */ function _civictheme_preprocess_form_element__control(array &$variables): void { $element = $variables['element']; @@ -329,27 +402,34 @@ function _civictheme_preprocess_form_element__control(array &$variables): void { } } } - $attributes_string = implode(' ', array_map(function ($key, $value) { - return $key . '="' . $value . '"'; - }, array_keys($attributes), $attributes)); - $modifier_class = isset($element['#attributes']['class']) ? $element['#attributes']['class'] : []; + $modifier_class = $element['#attributes']['class'] ?? []; + $modifier_class[] = 'form-element'; + $modifier_class[] = 'form-element--type-' . $variables['type']; + $modifier_class[] = 'form-element--api-' . $element['#type']; + $modifier_class[] = 'form-control'; + if (in_array($variables['type'], ['checkbox', 'radio'])) { + $modifier_class[] = 'form-boolean'; + $modifier_class[] = Html::getClass('form-boolean--type-' . $variables['type']); + } if (is_array($modifier_class)) { $modifier_class = implode(' ', $modifier_class); } + $attributes = new Attribute($attributes); + $variables['control'][] = [ - 'name' => isset($element['#attributes']['name']) ? $element['#attributes']['name'] : (isset($element['#name']) ? $element['#name'] : ''), - 'value' => isset($element['#value']) ? $element['#value'] : '', - 'id' => isset($element['#id']) ? $element['#id'] : '', + 'name' => $element['#attributes']['name'] ?? ($element['#name'] ?? ''), + 'value' => $element['#value'] ?? '', + 'id' => $element['#id'] ?? '', 'options' => $variables['options'] ?? [], - 'is_multiple' => isset($variables['is_multiple']) ? $variables['is_multiple'] : FALSE, - 'attributes' => $attributes_string, + 'is_multiple' => $variables['is_multiple'] ?? FALSE, + 'attributes' => $attributes, 'modifier_class' => $modifier_class, ]; if ($element['#type'] == 'checkbox') { - $variables['control'][0]['is_checked'] = isset($element['#default_value']) ? $element['#default_value'] : FALSE; + $variables['control'][0]['is_checked'] = $element['#default_value'] ?? FALSE; } } @@ -389,17 +469,24 @@ function _civictheme_preprocess_form_element__classes(array &$variables): void { // Note that we are only adding JS classes for 3rd-parties to bind to. Any // other classes added by core or contrib modules may affect the look and feel // of the form. + $variables['attributes']['class'][] = 'form-item'; + $variables['attributes']['class'][] = 'js-form-item'; if (!empty($variables['type'])) { $variables['attributes']['class'][] = 'js-form-type-' . Html::getClass($variables['type']); + $variables['attributes']['class'][] = 'form-type-' . Html::getClass($variables['type']); + $variables['attributes']['class'][] = 'form-type--' . Html::getClass($variables['type']); } if (!empty($variables['name'])) { $variables['attributes']['class'][] = 'js-form-item-' . Html::getClass($variables['name']); + $variables['attributes']['class'][] = 'form-item-' . Html::getClass($variables['name']); + $variables['attributes']['class'][] = 'form-item--' . Html::getClass($variables['name']); } elseif (!empty($variables['element']['#name'])) { $variables['attributes']['class'][] = 'js-form-item-' . Html::getClass($variables['element']['#name']); + $variables['attributes']['class'][] = 'form-item-' . Html::getClass($variables['element']['#name']); } if (!empty($variables['errors'])) { @@ -418,7 +505,7 @@ function _civictheme_preprocess_form_element__description(array &$variables): vo /** * Preprocesses form element wrapper classes. */ -function _civictheme_preprocess_form_element__wrapper_classes(array &$variables){ +function _civictheme_preprocess_form_element__wrapper_classes(array &$variables) { if (!empty($variables['element']['#wrapper_attributes'])) { $variables['attributes'] = $variables['element']['#wrapper_attributes']; } diff --git a/web/themes/contrib/civictheme/includes/layout.inc b/web/themes/contrib/civictheme/includes/layout.inc new file mode 100644 index 0000000000..aff8ff3446 --- /dev/null +++ b/web/themes/contrib/civictheme/includes/layout.inc @@ -0,0 +1,23 @@ +loadForComponent($component_name, 'summary_length', CivicthemeConstants::COMPONENT_SUMMARY_DEFAULT_LENGTH); } - $variables['summary'] = text_summary($summary, NULL, $length); + $summary_trimmed = text_summary($summary); + + if (!_civictheme_feature_is_optedout('process', CivicthemeConstants::OPTOUT_SUMMARY_HIDE_ELLIPSIS)) { + $summary_trimmed = Unicode::truncate($summary_trimmed, $length, TRUE, TRUE); + } + + $variables['summary'] = $summary_trimmed; } } /** * Pre-process for Summary node field. + * + * @SuppressWarnings(PHPMD.StaticAccess) */ function _civictheme_preprocess_paragraph__node_field__summary(array &$variables, string $bundle = NULL): void { $node = $variables['node'] ?? civictheme_get_field_value($variables['paragraph'], 'field_c_p_reference', TRUE); @@ -240,7 +251,13 @@ function _civictheme_preprocess_paragraph__node_field__summary(array &$variables $length = civictheme_get_theme_config_manager()->loadForComponent($component_name, 'summary_length', CivicthemeConstants::COMPONENT_SUMMARY_DEFAULT_LENGTH); } - $variables['summary'] = text_summary($summary, NULL, $length); + $summary_trimmed = text_summary($summary); + + if (!_civictheme_feature_is_optedout('process', CivicthemeConstants::OPTOUT_SUMMARY_HIDE_ELLIPSIS)) { + $summary_trimmed = Unicode::truncate($summary_trimmed, $length, TRUE, TRUE); + } + + $variables['summary'] = $summary_trimmed; } } } diff --git a/web/themes/contrib/civictheme/includes/utilities.inc b/web/themes/contrib/civictheme/includes/utilities.inc index f1b40965fb..41c8fc9d5d 100644 --- a/web/themes/contrib/civictheme/includes/utilities.inc +++ b/web/themes/contrib/civictheme/includes/utilities.inc @@ -160,7 +160,7 @@ function civictheme_media_image_get_variables(MediaInterface $media, string $ima $variables = civictheme_media_get_variables($media); - if($variables['ext'] == 'svg') { + if ($variables['ext'] == 'svg') { $image_style = NULL; } @@ -888,8 +888,10 @@ function _civictheme_feature_is_optedout(string $type, string $name, mixed $cont * Array of opt-out flags. */ function _civictheme_feature_optout_flags(): array { - return [ + $flags = [ 'components.link' => t('Links processing'), 'components.link.email' => t('Email links processing'), ]; + $flags[CivicthemeConstants::OPTOUT_SUMMARY_HIDE_ELLIPSIS] = t('Hide card summary ellipsis'); + return $flags; } diff --git a/web/themes/contrib/civictheme/package-lock.json b/web/themes/contrib/civictheme/package-lock.json index 1da63892c8..266bb67676 100644 --- a/web/themes/contrib/civictheme/package-lock.json +++ b/web/themes/contrib/civictheme/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "GPL-2.0-or-later", "dependencies": { - "@civictheme/uikit": "github:civictheme/uikit#v1.8.1" + "@civictheme/uikit": "github:civictheme/uikit#main" }, "devDependencies": { "@alexskrypnyk/scss-variables-extractor": "^0.1.1", @@ -2240,14 +2240,12 @@ } }, "node_modules/@civictheme/uikit": { - "version": "1.8.1", - "resolved": "git+ssh://git@github.com/civictheme/uikit.git#47e3da3fce6cf21c052c0f899418798b7c6035aa", + "version": "1.9.0", + "resolved": "git+ssh://git@github.com/civictheme/uikit.git#7abb623230fcd418bcde8fc31ceaa8bd424caad7", "hasInstallScript": true, "license": "GPL-2.0-or-later", "dependencies": { - "@popperjs/core": "^2.11.8", - "breakpoint-sass": "^3.0.0", - "normalize.css": "^8.0.1" + "@popperjs/core": "^2.11.8" }, "engines": { "node": ">=18.14" @@ -5561,6 +5559,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6726,6 +6725,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, "engines": { "node": ">=8" }, @@ -6882,6 +6882,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -6889,14 +6890,6 @@ "node": ">=8" } }, - "node_modules/breakpoint-sass": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/breakpoint-sass/-/breakpoint-sass-3.0.0.tgz", - "integrity": "sha512-qxJqSfTaOHI+RCGzvKWVRwwC2hMIaS0KV1b+asqWUFxdLv/yKNADF7AtT1uNnkt2VxSMZ2csM22CSc+Hez+EIg==", - "peerDependencies": { - "sass": "^1.25" - } - }, "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", @@ -7460,6 +7453,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -11084,6 +11078,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -11615,6 +11610,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -11829,6 +11825,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -12675,7 +12672,8 @@ "node_modules/immutable": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==" + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -13009,6 +13007,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -13200,6 +13199,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -13265,6 +13265,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -13319,6 +13320,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -15233,6 +15235,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -15246,11 +15249,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -16192,6 +16190,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -17290,6 +17289,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -18279,6 +18279,7 @@ "version": "1.77.6", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -18866,6 +18867,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -20692,6 +20694,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -24417,12 +24420,10 @@ } }, "@civictheme/uikit": { - "version": "git+ssh://git@github.com/civictheme/uikit.git#47e3da3fce6cf21c052c0f899418798b7c6035aa", - "from": "@civictheme/uikit@civictheme/uikit.git#v1.8.1", + "version": "git+ssh://git@github.com/civictheme/uikit.git#7abb623230fcd418bcde8fc31ceaa8bd424caad7", + "from": "@civictheme/uikit@github:civictheme/uikit#main", "requires": { - "@popperjs/core": "^2.11.8", - "breakpoint-sass": "^3.0.0", - "normalize.css": "^8.0.1" + "@popperjs/core": "^2.11.8" } }, "@cnakazawa/watch": { @@ -26934,6 +26935,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -27854,7 +27856,8 @@ "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true }, "bindings": { "version": "1.5.0", @@ -27984,16 +27987,11 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "requires": { "fill-range": "^7.1.1" } }, - "breakpoint-sass": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/breakpoint-sass/-/breakpoint-sass-3.0.0.tgz", - "integrity": "sha512-qxJqSfTaOHI+RCGzvKWVRwwC2hMIaS0KV1b+asqWUFxdLv/yKNADF7AtT1uNnkt2VxSMZ2csM22CSc+Hez+EIg==", - "requires": {} - }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", @@ -28444,6 +28442,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -31317,6 +31316,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -31760,6 +31760,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "optional": true }, "function-bind": { @@ -31910,6 +31911,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -32538,7 +32540,8 @@ "immutable": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==" + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "dev": true }, "import-fresh": { "version": "3.3.0", @@ -32786,6 +32789,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -32901,7 +32905,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, "is-finalizationregistry": { "version": "1.0.2", @@ -32946,6 +32951,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -32980,7 +32986,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { "version": "1.0.7", @@ -34489,7 +34496,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-range": { "version": "0.1.2", @@ -34497,11 +34505,6 @@ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, - "normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" - }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -35225,7 +35228,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "4.0.1", @@ -36073,6 +36077,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -36835,6 +36840,7 @@ "version": "1.77.6", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -37303,7 +37309,8 @@ "source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true }, "source-map-resolve": { "version": "0.5.3", @@ -38729,6 +38736,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } diff --git a/web/themes/contrib/civictheme/package.json b/web/themes/contrib/civictheme/package.json index c43189bc2f..67e9b9b6ea 100644 --- a/web/themes/contrib/civictheme/package.json +++ b/web/themes/contrib/civictheme/package.json @@ -25,7 +25,7 @@ "uikit-install": "rm -Rf lib/uikit > /dev/null 2>&1 && mkdir -p lib/uikit && cp -R node_modules/@civictheme/uikit lib && rm -Rf lib/uikit/dist lib/uikit/storybook-static > /dev/null 2>&1" }, "dependencies": { - "@civictheme/uikit": "github:civictheme/uikit#v1.8.1" + "@civictheme/uikit": "github:civictheme/uikit#main" }, "devDependencies": { "@alexskrypnyk/scss-variables-extractor": "^0.1.1", diff --git a/web/themes/contrib/civictheme/phpcs.xml b/web/themes/contrib/civictheme/phpcs.xml index dd15cdb184..6832ccb101 100644 --- a/web/themes/contrib/civictheme/phpcs.xml +++ b/web/themes/contrib/civictheme/phpcs.xml @@ -16,7 +16,7 @@ - + circle\.yml diff --git a/web/themes/contrib/civictheme/phpstan.neon b/web/themes/contrib/civictheme/phpstan.neon index 570fd3a71f..f7bd058919 100644 --- a/web/themes/contrib/civictheme/phpstan.neon +++ b/web/themes/contrib/civictheme/phpstan.neon @@ -40,6 +40,3 @@ parameters: reportUnmatched: false - # Allow using Drupal::service() in Drush commands. message: '#\Drupal calls should be avoided in classes, use dependency injection instead#' - - # Skip deprecation until upgrade to 10.3. - # @see https://www.drupal.org/node/3426517 - message: '#Fetching deprecated class constant EXISTS_REPLACE#' diff --git a/web/themes/contrib/civictheme/phpunit.xml b/web/themes/contrib/civictheme/phpunit.xml index 02e8e44453..4b75bced04 100644 --- a/web/themes/contrib/civictheme/phpunit.xml +++ b/web/themes/contrib/civictheme/phpunit.xml @@ -22,7 +22,6 @@ -