diff --git a/.circleci/config.yml b/.circleci/config.yml index ae82a11899..cc51cd46fa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,9 +52,6 @@ aliases: # SSH key fingerprint to deploy code to civictheme_admin. - &deploy_ssh_fingerprint5 "ab:76:65:9f:76:02:c2:b9:2a:bc:81:db:a0:c6:37:59" - # SSH key fingerprint to deploy code to civictheme_migrate. - - &deploy_ssh_fingerprint6 "2b:61:1c:7c:d1:f8:9b:63:dc:a7:10:c1:d6:0a:4f:b8" - # SSH key fingerprint to deploy code to Drupal.org - &deploy_ssh_fingerprint7 "47:f9:29:8b:9b:1b:e9:66:5d:b3:f6:dd:e7:60:d1:f9" @@ -92,7 +89,6 @@ aliases: DEPLOY_SSH_FINGERPRINT3: *deploy_ssh_fingerprint3 DEPLOY_SSH_FINGERPRINT4: *deploy_ssh_fingerprint4 DEPLOY_SSH_FINGERPRINT5: *deploy_ssh_fingerprint5 - DEPLOY_SSH_FINGERPRINT6: *deploy_ssh_fingerprint6 DEPLOY_SSH_FINGERPRINT7: *deploy_ssh_fingerprint7 GIT_MIRROR_SSH_FINGERPRINT: *git_mirror_ssh_fingerprint docker: @@ -252,7 +248,6 @@ job-mirror: &job-mirror branches+=(content/corporate) branches+=(content/government) branches+=(content/highereducation) - branches+=(content/migration) if [ "$MIRROR_CONTENT_BRANCHES_PROCEED" == "1" ]; then for branch in "${branches[@]}" do @@ -400,7 +395,6 @@ jobs: - *deploy_ssh_fingerprint3 - *deploy_ssh_fingerprint4 - *deploy_ssh_fingerprint5 - - *deploy_ssh_fingerprint6 - *deploy_ssh_fingerprint7 - checkout - *step_process_codebase @@ -458,15 +452,6 @@ jobs: DEPLOY_CODE_RELEASE_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/modules/custom/civictheme_admin" \ ./scripts/deploy-code-release.sh no_output_timeout: 30m - - run: - name: Deploy release to CivicTheme Migrate repository. - command: | - DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT6 \ - DEPLOY_CODE_RELEASE_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme_migrate.git \ - DEPLOY_CODE_RELEASE_REMOTE_BRANCH=master \ - DEPLOY_CODE_RELEASE_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/modules/custom/civictheme_migrate" \ - ./scripts/deploy-code-release.sh - no_output_timeout: 30m - store_artifacts: path: *drevops_test_artifact_dir diff --git a/.docker/Dockerfile.cli b/.docker/Dockerfile.cli index b342d89ab9..956767d79f 100644 --- a/.docker/Dockerfile.cli +++ b/.docker/Dockerfile.cli @@ -61,7 +61,6 @@ COPY scripts /app/scripts RUN mkdir -p docroot/themes/contrib/civictheme \ && mkdir -p docroot/modules/custom/civictheme_govcms \ && mkdir -p docroot/modules/custom/civictheme_admin \ - && mkdir -p docroot/modules/custom/civictheme_migrate \ && mkdir -p docroot/modules/custom/civictheme_content \ && mkdir -p docroot/modules/custom/civictheme_dev \ && mkdir -p docroot/modules/custom/cs_generated_content @@ -78,7 +77,6 @@ COPY composer.json composer.* .env* auth* /app/ COPY docroot/themes/contrib/civictheme/composer.json /app/docroot/themes/contrib/civictheme/ COPY docroot/modules/custom/civictheme_govcms/composer.json docroot/modules/custom/civictheme_govcms/ COPY docroot/modules/custom/civictheme_admin/composer.json docroot/modules/custom/civictheme_admin/ -COPY docroot/modules/custom/civictheme_migrate/composer.json docroot/modules/custom/civictheme_migrate/ COPY docroot/modules/custom/civictheme_content/composer.json docroot/modules/custom/civictheme_content/ COPY docroot/modules/custom/civictheme_dev/composer.json docroot/modules/custom/civictheme_dev/ COPY docroot/modules/custom/cs_generated_content/composer.json docroot/modules/custom/cs_generated_content/ diff --git a/.docker/Dockerfile.cli.onlytheme b/.docker/Dockerfile.cli.onlytheme index b7cbb42ce8..8b3a9dd145 100644 --- a/.docker/Dockerfile.cli.onlytheme +++ b/.docker/Dockerfile.cli.onlytheme @@ -59,7 +59,6 @@ COPY scripts /app/scripts RUN mkdir -p docroot/themes/contrib/civictheme \ && mkdir -p docroot/modules/custom/civictheme_govcms \ && mkdir -p docroot/modules/custom/civictheme_admin \ - && mkdir -p docroot/modules/custom/civictheme_migrate \ && mkdir -p docroot/modules/custom/civictheme_content \ && mkdir -p docroot/modules/custom/civictheme_dev \ && mkdir -p docroot/modules/custom/cs_generated_content @@ -76,7 +75,6 @@ COPY composer.json composer.* .env* auth* /app/ COPY docroot/themes/contrib/civictheme/composer.json /app/docroot/themes/contrib/civictheme/ COPY docroot/modules/custom/civictheme_govcms/composer.json docroot/modules/custom/civictheme_govcms/ COPY docroot/modules/custom/civictheme_admin/composer.json docroot/modules/custom/civictheme_admin/ -COPY docroot/modules/custom/civictheme_migrate/composer.json docroot/modules/custom/civictheme_migrate/ COPY docroot/modules/custom/civictheme_content/composer.json docroot/modules/custom/civictheme_content/ COPY docroot/modules/custom/civictheme_dev/composer.json docroot/modules/custom/civictheme_dev/ COPY docroot/modules/custom/cs_generated_content/composer.json docroot/modules/custom/cs_generated_content/ diff --git a/.docker/Dockerfile.cli.sibling b/.docker/Dockerfile.cli.sibling index 79e654e46c..dd7f9e3ef2 100644 --- a/.docker/Dockerfile.cli.sibling +++ b/.docker/Dockerfile.cli.sibling @@ -60,7 +60,6 @@ COPY scripts /app/scripts RUN mkdir -p docroot/themes/contrib/civictheme \ && mkdir -p docroot/modules/custom/civictheme_govcms \ && mkdir -p docroot/modules/custom/civictheme_admin \ - && mkdir -p docroot/modules/custom/civictheme_migrate \ && mkdir -p docroot/modules/custom/civictheme_content \ && mkdir -p docroot/modules/custom/civictheme_dev \ && mkdir -p docroot/modules/custom/cs_generated_content @@ -77,7 +76,6 @@ COPY composer.json composer.* .env* auth* /app/ COPY docroot/themes/contrib/civictheme/composer.json /app/docroot/themes/contrib/civictheme/ COPY docroot/modules/custom/civictheme_govcms/composer.json docroot/modules/custom/civictheme_govcms/ COPY docroot/modules/custom/civictheme_admin/composer.json docroot/modules/custom/civictheme_admin/ -COPY docroot/modules/custom/civictheme_migrate/composer.json docroot/modules/custom/civictheme_migrate/ COPY docroot/modules/custom/civictheme_content/composer.json docroot/modules/custom/civictheme_content/ COPY docroot/modules/custom/civictheme_dev/composer.json docroot/modules/custom/civictheme_dev/ COPY docroot/modules/custom/cs_generated_content/composer.json docroot/modules/custom/cs_generated_content/ diff --git a/.env b/.env index 7b087c59d9..bfc4b0b734 100644 --- a/.env +++ b/.env @@ -202,15 +202,3 @@ DREVOPS_DB_DOWNLOAD_LAGOON_SSH_PORT=22 # Combination of comma-separated values to support multiple deployments: # "artifact","docker", "webhook", "lagoon". DREVOPS_DEPLOY_TYPE=lagoon - -################################################################################ -# MIGRATIONS # -################################################################################ - -# Skip all migrations. -# Setting to "1" will skip all migrations in all environments except explicitly overriden. -MIGRATION_SKIP=0 - -# Limit migrations in all environments except explicitly overriden. -# To import all nodes set to "all" (include quotes). -MIGRATION_IMPORT_LIMIT=20 diff --git a/.lagoon.env.content-corporate b/.lagoon.env.content-corporate index 53adce4ad8..ebd27fd39e 100644 --- a/.lagoon.env.content-corporate +++ b/.lagoon.env.content-corporate @@ -2,4 +2,3 @@ CIVICTHEME_CONTENT_PROFILE=corporate CIVICTHEME_SKIP_GENERATED_CONTENT_CREATE=1 CIVICTHEME_SKIP_SUBTHEME_ACTIVATION=1 CIVICTHEME_SKIP_LIBRARY_INSTALL=1 -MIGRATION_SKIP=1 diff --git a/.lagoon.env.content-government b/.lagoon.env.content-government index a32df04736..87609d77b5 100644 --- a/.lagoon.env.content-government +++ b/.lagoon.env.content-government @@ -2,4 +2,3 @@ CIVICTHEME_CONTENT_PROFILE=government CIVICTHEME_SKIP_GENERATED_CONTENT_CREATE=1 CIVICTHEME_SKIP_SUBTHEME_ACTIVATION=1 CIVICTHEME_SKIP_LIBRARY_INSTALL=1 -MIGRATION_SKIP=1 diff --git a/.lagoon.env.content-highereducation b/.lagoon.env.content-highereducation index 710d56f7f9..85bd05efa8 100644 --- a/.lagoon.env.content-highereducation +++ b/.lagoon.env.content-highereducation @@ -2,4 +2,3 @@ CIVICTHEME_CONTENT_PROFILE=highereducation CIVICTHEME_SKIP_GENERATED_CONTENT_CREATE=1 CIVICTHEME_SKIP_SUBTHEME_ACTIVATION=1 CIVICTHEME_SKIP_LIBRARY_INSTALL=1 -MIGRATION_SKIP=1 diff --git a/.lagoon.env.content-migration b/.lagoon.env.content-migration deleted file mode 100644 index 6c25df0cfb..0000000000 --- a/.lagoon.env.content-migration +++ /dev/null @@ -1,5 +0,0 @@ -CIVICTHEME_SKIP_GENERATED_CONTENT_CREATE=1 -CIVICTHEME_SKIP_SUBTHEME_ACTIVATION=1 -CIVICTHEME_SKIP_LIBRARY_INSTALL=1 -MIGRATION_SKIP=0 -MIGRATION_IMPORT_LIMIT=all diff --git a/.lagoon.env.develop b/.lagoon.env.develop index 6799ddcaee..abd3fe70ea 100644 --- a/.lagoon.env.develop +++ b/.lagoon.env.develop @@ -1,2 +1 @@ CIVICTHEME_CONTENT_PROFILE=default -MIGRATION_SKIP=1 diff --git a/.lagoon.env.master b/.lagoon.env.master index 6799ddcaee..abd3fe70ea 100644 --- a/.lagoon.env.master +++ b/.lagoon.env.master @@ -1,2 +1 @@ CIVICTHEME_CONTENT_PROFILE=default -MIGRATION_SKIP=1 diff --git a/.lagoon.env.pr-1060 b/.lagoon.env.pr-1060 deleted file mode 100644 index abd3fe70ea..0000000000 --- a/.lagoon.env.pr-1060 +++ /dev/null @@ -1 +0,0 @@ -CIVICTHEME_CONTENT_PROFILE=default diff --git a/README.md b/README.md index 0045a0e19d..b633f68369 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,6 @@ Copy `default.docker-compose.override.yml` to `docker-compose.override.yml`. 5. Enables `civictheme_admin` module for admin UI enhancements. 6. Enables `civictheme_govcms` module to remove out-of-the-box GovCMS content types. 7. Enables `civictheme_content` module to add default content to installation. -8. Enables `civictheme_migrate` module to enable migrations. ## Development @@ -75,7 +74,6 @@ Please refer to [FAQs](FAQs.md). - [CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme) - [Default content for CivicTheme](https://github.com/salsadigitalauorg/civictheme_content) - [Admin adjustments for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_admin) -- [Migrations for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_migrate) - [GovCMS adjustments for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_govcms) --- diff --git a/composer.d10.json b/composer.d10.json index 01e162d16f..9373eb2541 100644 --- a/composer.d10.json +++ b/composer.d10.json @@ -138,7 +138,7 @@ }, "patches": { "drupal/core": { - "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2021-04-12/D9-3204271-2-missing-layout-exception.patch" + "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2022-11-13/3204271-15-10.1.x.patch" } }, "drupal-scaffold": { @@ -206,7 +206,6 @@ "require": [ "docroot/themes/contrib/civictheme/composer.json", "docroot/modules/custom/civictheme_admin/composer.json", - "docroot/modules/custom/civictheme_migrate/composer.json", "docroot/modules/custom/civictheme_content/composer.json", "docroot/modules/custom/civictheme_dev/composer.json", "docroot/modules/custom/cs_generated_content/composer.json" diff --git a/composer.d10.lock b/composer.d10.lock index bda4d63ea5..52fefeea74 100644 --- a/composer.d10.lock +++ b/composer.d10.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": "03db30992717f530ca764bb3ac8192b9", + "content-hash": "15396d7cc5f087cc94aaa17b0533e908", "packages": [ { "name": "asm89/stack-cors", @@ -351,25 +351,25 @@ }, { "name": "consolidation/annotated-command", - "version": "4.8.2", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "7f5dd1aafb93a10593ed70f3caa6a0cd5a32f0e3" + "reference": "e01152f698eff4cb5df3ebfe5e097ef335dbd3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/7f5dd1aafb93a10593ed70f3caa6a0cd5a32f0e3", - "reference": "7f5dd1aafb93a10593ed70f3caa6a0cd5a32f0e3", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/e01152f698eff4cb5df3ebfe5e097ef335dbd3c9", + "reference": "e01152f698eff4cb5df3ebfe5e097ef335dbd3c9", "shasum": "" }, "require": { - "consolidation/output-formatters": "^4.1.1", + "consolidation/output-formatters": "^4.3.1", "php": ">=7.1.3", - "psr/log": "^1|^2|^3", - "symfony/console": "^4.4.8|^5|^6", - "symfony/event-dispatcher": "^4.4.8|^5|^6", - "symfony/finder": "^4.4.8|^5|^6" + "psr/log": "^1 || ^2 || ^3", + "symfony/console": "^4.4.8 || ^5 || ^6", + "symfony/event-dispatcher": "^4.4.8 || ^5 || ^6", + "symfony/finder": "^4.4.8 || ^5 || ^6" }, "require-dev": { "composer-runtime-api": "^2.0", @@ -401,9 +401,9 @@ "description": "Initialize Symfony Console commands from annotated command class methods.", "support": { "issues": "https://github.com/consolidation/annotated-command/issues", - "source": "https://github.com/consolidation/annotated-command/tree/4.8.2" + "source": "https://github.com/consolidation/annotated-command/tree/4.9.1" }, - "time": "2023-03-11T19:32:28+00:00" + "time": "2023-05-20T04:19:01+00:00" }, { "name": "consolidation/config", @@ -569,16 +569,16 @@ }, { "name": "consolidation/output-formatters", - "version": "4.2.4", + "version": "4.3.2", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "b377db7e9435c50c4e019c26ec164b547e754ca0" + "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/b377db7e9435c50c4e019c26ec164b547e754ca0", - "reference": "b377db7e9435c50c4e019c26ec164b547e754ca0", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/06711568b4cd169700ff7e8075db0a9a341ceb58", + "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58", "shasum": "" }, "require": { @@ -617,9 +617,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.2.4" + "source": "https://github.com/consolidation/output-formatters/tree/4.3.2" }, - "time": "2023-02-24T03:39:10+00:00" + "time": "2023-07-06T04:45:41+00:00" }, { "name": "consolidation/robo", @@ -696,16 +696,16 @@ }, { "name": "consolidation/self-update", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/consolidation/self-update.git", - "reference": "714b09fdf0513f83292874bb12de0566066040c2" + "reference": "972a1016761c9b63314e040836a12795dff6953a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/self-update/zipball/714b09fdf0513f83292874bb12de0566066040c2", - "reference": "714b09fdf0513f83292874bb12de0566066040c2", + "url": "https://api.github.com/repos/consolidation/self-update/zipball/972a1016761c9b63314e040836a12795dff6953a", + "reference": "972a1016761c9b63314e040836a12795dff6953a", "shasum": "" }, "require": { @@ -745,9 +745,9 @@ "description": "Provides a self:update command for Symfony Console applications.", "support": { "issues": "https://github.com/consolidation/self-update/issues", - "source": "https://github.com/consolidation/self-update/tree/2.1.0" + "source": "https://github.com/consolidation/self-update/tree/2.2.0" }, - "time": "2023-02-21T19:33:55+00:00" + "time": "2023-03-18T01:37:41+00:00" }, { "name": "consolidation/site-alias", @@ -990,32 +990,35 @@ }, { "name": "doctrine/annotations", - "version": "1.13.3", + "version": "1.14.3", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", + "doctrine/lexer": "^1 || ^2", "ext-tokenizer": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", "vimeo/psalm": "^4.10" }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, "type": "library", "autoload": { "psr-4": { @@ -1057,37 +1060,86 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" + "source": "https://github.com/doctrine/annotations/tree/1.14.3" + }, + "time": "2023-02-01T09:20:38+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" }, - "time": "2022-07-02T10:48:51+00:00" + "time": "2023-06-03T09:27:29+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^9 || ^10", "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.0" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1119,7 +1171,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "source": "https://github.com/doctrine/lexer/tree/2.1.0" }, "funding": [ { @@ -1135,30 +1187,33 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-12-14T08:49:07+00:00" }, { "name": "drupal/ckeditor", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/ckeditor.git", - "reference": "1.0.1" + "reference": "1.0.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ckeditor-1.0.1.zip", - "reference": "1.0.1", - "shasum": "d3dd8bfb2301b749599ba48cf76208becdf0eeb3" + "url": "https://ftp.drupal.org/files/projects/ckeditor-1.0.2.zip", + "reference": "1.0.2", + "shasum": "fec2ca9ad852a00c7b9584cb6040dc860364c481" }, "require": { "drupal/core": "^9.4 || ^10" }, + "require-dev": { + "drupal/classy": "*" + }, "type": "drupal-module", "extra": { "drupal": { - "version": "1.0.1", - "datestamp": "1662977541", + "version": "1.0.2", + "datestamp": "1687261951", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1499,24 +1554,24 @@ }, { "name": "drupal/core", - "version": "10.0.9", + "version": "10.1.1", "source": { "type": "git", "url": "https://github.com/drupal/core.git", - "reference": "1299803690cf035d144c468bab6b6bf7e03aca49" + "reference": "91752018a418c9e17448c59c7aff1cb802195c9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/1299803690cf035d144c468bab6b6bf7e03aca49", - "reference": "1299803690cf035d144c468bab6b6bf7e03aca49", + "url": "https://api.github.com/repos/drupal/core/zipball/91752018a418c9e17448c59c7aff1cb802195c9b", + "reference": "91752018a418c9e17448c59c7aff1cb802195c9b", "shasum": "" }, "require": { "asm89/stack-cors": "^2.1", "composer-runtime-api": "^2.1", "composer/semver": "^3.3", - "doctrine/annotations": "^1.13", - "egulias/email-validator": "^3.2.1", + "doctrine/annotations": "^1.14", + "egulias/email-validator": "^3.2.1|^4.0", "ext-date": "*", "ext-dom": "*", "ext-filter": "*", @@ -1531,25 +1586,27 @@ "ext-tokenizer": "*", "ext-xml": "*", "guzzlehttp/guzzle": "^7.5", - "guzzlehttp/psr7": "^2.4", + "guzzlehttp/psr7": "^2.4.5", "masterminds/html5": "^2.7", + "mck89/peast": "^1.14", "pear/archive_tar": "^1.4.14", "php": ">=8.1.0", "psr/log": "^3.0", - "symfony/console": "^6.2", - "symfony/dependency-injection": "^6.2", - "symfony/event-dispatcher": "^6.2", - "symfony/http-foundation": "^6.2", - "symfony/http-kernel": "^6.2", - "symfony/mime": "^6.2", + "sebastian/diff": "^4", + "symfony/console": "^6.3", + "symfony/dependency-injection": "^6.3", + "symfony/event-dispatcher": "^6.3", + "symfony/http-foundation": "^6.3", + "symfony/http-kernel": "^6.3", + "symfony/mime": "^6.3", "symfony/polyfill-iconv": "^1.26", - "symfony/process": "^6.2", + "symfony/process": "^6.3", "symfony/psr-http-message-bridge": "^2.1", - "symfony/routing": "^6.2", - "symfony/serializer": "^6.2", - "symfony/validator": "^6.2", - "symfony/yaml": "^6.2", - "twig/twig": "^3.4.3" + "symfony/routing": "^6.3", + "symfony/serializer": "^6.3", + "symfony/validator": "^6.3", + "symfony/yaml": "^6.3", + "twig/twig": "^3.5.0" }, "conflict": { "drush/drush": "<8.1.10" @@ -1651,22 +1708,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.0.9" + "source": "https://github.com/drupal/core/tree/10.1.1" }, - "time": "2023-05-03T09:53:20+00:00" + "time": "2023-07-06T08:25:16+00:00" }, { "name": "drupal/core-composer-scaffold", - "version": "10.0.9", + "version": "10.1.1", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "22c8b48a5b34864bf433ab3eb6ee7670191c0468" + "reference": "1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/22c8b48a5b34864bf433ab3eb6ee7670191c0468", - "reference": "22c8b48a5b34864bf433ab3eb6ee7670191c0468", + "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51", + "reference": "1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51", "shasum": "" }, "require": { @@ -1701,22 +1758,22 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.0.9" + "source": "https://github.com/drupal/core-composer-scaffold/tree/10.1.1" }, - "time": "2023-04-30T16:15:41+00:00" + "time": "2023-04-30T16:15:32+00:00" }, { "name": "drupal/core-project-message", - "version": "10.0.9", + "version": "10.1.1", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", - "reference": "b4bb5b4c67242def27c2abf5892e5d9bfb7d08f1" + "reference": "59b4475f01debd9a0f173938a06189982c8ebffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-project-message/zipball/b4bb5b4c67242def27c2abf5892e5d9bfb7d08f1", - "reference": "b4bb5b4c67242def27c2abf5892e5d9bfb7d08f1", + "url": "https://api.github.com/repos/drupal/core-project-message/zipball/59b4475f01debd9a0f173938a06189982c8ebffd", + "reference": "59b4475f01debd9a0f173938a06189982c8ebffd", "shasum": "" }, "require": { @@ -1742,74 +1799,76 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/10.0.9" + "source": "https://github.com/drupal/core-project-message/tree/10.1.1" }, - "time": "2022-07-01T08:33:05+00:00" + "time": "2022-07-01T08:32:39+00:00" }, { "name": "drupal/core-recommended", - "version": "10.0.9", + "version": "10.1.1", "source": { "type": "git", "url": "https://github.com/drupal/core-recommended.git", - "reference": "1584a4bbb5d72133a5ce2fd711254dea80a647dc" + "reference": "27f96cd519d2891bbe7a5eeb4c43ff59bae390bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/1584a4bbb5d72133a5ce2fd711254dea80a647dc", - "reference": "1584a4bbb5d72133a5ce2fd711254dea80a647dc", + "url": "https://api.github.com/repos/drupal/core-recommended/zipball/27f96cd519d2891bbe7a5eeb4c43ff59bae390bc", + "reference": "27f96cd519d2891bbe7a5eeb4c43ff59bae390bc", "shasum": "" }, "require": { "asm89/stack-cors": "~v2.1.1", "composer/semver": "~3.3.2", - "doctrine/annotations": "~1.13.3", - "doctrine/lexer": "~1.2.3", - "drupal/core": "10.0.9", - "egulias/email-validator": "~3.2.1", - "guzzlehttp/guzzle": "~7.5.0", - "guzzlehttp/promises": "~1.5.2", - "guzzlehttp/psr7": "~2.4.5", - "masterminds/html5": "~2.7.6", + "doctrine/annotations": "~1.14.3", + "doctrine/deprecations": "~v1.1.1", + "doctrine/lexer": "~2.1.0", + "drupal/core": "10.1.1", + "egulias/email-validator": "~4.0.1", + "guzzlehttp/guzzle": "~7.7.0", + "guzzlehttp/psr7": "~2.5.0", + "masterminds/html5": "~2.8.0", + "mck89/peast": "~v1.15.1", "pear/archive_tar": "~1.4.14", "pear/console_getopt": "~v1.4.3", - "pear/pear-core-minimal": "~v1.10.11", + "pear/pear-core-minimal": "~v1.10.13", "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.1", - "psr/http-factory": "~1.0.1", - "psr/http-message": "~1.0.1", + "psr/http-client": "~1.0.2", + "psr/http-factory": "~1.0.2", "psr/log": "~3.0.0", "ralouphie/getallheaders": "~3.0.3", - "symfony/console": "~v6.2.5", - "symfony/dependency-injection": "~v6.2.6", - "symfony/deprecation-contracts": "~v3.2.0", - "symfony/error-handler": "~v6.2.5", - "symfony/event-dispatcher": "~v6.2.5", - "symfony/event-dispatcher-contracts": "~v3.2.0", - "symfony/http-foundation": "~v6.2.6", - "symfony/http-kernel": "~v6.2.6", - "symfony/mime": "~v6.2.5", + "sebastian/diff": "~4.0.5", + "symfony/console": "~v6.3.0", + "symfony/dependency-injection": "~v6.3.0", + "symfony/deprecation-contracts": "~v3.3.0", + "symfony/error-handler": "~v6.3.0", + "symfony/event-dispatcher": "~v6.3.0", + "symfony/event-dispatcher-contracts": "~v3.3.0", + "symfony/http-foundation": "~v6.3.0", + "symfony/http-kernel": "~v6.3.0", + "symfony/mime": "~v6.3.0", "symfony/polyfill-ctype": "~v1.27.0", "symfony/polyfill-iconv": "~v1.27.0", "symfony/polyfill-intl-grapheme": "~v1.27.0", "symfony/polyfill-intl-idn": "~v1.27.0", "symfony/polyfill-intl-normalizer": "~v1.27.0", "symfony/polyfill-mbstring": "~v1.27.0", - "symfony/process": "~v6.2.5", - "symfony/psr-http-message-bridge": "~v2.1.4", - "symfony/routing": "~v6.2.5", - "symfony/serializer": "~v6.2.5", - "symfony/service-contracts": "~v3.2.0", - "symfony/string": "~v6.2.5", - "symfony/translation-contracts": "~v3.2.0", - "symfony/validator": "~v6.2.5", - "symfony/var-dumper": "~v6.2.5", - "symfony/var-exporter": "~v6.2.5", - "symfony/yaml": "~v6.2.5", - "twig/twig": "~v3.5.0" + "symfony/polyfill-php83": "~v1.27.0", + "symfony/process": "~v6.3.0", + "symfony/psr-http-message-bridge": "~v2.2.0", + "symfony/routing": "~v6.3.0", + "symfony/serializer": "~v6.3.0", + "symfony/service-contracts": "~v3.3.0", + "symfony/string": "~v6.3.0", + "symfony/translation-contracts": "~v3.3.0", + "symfony/validator": "~v6.3.0", + "symfony/var-dumper": "~v6.3.0", + "symfony/var-exporter": "~v6.3.0", + "symfony/yaml": "~v6.3.0", + "twig/twig": "~v3.6.0" }, "conflict": { "webflo/drupal-core-strict": "*" @@ -1821,23 +1880,23 @@ ], "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.0.9" + "source": "https://github.com/drupal/core-recommended/tree/10.1.1" }, - "time": "2023-05-03T09:53:20+00:00" + "time": "2023-07-06T08:25:16+00:00" }, { "name": "drupal/ctools", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/ctools.git", - "reference": "4.0.3" + "reference": "4.0.4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ctools-4.0.3.zip", - "reference": "4.0.3", - "shasum": "4f389b14bd2120069386c2f28f8c4cd49bd2ebfc" + "url": "https://ftp.drupal.org/files/projects/ctools-4.0.4.zip", + "reference": "4.0.4", + "shasum": "4a2474eb2fd525b2add2db0e855c135ba7f0fb70" }, "require": { "drupal/core": "^9.3 || ^10" @@ -1845,8 +1904,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "4.0.3", - "datestamp": "1668631947", + "version": "4.0.4", + "datestamp": "1684299878", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2452,17 +2511,17 @@ }, { "name": "drupal/layout_builder_restrictions", - "version": "2.18.0", + "version": "2.19.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/layout_builder_restrictions.git", - "reference": "8.x-2.18" + "reference": "8.x-2.19" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/layout_builder_restrictions-8.x-2.18.zip", - "reference": "8.x-2.18", - "shasum": "6cfea5db5ec09cdbc46f84d3779e161a7eb426ee" + "url": "https://ftp.drupal.org/files/projects/layout_builder_restrictions-8.x-2.19.zip", + "reference": "8.x-2.19", + "shasum": "562162568d3bf046cc63912f0985fd90c0767033" }, "require": { "drupal/core": "^9.3 || ^10" @@ -2475,8 +2534,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.18", - "datestamp": "1685137856", + "version": "8.x-2.19", + "datestamp": "1688739554", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2498,6 +2557,14 @@ "homepage": "https://www.drupal.org/u/eiriksm", "role": "Maintainer" }, + { + "name": "eiriksm", + "homepage": "https://www.drupal.org/user/1014468" + }, + { + "name": "gravelpot", + "homepage": "https://www.drupal.org/user/748208" + }, { "name": "Jeff Cardwell", "homepage": "https://www.drupal.org/user/2913129" @@ -2544,23 +2611,20 @@ }, { "name": "drupal/linkit", - "version": "6.0.0-rc1", + "version": "6.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/linkit.git", - "reference": "6.0.0-rc1" + "reference": "6.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/linkit-6.0.0-rc1.zip", - "reference": "6.0.0-rc1", - "shasum": "126069976e2a7d34cc8530c0950c75bd7f1b5d3c" + "url": "https://ftp.drupal.org/files/projects/linkit-6.1.0.zip", + "reference": "6.1.0", + "shasum": "0b4c111651ef478091fc0d38360cee168ca17eee" }, "require": { - "drupal/core": "^9.4 || ^10.0.0" - }, - "conflict": { - "drupal/core": ">=10.1" + "drupal/core": "^10.1" }, "require-dev": { "drupal/ckeditor": "*", @@ -2569,11 +2633,11 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.0-rc1", - "datestamp": "1681070405", + "version": "6.1.0", + "datestamp": "1688747800", "security-coverage": { - "status": "not-covered", - "message": "RC releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -2668,190 +2732,6 @@ "source": "https://git.drupalcode.org/project/menu_block" } }, - { - "name": "drupal/migrate_file", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/migrate_file.git", - "reference": "2.1.2" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_file-2.1.2.zip", - "reference": "2.1.2", - "shasum": "3febc85243c9a67991db102a10c6d81c0bea07c5" - }, - "require": { - "drupal/core": "^9 | ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.1.2", - "datestamp": "1674948365", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "drclaw", - "homepage": "https://www.drupal.org/user/823702" - } - ], - "description": "Additional support for migrating files including downloading remote files and using remote uris (without download)", - "homepage": "https://www.drupal.org/project/migrate_file", - "keywords": [ - "Drupal" - ], - "support": { - "source": "http://cgit.drupalcode.org/migrate_file", - "issues": "https://www.drupal.org/project/issues/migrate_file" - } - }, - { - "name": "drupal/migrate_plus", - "version": "6.0.1", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/migrate_plus.git", - "reference": "6.0.1" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_plus-6.0.1.zip", - "reference": "6.0.1", - "shasum": "154e5c627c8b32648cb4b4034a196a289b0626fa" - }, - "require": { - "drupal/core": ">=9.1", - "php": ">=7.4" - }, - "require-dev": { - "drupal/migrate_example_advanced_setup": "*", - "drupal/migrate_example_setup": "*" - }, - "suggest": { - "ext-soap": "*", - "sainsburys/guzzle-oauth2-plugin": "3.0 required for the OAuth2 authentication plugin" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "6.0.1", - "datestamp": "1672428002", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Mike Ryan", - "homepage": "https://www.drupal.org/u/mikeryan", - "role": "Maintainer" - }, - { - "name": "Lucas Hedding", - "homepage": "https://www.drupal.org/u/heddn", - "role": "Maintainer" - }, - { - "name": "mikeryan", - "homepage": "https://www.drupal.org/user/4420" - } - ], - "description": "Enhancements to core migration support.", - "homepage": "https://www.drupal.org/project/migrate_plus", - "support": { - "source": "https://git.drupalcode.org/project/migrate_plus", - "issues": "https://www.drupal.org/project/issues/migrate_plus", - "slack": "#migrate" - } - }, - { - "name": "drupal/migrate_tools", - "version": "6.0.1", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/migrate_tools.git", - "reference": "6.0.1" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/migrate_tools-6.0.1.zip", - "reference": "6.0.1", - "shasum": "8c07d1b61b319acd4fd395e22ef9bf34d23299ba" - }, - "require": { - "drupal/core": ">=9.1", - "php": ">=7.4" - }, - "require-dev": { - "drupal/migrate_plus": ">=5", - "drupal/migrate_source_csv": ">=3", - "drush/drush": ">=11" - }, - "suggest": { - "drupal/migrate_plus": ">=5", - "drush/drush": ">=11" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "6.0.1", - "datestamp": "1672424943", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": ">=9" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Mike Ryan", - "homepage": "https://www.drupal.org/u/mikeryan", - "role": "Maintainer" - }, - { - "name": "Lucas Hedding", - "homepage": "https://www.drupal.org/u/heddn", - "role": "Maintainer" - }, - { - "name": "mikeryan", - "homepage": "https://www.drupal.org/user/4420" - } - ], - "description": "Tools to assist in developing and running migrations.", - "homepage": "http://drupal.org/project/migrate_tools", - "support": { - "source": "https://git.drupalcode.org/project/migrate_tools", - "issues": "https://www.drupal.org/project/issues/migrate_tools", - "slack": "#migrate" - } - }, { "name": "drupal/paragraphs", "version": "1.15.0", @@ -3235,17 +3115,17 @@ }, { "name": "drupal/token", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/token.git", - "reference": "8.x-1.11" + "reference": "8.x-1.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/token-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "da264b36d1f88eb0c74bf84e18e8789854f98400" + "url": "https://ftp.drupal.org/files/projects/token-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "cefe1b203b793682f74ea43e18d0a814cf768763" }, "require": { "drupal/core": "^9.2 || ^10" @@ -3253,8 +3133,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1659471813", + "version": "8.x-1.12", + "datestamp": "1688015262", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3414,22 +3294,22 @@ }, { "name": "drush/drush", - "version": "11.5.1", + "version": "11.6.0", "source": { "type": "git", "url": "https://github.com/drush-ops/drush.git", - "reference": "3138f82baa3b0e29ac935893a444881a7332177d" + "reference": "f301df5dec8d2aacb03d3e01e0ffc6d98e10ae78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/3138f82baa3b0e29ac935893a444881a7332177d", - "reference": "3138f82baa3b0e29ac935893a444881a7332177d", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/f301df5dec8d2aacb03d3e01e0ffc6d98e10ae78", + "reference": "f301df5dec8d2aacb03d3e01e0ffc6d98e10ae78", "shasum": "" }, "require": { "chi-teck/drupal-code-generator": "^2.4", "composer/semver": "^1.4 || ^3", - "consolidation/annotated-command": "^4.7.0", + "consolidation/annotated-command": "^4.8.2", "consolidation/config": "^2", "consolidation/filter-via-dot-access-data": "^2", "consolidation/robo": "^3.0.9 || ^4.0.1", @@ -3547,7 +3427,7 @@ "forum": "http://drupal.stackexchange.com/questions/tagged/drush", "issues": "https://github.com/drush-ops/drush/issues", "slack": "https://drupal.slack.com/messages/C62H9CWQM", - "source": "https://github.com/drush-ops/drush/tree/11.5.1" + "source": "https://github.com/drush-ops/drush/tree/11.6.0" }, "funding": [ { @@ -3555,30 +3435,30 @@ "type": "github" } ], - "time": "2023-02-21T02:32:48+00:00" + "time": "2023-06-06T18:46:18+00:00" }, { "name": "egulias/email-validator", - "version": "3.2.5", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "b531a2311709443320c786feb4519cfaf94af796" + "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b531a2311709443320c786feb4519cfaf94af796", - "reference": "b531a2311709443320c786feb4519cfaf94af796", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff", + "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff", "shasum": "" }, "require": { - "doctrine/lexer": "^1.2|^2", - "php": ">=7.2", - "symfony/polyfill-intl-idn": "^1.15" + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^8.5.8|^9.3.3", - "vimeo/psalm": "^4" + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^4.30" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -3586,7 +3466,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -3614,7 +3494,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.2.5" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.1" }, "funding": [ { @@ -3622,7 +3502,7 @@ "type": "github" } ], - "time": "2023-01-02T17:26:14+00:00" + "time": "2023-01-14T14:17:03+00:00" }, { "name": "enlightn/security-checker", @@ -3806,21 +3686,21 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.5.1", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9" + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0", "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", @@ -3832,7 +3712,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -3846,9 +3727,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -3914,7 +3792,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.1" + "source": "https://github.com/guzzle/guzzle/tree/7.7.0" }, "funding": [ { @@ -3930,38 +3808,37 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:30:08+00:00" + "time": "2023-05-21T14:04:53+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6", + "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -3998,7 +3875,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/2.0.0" }, "funding": [ { @@ -4014,26 +3891,26 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2023-05-21T13:50:22+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.5", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66" + "reference": "b635f279edd83fc275f822a1188157ffea568ff6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/0454e12ef0cd597ccd2adb036f7bda4e7fface66", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", + "reference": "b635f279edd83fc275f822a1188157ffea568ff6", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -4114,7 +3991,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.5" + "source": "https://github.com/guzzle/psr7/tree/2.5.0" }, "funding": [ { @@ -4130,7 +4007,7 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:00:45+00:00" + "time": "2023-04-17T16:11:26+00:00" }, { "name": "league/container", @@ -4216,26 +4093,24 @@ }, { "name": "masterminds/html5", - "version": "2.7.6", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947" + "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3", + "reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-dom": "*", - "ext-libxml": "*", "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" }, "type": "library", "extra": { @@ -4279,22 +4154,72 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" + "source": "https://github.com/Masterminds/html5-php/tree/2.8.0" + }, + "time": "2023-04-26T07:27:39+00:00" + }, + { + "name": "mck89/peast", + "version": "v1.15.1", + "source": { + "type": "git", + "url": "https://github.com/mck89/peast.git", + "reference": "cf06286910b7efc9dce7503553ebee314df3d3d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mck89/peast/zipball/cf06286910b7efc9dce7503553ebee314df3d3d3", + "reference": "cf06286910b7efc9dce7503553ebee314df3d3d3", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.15.1-dev" + } + }, + "autoload": { + "psr-4": { + "Peast\\": "lib/Peast/", + "Peast\\test\\": "test/Peast/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Marco Marchiò", + "email": "marco.mm89@gmail.com" + } + ], + "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.1" }, - "time": "2022-08-18T16:18:26+00:00" + "time": "2023-01-21T13:18:17+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.4", + "version": "v4.16.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + "reference": "19526a33fb561ef417e822e85f08a00db4059c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17", + "reference": "19526a33fb561ef417e822e85f08a00db4059c17", "shasum": "" }, "require": { @@ -4335,9 +4260,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0" }, - "time": "2023-03-05T19:49:14+00:00" + "time": "2023-06-25T14:52:30+00:00" }, { "name": "oomphinc/composer-installers-extender", @@ -4397,215 +4322,25 @@ "time": "2021-12-15T12:32:42+00:00" }, { - "name": "opis/json-schema", - "version": "2.3.0", + "name": "pear/archive_tar", + "version": "1.4.14", "source": { "type": "git", - "url": "https://github.com/opis/json-schema.git", - "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb" + "url": "https://github.com/pear/Archive_Tar.git", + "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/json-schema/zipball/c48df6d7089a45f01e1c82432348f2d5976f9bfb", - "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb", + "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", + "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", "shasum": "" }, "require": { - "ext-json": "*", - "opis/string": "^2.0", - "opis/uri": "^1.0", - "php": "^7.4 || ^8.0" + "pear/pear-core-minimal": "^1.10.0alpha2", + "php": ">=5.2.0" }, "require-dev": { - "ext-bcmath": "*", - "ext-intl": "*", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\JsonSchema\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - }, - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - } - ], - "description": "Json Schema Validator for PHP", - "homepage": "https://opis.io/json-schema", - "keywords": [ - "json", - "json-schema", - "schema", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/opis/json-schema/issues", - "source": "https://github.com/opis/json-schema/tree/2.3.0" - }, - "time": "2022-01-08T20:38:03+00:00" - }, - { - "name": "opis/string", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/opis/string.git", - "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/string/zipball/9ebf1a1f873f502f6859d11210b25a4bf5d141e7", - "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "ext-json": "*", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\String\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "Multibyte strings as objects", - "homepage": "https://opis.io/string", - "keywords": [ - "multi-byte", - "opis", - "string", - "string manipulation", - "utf-8" - ], - "support": { - "issues": "https://github.com/opis/string/issues", - "source": "https://github.com/opis/string/tree/2.0.1" - }, - "time": "2022-01-14T15:42:23+00:00" - }, - { - "name": "opis/uri", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/opis/uri.git", - "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", - "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", - "shasum": "" - }, - "require": { - "opis/string": "^2.0", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Uri\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "Build, parse and validate URIs and URI-templates", - "homepage": "https://opis.io", - "keywords": [ - "URI Template", - "parse url", - "punycode", - "uri", - "uri components", - "url", - "validate uri" - ], - "support": { - "issues": "https://github.com/opis/uri/issues", - "source": "https://github.com/opis/uri/tree/1.1.0" - }, - "time": "2021-05-22T15:57:08+00:00" - }, - { - "name": "pear/archive_tar", - "version": "1.4.14", - "source": { - "type": "git", - "url": "https://github.com/pear/Archive_Tar.git", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Archive_Tar/zipball/4d761c5334c790e45ef3245f0864b8955c562caa", - "reference": "4d761c5334c790e45ef3245f0864b8955c562caa", - "shasum": "" - }, - "require": { - "pear/pear-core-minimal": "^1.10.0alpha2", - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "*" }, "suggest": { "ext-bz2": "Bz2 compression support.", @@ -4826,7 +4561,7 @@ }, { "name": "phootwork/collection", - "version": "v3.2.1", + "version": "v3.2.2", "source": { "type": "git", "url": "https://github.com/phootwork/collection.git", @@ -4875,22 +4610,22 @@ ], "support": { "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/collection/tree/v3.2.1" + "source": "https://github.com/phootwork/collection/tree/v3.2.2" }, "time": "2022-08-27T12:51:24+00:00" }, { "name": "phootwork/lang", - "version": "v3.2.1", + "version": "v3.2.2", "source": { "type": "git", "url": "https://github.com/phootwork/lang.git", - "reference": "f6687cb0e5453ceb7b4a2c4f9fa81273758eedd0" + "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phootwork/lang/zipball/f6687cb0e5453ceb7b4a2c4f9fa81273758eedd0", - "reference": "f6687cb0e5453ceb7b4a2c4f9fa81273758eedd0", + "url": "https://api.github.com/repos/phootwork/lang/zipball/baaf154ae7d521ebeee5e89105f5b12b0f234597", + "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597", "shasum": "" }, "require": { @@ -4924,9 +4659,9 @@ ], "support": { "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/lang/tree/v3.2.1" + "source": "https://github.com/phootwork/lang/tree/v3.2.2" }, - "time": "2022-08-27T12:51:24+00:00" + "time": "2023-05-26T05:37:59+00:00" }, { "name": "phpoption/phpoption", @@ -5316,25 +5051,25 @@ }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -5349,7 +5084,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -5363,9 +5098,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/log", @@ -5419,16 +5154,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.17", + "version": "v0.11.18", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a" + "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3dc5d4018dabd80bceb8fe1e3191ba8460569f0a", - "reference": "3dc5d4018dabd80bceb8fe1e3191ba8460569f0a", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", + "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", "shasum": "" }, "require": { @@ -5489,9 +5224,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.17" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.18" }, - "time": "2023-05-05T20:02:42+00:00" + "time": "2023-05-23T02:31:11+00:00" }, { "name": "ralouphie/getallheaders", @@ -5537,25 +5272,91 @@ }, "time": "2019-03-08T08:55:37+00:00" }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" + }, { "name": "symfony/console", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "12288d9f4500f84a4d02254d4aa968b15488476f" + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/12288d9f4500f84a4d02254d4aa968b15488476f", - "reference": "12288d9f4500f84a4d02254d4aa968b15488476f", + "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/string": "^5.4|^6.0" }, "conflict": { @@ -5577,12 +5378,6 @@ "symfony/process": "^5.4|^6.0", "symfony/var-dumper": "^5.4|^6.0" }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, "type": "library", "autoload": { "psr-4": { @@ -5615,7 +5410,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.10" + "source": "https://github.com/symfony/console/tree/v6.3.0" }, "funding": [ { @@ -5631,34 +5426,34 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:37:43+00:00" + "time": "2023-05-29T12:49:39+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d732a66a2672669232c0b4536c8c96724a679780" + "reference": "7abf242af21f196b65f20ab00ff251fdf3889b8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d732a66a2672669232c0b4536c8c96724a679780", - "reference": "d732a66a2672669232c0b4536c8c96724a679780", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7abf242af21f196b65f20ab00ff251fdf3889b8d", + "reference": "7abf242af21f196b65f20ab00ff251fdf3889b8d", "shasum": "" }, "require": { "php": ">=8.1", "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/service-contracts": "^1.1.6|^2.0|^3.0", - "symfony/var-exporter": "^6.2.7" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.2.10" }, "conflict": { "ext-psr": "<1.1|>=2", "symfony/config": "<6.1", "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.2", + "symfony/proxy-manager-bridge": "<6.3", "symfony/yaml": "<5.4" }, "provide": { @@ -5670,12 +5465,6 @@ "symfony/expression-language": "^5.4|^6.0", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony/yaml": "" - }, "type": "library", "autoload": { "psr-4": { @@ -5702,7 +5491,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.2.10" + "source": "https://github.com/symfony/dependency-injection/tree/v6.3.1" }, "funding": [ { @@ -5718,20 +5507,20 @@ "type": "tidelift" } ], - "time": "2023-04-21T15:42:15+00:00" + "time": "2023-06-24T11:51:27+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { @@ -5740,7 +5529,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -5769,7 +5558,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.2.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -5785,20 +5574,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:25:55+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/error-handler", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8b7e9f124640cb0611624a9383176c3e5f7d8cfb" + "reference": "99d2d814a6351461af350ead4d963bd67451236f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8b7e9f124640cb0611624a9383176c3e5f7d8cfb", - "reference": "8b7e9f124640cb0611624a9383176c3e5f7d8cfb", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f", + "reference": "99d2d814a6351461af350ead4d963bd67451236f", "shasum": "" }, "require": { @@ -5806,8 +5595,11 @@ "psr/log": "^1|^2|^3", "symfony/var-dumper": "^5.4|^6.0" }, + "conflict": { + "symfony/deprecation-contracts": "<2.5" + }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^5.4|^6.0", "symfony/serializer": "^5.4|^6.0" }, @@ -5840,7 +5632,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.2.10" + "source": "https://github.com/symfony/error-handler/tree/v6.3.0" }, "funding": [ { @@ -5856,28 +5648,29 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-05-10T12:03:13+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2|^3" + "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4" + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" }, "provide": { "psr/event-dispatcher-implementation": "1.0", @@ -5890,13 +5683,9 @@ "symfony/error-handler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/stopwatch": "^5.4|^6.0" }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, "type": "library", "autoload": { "psr-4": { @@ -5923,7 +5712,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.2.8" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0" }, "funding": [ { @@ -5939,33 +5728,30 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:06:02+00:00" + "time": "2023-04-21T14:41:17+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd" + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -6002,7 +5788,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" }, "funding": [ { @@ -6018,20 +5804,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/filesystem", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894" + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd588debf7d1bc16a2c84b4b3b71145d9946b894", - "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", "shasum": "" }, "require": { @@ -6065,7 +5851,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.10" + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" }, "funding": [ { @@ -6081,20 +5867,20 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-06-01T08:30:39+00:00" }, { "name": "symfony/finder", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb" + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb", + "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", "shasum": "" }, "require": { @@ -6129,7 +5915,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.7" + "source": "https://github.com/symfony/finder/tree/v6.3.0" }, "funding": [ { @@ -6145,32 +5931,34 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:57:23+00:00" + "time": "2023-04-02T01:25:41+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "49adbb92bcb4e3c2943719d2756271e8b9602acc" + "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49adbb92bcb4e3c2943719d2756271e8b9602acc", - "reference": "49adbb92bcb4e3c2943719d2756271e8b9602acc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e0ad0d153e1c20069250986cd9e9dd1ccebb0d66", + "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" }, "conflict": { "symfony/cache": "<6.2" }, "require-dev": { - "predis/predis": "~1.0", + "doctrine/dbal": "^2.13.1|^3.0", + "predis/predis": "^1.1|^2.0", "symfony/cache": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", @@ -6178,9 +5966,6 @@ "symfony/mime": "^5.4|^6.0", "symfony/rate-limiter": "^5.2|^6.0" }, - "suggest": { - "symfony/mime": "To use the file extension guesser" - }, "type": "library", "autoload": { "psr-4": { @@ -6207,7 +5992,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.2.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.3.1" }, "funding": [ { @@ -6223,29 +6008,29 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-06-24T11:51:27+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "81064a65a5496f17d2b6984f6519406f98864215" + "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/81064a65a5496f17d2b6984f6519406f98864215", - "reference": "81064a65a5496f17d2b6984f6519406f98864215", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/161e16fd2e35fb4881a43bc8b383dfd5be4ac374", + "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^6.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.3", "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^5.4.21|^6.2.7", + "symfony/http-foundation": "^6.2.7", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -6253,15 +6038,18 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.2", + "symfony/dependency-injection": "<6.3", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/mailer": "<5.4", "symfony/messenger": "<5.4", "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", "symfony/twig-bridge": "<5.4", "symfony/validator": "<5.4", + "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, "provide": { @@ -6270,28 +6058,27 @@ "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/browser-kit": "^5.4|^6.0", + "symfony/clock": "^6.2", "symfony/config": "^6.1", "symfony/console": "^5.4|^6.0", "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", + "symfony/dependency-injection": "^6.3", "symfony/dom-crawler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/http-client-contracts": "^2.5|^3", "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4.5|^6.0.5", "symfony/routing": "^5.4|^6.0", + "symfony/serializer": "^6.3", "symfony/stopwatch": "^5.4|^6.0", "symfony/translation": "^5.4|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/translation-contracts": "^2.5|^3", "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^6.3", + "symfony/var-exporter": "^6.2", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, "type": "library", "autoload": { "psr-4": { @@ -6318,7 +6105,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.2.10" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.1" }, "funding": [ { @@ -6334,20 +6121,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:50:28+00:00" + "time": "2023-06-26T06:07:32+00:00" }, { "name": "symfony/mime", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723" + "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b6c137fc53a9f7c4c951cd3f362b3734c7a97723", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723", + "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", + "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", "shasum": "" }, "require": { @@ -6401,7 +6188,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.2.10" + "source": "https://github.com/symfony/mime/tree/v6.3.0" }, "funding": [ { @@ -6417,7 +6204,7 @@ "type": "tidelift" } ], - "time": "2023-04-19T09:54:16+00:00" + "time": "2023-04-28T15:57:00+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7088,12 +6875,92 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "508c652ba3ccf69f8c97f251534f229791b52a57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57", + "reference": "508c652ba3ccf69f8c97f251534f229791b52a57", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" }, "type": "library", "extra": { @@ -7110,11 +6977,8 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Symfony\\Polyfill\\Php83\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7130,7 +6994,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -7139,7 +7003,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0" }, "funding": [ { @@ -7159,16 +7023,16 @@ }, { "name": "symfony/process", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e" + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e", - "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e", + "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628", "shasum": "" }, "require": { @@ -7200,7 +7064,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.10" + "source": "https://github.com/symfony/process/tree/v6.3.0" }, "funding": [ { @@ -7216,36 +7080,36 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:56:57+00:00" + "time": "2023-05-19T08:06:44+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.1.4", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "a125b93ef378c492e274f217874906fb9babdebb" + "reference": "28a732c05bbad801304ad5a5c674cf2970508993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a125b93ef378c492e274f217874906fb9babdebb", - "reference": "a125b93ef378c492e274f217874906fb9babdebb", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/28a732c05bbad801304ad5a5c674cf2970508993", + "reference": "28a732c05bbad801304ad5a5c674cf2970508993", "shasum": "" }, "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0" + "php": ">=7.2.5", + "psr/http-message": "^1.0 || ^2.0", + "symfony/http-foundation": "^5.4 || ^6.0" }, "require-dev": { "nyholm/psr7": "^1.1", "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", - "symfony/config": "^4.4 || ^5.0 || ^6.0", - "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", - "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.4@dev || ^6.0" + "symfony/browser-kit": "^5.4 || ^6.0", + "symfony/config": "^5.4 || ^6.0", + "symfony/event-dispatcher": "^5.4 || ^6.0", + "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/http-kernel": "^5.4 || ^6.0", + "symfony/phpunit-bridge": "^6.2" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" @@ -7253,7 +7117,7 @@ "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-main": "2.1-dev" + "dev-main": "2.2-dev" } }, "autoload": { @@ -7288,7 +7152,7 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.4" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.2.0" }, "funding": [ { @@ -7304,20 +7168,20 @@ "type": "tidelift" } ], - "time": "2022-11-28T22:46:34+00:00" + "time": "2023-04-21T08:40:19+00:00" }, { "name": "symfony/routing", - "version": "v6.2.8", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "69062e2823f03b82265d73a966999660f0e1e404" + "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/69062e2823f03b82265d73a966999660f0e1e404", - "reference": "69062e2823f03b82265d73a966999660f0e1e404", + "url": "https://api.github.com/repos/symfony/routing/zipball/d37ad1779c38b8eb71996d17dc13030dcb7f9cf5", + "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5", "shasum": "" }, "require": { @@ -7338,12 +7202,6 @@ "symfony/http-foundation": "^5.4|^6.0", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, "type": "library", "autoload": { "psr-4": { @@ -7376,7 +7234,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.2.8" + "source": "https://github.com/symfony/routing/tree/v6.3.1" }, "funding": [ { @@ -7392,20 +7250,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T15:00:05+00:00" + "time": "2023-06-05T15:30:22+00:00" }, { "name": "symfony/serializer", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "0732edf0ad28dd3faacde4f1200ab9d7a4d5f40d" + "reference": "1d238ee3180bc047f8ab713bfb73848d553f4407" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/0732edf0ad28dd3faacde4f1200ab9d7a4d5f40d", - "reference": "0732edf0ad28dd3faacde4f1200ab9d7a4d5f40d", + "url": "https://api.github.com/repos/symfony/serializer/zipball/1d238ee3180bc047f8ab713bfb73848d553f4407", + "reference": "1d238ee3180bc047f8ab713bfb73848d553f4407", "shasum": "" }, "require": { @@ -7427,6 +7285,7 @@ "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", "symfony/cache": "^5.4|^6.0", "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/error-handler": "^5.4|^6.0", "symfony/filesystem": "^5.4|^6.0", @@ -7442,15 +7301,6 @@ "symfony/var-exporter": "^5.4|^6.0", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "For using the XML mapping loader.", - "symfony/mime": "For using a MIME type guesser within the DataUriNormalizer.", - "symfony/property-access": "For using the ObjectNormalizer.", - "symfony/property-info": "To deserialize relations.", - "symfony/var-exporter": "For using the metadata compiler.", - "symfony/yaml": "For using the default YAML mapping loader." - }, "type": "library", "autoload": { "psr-4": { @@ -7477,7 +7327,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.2.10" + "source": "https://github.com/symfony/serializer/tree/v6.3.1" }, "funding": [ { @@ -7493,20 +7343,20 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:57:49+00:00" + "time": "2023-06-21T19:54:33+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a" + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { @@ -7516,13 +7366,10 @@ "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -7562,7 +7409,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" }, "funding": [ { @@ -7578,20 +7425,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/string", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", + "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", "shasum": "" }, "require": { @@ -7602,13 +7449,13 @@ "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", "symfony/intl": "^6.2", - "symfony/translation-contracts": "^2.0|^3.0", + "symfony/translation-contracts": "^2.5|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", @@ -7648,7 +7495,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.8" + "source": "https://github.com/symfony/string/tree/v6.3.0" }, "funding": [ { @@ -7664,32 +7511,29 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:06:02+00:00" + "time": "2023-03-21T21:06:29+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8" + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dfec258b9dd17a6b24420d464c43bffe347441c8", - "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", "shasum": "" }, "require": { "php": ">=8.1" }, - "suggest": { - "symfony/translation-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -7729,7 +7573,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" }, "funding": [ { @@ -7745,33 +7589,33 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-30T17:17:10+00:00" }, { "name": "symfony/validator", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "c02ea86844926f04247bc1f5db5f85bb53330823" + "reference": "1b71f43c62ee867ab08195ba6039a1bc3e6654dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/c02ea86844926f04247bc1f5db5f85bb53330823", - "reference": "c02ea86844926f04247bc1f5db5f85bb53330823", + "url": "https://api.github.com/repos/symfony/validator/zipball/1b71f43c62ee867ab08195ba6039a1bc3e6654dc", + "reference": "1b71f43c62ee867ab08195ba6039a1bc3e6654dc", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1|^2|^3" + "symfony/polyfill-php83": "^1.27", + "symfony/translation-contracts": "^2.5|^3" }, "conflict": { "doctrine/annotations": "<1.13", "doctrine/lexer": "<1.1", - "phpunit/phpunit": "<5.4.3", "symfony/dependency-injection": "<5.4", "symfony/expression-language": "<5.4", "symfony/http-kernel": "<5.4", @@ -7799,18 +7643,6 @@ "symfony/translation": "^5.4|^6.0", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the mapping cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/property-access": "For accessing properties within comparison constraints", - "symfony/property-info": "To automatically add NotNull and Type constraints", - "symfony/translation": "For translating validation errors.", - "symfony/yaml": "" - }, "type": "library", "autoload": { "psr-4": { @@ -7837,7 +7669,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.2.10" + "source": "https://github.com/symfony/validator/tree/v6.3.1" }, "funding": [ { @@ -7853,20 +7685,20 @@ "type": "tidelift" } ], - "time": "2023-04-19T09:54:16+00:00" + "time": "2023-06-21T12:08:28+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "41a750a23412ca76fdbbf5096943b4134272c1ab" + "reference": "c81268d6960ddb47af17391a27d222bd58cf0515" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41a750a23412ca76fdbbf5096943b4134272c1ab", - "reference": "41a750a23412ca76fdbbf5096943b4134272c1ab", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c81268d6960ddb47af17391a27d222bd58cf0515", + "reference": "c81268d6960ddb47af17391a27d222bd58cf0515", "shasum": "" }, "require": { @@ -7874,7 +7706,6 @@ "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<5.4" }, "require-dev": { @@ -7884,11 +7715,6 @@ "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, "bin": [ "Resources/bin/var-dump-server" ], @@ -7925,7 +7751,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.10" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.1" }, "funding": [ { @@ -7941,20 +7767,20 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-06-21T12:08:28+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "9a07920c2058bafee921ce4d90aeef2193837d63" + "reference": "db5416d04269f2827d8c54331ba4cfa42620d350" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/9a07920c2058bafee921ce4d90aeef2193837d63", - "reference": "9a07920c2058bafee921ce4d90aeef2193837d63", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/db5416d04269f2827d8c54331ba4cfa42620d350", + "reference": "db5416d04269f2827d8c54331ba4cfa42620d350", "shasum": "" }, "require": { @@ -7999,7 +7825,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.2.10" + "source": "https://github.com/symfony/var-exporter/tree/v6.3.0" }, "funding": [ { @@ -8015,20 +7841,20 @@ "type": "tidelift" } ], - "time": "2023-04-21T08:33:05+00:00" + "time": "2023-04-21T08:48:44+00:00" }, { "name": "symfony/yaml", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d" + "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/61916f3861b1e9705b18cfde723921a71dd1559d", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a9a8337aa641ef2aa39c3e028f9107ec391e5927", + "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927", "shasum": "" }, "require": { @@ -8041,9 +7867,6 @@ "require-dev": { "symfony/console": "^5.4|^6.0" }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, "bin": [ "Resources/bin/yaml-lint" ], @@ -8073,7 +7896,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.2.10" + "source": "https://github.com/symfony/yaml/tree/v6.3.0" }, "funding": [ { @@ -8089,20 +7912,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:25:36+00:00" + "time": "2023-04-28T13:28:14+00:00" }, { "name": "twig/twig", - "version": "v3.5.1", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15" + "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15", - "reference": "a6e0510cc793912b451fd40ab983a1d28f611c15", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", + "reference": "7e7d5839d4bec168dfeef0ac66d5c5a2edbabffd", "shasum": "" }, "require": { @@ -8111,15 +7934,10 @@ "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { - "psr/container": "^1.0", + "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.5-dev" - } - }, "autoload": { "psr-4": { "Twig\\": "src/" @@ -8153,7 +7971,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.5.1" + "source": "https://github.com/twigphp/Twig/tree/v3.6.1" }, "funding": [ { @@ -8165,7 +7983,7 @@ "type": "tidelift" } ], - "time": "2023-02-08T07:49:20+00:00" + "time": "2023-06-08T12:52:13+00:00" }, { "name": "vlucas/phpdotenv", @@ -8798,6 +8616,7 @@ "issues": "https://github.com/minkphp/MinkGoutteDriver/issues", "source": "https://github.com/minkphp/MinkGoutteDriver/tree/v2.0.0" }, + "abandoned": "behat/mink-browserkit-driver", "time": "2021-12-29T10:56:50+00:00" }, { @@ -8917,18 +8736,97 @@ }, "time": "2022-03-30T09:27:43+00:00" }, + { + "name": "colinodell/psr-testlogger", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/colinodell/psr-testlogger.git", + "reference": "9246155e688b310fb3d0f201ead2445686b5844e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/colinodell/psr-testlogger/zipball/9246155e688b310fb3d0f201ead2445686b5844e", + "reference": "9246155e688b310fb3d0f201ead2445686b5844e", + "shasum": "" + }, + "require": { + "php": "^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.9.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.30.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ColinODell\\PsrTestLogger\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "PSR-3 compliant test logger based on psr/log v1's, but compatible with v2 and v3 too!", + "homepage": "https://github.com/colinodell/psr-testlogger", + "keywords": [ + "log", + "logger", + "logging", + "mock", + "phpunit", + "psr", + "test", + "unit" + ], + "support": { + "issues": "https://github.com/colinodell/psr-testlogger/issues", + "rss": "https://github.com/colinodell/psr-testlogger/releases.atom", + "source": "https://github.com/colinodell/psr-testlogger" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2023-03-14T19:12:55+00:00" + }, { "name": "composer/ca-bundle", - "version": "1.3.5", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd" + "reference": "90d087e988ff194065333d16bc5cf649872d9cdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/74780ccf8c19d6acb8d65c5f39cd72110e132bbd", - "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/90d087e988ff194065333d16bc5cf649872d9cdb", + "reference": "90d087e988ff194065333d16bc5cf649872d9cdb", "shasum": "" }, "require": { @@ -8975,7 +8873,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.3.5" + "source": "https://github.com/composer/ca-bundle/tree/1.3.6" }, "funding": [ { @@ -8991,26 +8889,26 @@ "type": "tidelift" } ], - "time": "2023-01-11T08:27:00+00:00" + "time": "2023-06-06T12:02:59+00:00" }, { "name": "composer/class-map-generator", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513" + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/1e1cb2b791facb2dfe32932a7718cf2571187513", - "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", "shasum": "" }, "require": { - "composer/pcre": "^2 || ^3", + "composer/pcre": "^2.1 || ^3.1", "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6" + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" }, "require-dev": { "phpstan/phpstan": "^1.6", @@ -9048,7 +8946,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.0.0" + "source": "https://github.com/composer/class-map-generator/tree/1.1.0" }, "funding": [ { @@ -9064,20 +8962,20 @@ "type": "tidelift" } ], - "time": "2022-06-19T11:31:27+00:00" + "time": "2023-06-30T13:58:57+00:00" }, { "name": "composer/composer", - "version": "2.5.5", + "version": "2.5.8", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "c7cffaad16a60636a776017eac5bd8cd0095c32f" + "reference": "4c516146167d1392c8b9b269bb7c24115d262164" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/c7cffaad16a60636a776017eac5bd8cd0095c32f", - "reference": "c7cffaad16a60636a776017eac5bd8cd0095c32f", + "url": "https://api.github.com/repos/composer/composer/zipball/4c516146167d1392c8b9b269bb7c24115d262164", + "reference": "4c516146167d1392c8b9b269bb7c24115d262164", "shasum": "" }, "require": { @@ -9161,7 +9059,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.5.5" + "source": "https://github.com/composer/composer/tree/2.5.8" }, "funding": [ { @@ -9177,7 +9075,7 @@ "type": "tidelift" } ], - "time": "2023-03-21T10:50:05+00:00" + "time": "2023-06-09T15:13:21+00:00" }, { "name": "composer/metadata-minifier", @@ -9540,49 +9438,6 @@ }, "time": "2022-02-04T12:51:07+00:00" }, - { - "name": "doctrine/deprecations", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" - }, - "time": "2022-05-02T15:47:09+00:00" - }, { "name": "doctrine/instantiator", "version": "2.0.0", @@ -9885,41 +9740,43 @@ }, { "name": "drupal/core-dev", - "version": "10.0.9", + "version": "10.1.1", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", - "reference": "22a053f9de0ce6ce9db2755693b9c81ddf86b3b7" + "reference": "e11a86bc8c037e67c7c5c974fbabe051bbcdcc81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/22a053f9de0ce6ce9db2755693b9c81ddf86b3b7", - "reference": "22a053f9de0ce6ce9db2755693b9c81ddf86b3b7", + "url": "https://api.github.com/repos/drupal/core-dev/zipball/e11a86bc8c037e67c7c5c974fbabe051bbcdcc81", + "reference": "e11a86bc8c037e67c7c5c974fbabe051bbcdcc81", "shasum": "" }, "require": { "behat/mink": "^1.10", "behat/mink-browserkit-driver": "^2.1", "behat/mink-selenium2-driver": "^1.4", + "colinodell/psr-testlogger": "^1.2", "composer/composer": "^2.4", "drupal/coder": "^8.3.10", "instaclick/php-webdriver": "^1.4.1", "justinrainbow/json-schema": "^5.2", - "mglaman/phpstan-drupal": "^1.1.31", + "mglaman/phpstan-drupal": "^1.1.34", "mikey179/vfsstream": "^1.6.11", "phpspec/prophecy-phpunit": "^2", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.10.1", + "phpstan/phpstan-phpunit": "^1.3.11", "phpunit/phpunit": "^9.5", - "symfony/browser-kit": "^6.2", - "symfony/css-selector": "^6.2", - "symfony/dom-crawler": "^6.2", - "symfony/error-handler": "^6.2", - "symfony/filesystem": "^6.2", - "symfony/finder": "^6.2", - "symfony/lock": "^6.2", - "symfony/phpunit-bridge": "^6.2", - "symfony/var-dumper": "^6.2" + "symfony/browser-kit": "^6.3", + "symfony/css-selector": "^6.3", + "symfony/dom-crawler": "^6.3", + "symfony/error-handler": "^6.3", + "symfony/filesystem": "^6.3", + "symfony/finder": "^6.3", + "symfony/lock": "^6.3", + "symfony/phpunit-bridge": "^6.3", + "symfony/var-dumper": "^6.3" }, "conflict": { "webflo/drupal-core-require-dev": "*" @@ -9931,9 +9788,9 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/10.0.9" + "source": "https://github.com/drupal/core-dev/tree/10.1.1" }, - "time": "2023-05-01T11:13:00+00:00" + "time": "2023-05-25T11:39:24+00:00" }, { "name": "drupal/drupal-driver", @@ -10400,16 +10257,16 @@ }, { "name": "mglaman/phpstan-drupal", - "version": "1.1.31", + "version": "1.1.36", "source": { "type": "git", "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "266474ca92b6cfe7443359c6a5972698781aef9f" + "reference": "345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/266474ca92b6cfe7443359c6a5972698781aef9f", - "reference": "266474ca92b6cfe7443359c6a5972698781aef9f", + "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5", + "reference": "345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5", "shasum": "" }, "require": { @@ -10484,7 +10341,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.1.31" + "source": "https://github.com/mglaman/phpstan-drupal/tree/1.1.36" }, "funding": [ { @@ -10500,7 +10357,7 @@ "type": "tidelift" } ], - "time": "2023-04-27T17:33:01+00:00" + "time": "2023-06-28T20:24:39+00:00" }, { "name": "mikey179/vfsstream", @@ -10614,16 +10471,16 @@ }, { "name": "pdepend/pdepend", - "version": "2.13.0", + "version": "2.14.0", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad" + "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1121d4b04af06e33e9659bac3a6741b91cab1de1", + "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1", "shasum": "" }, "require": { @@ -10657,9 +10514,15 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" + ], "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.13.0" + "source": "https://github.com/pdepend/pdepend/tree/2.14.0" }, "funding": [ { @@ -10667,7 +10530,7 @@ "type": "tidelift" } ], - "time": "2023-02-28T20:56:15+00:00" + "time": "2023-05-26T13:15:18+00:00" }, { "name": "phar-io/manifest", @@ -11011,16 +10874,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714" + "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", + "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", "shasum": "" }, "require": { @@ -11063,9 +10926,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.7.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2" }, - "time": "2023-03-27T19:02:04+00:00" + "time": "2023-05-30T18:13:47+00:00" }, { "name": "phpmd/phpmd", @@ -11272,22 +11135,22 @@ }, { "name": "phpstan/extension-installer", - "version": "1.3.0", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/phpstan/extension-installer.git", - "reference": "f5e02d40f277d28513001976f444d9ff1dc15e9a" + "reference": "f45734bfb9984c6c56c4486b71230355f066a58a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f5e02d40f277d28513001976f444d9ff1dc15e9a", - "reference": "f5e02d40f277d28513001976f444d9ff1dc15e9a", + "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a", + "reference": "f45734bfb9984c6c56c4486b71230355f066a58a", "shasum": "" }, "require": { "composer-plugin-api": "^2.0", "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.8.0" + "phpstan/phpstan": "^1.9.0" }, "require-dev": { "composer/composer": "^2.0", @@ -11296,12 +11159,7 @@ }, "type": "composer-plugin", "extra": { - "class": "PHPStan\\ExtensionInstaller\\Plugin", - "phpstan/extension-installer": { - "ignore": [ - "phpstan/phpstan-phpunit" - ] - } + "class": "PHPStan\\ExtensionInstaller\\Plugin" }, "autoload": { "psr-4": { @@ -11315,28 +11173,30 @@ "description": "Composer plugin for automatic installation of PHPStan extensions", "support": { "issues": "https://github.com/phpstan/extension-installer/issues", - "source": "https://github.com/phpstan/extension-installer/tree/1.3.0" + "source": "https://github.com/phpstan/extension-installer/tree/1.3.1" }, - "time": "2023-04-18T13:08:02+00:00" + "time": "2023-05-24T08:59:17+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.20.4", + "version": "1.22.1", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd" + "reference": "65c39594fbd8c67abfc68bb323f86447bab79cc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd", - "reference": "7d568c87a9df9c5f7e8b5f075fc469aa8cb0a4cd", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/65c39594fbd8c67abfc68bb323f86447bab79cc0", + "reference": "65c39594fbd8c67abfc68bb323f86447bab79cc0", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -11360,22 +11220,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.20.4" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.22.1" }, - "time": "2023-05-02T09:19:37+00:00" + "time": "2023-06-29T20:46:06+00:00" }, { "name": "phpstan/phpstan", - "version": "1.10.14", + "version": "1.10.25", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d232901b09e67538e5c86a724be841bea5768a7c" + "reference": "578f4e70d117f9a90699324c555922800ac38d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c", - "reference": "d232901b09e67538e5c86a724be841bea5768a7c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/578f4e70d117f9a90699324c555922800ac38d8c", + "reference": "578f4e70d117f9a90699324c555922800ac38d8c", "shasum": "" }, "require": { @@ -11424,7 +11284,59 @@ "type": "tidelift" } ], - "time": "2023-04-19T13:47:27+00:00" + "time": "2023-07-06T12:11:37+00:00" + }, + { + "name": "phpstan/phpstan-phpunit", + "version": "1.3.13", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpstan-phpunit.git", + "reference": "d8bdab0218c5eb0964338d24a8511b65e9c94fa5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/d8bdab0218c5eb0964338d24a8511b65e9c94fa5", + "reference": "d8bdab0218c5eb0964338d24a8511b65e9c94fa5", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpstan/phpstan": "^1.10" + }, + "conflict": { + "phpunit/phpunit": "<7.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5" + }, + "type": "phpstan-extension", + "extra": { + "phpstan": { + "includes": [ + "extension.neon", + "rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "PHPStan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPUnit extensions and rules for PHPStan", + "support": { + "issues": "https://github.com/phpstan/phpstan-phpunit/issues", + "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.3.13" + }, + "time": "2023-05-26T11:05:59+00:00" }, { "name": "phpunit/php-code-coverage", @@ -11746,16 +11658,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.7", + "version": "9.6.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2" + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", - "reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328", + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328", "shasum": "" }, "require": { @@ -11829,7 +11741,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.7" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.10" }, "funding": [ { @@ -11845,7 +11757,7 @@ "type": "tidelift" } ], - "time": "2023-04-14T08:58:40+00:00" + "time": "2023-07-10T04:04:23+00:00" }, { "name": "pyrech/composer-changelogs", @@ -12273,72 +12185,6 @@ ], "time": "2020-10-26T15:52:27+00:00" }, - { - "name": "sebastian/diff", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:10:38+00:00" - }, { "name": "sebastian/environment", "version": "5.1.5", @@ -12941,16 +12787,16 @@ }, { "name": "seld/jsonlint", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "4211420d25eba80712bff236a98960ef68b866b7" + "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", - "reference": "4211420d25eba80712bff236a98960ef68b866b7", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/594fd6462aad8ecee0b45ca5045acea4776667f1", + "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1", "shasum": "" }, "require": { @@ -12989,7 +12835,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" + "source": "https://github.com/Seldaek/jsonlint/tree/1.10.0" }, "funding": [ { @@ -13001,7 +12847,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T13:37:23+00:00" + "time": "2023-05-11T13:16:46+00:00" }, { "name": "seld/phar-utils", @@ -13290,16 +13136,16 @@ }, { "name": "symfony/browser-kit", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "87bd43240e6cc855f70ea1c7a448ab3bd442633c" + "reference": "0eb7228e7c435169e65c911ba8d107d56d850049" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/87bd43240e6cc855f70ea1c7a448ab3bd442633c", - "reference": "87bd43240e6cc855f70ea1c7a448ab3bd442633c", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0eb7228e7c435169e65c911ba8d107d56d850049", + "reference": "0eb7228e7c435169e65c911ba8d107d56d850049", "shasum": "" }, "require": { @@ -13312,9 +13158,6 @@ "symfony/mime": "^5.4|^6.0", "symfony/process": "^5.4|^6.0" }, - "suggest": { - "symfony/process": "" - }, "type": "library", "autoload": { "psr-4": { @@ -13341,7 +13184,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.2.7" + "source": "https://github.com/symfony/browser-kit/tree/v6.3.0" }, "funding": [ { @@ -13357,41 +13200,39 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-04-25T10:46:17+00:00" }, { "name": "symfony/config", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "249271da6f545d6579e0663374f8249a80be2893" + "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/249271da6f545d6579e0663374f8249a80be2893", - "reference": "249271da6f545d6579e0663374f8249a80be2893", + "url": "https://api.github.com/repos/symfony/config/zipball/a5e00dec161b08c946a2c16eed02adbeedf827ae", + "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/filesystem": "^5.4|^6.0", "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/finder": "<5.4" + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" }, "require-dev": { "symfony/event-dispatcher": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", "symfony/messenger": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" - }, "type": "library", "autoload": { "psr-4": { @@ -13418,7 +13259,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.2.7" + "source": "https://github.com/symfony/config/tree/v6.3.0" }, "funding": [ { @@ -13434,20 +13275,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-04-25T10:46:17+00:00" }, { "name": "symfony/css-selector", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0" + "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/aedf3cb0f5b929ec255d96bbb4909e9932c769e0", - "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", + "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", "shasum": "" }, "require": { @@ -13483,7 +13324,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.2.7" + "source": "https://github.com/symfony/css-selector/tree/v6.3.0" }, "funding": [ { @@ -13499,20 +13340,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-20T16:43:42+00:00" }, { "name": "symfony/dom-crawler", - "version": "v6.2.9", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "328bc3795059651d2d4e462e8febdf7ec2d7a626" + "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/328bc3795059651d2d4e462e8febdf7ec2d7a626", - "reference": "328bc3795059651d2d4e462e8febdf7ec2d7a626", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8aa333f41f05afc7fc285a976b58272fd90fc212", + "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212", "shasum": "" }, "require": { @@ -13524,9 +13365,6 @@ "require-dev": { "symfony/css-selector": "^5.4|^6.0" }, - "suggest": { - "symfony/css-selector": "" - }, "type": "library", "autoload": { "psr-4": { @@ -13553,7 +13391,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.2.9" + "source": "https://github.com/symfony/dom-crawler/tree/v6.3.1" }, "funding": [ { @@ -13569,28 +13407,32 @@ "type": "tidelift" } ], - "time": "2023-04-11T16:03:19+00:00" + "time": "2023-06-05T15:30:22+00:00" }, { "name": "symfony/http-client", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3f5545a91c8e79dedd1a06c4b04e1682c80c42f9" + "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3f5545a91c8e79dedd1a06c4b04e1682c80c42f9", - "reference": "3f5545a91c8e79dedd1a06c4b04e1682c80c42f9", + "url": "https://api.github.com/repos/symfony/http-client/zipball/1c828a06aef2f5eeba42026dfc532d4fc5406123", + "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "^3", - "symfony/service-contracts": "^1.0|^2|^3" + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-foundation": "<6.3" }, "provide": { "php-http/async-client-implementation": "*", @@ -13641,7 +13483,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.2.10" + "source": "https://github.com/symfony/http-client/tree/v6.3.1" }, "funding": [ { @@ -13657,32 +13499,29 @@ "type": "tidelift" } ], - "time": "2023-04-20T13:12:48+00:00" + "time": "2023-06-24T11:51:27+00:00" }, { "name": "symfony/http-client-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "df2ecd6cb70e73c1080e6478aea85f5f4da2c48b" + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/df2ecd6cb70e73c1080e6478aea85f5f4da2c48b", - "reference": "df2ecd6cb70e73c1080e6478aea85f5f4da2c48b", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", "shasum": "" }, "require": { "php": ">=8.1" }, - "suggest": { - "symfony/http-client-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -13722,7 +13561,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" }, "funding": [ { @@ -13738,25 +13577,26 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/lock", - "version": "v6.2.8", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "fe452788cc81762f0840bd2a3dd1f230193186e5" + "reference": "2810c90ee87e76e0b6065cbf5c59f57b9825b536" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/fe452788cc81762f0840bd2a3dd1f230193186e5", - "reference": "fe452788cc81762f0840bd2a3dd1f230193186e5", + "url": "https://api.github.com/repos/symfony/lock/zipball/2810c90ee87e76e0b6065cbf5c59f57b9825b536", + "reference": "2810c90ee87e76e0b6065cbf5c59f57b9825b536", "shasum": "" }, "require": { "php": ">=8.1", - "psr/log": "^1|^2|^3" + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "doctrine/dbal": "<2.13", @@ -13764,7 +13604,7 @@ }, "require-dev": { "doctrine/dbal": "^2.13|^3.0", - "predis/predis": "~1.0" + "predis/predis": "^1.1|^2.0" }, "type": "library", "autoload": { @@ -13800,7 +13640,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v6.2.8" + "source": "https://github.com/symfony/lock/tree/v6.3.1" }, "funding": [ { @@ -13816,20 +13656,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T15:00:05+00:00" + "time": "2023-06-24T11:51:27+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v6.2.10", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "552950db2919421ad917e29e76d1999a2a31a8e3" + "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/552950db2919421ad917e29e76d1999a2a31a8e3", - "reference": "552950db2919421ad917e29e76d1999a2a31a8e3", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/0b0bf59b0d9bd1422145a123a67fb12af546ef0d", + "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d", "shasum": "" }, "require": { @@ -13839,11 +13679,9 @@ "phpunit/phpunit": "<7.5|9.1.2" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3.0", - "symfony/error-handler": "^5.4|^6.0" - }, - "suggest": { - "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/polyfill-php81": "^1.27" }, "bin": [ "bin/simple-phpunit" @@ -13883,7 +13721,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.2.10" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.1" }, "funding": [ { @@ -13899,7 +13737,7 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-06-23T13:25:16+00:00" }, { "name": "symfony/polyfill-php73", @@ -13982,28 +13820,30 @@ }, { "name": "symfony/translation", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5" + "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/817535dbb1721df8b3a8f2489dc7e50bcd6209b5", - "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5", + "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f", + "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f", "shasum": "" }, "require": { "php": ">=8.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.3|^3.0" + "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { "symfony/config": "<5.4", "symfony/console": "<5.4", "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", "symfony/twig-bundle": "<5.4", "symfony/yaml": "<5.4" }, @@ -14017,20 +13857,14 @@ "symfony/console": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-client-contracts": "^2.5|^3.0", "symfony/http-kernel": "^5.4|^6.0", "symfony/intl": "^5.4|^6.0", "symfony/polyfill-intl-icu": "^1.21", "symfony/routing": "^5.4|^6.0", - "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "nikic/php-parser": "To use PhpAstExtractor", - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, "type": "library", "autoload": { "files": [ @@ -14060,7 +13894,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.2.8" + "source": "https://github.com/symfony/translation/tree/v6.3.0" }, "funding": [ { @@ -14076,7 +13910,7 @@ "type": "tidelift" } ], - "time": "2023-03-31T09:14:44+00:00" + "time": "2023-05-19T12:46:45+00:00" }, { "name": "theseer/tokenizer", diff --git a/composer.json b/composer.json index ef9c204179..f3ceb804ef 100644 --- a/composer.json +++ b/composer.json @@ -187,7 +187,6 @@ "docroot/themes/contrib/civictheme/composer.json", "docroot/modules/custom/civictheme_govcms/composer.json", "docroot/modules/custom/civictheme_admin/composer.json", - "docroot/modules/custom/civictheme_migrate/composer.json", "docroot/modules/custom/civictheme_content/composer.json", "docroot/modules/custom/civictheme_dev/composer.json", "docroot/modules/custom/cs_generated_content/composer.json" diff --git a/composer.lock b/composer.lock index 691365dfba..0f5658175a 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": "ab6c03e6c3f3e59af64da96178d3d4f4", + "content-hash": "7242731483f114ee4c836fe160a1661a", "packages": [ { "name": "asm89/stack-cors", @@ -898,16 +898,16 @@ }, { "name": "consolidation/output-formatters", - "version": "4.3.1", + "version": "4.3.2", "source": { "type": "git", "url": "https://github.com/consolidation/output-formatters.git", - "reference": "f65524e9ecd2bd0021c4b18710005caaa6dcbd86" + "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/f65524e9ecd2bd0021c4b18710005caaa6dcbd86", - "reference": "f65524e9ecd2bd0021c4b18710005caaa6dcbd86", + "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/06711568b4cd169700ff7e8075db0a9a341ceb58", + "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58", "shasum": "" }, "require": { @@ -946,9 +946,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.3.1" + "source": "https://github.com/consolidation/output-formatters/tree/4.3.2" }, - "time": "2023-05-20T03:23:06+00:00" + "time": "2023-07-06T04:45:41+00:00" }, { "name": "consolidation/robo", @@ -3753,7 +3753,7 @@ }, { "name": "drupal/core-composer-scaffold", - "version": "9.5.9", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/drupal/core-composer-scaffold.git", @@ -3797,13 +3797,13 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/9.5.9" + "source": "https://github.com/drupal/core-composer-scaffold/tree/9.5.10" }, "time": "2023-04-30T16:17:33+00:00" }, { "name": "drupal/core-project-message", - "version": "9.5.9", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/drupal/core-project-message.git", @@ -3838,7 +3838,7 @@ "drupal" ], "support": { - "source": "https://github.com/drupal/core-project-message/tree/9.5.9" + "source": "https://github.com/drupal/core-project-message/tree/9.5.10" }, "time": "2022-02-24T17:40:53+00:00" }, @@ -6240,6 +6240,14 @@ "homepage": "https://www.drupal.org/u/eiriksm", "role": "Maintainer" }, + { + "name": "eiriksm", + "homepage": "https://www.drupal.org/user/1014468" + }, + { + "name": "gravelpot", + "homepage": "https://www.drupal.org/user/748208" + }, { "name": "Jeff Cardwell", "homepage": "https://www.drupal.org/user/2913129" @@ -8001,6 +8009,10 @@ "homepage": "https://www.drupal.org/u/fabianderijk", "role": "Maintainer" }, + { + "name": "fabianderijk", + "homepage": "https://www.drupal.org/user/278745" + }, { "name": "immoreel", "homepage": "https://www.drupal.org/user/1695422" @@ -8890,6 +8902,10 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "cmlara", + "homepage": "https://www.drupal.org/user/1790054" + }, { "name": "coltrane", "homepage": "https://www.drupal.org/user/91990" @@ -10963,16 +10979,16 @@ }, { "name": "league/oauth2-server", - "version": "8.5.2", + "version": "8.5.3", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-server.git", - "reference": "8ab731e84eef904b5913ba31b38116acf8ea50b6" + "reference": "eb91b4190e7f6169053ebf8ffa352d47e756b2ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/8ab731e84eef904b5913ba31b38116acf8ea50b6", - "reference": "8ab731e84eef904b5913ba31b38116acf8ea50b6", + "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/eb91b4190e7f6169053ebf8ffa352d47e756b2ce", + "reference": "eb91b4190e7f6169053ebf8ffa352d47e756b2ce", "shasum": "" }, "require": { @@ -11039,7 +11055,7 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth2-server/issues", - "source": "https://github.com/thephpleague/oauth2-server/tree/8.5.2" + "source": "https://github.com/thephpleague/oauth2-server/tree/8.5.3" }, "funding": [ { @@ -11047,7 +11063,7 @@ "type": "github" } ], - "time": "2023-06-16T15:32:47+00:00" + "time": "2023-07-05T23:01:32+00:00" }, { "name": "league/uri", @@ -11680,196 +11696,6 @@ }, "time": "2021-12-15T12:32:42+00:00" }, - { - "name": "opis/json-schema", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/opis/json-schema.git", - "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/json-schema/zipball/c48df6d7089a45f01e1c82432348f2d5976f9bfb", - "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb", - "shasum": "" - }, - "require": { - "ext-json": "*", - "opis/string": "^2.0", - "opis/uri": "^1.0", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "ext-bcmath": "*", - "ext-intl": "*", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\JsonSchema\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - }, - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - } - ], - "description": "Json Schema Validator for PHP", - "homepage": "https://opis.io/json-schema", - "keywords": [ - "json", - "json-schema", - "schema", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/opis/json-schema/issues", - "source": "https://github.com/opis/json-schema/tree/2.3.0" - }, - "time": "2022-01-08T20:38:03+00:00" - }, - { - "name": "opis/string", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/opis/string.git", - "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/string/zipball/9ebf1a1f873f502f6859d11210b25a4bf5d141e7", - "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "ext-json": "*", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\String\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "Multibyte strings as objects", - "homepage": "https://opis.io/string", - "keywords": [ - "multi-byte", - "opis", - "string", - "string manipulation", - "utf-8" - ], - "support": { - "issues": "https://github.com/opis/string/issues", - "source": "https://github.com/opis/string/tree/2.0.1" - }, - "time": "2022-01-14T15:42:23+00:00" - }, - { - "name": "opis/uri", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/opis/uri.git", - "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", - "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a", - "shasum": "" - }, - "require": { - "opis/string": "^2.0", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Uri\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "Build, parse and validate URIs and URI-templates", - "homepage": "https://opis.io", - "keywords": [ - "URI Template", - "parse url", - "punycode", - "uri", - "uri components", - "url", - "validate uri" - ], - "support": { - "issues": "https://github.com/opis/uri/issues", - "source": "https://github.com/opis/uri/tree/1.1.0" - }, - "time": "2021-05-22T15:57:08+00:00" - }, { "name": "paragonie/constant_time_encoding", "version": "v2.6.3", @@ -17693,7 +17519,7 @@ }, { "name": "drupal/core-dev", - "version": "9.5.9", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/drupal/core-dev.git", @@ -17737,7 +17563,7 @@ ], "description": "require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.", "support": { - "source": "https://github.com/drupal/core-dev/tree/9.5.9" + "source": "https://github.com/drupal/core-dev/tree/9.5.10" }, "time": "2022-07-27T00:23:55+00:00" }, @@ -19423,16 +19249,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.9", + "version": "9.6.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a9aceaf20a682aeacf28d582654a1670d8826778" + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a9aceaf20a682aeacf28d582654a1670d8826778", - "reference": "a9aceaf20a682aeacf28d582654a1670d8826778", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328", + "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328", "shasum": "" }, "require": { @@ -19506,7 +19332,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.9" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.10" }, "funding": [ { @@ -19522,7 +19348,7 @@ "type": "tidelift" } ], - "time": "2023-06-11T06:13:56+00:00" + "time": "2023-07-10T04:04:23+00:00" }, { "name": "pyrech/composer-changelogs", diff --git a/docroot/modules/custom/civictheme_content/modules/civictheme_content_corporate/config/optional/civictheme.settings.yml b/docroot/modules/custom/civictheme_content/modules/civictheme_content_corporate/config/optional/civictheme.settings.yml index 56b8e16490..706a46207d 100644 --- a/docroot/modules/custom/civictheme_content/modules/civictheme_content_corporate/config/optional/civictheme.settings.yml +++ b/docroot/modules/custom/civictheme_content/modules/civictheme_content_corporate/config/optional/civictheme.settings.yml @@ -113,5 +113,3 @@ colors: warning: '#c95100' error: '#ce3936' success: '#008482' -migration: - expose_metadata: false diff --git a/docroot/modules/custom/civictheme_content/modules/civictheme_content_default/config/optional/civictheme.settings.yml b/docroot/modules/custom/civictheme_content/modules/civictheme_content_default/config/optional/civictheme.settings.yml index 7ef523dedc..eb6f908cfa 100644 --- a/docroot/modules/custom/civictheme_content/modules/civictheme_content_default/config/optional/civictheme.settings.yml +++ b/docroot/modules/custom/civictheme_content/modules/civictheme_content_default/config/optional/civictheme.settings.yml @@ -113,5 +113,3 @@ colors: warning: '#c95100' error: '#ce3936' success: '#008482' -migration: - expose_metadata: false diff --git a/docroot/modules/custom/civictheme_content/modules/civictheme_content_government/config/optional/civictheme.settings.yml b/docroot/modules/custom/civictheme_content/modules/civictheme_content_government/config/optional/civictheme.settings.yml index 755db4b1df..d648546814 100644 --- a/docroot/modules/custom/civictheme_content/modules/civictheme_content_government/config/optional/civictheme.settings.yml +++ b/docroot/modules/custom/civictheme_content/modules/civictheme_content_government/config/optional/civictheme.settings.yml @@ -113,5 +113,3 @@ colors: warning: '#e38444' error: '#e75653' success: '#12b0ae' -migration: - expose_metadata: false diff --git a/docroot/modules/custom/civictheme_content/modules/civictheme_content_highereducation/config/optional/civictheme.settings.yml b/docroot/modules/custom/civictheme_content/modules/civictheme_content_highereducation/config/optional/civictheme.settings.yml index 11570ec9a3..53cb69d3e0 100644 --- a/docroot/modules/custom/civictheme_content/modules/civictheme_content_highereducation/config/optional/civictheme.settings.yml +++ b/docroot/modules/custom/civictheme_content/modules/civictheme_content_highereducation/config/optional/civictheme.settings.yml @@ -113,5 +113,3 @@ colors: warning: '#f5ae5c' error: '#ed6b5e' success: '#1ea593' -migration: - expose_metadata: false diff --git a/docroot/modules/custom/civictheme_migrate/MAPPINGS.md b/docroot/modules/custom/civictheme_migrate/MAPPINGS.md deleted file mode 100644 index 0cf24d91c5..0000000000 --- a/docroot/modules/custom/civictheme_migrate/MAPPINGS.md +++ /dev/null @@ -1,132 +0,0 @@ -This document is used as a starting point to define a "contract" between field -names provided in MerlinUI when defining extractors so that consumer migration -modules could define such field as "source" fields. - -## Legend - -The table below describes the meaning of the columns in the tables describing -migration mappings. - -Such tables created for each entity type and bundle. - -They have identical structure and meaning of the columns. - -| Table column | Purpose | -|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Field description | The purpose of the field | -| Required | Whether the field value is required to be provided in the migration source files | -| Merlin UI | The field name in the migration **source** coming from Merlin UI | -| Merlin UI version | The version of Merlin UI when the field was introduced with the name specified in "Merlin UI field name" column. | -| CivicTheme field name | The field name in the migration **destination** coming from Merlin UI | -| CivicTheme version | The version of CivicTheme when the field was introduced with the name specified in "CivicTheme field name" column. | -| Status | - `draft` - field mapping is proposed for a review
- `in review` - field mapping is in review by all parties
- `approved` - field mapping is approved and ready to be used
| - -## Content - -### Page (`civictheme_page`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-------------------------------------|----------|----------------------------------|-------------------|----------------------------------------------|--------------------|----------| -| Page ID (Migration ID) | Yes | `id` | 1.5 | `id` | 1.4 | approved | -| Page title | Yes | `title` | 1.5 | `title` | 1.4 | approved | -| Page URL alias | No | `alias` | 1.5 | `alias` | 1.4 | approved | -| Page Summary | No | `summary` | 1.5 | `field_c_n_summary` | 1.4 | approved | -| Topics (array of topics) | No | `topics` | 1.5 | `field_c_n_topics` | 1.4 | approved | -| Thumbnail | No | `thumbnail` | 1.5 | `field_c_n_thumbnail` | 1.4 | approved | -| Vertical spacing | No | `vertical_spacing` | 1.5 | `field_c_n_vertical_spacing` | 1.4 | approved | -| Hide sidebar | No | `hide_sidebar` | 1.5 | `field_c_n_hide_sidebar` | 1.4 | approved | -| Show last updated date | No | `show_last_updated_date` | 1.5 | `field_c_n_show_last_updated` | 1.4 | approved | -| Last updated date | No | `last_updated_date` | 1.5 | `field_c_n_custom_last_updated` | 1.4 | approved | -| Show table of contents | No | `show_toc` | 1.5 | `field_c_n_show_toc` | 1.4 | approved | -| Container for banner items | No | `banner` | 1.5 | | 1.4 | approved | -| Banner theme | No | `banner.theme` | 1.5 | `field_c_n_banner_theme` | 1.4 | approved | -| Banner title | No | `banner.title` | 1.5 | `field_c_n_banner_title` | 1.4 | approved | -| Banner type | No | `banner.type` | 1.5 | `field_c_n_banner_type` | 1.4 | approved | -| Banner blend mode | No | `banner.blend_mode` | 1.5 | `field_c_n_blend_mode` | 1.4 | approved | -| Banner featured image | No | `banner.featured_image` | 1.5 | `field_c_n_banner_featured_image` | 1.4 | approved | -| Banner background image | No | `banner.background` | 1.5 | `field_c_n_banner_background_image` | 1.4 | approved | -| Hide breadcrumb | No | `banner.hide_breadcrumb` | 1.5 | `field_c_n_banner_hide_breadcrumb` | 1.4 | approved | -| Container for components | No | `content` | 1.5 | `field_c_n_components` | 1.4 | approved | -| Container for Content component | No | `content.text_content` | 1.5 | | 1.4 | approved | -| Container for Manual list component | No | `content.manual_list` | 1.5 | | 1.4 | approved | -| Container for Accordion component | No | `content.accordion` | 1.5 | | 1.4 | approved | -| Container for Attachment component | No | `content.attachment` | 1.5 | | 1.4 | approved | -| Attachment component title | No | `content.attachment.title` | 1.5 | `field_c_n_components.field_c_p_title` | 1.4 | approved | -| Attachment component content | No | `content.attachment.content` | 1.5 | `field_c_n_components.field_c_p_content` | 1.4 | approved | -| Attachment component attachments | No | `content.attachment.attachments` | 1.5 | `field_c_n_components.field_c_p_attachments` | 1.4 | approved | - -### Event (`civictheme_event`) - -TBD - -## Media - -### Image (`civictheme_image`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Image name | Yes | `name` | 1.5 | `name` | 1.4 | approved | -| File URL | Yes | `file` | 1.5 | `field_c_m_image` | 1.4 | approved | -| Alternative text | No | `alt` | 1.5 | `field_c_m_image` | 1.4 | approved | - -### Icon (`civictheme_icon`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Image name | Yes | `name` | 1.5 | `name` | 1.4 | approved | -| File URL | Yes | `file` | 1.5 | `field_c_m_icon` | 1.4 | approved | - -### Document (`civictheme_document`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Document name | Yes | `name` | 1.5 | `name` | 1.4 | approved | -| File URL | Yes | `file` | 1.5 | `field_c_m_document` | 1.4 | approved | - -### Video (`civictheme_video`) - -TBD - -### Remote video (`civictheme_remote_video`) - -TBD - -### Audio (`civictheme_audio`) - -TBD - -## Menus - -### Primary (`civictheme-primary-navigation`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-----------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Menu item text | Yes | `text` | 1.5 | `title` | 1.4 | approved | -| Menu item URL | Yes | `link` | 1.5 | `link` | 1.4 | approved | -| Parent menu item UUID | Yes | `parent` | 1.5 | `parent` | 1.4 | approved | -| Weight | Yes | `weight` | 1.5 | `weight` | 1.4 | approved | - -### Secondary (`civictheme-secondary-navigation`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-----------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Menu item text | Yes | `text` | 1.5 | `title` | 1.4 | approved | -| Menu item URL | Yes | `link` | 1.5 | `link` | 1.4 | approved | -| Parent menu item UUID | Yes | `parent` | 1.5 | `parent` | 1.4 | approved | -| Weight | Yes | `weight` | 1.5 | `weight` | 1.4 | approved | - -### Footer (`civictheme-footer`) - -| Field description | Required | Merlin UI field name | Merlin UI version | CivicTheme field name | CivicTheme version | Status | -|-----------------------|----------|----------------------|-------------------|-----------------------|--------------------|----------| -| Unique identifier | Yes | `uuid` | 1.5 | `id` | 1.4 | approved | -| Menu item text | Yes | `text` | 1.5 | `title` | 1.4 | approved | -| Menu item URL | Yes | `link` | 1.5 | `link` | 1.4 | approved | -| Parent menu item UUID | Yes | `parent` | 1.5 | `parent` | 1.4 | approved | -| Weight | Yes | `weight` | 1.5 | `weight` | 1.4 | approved | - diff --git a/docroot/modules/custom/civictheme_migrate/README.md b/docroot/modules/custom/civictheme_migrate/README.md deleted file mode 100644 index 1adc9b3fb7..0000000000 --- a/docroot/modules/custom/civictheme_migrate/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# CivicTheme Migrate - -A Drupal module providing pre-defined CivicTheme mappings for performing -migrations from URLs or files in JSON format. - -## How it works - -This module includes `migrate_plus` [migration configurations](config/install) -for CivicTheme entities. - -Upon installation, the migration configurations are copied into the site's -configurations. - -You can then edit each migration -at `admin/structure/migrate/manage/civictheme_migrate/migrations//edit` -to provide sources, such as URLs or uploaded files (a combination of both is -also supported). Once the migration is updated, the newly discovered content -from the provided sources is available for import. - -## Migration file structure (schema) validation - -This module offers migration schemas for validating the structure of uploaded -files. See the [schema README.md](schemas/README.md) for more -details. - -## Remote authentication - -If your migration soures are remote URLs and require authentication, you can -configure it at the `/admin/config/civictheme-migrate` page. - -Currently, only basic authentication is supported. - -## Maintenance - -The mappings with third-party services are documented in -the [MAPPINGS.md](MAPPINGS.md) file. These documented mappings are reflected in -both [migration configurations](config/install) -and [migration schemas](schemas). - -When creating a new migration configuration, follow these guidelines: - -1. Create the migration as a standard `migrate_plus` migration and place it - into `config/install`. -2. Name the migration in the `_` format, resulting in a - configuration file named `migrate_plus.migration._.yml`. -3. Set the `source.urls` property to an empty array (`[]`). -4. Add a new data set into a [Kernel test](tests/src/Kernel/MigrationFileValidatorKernelTest.php) - and a [fixture](tests/fixtures) file to make sure that the provided schema - validates correctly. diff --git a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.info.yml b/docroot/modules/custom/civictheme_migrate/civictheme_migrate.info.yml deleted file mode 100644 index e474a7c73d..0000000000 --- a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.info.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: 'CivicTheme Migrate' -type: module -description: 'Migration mappings for CivicTheme.' -configure: civictheme_migrate.settings -core_version_requirement: ^9 || ^10 -package: CivicTheme -dependencies: - - drupal:migrate - - drupal:path_alias - - migrate_file:migrate_file - - migrate_plus:migrate_plus - - migrate_tools:migrate_tools -#;< DEVELOPMENT -config_devel: - install: - - civictheme_migrate.settings - - migrate_plus.migration.block_civictheme - - migrate_plus.migration.block_content_civictheme_component_block - - migrate_plus.migration.media_civictheme_document - - migrate_plus.migration.media_civictheme_icon - - migrate_plus.migration.media_civictheme_image - - migrate_plus.migration.menu_link_content_civictheme_footer - - migrate_plus.migration.menu_link_content_civictheme_primary_navigation - - migrate_plus.migration.menu_link_content_civictheme_secondary_navigation - - migrate_plus.migration.node_civictheme_page - - migrate_plus.migration.node_civictheme_page_annotate - - migrate_plus.migration_group.civictheme_migrate -#;> DEVELOPMENT diff --git a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.links.menu.yml b/docroot/modules/custom/civictheme_migrate/civictheme_migrate.links.menu.yml deleted file mode 100644 index 3a215b155f..0000000000 --- a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.links.menu.yml +++ /dev/null @@ -1,5 +0,0 @@ -civictheme_migrate.settings: - title: 'CivicTheme Migrate' - description: 'CivicTheme Migrate settings' - parent: system.admin_config_development - route_name: civictheme_migrate.settings diff --git a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.module b/docroot/modules/custom/civictheme_migrate/civictheme_migrate.module deleted file mode 100644 index 5f74995a03..0000000000 --- a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.module +++ /dev/null @@ -1,35 +0,0 @@ -get('civictheme_migrate.migration_file_validator'); - - return $validator->validate($migration_schema_id, $file->getFileUri()); -} - -/** - * Implements hook_form_FORM_ID_alter(). - */ -function civictheme_migrate_form_migration_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) { - \Drupal::classResolver(MigrationEditFormAlter::class)->formAlter($form, $form_state, $form_id); -} diff --git a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.routing.yml b/docroot/modules/custom/civictheme_migrate/civictheme_migrate.routing.yml deleted file mode 100644 index aaca30731c..0000000000 --- a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.routing.yml +++ /dev/null @@ -1,9 +0,0 @@ -civictheme_migrate.settings: - path: '/admin/config/civictheme-migrate' - defaults: - _title: 'CivicTheme Migrate settings' - _form: '\Drupal\civictheme_migrate\Form\SettingsForm' - requirements: - _permission: 'administer migrations' - options: - _admin_route: TRUE diff --git a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.services.yml b/docroot/modules/custom/civictheme_migrate/civictheme_migrate.services.yml deleted file mode 100644 index d901f625f1..0000000000 --- a/docroot/modules/custom/civictheme_migrate/civictheme_migrate.services.yml +++ /dev/null @@ -1,42 +0,0 @@ -services: - civictheme_migrate.migration_file_validator: - class: \Drupal\civictheme_migrate\Validator\MigrationFileValidator - arguments: - - '@civictheme_migrate.migration_schema_manager' - - '@civictheme_migrate.json_schema_validator' - - civictheme_migrate.migration_schema_manager: - class: \Drupal\civictheme_migrate\Validator\MigrationSchemaManager - arguments: - - '@extension.path.resolver' - - civictheme_migrate.json_schema_validator: - class: '\Opis\JsonSchema\Validator' - public: false - - civictheme_migrate.component_factory: - class: Drupal\civictheme_migrate\Component\ComponentFactory - arguments: - - '@entity_type.manager' - - '@migrate.lookup' - - '@civictheme_migrate.converter_manager' - - civictheme_migrate.converter_manager: - class: Drupal\civictheme_migrate\Converter\ConverterManager - arguments: - - '@civictheme_migrate.lookup_manager' - - civictheme_migrate.lookup_manager: - class: Drupal\civictheme_migrate\LookupManager - arguments: - - '@entity_type.manager' - - '@path_alias.manager' - - '@file.usage' - - '@stream_wrapper_manager' - - civictheme_migrate.migration_plugin_subscriber: - class: Drupal\civictheme_migrate\EventSubscriber\MigrationPluginSubscriber - arguments: - - '@config.factory' - tags: - - { name: event_subscriber } diff --git a/docroot/modules/custom/civictheme_migrate/composer.json b/docroot/modules/custom/civictheme_migrate/composer.json deleted file mode 100644 index 207f87da8d..0000000000 --- a/docroot/modules/custom/civictheme_migrate/composer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "salsadigitalauorg/civictheme_migrate", - "description": "Migration mappings for CivicTheme Drupal theme.", - "type": "drupal-module", - "support": { - "source": "https://github.com/salsadigitalauorg/civictheme_source", - "issues": "https://github.com/salsadigitalauorg/civictheme_source/issues" - }, - "license": "GPL-2.0-or-later", - "require": { - "php": ">=8.1", - "opis/json-schema": "^2.3", - "drupal/migrate_plus": "^6.0", - "drupal/migrate_tools": "^6.0", - "drupal/migrate_file": "^2.1.2" - } -} diff --git a/docroot/modules/custom/civictheme_migrate/config/install/civictheme_migrate.settings.yml b/docroot/modules/custom/civictheme_migrate/config/install/civictheme_migrate.settings.yml deleted file mode 100644 index d162ffc60e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/civictheme_migrate.settings.yml +++ /dev/null @@ -1,6 +0,0 @@ -local_domains: { } -remote_authentication: - type: none - basic: - username: '' - password: '' diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_civictheme.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_civictheme.yml deleted file mode 100644 index ec3beef79e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_civictheme.yml +++ /dev/null @@ -1,85 +0,0 @@ -uuid: 8ab9aea2-be8f-4d47-8a8d-df4ca03df2f4 -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: block_civictheme -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate - - civictheme_block_migration -migration_group: civictheme_migrate -label: 'Block CivicTheme' -source: - plugin: url - data_fetcher_plugin: file - data_parser_plugin: json - ids: - id: - type: string - fields: - - - name: id - label: ID - selector: id - - - name: content - label: Content - selector: content/0 - - - name: info - label: Content - selector: description - - - name: region - label: Region - selector: region - urls: [] -process: - theme: - - - plugin: block_theme_default - module: - - - plugin: default_value - default_value: 'civictheme_core' - id: - - - plugin: concat - source: - - "@theme" - - info - delimiter: _ - - - plugin: machine_name - field: id - block: - - - plugin: default_value - default_value: 'block_content:' - plugin: - - - plugin: block_plugin - source: content - field_c_b_components: - - - plugin: content_components - source: content - region: - - - plugin: get - source: region - - - plugin: default_value - default_value: 'content_bottom' -destination: - plugin: 'entity:block' - default_bundle: civictheme_block - validate: true -migration_dependencies: - required: - - block_content_civictheme_component_block diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_content_civictheme_component_block.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_content_civictheme_component_block.yml deleted file mode 100644 index 59e19b836a..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.block_content_civictheme_component_block.yml +++ /dev/null @@ -1,56 +0,0 @@ -uuid: f63fb7fb-d22d-40b1-88fb-7758fa8e5a1c -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: block_content_civictheme_component_block -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate - - civictheme_block_content_migration -migration_group: civictheme_migrate -label: 'Block content CivicTheme' -source: - plugin: url - data_fetcher_plugin: file - data_parser_plugin: json - ids: - id: - type: string - fields: - - - name: id - label: ID - selector: id - - - name: content - label: Components - selector: content/children - - - name: info - label: Description - selector: description - urls: [] -process: - info: - - - plugin: get - source: info - field_c_b_components: - - - plugin: content_components - source: content -destination: - plugin: 'entity:block_content' - default_bundle: civictheme_component_block - validate: true -migration_dependencies: - required: - - media_civictheme_image - - media_civictheme_icon - - media_civictheme_document - - node_civictheme_page diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_document.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_document.yml deleted file mode 100644 index 04c68fe23b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_document.yml +++ /dev/null @@ -1,55 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: media_civictheme_document -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate - - civictheme_media_migration -migration_group: civictheme_migrate -label: 'Media CivicTheme Document' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - ids: - uuid: - type: string - fields: - - - name: url - label: 'File URL' - selector: file - - - name: name - label: 'Entity Name' - selector: name - - - name: uuid - label: 'Entity ID' - selector: uuid - urls: { } -process: - name: name - field_c_m_document/target_id: - - - plugin: skip_on_empty - method: row - source: url - - - plugin: file_import - skip_on_missing_source: true - skip_on_error: true - file_exist: 'use existing' - id_only: true -destination: - plugin: 'entity:media' - default_bundle: civictheme_document - validate: true -migration_dependencies: { } diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_icon.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_icon.yml deleted file mode 100644 index 6a4861cda5..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_icon.yml +++ /dev/null @@ -1,55 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: media_civictheme_icon -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate - - civictheme_media_migration -migration_group: civictheme_migrate -label: 'Media CivicTheme Icon' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - ids: - uuid: - type: string - fields: - - - name: url - label: 'File URL' - selector: file - - - name: name - label: 'Entity Name' - selector: name - - - name: uuid - label: 'Entity ID' - selector: uuid - urls: { } -process: - name: name - field_c_m_icon/target_id: - - - plugin: skip_on_empty - method: row - source: url - - - plugin: file_import - skip_on_missing_source: true - skip_on_error: true - file_exist: 'use existing' - id_only: true -destination: - plugin: 'entity:media' - default_bundle: civictheme_icon - validate: true -migration_dependencies: { } diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_image.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_image.yml deleted file mode 100644 index 97cce56057..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.media_civictheme_image.yml +++ /dev/null @@ -1,65 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: media_civictheme_image -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate - - civictheme_media_migration -migration_group: civictheme_migrate -label: 'Media CivicTheme Image' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - ids: - uuid: - type: string - fields: - - - name: url - label: 'File URL' - selector: file - - - name: name - label: 'Entity Name' - selector: name - - - name: uuid - label: 'Entity ID' - selector: uuid - - - name: alt - label: 'Alternative text' - selector: alt - urls: { } -process: - name: name - field_c_m_image/target_id: - - - plugin: skip_on_empty - method: row - source: url - - - plugin: file_import - skip_on_missing_source: true - skip_on_error: true - file_exist: 'use existing' - id_only: true - field_c_m_image/alt: - - - plugin: substr - source: alt - start: 0 - length: 510 -destination: - plugin: 'entity:media' - default_bundle: civictheme_image - validate: true -migration_dependencies: { } diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_footer.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_footer.yml deleted file mode 100644 index 542c95b33b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_footer.yml +++ /dev/null @@ -1,86 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: menu_link_content_civictheme_footer -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate -migration_group: civictheme_migrate -label: 'Menu links for Footer' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - fields: - - - name: uuid - label: ID - selector: uuid - - - name: title - label: Title - selector: text - - - name: link - label: Path - selector: link - - - name: parent - label: Parent - selector: parent - - - name: weight - label: Weight - selector: weight - ids: - uuid: - type: string - urls: { } -process: - bundle: menu_link_content - title: - - - plugin: skip_on_empty - method: row - source: title - menu_name: - plugin: default_value - default_value: civictheme-footer - link: - - - plugin: skip_on_empty - method: row - source: link - external: - plugin: url_is_external - source: link - weight: - - - plugin: get - source: weight - expanded: - plugin: default_value - default_value: 1 - enabled: - plugin: default_value - default_value: 1 - parent: - plugin: menu_link_parent - source: - - parent - - '@menu_name' - - parent_link_path -destination: - plugin: 'entity:menu_link_content' - validation_bundle: civictheme_footer - validate: true -migration_dependencies: - required: - - node_civictheme_page - diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_primary_navigation.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_primary_navigation.yml deleted file mode 100644 index 03bb812484..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_primary_navigation.yml +++ /dev/null @@ -1,85 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: menu_link_content_civictheme_primary_navigation -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate -migration_group: civictheme_migrate -label: 'Menu links for Primary navigation' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - fields: - - - name: uuid - label: ID - selector: uuid - - - name: title - label: Title - selector: text - - - name: link - label: Path - selector: link - - - name: parent - label: Parent - selector: parent - - - name: weight - label: Weight - selector: weight - ids: - uuid: - type: string - urls: { } -process: - bundle: menu_link_content - title: - - - plugin: skip_on_empty - method: row - source: title - menu_name: - plugin: default_value - default_value: civictheme-primary-navigation - link: - - - plugin: skip_on_empty - method: row - source: link - external: - plugin: url_is_external - source: link - weight: - - - plugin: get - source: weight - expanded: - plugin: default_value - default_value: 1 - enabled: - plugin: default_value - default_value: 1 - parent: - plugin: menu_link_parent - source: - - parent - - '@menu_name' - - parent_link_path -destination: - plugin: 'entity:menu_link_content' - validation_bundle: civictheme_primary_navigation - validate: true -migration_dependencies: - required: - - node_civictheme_page diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_secondary_navigation.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_secondary_navigation.yml deleted file mode 100644 index 327de3c44a..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.menu_link_content_civictheme_secondary_navigation.yml +++ /dev/null @@ -1,86 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: menu_link_content_civictheme_secondary_navigation -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate -migration_group: civictheme_migrate -label: 'Menu links for Secondary navigation' -source: - plugin: url - item_selector: data - data_fetcher_plugin: file - data_parser_plugin: json - fields: - - - name: uuid - label: ID - selector: uuid - - - name: title - label: Title - selector: text - - - name: link - label: Path - selector: link - - - name: parent - label: Parent - selector: parent - - - name: weight - label: Weight - selector: weight - ids: - uuid: - type: string - urls: { } -process: - bundle: menu_link_content - title: - - - plugin: skip_on_empty - method: row - source: title - menu_name: - plugin: default_value - default_value: civictheme-secondary-navigation - link: - - - plugin: skip_on_empty - method: row - source: link - external: - plugin: url_is_external - source: link - weight: - - - plugin: get - source: weight - expanded: - plugin: default_value - default_value: 1 - enabled: - plugin: default_value - default_value: 1 - parent: - plugin: menu_link_parent - source: - - parent - - '@menu_name' - - parent_link_path -destination: - plugin: 'entity:menu_link_content' - validation_bundle: civictheme_secondary_navigation - validate: true -migration_dependencies: - required: - - node_civictheme_page - diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page.yml deleted file mode 100644 index 054185710f..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page.yml +++ /dev/null @@ -1,225 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: node_civictheme_page -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate -migration_group: civictheme_migrate -label: 'Node CivicTheme Page' -source: - plugin: url - data_fetcher_plugin: file - data_parser_plugin: json - fields: - - - name: id - label: ID - selector: id - - - name: title - label: Title - selector: title - - - name: alias - label: 'Path alias' - selector: alias - - - name: summary - label: Summary - selector: summary - - - name: topics - label: 'Topic tags' - selector: topics - - - name: vertical_spacing - label: 'Vertical Spacing' - selector: vertical_spacing - - - name: thumbnail_id - label: 'Thumbnail id' - selector: thumbnail/0 - - - name: hide_sidebar - label: 'Hide sidebar' - selector: hide_sidebar - - - name: show_toc - label: 'Show table of contents' - selector: show_toc - - - name: show_last_updated_date - label: 'Show last updated date' - selector: show_last_updated_date - - - name: last_updated_date - label: 'Custom updated date' - selector: last_updated_date - - - name: banner_theme - label: 'Banner theme' - selector: banner/children/0/theme - - - name: banner_type - label: 'Banner type' - selector: banner/children/0/type - - - name: banner_title - label: 'Banner title' - selector: banner/children/0/title - - - name: banner_featured_image_id - label: 'Featured image id' - selector: banner/children/0/featured_image/0 - - - name: banner_background_image_id - label: 'Banner background image id' - selector: banner/children/0/background/0 - - - name: banner_blend_mode - label: 'Banner blend mode' - selector: banner/children/0/blend_mode - - - name: banner_hide_breadcrumb - label: 'Hide breadcrumb in banner' - selector: banner/children/0/hide_breadcrumb - - - name: content - label: Components - selector: content/children - ids: - alias: - type: string - max_length: 2048 - urls: { } -process: - title: - - - plugin: skip_on_empty - source: title - method: row - message: 'Title is empty' - - - plugin: substr - length: 255 - field_c_n_summary: summary - field_c_n_topics: - - - plugin: entity_generate - source: topics - value_key: name - ignore_case: true - operator: STARTS_WITH - entity_type: taxonomy_term - bundle_key: vid - bundle: civictheme_topics - field_c_n_vertical_spacing: - - - plugin: get - source: vertical_spacing - - - plugin: default_value - default_value: 'none' - field_c_n_hide_sidebar: - - - plugin: get - source: hide_sidebar - - - plugin: default_value - default_value: 0 - field_c_n_thumbnail: - plugin: migration_lookup - migration: media_civictheme_image - source: thumbnail_id - field_c_n_show_last_updated: - - - plugin: get - source: show_last_updated_date - - - plugin: default_value - default_value: 0 - field_c_n_custom_last_updated: - - - plugin: str_replace - source: last_updated_date - search: 'Last updated: ' - replace: '' - - - plugin: callback - callable: strtotime - - - plugin: format_date - from_format: 'U' - to_format: Y-m-d - settings: - validate_format: true - - - plugin: skip_on_empty - method: process - field_c_n_show_toc: - - - plugin: get - source: show_toc - - - plugin: default_value - default_value: 0 - field_c_n_banner_theme: - - - plugin: get - source: banner_theme - - - plugin: default_value - default_value: dark - field_c_n_banner_type: - - - plugin: get - source: banner_type - - - plugin: default_value - default_value: default - field_c_n_banner_title: banner_title - field_c_n_banner_featured_image: - plugin: migration_lookup - migration: media_civictheme_image - source: banner_featured_image_id - field_c_n_banner_background: - plugin: migration_lookup - migration: media_civictheme_image - source: banner_background_image_id - field_c_n_blend_mode: - - - plugin: get - source: banner_blend_mode - - - plugin: default_value - default_value: color - field_c_n_banner_hide_breadcrumb: - - - plugin: get - source: banner_hide_breadcrumb - - - plugin: default_value - default_value: 0 - path/pathauto: - plugin: default_value - default_value: 0 - path/alias: - - - plugin: str_replace - source: alias - search: '//' - replace: '/' -destination: - plugin: 'entity:node' - default_bundle: civictheme_page - validate: true -migration_dependencies: - required: - - media_civictheme_image - - media_civictheme_document diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page_annotate.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page_annotate.yml deleted file mode 100644 index 75c84670f7..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration.node_civictheme_page_annotate.yml +++ /dev/null @@ -1,62 +0,0 @@ -langcode: en -status: true -dependencies: - enforced: - module: - - civictheme_migrate -id: node_civictheme_page_annotate -class: null -field_plugin_method: null -cck_plugin_method: null -migration_tags: - - civictheme_migrate -migration_group: civictheme_migrate -label: 'Node CivicTheme Page Annotate' -source: - plugin: url - data_fetcher_plugin: file - data_parser_plugin: json - fields: - - - name: id - label: ID - selector: id - - - name: alias - label: 'Path alias' - selector: alias - - - name: content - label: Components - selector: content/children - ids: - alias: - type: string - max_length: 2048 - urls: { } -process: - nid: - - - plugin: skip_on_empty - source: alias - method: row - message: 'URL is empty' - - - plugin: migration_lookup - migration: node_civictheme_page - no_stub: true - field_c_n_components: - - - plugin: content_components - source: content -destination: - plugin: 'entity:node' - default_bundle: civictheme_page - overwrite_properties: - - field_c_n_components -migration_dependencies: - required: - - media_civictheme_image - - media_civictheme_icon - - media_civictheme_document - - node_civictheme_page diff --git a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration_group.civictheme_migrate.yml b/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration_group.civictheme_migrate.yml deleted file mode 100644 index df8561d341..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/install/migrate_plus.migration_group.civictheme_migrate.yml +++ /dev/null @@ -1,9 +0,0 @@ -langcode: en -status: true -dependencies: {} -id: civictheme_migrate -label: 'CivicTheme Migrate' -description: 'CivicTheme migration' -source_type: 'Local or remote JSON files' -module: null -shared_configuration: {} \ No newline at end of file diff --git a/docroot/modules/custom/civictheme_migrate/config/schema/civictheme_migrate.schema.yml b/docroot/modules/custom/civictheme_migrate/config/schema/civictheme_migrate.schema.yml deleted file mode 100644 index f56cb03ea1..0000000000 --- a/docroot/modules/custom/civictheme_migrate/config/schema/civictheme_migrate.schema.yml +++ /dev/null @@ -1,30 +0,0 @@ -civictheme_migrate.settings: - label: 'CivicTheme Migrate settings' - type: config_object - mapping: - local_domains: - type: sequence - label: 'Local Domains' - sequence: - type: string - label: 'Domain' - remote_authentication: - label: 'Remote authentication settings' - type: mapping - mapping: - type: - label: 'Authentication type' - type: string - nullable: true - basic: - label: 'Basic authentication' - type: mapping - mapping: - username: - label: 'Username' - type: string - nullable: true - password: - label: 'Password' - type: string - nullable: true diff --git a/docroot/modules/custom/civictheme_migrate/schemas/README.md b/docroot/modules/custom/civictheme_migrate/schemas/README.md deleted file mode 100644 index bb6edb5be1..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Migration Schemas - -This directory contains [JSON Schema](https://json-schema.org)-based schemas for -validating migration source files. - -Developers of CivicTheme should update these schemas when data models change. - -## Naming Convention - -To be automatically discovered, the schema files must follow the naming -pattern `_.json`. diff --git a/docroot/modules/custom/civictheme_migrate/schemas/block_civictheme_block.json b/docroot/modules/custom/civictheme_migrate/schemas/block_civictheme_block.json deleted file mode 100644 index a2ee0a9c3b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/block_civictheme_block.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id for content" - }, - "description": { - "type": "string", - "description": "Block machine name" - }, - "content": { - "type": "array", - "items": { - "type": "string", - "description": "Block content uuid" - } - }, - "region": { - "type": "string", - "description": "Region" - } - }, - "required": [ - "id", - "description", - "content", - "region" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/block_content_civictheme_component_block.json b/docroot/modules/custom/civictheme_migrate/schemas/block_content_civictheme_component_block.json deleted file mode 100644 index 58e0a109fc..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/block_content_civictheme_component_block.json +++ /dev/null @@ -1,485 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id for content" - }, - "description": { - "type": "string", - "description": "Block title" - }, - "content": { - "$id": "#root/items/content", - "title": "Content", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items", - "title": "Items", - "type": "object", - "properties": { - "text_content": { - "$id": "#root/items/content/children/items/text_content", - "title": "Text_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/text_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/text_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - }, - "promo": { - "$id": "#root/items/content/children/items/promo", - "title": "Promo", - "type": "object", - "required": [ - "content", - "link" - ], - "properties": { - "content": { - "$id": "#root/items/content/children/items/promo/content", - "title": "Content", - "type": "string", - "default": "" - }, - "link": { - "$id": "#root/items/content/children/items/promo/link", - "title": "Link", - "default": "", - "type": "object", - "required": [ - "uri", - "title" - ], - "properties": { - "uri": { - "$id": "#root/items/content/children/items/promo/link/items/uri", - "title": "Uri", - "type": "string", - "default": "" - }, - "title": { - "$id": "#root/items/content/children/items/promo/link/items/title", - "title": "Title", - "type": "string", - "default": "" - } - } - } - } - }, - "manual_list": { - "$id": "#root/items/content/children/items/manual_list", - "title": "Manual_list", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/manual_list/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/manual_list/children", - "title": "Children", - "type": "object", - "required": [ - "cards" - ], - "properties": { - "cards": { - "$id": "#root/items/content/children/items/manual_list/children/cards", - "title": "Cards", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/manual_list/children/cards/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items", - "title": "Items", - "type": "object", - "properties": { - "promo_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card", - "title": "Promo_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "event_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card", - "title": "Event_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "publication_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card", - "title": "Publication_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "service_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card", - "title": "Service_card", - "type": "object", - "required": [ - "item_title", - "item_links" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_links": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links", - "title": "Item_links", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items", - "title": "Items", - "type": "object", - "required": [ - "uri", - "title" - ], - "properties": { - "uri": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items/uri", - "title": "Uri", - "type": "string", - "default": "" - }, - "title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items/title", - "title": "Title", - "type": "string", - "default": "" - } - } - } - } - } - }, - "subject_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/subject_card", - "title": "Subject_card", - "type": "object", - "required": [ - "item_title" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/subject_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - } - } - } - } - } - } - } - } - } - } - } - }, - "accordion": { - "$id": "#root/items/content/children/items/accordion", - "title": "Accordion", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children", - "title": "Children", - "type": "object", - "required": [ - "accordion_title", - "accordion_list" - ], - "properties": { - "accordion_title": { - "$id": "#root/items/content/children/items/accordion/children/accordion_title", - "title": "Accordion_title", - "type": "string", - "default": "" - }, - "accordion_list": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list", - "title": "Accordion_list", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items", - "title": "Items", - "type": "object", - "required": [ - "accordion_items" - ], - "properties": { - "accordion_items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items", - "title": "Accordion_items", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items", - "title": "Items", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - }, - "required": [ - "id", - "content", - "description" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_document.json b/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_document.json deleted file mode 100644 index 7e9e4af7a2..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_document.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "items": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Entity UUID" - }, - "name": { - "type": "string", - "description": "Entity name" - }, - "file": { - "type": "string", - "description": "File URL" - } - }, - "required": [ - "uuid", - "name", - "file" - ] - } - } - }, - "required": [ - "data" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_image.json b/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_image.json deleted file mode 100644 index 8509feeaed..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/media_civictheme_image.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "items": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Entity UUID" - }, - "name": { - "type": "string", - "description": "Entity name" - }, - "file": { - "type": "string", - "description": "File URL" - }, - "alt": { - "type": "string", - "description": "Alternative text" - } - }, - "required": [ - "uuid", - "name", - "file" - ] - } - } - }, - "required": [ - "data" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_footer.json b/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_footer.json deleted file mode 100644 index b8b59408e2..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_footer.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "items": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Menu item UUID" - }, - "text": { - "type": "string", - "description": "Menu item text" - }, - "link": { - "type": "string", - "description": "Menu item URL" - }, - "parent": { - "type": "string", - "description": "Parent menu item UUID" - }, - "weight": { - "type": "integer", - "description": "Weight" - } - }, - "required": [ - "uuid", - "text", - "link", - "parent", - "weight" - ] - } - } - }, - "required": [ - "data" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_primary_navigation.json b/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_primary_navigation.json deleted file mode 100644 index b8b59408e2..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_primary_navigation.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "items": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Menu item UUID" - }, - "text": { - "type": "string", - "description": "Menu item text" - }, - "link": { - "type": "string", - "description": "Menu item URL" - }, - "parent": { - "type": "string", - "description": "Parent menu item UUID" - }, - "weight": { - "type": "integer", - "description": "Weight" - } - }, - "required": [ - "uuid", - "text", - "link", - "parent", - "weight" - ] - } - } - }, - "required": [ - "data" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_secondary_navigation.json b/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_secondary_navigation.json deleted file mode 100644 index b8b59408e2..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/menu_link_content_civictheme_secondary_navigation.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "items": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "uuid": { - "type": "string", - "description": "Menu item UUID" - }, - "text": { - "type": "string", - "description": "Menu item text" - }, - "link": { - "type": "string", - "description": "Menu item URL" - }, - "parent": { - "type": "string", - "description": "Parent menu item UUID" - }, - "weight": { - "type": "integer", - "description": "Weight" - } - }, - "required": [ - "uuid", - "text", - "link", - "parent", - "weight" - ] - } - } - }, - "required": [ - "data" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/schemas/node_civictheme_page.json b/docroot/modules/custom/civictheme_migrate/schemas/node_civictheme_page.json deleted file mode 100644 index bd34aeed32..0000000000 --- a/docroot/modules/custom/civictheme_migrate/schemas/node_civictheme_page.json +++ /dev/null @@ -1,542 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique ID for the node" - }, - "title": { - "type": "string", - "description": "Page title" - }, - "alias": { - "type": "string", - "description": "Page url alias, validation ensures backslash at start of url alias", - "pattern": "^\\/[\\S]+$" - }, - "summary": { - "type": "string", - "description": "Page summary" - }, - "topics": { - "type": "array", - "items": { - "type": "string", - "description": "Topic name" - } - }, - "thumbnail": { - "type": "array", - "items": { - "type": "string", - "description": "Media uuid" - } - }, - "vertical_spacing": { - "type": "string", - "pattern": "none|top|bottom|both", - "description": "Page level vertical spacing" - }, - "show_toc": { - "type": "boolean", - "description": "Whether to hide table of contents" - }, - "hide_sidebar": { - "type": "boolean", - "description": "Whether to hide sidebar" - }, - "show_last_updated_date": { - "type": "boolean", - "description": "Determines if last updated date is visible or not" - }, - "last_updated_date": { - "type": "string", - "description": "Last updated date in `D MMM YYYY`format" - }, - "banner": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Hardcoded Merlin UI Output", - "pattern": "container" - }, - "children": { - "type": "array", - "contains": { - "type": "object", - "properties": { - "theme": { - "type": "string", - "description": "Banner theme", - "pattern": "light|dark|inherit" - }, - "type": { - "type": "string", - "description": "Type of banner", - "pattern": "default|large|inherit" - }, - "title": { - "type": "string", - "description": "Banner title" - }, - "featured_image": { - "type": "array", - "items": { - "type": "string", - "description": "Media uuid" - } - }, - "background": { - "type": "array", - "items": { - "type": "string", - "description": "Media uuid" - } - }, - "blend_mode": { - "type": "string", - "description": "Banner blend mode", - "pattern": "color|color-burn|darken|difference|exclusion|hard-light|hue|lighten|luminosity|multiply|normal|overlay|saturation|screen|soft-light" - }, - "hide_breadcrumb": { - "type": "boolean", - "description": "Whether to hide breadcrumb in banner" - } - } - } - } - } - }, - "content": { - "$id": "#root/items/content", - "title": "Content", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items", - "title": "Items", - "type": "object", - "properties": { - "text_content": { - "$id": "#root/items/content/children/items/text_content", - "title": "Text_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/text_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/text_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - }, - "manual_list": { - "$id": "#root/items/content/children/items/manual_list", - "title": "Manual_list", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/manual_list/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/manual_list/children", - "title": "Children", - "type": "object", - "required": [ - "cards" - ], - "properties": { - "cards": { - "$id": "#root/items/content/children/items/manual_list/children/cards", - "title": "Cards", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/manual_list/children/cards/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items", - "title": "Items", - "type": "object", - "properties": { - "promo_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card", - "title": "Promo_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/promo_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "event_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card", - "title": "Event_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/event_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "publication_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card", - "title": "Publication_card", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/publication_card/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - }, - "service_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card", - "title": "Service_card", - "type": "object", - "required": [ - "item_title", - "item_links" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_links": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links", - "title": "Item_links", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items", - "title": "Items", - "type": "object", - "required": [ - "uri", - "title" - ], - "properties": { - "uri": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items/uri", - "title": "Uri", - "type": "string", - "default": "" - }, - "title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/service_card/item_links/items/title", - "title": "Title", - "type": "string", - "default": "" - } - } - } - } - } - }, - "subject_card": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/subject_card", - "title": "Subject_card", - "type": "object", - "required": [ - "item_title" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/manual_list/children/cards/children/items/subject_card/item_title", - "title": "Item_title", - "type": "string", - "default": "" - } - } - } - } - } - } - } - } - } - } - } - }, - "accordion": { - "$id": "#root/items/content/children/items/accordion", - "title": "Accordion", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children", - "title": "Children", - "type": "object", - "required": [ - "accordion_title", - "accordion_list" - ], - "properties": { - "accordion_title": { - "$id": "#root/items/content/children/items/accordion/children/accordion_title", - "title": "Accordion_title", - "type": "string", - "default": "" - }, - "accordion_list": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list", - "title": "Accordion_list", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items", - "title": "Items", - "type": "object", - "required": [ - "accordion_items" - ], - "properties": { - "accordion_items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items", - "title": "Accordion_items", - "type": "object", - "required": [ - "type", - "children" - ], - "properties": { - "type": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/type", - "title": "Type", - "type": "string", - "default": "" - }, - "children": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children", - "title": "Children", - "type": "array", - "default": [], - "items": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items", - "title": "Items", - "type": "object", - "required": [ - "item_title", - "item_content" - ], - "properties": { - "item_title": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_title", - "title": "Item_title", - "type": "string", - "default": "" - }, - "item_content": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content", - "title": "Item_content", - "type": "object", - "required": [ - "format", - "value" - ], - "properties": { - "format": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content/format", - "title": "Format", - "type": "string", - "default": "" - }, - "value": { - "$id": "#root/items/content/children/items/accordion/children/accordion_list/children/items/accordion_items/children/items/item_content/value", - "title": "Value", - "type": "string", - "default": "" - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - }, - "required": [ - "id", - "title" - ] - } -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/AbstractCivicThemeComponent.php b/docroot/modules/custom/civictheme_migrate/src/Component/AbstractCivicThemeComponent.php deleted file mode 100644 index d3f5d7ede6..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/AbstractCivicThemeComponent.php +++ /dev/null @@ -1,44 +0,0 @@ -toArray(), 'field_c_p_', TRUE); - } - - /** - * Create paragraph from stub. - */ - protected static function createParagraph($type, $stub, $field_prefix = '', $save = FALSE) { - $paragraph = Paragraph::create([ - 'type' => $type, - ]); - - // Attaching all fields to paragraph. - foreach ($stub as $field_name => $value) { - $field_name = $field_prefix . $field_name; - if ($paragraph->hasField($field_name)) { - $paragraph->{$field_name} = $value; - } - } - - if ($save) { - $paragraph->save(); - } - - return $paragraph; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/AbstractComponent.php b/docroot/modules/custom/civictheme_migrate/src/Component/AbstractComponent.php deleted file mode 100644 index 5721e75534..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/AbstractComponent.php +++ /dev/null @@ -1,192 +0,0 @@ -entityTypeManager = $entity_type_manager; - $this->migrateLookup = $migrate_lookup; - $this->converterManager = $converter_manager; - - // Validate data. - $this->validateMigrateData($data); - // Prepare stub from the provided data. - $stub = $this->prepareStub($data, $context); - // Convert data to fields. - $this->fieldsFromStub($stub); - // Build structure. - $this->structure = $this->build(); - } - - /** - * {@inheritdoc} - */ - public static function name(): string { - return (new CamelCaseToSnakeCaseNameConverter()) - ->normalize((new \ReflectionClass(static::class))->getShortName()); - } - - /** - * {@inheritdoc} - */ - public static function migrateName(): string { - // By default, the name of the source mapping field is the name of the - // destination component class. - return static::name(); - } - - /** - * {@inheritdoc} - */ - public function structure(): mixed { - return $this->structure; - } - - /** - * {@inheritdoc} - */ - public function toArray(): array { - $stub = []; - - $reflection = new \ReflectionClass($this); - foreach ($reflection->getMethods() as $method) { - if (str_starts_with($method->getName(), 'get') && $method->getDeclaringClass()->getName() === $reflection->getName()) { - $field_name = (new CamelCaseToSnakeCaseNameConverter()) - ->normalize(substr($method->getName(), 3)); - $stub[$field_name] = $method->invoke($this); - } - } - - return $stub; - } - - /** - * Validate the migrate data required to create the component. - * - * @param array $data - * The data from the source mapping. - * - * @throws \Exception - * If the data is not valid. - */ - protected function validateMigrateData(array $data): void { - // Validate that all required fields are present. - // Other validations may be added in the implementation classes. - $fields = static::migrateFields(); - $missing_fields = array_keys(array_diff_key(array_flip($fields), $data)); - if (!empty($missing_fields)) { - throw new \Exception(sprintf('Missing fields: %s', implode(', ', $missing_fields))); - } - } - - /** - * Prepare data before creating the component. - * - * Implementations may override this method to prepare data before creating - * components. - * - * @param mixed $data - * The data from the source mapping which has already been validated. - * @param array $context - * The migration context. - * - * @return array - * The data to then pass to the component for creation. - */ - protected function prepareStub($data, array $context): array { - return $data; - } - - /** - * Convert stub data to fields using setters. - * - * This guarantees that the component will have only supported fields. - * - * @param array $stub - * The stub data. - */ - protected function fieldsFromStub(array $stub): void { - foreach ($stub as $field_name => $value) { - $method = 'set' . (new CamelCaseToSnakeCaseNameConverter(NULL, TRUE))->denormalize($field_name); - if (method_exists(static::class, $method)) { - $this->{$method}($value); - } - } - } - - /** - * Build a component using provided data. - * - * The component name and data has already been validated and normalised - * prior to calling this method. - * - * Implementations can return any type of object expected by the calling - * factory. They can also throw an exception if the component cannot be - * instantiated. - * - * @return mixed - * Component built structure. - */ - abstract protected function build(): mixed; - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Accordion.php b/docroot/modules/custom/civictheme_migrate/src/Component/Accordion.php deleted file mode 100644 index 0c6b730b9b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Accordion.php +++ /dev/null @@ -1,134 +0,0 @@ -panels; - } - - /** - * Set the panels. - * - * @param array $value - * Array of panels. - */ - public function setPanels(array $value): void { - $this->panels = $value; - } - - /** - * Get whether to expand all panels initially. - */ - public function getExpand(): bool { - return $this->expand; - } - - /** - * Set whether to expand all panels initially. - */ - public function setExpand($value): void { - $this->expand = (bool) $value; - } - - /** - * {@inheritdoc} - */ - public static function migrateFields(): array { - return ['children']; - } - - /** - * {@inheritdoc} - */ - protected function prepareStub($data, array $context): array { - if (!empty($data['children']['accordion_list']['children'])) { - $panels = []; - foreach ($data['children']['accordion_list']['children'] as $items) { - $children = NestedArray::getValue($items, [ - 'accordion_items', - 'children', - ]); - foreach ($children as $child) { - if (empty($child['item_title']) || empty($child['item_content']['value'])) { - continue; - } - $panels[] = [ - 'title' => $child['item_title'], - 'content' => $this->preprocessContent($child['item_content']['value']), - ]; - } - } - - $data['panels'] = $panels; - } - - if (!empty($options['expand_all'])) { - $data['expand'] = (bool) $data['expand_all']; - } - - return $data; - } - - /** - * {@inheritdoc} - */ - protected function build(): mixed { - $paragraph = parent::build(); - - if (!empty($this->panels)) { - foreach ($this->panels as $panel_data) { - if (!empty($panel_data['expand'])) { - $panel_data['expand'] = (bool) $panel_data['expand']; - } - - $panel = self::createParagraph('civictheme_accordion_panel', $panel_data, 'field_c_p_', TRUE); - if (!empty($panel)) { - $paragraph->field_c_p_panels->appendItem($panel); - } - } - - $paragraph->save(); - } - - return $paragraph; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Attachment.php b/docroot/modules/custom/civictheme_migrate/src/Component/Attachment.php deleted file mode 100644 index 8ccb79f2e1..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Attachment.php +++ /dev/null @@ -1,85 +0,0 @@ -attachments; - } - - /** - * Set the attachments. - * - * @param array $value - * The attachments. - */ - public function setAttachments(array $value): void { - $this->attachments = $value; - } - - /** - * {@inheritdoc} - */ - public static function migrateFields(): array { - return ['children']; - } - - /** - * {@inheritdoc} - */ - protected function prepareStub($data, array $context): array { - $data = $data['children']; - - if (!empty($data['attachments']['children'])) { - $attachments = []; - - $media_items = NestedArray::getValue($data, [ - 'attachments', - 'children', - ]); - - foreach ($media_items as $media_item) { - $media = $this->migrateLookup->lookup('media_civictheme_document', [$media_item]); - if (!empty($media)) { - $attachments[] = $media[0]['mid']; - } - } - $data['attachments'] = $attachments; - } - - return $data; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/ComponentFactory.php b/docroot/modules/custom/civictheme_migrate/src/Component/ComponentFactory.php deleted file mode 100644 index 6211b57326..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/ComponentFactory.php +++ /dev/null @@ -1,131 +0,0 @@ - $data) { - try { - $component = $this->createComponent($name, $data, $context); - } - catch (\Exception $e) { - $this->messages[] = sprintf('Skipped incorrectly instantiated component "%s".', $name); - continue; - } - $components[] = $component; - } - } - - return $components; - } - - /** - * Create a single component. - * - * @param string $migrate_name - * The source name of the component to create. - * @param mixed $data - * The item data to create the component. - * @param array $context - * The migration context. - * - * @return mixed|null - * The component. - */ - public function createComponent(string $migrate_name, $data, array &$context) { - $component_class = $this->findComponentClassByMigrateName($migrate_name); - - if (!$component_class || !class_exists($component_class)) { - throw new \Exception(sprintf('Component type %s not found.', $migrate_name)); - } - - if (!empty($context['configuration']['excluded_converters'])) { - $this->converterManager->setExcludedConverters($context['configuration']['excluded_converters']); - } - - if (!empty($context['configuration']['local_domains'])) { - $this->converterManager->setLocalDomains($context['configuration']['local_domains']); - } - - /** @var \Drupal\civictheme_migrate\Component\ComponentInterface $component */ - $component = new $component_class($data, $context, $this->entityTypeManager, $this->migrateLookup, $this->converterManager); - - return $component->structure(); - } - - /** - * Get messages populated during component creation. - * - * @return array - * The list of messages. - */ - public function getMessages() { - // Collect messages from converters only. - return $this->converterManager->getMessages(); - } - - /** - * Find the component class by the source name. - * - * @param string $migrate_name - * The migrate name of the component. - * - * @return string|null - * The component class name or NULL if the class fo the specified source - * name cannot be found. - */ - protected function findComponentClassByMigrateName(string $migrate_name): string|null { - $component_classes = Utility::loadClasses(__DIR__, AbstractComponent::class); - - foreach ($component_classes as $component_class) { - if ($component_class::migrateName() == $migrate_name) { - return $component_class; - } - } - - return NULL; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/ComponentInterface.php b/docroot/modules/custom/civictheme_migrate/src/Component/ComponentInterface.php deleted file mode 100644 index 8d10c20f9f..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/ComponentInterface.php +++ /dev/null @@ -1,38 +0,0 @@ -background = (bool) $value; - } - - /** - * Get whether to use background. - */ - public function getBackground():bool { - return $this->background; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/ContentFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/ContentFieldTrait.php deleted file mode 100644 index 7268b2603e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/ContentFieldTrait.php +++ /dev/null @@ -1,34 +0,0 @@ -preprocessContent($value); - $this->content = $value; - } - - /** - * Get the content. - */ - public function getContent(): mixed { - return $this->content; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/HelperFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/HelperFieldTrait.php deleted file mode 100644 index 531ef7e559..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/HelperFieldTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - $value]; - - $value += [ - 'value' => '', - 'format' => 'civictheme_rich_text', - ]; - - $value['value'] = $this->converterManager->convert($value['value']); - - return $value; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/LinkFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/LinkFieldTrait.php deleted file mode 100644 index baeefe0f8e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/LinkFieldTrait.php +++ /dev/null @@ -1,33 +0,0 @@ -link = $value; - } - - /** - * Get the link. - */ - public function getLink(): mixed { - return $this->link; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/ThemeFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/ThemeFieldTrait.php deleted file mode 100644 index f32d7c2eed..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/ThemeFieldTrait.php +++ /dev/null @@ -1,59 +0,0 @@ -theme = static::valueFromOptions(static::themes(), $value); - } - - /** - * Get the theme. - */ - public function getTheme(): string { - return $this->theme ?? static::themeLight(); - } - - /** - * Light theme name. - */ - public static function themeLight(): string { - return 'light'; - } - - /** - * Dark theme name. - */ - public static function themeDark(): string { - return 'dark'; - } - - /** - * Available theme names. - */ - public static function themes(): array { - return [ - static::themeLight(), - static::themeDark(), - ]; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/TitleFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/TitleFieldTrait.php deleted file mode 100644 index a97b747aa1..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/TitleFieldTrait.php +++ /dev/null @@ -1,33 +0,0 @@ -title = $value; - } - - /** - * Get the title. - */ - public function getTitle(): string { - return $this->title; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/Field/VerticalSpacingFieldTrait.php b/docroot/modules/custom/civictheme_migrate/src/Component/Field/VerticalSpacingFieldTrait.php deleted file mode 100644 index a332171c68..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/Field/VerticalSpacingFieldTrait.php +++ /dev/null @@ -1,75 +0,0 @@ -verticalSpacing = static::valueFromOptions(static::verticalSpacingTypes(), $value); - } - - /** - * Get the vertical spacing. - */ - public function getVerticalSpacing(): string { - return $this->verticalSpacing ?? static::verticalSpacingTypeNone(); - } - - /** - * Spacing - none. - */ - public static function verticalSpacingTypeNone(): string { - return 'none'; - } - - /** - * Spacing - top. - */ - public static function verticalSpacingTypeTop(): string { - return 'top'; - } - - /** - * Spacing - bottom. - */ - public static function verticalSpacingTypeBottom(): string { - return 'bottom'; - } - - /** - * Spacing - both. - */ - public static function verticalSpacingTypeBoth(): string { - return 'both'; - } - - /** - * Types of spaces. - */ - public static function verticalSpacingTypes(): array { - return [ - static:: verticalSpacingTypeNone(), - static:: verticalSpacingTypeTop(), - static:: verticalSpacingTypeBottom(), - static:: verticalSpacingTypeBoth(), - ]; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/ManualList.php b/docroot/modules/custom/civictheme_migrate/src/Component/ManualList.php deleted file mode 100644 index 504999ff4a..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/ManualList.php +++ /dev/null @@ -1,227 +0,0 @@ -listColumnCount; - } - - /** - * Set the list column count. - */ - public function setListColumnCount(int $value): void { - $this->listColumnCount = $value; - } - - /** - * Get the flag for whether to fill the width of the list. - */ - public function getListFillWidth(): bool { - return $this->listFillWidth; - } - - /** - * Set the flag for whether to fill the width of the list. - */ - public function setListFillWidth($value): void { - $this->listFillWidth = $value; - } - - /** - * Get the link above the list. - */ - public function getListLinkAbove(): mixed { - return $this->listLinkAbove; - } - - /** - * Set the link above the list. - */ - public function setListLinkAbove(mixed $value): void { - $this->listLinkAbove = $value; - } - - /** - * Get the link below the list. - */ - public function getListLinkBelow():mixed { - return $this->listLinkBelow; - } - - /** - * Set the link below the list. - */ - public function setListLinkBelow(mixed $value): void { - $this->listLinkBelow = $value; - } - - /** - * Get a list of cards. - */ - public function getCards():array { - return $this->cards; - } - - /** - * Set a list of cards. - */ - public function setCards($values): void { - $this->cards = $values; - } - - /** - * {@inheritdoc} - */ - public static function migrateFields(): array { - return ['children']; - } - - /** - * {@inheritdoc} - */ - protected function prepareStub($data, array $context): array { - if (!empty($data['children']['cards']['children'])) { - $cards = []; - foreach ($data['children']['cards']['children'] as $children) { - foreach ($children as $card_type => $card_info) { - $summary = $card_info['item_content']['value'] ?? ''; - $card = [ - 'type' => 'civictheme_' . $card_type, - 'title' => $card_info['item_title'], - 'summary' => strip_tags($summary), - 'links' => $card_info['item_links'] ?? [], - 'location' => $card_info['item_location'] ?? '', - ]; - - // Document for publication card. - if (!empty($card_info['item_document'][0])) { - $lookup_result = $this->migrateLookup->lookup('media_civictheme_document', [$card_info['item_document'][0]]); - if (!empty($lookup_result)) { - $card['document'] = $lookup_result[0]['mid']; - } - } - - // Image lookup. - if (!empty($card_info['item_image'][0])) { - $lookup_result = $this->migrateLookup->lookup('media_civictheme_image', [$card_info['item_image'][0]]); - if (!empty($lookup_result)) { - $card['image'] = $lookup_result[0]['mid']; - } - } - - // Topics. - if (!empty($card_info['item_topics'])) { - $topics = $card_info['item_topics']; - if (count($topics) > 0) { - foreach ($topics as $topic) { - $props = [ - 'name' => $topic, - 'vid' => 'civictheme_topics', - ]; - $terms = $this->entityTypeManager->getStorage('taxonomy_term')->loadByProperties($props); - if (!empty($terms)) { - $term = reset($terms); - $card['topics'][] = $term->id(); - } - else { - $card['topics'][] = $this->entityTypeManager->getStorage('taxonomy_term')->create([ - 'name' => $topic, - 'vid' => 'civictheme_topics', - ])->save(); - } - } - } - } - - $cards[] = $card; - } - } - - $data['cards'] = $cards; - } - - return $data; - } - - /** - * {@inheritdoc} - */ - protected function build(): mixed { - $paragraph = parent::build(); - - if (!empty($this->cards)) { - foreach ($this->cards as $card_options) { - if (!empty($card_options['type'])) { - $type = $card_options['type']; - unset($card_options['type']); - $card = self::createParagraph($type, $card_options, 'field_c_p_', TRUE); - if (!empty($card)) { - $paragraph->field_c_p_list_items->appendItem($card); - } - } - } - } - - $paragraph->save(); - - return $paragraph; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Component/MigratableComponentInterface.php b/docroot/modules/custom/civictheme_migrate/src/Component/MigratableComponentInterface.php deleted file mode 100644 index d5caf7d03e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Component/MigratableComponentInterface.php +++ /dev/null @@ -1,30 +0,0 @@ -entityManager = $entity_manager; - $this->localDomains = $options['local_domains'] ?? []; - } - - /** - * Get the list of errors encountered during conversion. - * - * @return array - * The list of errors encountered during conversion. - */ - public function getMessages() { - return $this->messages; - } - - /** - * {@inheritdoc} - */ - public function convert(mixed $value): mixed { - if (!is_string($value)) { - return $value; - } - - $dom = Html::load($value); - - if (!$dom) { - return $value; - } - - foreach (static::getTags() as $tag) { - $elements = $dom->getElementsByTagName($tag); - if ($elements) { - // Due to the \DOMNodeList object being live, the replacements of its - // elements may affect the objects within iterator, so we are iterating - // backwards. - /** @var \DOMElement $element */ - for ($i = $elements->length - 1; $i >= 0; $i--) { - $element = $elements->item($i); - - $src = $this->getUrl($element); - if (!$src) { - continue; - } - - $entity = $this->lookup($src); - - if (!$entity) { - $this->messages[] = sprintf('Embed converter: entity with source URI %s was not found.', $src); - continue; - } - - static::updateDomElement($element, $entity); - } - } - } - - return Html::serialize($dom); - } - - /** - * Get the tags to convert. - * - * Implementing classes should return an array of tag names that the converter - * should be run on. - * - * @return array - * The tags to convert. - */ - abstract protected static function getTags(): array; - - /** - * Get the URL from the DOM element. - * - * Implementing classes should define how to extract the URL from the DOM - * element. - * - * @param \DOMElement $element - * The element to extract the URL from. - * - * @return string|null - * The URL or NULL if not found. - */ - abstract protected function getUrl(\DOMElement $element): ?string; - - /** - * Lookup entity by source. - * - * @param string $src - * The source to lookup. - * - * @return \Drupal\Core\Entity\EntityInterface|null - * The entity or NULL if not found. - */ - abstract protected function lookup(string $src): ?EntityInterface; - - /** - * Update DOM element with the entity URL and embed attributes. - * - * @param \DOMElement $element - * The element to update. - * @param \Drupal\Core\Entity\EntityInterface $entity - * The entity passed for context. - */ - protected static function updateDomElement(\DOMElement $element, EntityInterface $entity): void { - $element->setAttribute('href', $entity->toUrl()->toString()); - static::updateDomElementAttributes($element, $entity); - } - - /** - * Update attributes of the DOM element. - * - * @param \DOMElement $element - * The element to update. - * @param \Drupal\Core\Entity\EntityInterface $entity - * The entity passed for context. - */ - protected static function updateDomElementAttributes(\DOMElement $element, EntityInterface $entity): void { - $element->setAttribute('data-entity-type', $entity->getEntityTypeId()); - $element->setAttribute('data-entity-uuid', $entity->uuid()); - $element->setAttribute('data-entity-substitution', 'canonical'); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Converter/ConverterInterface.php b/docroot/modules/custom/civictheme_migrate/src/Converter/ConverterInterface.php deleted file mode 100644 index 3fc6cb484b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Converter/ConverterInterface.php +++ /dev/null @@ -1,40 +0,0 @@ -autodiscoveryLocations; - } - - /** - * Set the list of autodiscovery locations. - * - * @param array $autodiscovery_locations - * The list of autodiscovery locations. - * - * @return ConverterManager - * The converter manager. - */ - public function setAutodiscoveryLocations(array $autodiscovery_locations) { - $this->autodiscoveryLocations = $autodiscovery_locations; - - return $this; - } - - /** - * Add a converter. - * - * @param \Drupal\civictheme_migrate\Converter\ConverterInterface $converter - * The converter to add. - * - * @return ConverterManager - * The converter manager. - */ - public function addConverter(ConverterInterface $converter) { - $this->converters[$converter::name()] = $converter; - - return $this; - } - - /** - * Get the list of messages encountered during conversion. - */ - public function getMessages(): array { - return $this->messages; - } - - /** - * Get the list of domains that should be considered local. - * - * @return array - * The list of internal domains. - */ - public function getLocalDomains(): array { - return $this->localDomains; - } - - /** - * Set the list of domains that should be considered local. - * - * @param array $domains - * The list of domains. - * - * @return ConverterManager - * The converter manager. - */ - public function setLocalDomains(array $domains): ConverterManager { - $this->localDomains = $domains; - - return $this; - } - - /** - * Get the list of converter names to be excluded during processing. - * - * @return array - * The list of converter names to be excluded. - */ - public function getExcludedConverters(): array { - return $this->excludedConverters; - } - - /** - * Set the list of converter names to be excluded during processing. - * - * @param array $exclude_converters - * The list of converter names to be excluded. - * - * @return ConverterManager - * The converter manager. - */ - public function setExcludedConverters(array $exclude_converters): ConverterManager { - $this->excludedConverters = $exclude_converters; - - return $this; - } - - /** - * Convert a value using available converters. - */ - public function convert(mixed $value): mixed { - foreach ($this->converters() as $converter) { - $value = $converter->convert($value); - $this->messages = array_merge($this->messages, $converter->getMessages()); - } - - return $value; - } - - /** - * Get the list of converters. - * - * @return \Drupal\civictheme_migrate\Converter\ConverterInterface[] - * The list of instantiated converters. - */ - protected function converters($skip_autodiscovery = FALSE) { - $converters = $this->converters; - - if (!$skip_autodiscovery) { - $converters += $this->discoverConverters(); - } - - usort($converters, function ($a, $b) { - return $a::weight() <=> $b::weight(); - }); - - $converters = array_filter($converters, function ($converter) { - return !in_array($converter::name(), $this->excludedConverters); - }); - - return $converters; - } - - /** - * Discover converters. - * - * @return \Drupal\civictheme_migrate\Converter\ConverterInterface[] - * The list of discovered converters. - */ - protected function discoverConverters() { - $converters = []; - - $converter_classes = []; - foreach ($this->getAutodiscoveryLocations() as $location) { - $converter_classes = Utility::loadClasses($location, AbstractEmbedConverter::class); - } - - foreach ($converter_classes as $converter_class) { - $converters[] = new $converter_class($this->lookupManager, [ - 'local_domains' => $this->localDomains, - ]); - } - - return $converters; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Converter/LinkEmbedConverter.php b/docroot/modules/custom/civictheme_migrate/src/Converter/LinkEmbedConverter.php deleted file mode 100644 index 787de45124..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Converter/LinkEmbedConverter.php +++ /dev/null @@ -1,70 +0,0 @@ -entityManager->lookupMediaByFileName(basename($src)); - - if (!$entity) { - $entity = $this->entityManager->lookupNodeByAlias($src); - } - - return $entity; - } - - /** - * {@inheritdoc} - */ - protected function getUrl(\DOMElement $element): ?string { - return in_array(strtolower($element->tagName), static::getTags()) && $element->hasAttribute('href') - ? UrlHelper::extractLocalUrl($element->getAttribute('href'), $this->localDomains) - : NULL; - } - - /** - * {@inheritdoc} - */ - protected static function updateDomElementAttributes(\DOMElement $element, EntityInterface $entity): void { - parent::updateDomElementAttributes($element, $entity); - // Render media as a link to the file. - if ($entity instanceof MediaInterface) { - $element->setAttribute('data-entity-substitution', 'media'); - } - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Converter/MediaEmbedConverter.php b/docroot/modules/custom/civictheme_migrate/src/Converter/MediaEmbedConverter.php deleted file mode 100644 index 2deb8bd5bb..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Converter/MediaEmbedConverter.php +++ /dev/null @@ -1,63 +0,0 @@ -entityManager->lookupMediaByFileName(basename($src)); - } - - /** - * {@inheritdoc} - */ - protected function getUrl(\DOMElement $element): ?string { - return in_array(strtolower($element->tagName), static::getTags()) && $element->hasAttribute('src') - ? UrlHelper::extractLocalUrl($element->getAttribute('src'), $this->localDomains) - : NULL; - } - - /** - * {@inheritdoc} - */ - protected static function updateDomElement(\DOMElement $element, EntityInterface $entity): void { - $replacement = $element->ownerDocument->createElement('drupal-media'); - static::updateDomElementAttributes($replacement, $entity); - if ($element->hasAttribute('alt')) { - $replacement->setAttribute('alt', $element->getAttribute('alt')); - } - $element->parentNode->replaceChild($replacement, $element); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Converter/UrlHelper.php b/docroot/modules/custom/civictheme_migrate/src/Converter/UrlHelper.php deleted file mode 100644 index b445176be7..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Converter/UrlHelper.php +++ /dev/null @@ -1,108 +0,0 @@ -getMigration(); - - $process = $migration->getProcess(); - foreach ($process as $destination_field => $process_plugins) { - if (isset($process_plugins['plugin'])) { - $process_plugins = [$process_plugins]; - } - foreach ($process_plugins as $k => $process_plugin) { - if (isset($process_plugin['plugin']) && $process_plugin['plugin'] === 'file_import') { - $auth = $this->getAuth(); - if (!empty($auth)) { - // Treat authentication types differently. - if ($auth['type'] == 'basic') { - $process[$destination_field][$k]['guzzle_options']['auth'] = [ - $auth['username'], - $auth['password'], - ]; - } - } - } - - if (isset($process_plugin['plugin']) && $process_plugin['plugin'] === 'content_components') { - $domains = $this->configFactory->get('civictheme_migrate.settings')->get('local_domains'); - $process[$destination_field][$k]['local_domains'] = array_merge($process[$destination_field][$k]['local_domains'] ?? [], $domains); - } - } - } - - $migration->setProcess($process); - } - - /** - * Get authentication details. - * - * @return mixed - * The authentication details. - */ - protected function getAuth(): mixed { - $auth = []; - - $config = $this->configFactory->get('civictheme_migrate.settings')->get('remote_authentication'); - if ($config['type'] == 'basic') { - if (!empty($config['basic']['username']) && !empty($config['basic']['password'])) { - $auth = [ - 'type' => 'basic', - 'username' => $config['basic']['username'], - 'password' => $config['basic']['password'], - ]; - } - } - - return $auth; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Form/MigrationEditFormAlter.php b/docroot/modules/custom/civictheme_migrate/src/Form/MigrationEditFormAlter.php deleted file mode 100644 index 4e60b9a860..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Form/MigrationEditFormAlter.php +++ /dev/null @@ -1,228 +0,0 @@ -entityTypeManager = $entityTypeManager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('entity_type.manager'), - ); - } - - /** - * Form alter implementation. - * - * Provide 'Update sources' fieldset to allow updating of sources using - * URLs and files within the migration edit UI. - */ - public function formAlter(array &$form, FormStateInterface &$form_state, string $form_id): void { - if (!$this->shouldAlter($form, $form_state)) { - return; - } - - $migration_entity = $form_state->getFormObject()->getEntity(); - - $form['source_update'] = [ - '#type' => 'fieldset', - '#title' => $this->t('Update sources'), - '#description' => $this->t('Update sources using files and/or URLs. Upon save, current migration sources will be replaced.'), - '#description_display' => 'before', - '#tree' => TRUE, - ]; - - $form['source_update']['urls'] = [ - '#title' => $this->t('Source as URLs'), - '#description' => $this->t('Add sources as URLs, one per line. Only basic authentication is supported and should be added to the URLs.'), - '#type' => 'textarea', - '#rows' => 3, - '#default_value' => Utility::arrayToMultiline($this->extractUrls($migration_entity->source['urls'] ?? [])), - '#element_validate' => [ - // Convert string to array of values. - [self::class, 'elementValidateValueToArray'], - // Validate that every line is a valid URL. - [self::class, 'elementValidateUrls'], - ], - ]; - - $entity_type_id = str_replace('entity:', '', $migration_entity->destination['plugin'] ?? ''); - $bundle = $migration_entity->destination['default_bundle'] ?? $migration_entity->destination['validation_bundle'] ?? ''; - $migration_schema_id = !empty($entity_type_id) && !empty($bundle) ? MigrationSchema::idFromEntityTypeBundle($entity_type_id, $bundle) : NULL; - $form['source_update']['files'] = [ - '#title' => $this->t('Source as files'), - '#description' => $this->t('Upload one or multiple source files.'), - '#type' => 'managed_file', - '#multiple' => TRUE, - '#progress_indicator' => 'bar', - '#upload_location' => 'private://civictheme_migrate', - '#default_value' => $this->extractFids($migration_entity->source['urls'] ?? []), - '#upload_validators' => [ - // Validate allowed extension. - 'file_validate_extensions' => ['json'], - // Validate that uploaded file follows expected schema. - 'civictheme_migrate_validate_migration_schema' => [$migration_schema_id], - ], - ]; - - // Add custom entoty builder to mutate entity using the provided values. - $form['#entity_builders'][] = [$this, 'entityBuilder']; - } - - /** - * Entity builder used to mutate migration entity to update source urls. - */ - public function entityBuilder(string $entity_type_id, EntityInterface $entity, array $form, FormStateInterface $form_state): void { - // Only process non-submitted form. - if ($form_state->isSubmitted()) { - return; - } - - $source_update = $entity->source_update ?? NULL; - unset($entity->source_update); - - if (!$source_update) { - return; - } - - $urls = []; - - if (!empty($source_update['files']['fids'])) { - foreach ($source_update['files']['fids'] as $fid) { - $file = $this->fileLoadByProperty('fid', $fid); - if ($file) { - // Store uploaded files as file URIs. - $urls[] = $file->getFileUri(); - } - } - } - - if (!empty($source_update['urls'])) { - // Store updated URLs as an array. - $urls = array_merge($urls, Utility::multilineToArray($source_update['urls'])); - } - - if (!empty($urls)) { - $source = $entity->get('source'); - $source['urls'] = $urls; - $entity->set('source', $source); - } - } - - /** - * Check if the form alter should apply. - */ - protected function shouldAlter(array $form, FormStateInterface &$form_state): bool { - $entity = $form_state->getFormObject()->getEntity(); - - return $entity && $entity->source['plugin'] == 'url'; - } - - /** - * Extract managed file ids from an array of entries. - */ - protected function extractFids(array $entries): array { - $urls = []; - - foreach ($entries as $entry) { - if (!UrlHelper::isValid($entry, TRUE)) { - $file = $this->fileLoadByProperty('uri', $entry); - if ($file) { - $urls[] = $file->id(); - } - } - } - - return $urls; - } - - /** - * Extract absolute URLs from an array of entries. - */ - protected function extractUrls(array $entries): array { - $urls = []; - - foreach ($entries as $entry) { - if (UrlHelper::isValid($entry, TRUE)) { - $urls[] = $entry; - } - } - - return $urls; - } - - /** - * Load a managed file by property. - */ - protected function fileLoadByProperty(string $name, string $value): File|null { - /** @var \Drupal\file\FileInterface[] $files */ - $files = $this->entityTypeManager->getStorage('file')->loadByProperties([ - $name => $value, - ]); - - $file = reset($files) ?: NULL; - - return $file; - } - - /** - * Convert element value from multiline string to an array. - */ - public static function elementValidateValueToArray(array $element, FormStateInterface $form_state): void { - $form_state->setValueForElement($element, Utility::multilineToArray($element['#value'])); - } - - /** - * Validate URLs for a form element. - */ - public static function elementValidateUrls(array $element, FormStateInterface $form_state): void { - $urls = $form_state->getValue(['source_update', 'urls']); - if (!empty($urls)) { - foreach ($urls as $url) { - if (!UrlHelper::isValid($url, TRUE)) { - $form_state->setError($element, t('Provided "@url" is not a valid absolute URL.', [ - '@url' => $url, - ])); - } - } - } - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Form/SettingsForm.php b/docroot/modules/custom/civictheme_migrate/src/Form/SettingsForm.php deleted file mode 100644 index d5ef5f963f..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Form/SettingsForm.php +++ /dev/null @@ -1,167 +0,0 @@ -migrationSchemaManager = $migration_schema_manager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('config.factory'), - $container->get('civictheme_migrate.migration_schema_manager') - ); - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'civictheme_migrate_settings'; - } - - /** - * {@inheritdoc} - */ - protected function getEditableConfigNames() { - return ['civictheme_migrate.settings']; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state) { - $config = $this->config('civictheme_migrate.settings'); - - $form['#tree'] = TRUE; - - $form['remote_authentication'] = [ - '#type' => 'fieldset', - '#title' => $this->t('Remote authentication'), - ]; - - $form['remote_authentication']['type'] = [ - '#type' => 'radios', - '#title' => $this->t('Authentication type'), - '#description' => $this->t('Sourcing migration assets from remote endpoints may require authentication. Select the type below and provide authentication details.'), - '#options' => [ - 'none' => $this->t('None'), - 'basic' => $this->t('Basic authentication'), - ], - '#default_value' => $config->get('remote_authentication')['type'] ?? 'none', - ]; - - $form['remote_authentication']['basic'] = [ - '#type' => 'fieldset', - '#title' => $this->t('Basic authentication'), - '#states' => [ - 'visible' => [ - ':input[name="remote_authentication[type]"]' => ['value' => 'basic'], - ], - ], - ]; - - $form['remote_authentication']['basic']['username'] = [ - '#type' => 'textfield', - '#title' => $this->t('Username'), - '#states' => [ - 'required' => [ - ':input[name="remote_authentication[type]"]' => ['value' => 'basic'], - ], - ], - '#default_value' => $config->get('remote_authentication')['basic']['username'] ?? NULL, - ]; - - $form['remote_authentication']['basic']['password'] = [ - '#type' => 'textfield', - '#title' => $this->t('Password'), - '#states' => [ - 'required' => [ - ':input[name="remote_authentication[type]"]' => ['value' => 'basic'], - ], - ], - '#default_value' => $config->get('remote_authentication')['basic']['password'] ?? NULL, - ]; - - $form['local_domains'] = [ - '#type' => 'textarea', - '#title' => $this->t('Local domains'), - '#description' => $this->t('Local domains to use when resolving absolute URLs. One domain per line.'), - '#default_value' => Utility::arrayToMultiline($config->get('local_domains') ?? []), - ]; - - $form['migration_schema'] = [ - '#type' => 'fieldset', - '#title' => $this->t('Migration schemas'), - ]; - - $form['migration_schema']['description'] = [ - '#markup' => $this->t('The migration schema outlines the source data structure for migrations. It is updated when the CivicTheme content model changes.

Migration schema files can be found in %dir directory.', [ - '%dir' => $this->migrationSchemaManager->getDirectory(), - ]), - ]; - - $schemas = $this->migrationSchemaManager->getSchemas(); - - foreach ($schemas as $schema) { - $form['migration_schema'][$schema->getId()] = [ - '#type' => 'details', - '#title' => $schema->getId(), - ]; - - $form['migration_schema'][$schema->getId()]['content'] = [ - '#type' => 'markup', - '#markup' => '
' . $schema->formatData() . '
', - ]; - } - - return parent::buildForm($form, $form_state); - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $this->config('civictheme_migrate.settings') - ->set('remote_authentication', $form_state->getValue('remote_authentication')) - ->save(); - - $this->config('civictheme_migrate.settings') - ->set('local_domains', Utility::multilineToArray($form_state->getValue('local_domains'))) - ->save(); - - parent::submitForm($form, $form_state); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/LookupManager.php b/docroot/modules/custom/civictheme_migrate/src/LookupManager.php deleted file mode 100644 index 1d8743a6ac..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/LookupManager.php +++ /dev/null @@ -1,142 +0,0 @@ -aliasManager->getPathByAlias($alias); - $params = Url::fromUri("internal:$updated_alias")->getRouteParameters(); - } - catch (\Exception $exception) { - // Ignore. - } - - if (!empty($updated_alias) && !empty($params)) { - $entity_type = key($params); - if ($entity_type == 'node') { - $nid = $params[$entity_type]; - $cache[$alias] = $this->entityTypeManager->getStorage('node')->load($nid); - } - } - } - - return $cache[$alias]; - } - - /** - * Lookup a media entity by file name. - * - * @param string $filename - * The filename to lookup by. - * @param bool $reset - * Whether to reset the cache. - * - * @return \Drupal\media\MediaInterface|null - * The media entity if found, otherwise NULL. - */ - public function lookupMediaByFileName(string $filename, bool $reset = FALSE): ?MediaInterface { - if (empty($filename)) { - return NULL; - } - - $cache = &drupal_static(__METHOD__, []); - if (empty($cache[$filename]) || $reset) { - $cache[$filename] = NULL; - $file = $this->lookupFileByFilename($filename, $reset); - if ($file) { - $usage = $this->fileUsage->listUsage($file); - if (!empty($usage['file']['media'])) { - $mid = key($usage['file']['media']); - $cache[$filename] = $this->entityTypeManager->getStorage('media')->load($mid); - } - } - } - - return $cache[$filename]; - } - - /** - * Lookup a file entity by the file name. - * - * @param string $filename - * The filename to lookup. - * @param bool $reset - * Whether to reset the cache. - * - * @return \Drupal\file\FileInterface|null - * The file entity if found, otherwise NULL. - */ - public function lookupFileByFilename(string $filename, $reset = FALSE): ?FileInterface { - if (empty($filename)) { - return NULL; - } - - $cache = &drupal_static(__METHOD__, []); - if (empty($cache[$filename]) || $reset) { - $cache[$filename] = NULL; - - $fids = $this->entityTypeManager->getStorage('file')->getQuery() - ->accessCheck(FALSE) - ->condition('filename', $filename) - ->range(0, 1) - ->execute(); - - if ($fids) { - $fid = reset($fids); - $cache[$filename] = $this->entityTypeManager->getStorage('file')->load($fid); - } - } - - return $cache[$filename]; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockPluginId.php b/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockPluginId.php deleted file mode 100644 index 75d1e72550..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockPluginId.php +++ /dev/null @@ -1,97 +0,0 @@ -blockContentStorage = $storage; - $this->migrateLookup = $migrate_lookup; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) { - $entity_type_manager = $container->get('entity_type.manager'); - - return new static( - $configuration, - $plugin_id, - $plugin_definition, - $entity_type_manager->getDefinition('block_content') ? $entity_type_manager->getStorage('block_content') : NULL, - $container->get('migrate.lookup') - ); - } - - /** - * {@inheritdoc} - * - * Set the block plugin id. - */ - public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { - $lookup_result = $this->migrateLookup->lookup(['block_content_civictheme_component_block'], [$value]); - - if ($lookup_result) { - $block_id = $lookup_result[0]['id']; - $block = $this->blockContentStorage->load($block_id); - - return 'block_content:' . $block->uuid(); - } - - return $value; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockThemeDefault.php b/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockThemeDefault.php deleted file mode 100644 index 1e654e7553..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/BlockThemeDefault.php +++ /dev/null @@ -1,87 +0,0 @@ -themeConfig = $theme_config; - $this->themes = $themes; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) { - return new static( - $configuration, - $plugin_id, - $plugin_definition, - $migration, - $container->get('config.factory')->get('system.theme'), - $container->get('theme_handler')->listInfo() - ); - } - - /** - * {@inheritdoc} - */ - public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { - // Get default theme. - return $this->themeConfig->get('default'); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/ContentComponents.php b/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/ContentComponents.php deleted file mode 100644 index 938c0fe09d..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/ContentComponents.php +++ /dev/null @@ -1,80 +0,0 @@ -componentFactory = $component_factory; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { - return new static( - $configuration, - $plugin_id, - $plugin_definition, - $container->get('civictheme_migrate.component_factory') - ); - } - - /** - * {@inheritdoc} - */ - public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { - $components = $this->componentFactory->createComponents($value, [ - 'configuration' => $this->configuration, - 'migration' => $migrate_executable, - 'row' => clone $row, - 'destination_property' => $destination_property, - ]); - - foreach ($this->componentFactory->getMessages() as $message) { - $migrate_executable->saveMessage($message, MigrationInterface::MESSAGE_INFORMATIONAL); - } - - return $components; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/UrlIsExternal.php b/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/UrlIsExternal.php deleted file mode 100644 index e819d36710..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Plugin/migrate/process/UrlIsExternal.php +++ /dev/null @@ -1,48 +0,0 @@ -isAbstract()) { - $classes[] = $class; - } - } - } - - return $classes; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidator.php b/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidator.php deleted file mode 100644 index 3e389cb96e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidator.php +++ /dev/null @@ -1,99 +0,0 @@ -migrationSchemaManager = $migration_schema_manager; - $this->schemaValidator = $validator; - $this->registerMigrationSchemas(); - } - - /** - * {@inheritdoc} - */ - public function validate(string $migration_schema_id, string $filepath): array { - $migration_schema = $this->migrationSchemaManager->getSchema($migration_schema_id); - if (!$migration_schema) { - throw new \RuntimeException(sprintf('Unable to load schema "%s".', $migration_schema->getId())); - } - - Utility::validateFileExists($filepath); - - $data = $this->prepareFileData(file_get_contents($filepath)); - - $errors = []; - - if (empty($data)) { - $errors[] = $this->t('No data provided.'); - } - - $result = $this->schemaValidator->validate($data, $migration_schema->getUri()); - if ($result->hasError()) { - $formatter = new ErrorFormatter(); - $errors = $formatter->formatFlat($result->error()); - } - - return $errors; - } - - /** - * Register schemas with the validator. - */ - protected function registerMigrationSchemas(): void { - $schemas = $this->migrationSchemaManager->getSchemas(); - foreach ($schemas as $schema) { - $this->schemaValidator->resolver()->registerFile($schema->getUri(), $schema->getFilepath()); - } - } - - /** - * Prepare file data before passing to validation. - * - * @param mixed $data - * The data to prepare. - * - * @return mixed - * Processed data. - */ - protected function prepareFileData(mixed $data): mixed { - return json_decode($data); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidatorInterface.php b/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidatorInterface.php deleted file mode 100644 index 0251632d00..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationFileValidatorInterface.php +++ /dev/null @@ -1,23 +0,0 @@ -setFilepath($filepath); - $instance->setId(static::idFromFilepath($instance->getFilepath())); - $instance->setData(static::dataFromFile($instance->getFilepath())); - - return $instance; - } - - /** - * Get the migration schema ID. - * - * @return string - * The migration schema ID. - */ - public function getId(): string { - return $this->id; - } - - /** - * Set the migration schema ID. - * - * @param string $id - * The migration schema ID. - * - * @return MigrationSchema - * Current instance for used for chaining. - */ - public function setId(string $id): MigrationSchema { - $this->id = $id; - - return $this; - } - - /** - * Get the migration schema file path. - * - * @return string - * The migration schema file path. - */ - public function getFilepath(): string { - return $this->filepath; - } - - /** - * Set the migration schema file path. - * - * @param string $filepath - * The file path to set. - * - * @return MigrationSchema - * Current instance for used for chaining. - */ - public function setFilepath(string $filepath): MigrationSchema { - Utility::validateFileExists($filepath); - $this->filepath = $filepath; - - return $this; - } - - /** - * Get the migration schema data. - * - * @return mixed - * The migration schema data. - */ - public function getData(): mixed { - return $this->data; - } - - /** - * Set the migration schema data. - * - * @param mixed $data - * The migration schema data to set. - * - * @return MigrationSchema - * Current instance for used for chaining. - */ - public function setData(mixed $data): MigrationSchema { - $this->data = $data; - - return $this; - } - - /** - * Get the migration schema URI. - * - * @return string - * The migration schema URI. - */ - public function getUri(): string { - return 'https://www.civictheme.io/api/migration/' . $this->id; - } - - /** - * Get formatted data. - * - * @return string - * Formatted data as a string. - */ - public function formatData(): string { - return json_encode($this->data, JSON_PRETTY_PRINT); - } - - /** - * Create an ID from the provided entity type and bundle. - * - * @param string $entity_type_id - * The entity type. - * @param string $bundle - * The entity bundle. - * - * @return string - * The migration schema ID. - */ - public static function idFromEntityTypeBundle(string $entity_type_id, string $bundle): string { - return $entity_type_id . '_' . $bundle; - } - - /** - * Create an ID from the provided file path. - * - * @param string $filepath - * The migration schema file path. - * - * @return string - * The migration schema ID. - */ - protected static function idFromFilepath(string $filepath): string { - Utility::validateFileExists($filepath); - - return basename($filepath, '.json'); - } - - /** - * Extract data from provided file. - * - * @param string $filepath - * The migration schema file path. - * - * @return mixed - * The migration schema - */ - protected static function dataFromFile(string $filepath): mixed { - Utility::validateFileExists($filepath); - - return json_decode(file_get_contents($filepath)); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManager.php b/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManager.php deleted file mode 100644 index 92fc99011e..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManager.php +++ /dev/null @@ -1,113 +0,0 @@ -extensionPathResolver = $extension_path_resolver; - $this->setDirectory($this->extensionPathResolver->getPath('module', 'civictheme_migrate') . DIRECTORY_SEPARATOR . self::SCHEMAS_DIRECTORY); - $this->schemas = $this->discoverSchemas(); - } - - /** - * {@inheritdoc} - */ - public function getSchemas(): array { - return $this->schemas; - } - - /** - * {@inheritdoc} - */ - public function getSchema(string $id): MigrationSchema|null { - foreach ($this->schemas as $schema) { - if ($schema->getId() == $id) { - return $schema; - } - } - - return NULL; - } - - /** - * Get migration schema directory path. - * - * @return string - * The migration schema directory path. - */ - public function getDirectory(): string { - return $this->schemasDirectory; - } - - /** - * Set migration schema directory path. - * - * @param string $directory - * The migration schema directory path. - */ - public function setDirectory(string $directory): void { - $this->schemasDirectory = rtrim($directory, DIRECTORY_SEPARATOR); - } - - /** - * Discover migration schemas within schemasDirectory. - * - * @return \Drupal\civictheme_migrate\Validator\MigrationSchema[] - * Array of discovered MigrationSchema instances. - */ - protected function discoverSchemas(): array { - $schemas = []; - - $files = glob($this->schemasDirectory . DIRECTORY_SEPARATOR . '*.json'); - foreach ($files as $file) { - try { - $schemas[] = MigrationSchema::fromFilepath($file); - } - catch (\Exception $exception) { - // Skip incorrectly formatted schemas. - continue; - } - } - - return $schemas; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManagerInterface.php b/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManagerInterface.php deleted file mode 100644 index 53370e91d3..0000000000 --- a/docroot/modules/custom/civictheme_migrate/src/Validator/MigrationSchemaManagerInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -[TEST] Component - Basic text

" - }, - "manual_list": { - "type": "manual_list", - "children": { - "cards": { - "type": "container", - "children": [ - { - "promo_card": { - "item_title": "[TEST] Promo card 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Promo card Summary

" - } - }, - "event_card": { - "item_title": "[TEST] Event card 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Event card Summary

" - } - }, - "publication_card": { - "item_title": "[TEST] Publication card 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Publication card Summary

" - }, - "item_document": [ - "448f7b0e-19a3-4c43-b1d7-5b1f196dbf98" - ] - }, - "service_card": { - "item_title": "[TEST] Service card 1", - "item_links": [ - { - "uri": "http://example.com", - "title": "Example link" - }, - { - "uri": "http://example.com/1", - "title": "Example link 1" - } - ] - }, - "subject_card": { - "item_title": "[TEST] Subject card 1" - } - } - ] - } - } - }, - "accordion": { - "type": "accordion", - "children": { - "accordion_title": "\r\n\t\tQuestions and answers\r\n\t", - "accordion_list": { - "type": "container", - "children": [ - { - "accordion_items": { - "type": "group", - "children": [ - { - "item_title": "[TEST] Accordion title 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion item 1 content

" - } - }, - { - "item_title": "[TEST] Accordion title 2", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion item 2 content

" - } - }, - { - "item_title": "[TEST] Accordion title title 3", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion item 3 content

" - } - }, - { - "item_title": "[TEST] Accordion title 4", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion item 4 content

" - } - }, - { - "item_title": "[TEST] Accordion title 5", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion item 5 content

" - } - } - ] - } - } - ] - } - } - } - } - ] - } - } -] diff --git a/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/civictheme_migrate_test.info.yml b/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/civictheme_migrate_test.info.yml deleted file mode 100644 index cbf4293e9c..0000000000 --- a/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/civictheme_migrate_test.info.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: 'CivicTheme Migrate Test' -type: module -description: 'Test module for CivicTheme migration mappings.' -core_version_requirement: ^9 || ^10 -package: CivicTheme -dependencies: - - drupal:migrate - - drupal:path_alias - - migrate_file:migrate_file - - migrate_plus:migrate_plus - - migrate_tools:migrate_tools diff --git a/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/src/Converter/Test1EmbedConverter.php b/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/src/Converter/Test1EmbedConverter.php deleted file mode 100644 index bbf712b0fc..0000000000 --- a/docroot/modules/custom/civictheme_migrate/tests/modules/civictheme_migrate_test/src/Converter/Test1EmbedConverter.php +++ /dev/null @@ -1,50 +0,0 @@ -installSchema('system', 'sequences'); - $this->installSchema('node', 'node_access'); - $this->installSchema('file', ['file_usage']); - $this->installEntitySchema('user'); - $this->installEntitySchema('node'); - $this->installEntitySchema('file'); - $this->installEntitySchema('media'); - $this->installConfig(['field', 'system', 'image', 'file', 'media']); - - $this->lookupManager = $this->getMockBuilder(LookupManager::class)->disableOriginalConstructor()->getMock(); - $this->converterManager = new ConverterManager($this->lookupManager); - } - - /** - * Tests the converters() method. - * - * @covers ::converters - */ - public function testConverters(): void { - $loc_real = $this->getModulePath('civictheme_migrate') . '/src/Converter'; - $loc_test = $this->getModulePath('civictheme_migrate_test') . '/src/Converter'; - - $this->converterManager->setAutodiscoveryLocations([]); - $this->assertEquals(0, count($this->callProtectedMethod($this->converterManager, 'converters')), 'There should be no converts autodiscovered if no locations provided.'); - - $this->converterManager->setAutodiscoveryLocations([$loc_real]); - $this->assertEquals(2, count($this->callProtectedMethod($this->converterManager, 'converters')), 'There should be 2 converters discovered in the real locations.'); - - $this->converterManager->setAutodiscoveryLocations([$loc_real, $loc_test]); - $this->assertEquals(5, count($this->callProtectedMethod($this->converterManager, 'converters')), 'Convertes can be autodiscovered from the multiple locations.'); - - $converters = $this->callProtectedMethod($this->converterManager, 'converters'); - $names = array_map(function ($converter) { - return $converter::name(); - }, $converters); - - $this->assertEquals([ - 'media_embed', - 'test1', - 'test2', - 'test3', - 'link_embed', - ], $names, 'Converters sorting works.'); - - $this->converterManager->setExcludedConverters(['test2', 'test3']); - $converters = $this->callProtectedMethod($this->converterManager, 'converters'); - $names = array_values(array_map(function ($converter) { - return $converter::name(); - }, $converters)); - - $this->assertEquals([ - 'media_embed', - 'test1', - 'link_embed', - ], $names, 'Converters filtering works.'); - } - - /** - * Tests the addConverter() method. - * - * @covers ::addConverter - */ - public function testConverterAdd(): void { - $this->converterManager->setAutodiscoveryLocations([]); - $converter1 = new Test1EmbedConverter($this->lookupManager); - $converter1_copy = new Test1EmbedConverter($this->lookupManager); - $this->converterManager->addConverter($converter1)->addConverter($converter1_copy); - $this->assertEquals(1, count($this->callProtectedMethod($this->converterManager, 'converters')), 'Adding the same converter does not duplicate it.'); - - $converter2 = new Test2EmbedConverter($this->lookupManager); - $this->converterManager->addConverter($converter2); - $this->assertEquals(2, count($this->callProtectedMethod($this->converterManager, 'converters')), 'Adding new converter works.'); - } - - /** - * Test for convert(). - * - * @covers ::convert - * @dataProvider dataProviderConvert - */ - public function testConvert($string, $expected): void { - NodeType::create(['type' => 'page'])->save(); - $node = $this->createNode([ - 'nid' => 1001, - 'uuid' => '58f47065-27fb-429b-9ccd-000000001001', - 'type' => 'page', - ]); - - $media_type = $this->createMediaType('file', ['id' => 'document']); - $media_document = $this->createMedia($media_type, 'src-file-1.txt', [ - 'mid' => 2001, - 'id' => 2001, - 'uuid' => '58f47065-27fb-429b-9ccd-000000002001', - ]); - $media_type = $this->createMediaType('image', ['id' => 'image']); - $media_image = $this->createMedia($media_type, 'src-image-1.png', [ - 'mid' => 2002, - 'id' => 2002, - 'uuid' => '58f47065-27fb-429b-9ccd-000000002002', - ]); - - $this->lookupManager->expects($this->any()) - ->method('lookupNodeByAlias') - ->will($this->returnCallback(function ($alias) use ($node) { - return $alias === '/src-page-1' ? $node : NULL; - })); - $this->lookupManager->expects($this->any()) - ->method('lookupMediaByFileName') - ->will($this->returnCallback(function ($uri) use ($media_document, $media_image) { - return $uri === '/src-file-1.txt' ? $media_document : ($uri === '/src-image-1.png' ? $media_image : NULL); - })); - - $this->assertEquals($expected, $this->converterManager->convert($string)); - } - - /** - * Data provider for testConvert(). - */ - public function dataProviderConvert(): array { - return [ - // No tags. - ['', ''], - ['word', 'word'], - ['word word', 'word word'], - - // Anchor tag with node paths. - [ - '

prefix Test page content with html suffix

', - '

prefix Test page content with html suffix

', - ], - [ - '

prefix Test page content with html suffix

', - '

prefix Test page content with html suffix

', - ], - - // Anchor tag with media file paths. - [ - '

prefix Test link to file with html suffix

', - '

prefix Test link to file with html suffix

', - ], - [ - '

prefix Test link to file with html suffix

', - '

prefix Test link to file with html suffix

', - ], - - // Image tag with media file paths. - [ - '

prefix Alternative text for a test image with html suffix

', - '

prefix with html suffix

', - ], - [ - '

prefix Alternative text for a test imagewith html suffix

', - '

prefix Alternative text for a test imagewith html suffix

', - ], - - ]; - } - - /** - * Helper to create a media item. - * - * @param \Drupal\media\MediaTypeInterface $media_type - * The media type. - * @param string $filename - * String filename with extension. - * @param array $values - * Array of values to set on the media item. - * - * @return \Drupal\media\MediaInterface - * A media item. - */ - protected function createMedia(MediaTypeInterface $media_type, $filename, array $values = []): MediaInterface { - vfsStream::setup('drupal_root'); - vfsStream::create([ - 'sites' => [ - 'default' => [ - 'files' => [ - $filename => str_repeat('a', 3000), - ], - ], - ], - ]); - - $file = File::create([ - 'uri' => 'vfs://drupal_root/sites/default/files/' . $filename, - 'uid' => 1, - ]); - $file->setPermanent(); - $file->save(); - - // @formatter:off - return Media::create($values + [ - 'bundle' => $media_type->id(), - 'name' => $this->randomString(), - 'field_media_file' => [ - 'target_id' => $file->id(), - ], - ]); - } - - /** - * Call protected methods on the class. - * - * @param object|string $object - * Object or class name to use for a method call. - * @param string $method - * Method name. Method can be static. - * @param array $args - * Array of arguments to pass to the method. To pass arguments by reference, - * pass them by reference as an element of this array. - * - * @return mixed - * Method result. - */ - protected static function callProtectedMethod($object, $method, array $args = []) { - $class = new \ReflectionClass(is_object($object) ? get_class($object) : $object); - $method = $class->getMethod($method); - $method->setAccessible(TRUE); - $object = $method->isStatic() ? NULL : $object; - - return $method->invokeArgs($object, $args); - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/tests/src/Kernel/MigrationFileValidatorTest.php b/docroot/modules/custom/civictheme_migrate/tests/src/Kernel/MigrationFileValidatorTest.php deleted file mode 100644 index b11123706c..0000000000 --- a/docroot/modules/custom/civictheme_migrate/tests/src/Kernel/MigrationFileValidatorTest.php +++ /dev/null @@ -1,115 +0,0 @@ -migrationFileValidator = $this->container->get('civictheme_migrate.migration_file_validator'); - } - - /** - * Test page JSON fields. - * - * @dataProvider dataProvideTestValidate - */ - public function testValidate(string $migration_schema_id, string $filepath, $expected): void { - $filepath = __DIR__ . '/../../fixtures/' . $filepath; - $this->assertEquals($expected, $this->migrationFileValidator->validate($migration_schema_id, $filepath)); - } - - /** - * Data provider for testValidate(). - */ - public function dataProvideTestValidate() { - return [ - ['node_civictheme_page', 'civictheme_migrate.node_civictheme_page_1.json', []], - ['node_civictheme_page', 'civictheme_migrate.node_civictheme_page_components.json', []], - [ - 'node_civictheme_page', - 'civictheme_migrate.media_civictheme_image_1.json', - [ - 'The data (object) must match the type: array', - ], - ], - - ['media_civictheme_document', 'civictheme_migrate.media_civictheme_document_1.json', []], - [ - 'media_civictheme_document', - 'civictheme_migrate.node_civictheme_page_1.json', - [ - 'The data (array) must match the type: object', - ], - ], - - ['media_civictheme_image', 'civictheme_migrate.media_civictheme_image_1.json', []], - [ - 'media_civictheme_image', - 'civictheme_migrate.node_civictheme_page_1.json', - [ - 'The data (array) must match the type: object', - ], - ], - - ['menu_link_content_civictheme_primary_navigation', 'civictheme_migrate.menu_link_content_civictheme_primary_navigation.json', []], - [ - 'menu_link_content_civictheme_primary_navigation', - 'civictheme_migrate.node_civictheme_page_1.json', - [ - 'The data (array) must match the type: object', - ], - ], - - ['menu_link_content_civictheme_secondary_navigation', 'civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json', []], - [ - 'menu_link_content_civictheme_secondary_navigation', - 'civictheme_migrate.node_civictheme_page_1.json', - [ - 'The data (array) must match the type: object', - ], - ], - - ['menu_link_content_civictheme_footer', 'civictheme_migrate.menu_link_content_civictheme_footer.json', []], - [ - 'menu_link_content_civictheme_footer', - 'civictheme_migrate.node_civictheme_page_1.json', - [ - 'The data (array) must match the type: object', - ], - ], - ]; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UrlHelperTest.php b/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UrlHelperTest.php deleted file mode 100644 index bb5c27c99b..0000000000 --- a/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UrlHelperTest.php +++ /dev/null @@ -1,59 +0,0 @@ -assertEquals($expected, UrlHelper::extractLocalUrl($uri, $domains)); - } - - /** - * Data provider for testExtractLocalUrl(). - */ - public function dataProviderExtractLocalUrl() { - return [ - ['', [], NULL], - ['', ['example.com'], NULL], - [' ', [], '/ '], - - ['#', [], NULL], - ['#abc', [], NULL], - ['mailto:a.b@cde.com', [], NULL], - ['a.b@cde.com', [], '/a.b@cde.com'], - - ['/path', [], '/path'], - ['path', [], '/path'], - ['/path?q=1', [], '/path'], - - ['http://example.com', [], NULL], - ['http://example.com/', [], NULL], - ['http://example.com/path', [], NULL], - - ['http://example.com/', ['http://example.com'], '/'], - ['http://example.com/', ['http://example.com/'], '/'], - ['http://example.com/path', ['http://example.com'], '/path'], - ['http://example.com/path', ['http://example.com/'], '/path'], - - ['http://example.com/', ['example.com'], NULL], - ]; - } - -} diff --git a/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UtilityTest.php b/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UtilityTest.php deleted file mode 100644 index 6b77de0ba9..0000000000 --- a/docroot/modules/custom/civictheme_migrate/tests/src/Unit/UtilityTest.php +++ /dev/null @@ -1,92 +0,0 @@ -assertEquals($expected, Utility::multilineToArray($string)); - } - - /** - * Data provider for multilineToArray(). - */ - public function dataProviderMultilineToArray() { - return [ - ['', []], - [' ', []], - ['a', ['a']], - [ - 'a - b', ['a', 'b'], - ], - [ - 'a aa - b', ['a aa', 'b'], - ], - [ - 'a aa - b - c', ['a aa', 'b', 'c'], - ], - [ - 'a aa - b - - c', ['a aa', 'b', 'c'], - ], - // Array as input. - [ - ['a', 'b'], ['a', 'b'], - ], - ]; - } - - /** - * Test for Utility::arrayToMultiline(). - * - * @dataProvider dataProviderArrayToMultiline - */ - public function testArrayToMultiline($array, $expected) { - $this->assertEquals($expected, Utility::arrayToMultiline($array)); - } - - /** - * Data provider for arrayToTextarea(). - */ - public function dataProviderArrayToMultiline() { - return [ - [[], ''], - [[''], ''], - [['', ''], ''], - [[' ', ''], ' '], - [['a'], 'a'], - [ - ['a', 'b'], 'a' . PHP_EOL . 'b', - ], - [[' a ', 'b'], ' a ' . PHP_EOL . 'b'], - [[' a ', '', 'b'], ' a ' . PHP_EOL . 'b'], - [[' a ', ' ', 'b'], ' a ' . PHP_EOL . ' ' . PHP_EOL . 'b'], - // String as input. - ['', ''], - ['a', 'a'], - ]; - } - -} diff --git a/docroot/themes/contrib/civictheme/civictheme.theme b/docroot/themes/contrib/civictheme/civictheme.theme index 8e7e6767bf..b6eba1ba36 100644 --- a/docroot/themes/contrib/civictheme/civictheme.theme +++ b/docroot/themes/contrib/civictheme/civictheme.theme @@ -31,7 +31,6 @@ require_once 'includes/media.inc'; require_once 'includes/menu.inc'; require_once 'includes/mobile_navigation.inc'; require_once 'includes/next_step.inc'; -require_once 'includes/migration.inc'; require_once 'includes/node.inc'; require_once 'includes/page.inc'; require_once 'includes/pager.inc'; @@ -152,9 +151,6 @@ function civictheme_preprocess_page(&$variables) { // Preprocessing for Alerts functionality. _civictheme_preprocess_page__civictheme_alert($variables); - // Preprocessing for migration metadata functionality. - _civictheme_migration_metadata__page($variables); - // Add all page variables to the root variables. This is required so that // child themes could add page-level variables without have to extend page // template (the variables there are not scoped as an exception). diff --git a/docroot/themes/contrib/civictheme/config/schema/civictheme.schema.yml b/docroot/themes/contrib/civictheme/config/schema/civictheme.schema.yml index b4679e75f6..6c0f44552f 100644 --- a/docroot/themes/contrib/civictheme/config/schema/civictheme.schema.yml +++ b/docroot/themes/contrib/civictheme/config/schema/civictheme.schema.yml @@ -368,13 +368,6 @@ civictheme.settings: success: label: Success type: string - migration: - type: mapping - label: Migration - mapping: - expose_metadata: - label: 'Expose migration metadata' - type: boolean optouts: type: mapping label: 'Opt-out flags' diff --git a/docroot/themes/contrib/civictheme/includes/banner.inc b/docroot/themes/contrib/civictheme/includes/banner.inc index 8dba47d608..e0204383a8 100644 --- a/docroot/themes/contrib/civictheme/includes/banner.inc +++ b/docroot/themes/contrib/civictheme/includes/banner.inc @@ -69,8 +69,6 @@ function _civictheme_preprocess_block__civictheme_banner(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; - _civictheme_migration_metadata__banner($variables); - // 'type' is internal field and should not be passed to the template. unset($variables['type']); } diff --git a/docroot/themes/contrib/civictheme/includes/migration.inc b/docroot/themes/contrib/civictheme/includes/migration.inc deleted file mode 100644 index 07914e890b..0000000000 --- a/docroot/themes/contrib/civictheme/includes/migration.inc +++ /dev/null @@ -1,111 +0,0 @@ -load('migration.expose_metadata') ?? FALSE; -} - -/** - * Convert migration metadata to attributes. - * - * @param array $values - * Array of values to be converted to attributes. - * @param string $prefix - * (optional) Values prefix to be added to the data attribute name. - * - * @return array - * Array of converted metadata. - */ -function _civictheme_migration_metadata_convert_to_attributes(array $values, $prefix = '') { - $attributes = []; - - foreach ($values as $name => $value) { - if (is_null($value)) { - continue; - } - $attributes['data-ct-migrate-' . ($prefix ? trim($prefix, '-') . '-' : '') . $name] = is_scalar($value) ? (is_bool($value) ? (int) $value : $value) : json_encode($value); - } - - return $attributes; -} - -/** - * Exposes Page level migration metadata. - */ -function _civictheme_migration_metadata__page(&$variables) { - if (!civictheme_migrate_metadata_enabled()) { - return; - } - - $civictheme_page_default_settings = [ - 'field_c_n_vertical_spacing' => 'none', - 'field_c_n_show_toc' => FALSE, - 'field_c_n_show_last_updated' => FALSE, - 'field_c_n_hide_sidebar' => FALSE, - 'field_c_n_summary' => '', - ]; - - $node = $variables['node'] ?? NULL; - - // Convert field name to attribute name and set value either node field value - // or default value. - $attributes = []; - foreach ($civictheme_page_default_settings as $field_name => $default_value) { - $attribute_name = str_replace('_', '-', str_replace('field_c_n_', '', $field_name)); - $attributes[$attribute_name] = $node ? civictheme_get_field_value($node, $field_name) : $default_value; - } - - // Handling edge cases - we always have a node for edge cases as these - // are generated from field values. - if ($node) { - if ($attributes['show-last-updated']) { - $attributes['last-updated'] = _civictheme_node_get_updated_date($node); - } - - $thumbnail = civictheme_get_field_value($node, 'field_c_n_thumbnail', TRUE); - if (!empty($thumbnail)) { - $attributes['thumbnail'] = civictheme_media_image_get_variables($thumbnail); - } - - $topics = civictheme_get_referenced_entity_labels($node, 'field_c_n_topics'); - if (!empty($topics)) { - $topics = implode(',', $topics); - $attributes['topics'] = $topics; - } - } - - $variables['content_attributes'] = $variables['content_attributes'] ?? []; - $variables['content_attributes'] += _civictheme_migration_metadata_convert_to_attributes($attributes, 'node'); -} - -/** - * Exposes migration Banner metadata. - */ -function _civictheme_migration_metadata__banner(&$variables) { - if (!civictheme_migrate_metadata_enabled()) { - return; - } - - $attributes = []; - $attributes['type'] = $variables['type']; - $attributes['theme'] = $variables['theme']; - $attributes['hide-breadcrumb'] = (int) empty($variables['breadcrumb']); - - if (!empty($variables['background_image'])) { - $attributes['background-image-blend-mode'] = $variables['background_image_blend_mode']; - $attributes['background-image'] = $variables['background_image']; - } - - $variables['attributes'] = $variables['attributes'] ?? []; - $variables['attributes'] += _civictheme_migration_metadata_convert_to_attributes($attributes, 'banner'); -} diff --git a/docroot/themes/contrib/civictheme/src/Settings/CivicthemeSettingsFormSectionMigration.php b/docroot/themes/contrib/civictheme/src/Settings/CivicthemeSettingsFormSectionMigration.php deleted file mode 100644 index 0405994375..0000000000 --- a/docroot/themes/contrib/civictheme/src/Settings/CivicthemeSettingsFormSectionMigration.php +++ /dev/null @@ -1,39 +0,0 @@ - 'details', - '#title' => $this->t('Migration'), - '#open' => FALSE, - '#tree' => TRUE, - '#weight' => 40, - '#description' => $this->t('Migrations may require access to internal field values not available in the HTML. Exposing such values adds data HTML attributes to HTML elements.'), - ]; - - $form['migration']['expose_metadata'] = [ - '#type' => 'checkbox', - '#title' => 'Expose Migration metadata', - '#default_value' => $this->themeConfigManager->load('migration.expose_metadata') ?? FALSE, - ]; - } - -} diff --git a/scripts/custom/drupal-install-site-3-provision-content.sh b/scripts/custom/drupal-install-site-3-provision-content.sh index 80a53667f4..19e6cb255e 100755 --- a/scripts/custom/drupal-install-site-3-provision-content.sh +++ b/scripts/custom/drupal-install-site-3-provision-content.sh @@ -35,9 +35,6 @@ fi echo " > Enable development module." $drush -y pm-enable civictheme_dev -echo " > Enable migration modules." -$drush -y pm-enable civictheme_migrate - if [ "${CIVICTHEME_SKIP_GENERATED_CONTENT_CREATE}" != "1" ]; then echo " > Generate test content." diff --git a/scripts/custom/drupal-install-site-4-migration-operations.sh b/scripts/custom/drupal-install-site-4-migration-operations.sh deleted file mode 100755 index 6e43311ed6..0000000000 --- a/scripts/custom/drupal-install-site-4-migration-operations.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -## -# Migration operations that will run after website is installed. -# - -set -eu -[ -n "${DREVOPS_DEBUG:-}" ] && set -x - -# Path to the application. -APP="${APP:-/app}" - -# Flag to completely skip migrations. -MIGRATION_SKIP="${MIGRATION_SKIP:-0}" - -# Limit of migration items. -MIGRATION_IMPORT_LIMIT="${MIGRATION_IMPORT_LIMIT:-all}" - -# ------------------------------------------------------------------------------ - -# Use local or global Drush, giving priority to a local drush. -drush="$(if [ -f "${APP}/vendor/bin/drush" ]; then echo "${APP}/vendor/bin/drush"; else command -v drush; fi)" - -echo "==> Started migration post site install operations." -environment="$($drush ev "print \Drupal\core\Site\Settings::get('environment');")" -echo " Environment: ${environment}" -echo " Migration skip: ${MIGRATION_SKIP}" -echo " Migration limit: ${MIGRATION_IMPORT_LIMIT}" -echo - -if [ "${MIGRATION_SKIP}" = "1" ]; then - echo "==> Skipping Migration post site install operations." - return -fi - -if [ -n "${DREVOPS_DRUPAL_INSTALL_USE_MAINTENANCE_MODE}" ]; then - echo " > Disabling maintenance mode before running core group migrations." - $drush state:set system.maintenance_mode 1 --input-format=integer -y -fi - -echo "==> Running migrations." - -# Define pairs of migration type and URL. -# @see https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/project/governmentcivicthemeio -$drush config-set "migrate_plus.migration.media_civictheme_image" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-129/media-civictheme_image.json]" -$drush config-set "migrate_plus.migration.media_civictheme_icon" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-132/media-civictheme_icon.json]" -$drush config-set "migrate_plus.migration.media_civictheme_document" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-130/media-civictheme_document.json]" -$drush config-set "migrate_plus.migration.menu_link_content_civictheme_primary_navigation" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-134/civictheme-primary-navigation.json]" -$drush config-set "migrate_plus.migration.menu_link_content_civictheme_secondary_navigation" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-135/civictheme-secondary-navigation.json]" -$drush config-set "migrate_plus.migration.menu_link_content_civictheme_footer" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-136/civictheme-footer.json]" -$drush config-set "migrate_plus.migration.node_civictheme_page" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-131/governmentcivicthemeio-extractor-page.json]" -$drush config-set "migrate_plus.migration.node_civictheme_page_annotate" -y --input-format=yaml source.urls "[https://nginx-php.master.merlin-ui.lagoon.salsa.hosting/sites/default/files/extracted/node-131/governmentcivicthemeio-extractor-page.json]" - -$drush config-set "civictheme_migrate.settings" -y --input-format=yaml local_domains "[https://nginx-php.content-government.civictheme-source.lagoon.salsa.hosting]" - -$drush cr -$drush migrate:status --group=civictheme_migrate -y -$drush migrate:import --group=civictheme_migrate --update --limit="${MIGRATION_IMPORT_LIMIT}" -y - -if [ -n "${DREVOPS_DRUPAL_INSTALL_USE_MAINTENANCE_MODE}" ]; then - echo " > Disabling maintenance mode before running core group migrations." - $drush state:set system.maintenance_mode 0 --input-format=integer -y -fi - -echo "==> Finished migration post site install operations." diff --git a/scripts/drevops/lint.sh b/scripts/drevops/lint.sh index af21c3f319..200ae84abb 100755 --- a/scripts/drevops/lint.sh +++ b/scripts/drevops/lint.sh @@ -67,7 +67,4 @@ if [ -z "${DREVOPS_LINT_TYPE##*config*}" ]; then # Lint theme schema. ./vendor/bin/drush inspect_config civictheme.settings --detail --only-error - - # Lint modules schema. - ./vendor/bin/drush inspect_config civictheme_migrate.settings --detail --only-error fi diff --git a/scripts/theme_excluded_configs.txt b/scripts/theme_excluded_configs.txt index 5a40d975b0..aee82e6d64 100644 --- a/scripts/theme_excluded_configs.txt +++ b/scripts/theme_excluded_configs.txt @@ -41,7 +41,6 @@ block.block.civictheme_signup block.block.civictheme_social_links block.block.exposedformcivictheme_testpage_civictheme block_content.type.basic -civictheme_migrate.settings coffee.configuration comment.* config_devel.settings @@ -126,8 +125,6 @@ media.type.remote_video* media.type.video* media_library.settings menu_ui.settings -migrate_plus.migration.* -migrate_plus.migration_group.civictheme_migrate node.settings node.type.article* node.type.page* diff --git a/tests/behat/bootstrap/FeatureContext.php b/tests/behat/bootstrap/FeatureContext.php index e89426ec00..e6f8ce153b 100644 --- a/tests/behat/bootstrap/FeatureContext.php +++ b/tests/behat/bootstrap/FeatureContext.php @@ -360,18 +360,6 @@ public function themeVisitSettings($name = NULL) { $this->visitPath($url->toString()); } - /** - * Clear named migrate table. - * - * @Given I clear :name migration map - */ - public function migrateClearMap($name) { - $table_name = 'migrate_map_' . $name; - if (\Drupal::database()->schema()->tableExists($table_name)) { - \Drupal::database()->query("TRUNCATE TABLE " . $table_name)->execute(); - } - } - /** * Remove menu links by title. * diff --git a/tests/behat/features/migrate.access.feature b/tests/behat/features/migrate.access.feature deleted file mode 100644 index 0936a59600..0000000000 --- a/tests/behat/features/migrate.access.feature +++ /dev/null @@ -1,16 +0,0 @@ -@p1 @civictheme @civictheme_migrate -Feature: CivicTheme migrate module access - - @api - Scenario Outline: Only administrator can access the CivicTheme migration configuration form - - Given I am logged in as a user with the "" role - When I go to "admin/config/civictheme-migrate" - Then the response status code should be - - Examples: - | role | code | - | civictheme_content_author | 403 | - | civictheme_content_approver | 403 | - | civictheme_site_administrator | 403 | - | administrator | 200 | diff --git a/tests/behat/features/migrate.mappings.civictheme_image.feature b/tests/behat/features/migrate.mappings.civictheme_image.feature deleted file mode 100644 index 3cc9b033b1..0000000000 --- a/tests/behat/features/migrate.mappings.civictheme_image.feature +++ /dev/null @@ -1,59 +0,0 @@ -@p1 @civictheme @civictheme_migrate -Feature: CivicTheme migrate module - - These tests assert migration update functionality, migration mappings and - schema sources. - - # When _extending_ existing migrations, update fixture files and migration - # result assertions below. - # - # When _adding_ new migrations, create new fixture files, add new tests - # (copy from the existing tests below) and add migration result assertions. - # - # Use "test_" or "[TEST]" prefix for content created within test. - # Use "migrated_" or "[TEST] Migrated" prefix for content referenced within - # migration sources. - - Background: - Given no managed files: - | filename | - | test_civictheme_migrate.media_civictheme_image_1.json | - - # Files used as migration sources and are attached to the migrations. - And managed file: - | path | uri | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - - # Files used as migration assets and are served from the local server as from remote. - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - - @api @drush - Scenario: Migration Media should import alt text with limit - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - And I go to "admin/content/media" - And I should see "migrated_dummy2.jpg" - And I click "migrated_dummy2.jpg" - Then the response status code should be 200 - And the response should contain "[TEST CHAR 510]" - And the response should not contain "[TEST 512 character]" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" diff --git a/tests/behat/features/migrate.mappings.civictheme_page.feature b/tests/behat/features/migrate.mappings.civictheme_page.feature deleted file mode 100644 index 19d22a0ffa..0000000000 --- a/tests/behat/features/migrate.mappings.civictheme_page.feature +++ /dev/null @@ -1,210 +0,0 @@ -@p1 @civictheme @civictheme_migrate -Feature: CivicTheme migrate module - - These tests assert migration update functionality, migration mappings and - schema sources. - - # When _extending_ existing migrations, update fixture files and migration - # result assertions below. - # - # When _adding_ new migrations, create new fixture files, add new tests - # (copy from the existing tests below) and add migration result assertions. - # - # Use "test_" or "[TEST]" prefix for content created within test. - # Use "migrated_" or "[TEST] Migrated" prefix for content referenced within - # migration sources. - - Background: - Given no civictheme_page content: - | title | - | [TEST] Migrated Content 1 | - | [TEST] Migrated Content 2 | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_1.json | - | test_civictheme_migrate.node_civictheme_page_2.json | - | test_civictheme_migrate.node_civictheme_page_3.json | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_image_2.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - - And no topic terms: - | name | - | [TEST] Migrated event topic 1 | - | [TEST] Migrated topic 1 | - | [TEST] Migrated topic 2 | - | [TEST] Migrated topic 3 | - | [TEST] Migrated topic 4 | - - # Files used as migration sources and are attached to the migrations. - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_1.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_1.json | - | migrate/civictheme_migrate.node_civictheme_page_2.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_2.json | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_image_2.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_2.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - - # Files used as migration assets and are served from the local server as from remote. - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_2.json - # @see fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy3.pdf | public://migration-source/migrated_dummy3.pdf | - | migrate/dummy4.pdf | public://migration-source/migrated_dummy4.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - | migrate/dummy3.txt | public://migration-source/migrated_dummy3.txt | - | migrate/dummy4.txt | public://migration-source/migrated_dummy4.txt | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I clear "node_civictheme_page" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration local sources can be updated from the migration edit form - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_2.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - And I visit "civictheme_page" "[TEST] Migrated Content 1" - - # Asserting field mappings. - # Alias. - Then I should be in the "/test/migrated-content-1" path - # Topics. - And I should see "[TEST] Migrated topic 1" in the ".ct-tag-list" element - And I should see "[TEST] Migrated topic 2" in the ".ct-tag-list" element - And I should see "[TEST] Migrated topic 3" in the ".ct-tag-list" element - And I should see "[TEST] Migrated topic 4" in the ".ct-tag-list" element - # Vertical spacing. - And I should see a ".ct-layout.ct-vertical-spacing--top" element - # Hide sidebar. - And I should not see a ".ct-layout__sidebar" element - # Show last updated date and last updated date. - And I should see "Last updated: 8 Oct 2022" - # Show TOC. - And I should see a ".table-of-contents-container" element - # Banner theme. - And I should see a ".ct-banner.ct-theme-dark" element - # Banner title override. - And I should see "[TEST] Banner title - Migrated Content 1" in the ".ct-banner .ct-banner__title" element - # Banner type. - And I should see a ".ct-banner.ct-banner--decorative" element - # Banner blend mode. - And I should see a ".ct-banner .ct-background--darken" element - # Banner featured image. - And I should see a ".ct-banner .ct-banner__featured-image" element - And the response should contain "dummy2.jpg" - And the response should contain "Dummy file 2" - # Banner background. - And the response should contain "dummy3.jpg" - # Hide breadcrumb. - And I should not see a ".ct-banner .ct-breadcrumb" element - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration remote sources can be updated from the migration edit form - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I fill in "Source as URLs" with: - """ - http://nginx:8080/sites/default/files/migration-source/test_civictheme_migrate.media_civictheme_image_1.json - http://nginx:8080/sites/default/files/migration-source/test_civictheme_migrate.media_civictheme_image_2.json - """ - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I fill in "Source as URLs" with "http://nginx:8080/sites/default/files/migration-source/test_civictheme_migrate.media_civictheme_document_1.json" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I fill in "Source as URLs" with "http://nginx:8080/sites/default/files/migration-source/test_civictheme_migrate.node_civictheme_page_2.json" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - And I visit "civictheme_page" "[TEST] Migrated Content 2 with minimal mapping" - - # No need to assert for field mappings and maintain it in this test as the - # mappings were tested in the test above. - # Alias. - Then the response should contain "200" - And I should see "[TEST] Banner title - Migrated Page Content 21" in the ".ct-banner .ct-banner__title" element - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_image" migration map - And I clear "node_civictheme_page" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration local sources with incorrect schema will trigger a validation error - Given I am logged in as a user with the "administrator" role - - # Try uploading page sources for image migration. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - And I should see the text "error has been found:" - And I should see the text "The specified file civictheme_migrate.node_civictheme_page_1.json could not be uploaded." - And I should see the text "The data (array) must match the type: object" - - # Try uploading image sources for page migration. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - And I should see the text "error has been found:" - And I should see the text "The specified file civictheme_migrate.media_civictheme_image_1.json could not be uploaded." - And I should see the text "The data (object) must match the type: array" diff --git a/tests/behat/features/migrate.mappings.components.attachment.feature b/tests/behat/features/migrate.mappings.components.attachment.feature deleted file mode 100644 index ed73c77951..0000000000 --- a/tests/behat/features/migrate.mappings.components.attachment.feature +++ /dev/null @@ -1,121 +0,0 @@ -@p1 @civictheme @civictheme_migrate @civictheme_migrate_attachment -Feature: CivicTheme migrate module Component mapping - - Background: - Given no civictheme_page content: - | title | - | [TEST] Migrated Page Content 41 | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_4.json | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_image_2.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_4.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_4.json | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_image_2.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_2.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy3.pdf | public://migration-source/migrated_dummy3.pdf | - | migrate/dummy4.pdf | public://migration-source/migrated_dummy4.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - | migrate/dummy3.txt | public://migration-source/migrated_dummy3.txt | - | migrate/dummy4.txt | public://migration-source/migrated_dummy4.txt | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I clear "media_civictheme_document" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration for Attachment component - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_2.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_4.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page_annotate/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_4.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - And I visit "civictheme_page" "[TEST] Migrated Page Content 41" - - # Asserting field mappings. - #Alias - Then I should be in the "/migrated/page-content-41" path - #Banner - Then I should see "[TEST] Banner title - Migrated Page Content 41" in the ".ct-banner__title" element - #Content - And I should see an ".ct-basic-content" element - And I should see the text "[TEST] Basic text content" - #attachment - And I should see an ".ct-attachment" element - And I should see an ".ct-attachment__content" element - - And I should see the text "[TEST] Attachment 42 title" - # Link to existing document. - And I should see "link to existing document" in the ".ct-attachment__content a[href$='migrated_dummy1.pdf']" element - And I should see "link to existing document" in the ".ct-attachment__content a[href$='migrated_dummy1.pdf'][data-entity-uuid]" element - And I should see the ".ct-attachment__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-type" attribute set to "media" - And I should see the ".ct-attachment__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-substitution" attribute set to "media" - # Link to existing content. - And I should see "link to existing page" in the ".ct-attachment__content a[href='/migrated/page-content-41']" element - And I should see "link to existing page" in the ".ct-attachment__content a[href='/migrated/page-content-41'][data-entity-uuid]" element - And I should see the ".ct-attachment__content a[href='/migrated/page-content-41']" element with the "data-entity-type" attribute set to "node" - And I should see the ".ct-attachment__content a[href='/migrated/page-content-41']" element with the "data-entity-substitution" attribute set to "canonical" - And I should see the ".ct-attachment__content a[href='/migrated/page-content-41']" element with the "title" attribute set to "[TEST] Migrated Page Content 41" - - And I should see 3 ".ct-attachment__links .ct-item-list__item" elements - And the response should contain "dummy1.pdf" - And the response should contain "dummy2.pdf" - And the response should contain "dummy1.txt" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_image" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" diff --git a/tests/behat/features/migrate.mappings.components.feature b/tests/behat/features/migrate.mappings.components.feature deleted file mode 100644 index 1a532714cc..0000000000 --- a/tests/behat/features/migrate.mappings.components.feature +++ /dev/null @@ -1,190 +0,0 @@ -@p0 @civictheme @civictheme_migrate @civictheme_migrate_components -Feature: CivicTheme migrate module Component mapping - - Background: - Given no civictheme_page content: - | title | - | [TEST] Migrated Page Content 31 | - | [TEST] Migrated Page Content 32 | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_3.json | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_image_2.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - - And no topic terms: - | name | - | [TEST] Migrated event topic 1 | - | [TEST] Migrated topic 1 | - | [TEST] Migrated topic 2 | - | [TEST] Migrated topic 3 | - | [TEST] Migrated topic 4 | - - # Files used as migration sources and are attached to the migrations. - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_3.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_3.json | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_image_2.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_2.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - - # Files used as migration assets and are served from the local server as from remote. - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_2.json - # @see fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy3.pdf | public://migration-source/migrated_dummy3.pdf | - | migrate/dummy4.pdf | public://migration-source/migrated_dummy4.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - | migrate/dummy3.txt | public://migration-source/migrated_dummy3.txt | - | migrate/dummy4.txt | public://migration-source/migrated_dummy4.txt | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I clear "media_civictheme_document" migration map - And I clear "node_civictheme_page" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration local sources for components can be updated from the migration edit form - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_2.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_3.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page_annotate/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_3.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - And I visit "civictheme_page" "[TEST] Migrated Page Content 31" - - # Asserting field mappings. - # Alias. - Then I should be in the "/migrated/page-content-31" path - # Banner. - Then I should see "[TEST] Banner title - Migrated Page Content 31" in the ".ct-banner__title" element - # Content. - And I should see an ".ct-basic-content" element - And I should see the text "[TEST] Basic text content" - # Manual list. - And I should see an ".ct-list" element - # Promo card. - And I should see 2 ".ct-promo-card" elements - And I should see the text "[TEST] Promo card 1" - And I should see "[TEST] Promo card summary" in the ".ct-promo-card__content" element - # Promo card with image. - And I should see the text "[TEST] Promo card with image" - And the response should contain "dummy1.jpg" - # Event card. - And I should see "[TEST] Event card 1" in the ".ct-event-card" element - And I should see "[TEST] Event card summary" in the ".ct-event-card__content" element - And I should see "[TEST] Migrated event topic 1" in the ".ct-event-card__tags" element - And I should see "[TEST] Migrated topic 2" in the ".ct-event-card__tags" element - # Publication card. - And I should see "[TEST] Publication card 1" in the ".ct-publication-card" element - And I should see "[TEST] Publication card summary" in the ".ct-publication-card__summary" element - And the response should contain "dummy1.pdf" - # Service card. - And I should see "[TEST] Service card 1" in the ".ct-service-card" element - And I should see 2 ".ct-service-card .ct-link" elements - And I should see "[TEST] Service card 1 link 1" in the ".ct-service-card" element - And I should see "[TEST] Service card 1 link 2" in the ".ct-service-card" element - # Subject card. - And I should see "[TEST] Subject card 1" in the ".ct-subject-card" element - And the response should contain "Dummy file 2" - # Accordion. - And I should see an ".ct-accordion" element - And I should see an ".ct-accordion__content" element - And I should see an ".ct-accordion__panels" element - And I should see 5 ".ct-accordion__panels__panel" elements - And I should see the text "[TEST] Accordion panel 1" - And I should see the text "[TEST] Accordion panel content 1" - And I should see the text "[TEST] Accordion panel 2" - And I should see the text "[TEST] Accordion panel content 2" - And I should see the text "[TEST] Accordion panel 3" - And I should see the text "[TEST] Accordion panel content 3" - And I should see the text "[TEST] Accordion panel 4" - And I should see the text "[TEST] Accordion panel content 4" - And I should see the text "[TEST] Accordion panel 5" - And I should see the text "[TEST] Accordion panel content 5" - - And I visit "civictheme_page" "[TEST] Migrated Page Content 32" - # Alias. - Then I should be in the "/migrated/page-content-32" path - Then I should see "[TEST] Banner title - Migrated Page Content 32" in the ".ct-banner__title" element - - # Content. - And I should see an ".ct-basic-content" element - And I should see the text "[TEST] Basic text content" - - # Manual list. - And I should see 1 ".ct-list" elements - And I should see 5 ".ct-item-grid__item " elements - And I should see "[TEST] Promo card" in the ".ct-promo-card" element - And I should see "[TEST] Event card" in the ".ct-event-card" element - And I should see "[TEST] Service card" in the ".ct-service-card" element - And I should see "[TEST] Subject card" in the ".ct-subject-card" element - - # Accordion. - And I should see an ".ct-accordion" element - And I should see an ".ct-accordion__content" element - And I should see an ".ct-accordion__panels" element - And I should see 4 ".ct-accordion__panels__panel" elements - And I should see the text "[TEST] Accordion panel 1" - And I should see the text "[TEST] Accordion panel content 1" - And I should see the text "[TEST] Accordion panel 2" - And I should see the text "[TEST] Accordion panel content 2" - And I should see the text "[TEST] Accordion panel 3" - And I should see the text "[TEST] Accordion panel content 3" - And I should see the text "[TEST] Accordion panel 4" - And I should see the text "[TEST] Accordion panel content 4" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_image" migration map - And I clear "media_civictheme_document" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - And no civictheme_page content: - | title | - | [TEST] Migrated Page Content 31 | - | [TEST] Migrated Page Content 32 | diff --git a/tests/behat/features/migrate.mappings.components.promo.feature b/tests/behat/features/migrate.mappings.components.promo.feature deleted file mode 100644 index f511d8dc4d..0000000000 --- a/tests/behat/features/migrate.mappings.components.promo.feature +++ /dev/null @@ -1,178 +0,0 @@ -@p1 @civictheme @civictheme_migrate @civictheme_migrate_promo -Feature: CivicTheme migrate module Promo Component mapping - - Background: - Given no civictheme_page content: - | title | - | [TEST] Migrated Content 6 with minimal mapping | - - And no blocks: - | civictheme_demo_test_promo_block_1 | - | civictheme_test_promo_block_1 | - - And no content blocks: - | [TEST] Component block | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_6.json | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_image_2.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - | test_civictheme_migrate.block_civictheme.json | - | test_civictheme_migrate.block_content_civictheme_component_block.json | - - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_6.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_6.json | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_image_2.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_2.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - | migrate/civictheme_migrate.block_civictheme.json | public://migration-source/test_civictheme_migrate.block_civictheme.json | - | migrate/civictheme_migrate.block_content_civictheme_component_block.json | public://migration-source/test_civictheme_migrate.block_content_civictheme_component_block.json | - - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy3.pdf | public://migration-source/migrated_dummy3.pdf | - | migrate/dummy4.pdf | public://migration-source/migrated_dummy4.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - | migrate/dummy3.txt | public://migration-source/migrated_dummy3.txt | - | migrate/dummy4.txt | public://migration-source/migrated_dummy4.txt | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I clear "media_civictheme_document" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I clear "block_civictheme" migration map - And I clear "block_content_civictheme_component_block" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.block_civictheme source.urls []" - And I run drush "config-set migrate_plus.migration.block_content_civictheme_component_block source.urls []" - - @api @drush - Scenario: Migration for Promo component - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_2.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_6.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page_annotate/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_6.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/block_civictheme/edit" - And I attach the file "migrate/civictheme_migrate.block_civictheme.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/block_content_civictheme_component_block/edit" - And I attach the file "migrate/civictheme_migrate.block_content_civictheme_component_block.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - - And I visit "civictheme_page" "[TEST] Migrated Content 6 with minimal mapping" - - # Asserting field mappings. - Then I should be in the "/migrated/page-content-61" path - And I should see "[TEST] Banner title - Migrated Page Content 61" in the ".ct-banner__title" element - And I should see an ".ct-basic-content" element - And I should see the text "[TEST] Basic text content 611" - - # - # Promo content component. - # - - # Promo #1. - And I should see an ".ct-promo.ct-theme-light" element - And I should see the text "[TEST] Promo 611 title" - # Link to existing document. - And I should see "link to existing document" in the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element - And I should see "link to existing document" in the ".ct-promo__content a[href$='migrated_dummy1.pdf'][data-entity-uuid]" element - And I should see the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-type" attribute set to "media" - And I should see the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-substitution" attribute set to "media" - # Link to existing content. - And I should see "link to existing page" in the ".ct-promo__content a[href='/migrated/page-content-61']" element - And I should see "link to existing page" in the ".ct-promo__content a[href='/migrated/page-content-61'][data-entity-uuid]" element - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "data-entity-type" attribute set to "node" - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "data-entity-substitution" attribute set to "canonical" - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "title" attribute set to "[TEST] Migrated Content 6 with minimal mapping" - # Link to existing media image. - And I should see the ".ct-promo__content img[src$='files/migrated_dummy1.jpg']" element with the "alt" attribute set to "Existing image alt" - # Absolute link. - And I should see an ".ct-promo__content a[href='https://example.com'].ct-content-link" element - And I should see the text "[TEST] Promo content 611" - And I should see the link "[TEST] Promo link 611" - # Promo #2. - And I should see an ".ct-promo.ct-theme-dark" element - And I should see the text "[TEST] Promo 612 title" - And I should see the text "[TEST] Promo content 612" - And I should see the link "[TEST] Promo link 612" - - # - # Promo block. - # - When I go to homepage - Then I should see an ".ct-promo.ct-theme-light" element - And I should see the text "[TEST] Promo Block 1 title" - And I should see the text "[TEST] Promo block 1 content" - # Link to existing document. - And I should see "link to existing document" in the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element - And I should see "link to existing document" in the ".ct-promo__content a[href$='migrated_dummy1.pdf'][data-entity-uuid]" element - And I should see the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-type" attribute set to "media" - And I should see the ".ct-promo__content a[href$='migrated_dummy1.pdf']" element with the "data-entity-substitution" attribute set to "media" - # Link to existing content. - And I should see "link to existing page" in the ".ct-promo__content a[href='/migrated/page-content-61']" element - And I should see "link to existing page" in the ".ct-promo__content a[href='/migrated/page-content-61'][data-entity-uuid]" element - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "data-entity-type" attribute set to "node" - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "data-entity-substitution" attribute set to "canonical" - And I should see the ".ct-promo__content a[href='/migrated/page-content-61']" element with the "title" attribute set to "[TEST] Migrated Content 6 with minimal mapping" - # Link to existing media image. - And I should see the ".ct-promo__content img[src$='files/migrated_dummy1.jpg']" element with the "alt" attribute set to "Existing image alt" - # Absolute link. - And I should see an ".ct-promo__content a[href='https://example.com'].ct-content-link" element - And I should see the link "[TEST] Promo Block 1 link" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_image" migration map - And I clear "node_civictheme_page" migration map - And I clear "block_civictheme" migration map - And I clear "block_content_civictheme_component_block" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - And I run drush "config-set migrate_plus.migration.block_civictheme source.urls []" - And I run drush "config-set migrate_plus.migration.block_content_civictheme_component_block source.urls []" diff --git a/tests/behat/features/migrate.mappings.components.references.feature b/tests/behat/features/migrate.mappings.components.references.feature deleted file mode 100644 index 6075782792..0000000000 --- a/tests/behat/features/migrate.mappings.components.references.feature +++ /dev/null @@ -1,136 +0,0 @@ -@p1 @civictheme @civictheme_migrate @civictheme_migrate_reference -Feature: CivicTheme migrate module Component references - - Background: - Given no civictheme_page content: - | title | - | [TEST] Migrated Page Content 71 | - | [TEST] Migrated Page Content 72 | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_7.json | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_image_2.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_7.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_7.json | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_image_2.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_2.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - - And managed file: - | path | uri | - | migrate/dummy1.jpg | public://migration-source/migrated_dummy1.jpg | - | migrate/dummy2.jpg | public://migration-source/migrated_dummy2.jpg | - | migrate/dummy3.jpg | public://migration-source/migrated_dummy3.jpg | - | migrate/dummy4.jpg | public://migration-source/migrated_dummy4.jpg | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy3.pdf | public://migration-source/migrated_dummy3.pdf | - | migrate/dummy4.pdf | public://migration-source/migrated_dummy4.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - | migrate/dummy3.txt | public://migration-source/migrated_dummy3.txt | - | migrate/dummy4.txt | public://migration-source/migrated_dummy4.txt | - - # Fully reset migration runs and migration configs. - And I clear "media_civictheme_image" migration map - And I clear "media_civictheme_document" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Links and references are replaced during migrations - Given I am logged in as a user with the "administrator" role - - # Attaching 2 source image files as the node migration depends on images in both files. - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_image/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_2.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_7.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page_annotate/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_7.json" to "files[source_update_files][]" - And I press "Update Migration" - - And I run drush "config-set civictheme_migrate.settings local_domains --input-format=yaml [http://nginx:8080]" - - And I run drush "mim node_civictheme_page_annotate --update --execute-dependencies" - - When I visit "civictheme_page" "[TEST] Migrated Page Content 71" - Then I should be in the "/migrated/page-content-71" path - And I should see "[TEST] Banner title - Migrated Page Content 71" in the ".ct-banner__title" element - - # Asserting for correct assets processing. - And I visit "civictheme_page" "[TEST] Migrated Page Content 72" - Then I should be in the "/migrated/page-content-72" path - And I should see "[TEST] Banner title - Migrated Page Content 72" in the ".ct-banner__title" element - - And I should see the text "[TEST] Basic text content 721" - # Link to existing document. - And I should see "link to existing document" in the ".ct-basic-content a[href$='migrated_dummy1.pdf']" element - And I should see "link to existing document" in the ".ct-basic-content a[href$='migrated_dummy1.pdf'][data-entity-uuid]" element - And I should see the ".ct-basic-content a[href$='migrated_dummy1.pdf']" element with the "data-entity-type" attribute set to "media" - And I should see the ".ct-basic-content a[href$='migrated_dummy1.pdf']" element with the "data-entity-substitution" attribute set to "media" - # Link to existing content. - And I should see "link to existing page" in the ".ct-basic-content a[href='/migrated/page-content-71']" element - And I should see "link to existing page" in the ".ct-basic-content a[href='/migrated/page-content-71'][data-entity-uuid]" element - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "data-entity-type" attribute set to "node" - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "data-entity-substitution" attribute set to "canonical" - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "title" attribute set to "[TEST] Migrated Page Content 71" - # Link to existing media image. - And I should see the ".ct-basic-content img[src$='files/migrated_dummy1.jpg']" element with the "alt" attribute set to "Existing image alt" - # Absolute link. - And I should see an ".ct-basic-content a[href='https://example.com'].ct-content-link" element - - And I should see the text "[TEST] Basic text content 722" - # Link to existing document. - And I should see "link to existing external document set as local" in the ".ct-basic-content a[href$='migrated_dummy2.pdf']" element - And I should see "link to existing external document set as local" in the ".ct-basic-content a[href$='migrated_dummy2.pdf'][data-entity-uuid]" element - And I should see the ".ct-basic-content a[href$='migrated_dummy2.pdf']" element with the "data-entity-type" attribute set to "media" - And I should see the ".ct-basic-content a[href$='migrated_dummy2.pdf']" element with the "data-entity-substitution" attribute set to "media" - # Link to existing content. - And I should see "link to existing page" in the ".ct-basic-content a[href='/migrated/page-content-71']" element - And I should see "link to existing page" in the ".ct-basic-content a[href='/migrated/page-content-71'][data-entity-uuid]" element - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "data-entity-type" attribute set to "node" - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "data-entity-substitution" attribute set to "canonical" - And I should see the ".ct-basic-content a[href='/migrated/page-content-71']" element with the "title" attribute set to "[TEST] Migrated Page Content 71" - # Link to existing media image. - And I should see the ".ct-basic-content img[src$='files/migrated_dummy2.jpg']" element with the "alt" attribute set to "Existing external image set as local alt" - # Absolute link without entity reference would not be converted. - And I should see an ".ct-basic-content a[href='http://nginx:8080/'].ct-content-link" element - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_image" migration map - And I clear "node_civictheme_page" migration map - And I clear "node_civictheme_page_annotate" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" diff --git a/tests/behat/features/migrate.mappings.menu.feature b/tests/behat/features/migrate.mappings.menu.feature deleted file mode 100644 index 3e43c6a466..0000000000 --- a/tests/behat/features/migrate.mappings.menu.feature +++ /dev/null @@ -1,131 +0,0 @@ -@p0 @civictheme @civictheme_migrate @civictheme_migrate_menu -Feature: CivicTheme migrate module Component mapping - - Background: - Given no "Primary navigation" menu_links: - | Test primary 1 parent | - | Test primary 11 child | - | Test primary 12 child | - | Test primary 2 | - | Test primary 3 external | - - And no "Secondary navigation" menu_links: - | Test secondary 1 | - | Test secondary 2 | - - And no "Footer" menu_links: - | Test footer 1 | - | Test footer 2 | - - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_5.json | - | test_civictheme_migrate.menu_link_content_civictheme_primary_navigation.json | - | test_civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json | - | test_civictheme_migrate.menu_link_content_civictheme_footer.json | - - # Files used as migration sources and are attached to the migrations. - And managed file: - | path | uri | - | migrate/civictheme_migrate.node_civictheme_page_5.json | public://migration-source/test_civictheme_migrate.node_civictheme_page_5.json | - | migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json | public://migration-source/test_civictheme_migrate.menu_link_content_civictheme_primary_navigation.json | - | migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json | public://migration-source/test_civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json | - | migrate/civictheme_migrate.menu_link_content_civictheme_footer.json | public://migration-source/test_civictheme_migrate.menu_link_content_civictheme_footer.json | - - # Files used as migration assets and are served from the local server as from remote. - # @see fixtures/migrate/civictheme_migrate.node_civictheme_page_5.json - # @see fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json - # @see fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json - # @see fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_footer.json - - # Fully reset migration runs and migration configs. - And I clear "node_civictheme_page" migration map - And I clear "menu_link_content_civictheme_primary_navigation" migration map - And I clear "menu_link_content_civictheme_secondary_navigation" migration map - And I clear "menu_link_content_civictheme_footer" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration local sources for menus can be updated from the migration edit form - Given I am logged in as a user with the "administrator" role - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/node_civictheme_page/edit" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_5.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_primary_navigation/edit" - And I attach the file "migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_secondary_navigation/edit" - And I attach the file "migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_footer/edit" - And I attach the file "migrate/civictheme_migrate.menu_link_content_civictheme_footer.json" to "files[source_update_files][]" - And I press "Update Migration" - - When I run drush "mim --group=civictheme_migrate" - - # Primary navigation items. - Then I go to "admin/structure/menu/manage/civictheme-primary-navigation" - And I should see the link "Test primary 1 parent" - And I should see the link "Test primary 11 child" - And I should see the link "Test primary 12 child" - And I should see the link "Test primary 2" - And I should see the link "Test primary 3 external" - # Assert that link was migrated as external. - When I go to homepage - Then the ".ct-primary-navigation .ct-link--external" element should contain "Test primary 3 external" - - # Secondary navigation items. - Then I go to "admin/structure/menu/manage/civictheme-secondary-navigation" - And I should see the link "Test secondary 1" - And I should see the link "Test secondary 2" - - # Footer items. - Then I go to "admin/structure/menu/manage/civictheme-footer" - And I should see the link "Test footer 1" - And I should see the link "Test footer 2" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "node_civictheme_page" migration map - And I clear "menu_link_content_civictheme_primary_navigation" migration map - And I clear "menu_link_content_civictheme_secondary_navigation" migration map - And I clear "menu_link_content_civictheme_footer" migration map - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And no managed files: - | filename | - | test_civictheme_migrate.node_civictheme_page_5.json | - | test_civictheme_migrate.menu_link_content_civictheme_primary_navigation.json | - | test_civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json | - | test_civictheme_migrate.menu_link_content_civictheme_footer.json | - - @api @drush - Scenario Outline: Migration local sources with incorrect schema will trigger a validation error - Given I am logged in as a user with the "administrator" role - - When I go to "" - And I attach the file "migrate/civictheme_migrate.node_civictheme_page_5.json" to "files[source_update_files][]" - And I press "Update Migration" - - And I should see the text "error has been found:" - And I should see the text "The specified file civictheme_migrate.node_civictheme_page_5.json could not be uploaded." - And I should see the text "The data (array) must match the type: object" - - Examples: - | path | - | admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_primary_navigation/edit | - | admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_secondary_navigation/edit | - | admin/structure/migrate/manage/civictheme_migrate/migrations/menu_link_content_civictheme_footer/edit | diff --git a/tests/behat/features/migrate.mappings.validation.feature b/tests/behat/features/migrate.mappings.validation.feature deleted file mode 100644 index 3b535a2bd1..0000000000 --- a/tests/behat/features/migrate.mappings.validation.feature +++ /dev/null @@ -1,83 +0,0 @@ -@p1 @civictheme @civictheme_migrate @civictheme_migrate_validate -Feature: CivicTheme migrate validation - - Assert that validation of entities is enabled for migration mappings. - This prevents using incorrect cross-bundle migrations. - For example providing 'civictheme_image' bundle for 'civictheme_document' - bundle migration should fail the migration of items with an incorrect bundle. - - Background: - - Given no managed files: - | filename | - | test_civictheme_migrate.media_civictheme_image_1.json | - | test_civictheme_migrate.media_civictheme_document_1.json | - - # Files used as migration sources and are attached to the migrations. - And managed file: - | path | uri | - | migrate/civictheme_migrate.media_civictheme_image_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_image_1.json | - | migrate/civictheme_migrate.media_civictheme_document_1.json | public://migration-source/test_civictheme_migrate.media_civictheme_document_1.json | - - And no managed files: - | filename | - | migrated_dummy1.pdf | - | migrated_dummy2.pdf | - | migrated_dummy1.txt | - | migrated_dummy2.txt | - | migrated_dummy1.jpg | - | migrated_dummy2.jpg | - - # Files used as migration assets and are served from the local server as from remote. - # @see fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json - # @see fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json - And managed file: - | path | uri | - | migrate/dummy1.pdf | public://migration-source/migrated_dummy1.pdf | - | migrate/dummy2.pdf | public://migration-source/migrated_dummy2.pdf | - | migrate/dummy1.txt | public://migration-source/migrated_dummy1.txt | - | migrate/dummy2.txt | public://migration-source/migrated_dummy2.txt | - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" - - @api @drush - Scenario: Migration of documents fails when images provided. - Given I am logged in as a user with the "administrator" role - - When I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_document_1.json" to "files[source_update_files][]" - And I press "Update Migration" - And I go to "admin/structure/migrate/manage/civictheme_migrate/migrations/media_civictheme_document/edit" - And I attach the file "migrate/civictheme_migrate.media_civictheme_image_1.json" to "files[source_update_files][]" - And I press "Update Migration" - - And I run drush "mim media_civictheme_document --update --execute-dependencies --continue-on-failure" - And I go to "admin/content/media" - Then I should see "migrated_dummy1.pdf" - And I should see "migrated_dummy2.pdf" - And I should see "migrated_dummy1.txt" - And I should see "migrated_dummy2.txt" - And I should not see "migrated_dummy1.jpg" - And I should not see "migrated_dummy2.jpg" - - # Reset migration and configs. - And I run drush "mr --group=civictheme_migrate" - And I clear "media_civictheme_document" migration map - And I clear "media_civictheme_image" migration map - And I run drush "config-set migrate_plus.migration.media_civictheme_image source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_document source.urls []" - And I run drush "config-set migrate_plus.migration.media_civictheme_icon source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_footer source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_primary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.menu_link_content_civictheme_secondary_navigation source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page source.urls []" - And I run drush "config-set migrate_plus.migration.node_civictheme_page_annotate source.urls []" diff --git a/tests/behat/features/migrate.settings.feature b/tests/behat/features/migrate.settings.feature deleted file mode 100644 index 4297a29ed5..0000000000 --- a/tests/behat/features/migrate.settings.feature +++ /dev/null @@ -1,56 +0,0 @@ -@p1 @civictheme @civictheme_migrate -Feature: CivicTheme migrate module settings - - @api @javascript @drush - Scenario: Settings form works correctly - # Reset settings. - Given I run drush "config-set civictheme_migrate.settings remote_authentication.type none" - And I run drush "config-set civictheme_migrate.settings remote_authentication.basic.username ''" - And I run drush "config-set civictheme_migrate.settings remote_authentication.basic.password ''" - - Given I am logged in as a user with the "administrator" role - When I go to "admin/config/civictheme-migrate" - - # Assert default state. - Then the "remote_authentication[type]" field should contain "none" - And I should not see a visible "#edit-remote-authentication-basic" element - And I should not see a visible "[name='remote_authentication[basic][username]']" element - And I should not see a visible "[name='remote_authentication[basic][password]']" element - - # Assert the state preserved after save. - When I press "Save configuration" - Then the "remote_authentication[type]" field should contain "none" - And I should not see a visible "#edit-remote-authentication-basic" element - And I should not see a visible "[name='remote_authentication[basic][username]']" element - And I should not see a visible "[name='remote_authentication[basic][password]']" element - - # Assert different authentication selected. - When I select the radio button "Basic authentication" - Then I should see a visible "#edit-remote-authentication-basic" element - And I should see a visible "[name='remote_authentication[basic][username]']" element - And I should see a visible "[name='remote_authentication[basic][password]']" element - - When I fill in "Username" with "testusername" - And I fill in "Password" with "testpassword" - And I press "Save configuration" - Then I should see a visible "#edit-remote-authentication-basic" element - And I should see a visible "[name='remote_authentication[basic][username]']" element - And I should see a visible "[name='remote_authentication[basic][password]']" element - And the "remote_authentication[basic][username]" field should contain "testusername" - And the "remote_authentication[basic][password]" field should contain "testpassword" - - # Reset settings. - Given I run drush "config-set civictheme_migrate.settings remote_authentication.type none" - And I run drush "config-set civictheme_migrate.settings remote_authentication.basic.username ''" - And I run drush "config-set civictheme_migrate.settings remote_authentication.basic.password ''" - - @api - Scenario: Schemas appear on the settings page - - Given I am logged in as a user with the "administrator" role - When I go to "admin/config/civictheme-migrate" - - Then I see the text "Migration schemas" - And I see the text "media_civictheme_image" - And I see the text "node_civictheme_page" - And I see the text '"$schema": "https:' diff --git a/tests/behat/features/theme.settings.migration_metadata.feature b/tests/behat/features/theme.settings.migration_metadata.feature deleted file mode 100644 index 6129d8da0e..0000000000 --- a/tests/behat/features/theme.settings.migration_metadata.feature +++ /dev/null @@ -1,99 +0,0 @@ -@p0 @civictheme @civictheme_theme_settings @civictheme_theme_settings_migration @civictheme_migration -Feature: Migration metadata is available on selected components. - - @api - Scenario: The CivicTheme theme setting `Expose Migration metadata` exposes meta data in DOM - Given managed file: - | filename | uri | path | - | test_image.jpg | public://civictheme_test/test_image.jpg | test_image.jpg | - And "civictheme_image" media: - | name | field_c_m_image | - | [TEST] CivicTheme Image | test_image.jpg | - And "civictheme_topics" terms: - | name | - | [TEST] Topic 1 | - | [TEST] Topic 2 | - | [TEST] Topic 3 | - Given "civictheme_page" content: - | title | status | field_c_n_summary | field_c_n_topics | field_c_n_thumbnail | field_c_n_vertical_spacing | field_c_n_show_toc | field_c_n_show_last_updated | field_c_n_hide_sidebar | field_c_n_custom_last_updated | field_c_n_banner_background | field_c_n_blend_mode | field_c_n_banner_type | field_c_n_banner_theme | field_c_n_banner_hide_breadcrumb | - | [TEST] Page 1 | 1 | [TEST] Summary | [TEST] Topic 1, [TEST] Topic 2, [TEST] Topic 3 | [TEST] CivicTheme Image | top | 1 | 1 | 0 | 2022-07-01 | [TEST] CivicTheme Image | luminosity | default | light | 1 | - And "civictheme_page" content: - | title | status | field_c_n_vertical_spacing | field_c_n_show_toc | field_c_n_show_last_updated | field_c_n_hide_sidebar | field_c_n_custom_last_updated | field_c_n_banner_type | field_c_n_banner_theme | field_c_n_banner_hide_breadcrumb | - | [TEST] Page 2 | 1 | bottom | 0 | 0 | 1 | 2022-07-01 | large | dark | 0 | - - When I am logged in as a user with the "Site Administrator" role - And I visit current theme settings page - - # Reset settings. - And I check the box "Confirm settings reset" - And I press "reset_to_defaults" - Then I should see the text "Theme configuration was reset to defaults." - - And I check the box "Expose Migration metadata" - And I press "Save configuration" - - And I visit "civictheme_page" "[TEST] Page 1" - Then should see a "[data-ct-migrate-node-vertical-spacing='top']" element - And should see a "[data-ct-migrate-node-show-toc='1']" element - And should see a "[data-ct-migrate-node-summary='[TEST] Summary']" element - And should see a "[data-ct-migrate-node-thumbnail]" element - And should see a "[data-ct-migrate-node-topics='[TEST] Topic 1,[TEST] Topic 2,[TEST] Topic 3']" element - And should see a "[data-ct-migrate-node-show-last-updated='1']" element - And should see a "[data-ct-migrate-node-hide-sidebar='0']" element - And should see a "[data-ct-migrate-node-last-updated='1 Jul 2022']" element - And should see a "[data-ct-migrate-banner-background-image-blend-mode='luminosity']" element - And should see a "[data-ct-migrate-banner-background-image]" element - And should see a "[data-ct-migrate-banner-type='default']" element - And should see a "[data-ct-migrate-banner-theme='light']" element - And should see a "[data-ct-migrate-banner-hide-breadcrumb='1']" element - - When I visit "civictheme_page" "[TEST] Page 2" - Then should see a "[data-ct-migrate-node-vertical-spacing='bottom']" element - And should not see a "[data-ct-migrate-node-summary]" element - And should not see a "[data-ct-migrate-node-thumbnail]" element - And should not see a "[data-ct-migrate-node-topics]" element - And should see a "[data-ct-migrate-node-show-toc='0']" element - And should see a "[data-ct-migrate-node-show-last-updated='0']" element - And should see a "[data-ct-migrate-node-hide-sidebar='1']" element - And should not see a "[data-ct-migrate-node-last-updated]" element - # CivicTheme has default background image for banner. - And should see a "[data-ct-migrate-banner-background-image-blend-mode='soft-light']" element - And should see a "[data-ct-migrate-banner-background-image]" element - And should see a "[data-ct-migrate-banner-type='large']" element - And should see a "[data-ct-migrate-banner-theme='dark']" element - And should see a "[data-ct-migrate-banner-hide-breadcrumb='0']" element - - When I visit current theme settings page - And I uncheck the box "Expose Migration metadata" - And I press "Save configuration" - - And I visit "civictheme_page" "[TEST] Page 1" - Then should not see a "[data-ct-migrate-node-vertical-spacing='top']" element - And should not see a "[data-ct-migrate-node-show-toc='1']" element - And should not see a "[data-ct-migrate-node-summary='[TEST] Summary']" element - And should not see a "[data-ct-migrate-node-thumbnail]" element - And should not see a "[data-ct-migrate-node-topics='[TEST] Topic 1,[TEST] Topic 2,[TEST] Topic 3']" element - And should not see a "[data-ct-migrate-node-show-last-updated='1']" element - And should not see a "[data-ct-migrate-node-hide-sidebar='0']" element - And should not see a "[data-ct-migrate-node-last-updated='1 Jul 2022']" element - And should not see a "[data-ct-migrate-banner-background-image-blend-mode='luminosity']" element - And should not see a "[data-ct-migrate-banner-background-image]" element - And should not see a "[data-ct-migrate-banner-type='default']" element - And should not see a "[data-ct-migrate-banner-theme='light']" element - And should not see a "[data-ct-migrate-banner-hide-breadcrumb='1']" element - - When I visit "civictheme_page" "[TEST] Page 2" - Then should not see a "[data-ct-migrate-node-vertical-spacing='bottom']" element - And should not see a "[data-ct-migrate-node-summary]" element - And should not see a "[data-ct-migrate-node-thumbnail]" element - And should not see a "[data-ct-migrate-node-topics]" element - And should not see a "[data-ct-migrate-node-show-toc='0']" element - And should not see a "[data-ct-migrate-node-show-last-updated='0']" element - And should not see a "[data-ct-migrate-node-hide-sidebar='1']" element - And should not see a "[data-ct-migrate-node-last-updated]" element - # CivicTheme has default background image for banner. - And should not see a "[data-ct-migrate-banner-background-image-blend-mode='soft-light']" element - And should not see a "[data-ct-migrate-banner-background-image]" element - And should not see a "[data-ct-migrate-banner-type='large']" element - And should not see a "[data-ct-migrate-banner-theme='dark']" element - And should not see a "[data-ct-migrate-banner-hide-breadcrumb='0']" element