diff --git a/.ahoy.local.example.yml b/.ahoy.local.example.yml new file mode 100644 index 000000000..5abcbb63b --- /dev/null +++ b/.ahoy.local.example.yml @@ -0,0 +1,14 @@ +--- +ahoyapi: v2 +usage: Project specific ahoy commands. + +commands: + help: + cmd: | + echo "[INFO] Custom local commands" + echo "You may add custom local commands to your toolchain. This local Ahoy file will not be comitted to the repository" + echo + +# mylocalcommand: +# cmd: | +# echo "Anything complex you can do on the command line." diff --git a/.ahoy.yml b/.ahoy.yml index 6af466321..82c19f825 100644 --- a/.ahoy.yml +++ b/.ahoy.yml @@ -17,23 +17,25 @@ commands: usage: Build or rebuild the project. cmd: | ahoy confirm "Running this command will remove your current database and files. Are you sure?" && - ./scripts/drevops/build.sh + ./scripts/drevops/build.sh && + ahoy info info: usage: Show information about this project. cmd: | - docker-compose exec \ - -e COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-${PWD##*/}} \ - -e DREVOPS_HOST_DB_PORT=$(docker port $(docker-compose ps -q mariadb 2>/dev/null) 3306 2>/dev/null | cut -d : -f 2) \ - -e DREVOPS_DRUPAL_SHOW_LOGIN_LINK=${DREVOPS_DRUPAL_SHOW_LOGIN_LINK} \ - cli ./scripts/drevops/info.sh "$@" + COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-${PWD##*/}} \ + DREVOPS_HOST_DB_PORT=$(docker compose port mariadb 3306 2>/dev/null | cut -d : -f 2) \ + DREVOPS_HOST_SOLR_PORT=$(docker compose port solr 8983 2>/dev/null | cut -d : -f 2) \ + DREVOPS_HOST_HAS_SEQUELACE=$(uname -a | grep -i -q darwin && mdfind -name 'Sequel Ace' 2>/dev/null | grep -q "Ace" && echo 1 || true) \ + DREVOPS_DRUPAL_SHOW_LOGIN_LINK=${DREVOPS_DRUPAL_SHOW_LOGIN_LINK} \ + ahoy cli ./scripts/drevops/info.sh "$@" db: usage: Open DB in Sequel Ace. cmd: | - uname -a | grep -i -q darwin && mdfind -name 'Sequel Ace'|grep -q "Ace" \ - && DREVOPS_HOST_DB_PORT="$(docker port $(docker-compose ps -q mariadb 2>/dev/null) 3306 2>/dev/null | cut -d : -f 2)" \ - && open "mysql://${DREVOPS_MARIADB_USER}:${DREVOPS_MARIADB_PASSWORD}@127.0.0.1:${DREVOPS_HOST_DB_PORT}/drupal" -a "Sequel Ace" \ + uname -a | grep -i -q darwin && mdfind -name 'Sequel Ace' 2>/dev/null |grep -q "Ace" \ + && DREVOPS_HOST_DB_PORT="$(docker port $(docker compose ps -q mariadb 2>/dev/null) 3306 2>/dev/null | cut -d : -f 2)" \ + && open "mysql://${MARIADB_USERNAME:-drupal}:${MARIADB_PASSWORD:-drupal}@127.0.0.1:${DREVOPS_HOST_DB_PORT}/drupal" -a "Sequel Ace" \ || echo "Not a supported OS or Sequel Ace is not installed." # ---------------------------------------------------------------------------- @@ -43,32 +45,32 @@ commands: up: usage: Build and start Docker containers. cmd: | - docker-compose up -d "$@" && if docker-compose logs | grep -q "\[Error\]"; then exit 1; fi - mkdir -p docroot/sites/default/files && docker-compose port cli 35729 | cut -d : -f 2 | xargs -I{} ahoy cli 'echo {} > /app/docroot/sites/default/files/livereload.sock' + docker compose up -d "$@" && if docker compose logs | grep -q "\[Error\]"; then exit 1; fi + mkdir -p ${DREVOPS_WEBROOT}/sites/default/files && docker compose port cli 35729 | cut -d : -f 2 | xargs -I{} ahoy cli 'echo {} > /app/${DREVOPS_WEBROOT}/sites/default/files/livereload.sock' down: usage: Stop Docker containers and remove container, images, volumes and networks. cmd: | ahoy confirm "Running this command will remove your current database. Are you sure?" && - if [ -f "docker-compose.yml" ]; then docker-compose down --volumes > /dev/null 2>&1; fi + if [ -f "docker-compose.yml" ]; then docker compose down --remove-orphans --volumes > /dev/null 2>&1; fi start: usage: Start existing Docker containers. cmd: | - docker-compose start "$@" - mkdir -p docroot/sites/default/files && docker-compose port cli 35729 | cut -d : -f 2 | xargs -I{} ahoy cli 'echo {} > /app/docroot/sites/default/files/livereload.sock' + docker compose start "$@" + mkdir -p ${DREVOPS_WEBROOT}/sites/default/files && docker compose port cli 35729 | cut -d : -f 2 | xargs -I{} ahoy cli 'echo {} > /app/${DREVOPS_WEBROOT}/sites/default/files/livereload.sock' stop: usage: Stop running Docker containers. - cmd: docker-compose stop "$@" + cmd: docker compose stop "$@" restart: usage: Restart stopped or running Docker containers. - cmd: docker-compose restart "$@" + cmd: docker compose restart "$@" logs: usage: Show Docker logs for services. - cmd: docker-compose logs "$@" + cmd: docker compose logs "$@" pull: usage: Pull latest Docker images. @@ -77,23 +79,25 @@ commands: cli: usage: Start a shell or run a command inside the CLI service container. # This will drop into shell if no arguments are supplied to this command. - # If arguments supplied, a new shell with DREVOPS_*, COMPOSE_* and TERM - # environment variables will be started. This allows passing of the environment - # variables to Ahoy commands which will then be forwarded to the container. - # Escape double quotes with \" (slash double-quote) when passing arguments with spaces. - cmd: if \[ "${#}" -ne 0 \]; then docker-compose exec $(env | cut -f1 -d= | grep "DREVOPS_\|COMPOSE_\|TERM" | sed 's/^/-e /') -T cli bash -c "$*"; else docker-compose exec cli bash; fi + # If arguments supplied, a new shell with TERM, COMPOSE_*, GITHUB_*, + # DOCKER_*, DRUPAL_* and DREVOPS_* environment variables will be started. + # This allows passing of the environment variables to Ahoy commands which + # will then be forwarded to the container. + # Escape double quotes with \" (slash double-quote) when passing arguments + # with spaces. + cmd: if \[ "${#}" -ne 0 \]; then docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|DOCKER_\DRUPAL_\|DREVOPS_" | sed 's/^/-e /') -T cli bash -c "$*"; else docker compose exec cli bash; fi composer: usage: Run Composer commands in the CLI service container. - cmd: docker-compose exec -T cli composer "$@" + cmd: ahoy cli composer "$@" drush: usage: Run Drush commands in the CLI service container. - cmd: docker-compose exec -T cli bash -c "drush -l ${DREVOPS_LOCALDEV_URL} $*" + cmd: ahoy cli "drush -l \${DREVOPS_LOCALDEV_URL} $*" flush-redis: usage: Flush Redis cache. - cmd: docker-compose exec redis redis-cli flushall + cmd: docker compose exec redis redis-cli flushall # ---------------------------------------------------------------------------- # Application commands. @@ -102,133 +106,118 @@ commands: login: usage: Login to a website. # Unblock user 1 and generate a one time login link. - cmd: ahoy cli ./scripts/drevops/drupal-login.sh + cmd: ahoy cli ./scripts/drevops/login.sh + download-db: + usage: Download database. + cmd: ./scripts/drevops/download-db.sh reload-db: usage: Reload the database container using local database image. cmd: | ahoy confirm "Running this command will replace your current database. Are you sure?" && - docker-compose rm -f -s -v mariadb && ahoy up -- --build mariadb && ahoy install-site && ahoy info && ahoy login || - echo "The operation was canceled." - - install-site: - usage: Install a site. - cmd: | - docker-compose exec \ - -e DREVOPS_DRUPAL_VERSION=${DREVOPS_DRUPAL_VERSION:-} \ - -e DREVOPS_DRUPAL_INSTALL_OPERATIONS_SKIP=${DREVOPS_DRUPAL_INSTALL_OPERATIONS_SKIP:-} \ - -e DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB=${DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB:-0} \ - -e DREVOPS_DRUPAL_PROFILE=${DREVOPS_DRUPAL_PROFILE:-standard} \ - -e CIVICTHEME_SUBTHEME_ACTIVATION_SKIP=${CIVICTHEME_SUBTHEME_ACTIVATION_SKIP:-0} \ - -e CIVICTHEME_SUBTHEME_FE_SKIP=${CIVICTHEME_SUBTHEME_FE_SKIP:-} \ - -e CIVICTHEME_GENERATED_CONTENT_CREATE_SKIP=${CIVICTHEME_GENERATED_CONTENT_CREATE_SKIP:-} \ - -e CIVICTHEME_CONTENT_PROFILE=${CIVICTHEME_CONTENT_PROFILE:-} \ - -T cli ./scripts/drevops/drupal-install-site.sh + docker compose rm -f -s -v mariadb \ + && ahoy up -- --build mariadb \ + && ahoy up wait_dependencies \ + && sleep 15 \ + && ahoy provision \ + && ahoy info \ + && ahoy login + + provision: + usage: Provision a site from the database dump or profile. + cmd: ahoy cli ./scripts/drevops/provision.sh export-db: - usage: Export database dump or database image (DREVOPS_DB_DOCKER_IMAGE variable must be set). - cmd: | - [ -z "${DREVOPS_DB_DOCKER_IMAGE}" ] && docker-compose exec -e DREVOPS_DB_DIR=${DREVOPS_DB_DIR:-} -T cli ./scripts/drevops/export-db-file.sh "$@" || \ - ( DREVOPS_DB_EXPORT_DOCKER_IMAGE="${DREVOPS_DB_DOCKER_IMAGE}" ./scripts/drevops/export-db-docker.sh "$@"; - if [ "${DREVOPS_EXPORT_DB_DOCKER_DEPLOY_PROCEED}" = "1" ]; then DREVOPS_DEPLOY_DOCKER_MAP=mariadb=${DREVOPS_DB_DOCKER_IMAGE} DREVOPS_DEPLOY_DOCKER_IMAGE_TAG=${DREVOPS_DOCKER_IMAGE_TAG} ./scripts/drevops/deploy-docker.sh; fi ) + usage: Export database dump or database image (if DREVOPS_DB_DOCKER_IMAGE variable is set). + cmd: ./scripts/drevops/export-db.sh "$@" pull-db: usage: Download database image with the latest nightly dump. Run "ahoy reload-db" to reload DB in the running stack. cmd: | [ -n "${DREVOPS_DB_DOCKER_IMAGE}" ] && docker pull $DREVOPS_DB_DOCKER_IMAGE - clean: - usage: Remove Docker containers and all build files. - cmd: ahoy down && ./scripts/drevops/clean.sh - reset: - usage: "Remove containers, all build, uncommitted files." + usage: "Remove containers, all build files. Use with `hard` to reset repository to the last commit." cmd: | - ahoy confirm "All containers, build and uncomitted files will be removed, repository will be reset to the last commit. Proceed?" \ - && ahoy clean && ./scripts/drevops/reset.sh || echo "The operation was canceled." + ahoy confirm "All containers and build files will be removed. Proceed?" && + AHOY_CONFIRM_RESPONSE=y ahoy down && ./scripts/drevops/reset.sh "$@" fei: usage: Install front-end assets. cmd: | - [ "${CIVICTHEME_LIBRARY_INSTALL_SKIP}" != "1" ] && ahoy cli "npm --prefix docroot/themes/contrib/${DREVOPS_DRUPAL_THEME}/civictheme_library install" - ahoy cli "npm --prefix docroot/themes/contrib/${DREVOPS_DRUPAL_THEME} install" + [ "${CIVICTHEME_LIBRARY_INSTALL_SKIP}" != "1" ] && ahoy cli "npm --prefix web/themes/contrib/${DRUPAL_THEME}/civictheme_library install" + ahoy cli "npm --prefix web/themes/contrib/${DRUPAL_THEME} install" fe: usage: Build front-end assets. cmd: | - [ "${CIVICTHEME_LIBRARY_INSTALL_SKIP}" != "1" ] && ahoy cli "cd docroot/themes/contrib/${DREVOPS_DRUPAL_THEME}/civictheme_library && npm run build" - ahoy cli "cd docroot/themes/contrib/${DREVOPS_DRUPAL_THEME} && npm run build" + [ "${CIVICTHEME_LIBRARY_INSTALL_SKIP}" != "1" ] && ahoy cli "cd web/themes/contrib/${DRUPAL_THEME}/civictheme_library && npm run build" + ahoy cli "cd web/themes/contrib/${DRUPAL_THEME} && npm run build" lint: usage: Lint back-end and front-end code. - cmd: ahoy cli ./scripts/drevops/lint.sh "$@" + cmd: ahoy lint-be && ahoy lint-fe lint-be: usage: Lint back-end code. - cmd: ahoy cli ./scripts/drevops/lint.sh be + cmd: | + ahoy cli vendor/bin/phpcs + ahoy cli vendor/bin/phpstan + ahoy cli vendor/bin/rector process --dry-run . + ahoy cli vendor/bin/phpmd . text phpmd.xml lint-fe: usage: Lint front-end code. - cmd: ahoy cli ./scripts/drevops/lint.sh fe + cmd: | + ahoy cli vendor/bin/twigcs + ahoy cli "npm run --prefix \${DREVOPS_WEBROOT}/themes/contrib/\${DRUPAL_THEME} lint" lint-config: usage: Lint config - cmd: ahoy cli ./scripts/drevops/lint.sh config + cmd: | + ahoy cli ./scripts/lint-theme-config.sh + ahoy cli "./vendor/bin/drush inspect_config civictheme.settings --detail --only-error" + + lint-fix: + usage: Fix lint issues of back-end and front-end code. + cmd: | + ahoy cli vendor/bin/phpcbf + ahoy cli vendor/bin/rector process . test: usage: Run all tests. cmd: ahoy test-unit && ahoy test-kernel && ahoy test-functional && ahoy test-bdd - test-fe: - usage: Run front-end tests. - cmd: ahoy cli "DREVOPS_TEST_TYPE=fe DREVOPS_TEST_REPORTS_DIR=${DREVOPS_TEST_REPORTS_DIR} ./scripts/drevops/test.sh $@" - test-unit: usage: Run PhpUnit unit tests. - cmd: ahoy cli "DREVOPS_TEST_TYPE=unit DREVOPS_TEST_REPORTS_DIR=${DREVOPS_TEST_REPORTS_DIR} ./scripts/drevops/test.sh $@" + cmd: ahoy cli vendor/bin/phpunit --testsuite=unit "$@" test-kernel: usage: Run PhpUnit kernel tests. - cmd: ahoy cli "DREVOPS_TEST_TYPE=kernel DREVOPS_TEST_ARTIFACT_DIR=${DREVOPS_TEST_ARTIFACT_DIR} DREVOPS_TEST_REPORTS_DIR=${DREVOPS_TEST_REPORTS_DIR} ./scripts/drevops/test.sh $@" + cmd: ahoy cli vendor/bin/phpunit --testsuite=kernel "$@" test-functional: usage: Run PhpUnit functional tests. - cmd: ahoy cli "DREVOPS_TEST_TYPE=functional DREVOPS_TEST_ARTIFACT_DIR=${DREVOPS_TEST_ARTIFACT_DIR} DREVOPS_TEST_REPORTS_DIR=${DREVOPS_TEST_REPORTS_DIR} ./scripts/drevops/test.sh $@" + cmd: ahoy cli vendor/bin/phpunit --testsuite=functional "$@" test-bdd: usage: Run BDD tests. - cmd: ahoy cli "DREVOPS_TEST_TYPE=bdd DREVOPS_TEST_ARTIFACT_DIR=${DREVOPS_TEST_ARTIFACT_DIR} DREVOPS_TEST_REPORTS_DIR=${DREVOPS_TEST_REPORTS_DIR} DREVOPS_TEST_BEHAT_PROFILE=${DREVOPS_TEST_BEHAT_PROFILE:-} DREVOPS_TEST_BEHAT_FORMAT=${DREVOPS_TEST_BEHAT_FORMAT:-} DREVOPS_TEST_BEHAT_PARALLEL_INDEX=${DREVOPS_TEST_BEHAT_PARALLEL_INDEX:-} BEHAT_SCREENSHOT_PURGE=${BEHAT_SCREENSHOT_PURGE-} DREVOPS_TEST_BEHAT_TAGS=${DREVOPS_TEST_BEHAT_TAGS-} ./scripts/drevops/test.sh $@" + cmd: ahoy cli php -d memory_limit=-1 vendor/bin/behat --colors "$@" test-bats: usage: Run Bats tests (host only). - cmd: bats --tap tests/bats/ - + cmd: ./scripts/test-tooling.sh debug: usage: Enable PHP Xdebug. - cmd: ahoy cli php -v | grep -q Xdebug || XDEBUG_ENABLE=true ahoy up cli php nginx && ahoy cli php -v | grep -q Xdebug && echo "Enabled debug confguration. Use 'ahoy up' to disable." - - export-config: - usage: Export theme config. - cmd: | - ahoy cli "./scripts/update-theme-config.sh" - ahoy drush cde civictheme_dev || true - if ahoy drush pm:list --status=Enabled --field=name | grep -q 'cs_generated_content'; then - ahoy drush cde cs_generated_content || true - fi - - export-content: - usage: Export content (run with CIVICTHEME_CONTENT_PROFILE=corporate ahoy install-site) . - cmd: | - ahoy confirm "This will uninstall several modules and users. Proceed?" \ - && ahoy cli "CIVICTHEME_CONTENT_PROFILE=${CIVICTHEME_CONTENT_PROFILE:-default} ./scripts/update-default-content.sh" || echo "The operation was canceled." + cmd: ahoy cli php -v | grep -q Xdebug || XDEBUG_ENABLE=true ahoy up cli php nginx && ahoy cli php -v | grep -q Xdebug && echo "Enabled debug configuration. Use 'ahoy up' to disable." deploy: usage: Run remote deployment procedures. cmd: | - ahoy confirm "Deployment usually runs in CI. Are you sure you want to proceed with manual deployment? (Run as DREVOPS_DEPLOY_PROCEED=1 ahoy deploy [type1,[type2..]], where [type] is 'code', 'docker', 'webhook')" \ - && ./scripts/drevops/deploy.sh "$@" || echo "The operation was canceled." + ahoy confirm "Deployment usually runs in CI. Are you sure you want to proceed with manual deployment? (Run as DREVOPS_DEPLOY_PROCEED=1 ahoy deploy [type1,[type2..]], where [type] is 'code', 'docker', 'webhook')" && + ./scripts/drevops/deploy.sh "$@" github-labels: usage: Update project's GitHub labels. @@ -238,21 +227,49 @@ commands: usage: Find problems with current project setup. cmd: ./scripts/drevops/doctor.sh "$@" - update: - usage: Update development stack. - cmd: ahoy confirm "Some committed files may become overwritten. Proceed?" && ./scripts/drevops/update.sh || echo "The operation was canceled." + update-drevops: + usage: Update DrevOps stack. + cmd: | + ahoy confirm "Some committed files may become overwritten. Proceed?" && + ./scripts/drevops/update-drevops.sh $@ local: usage: Custom local commands. See `ahoy local help`. cmd: | - if [ -f .ahoy.local.yml ]; then ahoy -f ".ahoy.local.yml" "$@"; else echo ".ahoy.local.yml does not exist. Copy default.ahoy.local.yml to .ahoy.local.yml and rerun this command."; fi + if [ -f .ahoy.local.yml ]; then + ahoy -f ".ahoy.local.yml" "$@" + else + echo ".ahoy.local.yml does not exist." + echo "Copy .ahoy.local.example.yml to .ahoy.local.yml and rerun this command."; + fi + + export-config: + usage: Export theme config. + cmd: | + ahoy cli "./scripts/update-theme-config.sh" + ahoy drush cde civictheme_dev || true + if ahoy drush pm:list --status=Enabled --field=name | grep -q 'cs_generated_content'; then + ahoy drush cde cs_generated_content || true + fi + + export-content: + usage: Export content (run with CIVICTHEME_CONTENT_PROFILE=corporate ahoy install-site) . + cmd: | + ahoy confirm "This will uninstall several modules and users. Proceed?" \ + && ahoy cli "CIVICTHEME_CONTENT_PROFILE=${CIVICTHEME_CONTENT_PROFILE:-default} ./scripts/update-default-content.sh" || echo "The operation was canceled." # ---------------------------------------------------------------------------- # Utilities. # ---------------------------------------------------------------------------- confirm: cmd: | - [ -z "$DREVOPS_AHOY_CONFIRM_RESPONSE" ] && read -r -p "$1 [y/N] " DREVOPS_AHOY_CONFIRM_RESPONSE; [ "$DREVOPS_AHOY_CONFIRM_RESPONSE" = "y" ] || [ "$DREVOPS_AHOY_CONFIRM_RESPONSE" = true ] + if [ -z "$AHOY_CONFIRM_RESPONSE" ]; then + read -r -p ">> $1 [y/N] " AHOY_CONFIRM_RESPONSE + [ "$AHOY_CONFIRM_RESPONSE" = "y" ] || [ "$AHOY_CONFIRM_RESPONSE" = true ] || ( echo "The operation was canceled." && exit 1 ) + else + echo ">> $1 [y/N] $AHOY_CONFIRM_RESPONSE" \ + && if [ "${AHOY_CONFIRM_WAIT_SKIP}" != "1" ]; then echo "Waiting for 3 seconds... Press Ctrl+C to cancel."; sleep 3; fi + fi hide: true # Override entrypoint to alter default behaviour of Ahoy. @@ -266,11 +283,11 @@ entrypoint: # Read variables from .env file, respecting existing environment variable values. # # It is important to understand that variables set in .env file are already - # available inside of the containers after stack is running (as a part of - # docker-compose functionality), so most of the commands are using these + # available inside the containers after stack is running (as a part of + # docker compose functionality), so most of the commands are using these # values taken from containers. # - # However, since docker does not support changes to environment variables in + # However, since Docker does not support changes to environment variables in # running containers without restarting containers, we are adding this # mechanism of reading variables here to allow adjustments of some variables # (like PHPCS scan targets) without the need to restart containers. @@ -279,7 +296,5 @@ entrypoint: - | t=$(mktemp) && export -p > "$t" && set -a && . ./.env && if [ -f ./.env.local ];then . ./.env.local;fi && set +a && . "$t" && rm "$t" && unset t bash -e -c "$0" "$@" - # Replaced with your command. - '{{cmd}}' - # The name of the command that was run (available as $0). - '{{name}}' diff --git a/.circleci/config.yml b/.circleci/config.yml index 93bd78e88..d94b345dc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,23 +1,16 @@ # # CircleCI 2.0 configuration file. # -# Understanding CircleCI 'docker' executor. +# This configuration file uses the "docker" executor. A "runner" container, +# created from a specified Docker image, is used to checkout source code and +# run commands defined in this file. Application Docker containers defined in +# docker-compose.yml run on a *remote* Docker server controlled by CircleCI. +# The "runner" container uses Docker client to control the remote Docker server. # -# CircleCI uses "runner" container (created from specified Docker image) -# to checkout source code and run commands defined in this file. -# Application Docker containers (the ones defined in docker-compose.yml) -# run on *remote* docker server, started by CircleCI as a part of their stack. -# The "runner" container uses Docker client to control remote Docker server -# (when used locally, Docker bundles both client and server into a single -# "Docker" application, so you may not even know that these are two different -# services). -# -# Because Docker images use layers, it is possible to cache Docker images -# between builds to significantly speedup application provisioning for each -# job (it requires enabling of Docker Layer Caching feature in CircleCI by -# lodging a support request). -# https://circleci.com/docs/2.0/docker-layer-caching/ -version: 2 +# current paragraph) are explaining DrevOps inner workings and can be safely +# removed for your project. They are automatically removed when installing or +# updating DrevOps. +version: '2.1' ################################################################################ # VARIABLES @@ -99,49 +92,50 @@ aliases: DEPLOY_SSH_FINGERPRINT5: *deploy_ssh_fingerprint5 GIT_MIRROR_SSH_FINGERPRINT: *git_mirror_ssh_fingerprint docker: - - image: drevops/ci-builder:23.7.0 + - image: drevops/ci-runner:23.10.0 auth: - username: $DREVOPS_DOCKER_REGISTRY_USERNAME - password: $DREVOPS_DOCKER_REGISTRY_TOKEN + username: $DOCKER_USER + password: $DOCKER_PASS environment: - # Set timezone to ensure that executed operations use correct timestamps. + # Set runner timezone to ensure that executed operations use correct timestamps. TZ: *timezone - # Always answer 'y' to any confirmation questions. - DREVOPS_AHOY_CONFIRM_RESPONSE: 'y' - # Directory to store code exported between jobs. - DREVOPS_EXPORT_CODE_DIR: &drevops_build_export_dir /workspace/code + # Set runner terminal capabilities. + TERM: xterm-256color # Directory to store test results. - DREVOPS_TEST_REPORTS_DIR: &drevops_test_reports_dir /tmp/tests + DREVOPS_CI_TEST_RESULTS: &test_results /tmp/tests # Directory to store test artifacts. - DREVOPS_TEST_ARTIFACT_DIR: &drevops_test_artifact_dir /tmp/artifacts - # Use compact error reporting format. - DREVOPS_TEST_BEHAT_FORMAT: progress_fail + DREVOPS_CI_ARTIFACTS: &artifacts /tmp/artifacts + # Check only minimal stack requirements. + DREVOPS_DOCTOR_CHECK_MINIMAL: 1 + # Directory to store code exported between jobs. + DREVOPS_EXPORT_CODE_DIR: &drevops_build_export_dir /workspace/code # Directory to use for artifact deployments. DREVOPS_DEPLOY_ARTIFACT_SRC: *drevops_build_export_dir # Source code location for artifact deployments. DREVOPS_DEPLOY_ARTIFACT_ROOT: *working_directory # Report file location for artifact deployments. DREVOPS_DEPLOY_ARTIFACT_REPORT_FILE: /tmp/artifacts/deployment_report.txt - # Check only minimal stack requirements. - DREVOPS_DOCTOR_CHECK_MINIMAL: 1 resource_class: *resource_class # Set up remote docker. - &step_setup_remote_docker setup_remote_docker: docker_layer_caching: *docker_layer_caching - version: 19.03.13 + version: 20.10.18 + + # Set up Docker network. + - &step_setup_docker_network + run: docker network prune -f >/dev/null 2>&1 && docker network inspect amazeeio-network >/dev/null 2>&1 || docker network create amazeeio-network >/dev/null 2>&1 || true # Process the codebase to be run in CI environment. - &step_process_codebase run: name: Process codebase to run in CI command: | - # Remove lines containing '###' and uncomment comments starting with '##'. - sed -i -e "/###/d" docker-compose.yml && sed -i -e "s/##//" docker-compose.yml + find . -name "docker-compose.yml" -print0 | xargs -0 -I {} sh -c "sed -i -e ''/###/d'' {} && sed -i -e ''s/##//'' {}" # Alter build for an alternative build setup. - if [ "$CIVICTHEME_INSTALL_SIBLING" = "1" ]; then cp -f .docker/Dockerfile.cli.sibling .docker/Dockerfile.cli; fi - if [ "$CIVICTHEME_LIBRARY_INSTALL_SKIP" = "1" ]; then cp -f .docker/Dockerfile.cli.onlytheme .docker/Dockerfile.cli; fi + if [ "$CIVICTHEME_INSTALL_SIBLING" = "1" ]; then echo "Using cli.sibling.dockerfile"; cp -f .docker/cli.sibling.dockerfile .docker/cli.dockerfile; fi + if [ "$CIVICTHEME_LIBRARY_INSTALL_SKIP" = "1" ]; then echo "Using cli.onlytheme.dockerfile"; cp -f .docker/cli.onlytheme.dockerfile .docker/cli.dockerfile; fi ################################################################################ # JOBS @@ -155,37 +149,68 @@ job-build: &job-build - checkout - *step_process_codebase - *step_setup_remote_docker + - *step_setup_docker_network - run: name: Lint docs spelling command: ./scripts/lint-spelling.sh - run: name: Build site - command: ahoy build + command: ./scripts/drevops/build.sh no_output_timeout: 30m - run: - name: Lint code - command: ahoy lint + name: Lint code with PHPCS + command: docker compose exec -T cli vendor/bin/phpcs || [ "${DREVOPS_CI_PHPCS_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with PHPStan + command: docker compose exec -T cli vendor/bin/phpstan || [ "${DREVOPS_CI_PHPSTAN_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with Rector + command: docker compose exec -T cli vendor/bin/rector process --dry-run . || [ "${DREVOPS_CI_RECTOR_IGNORE_FAILURE:-0}" -eq 1 ] - run: - name: Lint theme config - command: ahoy lint config + name: Lint code with PHPMD + command: docker compose exec -T cli vendor/bin/phpmd . text phpmd.xml || [ "${DREVOPS_CI_PHPMD_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with Twigcs + command: docker compose exec -T cli vendor/bin/twigcs || [ "${DREVOPS_CI_TWIGCS_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with NPM linters + command: docker compose exec -T cli bash -c "npm run --prefix \${DREVOPS_WEBROOT}/themes/contrib/\${DRUPAL_THEME} lint" || [ "${DREVOPS_CI_NPM_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint Drupal theme configuration + command: docker compose exec -T cli bash -c "./scripts/lint-theme-config.sh" || [ "${DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint Drupal theme schema + command: docker compose exec -T cli bash -c "./vendor/bin/drush inspect_config civictheme.settings --detail --only-error" - run: name: Run tooling tests command: ./scripts/test-tooling.sh - run: - name: Run tests - command: 'if [ $CIRCLE_NODE_TOTAL -gt 1 ]; then export DREVOPS_TEST_BEHAT_PARALLEL_INDEX=$CIRCLE_NODE_INDEX; fi && ahoy test' + name: Test with PHPUnit + command: | + XDEBUG_ENABLE=true docker compose up -d cli php nginx # Restart stack with XDEBUG enabled for coverage. + docker compose exec -T -e XDEBUG_MODE=coverage cli vendor/bin/phpunit || [ "${DREVOPS_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose up -d cli php nginx # Restart stack without XDEBUG enabled for coverage. + - run: + name: Test with Behat + command: | + if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export DREVOPS_CI_BEHAT_PROFILE="${DREVOPS_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + echo "Running with ${DREVOPS_CI_BEHAT_PROFILE:-default} profile" + docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${DREVOPS_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${DREVOPS_CI_BEHAT_PROFILE:-default}" || \ + [ "${DREVOPS_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] + no_output_timeout: 30m - run: name: Process test logs and artifacts command: | - [ -n "$(docker-compose ps -q cli)" ] && [ -n "$(docker ps -q --no-trunc | grep "$(docker-compose ps -q cli)")" ] && ( - ahoy cli mkdir -p "${DREVOPS_TEST_REPORTS_DIR}" && docker cp "$(docker-compose ps -q cli)":"${DREVOPS_TEST_REPORTS_DIR}" "${DREVOPS_TEST_REPORTS_DIR}" - ahoy cli mkdir -p "${DREVOPS_TEST_ARTIFACT_DIR}" && docker cp "$(docker-compose ps -q cli)":"${DREVOPS_TEST_ARTIFACT_DIR}" "${DREVOPS_TEST_ARTIFACT_DIR}" - ) || true + if docker compose ps --services --filter "status=running" | grep -q cli; then + mkdir -p "${DREVOPS_CI_TEST_RESULTS}" && docker compose cp cli:/app/.logs/test_results/. "${DREVOPS_CI_TEST_RESULTS}/" + mkdir -p "${DREVOPS_CI_ARTIFACTS}" && docker compose cp cli:/app/.logs/. "${DREVOPS_CI_ARTIFACTS}/" + fi when: always - store_test_results: - path: *drevops_test_reports_dir + path: *test_results - store_artifacts: - path: *drevops_test_artifact_dir + path: *artifacts - persist_to_workspace: root: /workspace paths: @@ -201,43 +226,71 @@ job-build-no-persist: &job-build-no-persist - checkout - *step_process_codebase - *step_setup_remote_docker + - *step_setup_docker_network - run: name: Lint docs spelling command: ./scripts/lint-spelling.sh - run: name: Build site - command: ahoy build + command: ./scripts/drevops/build.sh no_output_timeout: 30m - run: - name: Lint code - command: ahoy lint + name: Lint code with PHPCS + command: docker compose exec -T cli vendor/bin/phpcs || [ "${DREVOPS_CI_PHPCS_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with PHPStan + command: docker compose exec -T cli vendor/bin/phpstan || [ "${DREVOPS_CI_PHPSTAN_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with PHPMD + command: docker compose exec -T cli vendor/bin/phpmd . text phpmd.xml || [ "${DREVOPS_CI_PHPMD_IGNORE_FAILURE:-0}" -eq 1 ] - run: - name: Lint theme config - command: ahoy lint config + name: Lint code with Twigcs + command: docker compose exec -T cli vendor/bin/twigcs || [ "${DREVOPS_CI_TWIGCS_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint code with NPM linters + command: docker compose exec -T cli bash -c "npm run --prefix \${DREVOPS_WEBROOT}/themes/contrib/\${DRUPAL_THEME} lint" || [ "${DREVOPS_CI_NPM_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint Drupal theme configuration + command: docker compose exec -T cli bash -c "./scripts/lint-theme-config.sh" || [ "${DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Lint Drupal theme schema + command: docker compose exec -T cli bash -c "./vendor/bin/drush inspect_config civictheme.settings --detail --only-error" - run: name: Run tooling tests command: ./scripts/test-tooling.sh - run: - name: Run tests - command: 'if [ $CIRCLE_NODE_TOTAL -gt 1 ]; then export DREVOPS_TEST_BEHAT_PARALLEL_INDEX=$CIRCLE_NODE_INDEX; fi && ahoy test' + name: Test with PHPUnit + command: | + XDEBUG_ENABLE=true docker compose up -d cli php nginx # Restart stack with XDEBUG enabled for coverage. + docker compose exec -T -e XDEBUG_MODE=coverage cli vendor/bin/phpunit || [ "${DREVOPS_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose up -d cli php nginx # Restart stack without XDEBUG enabled for coverage. + - run: + name: Test with Behat + command: | + if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export DREVOPS_CI_BEHAT_PROFILE="${DREVOPS_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + echo "Running with ${DREVOPS_CI_BEHAT_PROFILE:-default} profile" + docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${DREVOPS_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${DREVOPS_CI_BEHAT_PROFILE:-default}" || \ + [ "${DREVOPS_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] + no_output_timeout: 30m - run: name: Process test logs and artifacts command: | - [ -n "$(docker-compose ps -q cli)" ] && [ -n "$(docker ps -q --no-trunc | grep "$(docker-compose ps -q cli)")" ] && ( - ahoy cli mkdir -p "${DREVOPS_TEST_REPORTS_DIR}" && docker cp "$(docker-compose ps -q cli)":"${DREVOPS_TEST_REPORTS_DIR}" "${DREVOPS_TEST_REPORTS_DIR}" - ahoy cli mkdir -p "${DREVOPS_TEST_ARTIFACT_DIR}" && docker cp "$(docker-compose ps -q cli)":"${DREVOPS_TEST_ARTIFACT_DIR}" "${DREVOPS_TEST_ARTIFACT_DIR}" - ) || true + if docker compose ps --services --filter "status=running" | grep -q cli; then + mkdir -p "${DREVOPS_CI_TEST_RESULTS}" && docker compose cp cli:/app/.logs/test_results/. "${DREVOPS_CI_TEST_RESULTS}/" + mkdir -p "${DREVOPS_CI_ARTIFACTS}" && docker compose cp cli:/app/.logs/. "${DREVOPS_CI_ARTIFACTS}/" + fi when: always - store_test_results: - path: *drevops_test_reports_dir + path: *test_results - store_artifacts: - path: *drevops_test_artifact_dir + path: *artifacts # Job to run isolated theme build. job-build-theme-isolated: &job-build-theme-isolated steps: - checkout - - run: mkdir -p ~/project2 && cp -r docroot/themes/contrib/civictheme ~/project2 + - run: mkdir -p ~/project2 && cp -r web/themes/contrib/civictheme ~/project2 - run: cd ~/project2/civictheme; ./.circleci/build.sh - run: cd ~/project2/civictheme; ./.circleci/lint.sh - run: cd ~/project2/civictheme; ./.circleci/test.sh @@ -275,121 +328,92 @@ job-mirror: &job-mirror do GIT_MIRROR_BRANCH_DST="${branch}" GIT_MIRROR_BRANCH=develop ./scripts/git-mirror.sh sleep 5 - DREVOPS_DEPLOY_LAGOON_BRANCH="${branch}" DEPLOY_ACTION=deploy_override_db ahoy deploy + DREVOPS_DEPLOY_BRANCH="${branch}" DEPLOY_ACTION=deploy_override_db ./scripts/drevops/deploy.sh done fi jobs: - # Drupal 9, isolated theme build - build-theme-isolated-drupal9: - working_directory: ~/project - docker: - - image: cimg/php:8.2-browsers - environment: - DRUPAL_VERSION: 9.5 - DRUPAL_PROJECT_SHA: 9.x - <<: *job-build-theme-isolated - - build-theme-isolated-drupal10: - working_directory: ~/project - docker: - - image: cimg/php:8.2-browsers - environment: - <<: *job-build-theme-isolated - - # Drupal 9, minimal profile. - build-drupal9-minimal: + build: <<: *container_config - environment: - DREVOPS_DRUPAL_PROFILE: minimal - DREVOPS_TEST_BEHAT_TAGS: smoke - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 <<: *job-build-no-persist - # Drupal 9, minimal profile, 'corporate' content profile. - build-drupal9-minimal-corporate: + # No subtheme. + build-no-subtheme: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: minimal - CIVICTHEME_CONTENT_PROFILE: corporate CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 - DREVOPS_TEST_BEHAT_TAGS: smoke <<: *job-build-no-persist - # Drupal 9, minimal profile, 'highereducation' content profile. - build-drupal9-minimal-highereducation: + # GovCMS profile, subtheme. Longest test run. + build-govcms: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: minimal - CIVICTHEME_CONTENT_PROFILE: highereducation - CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 - CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 - DREVOPS_TEST_BEHAT_TAGS: smoke + DRUPAL_PROFILE: govcms + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 <<: *job-build-no-persist - # Drupal 9, minimal profile, 'government' content profile. - build-drupal9-minimal-government: + # GovCMS profile, no subtheme. + build-govcms-no-subtheme: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: minimal - CIVICTHEME_CONTENT_PROFILE: government + DRUPAL_PROFILE: govcms CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 - DREVOPS_TEST_BEHAT_TAGS: smoke - <<: *job-build-no-persist - - # Drupal 9, GovCMS profile, subtheme. Longest test run. - build-drupal9-govcms: - <<: *container_config - environment: - DREVOPS_DRUPAL_PROFILE: govcms - DREVOPS_TEST_BEHAT_PROFILE: subtheme - <<: *job-build-no-persist + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 + <<: *job-build - # Drupal 9, GovCMS profile, subtheme is a sibling. - build-drupal9-govcms-sibling: + # GovCMS profile, subtheme is a sibling. + build-govcms-sibling: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: govcms - DREVOPS_TEST_BEHAT_TAGS: smoke + DRUPAL_PROFILE: govcms CIVICTHEME_INSTALL_SIBLING: 1 + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 + DREVOPS_CI_BEHAT_PROFILE: smoke <<: *job-build-no-persist - # Drupal 9, GovCMS profile, no subtheme. - build-drupal9-govcms-no-subtheme: + # Drupal 10, minimal profile, 'corporate' content profile. + build-content-corporate: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: govcms + CIVICTHEME_CONTENT_PROFILE: corporate CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 - <<: *job-build + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 + DREVOPS_CI_BEHAT_PROFILE: smoke + <<: *job-build-no-persist - # Drupal 10, minimal profile. - build-drupal10-minimal: + # Drupal 10, minimal profile, 'highereducation' content profile. + build-content-highereducation: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: minimal - DREVOPS_DRUPAL_VERSION: 10 - DREVOPS_TEST_BEHAT_TAGS: smoke - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 + CIVICTHEME_CONTENT_PROFILE: highereducation + CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 + CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 + DREVOPS_CI_BEHAT_PROFILE: smoke <<: *job-build-no-persist - # Drupal 10, minimal profile, no subtheme. - build-drupal10-minimal-no-subtheme: + # Drupal 10, minimal profile, 'government' content profile. + build-content-government: <<: *container_config environment: - DREVOPS_DRUPAL_PROFILE: minimal - DREVOPS_DRUPAL_VERSION: 10 + CIVICTHEME_CONTENT_PROFILE: government CIVICTHEME_SUBTHEME_ACTIVATION_SKIP: 1 CIVICTHEME_LIBRARY_INSTALL_SKIP: 1 - DREVOPS_LINT_CONFIG_ALLOW_FAILURE: 1 + DREVOPS_CI_DRUPAL_THEME_CONFIG_LINT_IGNORE_FAILURE: 1 + DREVOPS_CI_BEHAT_PROFILE: smoke <<: *job-build-no-persist + # Isolated theme build. + build-theme-isolated: + working_directory: ~/project + docker: + - image: cimg/php:8.2-browsers + <<: *job-build-theme-isolated + # Mirror and redeploy content profiles. mirror-into-content-branches: <<: *container_config @@ -399,13 +423,8 @@ jobs: deploy: &job_deploy <<: *container_config steps: - # - # Workspace now contains previously built application code artifact. - attach_workspace: at: /workspace - # - # Add SSH key into "runner" container to have "push" access to remote - # repository. - add_ssh_keys: fingerprints: - *deploy_ssh_fingerprint @@ -416,10 +435,10 @@ jobs: DREVOPS_DEPLOY_BRANCH="$CIRCLE_BRANCH" \ DREVOPS_DEPLOY_PR="$(echo $CIRCLE_PULL_REQUEST | cut -d'/' -f 7)" \ DREVOPS_DEPLOY_PR_HEAD=$CIRCLE_SHA1 \ - ahoy deploy + ./scripts/drevops/deploy.sh no_output_timeout: 30m - store_artifacts: - path: *drevops_test_artifact_dir + path: *artifacts # Deploy artifact. deploy_artifact: @@ -446,8 +465,8 @@ jobs: command: | DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT1 \ DEPLOY_CODE_COMMIT_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme.git \ - DEPLOY_CODE_COMMIT_REMOTE_BRANCH=master \ - DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/themes/contrib/civictheme" \ + DEPLOY_CODE_COMMIT_REMOTE_BRANCH=main \ + DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/web/themes/contrib/civictheme" \ ./scripts/deploy-code-commit.sh no_output_timeout: 30m - run: @@ -455,8 +474,8 @@ jobs: command: | DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT2 \ DEPLOY_CODE_COMMIT_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme_library.git \ - DEPLOY_CODE_COMMIT_REMOTE_BRANCH=master \ - DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/themes/contrib/civictheme/civictheme_library" \ + DEPLOY_CODE_COMMIT_REMOTE_BRANCH=main \ + DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/web/themes/contrib/civictheme/civictheme_library" \ ./scripts/deploy-code-commit.sh no_output_timeout: 30m - run: @@ -464,8 +483,8 @@ jobs: command: | DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT3 \ DEPLOY_CODE_COMMIT_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme_govcms.git \ - DEPLOY_CODE_COMMIT_REMOTE_BRANCH=master \ - DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/modules/custom/civictheme_govcms" \ + DEPLOY_CODE_COMMIT_REMOTE_BRANCH=main \ + DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/web/modules/custom/civictheme_govcms" \ ./scripts/deploy-code-commit.sh no_output_timeout: 30m - run: @@ -473,8 +492,8 @@ jobs: command: | DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT4 \ DEPLOY_CODE_COMMIT_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme_content.git \ - DEPLOY_CODE_COMMIT_REMOTE_BRANCH=master \ - DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/modules/custom/civictheme_content" \ + DEPLOY_CODE_COMMIT_REMOTE_BRANCH=main \ + DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/web/modules/custom/civictheme_content" \ ./scripts/deploy-code-commit.sh no_output_timeout: 30m - run: @@ -482,12 +501,12 @@ jobs: command: | DEPLOY_SSH_FINGERPRINT=$DEPLOY_SSH_FINGERPRINT5 \ DEPLOY_CODE_COMMIT_REMOTE_REPO=git@github.com:salsadigitalauorg/civictheme_admin.git \ - DEPLOY_CODE_COMMIT_REMOTE_BRANCH=master \ - DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/docroot/modules/custom/civictheme_admin" \ + DEPLOY_CODE_COMMIT_REMOTE_BRANCH=main \ + DEPLOY_CODE_COMMIT_SRC_DIR="${DREVOPS_EXPORT_CODE_DIR}/web/modules/custom/civictheme_admin" \ ./scripts/deploy-code-commit.sh no_output_timeout: 30m - store_artifacts: - path: *drevops_test_artifact_dir + path: /tmp/artifacts renovatebot_self_hosted: docker: @@ -515,102 +534,89 @@ workflows: # Commit workflow. Runs for every commit push to the remote repository. commit: jobs: - - - build-theme-isolated-drupal9: + - build: filters: branches: ignore: /^content\/.*/ tags: only: /.*/ - - - build-theme-isolated-drupal10: + - build-no-subtheme: filters: branches: ignore: /^content\/.*/ tags: only: /.*/ - - - build-drupal9-govcms: - filters: - branches: - only: /develop|release\/.*|hotfix\/.*/ - tags: - only: /.*/ - - build-drupal9-minimal: - filters: - branches: - only: /develop|release\/.*|hotfix\/.*/ - tags: - only: /.*/ - - build-drupal9-minimal-corporate: + - build-govcms: filters: branches: - only: /^release\/.*|hotfix\/.*/ + ignore: /^content\/.*/ tags: only: /.*/ - - build-drupal9-minimal-highereducation: + - build-govcms-no-subtheme: filters: branches: - only: /^release\/.*|hotfix\/.*/ + ignore: /^content\/.*/ tags: only: /.*/ - - build-drupal9-minimal-government: + - build-govcms-sibling: filters: branches: - only: /^release\/.*|hotfix\/.*/ + ignore: /^content\/.*/ tags: only: /.*/ - - build-drupal9-govcms-sibling: + - build-content-corporate: filters: branches: - only: /^release\/.*|hotfix\/.*/ + only: /develop|^release\/.*|^hotfix\/.*/ tags: only: /.*/ - - build-drupal9-govcms-no-subtheme: + - build-content-highereducation: filters: branches: - ignore: /^content\/.*/ + only: /^release\/.*|^hotfix\/.*/ tags: only: /.*/ - - build-drupal10-minimal: + - build-content-government: filters: branches: - only: /develop|release\/.*|hotfix\/.*/ + only: /^release\/.*|^hotfix\/.*/ tags: only: /.*/ - - build-drupal10-minimal-no-subtheme: + + - build-theme-isolated: filters: branches: ignore: /^content\/.*/ tags: only: /.*/ + - deploy: requires: - - build-theme-isolated-drupal9 - - build-theme-isolated-drupal10 - - build-drupal9-govcms-no-subtheme - - build-drupal10-minimal-no-subtheme + - build + - build-govcms + - build-govcms-no-subtheme + - build-theme-isolated filters: branches: # Allowed branches: # - main, master, develop, ci, cisomething # - deps/* - # - release/123, release/123.456, release/123.456.789, release/123.456.789-rc123 - # - hotfix/123, hotfix/123.456, hotfix/123.456.789 - # - feature/description, feature/123-description, but not feature/9.x-description or feature/7.x-description - only: /main|master|develop|project\/uno|ci.*|deps\/.*|(release\/)?[0-9]+(\.[0-9]+)+(-rc[0-9]+)?|(hotfix\/)?[0-9]+(\.[0-9]+)+(-rc[0-9]+)?|feature\/(?!7.x-|8.x-|9.x-)[a-zA-z0-9\-\.\,]+/ + # - feature/description, feature/123-description + # - release/123.456.789, release/123.456.789-rc.123 (per https://semver.org/) + # - release/2023-04-17, release/2023-04-17.123 (date-based) + # - hotfix/123.456.789, hotfix/123.456.789-rc.1213 (per https://semver.org/) + # - hotfix/2023-04-17, hotfix/2023-04-17.123 (date-based) + only: /^(main|master|develop)$|^feature\/[a-zA-z0-9\-\.\,]+|^ci.*|^deps\/.*|^(release|hotfix)\/[0-9]+(\.[0-9]+){2}(-rc\.[0-9]+)?$|^(release|hotfix)\/[0-9]{4}-[0-9]{2}-[0-9]{2}(\.[0-9]+)?$/ tags: ignore: /.*/ - deploy_artifact: requires: - - build-theme-isolated-drupal9 - - build-theme-isolated-drupal10 - - build-drupal9-minimal - - build-drupal9-govcms-no-subtheme - - build-drupal9-govcms - - build-drupal10-minimal - - build-drupal10-minimal-no-subtheme + - build + - build-no-subtheme + - build-govcms + - build-govcms-no-subtheme + - build-theme-isolated filters: branches: only: develop @@ -619,11 +625,10 @@ workflows: - mirror-into-content-branches: requires: - - build-drupal9-minimal - - build-drupal9-govcms-no-subtheme - - build-drupal9-govcms - - build-drupal10-minimal - - build-drupal10-minimal-no-subtheme + - build + - build-no-subtheme + - build-govcms-no-subtheme + - build-govcms filters: branches: only: develop diff --git a/.docker/Dockerfile.cli b/.docker/Dockerfile.cli deleted file mode 100644 index 70267c964..000000000 --- a/.docker/Dockerfile.cli +++ /dev/null @@ -1,120 +0,0 @@ -# CLI container. -# -# All CLI operations performed in this container. -# -# - Installs Composer dependencies -# - Installs CivicTheme Library dependencies and builds assets -# - Installs CivicTheme dependencies and builds assets -# - Creates sub-theme, installs dependencies and builds assets -# -# @see https://hub.docker.com/r/uselagoon/php-7.4-cli-drupal/tags -# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.1-cli-drupal:23.10.0 - -# Add missing variables. -# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. -ARG LAGOON_PR_HEAD_BRANCH="" -ENV LAGOON_PR_HEAD_BRANCH=$LAGOON_PR_HEAD_BRANCH -ARG LAGOON_PR_HEAD_SHA="" -ENV LAGOON_PR_HEAD_SHA=$LAGOON_PR_HEAD_SHA - -# Add PHP Composer variable to specify the name of the composer.json file. -ARG COMPOSER="" -ENV COMPOSER=$COMPOSER - -ARG GITHUB_TOKEN="" -ENV GITHUB_TOKEN=$GITHUB_TOKEN - -# Set default values for environment variables. Any values provided in -# docker-compose.yml or .env file will override these values during build stage. -ENV WEBROOT=docroot \ - COMPOSER_ALLOW_SUPERUSER=1 \ - COMPOSER_CACHE_DIR=/tmp/.composer/cache \ - COMPOSER_AUTH="{\"github-oauth\": {\"github.com\": \"$GITHUB_TOKEN\"}}" \ - MYSQL_HOST=mariadb \ - SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ - SIMPLETEST_BASE_URL=http://nginx:8080 \ - SYMFONY_DEPRECATIONS_HELPER=disabled - -# Strating from this line, Docker will add result of each command into a -# separate layer. These layers are then cached, and re-used when project is -# rebuilt. -# Note that layers are rebuilt only if files added into image with `ADD` -# have changed since the last build. So adding files that are most like to be -# rarely changed earlier in the build process (closer to the start of this -# file) adds more efficiency when working with stack - layers will be rarely -# rebuilt. - -# Adding more tools. -RUN apk update \ - && apk add pv python3 make gcc g++ diffutils \ - && ln -sf python3 /usr/bin/python \ - && rm -rf /var/cache/apk/* - -# Install updated version of NPM. -RUN npm install -g npm@^8.6 && fix-permissions /home/.npm - -# Adding patches and scripts. -COPY patches /app/patches -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_content \ - && mkdir -p docroot/modules/custom/civictheme_dev \ - && mkdir -p docroot/modules/custom/cs_generated_content - -# Copy files required for PHP dependencies resolution. -# Note that composer.lock is not explicitly copied, allowing to run the stack -# without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). composer.lock should be comitted to the -# repository. -# File .env (and other environment files) is copied into image as it may be -# required by composer scripts to get some additions variables. -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_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/ - -# Install PHP dependencies, but without development dependencies. This is very -# important, because we do not want potential security issues to be exposed to -# production environment. -RUN COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader - -# Install NodeJS dependencies. -# Note that package-lock.json is not explicitly copied, allowing to run the -# stack without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). package-lock.json should be comitted to -# the repository. -# File Gruntfile.sj is copied into image as it is required to generate -# front-end assets. -COPY docroot/themes/contrib/civictheme/civictheme_library/package.json docroot/themes/contrib/civictheme/civictheme_library/package* /app/docroot/themes/contrib/civictheme/civictheme_library/ -COPY docroot/themes/contrib/civictheme/ docroot/themes/contrib/civictheme/package* /app/docroot/themes/contrib/civictheme/ - -# Install NodeJS dependencies. -# Since Drupal does not use NodeJS for production, it does not matter if we -# install development dependencies here - they are not exposed in any way. -RUN npm --prefix docroot/themes/contrib/civictheme/civictheme_library install --no-audit --no-progress --unsafe-perm -RUN npm --prefix docroot/themes/contrib/civictheme install --no-audit --no-progress --unsafe-perm - -# Copy all files into appllication source directory. Existing files are always -# overridden. -COPY . /app - -# Compile front-end assets. Running this after copying all files as we need -# sources to compile assets. -RUN cd /app/docroot/themes/contrib/civictheme/civictheme_library && npm run build -RUN cd /app/docroot/themes/contrib/civictheme && npm run build - -# Create subtheme. -RUN cd /app/docroot/themes/contrib/civictheme \ - && php civictheme_create_subtheme.php civictheme_demo "CivicTheme Demo" "Demo sub-theme for a CivicTheme theme." - -# Compile subtheme assets. -RUN npm --prefix docroot/themes/custom/civictheme_demo install --no-audit --no-progress --unsafe-perm \ - && cd /app/docroot/themes/custom/civictheme_demo && npm run build diff --git a/.docker/Dockerfile.cli.onlytheme b/.docker/Dockerfile.cli.onlytheme deleted file mode 100644 index 64617049f..000000000 --- a/.docker/Dockerfile.cli.onlytheme +++ /dev/null @@ -1,107 +0,0 @@ -# Alternative CLI container used for testing of only theme installation without -# library or a sub-theme. -# -# Not used in Lagoon. -# -# - Installs Composer dependencies -# - Installs CivicTheme dependencies and builds assets -# -# @see https://hub.docker.com/r/uselagoon/php-7.4-cli-drupal/tags -# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.1-cli-drupal:23.10.0 - -# Add missing variables. -# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. -ARG LAGOON_PR_HEAD_BRANCH="" -ENV LAGOON_PR_HEAD_BRANCH=$LAGOON_PR_HEAD_BRANCH -ARG LAGOON_PR_HEAD_SHA="" -ENV LAGOON_PR_HEAD_SHA=$LAGOON_PR_HEAD_SHA - -ARG GITHUB_TOKEN="" -ENV GITHUB_TOKEN=$GITHUB_TOKEN - -# Add PHP Composer variable to specify the name of the composer.json file. -ARG COMPOSER="" -ENV COMPOSER=$COMPOSER - -# Set default values for environment variables. Any values provided in -# docker-compose.yml or .env file will override these values during build stage. -ENV WEBROOT=docroot \ - COMPOSER_ALLOW_SUPERUSER=1 \ - COMPOSER_CACHE_DIR=/tmp/.composer/cache \ - MYSQL_HOST=mariadb \ - SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ - SIMPLETEST_BASE_URL=http://nginx:8080 \ - SYMFONY_DEPRECATIONS_HELPER=disabled - -# Strating from this line, Docker will add result of each command into a -# separate layer. These layers are then cached, and re-used when project is -# rebuilt. -# Note that layers are rebuilt only if files added into image with `ADD` -# have changed since the last build. So adding files that are most like to be -# rarely changed earlier in the build process (closer to the start of this -# file) adds more efficiency when working with stack - layers will be rarely -# rebuilt. - -# Adding more tools. -RUN apk update \ - && apk add pv python3 make gcc g++ diffutils \ - && ln -sf python3 /usr/bin/python \ - && rm -rf /var/cache/apk/* - -# Install updated version of NPM. -RUN npm install -g npm@^8.6 && fix-permissions /home/.npm - -# Adding patches and scripts. -COPY patches /app/patches -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_content \ - && mkdir -p docroot/modules/custom/civictheme_dev \ - && mkdir -p docroot/modules/custom/cs_generated_content - -# Copy files required for PHP dependencies resolution. -# Note that composer.lock is not explicitly copied, allowing to run the stack -# without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). composer.lock should be comitted to the -# repository. -# File .env (and other environment files) is copied into image as it may be -# required by composer scripts to get some additions variables. -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_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/ - -# Install PHP dependencies, but without development dependencies. This is very -# important, because we do not want potential security issues to be exposed to -# production environment. -RUN COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader - -# Install NodeJS dependencies. -# Note that package-lock.json is not explicitly copied, allowing to run the -# stack without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). package-lock.json should be comitted to -# the repository. -# File Gruntfile.sj is copied into image as it is required to generate -# front-end assets. -COPY docroot/themes/contrib/civictheme/ docroot/themes/contrib/civictheme/package* /app/docroot/themes/contrib/civictheme/ - -# Install NodeJS dependencies. -# Since Drupal does not use NodeJS for production, it does not matter if we -# install development dependencies here - they are not exposed in any way. -RUN npm --prefix docroot/themes/contrib/civictheme install --no-audit --no-progress --unsafe-perm - -# Copy all files into appllication source directory. Existing files are always -# overridden. -COPY . /app - -# Compile front-end assets. Running this after copying all files as we need -# sources to compile assets. -RUN cd /app/docroot/themes/contrib/civictheme && npm run build diff --git a/.docker/Dockerfile.cli.sibling b/.docker/Dockerfile.cli.sibling deleted file mode 100644 index 5bb6ca623..000000000 --- a/.docker/Dockerfile.cli.sibling +++ /dev/null @@ -1,108 +0,0 @@ -# Alternative CLI container used for testing of the subtheme installation. -# -# Not used in Lagoon. -# -# - Installs Composer dependencies -# - Installs CivicTheme Library dependencies and builds assets -# - Installs CivicTheme dependencies and builds assets -# - Creates sub-theme as a sibling, installs dependencies and builds assets -# -# @see https://hub.docker.com/r/uselagoon/php-7.4-cli-drupal/tags -# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.1-cli-drupal:23.10.0 - -# Add missing variables. -# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. -ARG LAGOON_PR_HEAD_BRANCH="" -ENV LAGOON_PR_HEAD_BRANCH=$LAGOON_PR_HEAD_BRANCH -ARG LAGOON_PR_HEAD_SHA="" -ENV LAGOON_PR_HEAD_SHA=$LAGOON_PR_HEAD_SHA - -ARG GITHUB_TOKEN="" -ENV GITHUB_TOKEN=$GITHUB_TOKEN - -# Add PHP Composer variable to specify the name of the composer.json file. -ARG COMPOSER="" -ENV COMPOSER=$COMPOSER - -# Set default values for environment variables. Any values provided in -# docker-compose.yml or .env file will override these values during build stage. -ENV WEBROOT=docroot \ - COMPOSER_ALLOW_SUPERUSER=1 \ - COMPOSER_CACHE_DIR=/tmp/.composer/cache \ - MYSQL_HOST=mariadb \ - SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ - SIMPLETEST_BASE_URL=http://nginx:8080 \ - SYMFONY_DEPRECATIONS_HELPER=disabled - -# Strating from this line, Docker will add result of each command into a -# separate layer. These layers are then cached, and re-used when project is -# rebuilt. -# Note that layers are rebuilt only if files added into image with `ADD` -# have changed since the last build. So adding files that are most like to be -# rarely changed earlier in the build process (closer to the start of this -# file) adds more efficiency when working with stack - layers will be rarely -# rebuilt. - -# Adding more tools. -RUN apk update \ - && apk add pv python3 make gcc g++ diffutils \ - && ln -sf python3 /usr/bin/python \ - && rm -rf /var/cache/apk/* - -# Install updated version of NPM. -RUN npm install -g npm@^8.6 && fix-permissions /home/.npm - -# Adding patches and scripts. -COPY patches /app/patches -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_content \ - && mkdir -p docroot/modules/custom/civictheme_dev \ - && mkdir -p docroot/modules/custom/cs_generated_content - -# Copy files required for PHP dependencies resolution. -# Note that composer.lock is not explicitly copied, allowing to run the stack -# without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). composer.lock should be comitted to the -# repository. -# File .env (and other environment files) is copied into image as it may be -# required by composer scripts to get some additions variables. -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_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/ - -# Install PHP dependencies, but without development dependencies. This is very -# important, because we do not want potential security issues to be exposed to -# production environment. -RUN COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader - -# Install NodeJS dependencies. -# Note that package-lock.json is not explicitly copied, allowing to run the -# stack without existing lock file (this is not advisable, but allows to build -# using latest versions of packages). package-lock.json should be comitted to -# the repository. -# File Gruntfile.sj is copied into image as it is required to generate -# front-end assets. -COPY docroot/themes/contrib/civictheme/civictheme_library/package.json docroot/themes/contrib/civictheme/civictheme_library/package* /app/docroot/themes/contrib/civictheme/civictheme_library/ -COPY docroot/themes/contrib/civictheme/ docroot/themes/contrib/civictheme/package* /app/docroot/themes/contrib/civictheme/ - -# Copy all files into appllication source directory. Existing files are always -# overridden. -COPY . /app - -# Create a subtheme in the same directory as CivicTheme. -RUN cd /app/docroot/themes/contrib/civictheme \ - && php civictheme_create_subtheme.php civictheme_demo "CivicTheme Demo Sibling" "Demo sub-theme for a CivicTheme theme installed in the same directory." ../civictheme_demo - -# Compile subtheme assets. -RUN npm --prefix docroot/themes/contrib/civictheme_demo install --no-audit --no-progress --unsafe-perm \ - && cd /app/docroot/themes/contrib/civictheme_demo && npm run build diff --git a/.docker/cli.dockerfile b/.docker/cli.dockerfile new file mode 100644 index 000000000..7fef7b7eb --- /dev/null +++ b/.docker/cli.dockerfile @@ -0,0 +1,118 @@ +# CLI container. +# +# All CLI operations performed in this container. +# +# - Installs Composer dependencies +# - Installs CivicTheme Library dependencies and builds assets +# - Installs CivicTheme dependencies and builds assets +# - Creates sub-theme, installs dependencies and builds assets +# +# @see https://hub.docker.com/r/uselagoon/php-8.1-cli-drupal/tags +# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal +FROM uselagoon/php-8.1-cli-drupal:23.10.0 + +# Add missing variables. +# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. +ARG LAGOON_PR_HEAD_BRANCH="" +ENV LAGOON_PR_HEAD_BRANCH=${LAGOON_PR_HEAD_BRANCH} +ARG LAGOON_PR_HEAD_SHA="" +ENV LAGOON_PR_HEAD_SHA=${LAGOON_PR_HEAD_SHA} + +# Webroot is used for Drush aliases. +ARG WEBROOT=web + +ARG GITHUB_TOKEN="" +ENV GITHUB_TOKEN=${GITHUB_TOKEN} + +# Set default values for environment variables. +# These values will be overridden if set in docker-compose.yml or .env file +# during build stage. +ENV WEBROOT=${WEBROOT} \ + COMPOSER_ALLOW_SUPERUSER=1 \ + COMPOSER_CACHE_DIR=/tmp/.composer/cache \ + SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ + SIMPLETEST_BASE_URL=http://nginx:8080 \ + SYMFONY_DEPRECATIONS_HELPER=disabled + +# Strating from this line, Docker will add result of each command into a +# separate layer. These layers are then cached and re-used when the project is +# rebuilt. +# Note that layers are only rebuilt if files added into the image with `ADD` +# have changed since the last build. So, adding files that are unlikely to +# change earlier in the build process (closer to the start of this file) +# reduce build time. + +# Adding more tools. +RUN apk update \ + && apk add pv python3 make gcc g++ diffutils ncurses=6.4_p20230506-r0 pv=1.6.20-r1 tzdata=2023c-r1 \ + && ln -sf python3 /usr/bin/python \ + && rm -rf /var/cache/apk/* + +# Install updated version of NPM. +RUN npm install -g npm@^8.6 && fix-permissions /home/.npm + +# Adding patches and scripts. +COPY patches /app/patches +COPY scripts /app/scripts + +RUN mkdir -p web/themes/contrib/civictheme \ + && mkdir -p web/modules/custom/civictheme_govcms \ + && mkdir -p web/modules/custom/civictheme_admin \ + && mkdir -p web/modules/custom/civictheme_content \ + && mkdir -p web/modules/custom/civictheme_dev \ + && mkdir -p web/modules/custom/cs_generated_content + +# Copy files required for PHP dependencies resolution. +# Note that composer.lock is not explicitly copied, allowing to run the stack +# without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). composer.lock should be comitted to the +# repository. +# File .env (and other environment files) is copied into image as it may be +# required by composer scripts to get some additions variables. +COPY composer.json composer.* .env* auth* /app/ + +COPY web/themes/contrib/civictheme/composer.json /app/web/themes/contrib/civictheme/ +COPY web/modules/custom/civictheme_govcms/composer.json web/modules/custom/civictheme_govcms/ +COPY web/modules/custom/civictheme_admin/composer.json web/modules/custom/civictheme_admin/ +COPY web/modules/custom/civictheme_content/composer.json web/modules/custom/civictheme_content/ +COPY web/modules/custom/civictheme_dev/composer.json web/modules/custom/civictheme_dev/ +COPY web/modules/custom/cs_generated_content/composer.json web/modules/custom/cs_generated_content/ + +# Install PHP dependencies without including development dependencies. This is +# crucial as it prevents potential security vulnerabilities from being exposed +# to the production environment. +RUN if [ -n "${GITHUB_TOKEN}" ]; then export COMPOSER_AUTH="{\"github-oauth\": {\"github.com\": \"${GITHUB_TOKEN}\"}}"; fi && \ + COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader + +# Install NodeJS dependencies. +# Note that package-lock.json is not explicitly copied, allowing to run the +# stack without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). package-lock.json should be comitted to +# the repository. +# File Gruntfile.sj is copied into image as it is required to generate +# front-end assets. +COPY web/themes/contrib/civictheme/civictheme_library/package.json web/themes/contrib/civictheme/civictheme_library/package* /app/web/themes/contrib/civictheme/civictheme_library/ +COPY web/themes/contrib/civictheme/ web/themes/contrib/civictheme/package* /app/web/themes/contrib/civictheme/ + +# Install NodeJS dependencies. +# Since Drupal does not use NodeJS for production, it does not matter if we +# install development dependencies here - they are not exposed in any way. +RUN npm --prefix web/themes/contrib/civictheme/civictheme_library install --no-audit --no-progress --unsafe-perm +RUN npm --prefix web/themes/contrib/civictheme install --no-audit --no-progress --unsafe-perm + +# Copy all files into appllication source directory. Existing files are always +# overridden. +COPY . /app + +# Compile front-end assets. Running this after copying all files as we need +# sources to compile assets. +RUN cd /app/web/themes/contrib/civictheme/civictheme_library && npm run build +RUN cd /app/web/themes/contrib/civictheme && npm run build + +# Create subtheme. +RUN cd /app/web/themes/contrib/civictheme \ + && php civictheme_create_subtheme.php civictheme_demo "CivicTheme Demo" "Demo sub-theme for a CivicTheme theme." + +# Compile subtheme assets. +RUN npm --prefix web/themes/custom/civictheme_demo install --no-audit --no-progress --unsafe-perm \ + && cd /app/web/themes/custom/civictheme_demo && npm run build diff --git a/.docker/cli.onlytheme.dockerfile b/.docker/cli.onlytheme.dockerfile new file mode 100644 index 000000000..c0551721d --- /dev/null +++ b/.docker/cli.onlytheme.dockerfile @@ -0,0 +1,105 @@ +# CLI container. +# +# Not used in Lagoon. +# +# - Installs Composer dependencies +# - Installs CivicTheme dependencies and builds assets +# +# @see https://hub.docker.com/r/uselagoon/php-8.1-cli-drupal/tags +# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal +FROM uselagoon/php-8.1-cli-drupal:23.10.0 + +# Add missing variables. +# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. +ARG LAGOON_PR_HEAD_BRANCH="" +ENV LAGOON_PR_HEAD_BRANCH=${LAGOON_PR_HEAD_BRANCH} +ARG LAGOON_PR_HEAD_SHA="" +ENV LAGOON_PR_HEAD_SHA=${LAGOON_PR_HEAD_SHA} + +# Webroot is used for Drush aliases. +ARG WEBROOT=web + +ARG GITHUB_TOKEN="" +ENV GITHUB_TOKEN=${GITHUB_TOKEN} + +# Set default values for environment variables. +# These values will be overridden if set in docker-compose.yml or .env file +# during build stage. +ENV WEBROOT=${WEBROOT} \ + COMPOSER_ALLOW_SUPERUSER=1 \ + COMPOSER_CACHE_DIR=/tmp/.composer/cache \ + SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ + SIMPLETEST_BASE_URL=http://nginx:8080 \ + SYMFONY_DEPRECATIONS_HELPER=disabled + +# Strating from this line, Docker will add result of each command into a +# separate layer. These layers are then cached and re-used when the project is +# rebuilt. +# Note that layers are only rebuilt if files added into the image with `ADD` +# have changed since the last build. So, adding files that are unlikely to +# change earlier in the build process (closer to the start of this file) +# reduce build time. + +# Adding more tools. +RUN apk update \ + && apk add pv python3 make gcc g++ diffutils ncurses=6.4_p20230506-r0 pv=1.6.20-r1 tzdata=2023c-r1 \ + && ln -sf python3 /usr/bin/python \ + && rm -rf /var/cache/apk/* + +# Install updated version of NPM. +RUN npm install -g npm@^8.6 && fix-permissions /home/.npm + +# Adding patches and scripts. +COPY patches /app/patches +COPY scripts /app/scripts + +RUN mkdir -p web/themes/contrib/civictheme \ + && mkdir -p web/modules/custom/civictheme_govcms \ + && mkdir -p web/modules/custom/civictheme_admin \ + && mkdir -p web/modules/custom/civictheme_content \ + && mkdir -p web/modules/custom/civictheme_dev \ + && mkdir -p web/modules/custom/cs_generated_content + +# Copy files required for PHP dependencies resolution. +# Note that composer.lock is not explicitly copied, allowing to run the stack +# without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). composer.lock should be comitted to the +# repository. +# File .env (and other environment files) is copied into image as it may be +# required by composer scripts to get some additions variables. +COPY composer.json composer.* .env* auth* /app/ + +COPY web/themes/contrib/civictheme/composer.json /app/web/themes/contrib/civictheme/ +COPY web/modules/custom/civictheme_govcms/composer.json web/modules/custom/civictheme_govcms/ +COPY web/modules/custom/civictheme_admin/composer.json web/modules/custom/civictheme_admin/ +COPY web/modules/custom/civictheme_content/composer.json web/modules/custom/civictheme_content/ +COPY web/modules/custom/civictheme_dev/composer.json web/modules/custom/civictheme_dev/ +COPY web/modules/custom/cs_generated_content/composer.json web/modules/custom/cs_generated_content/ + +# Install PHP dependencies without including development dependencies. This is +# crucial as it prevents potential security vulnerabilities from being exposed +# to the production environment. +RUN if [ -n "${GITHUB_TOKEN}" ]; then export COMPOSER_AUTH="{\"github-oauth\": {\"github.com\": \"${GITHUB_TOKEN}\"}}"; fi && \ + COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader + +# Install NodeJS dependencies. +# Note that package-lock.json is not explicitly copied, allowing to run the +# stack without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). package-lock.json should be comitted to +# the repository. +# File Gruntfile.sj is copied into image as it is required to generate +# front-end assets. +COPY web/themes/contrib/civictheme/ web/themes/contrib/civictheme/package* /app/web/themes/contrib/civictheme/ + +# Install NodeJS dependencies. +# Since Drupal does not use NodeJS for production, it does not matter if we +# install development dependencies here - they are not exposed in any way. +RUN npm --prefix web/themes/contrib/civictheme install --no-audit --no-progress --unsafe-perm + +# Copy all files into appllication source directory. Existing files are always +# overridden. +COPY . /app + +# Compile front-end assets. Running this after copying all files as we need +# sources to compile assets. +RUN cd /app/web/themes/contrib/civictheme && npm run build diff --git a/.docker/cli.sibling.dockerfile b/.docker/cli.sibling.dockerfile new file mode 100644 index 000000000..a344016d3 --- /dev/null +++ b/.docker/cli.sibling.dockerfile @@ -0,0 +1,110 @@ +# CLI container. +# +# Not used in Lagoon. +# +# - Installs Composer dependencies +# - Installs CivicTheme Library dependencies and builds assets +# - Installs CivicTheme dependencies and builds assets +# - Creates sub-theme as a sibling, installs dependencies and builds assets +# +# @see https://hub.docker.com/r/uselagoon/php-8.1-cli-drupal/tags +# @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal +FROM uselagoon/php-8.1-cli-drupal:23.10.0 + +# Add missing variables. +# @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. +ARG LAGOON_PR_HEAD_BRANCH="" +ENV LAGOON_PR_HEAD_BRANCH=${LAGOON_PR_HEAD_BRANCH} +ARG LAGOON_PR_HEAD_SHA="" +ENV LAGOON_PR_HEAD_SHA=${LAGOON_PR_HEAD_SHA} + +# Webroot is used for Drush aliases. +ARG WEBROOT=web + +ARG GITHUB_TOKEN="" +ENV GITHUB_TOKEN=${GITHUB_TOKEN} + +# Set default values for environment variables. +# These values will be overridden if set in docker-compose.yml or .env file +# during build stage. +ENV WEBROOT=${WEBROOT} \ + COMPOSER_ALLOW_SUPERUSER=1 \ + COMPOSER_CACHE_DIR=/tmp/.composer/cache \ + SIMPLETEST_DB=mysql://drupal:drupal@mariadb/drupal \ + SIMPLETEST_BASE_URL=http://nginx:8080 \ + SYMFONY_DEPRECATIONS_HELPER=disabled + +# Strating from this line, Docker will add result of each command into a +# separate layer. These layers are then cached and re-used when the project is +# rebuilt. +# Note that layers are only rebuilt if files added into the image with `ADD` +# have changed since the last build. So, adding files that are unlikely to +# change earlier in the build process (closer to the start of this file) +# reduce build time. + +# Adding more tools. +RUN apk update \ + && apk add pv python3 make gcc g++ diffutils ncurses=6.4_p20230506-r0 pv=1.6.20-r1 tzdata=2023c-r1 \ + && ln -sf python3 /usr/bin/python \ + && rm -rf /var/cache/apk/* + +# Install updated version of NPM. +RUN npm install -g npm@^8.6 && fix-permissions /home/.npm + +# Adding patches and scripts. +COPY patches /app/patches +COPY scripts /app/scripts + +RUN mkdir -p web/themes/contrib/civictheme \ + && mkdir -p web/modules/custom/civictheme_govcms \ + && mkdir -p web/modules/custom/civictheme_admin \ + && mkdir -p web/modules/custom/civictheme_content \ + && mkdir -p web/modules/custom/civictheme_dev \ + && mkdir -p web/modules/custom/cs_generated_content + +# Copy files required for PHP dependencies resolution. +# Note that composer.lock is not explicitly copied, allowing to run the stack +# without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). composer.lock should be comitted to the +# repository. +# File .env (and other environment files) is copied into image as it may be +# required by composer scripts to get some additions variables. +COPY composer.json composer.* .env* auth* /app/ + +COPY web/themes/contrib/civictheme/composer.json /app/web/themes/contrib/civictheme/ +COPY web/modules/custom/civictheme_govcms/composer.json web/modules/custom/civictheme_govcms/ +COPY web/modules/custom/civictheme_admin/composer.json web/modules/custom/civictheme_admin/ +COPY web/modules/custom/civictheme_content/composer.json web/modules/custom/civictheme_content/ +COPY web/modules/custom/civictheme_dev/composer.json web/modules/custom/civictheme_dev/ +COPY web/modules/custom/cs_generated_content/composer.json web/modules/custom/cs_generated_content/ + +# Install PHP dependencies without including development dependencies. This is +# crucial as it prevents potential security vulnerabilities from being exposed +# to the production environment. +RUN if [ -n "${GITHUB_TOKEN}" ]; then export COMPOSER_AUTH="{\"github-oauth\": {\"github.com\": \"${GITHUB_TOKEN}\"}}"; fi && \ + COMPOSER_MEMORY_LIMIT=-1 composer install -n --no-dev --ansi --prefer-dist --optimize-autoloader + +# Install NodeJS dependencies. +# Note that package-lock.json is not explicitly copied, allowing to run the +# stack without existing lock file (this is not advisable, but allows to build +# using latest versions of packages). package-lock.json should be comitted to +# the repository. +# File Gruntfile.sj is copied into image as it is required to generate +# front-end assets. +COPY web/themes/contrib/civictheme/civictheme_library/package.json web/themes/contrib/civictheme/civictheme_library/package* /app/web/themes/contrib/civictheme/civictheme_library/ +COPY web/themes/contrib/civictheme/ web/themes/contrib/civictheme/package* /app/web/themes/contrib/civictheme/ + +# Install NodeJS dependencies. +RUN npm --prefix web/themes/contrib/civictheme install --no-audit --no-progress --unsafe-perm + +# Copy all files into appllication source directory. Existing files are always +# overridden. +COPY . /app + +# Create a subtheme in the same directory as CivicTheme. +RUN cd /app/web/themes/contrib/civictheme \ + && php civictheme_create_subtheme.php civictheme_demo "CivicTheme Demo Sibling" "Demo sub-theme for a CivicTheme theme installed in the same directory." ../civictheme_demo + +# Compile subtheme assets. +RUN npm --prefix web/themes/contrib/civictheme_demo install --no-audit --no-progress --unsafe-perm \ + && cd /app/web/themes/contrib/civictheme_demo && npm run build diff --git a/.docker/Dockerfile.mariadb b/.docker/mariadb.dockerfile similarity index 74% rename from .docker/Dockerfile.mariadb rename to .docker/mariadb.dockerfile index b0fdb54a3..5a3d48a81 100644 --- a/.docker/Dockerfile.mariadb +++ b/.docker/mariadb.dockerfile @@ -6,9 +6,12 @@ # Use drevops/drevops-mariadb-drupal-data as a starting Docker image for your # Database-in-Docker-image database. # @see https://github.com/drevops/mariadb-drupal-data -ARG IMAGE +# +# The ARG value will be updated with a value passed from docker-compose.yml +ARG IMAGE=uselagoon/mariadb-drupal:23.10.0 -FROM ${IMAGE:-uselagoon/mariadb-drupal:23.10.0} +# hadolint ignore=DL3006 +FROM ${IMAGE} USER root COPY ./.docker/config/mariadb/my.cnf /etc/my.cnf.d/server.cnf diff --git a/.docker/Dockerfile.nginx-drupal b/.docker/nginx-drupal.dockerfile similarity index 68% rename from .docker/Dockerfile.nginx-drupal rename to .docker/nginx-drupal.dockerfile index 9db86e9aa..6b8a8e4c0 100644 --- a/.docker/Dockerfile.nginx-drupal +++ b/.docker/nginx-drupal.dockerfile @@ -2,15 +2,17 @@ # # All web requests are sent to this container. ARG CLI_IMAGE +# hadolint ignore=DL3006 FROM ${CLI_IMAGE:-cli} as cli # @see https://hub.docker.com/r/uselagoon/nginx-drupal/tags?page=1 # @see https://github.com/uselagoon/lagoon-images/tree/main/images/nginx-drupal FROM uselagoon/nginx-drupal:23.10.0 -COPY ./.docker/config/nginx/. /etc/nginx/conf.d/ -RUN fix-permissions /etc/nginx +# Webroot is used for Nginx web configuration. +ARG WEBROOT=web +ENV WEBROOT=${WEBROOT} -ENV WEBROOT=docroot +RUN apk add --no-cache tzdata=2023c-r1 COPY --from=cli /app /app diff --git a/.docker/Dockerfile.php b/.docker/php.dockerfile similarity index 85% rename from .docker/Dockerfile.php rename to .docker/php.dockerfile index 867ea7113..18d608392 100644 --- a/.docker/Dockerfile.php +++ b/.docker/php.dockerfile @@ -3,10 +3,13 @@ # All web requests are sent from Nginx to this container. # This container would be scaled up/down in production. ARG CLI_IMAGE +# hadolint ignore=DL3006 FROM ${CLI_IMAGE:-cli} as cli # @see https://hub.docker.com/r/uselagoon/php-7.4-fpm/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-fpm FROM uselagoon/php-8.1-fpm:23.10.0 +RUN apk add --no-cache tzdata=2023c-r1 + COPY --from=cli /app /app diff --git a/.dockerignore b/.dockerignore index 0b57a6354..76b11c52c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,19 +7,21 @@ # Ignore everything. * -# Do not ignore docroot. -!docroot +# Do not ignore web. +!web # Do not ignore config. !config # But still ignore Drupal directories generated by Composer. -docroot/core -docroot/modules/contrib -docroot/themes/contrib -!docroot/themes/contrib/civictheme -docroot/profiles/contrib -docroot/libraries +web/core +web/modules/contrib +web/themes/contrib +!web/themes/contrib/civictheme +web/themes/custom +!web/themes/custom/.gitkeep +web/profiles/contrib +web/libraries !drush drush/contrib/ @@ -34,8 +36,6 @@ node_modules !auth.json !composer.json !composer.lock -!composer.d10.json -!composer.d10.lock !Gruntfile.js !package.json !package-lock.json diff --git a/.editorconfig b/.editorconfig index e2d15ee3a..2da89fc47 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,10 +13,7 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[composer.{json,lock}] -indent_size = 4 - -[composer.d10.{json,lock}] +[*.{json,lock}] indent_size = 4 [*.xml] diff --git a/.env b/.env index bfc4b0b73..e549f026e 100644 --- a/.env +++ b/.env @@ -1,204 +1,162 @@ ## # Project environment variables. # -# It is used by Ahoy and other scripts to read default values. +# This file is used by Docker and other scripts to set values. # -# It is also a single place to define variables that control how the DrevOps -# works without the need to modify scripts. +# This is a single location where defined variables control how DrevOps operates +# and should be the primary place for modifications. Avoid overriding values in +# scripts or configuration files to simplify future updates and centralize +# changes. # -# The values must be scalar (cannot be another variable). Do not enclose values -# in double quotes unless they contain spaces. +# Values must be scalar and cannot reference another variable. +# Do not enclose values in double quotes unless they include spaces. # -# To apply any changes made to this file, run `ahoy up cli`. +# To apply any changes made to this file, run `docker-compose up cli -d` or +# `ahoy up cli`. # -# To customise variables locally, copy default.env.local to .env.local. +# To customize variables locally, copy `.env.local.default` to `.env.local`. # -# Update stack with `ahoy update`. -# -# @see https://docs.drevops.com/maintenance -# @see https://docs.drevops.com/variables/ +# @see https://docs.drevops.com/workflows/variables ################################################################################ # GENERAL # ################################################################################ # Project name. +# +# Drives internal naming within the codebase. +# Does not affect the names of containers and development URL - those depend on +# the project directory and can be overridden with $COMPOSE_PROJECT_NAME. DREVOPS_PROJECT=civictheme_source -# Local development URL (no trailing slashes). -DREVOPS_LOCALDEV_URL=civictheme-source.docker.amazee.io - -# Path to the root of the project inside of the container. -DREVOPS_APP=/app - -# Dedicated branch to identify production environment. -DREVOPS_PRODUCTION_BRANCH=master - -# Local database host (not used in production). -DREVOPS_MARIADB_HOST=mariadb - -# Local database name (not used in production). -DREVOPS_MARIADB_DATABASE=drupal +# Name of the webroot directory with Drupal codebase. +DREVOPS_WEBROOT=web -# Local database user (not used in production). -DREVOPS_MARIADB_USER=drupal - -# Local database password (not used in production). -DREVOPS_MARIADB_PASSWORD=drupal - -# Local database port (not used in production). -DREVOPS_MARIADB_PORT=3306 +# The timezone for the containers. +DREVOPS_TZ="Australia/Melbourne" ################################################################################ # DRUPAL # ################################################################################ -# Drupal version. -DREVOPS_DRUPAL_VERSION=9 +# Drupal profile name (used only when installing from profile). +DRUPAL_PROFILE=minimal # Drupal theme name. -DREVOPS_DRUPAL_THEME=civictheme +DRUPAL_THEME=civictheme -# Drupal profile name (used only when installing from profile). -DREVOPS_DRUPAL_PROFILE=govcms - -# Drupal site name (used only when installing from profile). -DREVOPS_DRUPAL_SITE_NAME="CivicTheme Source" +# Drupal site name. +DRUPAL_SITE_NAME="CivicTheme Source" -# Drupal site email (used only when installing from profile). -DREVOPS_DRUPAL_SITE_EMAIL="p.civictheme@salsadigital.com.au" +# Drupal site email. +DRUPAL_SITE_EMAIL="p.civictheme@salsadigital.com.au" -# Sanitization email pattern. Sanitisation is enabled by default in all -# non-production environments. -# @see https://docs.drevops.com/build#sanitization -DREVOPS_DRUPAL_DB_SANITIZE_EMAIL="user_%uid@salsadigital.com.au" +# Shield print message. +DRUPAL_SHIELD_PRINT="Restricted access." -# Drupal admin email. May need to be reset if database was sanitized. -# DREVOPS_DRUPAL_ADMIN_EMAIL="webmaster@civictheme.salsadigital.com.au" +################################################################################ +# PROVISION # +################################################################################ -# Replace username with email after databasse sanitization. Useful when email -# is used as username. -# DREVOPS_DRUPAL_DB_SANITIZE_REPLACE_USERNAME_WITH_EMAIL=1 +# Variables in this section control how the site is provisioned. +# @see https://docs.drevops.com/workflows/provision -# Set to 1 to install a site from profile instead of database file dump. -DREVOPS_DRUPAL_INSTALL_FROM_PROFILE=1 +# Set to 1 to install a site from profile instead of the database file dump. +DREVOPS_PROVISION_USE_PROFILE=1 -# Flag to always overwrite existing database. Usually set to 0 in deployed -# environments and can be temporary set to 1 for a specific deployment. +# Overwrite existing database if it exists. +# +# Usually set to 0 in deployed environments and can be temporary set to 1 for +# a specific deployment. # Set this to 1 in .env.local to override when developing localy. -DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB=1 +DREVOPS_PROVISION_OVERRIDE_DB=1 # Skip database sanitization. -# DREVOPS_DRUPAL_INSTALL_DB_SANITIZE_SKIP=1 +# +# Database sanitization is enabled by default in all non-production +# environments and is always skipped in the production environment. +DREVOPS_PROVISION_SANITIZE_DB_SKIP=0 -# Put the site into a maintenance mode during site installation phase. -DREVOPS_DRUPAL_INSTALL_USE_MAINTENANCE_MODE=1 +# Sanitization email pattern. Sanitization is enabled by default in all +# non-production environments. +# @see https://docs.drevops.com/workflows/build#sanitization +DREVOPS_PROVISION_SANITIZE_DB_EMAIL="user_%uid@salsa.digital" -# Unblock admin account when logging in. -DREVOPS_DRUPAL_LOGIN_UNBLOCK_ADMIN=1 +# Put the site into a maintenance mode during site provisioning. +DREVOPS_PROVISION_USE_MAINTENANCE_MODE=1 ################################################################################ -# TOOLS # +# DATABASE # ################################################################################ -# Validate composer.lock file. -DREVOPS_COMPOSER_VALIDATE_LOCK=1 - -# PHP Parallel Lint comma-separated list of extensions (no preceding dot). -DREVOPS_LINT_PHPLINT_EXTENSIONS="php, inc, module, theme, install" - -# PHP Parallel Lint comma-separated list of targets. -DREVOPS_LINT_PHPLINT_TARGETS="docroot/modules/custom, docroot/themes/contrib/civictheme, docroot/sites/default/settings.php, tests" - -# PHPCS comma-separated list of targets. -DREVOPS_LINT_PHPCS_TARGETS="docroot/modules/custom, docroot/themes/contrib/civictheme, docroot/sites/default/settings.php, tests" - -# PHPMD comma-separated list of targets. -# PHPMD is very limited on inclusion/exclusion so we are specifying exact PHP files for performance reasons. -DREVOPS_LINT_PHPMD_TARGETS="docroot/themes/contrib/civictheme/includes, docroot/themes/contrib/civictheme/src, docroot/themes/contrib/civictheme/civictheme_starter_kit, docroot/themes/contrib/civictheme/civictheme.api.php, docroot/themes/contrib/civictheme/civictheme.theme, docroot/themes/contrib/civictheme/civictheme_create_subtheme.php, docroot/themes/contrib/civictheme/theme-settings.php, docroot/themes/contrib/civictheme/theme-settings.provision.inc" -# PHPMD report format. -DREVOPS_LINT_PHPMD_FORMAT=text -# PHPMD rules. -DREVOPS_LINT_PHPMD_RULESETS="codesize, unusedcode, cleancode" - -# Allow BE code linting failures. -DREVOPS_LINT_BE_ALLOW_FAILURE=0 - -# Allow FE code linting failures. -DREVOPS_LINT_FE_ALLOW_FAILURE=0 - -# Allow custom front-end tests failures. -DREVOPS_TEST_FE_ALLOW_FAILURE=0 +# Database service runs a single database within a container. +# See settings.php for database credentials defaults. -# Allow custom Unit tests failures. -DREVOPS_TEST_UNIT_ALLOW_FAILURE=0 +# Database can be imported from a file dump into an empty database started from +# the database default image or can exist in a pre-built Docker image. +# Defaults to importing from a file. +# @see https://docs.drevops.com/workflows/database -# Allow custom Kernel tests failures. -DREVOPS_TEST_KERNEL_ALLOW_FAILURE=0 - -# Allow custom Functional tests failures. -DREVOPS_TEST_FUNCTIONAL_ALLOW_FAILURE=0 - -# Allow BDD tests failures. -DREVOPS_TEST_BDD_ALLOW_FAILURE=0 - -################################################################################ -# DATABASE SOURCE # -################################################################################ +# Name of the pre-built Docker image. +# Uncomment to use an image with a DB data loaded into it. +# @see https://github.com/drevops/mariadb-drupal-data to seed your DB image. +# DREVOPS_DB_DOCKER_IMAGE= -# Database dump data directory (file or Docker image archive). +# Database dump directory. DREVOPS_DB_DIR=./.data -# Database dump file name (Docker image archive will use '.tar' extension). +# Database dump file name. DREVOPS_DB_FILE=db.sql +# Lagoon project name. May be different from $DREVOPS_PROJECT. +LAGOON_PROJECT=civictheme-source +################################################################################ +# DEPLOYMENT # +################################################################################ +# Deployment occurs when tests pass in the CI environment. +# @see https://docs.drevops.com/workflows/deployment -# Database dump file sourced from Lagoon. +# The type of deployment. +# +# Combination of comma-separated values to support multiple deployment targets: +# `artifact`,`docker`, `webhook`, `lagoon`. +# +# See https://docs.drevops.com/workflows/deploy +DREVOPS_DEPLOY_TYPES=lagoon -# Lagoon project name. May be different from DREVOPS_PROJECT. -LAGOON_PROJECT=civictheme-source +# Dedicated branch to identify the production environment. +DREVOPS_LAGOON_PRODUCTION_BRANCH=main DREVOPS_DEPLOY_LAGOON_INSTANCE=salsa-hosting DREVOPS_DEPLOY_LAGOON_INSTANCE_GRAPHQL=https://api.salsa.hosting/graphql DREVOPS_DEPLOY_LAGOON_INSTANCE_HOSTNAME=ssh.salsa.hosting DREVOPS_DEPLOY_LAGOON_INSTANCE_PORT=22 -DREVOPS_DEPLOY_LAGOON_LAGOONCLI_VERSION=v0.12.3 DREVOPS_TASK_LAGOON_INSTANCE=salsa-hosting DREVOPS_TASK_LAGOON_INSTANCE_GRAPHQL=https://api.salsa.hosting/graphql DREVOPS_TASK_LAGOON_INSTANCE_HOSTNAME=ssh.salsa.hosting DREVOPS_TASK_LAGOON_INSTANCE_PORT=22 -DREVOPS_TASK_LAGOON_LAGOONCLI_VERSION=v0.12.3 - -DREVOPS_DB_DOWNLOAD_LAGOON_SSH_HOST=ssh.salsa.hosting -DREVOPS_DB_DOWNLOAD_LAGOON_SSH_PORT=22 - -# Use Lagoon Drush aliases to get access to environments from the CLI container. -# DREVOPS_LAGOON_ENABLE_DRUSH_ALIASES=1 ################################################################################ -# DATABASE STORAGE # +# NOTIFICATIONS # ################################################################################ -# Database can be stored in a file and then imported into an empty database -# started from the database default image or in a pre-built Docker image. -# Defaults to storage in a file. -# @see https://docs.drevops.com/database - -# Name of the database docker image to use. Uncomment to use an image with -# a DB data loaded into it. -# @see https://github.com/drevops/mariadb-drupal-data to seed your DB image. -# DREVOPS_DB_DOCKER_IMAGE= +# Notificaions are sent accross multiple channels before and after deployment. +# @see https://docs.drevops.com/workflows/notifications -################################################################################ -# DEPLOYMENT # -################################################################################ +# The channels of the notifications. +# +# Can be a combination of comma-separated values: email,newrelic,github,jira +DREVOPS_NOTIFY_CHANNELS=email -# The type of deployemt. -# @see https://docs.drevops.com/deployment +# Email to send notifications from. +DREVOPS_NOTIFY_EMAIL_FROM="lagoon-deploy+civictheme_source@salsa.digital" -# Combination of comma-separated values to support multiple deployments: -# "artifact","docker", "webhook", "lagoon". -DREVOPS_DEPLOY_TYPE=lagoon +# Email address(es) to send notifications to. +# +# Multiple names can be specified as a comma-separated list of email addresses +# with optional names in the format "email|name". +# Example: "to1@example.com|Jane Doe, to2@example.com|John Doe" +DREVOPS_NOTIFY_EMAIL_RECIPIENTS="p.civictheme+lagoon-deploy.civictheme_source@salsa.digital|CivicTheme group" diff --git a/.env.local.default b/.env.local.default new file mode 100644 index 000000000..0612d6fd9 --- /dev/null +++ b/.env.local.default @@ -0,0 +1,52 @@ +## +# Environment variables for local configuration, typically used for secrets +# and individual customizations. +# +# Copy this file to .env.local and provide appropriate values. +# +# The .env.local file is excluded via .gitignore and will not be committed. +# +# @see https://docs.drevops.com/workflows/variables + +# Suppress Ahoy prompts. +# AHOY_CONFIRM_RESPONSE=y + +# When Ahoy prompts are suppressed (AHOY_CONFIRM_RESPONSE is 1), the command +# will wait for 3 seconds before proceeding. +# Set this variable to "1" to skip the wait. +# AHOY_CONFIRM_WAIT_SKIP=1 + +# Always override DB. +DREVOPS_PROVISION_OVERRIDE_DB=1 + +# Local development URL. +# Defaults to `.docker.amazee.io` +# Override only if you need to use a different URL than the default. +# DREVOPS_LOCALDEV_URL="civictheme_source.docker.amazee.io" + +# Print debug information in DrevOps scripts. +# DREVOPS_DEBUG=1 + +# Print output from Docker build. +# DREVOPS_DOCKER_VERBOSE=1 + +# Print output from Composer install. +# DREVOPS_COMPOSER_VERBOSE=1 + +# Print output from NPM install. +# DREVOPS_NPM_VERBOSE=1 + +# Always override existing downloaded DB dump. +DREVOPS_DB_DOWNLOAD_FORCE=1 + + + +# Database dump file sourced from Lagoon. + +# SSH key file used to access Lagoon environment to download the database. +# Create an SSH key and add it to your account in the Lagoon Dashboard. +DREVOPS_DB_DOWNLOAD_SSH_KEY_FILE=$HOME/.ssh/id_rsa + +# GitHub token used to overcome API rate limits or access private repositories. +# @see https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token +GITHUB_TOKEN= diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ec268bff6..3231b755f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ ## Checklist before requesting a review -- [ ] I have formatted the subject to include ticket number as `[CIVIC-123] Verb in past tense with dot at the end.` -- [ ] I have added a link to the JIRA ticket +- [ ] I have formatted the subject to include ticket number as `[CS-123] Verb in past tense with dot at the end.` +- [ ] I have added a link to the issue tracker - [ ] I have provided information in `Changed` section about WHY something was done if this was not a normal implementation - [ ] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas @@ -10,6 +10,7 @@ - [ ] I have provided screenshots, where applicable ## Changed + 1. ## Screenshots diff --git a/docroot/themes/contrib/civictheme/.github/release-drafter.yml b/.github/release-drafter.yml similarity index 100% rename from docroot/themes/contrib/civictheme/.github/release-drafter.yml rename to .github/release-drafter.yml diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-assign-pr-author.yml similarity index 78% rename from .github/workflows/auto-author-assign.yml rename to .github/workflows/auto-assign-pr-author.yml index acd55ab8a..7eb28037a 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-assign-pr-author.yml @@ -11,4 +11,4 @@ jobs: assign-author: runs-on: ubuntu-latest steps: - - uses: toshimaru/auto-author-assign@v1.4.0 + - uses: toshimaru/auto-author-assign@v2.0.1 diff --git a/.github/workflows/dispatch-webhook-lagoon.yml b/.github/workflows/dispatch-webhook-lagoon.yml index 5171098eb..5d16cb4df 100644 --- a/.github/workflows/dispatch-webhook-lagoon.yml +++ b/.github/workflows/dispatch-webhook-lagoon.yml @@ -24,4 +24,4 @@ jobs: --header "X-GitHub-Delivery: ${RUNNER_TRACKING_ID:7}" \ --header "X-GitHub-Event: pull_request" \ --data-binary @- \ - https://webhookhandler.salsa.hosting/ + "${LAGOON_WEBHOOK_ENDPOINT-https://hooks.lagoon.amazeeio.cloud/}" diff --git a/.github/workflows/post-opened-issue-to-jira.yml b/.github/workflows/post-opened-issue-to-jira.yml index 396cecff2..0f5607b39 100644 --- a/.github/workflows/post-opened-issue-to-jira.yml +++ b/.github/workflows/post-opened-issue-to-jira.yml @@ -17,7 +17,7 @@ jobs: args: --from gfm --to jira --output=/github/workflow/issue.jira /github/workflow/issue.md - name: Put output to the variable - run: | + run: | echo 'JIRA_CONTENT<> $GITHUB_ENV cat ${{ runner.temp }}/_github_workflow/issue.jira >> $GITHUB_ENV echo >> $GITHUB_ENV @@ -49,6 +49,7 @@ jobs: issue-number: ${{ github.event.issue.number }} body: |
+ --- JIRA: ${{ steps.create.outputs.issue }} update-mode: 'append' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..bd1c2ebb6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,22 @@ +name: Release + +on: + push: + tags: + - '*' + branches: + - develop + +permissions: + contents: write + +jobs: + release-drafter: + permissions: + contents: write + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/storybook-tests.yml b/.github/workflows/storybook-tests.yml index 0e10561fb..29608344c 100644 --- a/.github/workflows/storybook-tests.yml +++ b/.github/workflows/storybook-tests.yml @@ -10,11 +10,11 @@ jobs: with: node-version: '18.14' - name: Install dependencies - run: npm install - working-directory: docroot/themes/contrib/civictheme/civictheme_library + run: npm install && npx playwright install + working-directory: web/themes/contrib/civictheme/civictheme_library - name: Build Storybook run: npm run build-storybook - working-directory: docroot/themes/contrib/civictheme/civictheme_library + working-directory: web/themes/contrib/civictheme/civictheme_library - name: Run tests run: npm run test - working-directory: docroot/themes/contrib/civictheme/civictheme_library + working-directory: web/themes/contrib/civictheme/civictheme_library diff --git a/.gitignore b/.gitignore index b178420eb..607ea7219 100644 --- a/.gitignore +++ b/.gitignore @@ -1,71 +1,65 @@ # To ignore OS temporary files use global .gitignore # https://help.github.com/articles/ignoring-files/#create-a-global-gitignore -# Ignore Drupal docroot, but preserve custom modules, themes and settings. +# Ignore Drupal web, but preserve custom modules, themes and settings. # To add an override file, explicitly un-ignore it below and add to the # repository (useful for robots.txt and .htaccess file overrides). -docroot/* -!docroot/sites/ -docroot/sites/* -!docroot/modules/ -docroot/modules/* -!docroot/modules/custom/ -!docroot/themes/ -docroot/themes/* -!docroot/themes/custom/ -!docroot/themes/contrib/ -docroot/themes/contrib/* -!docroot/themes/contrib/civictheme -!docroot/profiles/ -docroot/profiles/* -!docroot/profiles/custom/ -!docroot/sites/default/ -docroot/sites/default/* -!docroot/sites/default/settings.php -!docroot/sites/default/services.yml -!docroot/sites/default/default.settings.local.php -!docroot/sites/default/default.services.local.yml -!docroot/sites/default/includes +web/* +!web/sites/ +web/sites/* +!web/modules/ +web/modules/* +!web/modules/custom/ +!web/themes/ +web/themes/* +!web/themes/contrib/ +web/themes/contrib/* +!web/themes/contrib/civictheme +!web/themes/custom/ +web/themes/custom/* +!web/themes/custom/.gitkeep +!web/profiles/ +web/profiles/* +!web/profiles/custom/ +!web/sites/default/ +web/sites/default/* +!web/sites/default/settings.php +!web/sites/default/services.yml +!web/sites/default/default.settings.local.php +!web/sites/default/default.services.local.yml +!web/sites/default/includes # Preserve default settings files to use them in Functional test. -!docroot/sites/default/default.settings.php -!docroot/sites/default/default.services.yml +!web/sites/default/default.settings.php +!web/sites/default/default.services.yml # Whitelist scaffold files. @see https://github.com/drupal-composer/drupal-scaffold#limitation -!docroot/.editorconfig -!docroot/.eslintignore -!docroot/.gitattributes -!docroot/.htaccess -!docroot/autoload.php -!docroot/index.php -!docroot/robots.txt -!docroot/update.php - +!web/.editorconfig +!web/.eslintignore +!web/.gitattributes +!web/.htaccess +!web/autoload.php +!web/index.php +!web/robots.txt +!web/update.php # Ignore dependencies cache files. -vendor -node_modules +/vendor +/node_modules +web/themes/**/node_modules # Assets. -docroot/themes/**/build -screenshots -test_reports +web/themes/**/build .data +.logs # Ignore local override files. docker-compose.override.yml .env.local +.ahoy.local.yml # Ignore configuration as this site is installed from profile. /config/* -# Ignore generated theme. -docroot/themes/custom -.ahoy.local.yml - # Ignore FE lock files. Do not ignore in distributions as they could be required # by the consumer sites. package-lock.json - -auth.json - -.gitempty diff --git a/.gitignore.deployment b/.gitignore.deployment index 7716aa442..517a91c20 100644 --- a/.gitignore.deployment +++ b/.gitignore.deployment @@ -1,28 +1,32 @@ # Replaces standard .gitignore when building a deployment artifact. -# Ignore everything, but some whitelisted files. +# Ignore all files except those specifically allowed. /* -!docroot -# But still ignore sources. -docroot/themes/contrib/civictheme/fonts -docroot/themes/contrib/civictheme/images -docroot/themes/contrib/civictheme/js -docroot/themes/contrib/civictheme/scss -docroot/themes/contrib/civictheme/Gruntfile.js -docroot/themes/contrib/civictheme/package.json -docroot/themes/contrib/civictheme/package-lock.json -docroot/themes/contrib/civictheme/.eslintrc.json -docroot/themes/contrib/civictheme/node_modules -docroot/sites/default/settings.generated.php -docroot/sites/default/default.settings.php -docroot/sites/default/default.services.yml -docroot/sites/default/default.settings.local.php -docroot/sites/default/default.services.local.yml -docroot/sites/default/files - -!composer.json +# Do not ignore required files. !/config/ -!/hooks/ -!/vendor/ !/scripts/ +!/vendor/ +!composer.json +!.env + +# Do not ignore webroot (manage Drupal scaffold files using the composer.json) +!web +# But ignore content files and test artifacts. +web/sites/default/files +web/sites/simpletest + +# Ignore non-production scaffold files. +web/sites/default/default.services.local.yml +web/sites/default/default.settings.local.php + +# Ignore custom theme asset sources. +web/themes/contrib/civictheme/fonts +web/themes/contrib/civictheme/images +web/themes/contrib/civictheme/js +web/themes/contrib/civictheme/scss +web/themes/contrib/civictheme/Gruntfile.js +web/themes/contrib/civictheme/package.json +web/themes/contrib/civictheme/package-lock.json +web/themes/contrib/civictheme/.eslintrc.json +web/themes/contrib/civictheme/node_modules diff --git a/.lagoon.env.master b/.lagoon.env.main similarity index 100% rename from .lagoon.env.master rename to .lagoon.env.main diff --git a/.lagoon.env.release-1-5-0 b/.lagoon.env.release-1-6-0 similarity index 100% rename from .lagoon.env.release-1-5-0 rename to .lagoon.env.release-1-6-0 diff --git a/.lagoon.yml b/.lagoon.yml index cc98f69f0..994a2d5d9 100644 --- a/.lagoon.yml +++ b/.lagoon.yml @@ -4,138 +4,74 @@ docker-compose-yaml: docker-compose.yml environment_variables: git_sha: 'true' -# Uncomment below to login into container registries if using private images. +# Uncomment to login into container registries if using private images. # container-registries: # dockerhub: -# username: -# # Environment variable $DREVOPS_DOCKER_REGISTRY_TOKEN with Docker registry -# # password is injected into container via LagoonCLI. -# # @see https://docs.lagoon.sh/using-lagoon-advanced/environment-variables/#runtime-environment-variables-lagoon-api -# password: DREVOPS_DOCKER_REGISTRY_TOKEN +# # Environment variables DOCKER_USER and DOCKER_PASS needs to be set via Lagoon CLI. +# username: DOCKER_USER +# password: DOCKER_PASS tasks: post-rollout: - run: name: Show DrevOps variables. - command: | - env -0 | sort -z | tr '\0' '\n' | grep ^DREVOPS_ + command: env -0 | sort -z | tr '\0' '\n' | grep ^DREVOPS_ || true service: cli shell: bash - run: - name: Replace app entrypoint to prevent probes from bootstrapping - command: | - mv /app/docroot/index.php /tmp/index.php - echo "> /app/docroot/index.php - service: nginx-php - container: php - - - run: - name: Set GitHub deployment status + name: Notify about pre-deployment. command: | - if [ -n "${DREVOPS_NOTIFY_GITHUB_TOKEN}" ] && [ -n "$LAGOON_PR_NUMBER" ]; then - [ -n "$LAGOON_PR_NUMBER" ] && GIT_SHA=${LAGOON_PR_HEAD_SHA#origin/} || GIT_SHA=$LAGOON_GIT_SHA - DREVOPS_NOTIFY_DEPLOY_REPOSITORY="salsadigitalauorg/civictheme_source" \ - DREVOPS_NOTIFY_DEPLOY_REF="$GIT_SHA" \ - DREVOPS_NOTIFY_DEPLOY_GITHUB_OPERATION="start" \ - ./scripts/drevops/notify-deployment-github.sh || true - fi + if [ -n "$LAGOON_PR_NUMBER" ]; then export DREVOPS_NOTIFY_REF=$LAGOON_PR_NUMBER;export DREVOPS_NOTIFY_SHA=${LAGOON_PR_HEAD_SHA#origin/};export DREVOPS_NOTIFY_BRANCH=$LAGOON_PR_HEAD_BRANCH;else export DREVOPS_NOTIFY_REF=$LAGOON_GIT_BRANCH;export DREVOPS_NOTIFY_SHA=$LAGOON_GIT_SHA;export DREVOPS_NOTIFY_BRANCH=$LAGOON_GIT_BRANCH;fi + DREVOPS_NOTIFY_PROJECT=$LAGOON_PROJECT \ + DREVOPS_NOTIFY_ENVIRONMENT_URL=$LAGOON_ROUTE \ + DREVOPS_NOTIFY_EVENT=pre_deployment ./scripts/drevops/notify.sh || true service: cli shell: bash - run: - name: Backup DB before deployment in production + name: Provision site command: | - if [ "$LAGOON_ENVIRONMENT_TYPE" = "production" ] || [ "$LAGOON_GIT_BRANCH" = "${DREVOPS_PRODUCTION_BRANCH:-main}" ]; then + if [ "$LAGOON_ENVIRONMENT_TYPE" = "production" ] || [ "$LAGOON_GIT_BRANCH" = "${DREVOPS_LAGOON_PRODUCTION_BRANCH:-main}" ]; then echo "==> Running in PRODUCTION environment." - DREVOPS_DB_DIR=/app/docroot/sites/default/files/private/pre_deployment_backups ./scripts/drevops/export-db-file.sh + # Never unblock admin user in production. + export DRUPAL_UNBLOCK_ADMIN=0 + # Never sanitize DB in production. + export DREVOPS_PROVISION_SANITIZE_DB_SKIP=1 fi - service: cli - - - run: - name: Install site - command: | - # Read DB dump from the temp location instead of '.data'. - export DREVOPS_DB_DIR=/tmp/data # Deployments from UI are not able to bypass the value of - # DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB set by the deploy-lagoon.sh + # DREVOPS_PROVISION_OVERRIDE_DB set by the deploy-lagoon.sh # during previous deployments (it sets value to '0' to mitigate Lagoon bug # where environment variables cannot be deleted and have to be set to a value). # @see https://github.com/uselagoon/lagoon/issues/1922 # Explicitly set DB overwrite flag to the value from .env file for # deployments from the profile. - if [ "$DREVOPS_DRUPAL_INSTALL_FROM_PROFILE" = "1" ]; then - export DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB="$(cat .env | grep ^DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB | cut -c45-)" - fi - - if [ "$LAGOON_ENVIRONMENT_TYPE" = "production" ] || [ "$LAGOON_GIT_BRANCH" = "${DREVOPS_PRODUCTION_BRANCH:-main}" ]; then - echo "==> Running in PRODUCTION environment." - # Never unblock admin user in production. - export DREVOPS_DRUPAL_LOGIN_UNBLOCK_ADMIN=0 - # Never sanitize DB. - export DREVOPS_DRUPAL_INSTALL_DB_SANITIZE_SKIP=1 + if [ "${DREVOPS_PROVISION_USE_PROFILE}" = "1" ]; then + export DREVOPS_PROVISION_OVERRIDE_DB="$(cat .env | grep ^DREVOPS_PROVISION_OVERRIDE_DB | cut -c31-)" fi - - # Install site. - ./scripts/drevops/drupal-install-site.sh + ./scripts/drevops/provision.sh service: cli shell: bash - - run: - name: Restore app entrypoint - command: | - rm /app/docroot/index.php - mv /tmp/index.php /app/docroot/index.php - service: nginx-php - container: php - - run: name: Send deployment notifications command: | - [ -n "$LAGOON_PR_NUMBER" ] && GIT_REF=$LAGOON_PR_NUMBER || GIT_REF=$LAGOON_GIT_BRANCH - php ./scripts/drevops/notify-deployment-email.php \ - "CivicTheme Source" \ - "lagoon-deploy+civictheme_source@salsadigital.com.au" \ - "p.civictheme+lagoon-deploy.civictheme_source@salsadigital.com.au|CivicTheme group" \ - "$GIT_REF" \ - "$LAGOON_ROUTES" - - if [ -n "$NEWRELIC_ENABLED" ] && [ -n "$NEWRELIC_LICENSE" ] && [ -n "$DREVOPS_NOTIFY_NEWRELIC_APIKEY" ]; then - [ -n "$LAGOON_PR_NUMBER" ] && GIT_SHA=${LAGOON_PR_HEAD_SHA#origin/} || GIT_SHA=$LAGOON_GIT_SHA - DREVOPS_NOTIFY_NEWRELIC_APP_NAME="$LAGOON_PROJECT-$GIT_SHA" \ - DREVOPS_NOTIFY_DEPLOY_REF="$GIT_SHA" \ - ./scripts/drevops/notify-deployment-newrelic.sh - fi - - if [ -n "${DREVOPS_NOTIFY_GITHUB_TOKEN}" ] && [ -n "$LAGOON_PR_NUMBER" ]; then - [ -n "$LAGOON_PR_NUMBER" ] && GIT_SHA=${LAGOON_PR_HEAD_SHA#origin/} || GIT_SHA=$LAGOON_GIT_SHA - DREVOPS_NOTIFY_DEPLOY_REPOSITORY="salsadigitalauorg/civictheme_source" \ - DREVOPS_NOTIFY_DEPLOY_REF="$GIT_SHA" \ - DREVOPS_NOTIFY_DEPLOY_ENVIRONMENT_URL="$LAGOON_ROUTE" \ - DREVOPS_NOTIFY_DEPLOY_GITHUB_OPERATION="finish" \ - ./scripts/drevops/notify-deployment-github.sh || true - fi - - if [ -n "${DREVOPS_NOTIFY_DEPLOY_JIRA_USER}" ] && [ -n "${DREVOPS_NOTIFY_DEPLOY_JIRA_TOKEN}" ]; then - [ -n "$LAGOON_PR_NUMBER" ] && GIT_BRANCH=$LAGOON_PR_HEAD_BRANCH || GIT_BRANCH=$LAGOON_GIT_BRANCH - DREVOPS_NOTIFY_JIRA_ENDPOINT="${DREVOPS_NOTIFY_JIRA_ENDPOINT:-https://jira.atlassian.com}" \ - DREVOPS_NOTIFY_DEPLOY_BRANCH="$GIT_BRANCH" \ - DREVOPS_NOTIFY_DEPLOY_ENVIRONMENT_URL="$LAGOON_ROUTE" \ - ./scripts/drevops/notify-deployment-jira.sh || true - fi + if [ -n "$LAGOON_PR_NUMBER" ]; then export DREVOPS_NOTIFY_REF=$LAGOON_PR_NUMBER; export DREVOPS_NOTIFY_SHA=${LAGOON_PR_HEAD_SHA#origin/}; export DREVOPS_NOTIFY_BRANCH=$LAGOON_PR_HEAD_BRANCH; else export DREVOPS_NOTIFY_REF=$LAGOON_GIT_BRANCH; export DREVOPS_NOTIFY_SHA=$LAGOON_GIT_SHA; export DREVOPS_NOTIFY_BRANCH=$LAGOON_GIT_BRANCH; fi + DREVOPS_NOTIFY_EVENT=post_deployment \ + DREVOPS_NOTIFY_PROJECT=$LAGOON_PROJECT \ + DREVOPS_NOTIFY_ENVIRONMENT_URL=$LAGOON_ROUTE \ + ./scripts/drevops/notify.sh service: cli shell: bash - environments: # Branch name that represents production environment. - master: + main: cronjobs: - name: drush cron schedule: '*/15 * * * *' command: drush cron --root=/app service: cli - routes: - nginx-php: - default.civictheme.io diff --git a/.twig_cs.php b/.twig_cs.php new file mode 100644 index 000000000..15cc29b95 --- /dev/null +++ b/.twig_cs.php @@ -0,0 +1,25 @@ +getFilename(), 'stories'); +}; + +return Twigcs\Config\Config::create() + ->setName('custom-config') + ->setSeverity('error') + ->setReporter('console') + ->setRuleSet(Twigcs\Ruleset\Official::class) + ->addFinder(Twigcs\Finder\TemplateFinder::create()->in(__DIR__ . '/web/modules/custom')) + ->addFinder(Twigcs\Finder\TemplateFinder::create()->in(__DIR__ . '/web/themes/contrib/civictheme')->exclude($excluded)->filter($filter)) + ->addFinder(Twigcs\Finder\TemplateFinder::create()->in(__DIR__ . '/web/themes/custom')->exclude($excluded)->filter($filter)); diff --git a/CI.md b/CI.md deleted file mode 100644 index fc48060f3..000000000 --- a/CI.md +++ /dev/null @@ -1,11 +0,0 @@ -# Automated builds (Continuous Integration) - -In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. -Before feature changes can be merged into a shared mainline, a complete build must run and pass all tests on CI server. - -This project uses [Circle CI](https://circleci.com/) as a CI server: it imports production backups into fully built codebase and runs code linting and tests. When tests pass, a deployment process is triggered for nominated branches (usually, `master` and `develop`). - -Add `[skip ci]` to the commit subject to skip CI build. Useful for documentation changes. - -## SSH -Circle CI supports shell access to the build for 120 minutes after the build is finished when the build is started with SSH support. Use "Rerun job with SSH" button in Circle CI UI to start build with SSH support. diff --git a/README.md b/README.md index a70b7ac51..a6283103f 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,35 @@ -# CivicTheme - Development source site -Mono-repo used to maintain CivicTheme and accompanying modules that are automatically published to another repositories on release. +

+ + CivicTheme logo +

+

CivicTheme - Development source site

+ +

Mono-repo used to maintain CivicTheme and accompanying modules that are automatically published to another repositories on release.

+ +
+ +[![GitHub Issues](https://img.shields.io/github/issues/salsadigitalauorg/civictheme_source.svg)](https://github.com/salsadigitalauorg/civictheme_source/issues) +[![GitHub Pull Requests](https://img.shields.io/github/issues-pr/salsadigitalauorg/civictheme_source.svg)](https://github.com/salsadigitalauorg/civictheme_source/pulls) +![GitHub release (latest by date)](https://img.shields.io/github/v/release/salsadigitalauorg/civictheme_source) [![CircleCI](https://circleci.com/gh/salsadigitalauorg/civictheme_source.svg?style=shield)](https://circleci.com/gh/salsadigitalauorg/civictheme_source) -![Drupal 9](https://img.shields.io/badge/Drupal-9-blue.svg) +![Drupal 10](https://img.shields.io/badge/Drupal-10-blue.svg) +![LICENSE](https://img.shields.io/github/license/salsadigitalauorg/civictheme_source) +[![RenovateBot](https://img.shields.io/badge/RenovateBot-enabled-brightgreen.svg?logo=renovatebot)](https://renovatebot.com) [//]: # (DO NOT REMOVE THE BADGE BELOW. IT IS USED BY DREVOPS TO TRACK INTEGRATION) -[![DrevOps](https://img.shields.io/badge/DrevOps-9.x-blue.svg)](https://github.com/drevops/drevops/tree/9.x) +[![DrevOps](https://img.shields.io/badge/DrevOps-1.17.2-blue.svg)](https://github.com/drevops/drevops/tree/1.17.2) -## Environments +
-- [PROD](https://default.civictheme.io) -- [DEV](https://defaultdev.civictheme.io) -- [LOCAL](http://civictheme-source.docker.amazee.io/) - -### Content profiles +--- -- [Corporate](https://nginx-php.content-corporate.civictheme-source.lagoon.salsa.hosting/) -- [Government](https://nginx-php.content-government.civictheme-source.lagoon.salsa.hosting/) -- [Higher Education](https://nginx-php.content-highereducation.civictheme-source.lagoon.salsa.hosting/) +> [!IMPORTANT] +> For Drupal theme installation instructions into your site, see https://docs.civictheme.io/development/drupal-theme ## Local environment setup + - Make sure that you have latest versions of all required software installed: - [Docker](https://www.docker.com/) - [Pygmy](https://github.com/pygmystack/pygmy) @@ -32,40 +41,34 @@ Mono-repo used to maintain CivicTheme and accompanying modules that are automati ### Apple M1 adjustments -Copy `default.docker-compose.override.yml` to `docker-compose.override.yml`. - -## Development +Copy `docker-compose.override.default.yml` to `docker-compose.override.yml`. -Please refer to [development documentation](DEVELOPMENT.md). +## Project documentation -## Testing +- [Development](docs/development.md) +- [FAQs](docs/faqs.md) +- [Testing](docs/testing.md) +- [CI](docs/ci.md) +- [Releasing](docs/releasing.md) +- [Deployment](docs/deployment.md) -Please refer to [testing documentation](TESTING.md). - -## CI - -Please refer to [CI documentation](CI.md). - -## Deployment - -Please refer to [deployment documentation](DEPLOYMENT.md). - -## Releasing +## Environments -Please refer to [releasing documentation](RELEASING.md). +- [PROD](https://default.civictheme.io) - use this as a reference for the latest stable version +- [DEV](https://defaultdev.civictheme.io) -## FAQs +### Content profiles -Please refer to [FAQs](FAQs.md). +- [Corporate](https://nginx-php.content-corporate.civictheme-source.lagoon.salsa.hosting/) +- [Government](https://nginx-php.content-government.civictheme-source.lagoon.salsa.hosting/) +- [Higher Education](https://nginx-php.content-highereducation.civictheme-source.lagoon.salsa.hosting/) ## More about CivicTheme +- [Documentation](https://docs.civictheme.io/) - [CivicTheme UI kit](https://github.com/salsadigitalauorg/civictheme_library) -- [CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme) -- [Default content for CivicTheme](https://github.com/salsadigitalauorg/civictheme_content) +- [CivicTheme Drupal theme](https://www.drupal.org/project/civictheme) +- [Default content for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_content) - [Admin adjustments for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_admin) - [GovCMS adjustments for CivicTheme Drupal theme](https://github.com/salsadigitalauorg/civictheme_govcms) ---- - -For additional information, please refer to the [Documentation site](https://docs.civictheme.io/) diff --git a/behat.yml b/behat.yml index a8353c113..b140a969d 100644 --- a/behat.yml +++ b/behat.yml @@ -1,26 +1,30 @@ default: - autoload: [ '%paths.base%/tests/behat/bootstrap' ] + autoload: ['%paths.base%/tests/behat/bootstrap'] gherkin: # Disable caching during development. It is enabled for profiles below. cache: ~ filters: - # By default, run tests shared between D9 and D10 (not specific to only - # D9 or D10), not requiring a Drupal sub-theme and not being skipped. - tags: '~@d9only&&~@d10only&&~@subtheme&&~@skipped' + # Allow skipping tests by tagging them with "@skipped". + tags: '~@skipped' suites: default: - paths: [ '%paths.base%/tests/behat/features' ] + paths: ['%paths.base%/tests/behat/features'] contexts: - FeatureContext - Drupal\DrupalExtension\Context\MinkContext - Drupal\DrupalExtension\Context\MarkupContext - Drupal\DrupalExtension\Context\MessageContext - - Drupal\DrupalExtension\Context\DrushContext - DrevOps\BehatScreenshotExtension\Context\ScreenshotContext + formatters: + progress_fail: true + # Disable JUnit formatter if memory leaks start to occur. + # See @https://github.com/Behat/Behat/pull/1423 + junit: + output_path: '%paths.base%/.logs/test_results/behat' extensions: Drupal\MinkExtension: - goutte: ~ + browserkit_http: ~ base_url: http://nginx:8080 files_path: '%paths.base%/tests/behat/fixtures' browser_name: chrome @@ -33,38 +37,40 @@ default: api_driver: drupal drush_driver: drush drupal: - drupal_root: docroot + drupal_root: web drush: - root: docroot + root: web selectors: message_selector: '.messages' error_message_selector: '.messages.error' success_message_selector: '.messages.status' warning_message_selector: '.messages.warning' - # Allows to capture HTML and JPG screenshots (based on the driver used). + # Capture HTML and JPG screenshots on demand and on failure. DrevOps\BehatScreenshotExtension: - dir: '%paths.base%/tests/behat/screenshots' + dir: '%paths.base%/.logs/screenshots' + purge: false # Change to 'true' (no quotes) to purge screenshots on each run. # Show explicit fail information and continue the test run. DrevOps\BehatFormatProgressFail\FormatExtension: ~ -# Default profile for parallel run with index 0. -default0: +# Profile for parallel testing. +# Runs all tests not tagged with "smoke" or "@p1" and not tagged with "@skipped". +p0: gherkin: + cache: '/tmp/behat_gherkin_cache' filters: - tags: '~@d9only&&~@d10only&&~@subtheme&&~@skipped&&~@p1' -# Default profile for parallel run with index 1. -default1: - gherkin: - filters: - tags: '~@d9only&&~@d10only&&~@subtheme&&~@skipped&&@p1' + tags: "@smoke,~@p1&&~@skipped&&~@subtheme" -# Drupal 9 sub-theme profile for parallel run with index 0. -subtheme0: +# Profile for parallel testing. +# Runs all tests tagged with "@smoke" or "@p1" and not tagged with "@skipped". +p1: gherkin: + cache: '/tmp/behat_gherkin_cache' filters: - tags: '~@d10only&&~@skipped&&~@p1' -# Drupal 9 sub-theme profile for parallel run with index 1. -subtheme1: + tags: "@smoke,@p1&&~@skipped&&~@subtheme" + +# Profile for smoke ttesting. +smoke: gherkin: + cache: '/tmp/behat_gherkin_cache' filters: - tags: '~@d10only&&~@skipped&&@p1' + tags: "@smoke&&~@skipped&&~@subtheme" diff --git a/composer.d10.dist.json b/composer.d10.dist.json deleted file mode 100644 index 1f24b5f4b..000000000 --- a/composer.d10.dist.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "name": "yourorg/yoursite", - "description": "Example configuration to run CivicTheme on Drupal 10", - "license": "proprietary", - "require": { - "php": ">=8.1", - "composer/installers": "^2.1", - "cweagans/composer-patches": "^1.7", - "drupal/civictheme": "^1.4", - "drupal/ckeditor": "^1.0", - "drupal/config_update": "^2@alpha", - "drupal/core-composer-scaffold": "^10", - "drupal/core-project-message": "^10", - "drupal/core-recommended": "^10", - "drupal/environment_indicator": "^4.0", - "drupal/google_analytics": "^4.0", - "drupal/jquery_ui": "^1.6", - "drupal/jquery_ui_autocomplete": "^2", - "drupal/jquery_ui_menu": "^2", - "drupal/lagoon_logs": "^2.0", - "drupal/linkit": "^6.0@beta", - "drupal/pathauto": "^1.11", - "drupal/redirect": "^1.8", - "drupal/simple_sitemap": "^4.1", - "drush/drush": "^11", - "oomphinc/composer-installers-extender": "^2.0", - "salsadigitalauorg/civictheme_admin": "^1.1", - "vlucas/phpdotenv": "^5.4", - "webflo/drupal-finder": "^1.2", - "webmozart/path-util": "^2.3", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "require-dev": { - "behat/behat": "^3.10", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "drevops/behat-format-progress-fail": "^1", - "drevops/behat-screenshot": "^1", - "drevops/behat-steps": "^1", - "drupal/core-dev": "^10", - "drupal/drupal-extension": "dev-feature/drupal-10", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcompatibility/php-compatibility": "^9.3", - "phpmd/phpmd": "^2.12", - "phpspec/prophecy-phpunit": "^2", - "pyrech/composer-changelogs": "^1.8", - "slevomat/coding-standard": "7.2.1" - }, - "autoload": { - "classmap": [ - "scripts/composer/" - ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "config": { - "platform": { - "php": "8.1.16" - }, - "process-timeout": 0, - "sort-packages": true, - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, - "composer/installers": true, - "cweagans/composer-patches": true, - "drupal/console-extend-plugin": true, - "drupal/core-composer-scaffold": true, - "drupal/core-project-message": true, - "oomphinc/composer-installers-extender": true, - "pyrech/composer-changelogs": true, - "zaporylie/composer-drupal-optimizations": true, - "phpstan/extension-installer": true, - "wikimedia/composer-merge-plugin": true - } - }, - "conflict": { - "drupal/drupal": "*" - }, - "repositories": { - "drupal/components": { - "type": "package", - "package": { - "name": "drupal/components", - "type": "drupal-module", - "version": "2.4", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/components.git", - "reference": "8e184d5f98e56370cde9191f2810c913268b3294" - } - } - }, - "drupal/drupal-driver": { - "type": "vcs", - "url": "https://github.com/drevops/DrupalDriver" - }, - "drupal/drupal-extension": { - "type": "vcs", - "url": "https://github.com/drevops/drupalextension" - }, - "drupal": { - "type": "composer", - "url": "https://packages.drupal.org/8" - }, - "asset-packagist": { - "type": "composer", - "url": "https://asset-packagist.org" - } - }, - "scripts": { - "pre-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "pre-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "post-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" - ], - "post-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" - ] - }, - "extra": { - "composer-exit-on-patch-failure": true, - "patchLevel": { - "drupal/core": "-p2" - }, - "patches": { - "drupal/core": { - "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2023-07-16/3204271-20-missing-layout-exception.patch" - } - }, - "drupal-scaffold": { - "locations": { - "web-root": "./docroot" - }, - "file-mapping": { - "[project-root]/.editorconfig": false, - "[project-root]/.gitattributes": false, - "[web-root]/.htaccess": false, - "[web-root]/.ht.router.php": false, - "[web-root]/example.gitignore": false, - "[web-root]/INSTALL.txt": false, - "[web-root]/README.txt": false, - "[web-root]/sites/example.settings.local.php": false, - "[web-root]/sites/example.sites.php": false, - "[web-root]/web.config": false - } - }, - "enable-patching": true, - "installer-paths": { - "docroot/core": [ - "type:drupal-core" - ], - "docroot/libraries/{$name}": [ - "type:drupal-library", - "type:bower-asset", - "type:npm-asset" - ], - "docroot/modules/contrib/{$name}": [ - "type:drupal-module" - ], - "docroot/profiles/contrib/{$name}": [ - "type:drupal-profile" - ], - "docroot/themes/contrib/{$name}": [ - "type:drupal-theme" - ], - "drush/Commands/contrib/{$name}": [ - "type:drupal-drush" - ], - "docroot/modules/custom/{$name}": [ - "type:drupal-custom-module" - ], - "docroot/themes/custom/{$name}": [ - "type:drupal-custom-theme" - ] - }, - "installer-types": [ - "bower-asset", - "npm-asset" - ], - "preserve-paths": [ - "docroot/modules/custom", - "docroot/themes/custom", - "docroot/drush", - "docroot/sites/default/settings.php", - "docroot/sites/default/services.yml", - "docroot/sites/default/default.settings.local.php", - "docroot/sites/default/default.services.local.yml", - "docroot/sites/default/settings.local.php", - "docroot/sites/default/services.local.yml", - "docroot/sites/default/files", - "docroot/robots.txt", - "docroot/.htaccess" - ] - } -} diff --git a/composer.d10.json b/composer.d10.json deleted file mode 100644 index a916c34ca..000000000 --- a/composer.d10.json +++ /dev/null @@ -1,207 +0,0 @@ -{ - "name": "salsadigitalauorg/civictheme_source", - "description": "Drupal 9 implementation of CivicTheme Source for Salsa Digital", - "license": "proprietary", - "require": { - "php": ">=8.1", - "composer/installers": "^2", - "cweagans/composer-patches": "^1.7", - "drupal/core": "10.0", - "drupal/core-composer-scaffold": "^10", - "drupal/core-project-message": "^10", - "drupal/core-recommended": "^10", - "drupal/search_api": "^1.29", - "drush/drush": "^11", - "oomphinc/composer-installers-extender": "^2.0", - "vlucas/phpdotenv": "^5.1", - "webflo/drupal-finder": "^1.2", - "webmozart/path-util": "^2.3", - "wikimedia/composer-merge-plugin": "^2.0" - }, - "require-dev": { - "behat/behat": "^3.7", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "drevops/behat-format-progress-fail": "^1.0", - "drevops/behat-screenshot": "^1.2", - "drevops/behat-steps": "^1.5", - "drupal/coder": "8.3.16", - "drupal/core-dev": "^10@beta", - "drupal/drupal-extension": "dev-feature/drupal-10 as 4.2.1-dev", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpcompatibility/php-compatibility": "^9.0", - "phpmd/phpmd": "^2.12", - "phpspec/prophecy-phpunit": "^2", - "pyrech/composer-changelogs": "^1.7", - "slevomat/coding-standard": "7.2.1" - }, - "autoload": { - "classmap": [ - "scripts/composer/" - ] - }, - "autoload-dev": { - "classmap": [ - "tests/phpunit/unit" - ] - }, - "config": { - "platform": { - "php": "8.1" - }, - "process-timeout": 0, - "sort-packages": true, - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, - "composer/installers": true, - "cweagans/composer-patches": true, - "drupal/console-extend-plugin": true, - "drupal/core-composer-scaffold": true, - "drupal/core-project-message": true, - "oomphinc/composer-installers-extender": true, - "pyrech/composer-changelogs": true, - "zaporylie/composer-drupal-optimizations": true, - "phpstan/extension-installer": true, - "wikimedia/composer-merge-plugin": true - } - }, - "conflict": { - "drupal/drupal": "*" - }, - "repositories": { - "drupal/drupal-driver": { - "type": "vcs", - "url": "https://github.com/drevops/DrupalDriver" - }, - "drupal/drupal-extension": { - "type": "vcs", - "url": "https://github.com/drevops/drupalextension" - }, - "drupal": { - "type": "composer", - "url": "https://packages.drupal.org/8" - }, - "asset-packagist": { - "type": "composer", - "url": "https://asset-packagist.org" - }, - "dropzone/dropzone": { - "type": "package", - "package": { - "name": "dropzone/dropzone", - "version": "v5.7.2", - "type": "drupal-library", - "dist": { - "type": "zip", - "url": "https://github.com/dropzone/dropzone/archive/refs/tags/v5.7.2.zip" - } - } - } - }, - "scripts": { - "pre-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "pre-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" - ], - "post-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" - ], - "post-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" - ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "extra": { - "composer-exit-on-patch-failure": true, - "patchLevel": { - "drupal/core": "-p2" - }, - "patches": { - "drupal/core": { - "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2023-07-16/3204271-20-missing-layout-exception.patch" - } - }, - "drupal-scaffold": { - "locations": { - "web-root": "./docroot" - }, - "file-mapping": { - "[project-root]/.editorconfig": false, - "[project-root]/.gitattributes": false, - "[web-root]/.ht.router.php": false, - "[web-root]/.htaccess": false, - "[web-root]/INSTALL.txt": false, - "[web-root]/README.txt": false, - "[web-root]/example.gitignore": false, - "[web-root]/sites/default/default.services.yml": false, - "[web-root]/sites/default/default.settings.php": false, - "[web-root]/sites/example.settings.local.php": false, - "[web-root]/sites/example.sites.php": false, - "[web-root]/web.config": false - } - }, - "enable-patching": true, - "installer-paths": { - "docroot/core": [ - "type:drupal-core" - ], - "docroot/libraries/{$name}": [ - "type:drupal-library", - "type:bower-asset", - "type:npm-asset" - ], - "docroot/modules/contrib/{$name}": [ - "type:drupal-module" - ], - "docroot/profiles/contrib/{$name}": [ - "type:drupal-profile" - ], - "docroot/themes/contrib/{$name}": [ - "type:drupal-theme" - ], - "drush/Commands/contrib/{$name}": [ - "type:drupal-drush" - ] - }, - "installer-types": [ - "bower-asset", - "npm-asset" - ], - "preserve-paths": [ - "docroot/modules/custom", - "docroot/themes/custom", - "docroot/themes/contrib/civictheme", - "docroot/drush", - "docroot/sites/default/settings.php", - "docroot/sites/default/services.yml", - "docroot/sites/default/default.settings.local.php", - "docroot/sites/default/default.services.local.yml", - "docroot/sites/default/settings.local.php", - "docroot/sites/default/services.local.yml", - "docroot/sites/default/files", - "docroot/robots.txt", - "docroot/.htaccess" - ], - "merge-plugin": { - "require": [ - "docroot/themes/contrib/civictheme/composer.json", - "docroot/modules/custom/civictheme_admin/composer.json", - "docroot/modules/custom/civictheme_content/composer.json", - "docroot/modules/custom/civictheme_dev/composer.json", - "docroot/modules/custom/cs_generated_content/composer.json" - ], - "recurse": true, - "replace": false, - "ignore-duplicates": false, - "merge-dev": true, - "merge-extra": false, - "merge-extra-deep": false, - "merge-replace": true, - "merge-scripts": false - } - } -} diff --git a/composer.d10.lock b/composer.d10.lock deleted file mode 100644 index 8a8df0851..000000000 --- a/composer.d10.lock +++ /dev/null @@ -1,13890 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "62f98b7513ee22f8064028d50280c3ae", - "packages": [ - { - "name": "asm89/stack-cors", - "version": "v2.1.1", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", - "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "symfony/http-foundation": "^4|^5|^6", - "symfony/http-kernel": "^4|^5|^6" - }, - "require-dev": { - "phpunit/phpunit": "^7|^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "Asm89\\Stack\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander", - "email": "iam.asm89@gmail.com" - } - ], - "description": "Cross-origin resource sharing library and stack middleware", - "homepage": "https://github.com/asm89/stack-cors", - "keywords": [ - "cors", - "stack" - ], - "support": { - "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/v2.1.1" - }, - "time": "2022-01-18T09:12:03+00:00" - }, - { - "name": "chi-teck/drupal-code-generator", - "version": "2.6.2", - "source": { - "type": "git", - "url": "https://github.com/Chi-teck/drupal-code-generator.git", - "reference": "22ed1cc02dc47814e8239de577da541e9b9bd980" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/22ed1cc02dc47814e8239de577da541e9b9bd980", - "reference": "22ed1cc02dc47814e8239de577da541e9b9bd980", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=7.4", - "psr/log": "^1.1 || ^2.0 || ^3.0", - "symfony/console": "^4.4.15 || ^5.1 || ^6.0", - "symfony/filesystem": "^4.4 || ^5.1 || ^6", - "symfony/polyfill-php80": "^1.23", - "symfony/string": "^5.1 || ^6", - "twig/twig": "^2.14.11 || ^3.1" - }, - "conflict": { - "squizlabs/php_codesniffer": "<3.6" - }, - "require-dev": { - "chi-teck/drupal-coder-extension": "^1.2", - "drupal/coder": "^8.3.14", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.4", - "squizlabs/php_codesniffer": "^3.5", - "symfony/var-dumper": "^5.2 || ^6.0", - "symfony/yaml": "^5.2 || ^6.0" - }, - "bin": [ - "bin/dcg" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "DrupalCodeGenerator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Drupal code generator", - "support": { - "issues": "https://github.com/Chi-teck/drupal-code-generator/issues", - "source": "https://github.com/Chi-teck/drupal-code-generator/tree/2.6.2" - }, - "time": "2022-11-11T15:34:04+00:00" - }, - { - "name": "composer/installers", - "version": "v2.2.0", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/c29dc4b93137acb82734f672c37e029dfbd95b35", - "reference": "c29dc4b93137acb82734f672c37e029dfbd95b35", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "composer/composer": "1.6.* || ^2.0", - "composer/semver": "^1 || ^3", - "phpstan/phpstan": "^0.12.55", - "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^5.3", - "symfony/process": "^5" - }, - "type": "composer-plugin", - "extra": { - "class": "Composer\\Installers\\Plugin", - "branch-alias": { - "dev-main": "2.x-dev" - }, - "plugin-modifies-install-path": true - }, - "autoload": { - "psr-4": { - "Composer\\Installers\\": "src/Composer/Installers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "https://composer.github.io/installers/", - "keywords": [ - "Dolibarr", - "Eliasis", - "Hurad", - "ImageCMS", - "Kanboard", - "Lan Management System", - "MODX Evo", - "MantisBT", - "Mautic", - "Maya", - "OXID", - "Plentymarkets", - "Porto", - "RadPHP", - "SMF", - "Starbug", - "Thelia", - "Whmcs", - "WolfCMS", - "agl", - "annotatecms", - "attogram", - "bitrix", - "cakephp", - "chef", - "cockpit", - "codeigniter", - "concrete5", - "croogo", - "dokuwiki", - "drupal", - "eZ Platform", - "elgg", - "expressionengine", - "fuelphp", - "grav", - "installer", - "itop", - "known", - "kohana", - "laravel", - "lavalite", - "lithium", - "magento", - "majima", - "mako", - "matomo", - "mediawiki", - "miaoxing", - "modulework", - "modx", - "moodle", - "osclass", - "pantheon", - "phpbb", - "piwik", - "ppi", - "processwire", - "puppet", - "pxcms", - "reindex", - "roundcube", - "shopware", - "silverstripe", - "sydes", - "sylius", - "tastyigniter", - "wordpress", - "yawik", - "zend", - "zikula" - ], - "support": { - "issues": "https://github.com/composer/installers/issues", - "source": "https://github.com/composer/installers/tree/v2.2.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-08-20T06:45:11+00:00" - }, - { - "name": "composer/semver", - "version": "3.3.2", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-04-01T19:23:25+00:00" - }, - { - "name": "consolidation/annotated-command", - "version": "4.9.1", - "source": { - "type": "git", - "url": "https://github.com/consolidation/annotated-command.git", - "reference": "e01152f698eff4cb5df3ebfe5e097ef335dbd3c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/e01152f698eff4cb5df3ebfe5e097ef335dbd3c9", - "reference": "e01152f698eff4cb5df3ebfe5e097ef335dbd3c9", - "shasum": "" - }, - "require": { - "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" - }, - "require-dev": { - "composer-runtime-api": "^2.0", - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\AnnotatedCommand\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "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.9.1" - }, - "time": "2023-05-20T04:19:01+00:00" - }, - { - "name": "consolidation/config", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/config.git", - "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/config/zipball/597f8d7fbeef801736250ec10c3e190569b1b0ae", - "reference": "597f8d7fbeef801736250ec10c3e190569b1b0ae", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", - "grasmash/expander": "^2.0.1 || ^3", - "php": ">=7.1.3", - "symfony/event-dispatcher": "^4 || ^5 || ^6" - }, - "require-dev": { - "ext-json": "*", - "phpunit/phpunit": ">=7.5.20", - "squizlabs/php_codesniffer": "^3", - "symfony/console": "^4 || ^5 || ^6", - "symfony/yaml": "^4 || ^5 || ^6", - "yoast/phpunit-polyfills": "^1" - }, - "suggest": { - "symfony/event-dispatcher": "Required to inject configuration into Command options", - "symfony/yaml": "Required to use Consolidation\\Config\\Loader\\YamlConfigLoader" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Config\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Provide configuration services for a commandline tool.", - "support": { - "issues": "https://github.com/consolidation/config/issues", - "source": "https://github.com/consolidation/config/tree/2.1.2" - }, - "time": "2022-10-06T17:48:03+00:00" - }, - { - "name": "consolidation/filter-via-dot-access-data", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/filter-via-dot-access-data.git", - "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/filter-via-dot-access-data/zipball/cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", - "reference": "cb2eeba41f8e2e3c61698a5cf70ef048ff6c9d5b", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2.0.0 || ^3.0.0", - "php": ">=7.1.3" - }, - "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Filter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "This project uses dflydev/dot-access-data to provide simple output filtering for applications built with annotated-command / Robo.", - "support": { - "source": "https://github.com/consolidation/filter-via-dot-access-data/tree/2.0.2" - }, - "time": "2021-12-30T03:56:08+00:00" - }, - { - "name": "consolidation/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/consolidation/log.git", - "reference": "caaad9d70dae54eb49002666f000e3c607066878" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/caaad9d70dae54eb49002666f000e3c607066878", - "reference": "caaad9d70dae54eb49002666f000e3c607066878", - "shasum": "" - }, - "require": { - "php": ">=8.0.0", - "psr/log": "^3", - "symfony/console": "^5 || ^6" - }, - "require-dev": { - "phpunit/phpunit": ">=7.5.20", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", - "support": { - "issues": "https://github.com/consolidation/log/issues", - "source": "https://github.com/consolidation/log/tree/3.0.0" - }, - "time": "2022-04-05T16:53:32+00:00" - }, - { - "name": "consolidation/output-formatters", - "version": "4.3.2", - "source": { - "type": "git", - "url": "https://github.com/consolidation/output-formatters.git", - "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/output-formatters/zipball/06711568b4cd169700ff7e8075db0a9a341ceb58", - "reference": "06711568b4cd169700ff7e8075db0a9a341ceb58", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0 || ^2 || ^3", - "php": ">=7.1.3", - "symfony/console": "^4 || ^5 || ^6", - "symfony/finder": "^4 || ^5 || ^6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.4.2", - "phpunit/phpunit": "^7 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3", - "symfony/var-dumper": "^4 || ^5 || ^6", - "symfony/yaml": "^4 || ^5 || ^6", - "yoast/phpunit-polyfills": "^1" - }, - "suggest": { - "symfony/var-dumper": "For using the var_dump formatter" - }, - "type": "library", - "autoload": { - "psr-4": { - "Consolidation\\OutputFormatters\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "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.2" - }, - "time": "2023-07-06T04:45:41+00:00" - }, - { - "name": "consolidation/robo", - "version": "4.0.6", - "source": { - "type": "git", - "url": "https://github.com/consolidation/robo.git", - "reference": "55a272370940607649e5c46eb173c5c54f7c166d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/robo/zipball/55a272370940607649e5c46eb173c5c54f7c166d", - "reference": "55a272370940607649e5c46eb173c5c54f7c166d", - "shasum": "" - }, - "require": { - "consolidation/annotated-command": "^4.8.1", - "consolidation/config": "^2.0.1", - "consolidation/log": "^2.0.2 || ^3", - "consolidation/output-formatters": "^4.1.2", - "consolidation/self-update": "^2.0", - "league/container": "^3.3.1 || ^4.0", - "php": ">=8.0", - "phpowermove/docblock": "^4.0", - "symfony/console": "^6", - "symfony/event-dispatcher": "^6", - "symfony/filesystem": "^6", - "symfony/finder": "^6", - "symfony/process": "^6", - "symfony/yaml": "^6" - }, - "conflict": { - "codegyre/robo": "*" - }, - "require-dev": { - "natxet/cssmin": "3.0.4", - "patchwork/jsqueeze": "^2", - "pear/archive_tar": "^1.4.4", - "phpunit/phpunit": "^7.5.20 || ^8", - "squizlabs/php_codesniffer": "^3.6", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "suggest": { - "natxet/cssmin": "For minifying CSS files in taskMinify", - "patchwork/jsqueeze": "For minifying JS files in taskMinify", - "pear/archive_tar": "Allows tar archives to be created and extracted in taskPack and taskExtract, respectively.", - "totten/lurkerlite": "For monitoring filesystem changes in taskWatch" - }, - "bin": [ - "robo" - ], - "type": "library", - "autoload": { - "psr-4": { - "Robo\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Davert", - "email": "davert.php@resend.cc" - } - ], - "description": "Modern task runner", - "support": { - "issues": "https://github.com/consolidation/robo/issues", - "source": "https://github.com/consolidation/robo/tree/4.0.6" - }, - "time": "2023-04-30T21:49:04+00:00" - }, - { - "name": "consolidation/self-update", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/consolidation/self-update.git", - "reference": "972a1016761c9b63314e040836a12795dff6953a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/self-update/zipball/972a1016761c9b63314e040836a12795dff6953a", - "reference": "972a1016761c9b63314e040836a12795dff6953a", - "shasum": "" - }, - "require": { - "composer/semver": "^3.2", - "php": ">=5.5.0", - "symfony/console": "^2.8 || ^3 || ^4 || ^5 || ^6", - "symfony/filesystem": "^2.5 || ^3 || ^4 || ^5 || ^6" - }, - "bin": [ - "scripts/release" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "SelfUpdate\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander Menk", - "email": "menk@mestrona.net" - }, - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - } - ], - "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.2.0" - }, - "time": "2023-03-18T01:37:41+00:00" - }, - { - "name": "consolidation/site-alias", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/consolidation/site-alias.git", - "reference": "b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-alias/zipball/b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5", - "reference": "b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5", - "shasum": "" - }, - "require": { - "consolidation/config": "^1.2.1 || ^2", - "php": ">=7.4", - "symfony/filesystem": "^5.4 || ^6", - "symfony/finder": "^5 || ^6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.4.2", - "phpunit/phpunit": ">=7", - "squizlabs/php_codesniffer": "^3", - "symfony/var-dumper": "^4", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\SiteAlias\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - } - ], - "description": "Manage alias records for local and remote sites.", - "support": { - "issues": "https://github.com/consolidation/site-alias/issues", - "source": "https://github.com/consolidation/site-alias/tree/4.0.1" - }, - "time": "2023-04-29T17:18:10+00:00" - }, - { - "name": "consolidation/site-process", - "version": "5.2.0", - "source": { - "type": "git", - "url": "https://github.com/consolidation/site-process.git", - "reference": "6c44638d7af8a8b4abe12c3180701243f480539d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-process/zipball/6c44638d7af8a8b4abe12c3180701243f480539d", - "reference": "6c44638d7af8a8b4abe12c3180701243f480539d", - "shasum": "" - }, - "require": { - "consolidation/config": "^2", - "consolidation/site-alias": "^3 || ^4", - "php": ">=8.0.14", - "symfony/console": "^5.4 || ^6", - "symfony/process": "^6" - }, - "require-dev": { - "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Consolidation\\SiteProcess\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - } - ], - "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", - "support": { - "issues": "https://github.com/consolidation/site-process/issues", - "source": "https://github.com/consolidation/site-process/tree/5.2.0" - }, - "time": "2022-12-06T17:57:16+00:00" - }, - { - "name": "cweagans/composer-patches", - "version": "1.7.3", - "source": { - "type": "git", - "url": "https://github.com/cweagans/composer-patches.git", - "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e190d4466fe2b103a55467dfa83fc2fecfcaf2db", - "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3.0" - }, - "require-dev": { - "composer/composer": "~1.0 || ~2.0", - "phpunit/phpunit": "~4.6" - }, - "type": "composer-plugin", - "extra": { - "class": "cweagans\\Composer\\Patches" - }, - "autoload": { - "psr-4": { - "cweagans\\Composer\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Cameron Eagans", - "email": "me@cweagans.net" - } - ], - "description": "Provides a way to patch Composer packages.", - "support": { - "issues": "https://github.com/cweagans/composer-patches/issues", - "source": "https://github.com/cweagans/composer-patches/tree/1.7.3" - }, - "time": "2022-12-20T22:53:13+00:00" - }, - { - "name": "dflydev/dot-access-data", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", - "scrutinizer/ocular": "1.6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Dflydev\\DotAccessData\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" - }, - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" - } - ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], - "support": { - "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" - }, - "time": "2022-10-27T11:44:00+00:00" - }, - { - "name": "doctrine/annotations", - "version": "1.13.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "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", - "vimeo/psalm": "^4.10" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" - }, - "time": "2022-07-02T10:48:51+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2022-02-28T11:07:21+00:00" - }, - { - "name": "drupal/ckeditor", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/ckeditor.git", - "reference": "1.0.2" - }, - "dist": { - "type": "zip", - "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.2", - "datestamp": "1687261951", - "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": "dczepierga", - "homepage": "https://www.drupal.org/user/911466" - }, - { - "name": "hass", - "homepage": "https://www.drupal.org/user/85918" - }, - { - "name": "jcisio", - "homepage": "https://www.drupal.org/user/210762" - }, - { - "name": "Jorrit", - "homepage": "https://www.drupal.org/user/161217" - }, - { - "name": "lauriii", - "homepage": "https://www.drupal.org/user/1078742" - }, - { - "name": "Magnus", - "homepage": "https://www.drupal.org/user/73919" - }, - { - "name": "mkesicki", - "homepage": "https://www.drupal.org/user/922884" - }, - { - "name": "nod_", - "homepage": "https://www.drupal.org/user/598310" - }, - { - "name": "p.wiaderny", - "homepage": "https://www.drupal.org/user/2956619" - }, - { - "name": "vokiel", - "homepage": "https://www.drupal.org/user/2793801" - }, - { - "name": "Wim Leers", - "homepage": "https://www.drupal.org/user/99777" - }, - { - "name": "wwalc", - "homepage": "https://www.drupal.org/user/184556" - }, - { - "name": "xjm", - "homepage": "https://www.drupal.org/user/65776" - } - ], - "description": "WYSIWYG editing for rich text fields using CKEditor.", - "homepage": "https://www.drupal.org/project/ckeditor", - "support": { - "source": "https://git.drupalcode.org/project/ckeditor" - } - }, - { - "name": "drupal/components", - "version": "3.0.0-beta3", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/components.git", - "reference": "3.0.0-beta3" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-3.0.0-beta3.zip", - "reference": "3.0.0-beta3", - "shasum": "47ced4332f0a655ca38ae1b54e97a8e78d59f0bc" - }, - "require": { - "drupal/core": "^9 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "3.0.0-beta3", - "datestamp": "1651759488", - "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "JohnAlbin", - "homepage": "https://www.drupal.org/user/32095", - "email": "virtually.johnalbin@gmail.com" - }, - { - "name": "RobLoach", - "homepage": "https://www.drupal.org/user/61114" - } - ], - "description": "Registers folders of components defined by your theme or module as Twig namespaces", - "homepage": "https://drupal.org/project/components", - "support": { - "source": "https://git.drupalcode.org/project/components" - } - }, - { - "name": "drupal/config_devel", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/config_devel.git", - "reference": "8.x-1.9" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_devel-8.x-1.9.zip", - "reference": "8.x-1.9", - "shasum": "a9cb90575ec854b8d8adb4633a0ddc47c490ca87" - }, - "require": { - "drupal/core": "^9.3 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.9", - "datestamp": "1678264813", - "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": "alexpott", - "homepage": "https://www.drupal.org/user/157725" - }, - { - "name": "benjy", - "homepage": "https://www.drupal.org/user/1852732" - }, - { - "name": "chx", - "homepage": "https://www.drupal.org/user/9446" - }, - { - "name": "joachim", - "homepage": "https://www.drupal.org/user/107701" - }, - { - "name": "nedjo", - "homepage": "https://www.drupal.org/user/4481" - }, - { - "name": "vijaycs85", - "homepage": "https://www.drupal.org/user/93488" - } - ], - "description": "Helps developers work with configuration.", - "homepage": "https://www.drupal.org/project/config_devel", - "support": { - "source": "https://git.drupalcode.org/project/config_devel" - } - }, - { - "name": "drupal/config_filter", - "version": "2.4.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/config_filter.git", - "reference": "8.x-2.4" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_filter-8.x-2.4.zip", - "reference": "8.x-2.4", - "shasum": "dcf442f228dafd6bbac8948db1d51e3f1ca1d0c7" - }, - "require": { - "drupal/core": "^8.8 || ^9 || ^10" - }, - "conflict": { - "drush/drush": "<10" - }, - "suggest": { - "drupal/config_split": "Split site configuration for different environments." - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-2.4", - "datestamp": "1656936801", - "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": "Fabian Bircher", - "homepage": "https://www.drupal.org/u/bircher", - "email": "opensource@fabianbircher.com", - "role": "Maintainer" - }, - { - "name": "Nuvole Web", - "homepage": "http://nuvole.org", - "email": "info@nuvole.org", - "role": "Maintainer" - }, - { - "name": "pescetti", - "homepage": "https://www.drupal.org/user/436244" - } - ], - "description": "Config Filter allows other modules to interact with a ConfigStorage through filter plugins.", - "homepage": "https://www.drupal.org/project/config_filter", - "keywords": [ - "Drupal", - "configuration", - "configuration management" - ], - "support": { - "source": "https://git.drupalcode.org/project/config_filter", - "issues": "https://www.drupal.org/project/issues/config_filter", - "slack": "https://drupal.slack.com/archives/C45342CDD" - } - }, - { - "name": "drupal/config_ignore", - "version": "2.4.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/config_ignore.git", - "reference": "8.x-2.4" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_ignore-8.x-2.4.zip", - "reference": "8.x-2.4", - "shasum": "e0e45dde2d6927c5d26de59f352792fb6cf26554" - }, - "require": { - "drupal/config_filter": "^1 || ^2", - "drupal/core": "^8 || ^9 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-2.4", - "datestamp": "1676045435", - "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": "Tommy Lynge Jørgensen", - "homepage": "https://www.drupal.org/u/tlyngej", - "email": "tlyngej@gmail.com", - "role": "Maintainer" - }, - { - "name": "Fabian Bircher", - "homepage": "https://www.drupal.org/u/bircher", - "role": "Maintainer" - }, - { - "name": "tlyngej", - "homepage": "https://www.drupal.org/user/413139" - } - ], - "description": "Ignore certain configuration during import.", - "homepage": "http://drupal.org/project/config_ignore", - "support": { - "source": "https://git.drupalcode.org/project/config_ignore", - "issues": "https://drupal.org/project/config_ignore", - "irc": "irc://irc.freenode.org/drupal-contribute" - } - }, - { - "name": "drupal/config_inspector", - "version": "2.1.2", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/config_inspector.git", - "reference": "2.1.2" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_inspector-2.1.2.zip", - "reference": "2.1.2", - "shasum": "bc6269241e357d7dfd15750c8d8392102ec9f880" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.1.2", - "datestamp": "1686168059", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "aspilicious", - "homepage": "https://www.drupal.org/user/172527" - }, - { - "name": "Gábor Hojtsy", - "homepage": "https://www.drupal.org/user/4166" - }, - { - "name": "Jose Reyero", - "homepage": "https://www.drupal.org/user/4299" - }, - { - "name": "vijaycs85", - "homepage": "https://www.drupal.org/user/93488" - }, - { - "name": "Wim Leers", - "homepage": "https://www.drupal.org/user/99777" - } - ], - "description": "Provides a configuration data and structure inspector tool", - "homepage": "https://drupal.org/project/config_inspector", - "support": { - "source": "https://cgit.drupalcode.org/config_inspector", - "issues": "https://drupal.org/project/issues/config_inspector", - "irc": "irc://irc.freenode.org/drupal-contribute" - } - }, - { - "name": "drupal/core", - "version": "10.0.0", - "source": { - "type": "git", - "url": "https://github.com/drupal/core.git", - "reference": "5f91bde296ae3a68c448fc35b47bb3eacb700e2b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core/zipball/5f91bde296ae3a68c448fc35b47bb3eacb700e2b", - "reference": "5f91bde296ae3a68c448fc35b47bb3eacb700e2b", - "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", - "ext-date": "*", - "ext-dom": "*", - "ext-filter": "*", - "ext-gd": "*", - "ext-hash": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-pdo": "*", - "ext-session": "*", - "ext-simplexml": "*", - "ext-spl": "*", - "ext-tokenizer": "*", - "ext-xml": "*", - "guzzlehttp/guzzle": "^7.5", - "guzzlehttp/psr7": "^2.4", - "masterminds/html5": "^2.7", - "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", - "symfony/polyfill-iconv": "^1.26", - "symfony/process": "^6.2", - "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" - }, - "conflict": { - "drush/drush": "<8.1.10" - }, - "replace": { - "drupal/core-annotation": "self.version", - "drupal/core-assertion": "self.version", - "drupal/core-class-finder": "self.version", - "drupal/core-datetime": "self.version", - "drupal/core-dependency-injection": "self.version", - "drupal/core-diff": "self.version", - "drupal/core-discovery": "self.version", - "drupal/core-event-dispatcher": "self.version", - "drupal/core-file-cache": "self.version", - "drupal/core-file-security": "self.version", - "drupal/core-filesystem": "self.version", - "drupal/core-front-matter": "self.version", - "drupal/core-gettext": "self.version", - "drupal/core-graph": "self.version", - "drupal/core-http-foundation": "self.version", - "drupal/core-php-storage": "self.version", - "drupal/core-plugin": "self.version", - "drupal/core-proxy-builder": "self.version", - "drupal/core-render": "self.version", - "drupal/core-serialization": "self.version", - "drupal/core-transliteration": "self.version", - "drupal/core-utility": "self.version", - "drupal/core-uuid": "self.version", - "drupal/core-version": "self.version" - }, - "suggest": { - "ext-zip": "Needed to extend the plugin.manager.archiver service capability with the handling of files in the ZIP format." - }, - "type": "drupal-core", - "extra": { - "drupal-scaffold": { - "file-mapping": { - "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig", - "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes", - "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc", - "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore", - "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json", - "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php", - "[web-root]/.htaccess": "assets/scaffold/files/htaccess", - "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore", - "[web-root]/index.php": "assets/scaffold/files/index.php", - "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt", - "[web-root]/README.md": "assets/scaffold/files/drupal.README.md", - "[web-root]/robots.txt": "assets/scaffold/files/robots.txt", - "[web-root]/update.php": "assets/scaffold/files/update.php", - "[web-root]/web.config": "assets/scaffold/files/web.config", - "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt", - "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml", - "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php", - "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php", - "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml", - "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php", - "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt", - "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt", - "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt" - } - } - }, - "autoload": { - "files": [ - "includes/bootstrap.inc" - ], - "psr-4": { - "Drupal\\Core\\": "lib/Drupal/Core", - "Drupal\\Component\\": "lib/Drupal/Component" - }, - "classmap": [ - "lib/Drupal.php", - "lib/Drupal/Component/DependencyInjection/Container.php", - "lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php", - "lib/Drupal/Component/FileCache/FileCacheFactory.php", - "lib/Drupal/Component/Utility/Timer.php", - "lib/Drupal/Component/Utility/Unicode.php", - "lib/Drupal/Core/Cache/Cache.php", - "lib/Drupal/Core/Cache/CacheBackendInterface.php", - "lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php", - "lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php", - "lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php", - "lib/Drupal/Core/Cache/DatabaseBackend.php", - "lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php", - "lib/Drupal/Core/Database/Connection.php", - "lib/Drupal/Core/Database/Database.php", - "lib/Drupal/Core/Database/StatementInterface.php", - "lib/Drupal/Core/DependencyInjection/Container.php", - "lib/Drupal/Core/DrupalKernel.php", - "lib/Drupal/Core/DrupalKernelInterface.php", - "lib/Drupal/Core/Installer/InstallerRedirectTrait.php", - "lib/Drupal/Core/Site/Settings.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "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.0" - }, - "time": "2022-12-15T17:27:51+00:00" - }, - { - "name": "drupal/core-composer-scaffold", - "version": "10.1.1", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-composer-scaffold.git", - "reference": "1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-composer-scaffold/zipball/1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51", - "reference": "1ccd7db5ff8a5425b5bbba9b9a05e366363c0a51", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2", - "php": ">=7.3.0" - }, - "conflict": { - "drupal-composer/drupal-scaffold": "*" - }, - "require-dev": { - "composer/composer": "^1.8@stable" - }, - "type": "composer-plugin", - "extra": { - "class": "Drupal\\Composer\\Plugin\\Scaffold\\Plugin", - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Drupal\\Composer\\Plugin\\Scaffold\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "A flexible Composer project scaffold builder.", - "homepage": "https://www.drupal.org/project/drupal", - "keywords": [ - "drupal" - ], - "support": { - "source": "https://github.com/drupal/core-composer-scaffold/tree/10.1.1" - }, - "time": "2023-04-30T16:15:32+00:00" - }, - { - "name": "drupal/core-project-message", - "version": "10.1.1", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-project-message.git", - "reference": "59b4475f01debd9a0f173938a06189982c8ebffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-project-message/zipball/59b4475f01debd9a0f173938a06189982c8ebffd", - "reference": "59b4475f01debd9a0f173938a06189982c8ebffd", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2", - "php": ">=7.3.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Drupal\\Composer\\Plugin\\ProjectMessage\\MessagePlugin" - }, - "autoload": { - "psr-4": { - "Drupal\\Composer\\Plugin\\ProjectMessage\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Adds a message after Composer installation.", - "homepage": "https://www.drupal.org/project/drupal", - "keywords": [ - "drupal" - ], - "support": { - "source": "https://github.com/drupal/core-project-message/tree/10.1.1" - }, - "time": "2022-07-01T08:32:39+00:00" - }, - { - "name": "drupal/core-recommended", - "version": "10.0.0", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-recommended.git", - "reference": "21e071da21d0ba2f3be6b0ca6af6944f0cf45d31" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-recommended/zipball/21e071da21d0ba2f3be6b0ca6af6944f0cf45d31", - "reference": "21e071da21d0ba2f3be6b0ca6af6944f0cf45d31", - "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.0", - "egulias/email-validator": "~3.2.1", - "guzzlehttp/guzzle": "~7.5.0", - "guzzlehttp/promises": "~1.5.2", - "guzzlehttp/psr7": "~2.4.3", - "masterminds/html5": "~2.7.6", - "pear/archive_tar": "~1.4.14", - "pear/console_getopt": "~v1.4.3", - "pear/pear-core-minimal": "~v1.10.11", - "pear/pear_exception": "~v1.0.2", - "psr/cache": "~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/log": "~3.0.0", - "ralouphie/getallheaders": "~3.0.3", - "symfony/console": "~v6.2.1", - "symfony/dependency-injection": "~v6.2.1", - "symfony/deprecation-contracts": "~v3.1.1", - "symfony/error-handler": "~v6.2.1", - "symfony/event-dispatcher": "~v6.2.0", - "symfony/event-dispatcher-contracts": "~v3.1.1", - "symfony/http-foundation": "~v6.2.1", - "symfony/http-kernel": "~v6.2.1", - "symfony/mime": "~v6.2.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.0", - "symfony/psr-http-message-bridge": "~v2.1.4", - "symfony/routing": "~v6.2.0", - "symfony/serializer": "~v6.2.1", - "symfony/service-contracts": "~v3.1.1", - "symfony/string": "~v6.2.0", - "symfony/translation-contracts": "~v3.1.1", - "symfony/validator": "~v6.2.0", - "symfony/var-dumper": "~v6.2.1", - "symfony/var-exporter": "~v6.2.1", - "symfony/yaml": "~v6.2.0", - "twig/twig": "~v3.4.3" - }, - "conflict": { - "webflo/drupal-core-strict": "*" - }, - "type": "metapackage", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "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.0" - }, - "time": "2022-12-15T17:27:51+00:00" - }, - { - "name": "drupal/ctools", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/ctools.git", - "reference": "4.0.4" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ctools-4.0.4.zip", - "reference": "4.0.4", - "shasum": "4a2474eb2fd525b2add2db0e855c135ba7f0fb70" - }, - "require": { - "drupal/core": "^9.3 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "4.0.4", - "datestamp": "1684299878", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "branch-alias": { - "dev-8.x-3.x": "3.x-dev" - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Kris Vanderwater (EclipseGc)", - "homepage": "https://www.drupal.org/u/eclipsegc", - "role": "Maintainer" - }, - { - "name": "Jakob Perry (japerry)", - "homepage": "https://www.drupal.org/u/japerry", - "role": "Maintainer" - }, - { - "name": "Tim Plunkett (tim.plunkett)", - "homepage": "https://www.drupal.org/u/timplunkett", - "role": "Maintainer" - }, - { - "name": "James Gilliland (neclimdul)", - "homepage": "https://www.drupal.org/u/neclimdul", - "role": "Maintainer" - }, - { - "name": "Daniel Wehner (dawehner)", - "homepage": "https://www.drupal.org/u/dawehner", - "role": "Maintainer" - }, - { - "name": "joelpittet", - "homepage": "https://www.drupal.org/user/160302" - }, - { - "name": "merlinofchaos", - "homepage": "https://www.drupal.org/user/26979" - }, - { - "name": "neclimdul", - "homepage": "https://www.drupal.org/user/48673" - }, - { - "name": "sdboyer", - "homepage": "https://www.drupal.org/user/146719" - }, - { - "name": "sun", - "homepage": "https://www.drupal.org/user/54136" - }, - { - "name": "tim.plunkett", - "homepage": "https://www.drupal.org/user/241634" - } - ], - "description": "Provides a number of utility and helper APIs for Drupal developers and site builders.", - "homepage": "https://www.drupal.org/project/ctools", - "support": { - "source": "https://git.drupalcode.org/project/ctools", - "issues": "https://www.drupal.org/project/issues/ctools" - } - }, - { - "name": "drupal/default_content", - "version": "2.0.0-alpha2", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/default_content.git", - "reference": "2.0.0-alpha2" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/default_content-2.0.0-alpha2.zip", - "reference": "2.0.0-alpha2", - "shasum": "5c365ea21b0be63dc00ec2db50179291d6fb3d89" - }, - "require": { - "drupal/core": "^9.1 || ^10" - }, - "require-dev": { - "drupal/hal": " ^9 || ^1 || ^2", - "drupal/paragraphs": "^1" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.0.0-alpha2", - "datestamp": "1659466706", - "security-coverage": { - "status": "not-covered", - "message": "Alpha releases are not covered by Drupal security advisories." - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10 || ^11" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "andypost", - "homepage": "https://www.drupal.org/user/118908" - }, - { - "name": "benjy", - "homepage": "https://www.drupal.org/user/1852732" - }, - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "dawehner", - "homepage": "https://www.drupal.org/user/99340" - }, - { - "name": "jibran", - "homepage": "https://www.drupal.org/user/1198144" - }, - { - "name": "larowlan", - "homepage": "https://www.drupal.org/user/395439" - }, - { - "name": "Sam152", - "homepage": "https://www.drupal.org/user/1485048" - } - ], - "description": "Imports default content when a module is enabled", - "homepage": "https://www.drupal.org/project/default_content", - "support": { - "source": "https://git.drupalcode.org/project/default_content" - } - }, - { - "name": "drupal/entity_reference_revisions", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/entity_reference_revisions.git", - "reference": "8.x-1.10" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_reference_revisions-8.x-1.10.zip", - "reference": "8.x-1.10", - "shasum": "edd23b91c4a34db65ea22c4db54b7458edc7513b" - }, - "require": { - "drupal/core": "^9 || ^10" - }, - "require-dev": { - "drupal/diff": "1.x-dev" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.10", - "datestamp": "1660664712", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10 || ^11" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "Frans", - "homepage": "https://www.drupal.org/user/514222" - }, - { - "name": "jeroen.b", - "homepage": "https://www.drupal.org/user/1853532" - }, - { - "name": "miro_dietiker", - "homepage": "https://www.drupal.org/user/227761" - } - ], - "description": "Entity Reference Revisions", - "homepage": "https://www.drupal.org/project/entity_reference_revisions", - "support": { - "source": "https://git.drupalcode.org/project/entity_reference_revisions" - } - }, - { - "name": "drupal/environment_indicator", - "version": "4.0.14", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/environment_indicator.git", - "reference": "4.0.14" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/environment_indicator-4.0.14.zip", - "reference": "4.0.14", - "shasum": "ff4fe11fcd5fa08b7ba7a451302cf93e5f68449c" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "4.0.14", - "datestamp": "1674120945", - "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": "e0ipso", - "homepage": "https://www.drupal.org/user/550110" - }, - { - "name": "mrfelton", - "homepage": "https://www.drupal.org/user/305669" - } - ], - "description": "Adds a color indicator for the different environments.", - "homepage": "https://www.drupal.org/project/environment_indicator", - "support": { - "source": "https://git.drupalcode.org/project/environment_indicator" - } - }, - { - "name": "drupal/field_group", - "version": "3.4.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/field_group.git", - "reference": "8.x-3.4" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/field_group-8.x-3.4.zip", - "reference": "8.x-3.4", - "shasum": "80b937e1a11f8b29c69d853fc4bf798c057c6f94" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-3.4", - "datestamp": "1667241979", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Hydra", - "homepage": "https://www.drupal.org/user/647364" - }, - { - "name": "jyve", - "homepage": "https://www.drupal.org/user/591438" - }, - { - "name": "nils.destoop", - "homepage": "https://www.drupal.org/user/361625" - }, - { - "name": "Stalski", - "homepage": "https://www.drupal.org/user/322618" - }, - { - "name": "swentel", - "homepage": "https://www.drupal.org/user/107403" - } - ], - "description": "Provides the field_group module.", - "homepage": "https://www.drupal.org/project/field_group", - "support": { - "source": "https://git.drupalcode.org/project/field_group", - "issues": "https://www.drupal.org/project/issues/field_group" - } - }, - { - "name": "drupal/generated_content", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/generated_content.git", - "reference": "1.3.1" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/generated_content-1.3.1.zip", - "reference": "1.3.1", - "shasum": "32a7029c16322302f28123594ad02bb69e4ead48" - }, - "require": { - "drupal/core": "^9 || ^10" - }, - "suggest": { - "drupal/config_ignore": "Ignore certain configuration during import." - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "1.3.1", - "datestamp": "1678490627", - "security-coverage": { - "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Alex Skrypnyk", - "homepage": "https://www.drupal.org/u/alexskrypnyk", - "email": "alex@drevops.com", - "role": "Maintainer" - } - ], - "description": "Drupal module to programmatically generate content.", - "homepage": "https://drupal.org/project/generated_content", - "keywords": [ - "drupal", - "generate", - "random" - ], - "support": { - "source": "https://git.drupalcode.org/project/generated_content", - "issues": "https://drupal.org/project/issues/generated_content" - } - }, - { - "name": "drupal/jquery_ui", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/jquery_ui.git", - "reference": "8.x-1.6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "0ddccdcf35a066de1843e1d9670677ee1a2faac0" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.6", - "datestamp": "1668521197", - "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": "bnjmnm", - "homepage": "https://www.drupal.org/user/2369194" - }, - { - "name": "jjeff", - "homepage": "https://www.drupal.org/user/17190" - }, - { - "name": "lauriii", - "homepage": "https://www.drupal.org/user/1078742" - }, - { - "name": "litwol", - "homepage": "https://www.drupal.org/user/78134" - }, - { - "name": "mfb", - "homepage": "https://www.drupal.org/user/12302" - }, - { - "name": "mfer", - "homepage": "https://www.drupal.org/user/25701" - }, - { - "name": "mikelutz", - "homepage": "https://www.drupal.org/user/2972409" - }, - { - "name": "nod_", - "homepage": "https://www.drupal.org/user/598310" - }, - { - "name": "phenaproxima", - "homepage": "https://www.drupal.org/user/205645" - }, - { - "name": "RobLoach", - "homepage": "https://www.drupal.org/user/61114" - }, - { - "name": "sun", - "homepage": "https://www.drupal.org/user/54136" - }, - { - "name": "webchick", - "homepage": "https://www.drupal.org/user/24967" - }, - { - "name": "Wim Leers", - "homepage": "https://www.drupal.org/user/99777" - }, - { - "name": "zrpnr", - "homepage": "https://www.drupal.org/user/1448368" - } - ], - "description": "Provides jQuery UI library.", - "homepage": "https://www.drupal.org/project/jquery_ui", - "support": { - "source": "https://git.drupalcode.org/project/jquery_ui" - } - }, - { - "name": "drupal/jquery_ui_autocomplete", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/jquery_ui_autocomplete.git", - "reference": "2.0.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui_autocomplete-2.0.0.zip", - "reference": "2.0.0", - "shasum": "927d312a74002f99e1c971d3d268be1b0a532fc7" - }, - "require": { - "drupal/core": "^9.2 || ^10", - "drupal/jquery_ui": "^1.6", - "drupal/jquery_ui_menu": "^2" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.0.0", - "datestamp": "1670871461", - "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": "bnjmnm", - "homepage": "https://www.drupal.org/user/2369194" - }, - { - "name": "lauriii", - "homepage": "https://www.drupal.org/user/1078742" - }, - { - "name": "nod_", - "homepage": "https://www.drupal.org/user/598310" - }, - { - "name": "phenaproxima", - "homepage": "https://www.drupal.org/user/205645" - }, - { - "name": "Wim Leers", - "homepage": "https://www.drupal.org/user/99777" - }, - { - "name": "zrpnr", - "homepage": "https://www.drupal.org/user/1448368" - } - ], - "description": "Provides jQuery UI Autocomplete library.", - "homepage": "https://www.drupal.org/project/jquery_ui_autocomplete", - "support": { - "source": "https://git.drupalcode.org/project/jquery_ui_autocomplete" - } - }, - { - "name": "drupal/jquery_ui_menu", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/jquery_ui_menu.git", - "reference": "2.0.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/jquery_ui_menu-2.0.0.zip", - "reference": "2.0.0", - "shasum": "5e1b56bf457669c7779a81784f49da63e3956854" - }, - "require": { - "drupal/core": "^9.2 || ^10", - "drupal/jquery_ui": "^1.6" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.0.0", - "datestamp": "1670871546", - "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": "bnjmnm", - "homepage": "https://www.drupal.org/user/2369194" - }, - { - "name": "lauriii", - "homepage": "https://www.drupal.org/user/1078742" - }, - { - "name": "nod_", - "homepage": "https://www.drupal.org/user/598310" - }, - { - "name": "phenaproxima", - "homepage": "https://www.drupal.org/user/205645" - }, - { - "name": "Wim Leers", - "homepage": "https://www.drupal.org/user/99777" - }, - { - "name": "zrpnr", - "homepage": "https://www.drupal.org/user/1448368" - } - ], - "description": "Provides jQuery UI Menu library.", - "homepage": "https://www.drupal.org/project/jquery_ui_menu", - "support": { - "source": "https://git.drupalcode.org/project/jquery_ui_menu" - } - }, - { - "name": "drupal/layout_builder_restrictions", - "version": "2.19.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/layout_builder_restrictions.git", - "reference": "8.x-2.19" - }, - "dist": { - "type": "zip", - "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" - }, - "require-dev": { - "drupal/dashboards": "^2", - "drupal/layout_library": "dev-1.x", - "drupal/mini_layouts": "dev-2.0.x" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-2.19", - "datestamp": "1688739554", - "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": "The University of Texas at Austin", - "homepage": "https://www.drupal.org/university-of-texas-at-austin", - "role": "Maintainer" - }, - { - "name": "Eirik Morland (eiriksm)", - "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" - }, - { - "name": "lreynaga", - "homepage": "https://www.drupal.org/user/3400232" - }, - { - "name": "mark_fullmer", - "homepage": "https://www.drupal.org/user/2612816" - }, - { - "name": "mmarler", - "homepage": "https://www.drupal.org/user/500192" - }, - { - "name": "ricksta", - "homepage": "https://www.drupal.org/user/311042" - }, - { - "name": "texas_tater", - "homepage": "https://www.drupal.org/user/753614" - }, - { - "name": "twfahey", - "homepage": "https://www.drupal.org/user/3403722" - }, - { - "name": "utexas", - "homepage": "https://www.drupal.org/user/3716409" - } - ], - "description": "Manage which fields & layouts are available in Layout Builder", - "homepage": "https://www.drupal.org/project/layout_builder_restrictions", - "keywords": [ - "Drupal", - "Layout Builder Restrictions" - ], - "support": { - "source": "https://git.drupalcode.org/project/layout_builder_restrictions", - "issues": "https://www.drupal.org/project/issues/layout_builder_restrictions" - } - }, - { - "name": "drupal/linkit", - "version": "6.0.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/linkit.git", - "reference": "6.0.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/linkit-6.0.0.zip", - "reference": "6.0.0", - "shasum": "3c4143eb797abee04e5af47eb1885a65e6321b51" - }, - "require": { - "drupal/core": "^9.4 || ^10.0.0" - }, - "conflict": { - "drupal/core": ">=10.1" - }, - "require-dev": { - "drupal/ckeditor": "*", - "drupal/imce": "*" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "6.0.0", - "datestamp": "1688748025", - "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": "Emil Stjerneman", - "homepage": "https://stjerneman.com", - "email": "emil@stjerneman.com", - "role": "Maintainer" - }, - { - "name": "johnwebdev", - "homepage": "https://www.drupal.org/user/3331569" - }, - { - "name": "mark_fullmer", - "homepage": "https://www.drupal.org/user/2612816" - } - ], - "description": "Linkit - Enriched linking experience", - "homepage": "http://drupal.org/project/linkit", - "support": { - "source": "http://cgit.drupalcode.org/linkit", - "issues": "http://drupal.org/project/linkit" - } - }, - { - "name": "drupal/menu_block", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/menu_block.git", - "reference": "8.x-1.10" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/menu_block-8.x-1.10.zip", - "reference": "8.x-1.10", - "shasum": "97de632d77448ae0a974e20c2ffbe42c7ddd4633" - }, - "require": { - "drupal/core": "^9.1 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.10", - "datestamp": "1667434255", - "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": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" - }, - { - "name": "joelpittet", - "homepage": "https://www.drupal.org/user/160302" - }, - { - "name": "JohnAlbin", - "homepage": "https://www.drupal.org/user/32095" - }, - { - "name": "kim.pepper", - "homepage": "https://www.drupal.org/user/370574" - }, - { - "name": "RenatoG", - "homepage": "https://www.drupal.org/user/3326031" - }, - { - "name": "rrrob", - "homepage": "https://www.drupal.org/user/273533" - } - ], - "description": "Provides configurable blocks of menu links.", - "homepage": "https://www.drupal.org/project/menu_block", - "support": { - "source": "https://git.drupalcode.org/project/menu_block" - } - }, - { - "name": "drupal/paragraphs", - "version": "1.15.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/paragraphs.git", - "reference": "8.x-1.15" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.15.zip", - "reference": "8.x-1.15", - "shasum": "2ed2d3199553010fa1c500181bbebe676e9e60c1" - }, - "require": { - "drupal/core": "^9.3 || ^10", - "drupal/entity_reference_revisions": "~1.3" - }, - "require-dev": { - "drupal/block_field": "1.x-dev", - "drupal/diff": "1.x-dev", - "drupal/entity_browser": "2.x-dev", - "drupal/entity_usage": "2.x-dev", - "drupal/field_group": "3.x-dev", - "drupal/inline_entity_form": "1.x-dev", - "drupal/paragraphs-paragraphs_library": "*", - "drupal/replicate": "1.x-dev", - "drupal/search_api": "1.x-dev", - "drupal/search_api_db": "*" - }, - "suggest": { - "drupal/entity_browser": "Recommended for an improved user experience when using the Paragraphs library module" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.15", - "datestamp": "1661440897", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "Frans", - "homepage": "https://www.drupal.org/user/514222" - }, - { - "name": "jeroen.b", - "homepage": "https://www.drupal.org/user/1853532" - }, - { - "name": "jstoller", - "homepage": "https://www.drupal.org/user/99012" - }, - { - "name": "miro_dietiker", - "homepage": "https://www.drupal.org/user/227761" - }, - { - "name": "Primsi", - "homepage": "https://www.drupal.org/user/282629" - } - ], - "description": "Enables the creation of Paragraphs entities.", - "homepage": "https://www.drupal.org/project/paragraphs", - "support": { - "source": "https://git.drupalcode.org/project/paragraphs" - } - }, - { - "name": "drupal/pathauto", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/pathauto.git", - "reference": "8.x-1.11" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "a006fe9e6046a9833711a1ae56aa4752e65bcdc8" - }, - "require": { - "drupal/core": "^9.3 || ^10", - "drupal/ctools": "*", - "drupal/token": "*" - }, - "suggest": { - "drupal/redirect": "When installed Pathauto will provide a new \"Update Action\" in case your URLs change. This is the recommended update action and is considered the best practice for SEO and usability." - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.11", - "datestamp": "1660129564", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" - }, - { - "name": "Freso", - "homepage": "https://www.drupal.org/user/27504" - }, - { - "name": "greggles", - "homepage": "https://www.drupal.org/user/36762" - } - ], - "description": "Provides a mechanism for modules to automatically generate aliases for the content they manage.", - "homepage": "https://www.drupal.org/project/pathauto", - "support": { - "source": "https://cgit.drupalcode.org/pathauto", - "issues": "https://www.drupal.org/project/issues/pathauto", - "documentation": "https://www.drupal.org/docs/8/modules/pathauto" - } - }, - { - "name": "drupal/redirect", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/redirect.git", - "reference": "8.x-1.8" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.8.zip", - "reference": "8.x-1.8", - "shasum": "a7a440423434472ff7115ae69df01553f763f839" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.8", - "datestamp": "1661806955", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" - }, - { - "name": "pifagor", - "homepage": "https://www.drupal.org/user/2375692" - } - ], - "description": "Allows users to redirect from old URLs to new URLs.", - "homepage": "https://www.drupal.org/project/redirect", - "support": { - "source": "https://git.drupalcode.org/project/redirect" - } - }, - { - "name": "drupal/search_api", - "version": "1.29.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/search_api.git", - "reference": "8.x-1.29" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/search_api-8.x-1.29.zip", - "reference": "8.x-1.29", - "shasum": "4663abbcfe5dfc159ee0886fc6c437e998fc0653" - }, - "require": { - "drupal/core": "^9.3 || ^10.0" - }, - "conflict": { - "drupal/search_api_solr": "2.* || 3.0 || 3.1" - }, - "require-dev": { - "drupal/language_fallback_fix": "@dev", - "drupal/search_api_autocomplete": "@dev", - "drupal/search_api_db": "*" - }, - "suggest": { - "drupal/facets": "Adds the ability to create faceted searches.", - "drupal/search_api_autocomplete": "Allows adding autocomplete suggestions to search fields.", - "drupal/search_api_solr": "Adds support for using Apache Solr as a backend." - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.29", - "datestamp": "1679910252", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Thomas Seidl", - "homepage": "https://www.drupal.org/u/drunken-monkey" - }, - { - "name": "Nick Veenhof", - "homepage": "https://www.drupal.org/u/nick_vh" - }, - { - "name": "See other contributors", - "homepage": "https://www.drupal.org/node/790418/committers" - } - ], - "description": "Provides a generic framework for modules offering search capabilities.", - "homepage": "https://www.drupal.org/project/search_api", - "support": { - "source": "https://git.drupalcode.org/project/search_api", - "issues": "https://www.drupal.org/project/issues/search_api", - "irc": "irc://irc.freenode.org/drupal-search-api" - } - }, - { - "name": "drupal/shield", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/shield.git", - "reference": "8.x-1.7" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/shield-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "dcb77778aaffd39a9bb80c123f086358ad1c8bf9" - }, - "require": { - "drupal/core": "^9.2 || ^10" - }, - "require-dev": { - "drupal/key": "^1.16" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.7", - "datestamp": "1661968920", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "branch-alias": { - "dev-8.x-1.x": "1.x-dev" - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "badjava", - "homepage": "https://www.drupal.org/user/83372" - }, - { - "name": "chx", - "homepage": "https://www.drupal.org/user/9446" - }, - { - "name": "geek-merlin", - "homepage": "https://www.drupal.org/user/229048" - }, - { - "name": "japerry", - "homepage": "https://www.drupal.org/user/45640" - }, - { - "name": "kalman.hosszu", - "homepage": "https://www.drupal.org/user/267481" - }, - { - "name": "pkiraly", - "homepage": "https://www.drupal.org/user/352587" - }, - { - "name": "vbouchet", - "homepage": "https://www.drupal.org/user/1671428" - } - ], - "description": "Creates a general shield for the site.", - "homepage": "https://www.drupal.org/project/shield", - "support": { - "source": "https://git.drupalcode.org/project/shield" - } - }, - { - "name": "drupal/simple_sitemap", - "version": "4.1.6", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/simple_sitemap.git", - "reference": "4.1.6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/simple_sitemap-4.1.6.zip", - "reference": "4.1.6", - "shasum": "5ea5ee97ab4d59b43db86dd6279c3ac5ecbe69b9" - }, - "require": { - "drupal/core": "^9.3 || ^10", - "ext-xmlwriter": "*" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "4.1.6", - "datestamp": "1686288643", - "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": "Pawel Ginalski (gbyte)", - "homepage": "https://www.drupal.org/u/gbyte", - "email": "contact@gbyte.dev", - "role": "Maintainer" - }, - { - "name": "WalkingDexter", - "homepage": "https://www.drupal.org/user/3251330" - } - ], - "description": "Creates a standard conform hreflang XML sitemap of the site content and provides a framework for developing other sitemap types.", - "homepage": "https://drupal.org/project/simple_sitemap", - "support": { - "source": "https://cgit.drupalcode.org/simple_sitemap", - "issues": "https://drupal.org/project/issues/simple_sitemap" - } - }, - { - "name": "drupal/testmode", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/testmode.git", - "reference": "2.3.0" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/testmode-2.3.0.zip", - "reference": "2.3.0", - "shasum": "87e72b7679a79fe612b4b45f6e0c333f4a3bc4d4" - }, - "require": { - "drupal/core": "^9 || ^10" - }, - "suggest": { - "drupal/search_api": "^1.25" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "2.3.0", - "datestamp": "1678760934", - "security-coverage": { - "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Alex Skrypnyk", - "homepage": "https://www.drupal.org/u/alexskrypnyk", - "email": "alex@drevops.com", - "role": "Maintainer" - } - ], - "description": "Alter existing site content and other configurations when running tests.", - "homepage": "https://drupal.org/project/testmode", - "support": { - "source": "https://git.drupalcode.org/project/testmode", - "issues": "https://drupal.org/project/issues/testmode" - } - }, - { - "name": "drupal/token", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/token.git", - "reference": "8.x-1.12" - }, - "dist": { - "type": "zip", - "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" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.12", - "datestamp": "1688015262", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } - }, - "drush": { - "services": { - "drush.services.yml": "^9 || ^10" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" - }, - { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" - }, - { - "name": "eaton", - "homepage": "https://www.drupal.org/user/16496" - }, - { - "name": "fago", - "homepage": "https://www.drupal.org/user/16747" - }, - { - "name": "greggles", - "homepage": "https://www.drupal.org/user/36762" - }, - { - "name": "mikeryan", - "homepage": "https://www.drupal.org/user/4420" - } - ], - "description": "Provides a user interface for the Token API, some missing core tokens.", - "homepage": "https://www.drupal.org/project/token", - "support": { - "source": "https://git.drupalcode.org/project/token" - } - }, - { - "name": "drupal/webform", - "version": "6.2.0-beta6", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.2.0-beta6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.2.0-beta6.zip", - "reference": "6.2.0-beta6", - "shasum": "b466ad3629c58f45994cbca55ab6bd8baaa4b838" - }, - "require": { - "drupal/core": "^9.4 || ^10" - }, - "require-dev": { - "drupal/address": "1.x-dev", - "drupal/bootstrap": "3.x-dev", - "drupal/captcha": "^1 || ^2", - "drupal/chosen": "3.0.x-dev", - "drupal/ckeditor": "1.0.x-dev", - "drupal/clientside_validation": "*", - "drupal/clientside_validation_jquery": "*", - "drupal/devel": "*", - "drupal/entity": "1.x-dev", - "drupal/entity_print": "*", - "drupal/group": "1.x-dev", - "drupal/hal": "1 - 2", - "drupal/jquery_ui": "1.x-dev", - "drupal/jquery_ui_checkboxradio": "*", - "drupal/jquery_ui_datepicker": "*", - "drupal/mailsystem": "4.x-dev", - "drupal/metatag": "1.x-dev", - "drupal/paragraphs": "1.x-dev", - "drupal/select2": "1.x-dev", - "drupal/smtp": "1.x-dev", - "drupal/styleguide": "^1 || ^2", - "drupal/telephone_validation": "2.x-dev", - "drupal/token": "*", - "drupal/variationcache": "1.x-dev", - "drupal/webform_access": "*", - "drupal/webform_attachment": "*", - "drupal/webform_clientside_validation": "*", - "drupal/webform_devel": "*", - "drupal/webform_entity_print": "*", - "drupal/webform_node": "*", - "drupal/webform_options_limit": "*", - "drupal/webform_scheduled_email": "*", - "drupal/webform_share": "*", - "drupal/webform_ui": "*" - }, - "suggest": { - "drupal/jquery_ui_checkboxradio": "Provides jQuery UI Checkboxradio library. Required by the Webform jQueryUI Buttons module. The Webform jQueryUI Buttons module is deprecated because jQueryUI is no longer maintained.", - "drupal/jquery_ui_datepicker": "Provides jQuery UI Datepicker library. Required to support datepickers. The Webform jQueryUI Datepicker module is deprecated because jQueryUI is no longer maintained." - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "6.2.0-beta6", - "datestamp": "1686598812", - "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." - } - }, - "drush": { - "services": { - "drush.services.yml": ">=9" - } - } - }, - "notification-url": "https://packages.drupal.org/8/downloads", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Jacob Rockowitz (jrockowitz)", - "homepage": "https://www.drupal.org/u/jrockowitz", - "role": "Maintainer" - }, - { - "name": "Contributors", - "homepage": "https://www.drupal.org/node/7404/committers", - "role": "Contributor" - }, - { - "name": "Liam Morland", - "homepage": "https://www.drupal.org/user/493050" - }, - { - "name": "quicksketch", - "homepage": "https://www.drupal.org/user/35821" - }, - { - "name": "torotil", - "homepage": "https://www.drupal.org/user/865256" - } - ], - "description": "Enables the creation of webforms and questionnaires.", - "homepage": "https://drupal.org/project/webform", - "support": { - "source": "https://git.drupalcode.org/project/webform", - "issues": "https://www.drupal.org/project/issues/webform?version=8.x", - "docs": "https://www.drupal.org/docs/8/modules/webform", - "forum": "https://drupal.stackexchange.com/questions/tagged/webform" - } - }, - { - "name": "drush/drush", - "version": "11.6.0", - "source": { - "type": "git", - "url": "https://github.com/drush-ops/drush.git", - "reference": "f301df5dec8d2aacb03d3e01e0ffc6d98e10ae78" - }, - "dist": { - "type": "zip", - "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.8.2", - "consolidation/config": "^2", - "consolidation/filter-via-dot-access-data": "^2", - "consolidation/robo": "^3.0.9 || ^4.0.1", - "consolidation/site-alias": "^3.1.6 || ^4", - "consolidation/site-process": "^4.1.3 || ^5", - "enlightn/security-checker": "^1", - "ext-dom": "*", - "guzzlehttp/guzzle": "^6.5 || ^7.0", - "league/container": "^3.4 || ^4", - "php": ">=7.4", - "psy/psysh": "~0.11", - "symfony/event-dispatcher": "^4.0 || ^5.0 || ^6.0", - "symfony/filesystem": "^4.4 || ^5.4 || ^6.1", - "symfony/finder": "^4.0 || ^5 || ^6", - "symfony/polyfill-php80": "^1.23", - "symfony/var-dumper": "^4.0 || ^5.0 || ^6.0", - "symfony/yaml": "^4.0 || ^5.0 || ^6.0", - "webflo/drupal-finder": "^1.2" - }, - "conflict": { - "drupal/core": "< 9.2", - "drupal/migrate_run": "*", - "drupal/migrate_tools": "<= 5" - }, - "require-dev": { - "composer/installers": "^1.7", - "cweagans/composer-patches": "~1.0", - "david-garcia/phpwhois": "4.3.0", - "drupal/core-recommended": "^9 || ^10", - "drupal/semver_example": "2.3.0", - "phpunit/phpunit": ">=7.5.20", - "rector/rector": "^0.12", - "squizlabs/php_codesniffer": "^3.6", - "vlucas/phpdotenv": "^2.4", - "yoast/phpunit-polyfills": "^0.2.0" - }, - "bin": [ - "drush" - ], - "type": "library", - "extra": { - "installer-paths": { - "sut/core": [ - "type:drupal-core" - ], - "sut/libraries/{$name}": [ - "type:drupal-library" - ], - "sut/modules/unish/{$name}": [ - "drupal/devel" - ], - "sut/themes/unish/{$name}": [ - "drupal/empty_theme" - ], - "sut/modules/contrib/{$name}": [ - "type:drupal-module" - ], - "sut/profiles/contrib/{$name}": [ - "type:drupal-profile" - ], - "sut/themes/contrib/{$name}": [ - "type:drupal-theme" - ], - "sut/drush/contrib/{$name}": [ - "type:drupal-drush" - ] - } - }, - "autoload": { - "psr-4": { - "Drush\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Moshe Weitzman", - "email": "weitzman@tejasa.com" - }, - { - "name": "Owen Barton", - "email": "drupal@owenbarton.com" - }, - { - "name": "Greg Anderson", - "email": "greg.1.anderson@greenknowe.org" - }, - { - "name": "Jonathan Araña Cruz", - "email": "jonhattan@faita.net" - }, - { - "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com" - }, - { - "name": "Christopher Gervais", - "email": "chris@ergonlogic.com" - }, - { - "name": "Dave Reid", - "email": "dave@davereid.net" - }, - { - "name": "Damian Lee", - "email": "damiankloip@googlemail.com" - } - ], - "description": "Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.", - "homepage": "http://www.drush.org", - "support": { - "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.6.0" - }, - "funding": [ - { - "url": "https://github.com/weitzman", - "type": "github" - } - ], - "time": "2023-06-06T18:46:18+00:00" - }, - { - "name": "egulias/email-validator", - "version": "3.2.6", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", - "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.2|^2", - "php": ">=7.2", - "symfony/polyfill-intl-idn": "^1.15" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.8|^9.3.3", - "vimeo/psalm": "^4" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.2.6" - }, - "funding": [ - { - "url": "https://github.com/egulias", - "type": "github" - } - ], - "time": "2023-06-01T07:04:22+00:00" - }, - { - "name": "enlightn/security-checker", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/enlightn/security-checker.git", - "reference": "196bacc76e7a72a63d0e1220926dbb190272db97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/enlightn/security-checker/zipball/196bacc76e7a72a63d0e1220926dbb190272db97", - "reference": "196bacc76e7a72a63d0e1220926dbb190272db97", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/guzzle": "^6.3|^7.0", - "php": ">=5.6", - "symfony/console": "^3.4|^4|^5|^6", - "symfony/finder": "^3|^4|^5|^6", - "symfony/process": "^3.4|^4|^5|^6", - "symfony/yaml": "^3.4|^4|^5|^6" - }, - "require-dev": { - "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^2.18|^3.0", - "phpunit/phpunit": "^5.5|^6|^7|^8|^9" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "autoload": { - "psr-4": { - "Enlightn\\SecurityChecker\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paras Malhotra", - "email": "paras@laravel-enlightn.com" - }, - { - "name": "Miguel Piedrafita", - "email": "soy@miguelpiedrafita.com" - } - ], - "description": "A PHP dependency vulnerabilities scanner based on the Security Advisories Database.", - "keywords": [ - "package", - "php", - "scanner", - "security", - "security advisories", - "vulnerability scanner" - ], - "support": { - "issues": "https://github.com/enlightn/security-checker/issues", - "source": "https://github.com/enlightn/security-checker/tree/v1.10.0" - }, - "time": "2022-02-21T22:40:16+00:00" - }, - { - "name": "graham-campbell/result-type", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", - "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.1" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" - }, - "type": "library", - "autoload": { - "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - } - ], - "description": "An Implementation Of The Result Type", - "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" - ], - "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", - "type": "tidelift" - } - ], - "time": "2023-02-25T20:23:15+00:00" - }, - { - "name": "grasmash/expander", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/grasmash/expander.git", - "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/grasmash/expander/zipball/bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", - "reference": "bb1c1a2430957945cf08c5a62f5d72a6aa6a2c82", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^3.0.0", - "php": ">=8.0", - "psr/log": "^2 | ^3" - }, - "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", - "php-coveralls/php-coveralls": "^2.5", - "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Grasmash\\Expander\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Grasmick" - } - ], - "description": "Expands internal property references in PHP arrays file.", - "support": { - "issues": "https://github.com/grasmash/expander/issues", - "source": "https://github.com/grasmash/expander/tree/3.0.0" - }, - "time": "2022-05-10T13:14:49+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.5.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/584d1f06b5caa07b0587f5054d551ed65460ce5d", - "reference": "584d1f06b5caa07b0587f5054d551ed65460ce5d", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", - "psr/log": "^1.1 || ^2.0 || ^3.0" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.3" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "time": "2023-05-15T20:42:18+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.5.3", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.3" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2023-05-21T12:31:43+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "2.4.5", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/0454e12ef0cd597ccd2adb036f7bda4e7fface66", - "reference": "0454e12ef0cd597ccd2adb036f7bda4e7fface66", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "ralouphie/getallheaders": "^3.0" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.5" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2023-04-17T16:00:45+00:00" - }, - { - "name": "league/container", - "version": "4.2.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/container.git", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab", - "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "psr/container": "^1.1 || ^2.0" - }, - "provide": { - "psr/container-implementation": "^1.0" - }, - "replace": { - "orno/di": "~2.0" - }, - "require-dev": { - "nette/php-generator": "^3.4", - "nikic/php-parser": "^4.10", - "phpstan/phpstan": "^0.12.47", - "phpunit/phpunit": "^8.5.17", - "roave/security-advisories": "dev-latest", - "scrutinizer/ocular": "^1.8", - "squizlabs/php_codesniffer": "^3.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev", - "dev-4.x": "4.x-dev", - "dev-3.x": "3.x-dev", - "dev-2.x": "2.x-dev", - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Container\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Phil Bennett", - "email": "mail@philbennett.co.uk", - "role": "Developer" - } - ], - "description": "A fast and intuitive dependency injection container.", - "homepage": "https://github.com/thephpleague/container", - "keywords": [ - "container", - "dependency", - "di", - "injection", - "league", - "provider", - "service" - ], - "support": { - "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/4.2.0" - }, - "funding": [ - { - "url": "https://github.com/philipobenito", - "type": "github" - } - ], - "time": "2021-11-16T10:29:06+00:00" - }, - { - "name": "masterminds/html5", - "version": "2.7.6", - "source": { - "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", - "reference": "897eb517a343a2281f11bc5556d6548db7d93947", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-libxml": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" - }, - "time": "2022-08-18T16:18:26+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.16.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0" - }, - "time": "2023-06-25T14:52:30+00:00" - }, - { - "name": "oomphinc/composer-installers-extender", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/oomphinc/composer-installers-extender.git", - "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/cbf4b6f9a24153b785d09eee755b995ba87bd5f9", - "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1 || ^2.0", - "composer/installers": "^1.0 || ^2.0", - "php": ">=7.1" - }, - "require-dev": { - "composer/composer": "^2.0", - "phpunit/phpunit": "^7.2", - "squizlabs/php_codesniffer": "^3.3" - }, - "type": "composer-plugin", - "extra": { - "class": "OomphInc\\ComposerInstallersExtender\\Plugin" - }, - "autoload": { - "psr-4": { - "OomphInc\\ComposerInstallersExtender\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Stephen Beemsterboer", - "email": "stephen@oomphinc.com", - "homepage": "https://github.com/balbuf" - }, - { - "name": "Nathan Dentzau", - "email": "nate@oomphinc.com", - "homepage": "http://oomph.is/ndentzau" - } - ], - "description": "Extend the composer/installers plugin to accept any arbitrary package type.", - "homepage": "http://www.oomphinc.com/", - "support": { - "issues": "https://github.com/oomphinc/composer-installers-extender/issues", - "source": "https://github.com/oomphinc/composer-installers-extender/tree/2.0.1" - }, - "time": "2021-12-15T12:32:42+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": "*" - }, - "suggest": { - "ext-bz2": "Bz2 compression support.", - "ext-xz": "Lzma2 compression support.", - "ext-zlib": "Gzip compression support." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Archive_Tar": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Vincent Blavet", - "email": "vincent@phpconcept.net" - }, - { - "name": "Greg Beaver", - "email": "greg@chiaraquartet.net" - }, - { - "name": "Michiel Rook", - "email": "mrook@php.net" - } - ], - "description": "Tar file management class with compression support (gzip, bzip2, lzma2)", - "homepage": "https://github.com/pear/Archive_Tar", - "keywords": [ - "archive", - "tar" - ], - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Archive_Tar", - "source": "https://github.com/pear/Archive_Tar" - }, - "funding": [ - { - "url": "https://github.com/mrook", - "type": "github" - }, - { - "url": "https://www.patreon.com/michielrook", - "type": "patreon" - } - ], - "time": "2021-07-20T13:53:39+00:00" - }, - { - "name": "pear/console_getopt", - "version": "v1.4.3", - "source": { - "type": "git", - "url": "https://github.com/pear/Console_Getopt.git", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/Console_Getopt/zipball/a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "reference": "a41f8d3e668987609178c7c4a9fe48fecac53fa0", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "Console": "./" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "./" - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Andrei Zmievski", - "email": "andrei@php.net", - "role": "Lead" - }, - { - "name": "Stig Bakken", - "email": "stig@php.net", - "role": "Developer" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net", - "role": "Helper" - } - ], - "description": "More info available on: http://pear.php.net/package/Console_Getopt", - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Console_Getopt", - "source": "https://github.com/pear/Console_Getopt" - }, - "time": "2019-11-20T18:27:48+00:00" - }, - { - "name": "pear/pear-core-minimal", - "version": "v1.10.13", - "source": { - "type": "git", - "url": "https://github.com/pear/pear-core-minimal.git", - "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/aed862e95fd286c53cc546734868dc38ff4b5b1d", - "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d", - "shasum": "" - }, - "require": { - "pear/console_getopt": "~1.4", - "pear/pear_exception": "~1.0" - }, - "replace": { - "rsky/pear-core-min": "self.version" - }, - "type": "library", - "autoload": { - "psr-0": { - "": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "src/" - ], - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@php.net", - "role": "Lead" - } - ], - "description": "Minimal set of PEAR core files to be used as composer dependency", - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR", - "source": "https://github.com/pear/pear-core-minimal" - }, - "time": "2023-04-19T19:15:47+00:00" - }, - { - "name": "pear/pear_exception", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "<9" - }, - "type": "class", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "PEAR/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "." - ], - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Helgi Thormar", - "email": "dufuz@php.net" - }, - { - "name": "Greg Beaver", - "email": "cellog@php.net" - } - ], - "description": "The PEAR Exception base class.", - "homepage": "https://github.com/pear/PEAR_Exception", - "keywords": [ - "exception" - ], - "support": { - "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", - "source": "https://github.com/pear/PEAR_Exception" - }, - "time": "2021-03-21T15:43:46+00:00" - }, - { - "name": "phootwork/collection", - "version": "v3.2.2", - "source": { - "type": "git", - "url": "https://github.com/phootwork/collection.git", - "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phootwork/collection/zipball/46dde20420fba17766c89200bc3ff91d3e58eafa", - "reference": "46dde20420fba17766c89200bc3ff91d3e58eafa", - "shasum": "" - }, - "require": { - "phootwork/lang": "^3.0", - "php": ">=8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "phootwork\\collection\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.", - "homepage": "https://phootwork.github.io/collection/", - "keywords": [ - "Array object", - "Text object", - "collection", - "collections", - "json", - "list", - "map", - "queue", - "set", - "stack", - "xml" - ], - "support": { - "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/collection/tree/v3.2.2" - }, - "time": "2022-08-27T12:51:24+00:00" - }, - { - "name": "phootwork/lang", - "version": "v3.2.2", - "source": { - "type": "git", - "url": "https://github.com/phootwork/lang.git", - "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phootwork/lang/zipball/baaf154ae7d521ebeee5e89105f5b12b0f234597", - "reference": "baaf154ae7d521ebeee5e89105f5b12b0f234597", - "shasum": "" - }, - "require": { - "php": ">=8.0", - "symfony/polyfill-mbstring": "^1.12", - "symfony/polyfill-php81": "^1.22" - }, - "type": "library", - "autoload": { - "psr-4": { - "phootwork\\lang\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "Missing PHP language constructs", - "homepage": "https://phootwork.github.io/lang/", - "keywords": [ - "array", - "comparator", - "comparison", - "string" - ], - "support": { - "issues": "https://github.com/phootwork/phootwork/issues", - "source": "https://github.com/phootwork/lang/tree/v3.2.2" - }, - "time": "2023-05-26T05:37:59+00:00" - }, - { - "name": "phpoption/phpoption", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e", - "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12" - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": true - }, - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpOption\\": "src/PhpOption/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" - }, - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], - "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], - "time": "2023-02-25T19:38:58+00:00" - }, - { - "name": "phpowermove/docblock", - "version": "v4.0", - "source": { - "type": "git", - "url": "https://github.com/phpowermove/docblock.git", - "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpowermove/docblock/zipball/a73f6e17b7d4e1b92ca5378c248c952c9fae7826", - "reference": "a73f6e17b7d4e1b92ca5378c248c952c9fae7826", - "shasum": "" - }, - "require": { - "phootwork/collection": "^3.0", - "phootwork/lang": "^3.0", - "php": ">=8.0" - }, - "require-dev": { - "phootwork/php-cs-fixer-config": "^0.4", - "phpunit/phpunit": "^9.0", - "psalm/phar": "^4.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "phpowermove\\docblock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Gossmann", - "homepage": "http://gos.si" - } - ], - "description": "PHP Docblock parser and generator. An API to read and write Docblocks.", - "keywords": [ - "docblock", - "generator", - "parser" - ], - "support": { - "issues": "https://github.com/phpowermove/docblock/issues", - "source": "https://github.com/phpowermove/docblock/tree/v4.0" - }, - "time": "2021-09-22T16:57:06+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" - }, - "time": "2023-04-10T20:12:12+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" - }, - "time": "2023-04-10T20:10:41+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "psr/log", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" - }, - "time": "2021-07-14T16:46:02+00:00" - }, - { - "name": "psy/psysh", - "version": "v0.11.19", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "1724ceff278daeeac5a006744633bacbb2dc4706" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1724ceff278daeeac5a006744633bacbb2dc4706", - "reference": "1724ceff278daeeac5a006744633bacbb2dc4706", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" - }, - "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." - }, - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "0.11.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.19" - }, - "time": "2023-07-15T19:42:19+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "symfony/console", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "dad41ae62bacb7fd96c463278ad583f81ccdffb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/dad41ae62bacb7fd96c463278ad583f81ccdffb5", - "reference": "dad41ae62bacb7fd96c463278ad583f81ccdffb5", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "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": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.2.12" - }, - "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": "2023-05-29T12:46:33+00:00" - }, - { - "name": "symfony/dependency-injection", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c0a0c04f304a5b7d40d4d4102bc482b5da618e54" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c0a0c04f304a5b7d40d4d4102bc482b5da618e54", - "reference": "c0a0c04f304a5b7d40d4d4102bc482b5da618e54", - "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" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony/config": "<6.1", - "symfony/finder": "<5.4", - "symfony/proxy-manager-bridge": "<6.2", - "symfony/yaml": "<5.4" - }, - "provide": { - "psr/container-implementation": "1.1|2.0", - "symfony/service-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "symfony/config": "^6.1", - "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": { - "Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows 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.12" - }, - "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": "2023-06-24T11:48:11+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "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": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" - }, - "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-02-25T11:15:52+00:00" - }, - { - "name": "symfony/error-handler", - "version": "v6.2.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "e847ba47e7a8f9708082990cb40ab4ff0440a11e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e847ba47e7a8f9708082990cb40ab4ff0440a11e", - "reference": "e847ba47e7a8f9708082990cb40ab4ff0440a11e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" - }, - "bin": [ - "Resources/bin/patch-type-declarations" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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.11" - }, - "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": "2023-05-05T11:55:01+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2|^3" - }, - "conflict": { - "symfony/dependency-injection": "<5.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "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/stopwatch": "^5.4|^6.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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" - }, - "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": "2023-03-20T16:06:02+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/02ff5eea2f453731cfbc6bc215e456b781480448", - "reference": "02ff5eea2f453731cfbc6bc215e456b781480448", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.1.1" - }, - "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-02-25T11:15:52+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v6.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.3.1" - }, - "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": "2023-06-01T08:30:39+00:00" - }, - { - "name": "symfony/finder", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", - "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/filesystem": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.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": "2023-04-02T01:25:41+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "94e3bc563fb92444588b3e2480fc47bb251ef295" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/94e3bc563fb92444588b3e2480fc47bb251ef295", - "reference": "94e3bc563fb92444588b3e2480fc47bb251ef295", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1" - }, - "conflict": { - "symfony/cache": "<6.2" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "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": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.2.12" - }, - "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": "2023-06-24T11:48:11+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "fb02830a72c82759e4bc7eaf4c16e0b81303df38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fb02830a72c82759e4bc7eaf4c16e0b81303df38", - "reference": "fb02830a72c82759e4bc7eaf4c16e0b81303df38", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^6.1", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^5.4.21|^6.2.7", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.2", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", - "symfony/twig-bridge": "<5.4", - "symfony/validator": "<5.4", - "twig/twig": "<2.13" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^6.1", - "symfony/console": "^5.4|^6.0", - "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", - "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/process": "^5.4|^6.0", - "symfony/routing": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", - "symfony/uid": "^5.4|^6.0", - "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": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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.12" - }, - "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": "2023-06-26T06:02:47+00:00" - }, - { - "name": "symfony/mime", - "version": "v6.2.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b6c137fc53a9f7c4c951cd3f362b3734c7a97723", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" - }, - "conflict": { - "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4", - "symfony/serializer": "<6.2" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1|^4", - "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^6.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Mime\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows manipulating MIME messages", - "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], - "support": { - "source": "https://github.com/symfony/mime/tree/v6.2.10" - }, - "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": "2023-04-19T09:54:16+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "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\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/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-iconv", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "927013f3aac555983a5059aada98e1907d842695" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", - "reference": "927013f3aac555983a5059aada98e1907d842695", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "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\\Iconv\\": "" - } - }, - "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 for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/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-intl-grapheme", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "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\\Intl\\Grapheme\\": "" - } - }, - "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 for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/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-intl-idn", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "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\\Intl\\Idn\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/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-intl-normalizer", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "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\\Intl\\Normalizer\\": "" - }, - "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 for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/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-mbstring", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "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\\Mbstring\\": "" - } - }, - "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 for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/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-php72", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", - "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\\Php72\\": "" - } - }, - "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 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/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-php80", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "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\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/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-php81", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" - }, - "dist": { - "type": "zip", - "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/process", - "version": "v6.2.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "97ae9721bead9d1a39b5650e2f4b7834b93b539c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/97ae9721bead9d1a39b5650e2f4b7834b93b539c", - "reference": "97ae9721bead9d1a39b5650e2f4b7834b93b539c", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v6.2.11" - }, - "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": "2023-05-19T07:42:48+00:00" - }, - { - "name": "symfony/psr-http-message-bridge", - "version": "v2.1.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "a125b93ef378c492e274f217874906fb9babdebb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/a125b93ef378c492e274f217874906fb9babdebb", - "reference": "a125b93ef378c492e274f217874906fb9babdebb", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0 || ^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" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" - }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", - "keywords": [ - "http", - "http-message", - "psr-17", - "psr-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" - }, - "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-28T22:46:34+00:00" - }, - { - "name": "symfony/routing", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "d59dc6a43191985bc9c27c746ce7986f01540e94" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/d59dc6a43191985bc9c27c746ce7986f01540e94", - "reference": "d59dc6a43191985bc9c27c746ce7986f01540e94", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "psr/log": "^1|^2|^3", - "symfony/config": "^6.2", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "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": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v6.2.12" - }, - "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": "2023-06-05T15:29:05+00:00" - }, - { - "name": "symfony/serializer", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/serializer.git", - "reference": "7be4b2fd8f385904887aa09ee08a4e4adee4c0d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/7be4b2fd8f385904887aa09ee08a4e4adee4c0d2", - "reference": "7be4b2fd8f385904887aa09ee08a4e4adee4c0d2", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<5.4", - "symfony/property-access": "<5.4", - "symfony/property-info": "<5.4", - "symfony/uid": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12|^2", - "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "symfony/cache": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/filesystem": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "symfony/uid": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0", - "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": { - "Symfony\\Component\\Serializer\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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.12" - }, - "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": "2023-05-30T17:07:47+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^2.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" - }, - "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-05-30T19:18:58+00:00" - }, - { - "name": "symfony/string", - "version": "v6.2.8", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" - }, - "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/var-exporter": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.2.8" - }, - "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": "2023-03-20T16:06:02+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v3.1.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/606be0f48e05116baef052f7f3abdb345c8e02cc", - "reference": "606be0f48e05116baef052f7f3abdb345c8e02cc", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.1.1" - }, - "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-06-27T17:24:16+00:00" - }, - { - "name": "symfony/validator", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "1c22c832e9415c381a7186618f0319cda6fd5618" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/1c22c832e9415c381a7186618f0319cda6fd5618", - "reference": "1c22c832e9415c381a7186618f0319cda6fd5618", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1|^2|^3" - }, - "conflict": { - "doctrine/annotations": "<1.13", - "doctrine/lexer": "<1.1", - "symfony/dependency-injection": "<5.4", - "symfony/expression-language": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/intl": "<5.4", - "symfony/property-info": "<5.4", - "symfony/translation": "<5.4", - "symfony/yaml": "<5.4" - }, - "require-dev": { - "doctrine/annotations": "^1.13|^2", - "egulias/email-validator": "^2.1.10|^3|^4", - "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/expression-language": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.4|^6.0", - "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": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to validate values", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/validator/tree/v6.2.12" - }, - "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": "2023-06-21T12:07:00+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "facbf30fe37f62e0ea50972467c08b7e80d22ed0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/facbf30fe37f62e0ea50972467c08b7e80d22ed0", - "reference": "facbf30fe37f62e0ea50972467c08b7e80d22ed0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "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" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.12" - }, - "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": "2023-06-20T21:12:34+00:00" - }, - { - "name": "symfony/var-exporter", - "version": "v6.2.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "9a07920c2058bafee921ce4d90aeef2193837d63" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/9a07920c2058bafee921ce4d90aeef2193837d63", - "reference": "9a07920c2058bafee921ce4d90aeef2193837d63", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "symfony/var-dumper": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\VarExporter\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Allows exporting any serializable PHP data structure to plain PHP code", - "homepage": "https://symfony.com", - "keywords": [ - "clone", - "construct", - "export", - "hydrate", - "instantiate", - "lazy-loading", - "proxy", - "serialize" - ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.2.10" - }, - "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": "2023-04-21T08:33:05+00:00" - }, - { - "name": "symfony/yaml", - "version": "v6.2.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/61916f3861b1e9705b18cfde723921a71dd1559d", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<5.4" - }, - "require-dev": { - "symfony/console": "^5.4|^6.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v6.2.10" - }, - "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": "2023-04-28T13:25:36+00:00" - }, - { - "name": "twig/twig", - "version": "v3.4.3", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58", - "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.4.3" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2022-09-28T08:42:51+00:00" - }, - { - "name": "vlucas/phpdotenv", - "version": "v5.5.0", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "shasum": "" - }, - "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" - }, - "suggest": { - "ext-filter": "Required to use the boolean validator." - }, - "type": "library", - "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": true - }, - "branch-alias": { - "dev-master": "5.5-dev" - } - }, - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" - } - ], - "time": "2022-10-16T01:01:54+00:00" - }, - { - "name": "webflo/drupal-finder", - "version": "1.2.2", - "source": { - "type": "git", - "url": "https://github.com/webflo/drupal-finder.git", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "reference": "c8e5dbe65caef285fec8057a4c718a0d4138d1ee", - "shasum": "" - }, - "require": { - "ext-json": "*" - }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/DrupalFinder.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Florian Weber", - "email": "florian@webflo.org" - } - ], - "description": "Helper class to locate a Drupal installation from a given path.", - "support": { - "issues": "https://github.com/webflo/drupal-finder/issues", - "source": "https://github.com/webflo/drupal-finder/tree/1.2.2" - }, - "time": "2020-10-27T09:42:17+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" - }, - { - "name": "webmozart/path-util", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\PathUtil\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "support": { - "issues": "https://github.com/webmozart/path-util/issues", - "source": "https://github.com/webmozart/path-util/tree/2.3.0" - }, - "abandoned": "symfony/filesystem", - "time": "2015-12-17T08:42:14+00:00" - }, - { - "name": "wikimedia/composer-merge-plugin", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/wikimedia/composer-merge-plugin.git", - "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/a03d426c8e9fb2c9c569d9deeb31a083292788bc", - "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1||^2.0", - "php": ">=7.2.0" - }, - "require-dev": { - "composer/composer": "^1.1||^2.0", - "ext-json": "*", - "mediawiki/mediawiki-phan-config": "0.11.1", - "php-parallel-lint/php-parallel-lint": "~1.3.1", - "phpspec/prophecy": "~1.15.0", - "phpunit/phpunit": "^8.5||^9.0", - "squizlabs/php_codesniffer": "~3.7.1" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "class": "Wikimedia\\Composer\\Merge\\V2\\MergePlugin" - }, - "autoload": { - "psr-4": { - "Wikimedia\\Composer\\Merge\\V2\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bryan Davis", - "email": "bd808@wikimedia.org" - } - ], - "description": "Composer plugin to merge multiple composer.json files", - "support": { - "issues": "https://github.com/wikimedia/composer-merge-plugin/issues", - "source": "https://github.com/wikimedia/composer-merge-plugin/tree/v2.1.0" - }, - "time": "2023-04-15T19:07:00+00:00" - } - ], - "packages-dev": [ - { - "name": "behat/behat", - "version": "v3.13.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Behat.git", - "reference": "9dd7cdb309e464ddeab095cd1a5151c2dccba4ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/9dd7cdb309e464ddeab095cd1a5151c2dccba4ab", - "reference": "9dd7cdb309e464ddeab095cd1a5151c2dccba4ab", - "shasum": "" - }, - "require": { - "behat/gherkin": "^4.9.0", - "behat/transliterator": "^1.2", - "ext-mbstring": "*", - "php": "^7.2 || ^8.0", - "psr/container": "^1.0 || ^2.0", - "symfony/config": "^4.4 || ^5.0 || ^6.0", - "symfony/console": "^4.4 || ^5.0 || ^6.0", - "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", - "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", - "symfony/translation": "^4.4 || ^5.0 || ^6.0", - "symfony/yaml": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "herrera-io/box": "~1.6.1", - "phpspec/prophecy": "^1.15", - "phpunit/phpunit": "^8.5 || ^9.0", - "symfony/process": "^4.4 || ^5.0 || ^6.0", - "vimeo/psalm": "^4.8" - }, - "suggest": { - "ext-dom": "Needed to output test results in JUnit format." - }, - "bin": [ - "bin/behat" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Hook\\": "src/Behat/Hook/", - "Behat\\Step\\": "src/Behat/Step/", - "Behat\\Behat\\": "src/Behat/Behat/", - "Behat\\Testwork\\": "src/Behat/Testwork/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Scenario-oriented BDD framework for PHP", - "homepage": "http://behat.org/", - "keywords": [ - "Agile", - "BDD", - "ScenarioBDD", - "Scrum", - "StoryBDD", - "User story", - "business", - "development", - "documentation", - "examples", - "symfony", - "testing" - ], - "support": { - "issues": "https://github.com/Behat/Behat/issues", - "source": "https://github.com/Behat/Behat/tree/v3.13.0" - }, - "time": "2023-04-18T15:40:53+00:00" - }, - { - "name": "behat/gherkin", - "version": "v4.9.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", - "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", - "shasum": "" - }, - "require": { - "php": "~7.2|~8.0" - }, - "require-dev": { - "cucumber/cucumber": "dev-gherkin-22.0.0", - "phpunit/phpunit": "~8|~9", - "symfony/yaml": "~3|~4|~5" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Gherkin DSL parser for PHP", - "homepage": "http://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" - ], - "support": { - "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/v4.9.0" - }, - "time": "2021-10-12T13:05:09+00:00" - }, - { - "name": "behat/mink", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "19e58905632e7cfdc5b2bafb9b950a3521af32c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/19e58905632e7cfdc5b2bafb9b950a3521af32c5", - "reference": "19e58905632e7cfdc5b2bafb9b950a3521af32c5", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "symfony/css-selector": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.22 || ^9.5.11", - "symfony/error-handler": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.4 || ^6.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "fast headless driver for any app without JS emulation", - "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", - "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)", - "dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "https://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" - ], - "support": { - "issues": "https://github.com/minkphp/Mink/issues", - "source": "https://github.com/minkphp/Mink/tree/v1.10.0" - }, - "time": "2022-03-28T14:22:43+00:00" - }, - { - "name": "behat/mink-browserkit-driver", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "d2768e6c17b293d86d8fcff54cbb9e6ad938fee1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/d2768e6c17b293d86d8fcff54cbb9e6ad938fee1", - "reference": "d2768e6c17b293d86d8fcff54cbb9e6ad938fee1", - "shasum": "" - }, - "require": { - "behat/mink": "^1.9.0@dev", - "php": ">=7.2", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", - "symfony/dom-crawler": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "^8.5 || ^9.5", - "symfony/error-handler": "^4.4 || ^5.0 || ^6.0", - "symfony/http-client": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", - "symfony/mime": "^4.4 || ^5.0 || ^6.0", - "yoast/phpunit-polyfills": "^1.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" - ], - "support": { - "issues": "https://github.com/minkphp/MinkBrowserKitDriver/issues", - "source": "https://github.com/minkphp/MinkBrowserKitDriver/tree/v2.1.0" - }, - "time": "2022-03-28T14:33:51+00:00" - }, - { - "name": "behat/mink-goutte-driver", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "a60fba46520c17d39b839151831cbc0710764b56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/a60fba46520c17d39b839151831cbc0710764b56", - "reference": "a60fba46520c17d39b839151831cbc0710764b56", - "shasum": "" - }, - "require": { - "behat/mink-browserkit-driver": "^2.0@dev", - "fabpot/goutte": "^4.0", - "php": ">=7.2" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "symfony/error-handler": "^4.4 || ^5.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Goutte driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "browser", - "goutte", - "headless", - "testing" - ], - "support": { - "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" - }, - { - "name": "behat/mink-selenium2-driver", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "e5f8421654930da725499fb92983e6948c6f973e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/e5f8421654930da725499fb92983e6948c6f973e", - "reference": "e5f8421654930da725499fb92983e6948c6f973e", - "shasum": "" - }, - "require": { - "behat/mink": "^1.9@dev", - "ext-json": "*", - "instaclick/php-webdriver": "^1.4", - "php": ">=7.2" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "^8.5.22 || ^9.5.11", - "symfony/error-handler": "^4.4 || ^5.0" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Pete Otaqui", - "email": "pete@otaqui.com", - "homepage": "https://github.com/pete-otaqui" - }, - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - } - ], - "description": "Selenium2 (WebDriver) driver for Mink framework", - "homepage": "https://mink.behat.org/", - "keywords": [ - "ajax", - "browser", - "javascript", - "selenium", - "testing", - "webdriver" - ], - "support": { - "issues": "https://github.com/minkphp/MinkSelenium2Driver/issues", - "source": "https://github.com/minkphp/MinkSelenium2Driver/tree/v1.6.0" - }, - "time": "2022-03-28T14:55:17+00:00" - }, - { - "name": "behat/transliterator", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Transliterator.git", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0", - "phpunit/phpunit": "^8.5.25 || ^9.5.19" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Transliterator\\": "src/Behat/Transliterator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Artistic-1.0" - ], - "description": "String transliterator", - "keywords": [ - "i18n", - "slug", - "transliterator" - ], - "support": { - "issues": "https://github.com/Behat/Transliterator/issues", - "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" - }, - "time": "2022-03-30T09:27:43+00:00" - }, - { - "name": "composer/ca-bundle", - "version": "1.3.6", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "90d087e988ff194065333d16bc5cf649872d9cdb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/90d087e988ff194065333d16bc5cf649872d9cdb", - "reference": "90d087e988ff194065333d16bc5cf649872d9cdb", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "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.6" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-06-06T12:02:59+00:00" - }, - { - "name": "composer/class-map-generator", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/composer/class-map-generator.git", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", - "shasum": "" - }, - "require": { - "composer/pcre": "^2.1 || ^3.1", - "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" - }, - "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\ClassMapGenerator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Utilities to scan PHP code and generate class maps.", - "keywords": [ - "classmap" - ], - "support": { - "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-06-30T13:58:57+00:00" - }, - { - "name": "composer/composer", - "version": "2.5.8", - "source": { - "type": "git", - "url": "https://github.com/composer/composer.git", - "reference": "4c516146167d1392c8b9b269bb7c24115d262164" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/4c516146167d1392c8b9b269bb7c24115d262164", - "reference": "4c516146167d1392c8b9b269bb7c24115d262164", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0", - "composer/class-map-generator": "^1.0", - "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.1 || ^3.1", - "composer/semver": "^3.0", - "composer/spdx-licenses": "^1.5.7", - "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8", - "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.2", - "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/polyfill-php73": "^1.24", - "symfony/polyfill-php80": "^1.24", - "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4 || ^6.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.9.3", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1", - "phpstan/phpstan-symfony": "^1.2.10", - "symfony/phpunit-bridge": "^6.0" - }, - "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" - }, - "bin": [ - "bin/composer" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "phpstan": { - "includes": [ - "phpstan/rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Composer\\": "src/Composer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "https://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", - "homepage": "https://getcomposer.org/", - "keywords": [ - "autoload", - "dependency", - "package" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.5.8" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2023-06-09T15:13:21+00:00" - }, - { - "name": "composer/metadata-minifier", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\MetadataMinifier\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Small utility library that handles metadata minification and expansion.", - "keywords": [ - "composer", - "compression" - ], - "support": { - "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-04-07T13:37:33+00:00" - }, - { - "name": "composer/pcre", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-11-17T09:50:14+00:00" - }, - { - "name": "composer/spdx-licenses", - "version": "1.5.7", - "source": { - "type": "git", - "url": "https://github.com/composer/spdx-licenses.git", - "reference": "c848241796da2abf65837d51dce1fae55a960149" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149", - "reference": "c848241796da2abf65837d51dce1fae55a960149", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Spdx\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "SPDX licenses list and validation library.", - "keywords": [ - "license", - "spdx", - "validator" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.7" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-05-23T07:37:50+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T21:32:43+00:00" - }, - { - "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v0.7.2", - "source": { - "type": "git", - "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" - }, - "require-dev": { - "composer/composer": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "phpcompatibility/php-compatibility": "^9.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" - }, - "autoload": { - "psr-4": { - "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" - }, - { - "name": "Contributors", - "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors" - } - ], - "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", - "keywords": [ - "PHPCodeSniffer", - "PHP_CodeSniffer", - "code quality", - "codesniffer", - "composer", - "installer", - "phpcbf", - "phpcs", - "plugin", - "qa", - "quality", - "standard", - "standards", - "style guide", - "stylecheck", - "tests" - ], - "support": { - "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", - "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" - }, - "time": "2022-02-04T12:51:07+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": "2023-06-03T09:27:29+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^9.5.27", - "vimeo/psalm": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:23:10+00:00" - }, - { - "name": "drevops/behat-format-progress-fail", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/drevops/behat-format-progress-fail.git", - "reference": "de8240e4e748d4a2bb2439db3d95d5027121ca73" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drevops/behat-format-progress-fail/zipball/de8240e4e748d4a2bb2439db3d95d5027121ca73", - "reference": "de8240e4e748d4a2bb2439db3d95d5027121ca73", - "shasum": "" - }, - "require": { - "behat/behat": "^3.3" - }, - "require-dev": { - "behat/mink": "^1.8", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "drevops/behat-phpserver": "^1", - "escapestudios/symfony2-coding-standard": "^3", - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "^3", - "symfony/process": "^5.3" - }, - "type": "library", - "autoload": { - "psr-0": { - "DrevOps\\BehatFormatProgressFail": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Alex Skrypnyk", - "email": "alex@integratedexperts.com" - } - ], - "description": "Behat output formatter to show progress as TAP and fails inline.", - "support": { - "issues": "https://github.com/drevops/behat-format-progress-fail/issues", - "source": "https://github.com/drevops/behat-format-progress-fail/tree/1.0.0" - }, - "funding": [ - { - "url": "https://www.patreon.com/alexskrypnyk", - "type": "patreon" - } - ], - "time": "2021-07-28T00:41:30+00:00" - }, - { - "name": "drevops/behat-screenshot", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/drevops/behat-screenshot.git", - "reference": "2f609f680a3dc19c64bdf1df6315a6fa457fe40f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drevops/behat-screenshot/zipball/2f609f680a3dc19c64bdf1df6315a6fa457fe40f", - "reference": "2f609f680a3dc19c64bdf1df6315a6fa457fe40f", - "shasum": "" - }, - "require": { - "behat/behat": "^3.3.1", - "behat/mink-selenium2-driver": "^1.3", - "symfony/finder": "^3.2|^4.0|^5.0|^6.0" - }, - "require-dev": { - "behat/mink": "^1.8", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "drevops/behat-phpserver": "^1", - "escapestudios/symfony2-coding-standard": "^3", - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "^3", - "symfony/process": "^5.3" - }, - "type": "library", - "autoload": { - "psr-0": { - "DrevOps\\BehatScreenshot": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Alex Skrypnyk", - "email": "alex@integratedexperts.com" - } - ], - "description": "Behat extension and step definitions to create HTML and image screenshots on demand or when tests fail", - "support": { - "issues": "https://github.com/drevops/behat-screenshot/issues", - "source": "https://github.com/drevops/behat-screenshot/tree/1.2.0" - }, - "funding": [ - { - "url": "https://www.patreon.com/alexskrypnyk", - "type": "patreon" - } - ], - "time": "2022-10-06T11:25:46+00:00" - }, - { - "name": "drevops/behat-steps", - "version": "1.5.3", - "source": { - "type": "git", - "url": "https://github.com/drevops/behat-steps.git", - "reference": "0e746db53cd79f1991fb489baff3309f75ba656d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drevops/behat-steps/zipball/0e746db53cd79f1991fb489baff3309f75ba656d", - "reference": "0e746db53cd79f1991fb489baff3309f75ba656d", - "shasum": "" - }, - "require": { - "behat/behat": "^3", - "cweagans/composer-patches": "^1.7", - "drupal/drupal-extension": "dev-feature/drupal-10 as 4.2.1-dev" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "drevops/behat-screenshot": "^1", - "drupal/coder": "^8.3", - "mglaman/drupal-check": "^1", - "palantirnet/drupal-rector": "^0.15", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpcompatibility/php-compatibility": "^9.3", - "phpunit/phpunit": "^8.5 || ^9.0", - "rector/rector": "0.15.13" - }, - "type": "library", - "extra": { - "enable-patching": true, - "branch-alias": { - "dev-master": "1.x-dev", - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "DrevOps\\BehatSteps\\": "src/", - "DrevOps\\BehatSteps\\D7\\": "src/D7/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Alex Skrypnyk", - "email": "alex@drevops.com" - } - ], - "description": "Collection of Behat traits", - "support": { - "issues": "https://github.com/drevops/behat-steps/issues", - "source": "https://github.com/drevops/behat-steps/tree/1.5.3" - }, - "funding": [ - { - "url": "https://www.patreon.com/alexskrypnyk", - "type": "patreon" - } - ], - "time": "2023-04-24T05:25:57+00:00" - }, - { - "name": "drupal/coder", - "version": "8.3.16", - "source": { - "type": "git", - "url": "https://github.com/pfrenssen/coder.git", - "reference": "d6f6112e5e84ff4f6baaada223c93dadbd6d3887" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pfrenssen/coder/zipball/d6f6112e5e84ff4f6baaada223c93dadbd6d3887", - "reference": "d6f6112e5e84ff4f6baaada223c93dadbd6d3887", - "shasum": "" - }, - "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", - "ext-mbstring": "*", - "php": ">=7.1", - "sirbrillig/phpcs-variable-analysis": "^2.11.7", - "slevomat/coding-standard": "^7.0 || ^8.0", - "squizlabs/php_codesniffer": "^3.7.1", - "symfony/yaml": ">=3.4.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.7.12", - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "Drupal\\": "coder_sniffer/Drupal/", - "DrupalPractice\\": "coder_sniffer/DrupalPractice/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "description": "Coder is a library to review Drupal code.", - "homepage": "https://www.drupal.org/project/coder", - "keywords": [ - "code review", - "phpcs", - "standards" - ], - "support": { - "issues": "https://www.drupal.org/project/issues/coder", - "source": "https://www.drupal.org/project/coder" - }, - "time": "2022-08-20T17:31:46+00:00" - }, - { - "name": "drupal/core-dev", - "version": "10.0.10", - "source": { - "type": "git", - "url": "https://github.com/drupal/core-dev.git", - "reference": "bd56c4060c1bd968835073cdf359fc07f486d11d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drupal/core-dev/zipball/bd56c4060c1bd968835073cdf359fc07f486d11d", - "reference": "bd56c4060c1bd968835073cdf359fc07f486d11d", - "shasum": "" - }, - "require": { - "behat/mink": "^1.10", - "behat/mink-browserkit-driver": "^2.1", - "behat/mink-selenium2-driver": "^1.4", - "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.35", - "mikey179/vfsstream": "^1.6.11", - "phpspec/prophecy-phpunit": "^2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.10.1", - "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" - }, - "conflict": { - "webflo/drupal-core-require-dev": "*" - }, - "type": "metapackage", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "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.10" - }, - "time": "2023-06-16T16:18:48+00:00" - }, - { - "name": "drupal/drupal-driver", - "version": "dev-feature/drupal-10", - "source": { - "type": "git", - "url": "https://github.com/drevops/DrupalDriver.git", - "reference": "03ae7c9ea5a0071ea6d49a8868f5ad5ae0163bb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drevops/DrupalDriver/zipball/03ae7c9ea5a0071ea6d49a8868f5ad5ae0163bb6", - "reference": "03ae7c9ea5a0071ea6d49a8868f5ad5ae0163bb6", - "shasum": "" - }, - "require": { - "drupal/core-utility": "^8.4 || ^9 || ^10@beta", - "php": ">=7.4", - "symfony/dependency-injection": "~2.6|~3.0|~4.4|^6", - "symfony/process": "~2.5|~3.0|~4.4|^6" - }, - "conflict": { - "drupal/core": ">=8.0 <9.3" - }, - "require-dev": { - "composer/installers": "^2.1", - "dms/phpunit-arraysubset-asserts": "^0.4.0", - "drupal/coder": "~8.3.0", - "drupal/core-composer-scaffold": "^8.4 || ^9 || ^10@beta", - "drupal/core-recommended": "^8.4 || ^9 || ^10@beta", - "drupal/mailsystem": "^4.4", - "drush-ops/behat-drush-endpoint": "*", - "mglaman/drupal-check": "^1", - "mockery/mockery": "^1.5", - "palantirnet/drupal-rector": "^0.13", - "php-parallel-lint/php-parallel-lint": "^1.0", - "phpspec/phpspec": "~2.0 || ~4.0 || ~6.1 || dev-main", - "phpunit/phpunit": "~6.0 || ~7.0 || ^9", - "symfony/phpunit-bridge": "^6.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - }, - "installer-paths": { - "drupal/core": [ - "type:drupal-core" - ], - "drupal/modules/{$name}": [ - "type:drupal-module" - ] - }, - "drupal-scaffold": { - "locations": { - "web-root": "drupal/" - } - } - }, - "autoload": { - "psr-0": { - "Drupal\\Driver": "src/", - "Drupal\\Tests\\Driver": "tests/" - } - }, - "scripts": { - "test": [ - "composer validate --no-interaction", - "parallel-lint src spec tests", - "phpunit", - "phpspec run -f pretty --no-interaction", - "phpcs --standard=./phpcs-ruleset.xml .", - "./vendor/bin/drupal-check --drupal-root=drupal ./src/Drupal/Driver/Cores/Drupal8.php ./src/Drupal/Driver/Fields/Drupal8", - "cp ./vendor/palantirnet/drupal-rector/rector.php drupal/.", - "cd drupal && ../vendor/bin/rector process ../src/Drupal/Driver/Cores/Drupal8.php --dry-run", - "cd drupal && ../vendor/bin/rector process ../src/Drupal/Driver/Fields/Drupal8 --dry-run" - ] - }, - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com" - } - ], - "description": "A collection of reusable Drupal drivers", - "homepage": "http://github.com/jhedstrom/DrupalDriver", - "keywords": [ - "drupal", - "test", - "web" - ], - "support": { - "source": "https://github.com/drevops/DrupalDriver/tree/feature/drupal-10" - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/jhedstrom" - } - ], - "time": "2022-11-23T06:48:32+00:00" - }, - { - "name": "drupal/drupal-extension", - "version": "dev-feature/drupal-10", - "source": { - "type": "git", - "url": "https://github.com/drevops/drupalextension.git", - "reference": "02d13f78d379c45359d31788d62de3da24aa1a95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/drevops/drupalextension/zipball/02d13f78d379c45359d31788d62de3da24aa1a95", - "reference": "02d13f78d379c45359d31788d62de3da24aa1a95", - "shasum": "" - }, - "require": { - "behat/behat": "~3.2", - "behat/mink": "~1.5", - "behat/mink-goutte-driver": "~1|^2", - "behat/mink-selenium2-driver": "~1.1", - "cweagans/composer-patches": "^1.7", - "drupal/drupal-driver": "dev-feature/drupal-10 as 2.1.0-dev", - "friends-of-behat/mink-extension": "^2.7.2", - "symfony/browser-kit": "^3.4|~4.4|^6", - "symfony/dependency-injection": "~3.0|~4.4|^6", - "symfony/translation": "^3.4|~4.4|^6" - }, - "require-dev": { - "composer/installers": "^1.2|^2", - "drupal/coder": "^8.3", - "drupal/core-composer-scaffold": "^9.1|^10@beta", - "drupal/core-recommended": "^9.1|^10@beta", - "drush/drush": "^10.5|^11 ", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpspec/phpspec": "^4.0 || ^6.0 || ^7.0" - }, - "type": "behat-extension", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - }, - "installer-paths": { - "drupal/core": [ - "type:drupal-core" - ] - }, - "drupal-scaffold": { - "locations": { - "web-root": "drupal/" - } - } - }, - "autoload": { - "psr-0": { - "Drupal\\Drupal": "src/", - "Drupal\\Exception": "src/", - "Drupal\\DrupalExtension": "src/", - "Drupal\\MinkExtension": "src/" - } - }, - "scripts": { - "test": [ - "composer validate --no-interaction", - "parallel-lint src spec features fixtures", - "phpcs --standard=./phpcs-ruleset.xml -p", - "phpcs --standard=./phpcs-drupal-ruleset.xml -p", - "npm test", - "phpspec run -f pretty --no-interaction" - ] - }, - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com" - }, - { - "name": "Melissa Anderson", - "homepage": "https://github.com/eliza411" - }, - { - "name": "Pieter Frenssen", - "homepage": "https://github.com/pfrenssen" - } - ], - "description": "Drupal extension for Behat", - "homepage": "http://drupal.org/project/drupalextension", - "keywords": [ - "drupal", - "test", - "web" - ], - "support": { - "source": "https://github.com/drevops/drupalextension/tree/feature/drupal-10" - }, - "funding": [ - { - "type": "github", - "url": "https://github.com/jhedstrom" - } - ], - "time": "2022-10-26T03:33:38+00:00" - }, - { - "name": "fabpot/goutte", - "version": "v4.0.3", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "e3f28671c87a48a0f13ada1baea0d95acc2138c3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/e3f28671c87a48a0f13ada1baea0d95acc2138c3", - "reference": "e3f28671c87a48a0f13ada1baea0d95acc2138c3", - "shasum": "" - }, - "require": { - "php": ">=7.1.3", - "symfony/browser-kit": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^6.0" - }, - "type": "application", - "autoload": { - "psr-4": { - "Goutte\\": "Goutte" - }, - "exclude-from-classmap": [ - "Goutte/Tests" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "A simple PHP Web Scraper", - "homepage": "https://github.com/FriendsOfPHP/Goutte", - "keywords": [ - "scraper" - ], - "support": { - "issues": "https://github.com/FriendsOfPHP/Goutte/issues", - "source": "https://github.com/FriendsOfPHP/Goutte/tree/v4.0.3" - }, - "abandoned": "symfony/browser-kit", - "time": "2023-04-01T09:05:33+00:00" - }, - { - "name": "friends-of-behat/mink-extension", - "version": "v2.7.2", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfBehat/MinkExtension.git", - "reference": "ffc5ee88aa8e5b430f0c417adb3f0c943ffeafed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/ffc5ee88aa8e5b430f0c417adb3f0c943ffeafed", - "reference": "ffc5ee88aa8e5b430f0c417adb3f0c943ffeafed", - "shasum": "" - }, - "require": { - "behat/behat": "^3.0.5", - "behat/mink": "^1.5", - "php": ">=7.4", - "symfony/config": "^4.4 || ^5.0 || ^6.0" - }, - "replace": { - "behat/mink-extension": "self.version" - }, - "require-dev": { - "behat/mink-goutte-driver": "^1.1 || ^2.0", - "phpspec/phpspec": "^6.0 || ^7.0 || 7.1.x-dev" - }, - "type": "behat-extension", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Behat\\MinkExtension": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com" - }, - { - "name": "Christophe Coevoet", - "email": "stof@notk.org" - } - ], - "description": "Mink extension for Behat", - "homepage": "http://extensions.behat.org/mink", - "keywords": [ - "browser", - "gui", - "test", - "web" - ], - "support": { - "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.7.2" - }, - "time": "2022-10-17T07:23:22+00:00" - }, - { - "name": "instaclick/php-webdriver", - "version": "1.4.16", - "source": { - "type": "git", - "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606", - "reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.5", - "satooshi/php-coveralls": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "WebDriver": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Justin Bishop", - "email": "jubishop@gmail.com", - "role": "Developer" - }, - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "role": "Fork Maintainer" - } - ], - "description": "PHP WebDriver for Selenium 2", - "homepage": "http://instaclick.com/", - "keywords": [ - "browser", - "selenium", - "webdriver", - "webtest" - ], - "support": { - "issues": "https://github.com/instaclick/php-webdriver/issues", - "source": "https://github.com/instaclick/php-webdriver/tree/1.4.16" - }, - "time": "2022-10-28T13:30:35+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "5.2.12", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" - }, - "time": "2022-04-13T08:02:27+00:00" - }, - { - "name": "mglaman/phpstan-drupal", - "version": "1.1.36", - "source": { - "type": "git", - "url": "https://github.com/mglaman/phpstan-drupal.git", - "reference": "345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mglaman/phpstan-drupal/zipball/345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5", - "reference": "345f7babd0cfd1ef73bb856673a1cee5a0dbd6e5", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0", - "phpstan/phpstan": "^1.10.1", - "symfony/finder": "~3.4.5 ||^4.2 || ^5.0 || ^6.0", - "symfony/yaml": "~3.4.5 || ^4.2|| ^5.0 || ^6.0", - "webflo/drupal-finder": "^1.2" - }, - "require-dev": { - "behat/mink": "^1.8", - "composer/installers": "^1.9", - "drupal/core-recommended": "^8.8@alpha || ^9.0", - "drush/drush": "^9.6 || ^10.0 || ^11", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^6.5 || ^7.5 || ^8.0 || ^9", - "slevomat/coding-standard": "^7.1", - "squizlabs/php_codesniffer": "^3.3", - "symfony/phpunit-bridge": "^3.4.3 || ^4.4 || ^5.4 || ^6.0" - }, - "suggest": { - "jangregor/phpstan-prophecy": "Provides a prophecy/prophecy extension for phpstan/phpstan.", - "phpstan/phpstan-deprecation-rules": "For catching deprecations, especially in Drupal core.", - "phpstan/phpstan-phpunit": "PHPUnit extensions and rules for PHPStan." - }, - "type": "phpstan-extension", - "extra": { - "branch-alias": { - "dev-main": "1.0-dev" - }, - "installer-paths": { - "tests/fixtures/drupal/core": [ - "type:drupal-core" - ], - "tests/fixtures/drupal/libraries/{$name}": [ - "type:drupal-library" - ], - "tests/fixtures/drupal/modules/contrib/{$name}": [ - "type:drupal-module" - ], - "tests/fixtures/drupal/profiles/contrib/{$name}": [ - "type:drupal-profile" - ], - "tests/fixtures/drupal/themes/contrib/{$name}": [ - "type:drupal-theme" - ] - }, - "phpstan": { - "includes": [ - "extension.neon", - "rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "mglaman\\PHPStanDrupal\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Glaman", - "email": "nmd.matt@gmail.com" - } - ], - "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.36" - }, - "funding": [ - { - "url": "https://github.com/mglaman", - "type": "github" - }, - { - "url": "https://opencollective.com/phpstan-drupal", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/mglaman/phpstan-drupal", - "type": "tidelift" - } - ], - "time": "2023-06-28T20:24:39+00:00" - }, - { - "name": "mikey179/vfsstream", - "version": "v1.6.11", - "source": { - "type": "git", - "url": "https://github.com/bovigo/vfsStream.git", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-0": { - "org\\bovigo\\vfs\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Frank Kleine", - "homepage": "http://frankkleine.de/", - "role": "Developer" - } - ], - "description": "Virtual file system to mock the real file system in unit tests.", - "homepage": "http://vfs.bovigo.org/", - "support": { - "issues": "https://github.com/bovigo/vfsStream/issues", - "source": "https://github.com/bovigo/vfsStream/tree/master", - "wiki": "https://github.com/bovigo/vfsStream/wiki" - }, - "time": "2022-02-23T02:02:42+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.11.1", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2023-03-08T13:26:56+00:00" - }, - { - "name": "pdepend/pdepend", - "version": "2.14.0", - "source": { - "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1121d4b04af06e33e9659bac3a6741b91cab1de1", - "reference": "1121d4b04af06e33e9659bac3a6741b91cab1de1", - "shasum": "" - }, - "require": { - "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5|^6.0", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0", - "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0|^1.2.3", - "gregwar/rst": "^1.0", - "phpunit/phpunit": "^4.8.36|^5.7.27", - "squizlabs/php_codesniffer": "^2.0.0" - }, - "bin": [ - "src/bin/pdepend" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "PDepend\\": "src/main/php/PDepend" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "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.14.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", - "type": "tidelift" - } - ], - "time": "2023-05-26T13:15:18+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "php-parallel-lint/php-parallel-lint", - "version": "v1.3.2", - "source": { - "type": "git", - "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", - "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6483c9832e71973ed29cf71bd6b3f4fde438a9de", - "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=5.3.0" - }, - "replace": { - "grogy/php-parallel-lint": "*", - "jakub-onderka/php-parallel-lint": "*" - }, - "require-dev": { - "nette/tester": "^1.3 || ^2.0", - "php-parallel-lint/php-console-highlighter": "0.* || ^1.0", - "squizlabs/php_codesniffer": "^3.6" - }, - "suggest": { - "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet" - }, - "bin": [ - "parallel-lint" - ], - "type": "library", - "autoload": { - "classmap": [ - "./src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "ahoj@jakubonderka.cz" - } - ], - "description": "This tool check syntax of PHP files about 20x faster than serial check.", - "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", - "support": { - "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", - "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.2" - }, - "time": "2022-02-21T12:50:22+00:00" - }, - { - "name": "phpcompatibility/php-compatibility", - "version": "9.3.5", - "source": { - "type": "git", - "url": "https://github.com/PHPCompatibility/PHPCompatibility.git", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243", - "reference": "9fb324479acf6f39452e0655d2429cc0d3914243", - "shasum": "" - }, - "require": { - "php": ">=5.3", - "squizlabs/php_codesniffer": "^2.3 || ^3.0.2" - }, - "conflict": { - "squizlabs/php_codesniffer": "2.6.2" - }, - "require-dev": { - "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.", - "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues." - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Wim Godden", - "homepage": "https://github.com/wimg", - "role": "lead" - }, - { - "name": "Juliette Reinders Folmer", - "homepage": "https://github.com/jrfnl", - "role": "lead" - }, - { - "name": "Contributors", - "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors" - } - ], - "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.", - "homepage": "http://techblog.wimgodden.be/tag/codesniffer/", - "keywords": [ - "compatibility", - "phpcs", - "standards" - ], - "support": { - "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", - "source": "https://github.com/PHPCompatibility/PHPCompatibility" - }, - "time": "2019-12-27T09:44:58+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.7.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "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.2" - }, - "time": "2023-05-30T18:13:47+00:00" - }, - { - "name": "phpmd/phpmd", - "version": "2.13.0", - "source": { - "type": "git", - "url": "https://github.com/phpmd/phpmd.git", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3", - "shasum": "" - }, - "require": { - "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", - "ext-xml": "*", - "pdepend/pdepend": "^2.12.1", - "php": ">=5.3.9" - }, - "require-dev": { - "easy-doc/easy-doc": "0.0.0 || ^1.3.2", - "ext-json": "*", - "ext-simplexml": "*", - "gregwar/rst": "^1.0", - "mikey179/vfsstream": "^1.6.8", - "phpunit/phpunit": "^4.8.36 || ^5.7.27", - "squizlabs/php_codesniffer": "^2.0" - }, - "bin": [ - "src/bin/phpmd" - ], - "type": "library", - "autoload": { - "psr-0": { - "PHPMD\\": "src/main/php" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Manuel Pichler", - "email": "github@manuel-pichler.de", - "homepage": "https://github.com/manuelpichler", - "role": "Project Founder" - }, - { - "name": "Marc Würth", - "email": "ravage@bluewin.ch", - "homepage": "https://github.com/ravage84", - "role": "Project Maintainer" - }, - { - "name": "Other contributors", - "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", - "role": "Contributors" - } - ], - "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", - "homepage": "https://phpmd.org/", - "keywords": [ - "mess detection", - "mess detector", - "pdepend", - "phpmd", - "pmd" - ], - "support": { - "irc": "irc://irc.freenode.org/phpmd", - "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.13.0" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", - "type": "tidelift" - } - ], - "time": "2022-09-10T08:44:15+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.17.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/15873c65b207b07765dbc3c95d20fdf4a320cbe2", - "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2 || ^2.0", - "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.17.0" - }, - "time": "2023-02-02T15:41:36+00:00" - }, - { - "name": "phpspec/prophecy-phpunit", - "version": "v2.0.2", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy-phpunit.git", - "reference": "9f26c224a2fa335f33e6666cc078fbf388255e87" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/9f26c224a2fa335f33e6666cc078fbf388255e87", - "reference": "9f26c224a2fa335f33e6666cc078fbf388255e87", - "shasum": "" - }, - "require": { - "php": "^7.3 || ^8", - "phpspec/prophecy": "^1.3", - "phpunit/phpunit": "^9.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\PhpUnit\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christophe Coevoet", - "email": "stof@notk.org" - } - ], - "description": "Integrating the Prophecy mocking library in PHPUnit test cases", - "homepage": "http://phpspec.net", - "keywords": [ - "phpunit", - "prophecy" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy-phpunit/issues", - "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.2" - }, - "time": "2023-04-18T11:58:05+00:00" - }, - { - "name": "phpstan/extension-installer", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/phpstan/extension-installer.git", - "reference": "f45734bfb9984c6c56c4486b71230355f066a58a" - }, - "dist": { - "type": "zip", - "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.9.0" - }, - "require-dev": { - "composer/composer": "^2.0", - "php-parallel-lint/php-parallel-lint": "^1.2.0", - "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0" - }, - "type": "composer-plugin", - "extra": { - "class": "PHPStan\\ExtensionInstaller\\Plugin" - }, - "autoload": { - "psr-4": { - "PHPStan\\ExtensionInstaller\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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.1" - }, - "time": "2023-05-24T08:59:17+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "1.22.1", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "65c39594fbd8c67abfc68bb323f86447bab79cc0" - }, - "dist": { - "type": "zip", - "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", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "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.22.1" - }, - "time": "2023-06-29T20:46:06+00:00" - }, - { - "name": "phpstan/phpstan", - "version": "1.10.25", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "578f4e70d117f9a90699324c555922800ac38d8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/578f4e70d117f9a90699324c555922800ac38d8c", - "reference": "578f4e70d117f9a90699324c555922800ac38d8c", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" - } - ], - "time": "2023-07-06T12:11:37+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.26", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-03-06T12:58:08+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-12-02T12:48:52+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.10", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a6d351645c3fe5a30f5e86be6577d946af65a328", - "reference": "a6d351645c3fe5a30f5e86be6577d946af65a328", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "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.10" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2023-07-10T04:04:23+00:00" - }, - { - "name": "pyrech/composer-changelogs", - "version": "v1.8.2", - "source": { - "type": "git", - "url": "https://github.com/pyrech/composer-changelogs.git", - "reference": "a8df6ab2aff265c4950146c1c779efac9db4497f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pyrech/composer-changelogs/zipball/a8df6ab2aff265c4950146c1c779efac9db4497f", - "reference": "a8df6ab2aff265c4950146c1c779efac9db4497f", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": ">=7.1.0" - }, - "require-dev": { - "composer/composer": "^1.0.0-alpha10@dev || ^2.0@dev", - "composer/semver": "^1.2 || ^2.0 || ^3.2", - "friendsofphp/php-cs-fixer": "^3.0", - "symfony/phpunit-bridge": "^5.2" - }, - "type": "composer-plugin", - "extra": { - "class": "Pyrech\\ComposerChangelogs\\ChangelogsPlugin" - }, - "autoload": { - "psr-4": { - "Pyrech\\ComposerChangelogs\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Loïck Piera", - "email": "pyrech@gmail.com" - } - ], - "description": "Display changelogs after each composer update", - "keywords": [ - "changelog", - "composer", - "plugin", - "update" - ], - "support": { - "issues": "https://github.com/pyrech/composer-changelogs/issues", - "source": "https://github.com/pyrech/composer-changelogs/tree/v1.8.2" - }, - "time": "2022-11-08T22:37:12+00:00" - }, - { - "name": "react/promise", - "version": "v2.10.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", - "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.10.0" - }, - "funding": [ - { - "url": "https://opencollective.com/reactphp", - "type": "open_collective" - } - ], - "time": "2023-05-02T15:15:43+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:41:17+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:52:27+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": "sebastian/environment", - "version": "5.1.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "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": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T06:03:37+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-02-14T08:28:10+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-28T06:42:11+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "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": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "seld/jsonlint", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/594fd6462aad8ecee0b45ca5045acea4776667f1", - "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.10.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], - "time": "2023-05-11T13:16:46+00:00" - }, - { - "name": "seld/phar-utils", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\PharUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "PHAR file format utilities, for when PHP phars you up", - "keywords": [ - "phar" - ], - "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" - }, - "time": "2022-08-31T10:31:18+00:00" - }, - { - "name": "seld/signal-handler", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/signal-handler.git", - "reference": "f69d119511dc0360440cdbdaa71829c149b7be75" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75", - "reference": "f69d119511dc0360440cdbdaa71829c149b7be75", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "require-dev": { - "phpstan/phpstan": "^1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^7.5.20 || ^8.5.23", - "psr/log": "^1 || ^2 || ^3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\Signal\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", - "keywords": [ - "posix", - "sigint", - "signal", - "sigterm", - "unix" - ], - "support": { - "issues": "https://github.com/Seldaek/signal-handler/issues", - "source": "https://github.com/Seldaek/signal-handler/tree/2.0.1" - }, - "time": "2022-07-20T18:31:45+00:00" - }, - { - "name": "sirbrillig/phpcs-variable-analysis", - "version": "v2.11.16", - "source": { - "type": "git", - "url": "https://github.com/sirbrillig/phpcs-variable-analysis.git", - "reference": "dc5582dc5a93a235557af73e523c389aac9a8e88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sirbrillig/phpcs-variable-analysis/zipball/dc5582dc5a93a235557af73e523c389aac9a8e88", - "reference": "dc5582dc5a93a235557af73e523c389aac9a8e88", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "squizlabs/php_codesniffer": "^3.5.6" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", - "phpcsstandards/phpcsdevcs": "^1.1", - "phpstan/phpstan": "^1.7", - "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.5 || ^7.0 || ^8.0 || ^9.0", - "sirbrillig/phpcs-import-detection": "^1.1", - "vimeo/psalm": "^0.2 || ^0.3 || ^1.1 || ^4.24 || ^5.0@beta" - }, - "type": "phpcodesniffer-standard", - "autoload": { - "psr-4": { - "VariableAnalysis\\": "VariableAnalysis/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Sam Graham", - "email": "php-codesniffer-variableanalysis@illusori.co.uk" - }, - { - "name": "Payton Swick", - "email": "payton@foolord.com" - } - ], - "description": "A PHPCS sniff to detect problems with variables.", - "keywords": [ - "phpcs", - "static analysis" - ], - "support": { - "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", - "source": "https://github.com/sirbrillig/phpcs-variable-analysis", - "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" - }, - "time": "2023-03-31T16:46:32+00:00" - }, - { - "name": "slevomat/coding-standard", - "version": "7.2.1", - "source": { - "type": "git", - "url": "https://github.com/slevomat/coding-standard.git", - "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/aff06ae7a84e4534bf6f821dc982a93a5d477c90", - "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90", - "shasum": "" - }, - "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.5.1", - "squizlabs/php_codesniffer": "^3.6.2" - }, - "require-dev": { - "phing/phing": "2.17.3", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.4.10|1.7.1", - "phpstan/phpstan-deprecation-rules": "1.0.0", - "phpstan/phpstan-phpunit": "1.0.0|1.1.1", - "phpstan/phpstan-strict-rules": "1.2.3", - "phpunit/phpunit": "7.5.20|8.5.21|9.5.20" - }, - "type": "phpcodesniffer-standard", - "extra": { - "branch-alias": { - "dev-master": "7.x-dev" - } - }, - "autoload": { - "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", - "support": { - "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/7.2.1" - }, - "funding": [ - { - "url": "https://github.com/kukulich", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", - "type": "tidelift" - } - ], - "time": "2022-05-25T10:58:12+00:00" - }, - { - "name": "squizlabs/php_codesniffer", - "version": "3.7.2", - "source": { - "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", - "shasum": "" - }, - "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" - }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Greg Sherwood", - "role": "lead" - } - ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", - "keywords": [ - "phpcs", - "standards", - "static analysis" - ], - "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" - }, - "time": "2023-02-22T23:07:41+00:00" - }, - { - "name": "symfony/browser-kit", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "0eb7228e7c435169e65c911ba8d107d56d850049" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0eb7228e7c435169e65c911ba8d107d56d850049", - "reference": "0eb7228e7c435169e65c911ba8d107d56d850049", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/dom-crawler": "^5.4|^6.0" - }, - "require-dev": { - "symfony/css-selector": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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.3.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": "2023-04-25T10:46:17+00:00" - }, - { - "name": "symfony/config", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a5e00dec161b08c946a2c16eed02adbeedf827ae", - "reference": "a5e00dec161b08c946a2c16eed02adbeedf827ae", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^5.4|^6.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "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": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "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.3.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": "2023-04-25T10:46:17+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", - "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Converts CSS selectors to XPath expressions", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.3.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": "2023-03-20T16:43:42+00:00" - }, - { - "name": "symfony/dom-crawler", - "version": "v6.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8aa333f41f05afc7fc285a976b58272fd90fc212", - "reference": "8aa333f41f05afc7fc285a976b58272fd90fc212", - "shasum": "" - }, - "require": { - "masterminds/html5": "^2.6", - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "symfony/css-selector": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases DOM navigation for HTML and XML documents", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v6.3.1" - }, - "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": "2023-06-05T15:30:22+00:00" - }, - { - "name": "symfony/http-client", - "version": "v6.2.12", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client.git", - "reference": "7ef37b91629937843e8f52a2da5587ff16d75d25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/7ef37b91629937843e8f52a2da5587ff16d75d25", - "reference": "7ef37b91629937843e8f52a2da5587ff16d75d25", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-client-contracts": "^3", - "symfony/service-contracts": "^1.0|^2|^3" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "3.0" - }, - "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", - "guzzlehttp/promises": "^1.4", - "nyholm/psr7": "^1.0", - "php-http/httplug": "^1.0|^2.0", - "php-http/message-factory": "^1.0", - "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", - "homepage": "https://symfony.com", - "keywords": [ - "http" - ], - "support": { - "source": "https://github.com/symfony/http-client/tree/v6.2.12" - }, - "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": "2023-06-24T11:48:11+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.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": "2023-05-23T14:45:45+00:00" - }, - { - "name": "symfony/lock", - "version": "v6.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/lock.git", - "reference": "2810c90ee87e76e0b6065cbf5c59f57b9825b536" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/2810c90ee87e76e0b6065cbf5c59f57b9825b536", - "reference": "2810c90ee87e76e0b6065cbf5c59f57b9825b536", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "doctrine/dbal": "<2.13", - "symfony/cache": "<6.2" - }, - "require-dev": { - "doctrine/dbal": "^2.13|^3.0", - "predis/predis": "^1.1|^2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Lock\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource", - "homepage": "https://symfony.com", - "keywords": [ - "cas", - "flock", - "locking", - "mutex", - "redlock", - "semaphore" - ], - "support": { - "source": "https://github.com/symfony/lock/tree/v6.3.1" - }, - "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": "2023-06-24T11:51:27+00:00" - }, - { - "name": "symfony/phpunit-bridge", - "version": "v6.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/0b0bf59b0d9bd1422145a123a67fb12af546ef0d", - "reference": "0b0bf59b0d9bd1422145a123a67fb12af546ef0d", - "shasum": "" - }, - "require": { - "php": ">=7.1.3" - }, - "conflict": { - "phpunit/phpunit": "<7.5|9.1.2" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/polyfill-php81": "^1.27" - }, - "bin": [ - "bin/simple-phpunit" - ], - "type": "symfony-bridge", - "extra": { - "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Bridge\\PhpUnit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "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": "Provides utilities for PHPUnit, especially user deprecation notices management", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.1" - }, - "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": "2023-06-23T13:25:16+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "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\\Php73\\": "" - }, - "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 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/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/translation", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" - }, - "dist": { - "type": "zip", - "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.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" - }, - "provide": { - "symfony/translation-implementation": "2.3|3.0" - }, - "require-dev": { - "nikic/php-parser": "^4.13", - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.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": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v6.3.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": "2023-05-19T12:46:45+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2021-07-28T10:34:58+00:00" - } - ], - "aliases": [ - { - "package": "drupal/drupal-extension", - "version": "dev-feature/drupal-10", - "alias": "4.2.1-dev", - "alias_normalized": "4.2.1.0-dev" - } - ], - "minimum-stability": "dev", - "stability-flags": { - "drupal/core-dev": 10, - "drupal/drupal-extension": 20, - "drupal/components": 10, - "drupal/linkit": 10, - "drupal/default_content": 15 - }, - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": ">=8.1" - }, - "platform-dev": [], - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.3.0" -} diff --git a/composer.json b/composer.json index 563ddbd54..4a5d2b163 100644 --- a/composer.json +++ b/composer.json @@ -1,34 +1,41 @@ { "name": "salsadigitalauorg/civictheme_source", - "description": "Drupal 9 implementation of CivicTheme Source for Salsa Digital", + "description": "Drupal 10 implementation of CivicTheme Source for Salsa Digital", "license": "proprietary", "require": { "php": ">=8.1", - "composer/installers": "^2", + "composer/installers": "^2.1", "cweagans/composer-patches": "^1.7", - "drupal/core-composer-scaffold": "^9", - "drupal/core-project-message": "^9", - "drupal/core-recommended": "^9", + "drupal/core": "^10", + "drupal/core-composer-scaffold": "^10", + "drupal/core-project-message": "^10", + "drupal/core-recommended": "^10", + "drupal/search_api": "1.29", "drush/drush": "^11", + "egulias/email-validator": "4.0.1 as 3.2.6", "oomphinc/composer-installers-extender": "^2.0", "vlucas/phpdotenv": "^5.1", "webflo/drupal-finder": "^1.2", + "webmozart/path-util": "^2.3", "wikimedia/composer-merge-plugin": "^2.0" }, "require-dev": { - "behat/behat": "^3.7", + "behat/behat": "^3.10", "dealerdirect/phpcodesniffer-composer-installer": "^0.7", "drevops/behat-format-progress-fail": "^1", "drevops/behat-screenshot": "^1", - "drevops/behat-steps": "^1.5", - "drupal/coder": "8.3.16", - "drupal/core-dev": "^9", - "drupal/drupal-extension": "dev-feature/drupal-10 as 4.2.1-dev", - "phpcompatibility/php-compatibility": "^9.0", - "phpmd/phpmd": "^2.12", - "phpspec/prophecy-phpunit": "^2", - "pyrech/composer-changelogs": "^1.7", - "slevomat/coding-standard": "8.5.2" + "drevops/behat-steps": "^2", + "drupal/core-dev": "^10", + "drupal/drupal-extension": "^5@rc", + "friendsoftwig/twigcs": "^6.2", + "mglaman/phpstan-drupal": "^1.2", + "palantirnet/drupal-rector": "dev-main", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcompatibility/php-compatibility": "^9.3", + "phpmd/phpmd": "^2.13", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.3", + "pyrech/composer-changelogs": "^1.8" }, "autoload": { "classmap": [ @@ -37,26 +44,25 @@ }, "autoload-dev": { "classmap": [ - "tests/phpunit/unit" + "tests/phpunit/" ] }, "config": { "platform": { - "php": "8.1.17" + "php": "8.1.0" }, "process-timeout": 0, "sort-packages": true, "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true, "composer/installers": true, "cweagans/composer-patches": true, + "dealerdirect/phpcodesniffer-composer-installer": true, "drupal/console-extend-plugin": true, "drupal/core-composer-scaffold": true, "drupal/core-project-message": true, "oomphinc/composer-installers-extender": true, - "pyrech/composer-changelogs": true, - "zaporylie/composer-drupal-optimizations": true, "phpstan/extension-installer": true, + "pyrech/composer-changelogs": true, "wikimedia/composer-merge-plugin": true } }, @@ -64,14 +70,6 @@ "drupal/drupal": "*" }, "repositories": { - "drupal/drupal-driver": { - "type": "vcs", - "url": "https://github.com/drevops/DrupalDriver" - }, - "drupal/drupal-extension": { - "type": "vcs", - "url": "https://github.com/drevops/drupalextension" - }, "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" @@ -101,12 +99,10 @@ "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" ], "post-install-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" + "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" ], "post-update-cmd": [ - "DrupalProject\\composer\\ScriptHandler::createRequiredFiles", - "Utilities\\composer\\DrupalSettings::create" + "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" ] }, "minimum-stability": "dev", @@ -118,13 +114,12 @@ }, "patches": { "drupal/core": { - "drupal_phpunit_find_extension_directories() uses infinite recursion ⇒ more directories = slower tests": "https://www.drupal.org/files/issues/2023-03-30/3249443-d-9-5-43.patch", "Builds failing on missing layout column plugin": "https://www.drupal.org/files/issues/2023-07-16/3204271-20-missing-layout-exception.patch" } }, "drupal-scaffold": { "locations": { - "web-root": "./docroot" + "web-root": "./web" }, "file-mapping": { "[project-root]/.editorconfig": false, @@ -134,7 +129,6 @@ "[web-root]/example.gitignore": false, "[web-root]/INSTALL.txt": false, "[web-root]/README.txt": false, - "[web-root]/robots.txt": false, "[web-root]/sites/example.settings.local.php": false, "[web-root]/sites/example.sites.php": false, "[web-root]/web.config": false @@ -142,54 +136,61 @@ }, "enable-patching": true, "installer-paths": { - "docroot/core": [ + "web/core": [ "type:drupal-core" ], - "docroot/libraries/{$name}": [ + "web/libraries/{$name}": [ "type:drupal-library", "type:bower-asset", "type:npm-asset" ], - "docroot/modules/contrib/{$name}": [ + "web/modules/contrib/{$name}": [ "type:drupal-module" ], - "docroot/profiles/contrib/{$name}": [ + "web/profiles/contrib/{$name}": [ "type:drupal-profile" ], - "docroot/themes/contrib/{$name}": [ + "web/themes/contrib/{$name}": [ "type:drupal-theme" ], "drush/Commands/contrib/{$name}": [ "type:drupal-drush" + ], + "web/modules/custom/{$name}": [ + "type:drupal-custom-module" + ], + "web/themes/custom/{$name}": [ + "type:drupal-custom-theme" ] }, "installer-types": [ "bower-asset", - "npm-asset" + "npm-asset", + "drupal-library" ], "preserve-paths": [ - "docroot/modules/custom", - "docroot/themes/custom", - "docroot/themes/contrib/civictheme", - "docroot/drush", - "docroot/sites/default/settings.php", - "docroot/sites/default/services.yml", - "docroot/sites/default/default.settings.local.php", - "docroot/sites/default/default.services.local.yml", - "docroot/sites/default/settings.local.php", - "docroot/sites/default/services.local.yml", - "docroot/sites/default/files", - "docroot/robots.txt", - "docroot/.htaccess" + "web/modules/custom", + "web/themes/custom", + "web/themes/contrib/civictheme", + "web/drush", + "web/sites/default/settings.php", + "web/sites/default/services.yml", + "web/sites/default/default.settings.local.php", + "web/sites/default/default.services.local.yml", + "web/sites/default/settings.local.php", + "web/sites/default/services.local.yml", + "web/sites/default/files", + "web/robots.txt", + "web/.htaccess" ], "merge-plugin": { "require": [ - "docroot/themes/contrib/civictheme/composer.json", - "docroot/modules/custom/civictheme_govcms/composer.json", - "docroot/modules/custom/civictheme_admin/composer.json", - "docroot/modules/custom/civictheme_content/composer.json", - "docroot/modules/custom/civictheme_dev/composer.json", - "docroot/modules/custom/cs_generated_content/composer.json" + "web/themes/contrib/civictheme/composer.json", + "web/modules/custom/civictheme_govcms/composer.json", + "web/modules/custom/civictheme_admin/composer.json", + "web/modules/custom/civictheme_content/composer.json", + "web/modules/custom/civictheme_dev/composer.json", + "web/modules/custom/cs_generated_content/composer.json" ], "recurse": true, "replace": false, diff --git a/composer.lock b/composer.lock index 99d892673..58a386120 100644 --- a/composer.lock +++ b/composer.lock @@ -4,40 +4,40 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "87c4e94ef95401c2e996b5f7fb9410c8", + "content-hash": "f994b8b1314a70aa075d43a78edb82f2", "packages": [ { "name": "asm89/stack-cors", - "version": "1.3.0", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/asm89/stack-cors.git", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08" + "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", + "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" + "php": "^7.2|^8.0", + "symfony/http-foundation": "^4|^5|^6", + "symfony/http-kernel": "^4|^5|^6" }, "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8.10", - "squizlabs/php_codesniffer": "^2.3" + "phpunit/phpunit": "^7|^9", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { - "Asm89\\Stack\\": "src/Asm89/Stack/" + "Asm89\\Stack\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -58,22 +58,22 @@ ], "support": { "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/1.3.0" + "source": "https://github.com/asm89/stack-cors/tree/v2.1.1" }, - "time": "2019-12-24T22:41:47+00:00" + "time": "2022-01-18T09:12:03+00:00" }, { "name": "caxy/php-htmldiff", - "version": "v0.1.14", + "version": "v0.1.15", "source": { "type": "git", "url": "https://github.com/caxy/php-htmldiff.git", - "reference": "3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5" + "reference": "6342b02ddb86fd36093ad7e2db2efc21f01ab7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/caxy/php-htmldiff/zipball/3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5", - "reference": "3f8ee7edda3d7c6d2e58a02d70a12d3242c84ea5", + "url": "https://api.github.com/repos/caxy/php-htmldiff/zipball/6342b02ddb86fd36093ad7e2db2efc21f01ab7cd", + "reference": "6342b02ddb86fd36093ad7e2db2efc21f01ab7cd", "shasum": "" }, "require": { @@ -119,9 +119,9 @@ ], "support": { "issues": "https://github.com/caxy/php-htmldiff/issues", - "source": "https://github.com/caxy/php-htmldiff/tree/v0.1.14" + "source": "https://github.com/caxy/php-htmldiff/tree/v0.1.15" }, - "time": "2022-01-19T11:09:59+00:00" + "time": "2023-11-05T23:49:04+00:00" }, { "name": "chi-teck/drupal-code-generator", @@ -846,22 +846,22 @@ }, { "name": "consolidation/log", - "version": "2.1.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/consolidation/log.git", - "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9" + "reference": "caaad9d70dae54eb49002666f000e3c607066878" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/log/zipball/3ad08dc57e8aff9400111bad36beb0ed387fe6a9", - "reference": "3ad08dc57e8aff9400111bad36beb0ed387fe6a9", + "url": "https://api.github.com/repos/consolidation/log/zipball/caaad9d70dae54eb49002666f000e3c607066878", + "reference": "caaad9d70dae54eb49002666f000e3c607066878", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "^1 || ^2", - "symfony/console": "^4 || ^5 || ^6" + "php": ">=8.0.0", + "psr/log": "^3", + "symfony/console": "^5 || ^6" }, "require-dev": { "phpunit/phpunit": ">=7.5.20", @@ -892,9 +892,9 @@ "description": "Improved Psr-3 / Psr\\Log logger based on Symfony Console components.", "support": { "issues": "https://github.com/consolidation/log/issues", - "source": "https://github.com/consolidation/log/tree/2.1.1" + "source": "https://github.com/consolidation/log/tree/3.0.0" }, - "time": "2022-02-24T04:27:32+00:00" + "time": "2022-04-05T16:53:32+00:00" }, { "name": "consolidation/output-formatters", @@ -952,32 +952,33 @@ }, { "name": "consolidation/robo", - "version": "4.0.2", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/consolidation/robo.git", - "reference": "ccf80963abf11bdb8e90659aa99a7449b21e9452" + "reference": "55a272370940607649e5c46eb173c5c54f7c166d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/robo/zipball/ccf80963abf11bdb8e90659aa99a7449b21e9452", - "reference": "ccf80963abf11bdb8e90659aa99a7449b21e9452", + "url": "https://api.github.com/repos/consolidation/robo/zipball/55a272370940607649e5c46eb173c5c54f7c166d", + "reference": "55a272370940607649e5c46eb173c5c54f7c166d", "shasum": "" }, "require": { - "consolidation/annotated-command": "^4.3", - "consolidation/config": "^1.2.1 || ^2.0.1", - "consolidation/log": "^1.1.1 || ^2.0.2", + "consolidation/annotated-command": "^4.8.1", + "consolidation/config": "^2.0.1", + "consolidation/log": "^2.0.2 || ^3", "consolidation/output-formatters": "^4.1.2", "consolidation/self-update": "^2.0", "league/container": "^3.3.1 || ^4.0", - "php": ">=7.1.3", - "symfony/console": "^4.4.19 || ^5 || ^6", - "symfony/event-dispatcher": "^4.4.19 || ^5 || ^6", - "symfony/filesystem": "^4.4.9 || ^5 || ^6", - "symfony/finder": "^4.4.9 || ^5 || ^6", - "symfony/process": "^4.4.9 || ^5 || ^6", - "symfony/yaml": "^4.4 || ^5 || ^6" + "php": ">=8.0", + "phpowermove/docblock": "^4.0", + "symfony/console": "^6", + "symfony/event-dispatcher": "^6", + "symfony/filesystem": "^6", + "symfony/finder": "^6", + "symfony/process": "^6", + "symfony/yaml": "^6" }, "conflict": { "codegyre/robo": "*" @@ -1000,33 +1001,6 @@ "robo" ], "type": "library", - "extra": { - "scenarios": { - "symfony4": { - "require": { - "symfony/console": "^4.4.11", - "symfony/event-dispatcher": "^4.4.11", - "symfony/filesystem": "^4.4.11", - "symfony/finder": "^4.4.11", - "symfony/process": "^4.4.11", - "phpunit/phpunit": "^6", - "nikic/php-parser": "^2" - }, - "remove": [ - "codeception/phpunit-wrapper" - ], - "config": { - "platform": { - "php": "7.1.3" - } - } - } - }, - "branch-alias": { - "dev-master": "2.x-dev", - "dev-main": "2.x-dev" - } - }, "autoload": { "psr-4": { "Robo\\": "src" @@ -1045,9 +1019,9 @@ "description": "Modern task runner", "support": { "issues": "https://github.com/consolidation/robo/issues", - "source": "https://github.com/consolidation/robo/tree/4.0.2" + "source": "https://github.com/consolidation/robo/tree/4.0.6" }, - "time": "2022-04-21T09:29:58+00:00" + "time": "2023-04-30T21:49:04+00:00" }, { "name": "consolidation/self-update", @@ -1106,24 +1080,23 @@ }, { "name": "consolidation/site-alias", - "version": "3.1.7", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/consolidation/site-alias.git", - "reference": "3b6519592c7e8557423f935806cd73adf69ed6c7" + "reference": "b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-alias/zipball/3b6519592c7e8557423f935806cd73adf69ed6c7", - "reference": "3b6519592c7e8557423f935806cd73adf69ed6c7", + "url": "https://api.github.com/repos/consolidation/site-alias/zipball/b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5", + "reference": "b0eeb8c8f3d54d072824ee31b5e00cb5181f91c5", "shasum": "" }, "require": { "consolidation/config": "^1.2.1 || ^2", - "php": ">=5.5.0", - "symfony/filesystem": "^4.4 || ^5.4 || ^6", - "symfony/finder": "~2.3 || ^3 || ^4.4 || ^5 || ^6", - "webmozart/path-util": "^2.3" + "php": ">=7.4", + "symfony/filesystem": "^5.4 || ^6", + "symfony/finder": "^5 || ^6" }, "require-dev": { "php-coveralls/php-coveralls": "^2.4.2", @@ -1135,7 +1108,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-main": "4.x-dev" } }, "autoload": { @@ -1160,40 +1133,39 @@ "description": "Manage alias records for local and remote sites.", "support": { "issues": "https://github.com/consolidation/site-alias/issues", - "source": "https://github.com/consolidation/site-alias/tree/3.1.7" + "source": "https://github.com/consolidation/site-alias/tree/4.0.1" }, - "time": "2022-10-15T01:21:09+00:00" + "time": "2023-04-29T17:18:10+00:00" }, { "name": "consolidation/site-process", - "version": "4.2.1", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/consolidation/site-process.git", - "reference": "ee3bf69001694b2117cc2f96c2ef70d8d45f1234" + "reference": "6c44638d7af8a8b4abe12c3180701243f480539d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/site-process/zipball/ee3bf69001694b2117cc2f96c2ef70d8d45f1234", - "reference": "ee3bf69001694b2117cc2f96c2ef70d8d45f1234", + "url": "https://api.github.com/repos/consolidation/site-process/zipball/6c44638d7af8a8b4abe12c3180701243f480539d", + "reference": "6c44638d7af8a8b4abe12c3180701243f480539d", "shasum": "" }, "require": { - "consolidation/config": "^1.2.1 || ^2", + "consolidation/config": "^2", "consolidation/site-alias": "^3 || ^4", - "php": ">=7.1.3", - "symfony/console": "^2.8.52 || ^3 || ^4.4 || ^5", - "symfony/process": "^4.3.4 || ^5" + "php": ">=8.0.14", + "symfony/console": "^5.4 || ^6", + "symfony/process": "^6" }, "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^8.5.14", - "squizlabs/php_codesniffer": "^3", - "yoast/phpunit-polyfills": "^0.2.0" + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.x-dev" + "dev-main": "5.x-dev" } }, "autoload": { @@ -1218,9 +1190,9 @@ "description": "A thin wrapper around the Symfony Process Component that allows applications to use the Site Alias library to specify the target for a remote call.", "support": { "issues": "https://github.com/consolidation/site-process/issues", - "source": "https://github.com/consolidation/site-process/tree/4.2.1" + "source": "https://github.com/consolidation/site-process/tree/5.2.0" }, - "time": "2022-10-18T13:19:35+00:00" + "time": "2022-12-06T17:57:16+00:00" }, { "name": "cweagans/composer-patches", @@ -1414,32 +1386,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": { @@ -1481,9 +1456,9 @@ ], "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": "2022-07-02T10:48:51+00:00" + "time": "2023-02-01T09:20:38+00:00" }, { "name": "doctrine/cache", @@ -2005,31 +1980,33 @@ }, { "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/", @@ -2061,7 +2038,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": [ { @@ -2077,7 +2054,7 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2022-12-14T08:49:07+00:00" }, { "name": "doctrine/persistence", @@ -2177,84 +2154,6 @@ ], "time": "2023-05-17T18:32:04+00:00" }, - { - "name": "doctrine/reflection", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7", - "reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0 || ^2.0", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "doctrine/common": "^3.3", - "phpstan/phpstan": "^1.4.10", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", - "keywords": [ - "reflection", - "static" - ], - "support": { - "issues": "https://github.com/doctrine/reflection/issues", - "source": "https://github.com/doctrine/reflection/tree/1.2.4" - }, - "abandoned": "roave/better-reflection", - "time": "2023-07-27T18:11:59+00:00" - }, { "name": "dropzone/dropzone", "version": "v5.7.2", @@ -2266,20 +2165,20 @@ }, { "name": "drupal/address", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/address.git", - "reference": "8.x-1.11" + "reference": "8.x-1.12" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/address-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "1cb40fb1a43e88041b888ac8fb6aa77a45ac85fb" + "url": "https://ftp.drupal.org/files/projects/address-8.x-1.12.zip", + "reference": "8.x-1.12", + "shasum": "67dd4699040aabf0cd6169e437706fa6a39b0b3a" }, "require": { - "commerceguys/addressing": "^1.4.0", + "commerceguys/addressing": "^1.4.2", "drupal/core": "^9.2 || ^10", "php": "^7.3 || ^8.0" }, @@ -2289,8 +2188,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.11", - "datestamp": "1659989858", + "version": "8.x-1.12", + "datestamp": "1684710176", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2339,17 +2238,17 @@ }, { "name": "drupal/admin_toolbar", - "version": "3.3.0", + "version": "3.4.2", "source": { "type": "git", "url": "https://git.drupalcode.org/project/admin_toolbar.git", - "reference": "3.3.0" + "reference": "3.4.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.3.0.zip", - "reference": "3.3.0", - "shasum": "8e61fba9c9d83a94a844cff96d00871878a7eb98" + "url": "https://ftp.drupal.org/files/projects/admin_toolbar-3.4.2.zip", + "reference": "3.4.2", + "shasum": "f5a008e5c73f5a11c6c8067c0ea6ebb76aa33854" }, "require": { "drupal/core": "^9.2 || ^10" @@ -2360,8 +2259,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "3.3.0", - "datestamp": "1669567837", + "version": "3.4.2", + "datestamp": "1696006195", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2418,109 +2317,6 @@ "issues": "https://www.drupal.org/project/issues/admin_toolbar" } }, - { - "name": "drupal/adminimal_admin_toolbar", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/adminimal_admin_toolbar.git", - "reference": "8.x-1.11" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/adminimal_admin_toolbar-8.x-1.11.zip", - "reference": "8.x-1.11", - "shasum": "913dd21e07dd60aa20807a2e0650e11b4c15cc17" - }, - "require": { - "drupal/admin_toolbar": "*", - "drupal/core": "^8 || ^9" - }, - "type": "drupal-module", - "extra": { - "drupal": { - "version": "8.x-1.11", - "datestamp": "1588102631", - "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": "Ted Slesinski", - "homepage": "https://www.drupal.org/u/energee" - } - ], - "description": "Adminimal styling brought to admin toolbar.", - "homepage": "https://www.drupal.org/project/adminimal_admin_toolbar", - "support": { - "source": "http://cgit.drupalcode.org/adminimal_admin_toolbar", - "issues": "https://www.drupal.org/project/issues/adminimal_admin_toolbar" - } - }, - { - "name": "drupal/adminimal_theme", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://git.drupalcode.org/project/adminimal_theme.git", - "reference": "8.x-1.6" - }, - "dist": { - "type": "zip", - "url": "https://ftp.drupal.org/files/projects/adminimal_theme-8.x-1.6.zip", - "reference": "8.x-1.6", - "shasum": "89132d0853388afe8dfd11fb83c69a48d8c13413" - }, - "require": { - "drupal/core": "^8.8 || ^9" - }, - "type": "drupal-theme", - "extra": { - "drupal": { - "version": "8.x-1.6", - "datestamp": "1602006937", - "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": "ANDiTKO", - "homepage": "https://www.drupal.org/user/1428124" - }, - { - "name": "andrey.troeglazov", - "homepage": "https://www.drupal.org/user/3145389" - }, - { - "name": "realityloop", - "homepage": "https://www.drupal.org/user/139189" - }, - { - "name": "rjjakes", - "homepage": "https://www.drupal.org/user/3457245" - } - ], - "description": "Drupal administration theme with modern minimalist design.", - "homepage": "https://www.drupal.org/project/adminimal_theme", - "support": { - "source": "https://git.drupalcode.org/project/adminimal_theme", - "issues": "https://www.drupal.org/project/issues/adminimal_theme" - } - }, { "name": "drupal/bigmenu", "version": "2.0.0-rc3", @@ -2571,26 +2367,26 @@ }, { "name": "drupal/captcha", - "version": "1.10.0", + "version": "2.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/captcha.git", - "reference": "8.x-1.10" + "reference": "2.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/captcha-8.x-1.10.zip", - "reference": "8.x-1.10", - "shasum": "17fb9e34d03409809e3afd03bbeb8cbb489e7d0a" + "url": "https://ftp.drupal.org/files/projects/captcha-2.0.5.zip", + "reference": "2.0.5", + "shasum": "0c39d27a99b53f6517ef25ceef1ac5e333964547" }, "require": { - "drupal/core": "^8.9 || ^9" + "drupal/core": ">=9.4 <11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-1.10", - "datestamp": "1680254570", + "version": "2.0.5", + "datestamp": "1691598525", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -2895,29 +2691,29 @@ }, { "name": "drupal/components", - "version": "2.4.0", + "version": "3.0.0-beta3", "source": { "type": "git", "url": "https://git.drupalcode.org/project/components.git", - "reference": "8.x-2.4" + "reference": "3.0.0-beta3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/components-8.x-2.4.zip", - "reference": "8.x-2.4", - "shasum": "9b083c2f845ff2e1a1632efcf24f88cecd7479cc" + "url": "https://ftp.drupal.org/files/projects/components-3.0.0-beta3.zip", + "reference": "3.0.0-beta3", + "shasum": "47ced4332f0a655ca38ae1b54e97a8e78d59f0bc" }, "require": { - "drupal/core": "^8.7.7 || ^9" + "drupal/core": "^9 || ^10" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.4", - "datestamp": "1618861606", + "version": "3.0.0-beta3", + "datestamp": "1651759488", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." } } }, @@ -3135,26 +2931,26 @@ }, { "name": "drupal/config_inspector", - "version": "2.1.4", + "version": "2.1.7", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_inspector.git", - "reference": "2.1.4" + "reference": "2.1.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_inspector-2.1.4.zip", - "reference": "2.1.4", - "shasum": "594b4b146422e313409fcb17c9fa358ee94b58bb" + "url": "https://ftp.drupal.org/files/projects/config_inspector-2.1.7.zip", + "reference": "2.1.7", + "shasum": "31ae3e429d23cf559c0e1ff55b4e41c45bb62797" }, "require": { - "drupal/core": "^9.2 || ^10" + "drupal/core": "^9.2 || ^10 || ^11" }, "type": "drupal-module", "extra": { "drupal": { - "version": "2.1.4", - "datestamp": "1697374163", + "version": "2.1.7", + "datestamp": "1698249898", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3202,26 +2998,26 @@ }, { "name": "drupal/config_perms", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_perms.git", - "reference": "8.x-2.0" + "reference": "8.x-2.1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_perms-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "3e30cd71f00cb6da04ed2c8b032a9bd5357d9d70" + "url": "https://ftp.drupal.org/files/projects/config_perms-8.x-2.1.zip", + "reference": "8.x-2.1", + "shasum": "06bc0d6587fba76149b4de7ccc32f6c6b8bc382a" }, "require": { - "drupal/core": "^8 || ^9" + "drupal/core": "^8 || ^9 || ^10" }, "type": "drupal-module", "extra": { "drupal": { - "version": "8.x-2.0", - "datestamp": "1591397577", + "version": "8.x-2.1", + "datestamp": "1685589568", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -3278,24 +3074,26 @@ }, { "name": "drupal/config_split", - "version": "1.5.0", + "version": "2.0.0-rc4", "source": { "type": "git", "url": "https://git.drupalcode.org/project/config_split.git", - "reference": "8.x-1.5" + "reference": "2.0.0-rc4" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/config_split-8.x-1.5.zip", - "reference": "8.x-1.5", - "shasum": "ea727dbe5cb4586bbc21afad61db26c65fe5ce49" + "url": "https://ftp.drupal.org/files/projects/config_split-2.0.0-rc4.zip", + "reference": "2.0.0-rc4", + "shasum": "d4c06efbadd34793b0c9b71772162057afa58111" }, "require": { - "drupal/config_filter": "^1||^2", - "drupal/core": "^8.8 || ^9" + "drupal/core": "^8.8 || ^9 || ^10" }, "conflict": { - "drupal/console": "<1.3.2" + "drush/drush": "<10" + }, + "require-dev": { + "drupal/config_filter": "^1||^2" }, "suggest": { "drupal/chosen": "Chosen uses the Chosen jQuery plugin to make the