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 diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.block_civictheme.json b/tests/behat/fixtures/migrate/civictheme_migrate.block_civictheme.json deleted file mode 100644 index e2d1c8315f..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.block_civictheme.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": "5d371af4-8a0f-41c6-8974-1dd6885e2961", - "description": "Test Promo Block 1", - "content": [ - "aef73ce1-06a3-4da1-a51b-49d24d2628c4" - ], - "region": "content_bottom" - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.block_content_civictheme_component_block.json b/tests/behat/fixtures/migrate/civictheme_migrate.block_content_civictheme_component_block.json deleted file mode 100644 index 06dc028922..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.block_content_civictheme_component_block.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "id": "aef73ce1-06a3-4da1-a51b-49d24d2628c4", - "description": "[TEST] Component block", - "content": { - "type": "container", - "children": [ - { - "promo": { - "type": "container", - "children": { - "title": "[TEST] Promo Block 1 title", - "content": "

[TEST] Promo block 1 content.

Prefix link to existing document suffix, prefix link to existing page suffix, prefix \"Existing suffix.

absolute link

", - "link": { - "uri": "http://example.com", - "title": "[TEST] Promo Block 1 link" - }, - "theme": "light", - "vertical_spacing": "top" - } - } - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json b/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json deleted file mode 100644 index 4e73e5a736..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_document_1.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "data": [ - { - "uuid": "448f7b0e-19a3-4c43-b1d7-5b1f196dbf98", - "name": "migrated_dummy1.pdf", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy1.pdf" - }, - { - "uuid": "32347ee0-afd5-46c2-92d6-3c37147c9943", - "name": "migrated_dummy2.pdf", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy2.pdf" - }, - { - "uuid": "a8bd4335-9d5a-4163-b06c-a2dcb36d8fe5", - "name": "migrated_dummy1.txt", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy1.txt" - }, - { - "uuid": "3369f866-a28d-4b49-957a-e405b5f63c4c", - "name": "migrated_dummy2.txt", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy2.txt" - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json b/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json deleted file mode 100644 index 17324e58e7..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_1.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "data": [ - { - "uuid": "c97a9b08-f3b0-477b-97f7-8b61f9d4a527", - "name": "migrated_dummy1.jpg", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy1.jpg", - "alt": "Migrated dummy file 1" - }, - { - "uuid": "7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4", - "name": "migrated_dummy2.jpg", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy2.jpg", - "alt": "Migrated dummy file 2 Lorem ipsum dolor sit amet consectetur adipiscing elit, aliquam interdum feugiat montes cum laoreet hendrerite, erat mauris lobortis venenatis commodo est. Et vivamus faucibus velit potenti felis metus dis nisi feugiat turpis, tempus ac nostra cum proin natoque cubilia a arcu, mattis phasellus hac integer cras condimentum ad sed urna. Tempus interdum ridiculus velit morbi ut aliquam vestibulum nibh inceptos nostra cubilia duis volutpat libero at, placerat viverra quam [TEST CHAR 510] longer than that [TEST 512 character]" - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_2.json b/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_2.json deleted file mode 100644 index 05ba14cece..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.media_civictheme_image_2.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "data": [ - { - "uuid": "7966cf0a-598d-4da2-8443-837fccd46109", - "name": "migrated_dummy3.jpg", - "file": "http://nginx:8080/sites/default/files/migration-source/migrated_dummy3.jpg", - "alt": "Migrated dummy file 3" - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_footer.json b/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_footer.json deleted file mode 100644 index 7f20132682..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_footer.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "data": [ - { - "uuid": "eb5fe9df-d48e-4a07-b643-25d5d32c4010", - "link": "internal:/", - "text": "Test footer 1", - "parent": "", - "weight": 0 - }, - { - "uuid": "32fcfa8a-501a-4af2-981f-a82d4d5d3020", - "link": "internal:/", - "text": "Test footer 2", - "parent": "", - "weight": 0 - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json b/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json deleted file mode 100644 index cda900f02a..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_primary_navigation.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "data": [ - { - "uuid": "0c0d7e6c-075c-3417-9c9a-2b9b08b3010", - "link": "internal://migrated/page-content-51", - "text": "Test primary 1 parent", - "parent": "", - "weight": 0 - }, - { - "uuid": "0c0d7e6c-075c-3417-9c9a-2b9b08b3011", - "link": "internal:/", - "text": "Test primary 11 child", - "parent": "0c0d7e6c-075c-3417-9c9a-2b9b08b3010", - "weight": 0 - }, - { - "uuid": "0c0d7e6c-075c-3417-9c9a-2b9b08b3012", - "link": "internal:/", - "text": "Test primary 12 child", - "parent": "0c0d7e6c-075c-3417-9c9a-2b9b08b3010", - "weight": 0 - }, - { - "uuid": "0c0d7e6c-075c-3417-9c9a-2b9b08b3e020", - "link": "internal:/", - "text": "Test primary 2", - "parent": "", - "weight": 0 - }, - { - "uuid": "0c0d7e6c-075c-3417-9c9a-2b9b08b3e030", - "link": "https://google.com", - "text": "Test primary 3 external", - "parent": "", - "weight": 0 - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json b/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json deleted file mode 100644 index db12f92cd2..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.menu_link_content_civictheme_secondary_navigation.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "data": [ - { - "uuid": "70062d6d-aa8a-4274-808c-98adf30a6010", - "link": "internal:/", - "text": "Test secondary 1", - "parent": "", - "weight": 0 - }, - { - "uuid": "70062d6d-aa8a-4274-808c-98adf30a6020", - "link": "internal:/", - "text": "Test secondary 2", - "parent": "", - "weight": 0 - } - ] -} diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_1.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_1.json deleted file mode 100644 index 3a8a23ec34..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_1.json +++ /dev/null @@ -1,40 +0,0 @@ -[ - { - "id": "4593761e-8a5d-4564-8c0e-2126fb4f3338", - "title": "[TEST] Migrated Content 1", - "alias": "/test/migrated-content-1", - "summary": "Summary for [TEST] Migrated Content 1", - "topics": [ - "[TEST] Migrated topic 1", - "[TEST] Migrated topic 2", - "[TEST] Migrated topic 3", - "[TEST] Migrated topic 4" - ], - "thumbnail": [ - "c97a9b08-f3b0-477b-97f7-8b61f9d4a527" - ], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "8 Oct 2022", - "show_toc": true, - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Content 1", - "type": "large", - "blend_mode": "darken", - "featured_image": [ - "7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4" - ], - "background": [ - "7966cf0a-598d-4da2-8443-837fccd46109" - ], - "hide_breadcrumb": true - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_2.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_2.json deleted file mode 100644 index cfbc760b47..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_2.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "id": "4593761e-8a5d-4564-8c0e-2126fb4f3399", - "title": "[TEST] Migrated Content 2 with minimal mapping", - "alias": "/migrated/page-content-51", - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2022", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 21", - "type": "default", - "blend_mode": "darken", - "hide_breadcrumb": true - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_3.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_3.json deleted file mode 100644 index fbe3447b9b..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_3.json +++ /dev/null @@ -1,347 +0,0 @@ -[ - { - "id": "77d61781-0657-4f9a-9d12-173ea03eae91", - "title": "[TEST] Migrated Page Content 31", - "alias": "/migrated/page-content-31", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Migrated topic 1", - "[TEST] Migrated topic 2", - "[TEST] Migrated topic 3", - "[TEST] Migrated topic 4" - ], - "thumbnail": [ - "c97a9b08-f3b0-477b-97f7-8b61f9d4a527" - ], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 31", - "type": "default", - "blend_mode": "darken", - "featured_image": [ - "7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4" - ], - "background": [ - "7966cf0a-598d-4da2-8443-837fccd46109" - ], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

" - } - }, - { - "manual_list": { - "type": "manual_list", - "children": { - "title": "[TEST] Manual list", - "content": "

[TEST] Manual list Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Promo card summary

" - } - } - }, - { - "promo_card": { - "item_title": "[TEST] Promo card with image", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Promo card summary

" - }, - "item_image": [ - "c97a9b08-f3b0-477b-97f7-8b61f9d4a527" - ] - } - }, - { - "event_card": { - "item_title": "[TEST] Event card 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Event card summary

" - }, - "item_topics": [ - "[TEST] Migrated event topic 1", - "[TEST] Migrated topic 2" - ] - } - }, - { - "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": "[TEST] Service card 1 link 1" - }, - { - "uri": "http://example.com/1", - "title": "[TEST] Service card 1 link 2" - } - ] - } - }, - { - "subject_card": { - "item_title": "[TEST] Subject card 1", - "item_image": [ - "7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4" - ] - } - } - ] - } - } - } - }, - { - "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 panel 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion panel content 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 5

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

" - } - } - ] - } - } - ] - } - } - } - } - ] - } - }, - { - "id": "35e33c63-2991-41f9-bfe2-0901463a5f53", - "title": "[TEST] Migrated Page Content 32", - "alias": "/migrated/page-content-32", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Migrated topic 1", - "[TEST] Migrated topic 2", - "[TEST] Migrated topic 3", - "[TEST] Migrated topic 4" - ], - "thumbnail": [ - "c97a9b08-f3b0-477b-97f7-8b61f9d4a527" - ], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 32", - "type": "default", - "blend_mode": "darken", - "featured_image": [ - "7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4" - ], - "background": [ - "7966cf0a-598d-4da2-8443-837fccd46109" - ], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Promo card summary

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

[TEST] Event card summary

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

[TEST] Publication card summary

" - }, - "item_document": [ - "a8bd4335-9d5a-4163-b06c-a2dcb36d8fe5" - ] - } - }, - { - "service_card": { - "item_title": "[TEST] Service card", - "item_links": [ - { - "uri": "http://example.com", - "title": "[TEST] Service card link 1" - }, - { - "uri": "http://example.com/1", - "title": "[TEST] Service card link 2" - } - ] - } - }, - { - "subject_card": { - "item_title": "[TEST] Subject card", - "item_image": "c97a9b08-f3b0-477b-97f7-8b61f9d4a527" - } - } - ] - } - } - } - }, - { - "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 panel 1", - "item_content": { - "format": "rich_text", - "value": "

[TEST] Accordion panel content 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

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

[TEST] Accordion panel content 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

" - } - } - ] - } - } - ] - } - } - } - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_4.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_4.json deleted file mode 100644 index f0299d1262..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_4.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "id": "77d61781-0657-4f9a-9d12-173ea03eae91", - "title": "[TEST] Migrated Page Content 41", - "alias": "/migrated/page-content-41", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Topic 1", - "[TEST] Topic 2", - "[TEST] Topic 3", - "[TEST] Topic 4" - ], - "thumbnail": ["c97a9b08-f3b0-477b-97f7-8b61f9d4a527"], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 41", - "blend_mode": "darken", - "featured_image": ["7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4"], - "background": ["7966cf0a-598d-4da2-8443-837fccd46109"], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content 41

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

" - } - }, - { - "attachment": { - "type": "container", - "children": { - "title": "[TEST] Attachment 42 title", - "content": "

[TEST] Attachment 42 content

Prefix link to existing document suffix, prefix link to existing page suffix, prefix \"Existing suffix.

absolute link

", - "attachments": { - "type": "container", - "children": [ - "448f7b0e-19a3-4c43-b1d7-5b1f196dbf98", - "32347ee0-afd5-46c2-92d6-3c37147c9943", - "a8bd4335-9d5a-4163-b06c-a2dcb36d8fe5" - ] - } - } - } - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_5.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_5.json deleted file mode 100644 index 694c974400..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_5.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "id": "4593761e-8a5d-4564-8c0e-2126fb4f3005", - "title": "[TEST] Migrated Content 5 with minimal mapping", - "alias": "/migrated/page-content-51", - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2022", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 51", - "type": "default", - "blend_mode": "darken", - "hide_breadcrumb": true - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_6.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_6.json deleted file mode 100644 index 7bfa63716b..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_6.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "id": "9fab033b-925d-44cd-ae00-870709a970e7", - "title": "[TEST] Migrated Content 6 with minimal mapping", - "alias": "/migrated/page-content-61", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Topic 1", - "[TEST] Topic 2", - "[TEST] Topic 3", - "[TEST] Topic 4" - ], - "thumbnail": ["c97a9b08-f3b0-477b-97f7-8b61f9d4a527"], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 61", - "blend_mode": "darken", - "featured_image": ["7fdce6fd-3bcb-4ffa-b349-2a6eb0b049c4"], - "background": ["7966cf0a-598d-4da2-8443-837fccd46109"], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content 611

" - }, - "promo": { - "type": "container", - "children": { - "title": "[TEST] Promo 611 title", - "content": "

[TEST] Promo content 611.

Prefix link to existing document suffix, prefix link to existing page suffix, prefix \"Existing suffix.

absolute link

", - "link": { - "uri": "http://example1.com", - "title": "[TEST] Promo link 611" - }, - "theme": "light", - "vertical_spacing": "top" - } - } - }, - { - "promo": { - "type": "container", - "children": { - "title": "[TEST] Promo 612 title", - "content": "

[TEST] Promo content 612.

", - "link": { - "uri": "http://example2.com", - "title": "[TEST] Promo link 612" - }, - "theme": "dark", - "vertical_spacing": "both" - } - } - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_7.json b/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_7.json deleted file mode 100644 index e6f4ded5ab..0000000000 --- a/tests/behat/fixtures/migrate/civictheme_migrate.node_civictheme_page_7.json +++ /dev/null @@ -1,90 +0,0 @@ -[ - { - "id": "a3e2adfd-cd82-4609-b083-4d016381096c", - "title": "[TEST] Migrated Page Content 71", - "alias": "/migrated/page-content-71", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Topic 1", - "[TEST] Topic 2", - "[TEST] Topic 3", - "[TEST] Topic 4" - ], - "thumbnail": [], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "Last updated: 1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 71", - "blend_mode": "darken", - "featured_image": [], - "background": [], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content 71

" - } - } - ] - } - }, - { - "id": "3a67f944-811a-4e19-8f70-f6811bfc963f", - "title": "[TEST] Migrated Page Content 72", - "alias": "/migrated/page-content-72", - "summary": "

[TEST] Summary Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

", - "topics": [ - "[TEST] Topic 1", - "[TEST] Topic 2", - "[TEST] Topic 3", - "[TEST] Topic 4" - ], - "thumbnail": [], - "vertical_spacing": "top", - "hide_sidebar": true, - "show_last_updated_date": true, - "last_updated_date": "1 July 2020", - "banner": { - "type": "container", - "children": [ - { - "theme": "dark", - "title": "[TEST] Banner title - Migrated Page Content 72", - "blend_mode": "darken", - "featured_image": [], - "background": [], - "hide_breadcrumb": true - } - ] - }, - "content": { - "type": "container", - "children": [ - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content 721

Prefix link to existing document suffix, prefix link to existing page suffix, prefix \"Existing suffix.

absolute link

" - } - }, - { - "text_content": { - "format": "rich_text", - "value": "

[TEST] Basic text content 722

Prefix link to existing external document set as local suffix, prefix link to existing page suffix, prefix \"Existing suffix.

absolute link set as local

" - } - } - ] - } - } -] diff --git a/tests/behat/fixtures/migrate/dummy1.jpg b/tests/behat/fixtures/migrate/dummy1.jpg deleted file mode 100644 index 930ba73077..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy1.jpg and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy1.pdf b/tests/behat/fixtures/migrate/dummy1.pdf deleted file mode 100644 index f698ff53d4..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy1.pdf and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy1.txt b/tests/behat/fixtures/migrate/dummy1.txt deleted file mode 100644 index ae9ffbce69..0000000000 --- a/tests/behat/fixtures/migrate/dummy1.txt +++ /dev/null @@ -1 +0,0 @@ -This is a test text file 1 \ No newline at end of file diff --git a/tests/behat/fixtures/migrate/dummy2.jpg b/tests/behat/fixtures/migrate/dummy2.jpg deleted file mode 100644 index 89f96fbe83..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy2.jpg and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy2.pdf b/tests/behat/fixtures/migrate/dummy2.pdf deleted file mode 100644 index ddc9c19b47..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy2.pdf and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy2.txt b/tests/behat/fixtures/migrate/dummy2.txt deleted file mode 100644 index 296cac502b..0000000000 --- a/tests/behat/fixtures/migrate/dummy2.txt +++ /dev/null @@ -1 +0,0 @@ -This is a test text file 2 \ No newline at end of file diff --git a/tests/behat/fixtures/migrate/dummy3.jpg b/tests/behat/fixtures/migrate/dummy3.jpg deleted file mode 100644 index d5fb86aa55..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy3.jpg and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy3.pdf b/tests/behat/fixtures/migrate/dummy3.pdf deleted file mode 100644 index 37fe8ff8bc..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy3.pdf and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy3.txt b/tests/behat/fixtures/migrate/dummy3.txt deleted file mode 100644 index 7cf0d193ce..0000000000 --- a/tests/behat/fixtures/migrate/dummy3.txt +++ /dev/null @@ -1 +0,0 @@ -This is a test text file 3 \ No newline at end of file diff --git a/tests/behat/fixtures/migrate/dummy4.jpg b/tests/behat/fixtures/migrate/dummy4.jpg deleted file mode 100644 index 892af77a7a..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy4.jpg and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy4.pdf b/tests/behat/fixtures/migrate/dummy4.pdf deleted file mode 100644 index f5ae0417e4..0000000000 Binary files a/tests/behat/fixtures/migrate/dummy4.pdf and /dev/null differ diff --git a/tests/behat/fixtures/migrate/dummy4.txt b/tests/behat/fixtures/migrate/dummy4.txt deleted file mode 100644 index 15a5dd1658..0000000000 --- a/tests/behat/fixtures/migrate/dummy4.txt +++ /dev/null @@ -1 +0,0 @@ -This is a test text file 4 \ No newline at end of file