diff --git a/.bp-config/options.json b/.bp-config/options.json new file mode 100644 index 0000000..566b5db --- /dev/null +++ b/.bp-config/options.json @@ -0,0 +1,11 @@ +{ + "COMPOSER_INSTALL_OPTIONS": [ + "--no-dev --optimize-autoloader --no-progress --no-interaction" + ], + "COMPOSER_VENDOR_DIR": "vendor", + "WEBDIR": "web", + "PHP_EXTENSIONS": ["bz2", "zlib", "curl", "mcrypt", "gd", "pdo", "pdo_mysql", "mbstring"], + "ADDITIONAL_PREPROCESS_CMDS": [ + "$HOME/bootstrap.sh" + ] +} diff --git a/.bp-config/php/php.ini.d/memory_limit.ini b/.bp-config/php/php.ini.d/memory_limit.ini new file mode 100644 index 0000000..8f744af --- /dev/null +++ b/.bp-config/php/php.ini.d/memory_limit.ini @@ -0,0 +1,3 @@ +; Maximum amount of memory a script may consume (128MB) +; http://php.net/memory-limit +memory_limit = 512M diff --git a/.cfignore b/.cfignore new file mode 100644 index 0000000..ede54e6 --- /dev/null +++ b/.cfignore @@ -0,0 +1,29 @@ +# Ignore directories generated by Composer +/drush/contrib/ +/vendor/ +/web/core/ +/web/modules/contrib/ +/web/themes/contrib/ +/web/profiles/contrib/ +/web/libraries/ + +# Typically, composer generates a .gitignore to ignore the +# `settings.php` files. For cloud.gov and Cloud Foundry, no sensitive +# information is stored in the settings files. Instead, those files +# have code that parses environment variables for DB and S3 +# +# Ignore sensitive information [This is a `composer` default] +# /web/sites/*/settings.php +# /web/sites/*/settings.local.php + + +# Ignore Drupal's file directory +/web/sites/*/files/ + +# Ignore SimpleTest multi-site environment. +/web/sites/simpletest + +# Ignore files generated by PhpStorm +/.idea/ + +.DS_Store \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5719176..69b6639 100644 --- a/.gitignore +++ b/.gitignore @@ -16,9 +16,18 @@ core # Core's dependencies are managed with Composer. vendor +# Ignore local versions of modules. +modules/* +web/modules/contrib/* +web/themes/contrib/* + +# Ignore local database dumps. +db_dumps + # Ignore configuration files that may contain sensitive information. -sites/*/settings*.php +sites/*/*settings*.php* sites/*/services*.yml +sites/default/default.services.* # Ignore paths that contain user-generated content. sites/*/files diff --git a/apt.yml b/apt.yml new file mode 100644 index 0000000..ac076e1 --- /dev/null +++ b/apt.yml @@ -0,0 +1,3 @@ +--- +packages: +- mysql-client \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..01db844 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -euo pipefail + +SECRETS=$(echo $VCAP_SERVICES | jq -r '.["user-provided"][] | select(.name == "secrets") | .credentials') + +install_drupal() { + ROOT_USER_NAME=$(echo $SECRETS | jq -r '.ROOT_USER_NAME') + ROOT_USER_PASS=$(echo $SECRETS | jq -r '.ROOT_USER_PASS') + + : "${ACCOUNT_NAME:?Need and root user name for Drupal}" + : "${ACCOUNT_PASS:?Need and root user pass for Drupal}" + + drupal site:install \ + --root=$HOME/web \ + --no-interaction \ + --account-name="$ROOT_USER_NAME" \ + --account-pass="$ROOT_USER_PASS" \ + --langcode="en" + # Delete some data created in the "standard" install profile + # See https://www.drupal.org/project/drupal/issues/2583113 + drupal --root=$HOME/web entity:delete shortcut_set default --no-interaction + # Set site uuid to match our config + UUID=$(grep uuid web/sites/default/config/system.site.yml | cut -d' ' -f2) + drupal --root=$HOME/web config:override system.site uuid $UUID +} + +if [ "${CF_INSTANCE_INDEX:-''}" == "0" ]; then + drupal --root=$HOME/web list | grep database > /dev/null || install_drupal + # Sync configs from code + drupal --root=$HOME/web config:import --directory $HOME/web/sites/default/config + + # Secrets + CRON_KEY=$(openssl rand -base64 32) # Not used, so we set it to a random val + BRIGHTCOVE_ACCOUNT=$(echo $SECRETS | jq -r '.BRIGHTCOVE_ACCOUNT') + BRIGHTCOVE_CLIENT=$(echo $SECRETS | jq -r '.BRIGHTCOVE_CLIENT') + BRIGHTCOVE_SECRET=$(echo $SECRETS | jq -r '.BRIGHTCOVE_SECRET') + drupal --root=$HOME/web config:override scheduler.settings lightweight_cron_access_key $CRON_KEY > /dev/null + drupal --root=$HOME/web config:override brightcove.brightcove_api_client.nsf_brightcove account_id $BRIGHTCOVE_ACCOUNT > /dev/null + drupal --root=$HOME/web config:override brightcove.brightcove_api_client.nsf_brightcove client_id $BRIGHTCOVE_CLIENT > /dev/null + drupal --root=$HOME/web config:override brightcove.brightcove_api_client.nsf_brightcove secret_key $BRIGHTCOVE_SECRET > /dev/null + + # Clear the cache + drupal --root=$HOME/web cache:rebuild --no-interaction +fi diff --git a/composer.json b/composer.json index 1a3ac52..cb54389 100644 --- a/composer.json +++ b/composer.json @@ -1,75 +1,88 @@ { - "name": "drupal/drupal", - "description": "Drupal is an open source content management platform powering millions of websites and applications.", + "name": "18f/nsf", + "description": "The National Science Foundation's beta site", "type": "project", "license": "GPL-2.0+", + "authors": [ + { + "name": "", + "role": "" + } + ], + "repositories": [ + { + "type": "composer", + "url": "https://packages.drupal.org/8" + } + ], "require": { - "composer/installers": "^1.0.24", - "wikimedia/composer-merge-plugin": "^1.4", - "drush/drush": "^9.1", - "drupal/features": "^3.5", + "php": "^7.1.0", + "composer/installers": "^1.2", + "cweagans/composer-patches": "^1.6", + "drupal-composer/drupal-scaffold": "^2.2", + "drupal/bootstrap": "^3.11", "drupal/brightcove": "^1.3", - "drupal/inline_entity_form": "^1.0@beta", - "drupal/time_formatter": "1.x-dev", - "drupal/entity_embed": "^1.0", + "drupal/console": "^1.0.2", + "drupal/core": "~8.4", + "drupal/ctools": "^3.0", + "drupal/devel": "^1.2", + "drupal/diff": "^1.0@RC", "drupal/embed": "^1.0", "drupal/entity_browser": "^2.0", - "drupal/ctools": "^3.0", - "drupal/media_entity": "^1.7" + "drupal/entity_embed": "^1.0@beta", + "drupal/features": "^3.5", + "drupal/flysystem_s3": "^1.0@alpha", + "drupal/inline_entity_form": "^1.0@beta", + "drupal/masquerade": "^2.0@beta", + "drupal/media_entity": "^1.7", + "drupal/pathauto": "^1.1", + "drupal/rules": "^3.0@alpha", + "drupal/scheduler": "^1.0", + "drupal/time_formatter": "1.x-dev", + "drupal/tour_ui": "^1.0@alpha", + "drupal/workflow": "^1.0", + "drush/drush": "~8.0|^9.0.0-beta8", + "webflo/drupal-finder": "^1.0.0", + "webmozart/path-util": "^2.3" }, - "replace": { - "drupal/core": "^8.4" + "conflict": { + "drupal/drupal": "*" }, "minimum-stability": "dev", "prefer-stable": true, "config": { - "preferred-install": "dist", - "autoloader-suffix": "Drupal8" - }, - "extra": { - "_readme": [ - "By default Drupal loads the autoloader from ./vendor/autoload.php.", - "To change the autoloader you can edit ./autoload.php.", - "This file specifies the packages.drupal.org repository.", - "You can read more about this composer repository at:", - "https://www.drupal.org/node/2718229" - ], - "merge-plugin": { - "include": [ - "core/composer.json", - "modules/brightcove/composer.json" - ], - "recurse": false, - "replace": false, - "merge-extra": false - }, - "installer-paths": { - "core": ["type:drupal-core"], - "modules/contrib/{$name}": ["type:drupal-module"], - "profiles/contrib/{$name}": ["type:drupal-profile"], - "themes/contrib/{$name}": ["type:drupal-theme"], - "drush/contrib/{$name}": ["type:drupal-drush"], - "modules/custom/{$name}": ["type:drupal-custom-module"], - "themes/custom/{$name}": ["type:drupal-custom-theme"] - } + "sort-packages": true }, "autoload": { - "psr-4": { - "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer" - } + "classmap": [ + "scripts/composer/ScriptHandler.php" + ] }, "scripts": { - "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump", - "post-autoload-dump": [ - "Drupal\\Core\\Composer\\Composer::ensureHtaccess" + "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", + "pre-install-cmd": [ + "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" + ], + "pre-update-cmd": [ + "DrupalProject\\composer\\ScriptHandler::checkComposerVersion" ], - "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup", - "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup" + "post-install-cmd": [ + "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" + ], + "post-update-cmd": [ + "DrupalProject\\composer\\ScriptHandler::createRequiredFiles" + ] }, - "repositories": [ - { - "type": "composer", - "url": "https://packages.drupal.org/8" + "extra": { + "installer-paths": { + "web/core": ["type:drupal-core"], + "web/libraries/{$name}": ["type:drupal-library"], + "web/modules/contrib/{$name}": ["type:drupal-module"], + "web/profiles/contrib/{$name}": ["type:drupal-profile"], + "web/themes/contrib/{$name}": ["type:drupal-theme"], + "web/drush/contrib/{$name}": ["type:drupal-drush"], + "web/modules/custom/{$name}": ["type:drupal-custom-module"], + "web/themes/custom/{$name}": ["type:drupal-custom-theme"] } - ] + } } diff --git a/composer.lock b/composer.lock index 42f2097..f458f9f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,72 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "7c856527a00bb5aef597d25176e357b5", + "content-hash": "1e8f381c09766b5590557d88c592e396", "packages": [ + { + "name": "alchemy/zippy", + "version": "0.4.3", + "source": { + "type": "git", + "url": "https://github.com/alchemy-fr/Zippy.git", + "reference": "5ffdc93de0af2770d396bf433d8b2667c77277ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/alchemy-fr/Zippy/zipball/5ffdc93de0af2770d396bf433d8b2667c77277ea", + "reference": "5ffdc93de0af2770d396bf433d8b2667c77277ea", + "shasum": "" + }, + "require": { + "doctrine/collections": "~1.0", + "ext-mbstring": "*", + "php": ">=5.5", + "symfony/filesystem": "^2.0.5|^3.0", + "symfony/process": "^2.1|^3.0" + }, + "require-dev": { + "ext-zip": "*", + "guzzle/guzzle": "~3.0", + "guzzlehttp/guzzle": "^6.0", + "phpunit/phpunit": "^4.0|^5.0", + "symfony/finder": "^2.0.5|^3.0" + }, + "suggest": { + "ext-zip": "To use the ZipExtensionAdapter", + "guzzle/guzzle": "To use the GuzzleTeleporter with Guzzle 3", + "guzzlehttp/guzzle": "To use the GuzzleTeleporter with Guzzle 6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Alchemy\\Zippy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alchemy", + "email": "dev.team@alchemy.fr", + "homepage": "http://www.alchemy.fr/" + } + ], + "description": "Zippy, the archive manager companion", + "keywords": [ + "bzip", + "compression", + "tar", + "zip" + ], + "time": "2016-11-03T16:10:31+00:00" + }, { "name": "asm89/stack-cors", "version": "1.2.0", @@ -58,6 +122,86 @@ ], "time": "2017-12-20T14:37:45+00:00" }, + { + "name": "aws/aws-sdk-php", + "version": "3.52.27", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php.git", + "reference": "2ff982460d5c5eb0a57b7c38bd9ad4e9c2f05c86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/2ff982460d5c5eb0a57b7c38bd9ad4e9c2f05c86", + "reference": "2ff982460d5c5eb0a57b7c38bd9ad4e9c2f05c86", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "ext-spl": "*", + "guzzlehttp/guzzle": "^5.3.1|^6.2.1", + "guzzlehttp/promises": "~1.0", + "guzzlehttp/psr7": "^1.4.1", + "mtdowling/jmespath.php": "~2.2", + "php": ">=5.5" + }, + "require-dev": { + "andrewsville/php-token-reflection": "^1.4", + "aws/aws-php-sns-message-validator": "~1.0", + "behat/behat": "~3.0", + "doctrine/cache": "~1.4", + "ext-dom": "*", + "ext-openssl": "*", + "nette/neon": "^2.3", + "phpunit/phpunit": "^4.8.35|^5.4.3", + "psr/cache": "^1.0" + }, + "suggest": { + "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", + "doctrine/cache": "To use the DoctrineCacheAdapter", + "ext-curl": "To send requests using cURL", + "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "Aws\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Amazon Web Services", + "homepage": "http://aws.amazon.com" + } + ], + "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", + "homepage": "http://aws.amazon.com/sdkforphp", + "keywords": [ + "amazon", + "aws", + "cloud", + "dynamodb", + "ec2", + "glacier", + "s3", + "sdk" + ], + "time": "2018-03-15T19:43:26+00:00" + }, { "name": "brightcove/api", "version": "1.1.0", @@ -115,18 +259,74 @@ ], "time": "2018-01-19T11:00:22+00:00" }, + { + "name": "caxy/php-htmldiff", + "version": "v0.1.7", + "source": { + "type": "git", + "url": "https://github.com/caxy/php-htmldiff.git", + "reference": "48c70a963e803b93fe68a191e62d0770b5446f0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/caxy/php-htmldiff/zipball/48c70a963e803b93fe68a191e62d0770b5446f0b", + "reference": "48c70a963e803b93fe68a191e62d0770b5446f0b", + "shasum": "" + }, + "require": { + "ezyang/htmlpurifier": "^4.7", + "php": ">=5.3.3", + "sunra/php-simple-html-dom-parser": "^1.5" + }, + "require-dev": { + "doctrine/cache": "~1.0", + "phpunit/phpunit": "~5.0" + }, + "suggest": { + "doctrine/cache": "Used for caching the calculated diffs using a Doctrine Cache Provider" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Caxy\\HtmlDiff": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0" + ], + "authors": [ + { + "name": "Josh Schroeder", + "email": "jschroeder@caxy.com", + "homepage": "http://www.caxy.com" + } + ], + "description": "A library for comparing two HTML files/snippets and highlighting the differences using simple HTML.", + "homepage": "https://github.com/caxy/php-htmldiff", + "keywords": [ + "diff", + "html" + ], + "time": "2018-03-15T21:23:44+00:00" + }, { "name": "chi-teck/drupal-code-generator", - "version": "1.22.0", + "version": "1.23.2", "source": { "type": "git", "url": "https://github.com/Chi-teck/drupal-code-generator.git", - "reference": "c7e3018ebcbdb5befcfe928c792146078c8c2d05" + "reference": "b157b38c8c148c67d5b80c7c349b1a446115ea0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/c7e3018ebcbdb5befcfe928c792146078c8c2d05", - "reference": "c7e3018ebcbdb5befcfe928c792146078c8c2d05", + "url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/b157b38c8c148c67d5b80c7c349b1a446115ea0e", + "reference": "b157b38c8c148c67d5b80c7c349b1a446115ea0e", "shasum": "" }, "require": { @@ -149,10 +349,10 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL2" + "GPL-2.0-or-later" ], "description": "Drupal code generator", - "time": "2018-01-06T15:54:30+00:00" + "time": "2018-03-03T04:17:26+00:00" }, { "name": "composer/installers", @@ -338,16 +538,16 @@ }, { "name": "consolidation/annotated-command", - "version": "2.8.2", + "version": "2.8.3", "source": { "type": "git", "url": "https://github.com/consolidation/annotated-command.git", - "reference": "e97c38717eae23a2bafcf3f09438290eee6ebeb4" + "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/e97c38717eae23a2bafcf3f09438290eee6ebeb4", - "reference": "e97c38717eae23a2bafcf3f09438290eee6ebeb4", + "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/8f8f5da2ca06fbd3a85f7d551c49f844b7c59437", + "reference": "8f8f5da2ca06fbd3a85f7d551c49f844b7c59437", "shasum": "" }, "require": { @@ -359,6 +559,7 @@ "symfony/finder": "^2.5|^3|^4" }, "require-dev": { + "greg-1-anderson/composer-test-scenarios": "^1", "phpunit/phpunit": "^4.8", "satooshi/php-coveralls": "^1.0.2 | dev-master", "squizlabs/php_codesniffer": "^2.7" @@ -385,7 +586,7 @@ } ], "description": "Initialize Symfony Console commands from annotated command class methods.", - "time": "2017-11-29T16:23:23+00:00" + "time": "2018-02-23T16:32:04+00:00" }, { "name": "consolidation/config", @@ -540,16 +741,16 @@ }, { "name": "consolidation/robo", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/consolidation/Robo.git", - "reference": "b6296f1cf1088f1a11b0b819f9e42ef6f00b79a9" + "reference": "9ef2724f72feb017517a755564516dbde99e15e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/Robo/zipball/b6296f1cf1088f1a11b0b819f9e42ef6f00b79a9", - "reference": "b6296f1cf1088f1a11b0b819f9e42ef6f00b79a9", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/9ef2724f72feb017517a755564516dbde99e15e4", + "reference": "9ef2724f72feb017517a755564516dbde99e15e4", "shasum": "" }, "require": { @@ -573,6 +774,7 @@ "codeception/aspect-mock": "^1|^2.1.1", "codeception/base": "^2.3.7", "codeception/verify": "^0.3.2", + "goaop/framework": "~2.1.2", "greg-1-anderson/composer-test-scenarios": "^1", "natxet/cssmin": "3.0.4", "patchwork/jsqueeze": "~2", @@ -613,7 +815,7 @@ } ], "description": "Modern task runner", - "time": "2017-12-29T06:48:35+00:00" + "time": "2018-02-28T01:03:54+00:00" }, { "name": "container-interop/container-interop", @@ -646,6 +848,110 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, + { + "name": "cweagans/composer-patches", + "version": "1.6.4", + "source": { + "type": "git", + "url": "https://github.com/cweagans/composer-patches.git", + "reference": "462e65061606dc6149349535d4322241515d1b16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/462e65061606dc6149349535d4322241515d1b16", + "reference": "462e65061606dc6149349535d4322241515d1b16", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.0" + }, + "require-dev": { + "composer/composer": "~1.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-2-Clause" + ], + "authors": [ + { + "name": "Cameron Eagans", + "email": "me@cweagans.net" + } + ], + "description": "Provides a way to patch Composer packages.", + "time": "2017-12-07T16:16:31+00:00" + }, + { + "name": "dflydev/dot-access-configuration", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-configuration.git", + "reference": "ae6e7138b1d9063d343322cca63994ee1ac5161d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-configuration/zipball/ae6e7138b1d9063d343322cca63994ee1ac5161d", + "reference": "ae6e7138b1d9063d343322cca63994ee1ac5161d", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "1.*", + "dflydev/placeholder-resolver": "1.*", + "php": ">=5.3.2" + }, + "require-dev": { + "symfony/yaml": "~2.1" + }, + "suggest": { + "symfony/yaml": "Required for using the YAML Configuration Builders" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\DotAccessConfiguration": "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" + } + ], + "description": "Given a deep data structure representing a configuration, access configuration by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-configuration", + "keywords": [ + "config", + "configuration" + ], + "time": "2016-12-12T17:43:40+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v1.1.0", @@ -705,6 +1011,58 @@ ], "time": "2017-01-20T21:14:22+00:00" }, + { + "name": "dflydev/placeholder-resolver", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-placeholder-resolver.git", + "reference": "c498d0cae91b1bb36cc7d60906dab8e62bb7c356" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-placeholder-resolver/zipball/c498d0cae91b1bb36cc7d60906dab8e62bb7c356", + "reference": "c498d0cae91b1bb36cc7d60906dab8e62bb7c356", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Dflydev\\PlaceholderResolver": "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" + } + ], + "description": "Given a data source representing key => value pairs, resolve placeholders like ${foo.bar} to the value associated with the 'foo.bar' key in the data source.", + "homepage": "https://github.com/dflydev/dflydev-placeholder-resolver", + "keywords": [ + "placeholder", + "resolver" + ], + "time": "2012-10-28T21:08:28+00:00" + }, { "name": "dnoegel/php-xdg-base-dir", "version": "0.1", @@ -740,30 +1098,30 @@ }, { "name": "doctrine/annotations", - "version": "v1.4.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { @@ -804,37 +1162,41 @@ "docblock", "parser" ], - "time": "2017-02-24T16:22:25+00:00" + "time": "2017-12-06T07:11:42+00:00" }, { "name": "doctrine/cache", - "version": "v1.6.2", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b" + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b", + "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a", "shasum": "" }, "require": { - "php": "~5.5|~7.0" + "php": "~7.1" }, "conflict": { "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "predis/predis": "~1.0", - "satooshi/php-coveralls": "~0.6" + "alcaeus/mongo-php-adapter": "^1.1", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^5.7", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -874,24 +1236,24 @@ "cache", "caching" ], - "time": "2017-07-22T12:49:21+00:00" + "time": "2017-08-25T07:02:50+00:00" }, { "name": "doctrine/collections", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf", + "reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/coding-standard": "~0.1@dev", @@ -941,20 +1303,20 @@ "collections", "iterator" ], - "time": "2017-01-03T10:49:41+00:00" + "time": "2017-07-22T10:37:32+00:00" }, { "name": "doctrine/common", - "version": "v2.7.3", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9" + "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9", + "url": "https://api.github.com/repos/doctrine/common/zipball/f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", + "reference": "f68c297ce6455e8fd794aa8ffaf9fa458f6ade66", "shasum": "" }, "require": { @@ -963,15 +1325,15 @@ "doctrine/collections": "1.*", "doctrine/inflector": "1.*", "doctrine/lexer": "1.*", - "php": "~5.6|~7.0" + "php": "~7.1" }, "require-dev": { - "phpunit/phpunit": "^5.4.6" + "phpunit/phpunit": "^5.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.8.x-dev" } }, "autoload": { @@ -1014,37 +1376,37 @@ "persistence", "spl" ], - "time": "2017-07-22T08:35:12+00:00" + "time": "2017-08-31T08:43:38+00:00" }, { "name": "doctrine/inflector", - "version": "v1.1.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + "reference": "5527a48b7313d15261292c149e55e26eae771b0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", - "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a", + "reference": "5527a48b7313d15261292c149e55e26eae771b0a", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "4.*" + "phpunit/phpunit": "^6.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -1081,7 +1443,7 @@ "singularize", "string" ], - "time": "2015-11-06T14:35:42+00:00" + "time": "2018-01-09T20:05:19+00:00" }, { "name": "doctrine/lexer", @@ -1138,17 +1500,124 @@ "time": "2014-09-09T13:34:57+00:00" }, { - "name": "drupal/brightcove", - "version": "1.3.0", + "name": "drupal-composer/drupal-scaffold", + "version": "2.4.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/brightcove", - "reference": "8.x-1.3" + "url": "https://github.com/drupal-composer/drupal-scaffold.git", + "reference": "745f0a2d4141fc83d3b42222beff43d66afb3dc6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/brightcove-8.x-1.3.zip", - "reference": "8.x-1.3", + "url": "https://api.github.com/repos/drupal-composer/drupal-scaffold/zipball/745f0a2d4141fc83d3b42222beff43d66afb3dc6", + "reference": "745f0a2d4141fc83d3b42222beff43d66afb3dc6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "composer/semver": "^1.4", + "php": ">=5.4.5" + }, + "require-dev": { + "composer/composer": "dev-master", + "phpunit/phpunit": "^4.4.0" + }, + "type": "composer-plugin", + "extra": { + "class": "DrupalComposer\\DrupalScaffold\\Plugin", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "DrupalComposer\\DrupalScaffold\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "description": "Composer Plugin for updating the Drupal scaffold files when using drupal/core", + "time": "2017-12-08T22:53:11+00:00" + }, + { + "name": "drupal/bootstrap", + "version": "3.11.0", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/bootstrap", + "reference": "8.x-3.11" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/bootstrap-8.x-3.11.zip", + "reference": "8.x-3.11", + "shasum": "6ff80e37e2e1f916646300889f3392764c9cdb32" + }, + "require": { + "drupal/core": "~8.0" + }, + "type": "drupal-theme", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev" + }, + "drupal": { + "version": "8.x-3.11", + "datestamp": "1520792884", + "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": "Mark Carver (markcarver)", + "homepage": "https://www.drupal.org/u/markcarver", + "role": "Maintainer" + }, + { + "name": "John McCormick (neardark)", + "homepage": "https://www.drupal.org/u/neardark", + "role": "Co-maintainer" + }, + { + "name": "Fabiano Sant'Ana (wundo)", + "homepage": "https://www.drupal.org/u/wundo", + "role": "Co-maintainer" + }, + { + "name": "wundo", + "homepage": "https://www.drupal.org/user/25523" + } + ], + "description": "Built to use Bootstrap, a sleek, intuitive, and powerful front-end framework for faster and easier web development.", + "homepage": "https://www.drupal.org/project/bootstrap", + "support": { + "source": "http://cgit.drupalcode.org/bootstrap", + "docs": "https://drupal-bootstrap.org", + "issues": "https://www.drupal.org/project/issues/bootstrap", + "irc": "irc://irc.freenode.org/drupal-bootstrap" + } + }, + { + "name": "drupal/brightcove", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/brightcove", + "reference": "8.x-1.3" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/brightcove-8.x-1.3.zip", + "reference": "8.x-1.3", "shasum": "157818ac54ee0ef86d06a96a5d995f0ccc9f73f2" }, "require": { @@ -1168,7 +1637,7 @@ }, "drupal": { "version": "8.x-1.3", - "datestamp": "1517305384", + "datestamp": "1517314382", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1257,7 +1726,7 @@ }, "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { @@ -1276,261 +1745,524 @@ } }, { - "name": "drupal/ctools", - "version": "3.0.0", + "name": "drupal/console", + "version": "1.7.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/ctools", - "reference": "8.x-3.0" + "url": "https://github.com/hechoendrupal/drupal-console.git", + "reference": "f4edcad048bd70fa2e74a6858c061425117c1ace" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/ctools-8.x-3.0.zip", - "reference": "8.x-3.0", - "shasum": "302e869ecd1e59fe55663673999fee2ccac5daa8" + "url": "https://api.github.com/repos/hechoendrupal/drupal-console/zipball/f4edcad048bd70fa2e74a6858c061425117c1ace", + "reference": "f4edcad048bd70fa2e74a6858c061425117c1ace", + "shasum": "" }, "require": { - "drupal/core": "~8.0" + "alchemy/zippy": "0.4.3", + "composer/installers": "~1.0", + "doctrine/annotations": "^1.2", + "doctrine/collections": "^1.3", + "drupal/console-core": "1.7.0", + "drupal/console-extend-plugin": "~0", + "guzzlehttp/guzzle": "~6.1", + "php": "^5.5.9 || ^7.0", + "psy/psysh": "0.6.* || ~0.8", + "symfony/css-selector": "~2.8|~3.0", + "symfony/dom-crawler": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0" }, - "type": "drupal-module", - "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev" - }, - "drupal": { - "version": "8.x-3.0", - "datestamp": "1493401742", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } + "suggest": { + "symfony/thanks": "Thank your favorite PHP projects on Github using the CLI!", + "vlucas/phpdotenv": "Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically." + }, + "bin": [ + "bin/drupal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Drupal\\Console\\": "src" } }, - "notification-url": "https://packages.drupal.org/8/downloads", + "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "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": "David Flores", + "email": "dmousex@gmail.com", + "homepage": "http://dmouse.net" }, { - "name": "neclimdul", - "homepage": "https://www.drupal.org/user/48673" + "name": "Jesus Manuel Olivas", + "email": "jesus.olivas@gmail.com", + "homepage": "http://jmolivas.com" }, { - "name": "sdboyer", - "homepage": "https://www.drupal.org/user/146719" + "name": "Eduardo Garcia", + "email": "enzo@enzolutions.com", + "homepage": "http://enzolutions.com/" }, { - "name": "sun", - "homepage": "https://www.drupal.org/user/54136" + "name": "Omar Aguirre", + "email": "omersguchigu@gmail.com" }, { - "name": "tim.plunkett", - "homepage": "https://www.drupal.org/user/241634" + "name": "Drupal Console Contributors", + "homepage": "https://github.com/hechoendrupal/drupal-console/graphs/contributors" } ], - "description": "Provides a number of utility and helper APIs for Drupal developers and site builders.", - "homepage": "https://www.drupal.org/project/ctools", - "support": { - "source": "http://cgit.drupalcode.org/ctools", - "issues": "https://www.drupal.org/project/issues/ctools" - } + "description": "The Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.", + "homepage": "http://drupalconsole.com/", + "keywords": [ + "console", + "development", + "drupal", + "symfony" + ], + "time": "2018-03-06T21:58:52+00:00" }, { - "name": "drupal/embed", - "version": "1.0.0", + "name": "drupal/console-core", + "version": "1.7.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/embed", - "reference": "8.x-1.0" + "url": "https://github.com/hechoendrupal/drupal-console-core.git", + "reference": "af8b3e42d225a2782f14163aafdeebbc486fd3e5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.0.zip", - "reference": "8.x-1.0", - "shasum": "cc746ad807260e01c7788dd82110dcebbb4d678a" + "url": "https://api.github.com/repos/hechoendrupal/drupal-console-core/zipball/af8b3e42d225a2782f14163aafdeebbc486fd3e5", + "reference": "af8b3e42d225a2782f14163aafdeebbc486fd3e5", + "shasum": "" }, "require": { - "drupal/core": "~8.0" + "dflydev/dot-access-configuration": "^1.0", + "drupal/console-en": "1.7.0", + "php": "^5.5.9 || ^7.0", + "stecman/symfony-console-completion": "~0.7", + "symfony/config": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/debug": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/filesystem": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0", + "twig/twig": "^1.23.1", + "webflo/drupal-finder": "^1.0", + "webmozart/path-util": "^2.3" }, - "type": "drupal-module", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - }, - "drupal": { - "version": "8.x-1.0", - "datestamp": "1490755685", - "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" - } + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Drupal\\Console\\Core\\": "src" } }, - "notification-url": "https://packages.drupal.org/8/downloads", + "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" + "name": "David Flores", + "email": "dmousex@gmail.com", + "homepage": "http://dmouse.net" }, { - "name": "Devin Carlson", - "homepage": "https://www.drupal.org/user/290182" + "name": "Jesus Manuel Olivas", + "email": "jesus.olivas@gmail.com", + "homepage": "http://jmolivas.com" }, { - "name": "Drupal Media Team", - "homepage": "https://www.drupal.org/user/3260690" + "name": "Drupal Console Contributors", + "homepage": "https://github.com/hechoendrupal/DrupalConsole/graphs/contributors" }, { - "name": "cs_shadow", - "homepage": "https://www.drupal.org/user/2828287" + "name": "Eduardo Garcia", + "email": "enzo@enzolutions.com", + "homepage": "http://enzolutions.com/" }, { - "name": "slashrsm", - "homepage": "https://www.drupal.org/user/744628" + "name": "Omar Aguirre", + "email": "omersguchigu@gmail.com" } ], - "description": "Provide a framework for various different types of embeds in WYSIWYG editors, common functionality, interfaces, and standards.", - "homepage": "https://www.drupal.org/project/embed", - "support": { - "source": "http://cgit.drupalcode.org/embed", - "issues": "https://www.drupal.org/project/issues/embed", - "irc": "irc://irc.freenode.org/drupal-media" - } + "description": "Drupal Console Core", + "homepage": "http://drupalconsole.com/", + "keywords": [ + "console", + "development", + "drupal", + "symfony" + ], + "time": "2018-03-06T21:34:03+00:00" }, { - "name": "drupal/entity", - "version": "1.0.0-beta1", + "name": "drupal/console-en", + "version": "1.7.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/entity", - "reference": "8.x-1.0-beta1" + "url": "https://github.com/hechoendrupal/drupal-console-en.git", + "reference": "916e121fad50155fc96d1fc98fed2e4aa0d6cd85" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.0-beta1.zip", - "reference": "8.x-1.0-beta1", - "shasum": "6965349818de8cb820113b6841076162190c1a4c" - }, - "require": { - "drupal/core": "~8.3" - }, - "type": "drupal-module", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - }, - "drupal": { - "version": "8.x-1.0-beta1", - "datestamp": "1505895844", - "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." - } - } + "url": "https://api.github.com/repos/hechoendrupal/drupal-console-en/zipball/916e121fad50155fc96d1fc98fed2e4aa0d6cd85", + "reference": "916e121fad50155fc96d1fc98fed2e4aa0d6cd85", + "shasum": "" }, - "notification-url": "https://packages.drupal.org/8/downloads", + "type": "drupal-console-language", + "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" + "name": "David Flores", + "email": "dmousex@gmail.com", + "homepage": "http://dmouse.net" }, { - "name": "bojanz", - "homepage": "https://www.drupal.org/user/86106" + "name": "Jesus Manuel Olivas", + "email": "jesus.olivas@gmail.com", + "homepage": "http://jmolivas.com" }, { - "name": "dawehner", - "homepage": "https://www.drupal.org/user/99340" + "name": "Drupal Console Contributors", + "homepage": "https://github.com/hechoendrupal/DrupalConsole/graphs/contributors" }, { - "name": "dixon_", - "homepage": "https://www.drupal.org/user/239911" + "name": "Eduardo Garcia", + "email": "enzo@enzolutions.com", + "homepage": "http://enzolutions.com/" }, { - "name": "fago", - "homepage": "https://www.drupal.org/user/16747" + "name": "Omar Aguirre", + "email": "omersguchigu@gmail.com" } ], - "description": "Provides expanded entity APIs, which will be moved to Drupal core one day.", - "homepage": "http://drupal.org/project/entity", - "support": { - "source": "http://cgit.drupalcode.org/entity" - } + "description": "Drupal Console English Language", + "homepage": "http://drupalconsole.com/", + "keywords": [ + "console", + "development", + "drupal", + "symfony" + ], + "time": "2018-03-06T15:51:54+00:00" }, { - "name": "drupal/entity_browser", - "version": "2.0.0-alpha2", + "name": "drupal/console-extend-plugin", + "version": "0.9.2", "source": { "type": "git", - "url": "https://git.drupal.org/project/entity_browser", - "reference": "8.x-2.0-alpha2" + "url": "https://github.com/hechoendrupal/drupal-console-extend-plugin.git", + "reference": "f3bac233fd305359c33e96621443b3bd065555cc" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.0-alpha2.zip", - "reference": "8.x-2.0-alpha2", - "shasum": "f31ad069e5c5e95db9b9410a4d71038ac0c5b370" + "url": "https://api.github.com/repos/hechoendrupal/drupal-console-extend-plugin/zipball/f3bac233fd305359c33e96621443b3bd065555cc", + "reference": "f3bac233fd305359c33e96621443b3bd065555cc", + "shasum": "" }, "require": { - "drupal/core": "~8.0" + "composer-plugin-api": "^1.0", + "symfony/finder": "~2.7|~3.0", + "symfony/yaml": "~2.7|~3.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Drupal\\Console\\Composer\\Plugin\\Extender" + }, + "autoload": { + "psr-4": { + "Drupal\\Console\\Composer\\Plugin\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jesus Manuel Olivas", + "email": "jesus.olivas@gmail.com" + } + ], + "description": "Drupal Console Extend Plugin", + "time": "2017-07-28T17:11:54+00:00" + }, + { + "name": "drupal/core", + "version": "8.5.0", + "source": { + "type": "git", + "url": "https://github.com/drupal/core.git", + "reference": "0b9070370e272da441b4be52561c559c05f4553d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drupal/core/zipball/0b9070370e272da441b4be52561c559c05f4553d", + "reference": "0b9070370e272da441b4be52561c559c05f4553d", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "^1.1", + "composer/semver": "^1.0", + "doctrine/annotations": "^1.2", + "doctrine/common": "^2.5", + "easyrdf/easyrdf": "^0.9", + "egulias/email-validator": "^1.2", + "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": "^6.2.1", + "masterminds/html5": "^2.1", + "paragonie/random_compat": "^1.0|^2.0", + "php": "^5.5.9|>=7.0.8", + "stack/builder": "^1.0", + "symfony-cmf/routing": "^1.4", + "symfony/class-loader": "~3.4.0", + "symfony/console": "~3.4.0", + "symfony/dependency-injection": "~3.4.0", + "symfony/event-dispatcher": "~3.4.0", + "symfony/http-foundation": "~3.4.0", + "symfony/http-kernel": "~3.4.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/process": "~3.4.0", + "symfony/psr-http-message-bridge": "^1.0", + "symfony/routing": "~3.4.0", + "symfony/serializer": "~3.4.0", + "symfony/translation": "~3.4.0", + "symfony/validator": "~3.4.0", + "symfony/yaml": "~3.4.5", + "twig/twig": "^1.35.0", + "zendframework/zend-diactoros": "^1.1", + "zendframework/zend-feed": "^2.4" + }, + "conflict": { + "drush/drush": "<8.1.10" + }, + "replace": { + "drupal/action": "self.version", + "drupal/aggregator": "self.version", + "drupal/automated_cron": "self.version", + "drupal/ban": "self.version", + "drupal/bartik": "self.version", + "drupal/basic_auth": "self.version", + "drupal/big_pipe": "self.version", + "drupal/block": "self.version", + "drupal/block_content": "self.version", + "drupal/block_place": "self.version", + "drupal/book": "self.version", + "drupal/breakpoint": "self.version", + "drupal/ckeditor": "self.version", + "drupal/classy": "self.version", + "drupal/color": "self.version", + "drupal/comment": "self.version", + "drupal/config": "self.version", + "drupal/config_translation": "self.version", + "drupal/contact": "self.version", + "drupal/content_moderation": "self.version", + "drupal/content_translation": "self.version", + "drupal/contextual": "self.version", + "drupal/core-annotation": "self.version", + "drupal/core-assertion": "self.version", + "drupal/core-bridge": "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-filesystem": "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/datetime": "self.version", + "drupal/datetime_range": "self.version", + "drupal/dblog": "self.version", + "drupal/dynamic_page_cache": "self.version", + "drupal/editor": "self.version", + "drupal/entity_reference": "self.version", + "drupal/field": "self.version", + "drupal/field_layout": "self.version", + "drupal/field_ui": "self.version", + "drupal/file": "self.version", + "drupal/filter": "self.version", + "drupal/forum": "self.version", + "drupal/hal": "self.version", + "drupal/help": "self.version", + "drupal/history": "self.version", + "drupal/image": "self.version", + "drupal/inline_form_errors": "self.version", + "drupal/language": "self.version", + "drupal/layout_builder": "self.version", + "drupal/layout_discovery": "self.version", + "drupal/link": "self.version", + "drupal/locale": "self.version", + "drupal/media": "self.version", + "drupal/menu_link_content": "self.version", + "drupal/menu_ui": "self.version", + "drupal/migrate": "self.version", + "drupal/migrate_drupal": "self.version", + "drupal/migrate_drupal_ui": "self.version", + "drupal/minimal": "self.version", + "drupal/node": "self.version", + "drupal/options": "self.version", + "drupal/page_cache": "self.version", + "drupal/path": "self.version", + "drupal/quickedit": "self.version", + "drupal/rdf": "self.version", + "drupal/responsive_image": "self.version", + "drupal/rest": "self.version", + "drupal/search": "self.version", + "drupal/serialization": "self.version", + "drupal/settings_tray": "self.version", + "drupal/seven": "self.version", + "drupal/shortcut": "self.version", + "drupal/simpletest": "self.version", + "drupal/standard": "self.version", + "drupal/stark": "self.version", + "drupal/statistics": "self.version", + "drupal/syslog": "self.version", + "drupal/system": "self.version", + "drupal/taxonomy": "self.version", + "drupal/telephone": "self.version", + "drupal/text": "self.version", + "drupal/toolbar": "self.version", + "drupal/tour": "self.version", + "drupal/tracker": "self.version", + "drupal/update": "self.version", + "drupal/user": "self.version", + "drupal/views": "self.version", + "drupal/views_ui": "self.version", + "drupal/workflows": "self.version" }, "require-dev": { - "drupal/ctools": "*", - "drupal/inline_entity_form": "*", - "drupal/paragraphs": "*", - "drupal/token": "*" + "behat/mink": "1.7.x-dev", + "behat/mink-goutte-driver": "^1.2", + "behat/mink-selenium2-driver": "1.3.x-dev", + "drupal/coder": "^8.2.12", + "jcalderonzumba/gastonjs": "^1.0.2", + "jcalderonzumba/mink-phantomjs-driver": "^0.3.1", + "mikey179/vfsstream": "^1.2", + "phpspec/prophecy": "^1.4", + "phpunit/phpunit": "^4.8.35 || ^6.1", + "symfony/css-selector": "^3.4.0", + "symfony/debug": "^3.4.0", + "symfony/phpunit-bridge": "^3.4.3" + }, + "type": "drupal-core", + "extra": { + "merge-plugin": { + "require": [ + "core/lib/Drupal/Component/Annotation/composer.json", + "core/lib/Drupal/Component/Assertion/composer.json", + "core/lib/Drupal/Component/Bridge/composer.json", + "core/lib/Drupal/Component/ClassFinder/composer.json", + "core/lib/Drupal/Component/Datetime/composer.json", + "core/lib/Drupal/Component/DependencyInjection/composer.json", + "core/lib/Drupal/Component/Diff/composer.json", + "core/lib/Drupal/Component/Discovery/composer.json", + "core/lib/Drupal/Component/EventDispatcher/composer.json", + "core/lib/Drupal/Component/FileCache/composer.json", + "core/lib/Drupal/Component/FileSystem/composer.json", + "core/lib/Drupal/Component/Gettext/composer.json", + "core/lib/Drupal/Component/Graph/composer.json", + "core/lib/Drupal/Component/HttpFoundation/composer.json", + "core/lib/Drupal/Component/PhpStorage/composer.json", + "core/lib/Drupal/Component/Plugin/composer.json", + "core/lib/Drupal/Component/ProxyBuilder/composer.json", + "core/lib/Drupal/Component/Render/composer.json", + "core/lib/Drupal/Component/Serialization/composer.json", + "core/lib/Drupal/Component/Transliteration/composer.json", + "core/lib/Drupal/Component/Utility/composer.json", + "core/lib/Drupal/Component/Uuid/composer.json" + ], + "recurse": false, + "replace": false, + "merge-extra": false + } + }, + "autoload": { + "psr-4": { + "Drupal\\Core\\": "lib/Drupal/Core", + "Drupal\\Component\\": "lib/Drupal/Component", + "Drupal\\Driver\\": "../drivers/lib/Drupal/Driver" + }, + "classmap": [ + "lib/Drupal.php", + "lib/Drupal/Component/Utility/Timer.php", + "lib/Drupal/Component/Utility/Unicode.php", + "lib/Drupal/Core/Database/Database.php", + "lib/Drupal/Core/DrupalKernel.php", + "lib/Drupal/Core/DrupalKernelInterface.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.", + "time": "2018-03-07T21:10:20+00:00" + }, + { + "name": "drupal/ctools", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/ctools", + "reference": "8.x-3.0" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/ctools-8.x-3.0.zip", + "reference": "8.x-3.0", + "shasum": "302e869ecd1e59fe55663673999fee2ccac5daa8" + }, + "require": { + "drupal/core": "~8.0" }, "type": "drupal-module", "extra": { "branch-alias": { - "dev-2.x": "2.x-dev", - "dev-8.x-1.x": "8.1.x-dev" + "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-2.0-alpha2", - "datestamp": "1512118387", + "version": "8.x-3.0", + "datestamp": "1493401742", "security-coverage": { - "status": "not-covered", - "message": "Alpha releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -1540,65 +2272,81 @@ ], "authors": [ { - "name": "Janez Urevc", - "homepage": "https://github.com/slashrsm", + "name": "Kris Vanderwater (EclipseGc)", + "homepage": "https://www.drupal.org/u/eclipsegc", "role": "Maintainer" }, { - "name": "Primoz Hmeljak", - "homepage": "https://github.com/primsi", + "name": "Jakob Perry (japerry)", + "homepage": "https://www.drupal.org/u/japerry", "role": "Maintainer" }, { - "name": "See other contributors", - "homepage": "https://www.drupal.org/node/1943336/committers", - "role": "contributor" + "name": "Tim Plunkett (tim.plunkett)", + "homepage": "https://www.drupal.org/u/timplunkett", + "role": "Maintainer" }, { - "name": "Primsi", - "homepage": "https://www.drupal.org/user/282629" + "name": "James Gilliland (neclimdul)", + "homepage": "https://www.drupal.org/u/neclimdul", + "role": "Maintainer" }, { - "name": "marcingy", - "homepage": "https://www.drupal.org/user/77320" + "name": "Daniel Wehner (dawehner)", + "homepage": "https://www.drupal.org/u/dawehner", + "role": "Maintainer" }, { - "name": "samuel.mortenson", - "homepage": "https://www.drupal.org/user/2582268" + "name": "joelpittet", + "homepage": "https://www.drupal.org/user/160302" }, { - "name": "slashrsm", - "homepage": "https://www.drupal.org/user/744628" + "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": "Entity browsing and selecting component.", - "homepage": "http://drupal.org/project/entity_browser", + "description": "Provides a number of utility and helper APIs for Drupal developers and site builders.", + "homepage": "https://www.drupal.org/project/ctools", "support": { - "source": "http://cgit.drupalcode.org/entity_browser", - "issues": "http://drupal.org/project/issues/entity_browser", - "irc": "irc://irc.freenode.org/drupal-contribute" + "source": "http://cgit.drupalcode.org/ctools", + "issues": "https://www.drupal.org/project/issues/ctools" } }, { - "name": "drupal/entity_embed", - "version": "1.0.0-beta2", + "name": "drupal/devel", + "version": "1.2.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/entity_embed", - "reference": "8.x-1.0-beta2" + "url": "https://git.drupal.org/project/devel", + "reference": "8.x-1.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/entity_embed-8.x-1.0-beta2.zip", - "reference": "8.x-1.0-beta2", - "shasum": "21cdeb2b058efce461683aed9a8951053512dca7" + "url": "https://ftp.drupal.org/files/projects/devel-8.x-1.2.zip", + "reference": "8.x-1.2", + "shasum": "01f3349ef75f6e21fceef24be9d3d6506ca29647" }, "require": { - "drupal/core": "*", - "drupal/embed": "*" + "drupal/core": "~8.0" }, - "require-dev": { - "drupal/entity_browser": "*" + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available" }, "type": "drupal-module", "extra": { @@ -1606,11 +2354,11 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta2", - "datestamp": "1476698339", + "version": "8.x-1.2", + "datestamp": "1507197844", "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -1620,63 +2368,77 @@ ], "authors": [ { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" + "name": "Moshe Weitzman", + "homepage": "https://github.com/weitzman", + "email": "weitzman@tejasa.com", + "role": "Maintainer" }, { - "name": "Devin Carlson", - "homepage": "https://www.drupal.org/user/290182" + "name": "Hans Salvisberg", + "homepage": "https://www.drupal.org/u/salvis", + "email": "drupal@salvisberg.com", + "role": "Maintainer" }, { - "name": "Drupal Media Team", - "homepage": "https://www.drupal.org/user/3260690" + "name": "Luca Lusso", + "homepage": "https://www.drupal.org/u/lussoluca", + "role": "Maintainer" }, { - "name": "cs_shadow", - "homepage": "https://www.drupal.org/user/2828287" + "name": "Marco (willzyx)", + "homepage": "https://www.drupal.org/u/willzyx", + "role": "Maintainer" }, { - "name": "slashrsm", - "homepage": "https://www.drupal.org/user/744628" + "name": "See contributors", + "homepage": "https://www.drupal.org/node/3236/committers" + }, + { + "name": "salvis", + "homepage": "https://www.drupal.org/user/82964" + }, + { + "name": "willzyx", + "homepage": "https://www.drupal.org/user/1043862" } ], - "description": "Allows any entity to be embedded within a text area using a WYSIWYG editor.", - "homepage": "https://www.drupal.org/project/entity_embed", + "description": "Various blocks, pages, and functions for developers.", + "homepage": "http://drupal.org/project/devel", "support": { - "source": "http://cgit.drupalcode.org/entity_embed", - "issues": "https://www.drupal.org/project/issues/entity_embed", - "irc": "irc://irc.freenode.org/drupal-media" + "source": "http://cgit.drupalcode.org/devel", + "issues": "http://drupal.org/project/devel", + "irc": "irc://irc.freenode.org/drupal-contribute" } }, { - "name": "drupal/features", - "version": "3.5.0", + "name": "drupal/diff", + "version": "1.0.0-rc1", "source": { "type": "git", - "url": "https://git.drupal.org/project/features", - "reference": "8.x-3.5" + "url": "https://git.drupal.org/project/diff", + "reference": "8.x-1.0-rc1" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/features-8.x-3.5.zip", - "reference": "8.x-3.5", - "shasum": "546b34387018f9adbe742b6992c4d473f9447c41" + "url": "https://ftp.drupal.org/files/projects/diff-8.x-1.0-rc1.zip", + "reference": "8.x-1.0-rc1", + "shasum": "4945154c2c07444195a7ae07011a3b3db941c72a" }, "require": { - "drupal/config_update": "*", - "drupal/core": "*" + "drupal/core": "~8.0", + "mkalkbrenner/php-htmldiff-advanced": "~0.0.8" }, "type": "drupal-module", "extra": { "branch-alias": { - "dev-3.x": "3.x-dev" + "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-3.5", - "datestamp": "1488908583", + "version": "8.x-1.0-rc1", + "datestamp": "1484566683", "security-coverage": { - "status": "covered", - "message": "Covered by Drupal's security advisory policy" + "status": "not-covered", + "message": "RC releases are not covered by Drupal security advisories." } } }, @@ -1686,71 +2448,82 @@ ], "authors": [ { - "name": "dawehner", - "homepage": "https://www.drupal.org/user/99340" + "name": "Miro Dietiker (miro_dietiker)", + "homepage": "https://www.drupal.org/u/miro_dietiker", + "role": "Maintainer" }, { - "name": "e2thex", - "homepage": "https://www.drupal.org/user/189123" + "name": "Juampy NR (juampynr)", + "homepage": "https://www.drupal.org/u/juampynr", + "role": "Maintainer" }, { - "name": "febbraro", - "homepage": "https://www.drupal.org/user/43670" + "name": "Lucian Hangea (lhangea)", + "homepage": "https://www.drupal.org/u/lhangea", + "role": "Maintainer" }, { - "name": "jmiccolis", - "homepage": "https://www.drupal.org/user/31731" + "name": "Alan D.", + "homepage": "https://www.drupal.org/u/alan-d.", + "role": "Maintainer" }, { - "name": "mpotter", - "homepage": "https://www.drupal.org/user/616192" + "name": "Brian Gilbert (realityloop).", + "homepage": "https://www.drupal.org/u/realityloop", + "role": "Maintainer" }, { - "name": "nedjo", - "homepage": "https://www.drupal.org/user/4481" + "name": "miro_dietiker", + "homepage": "https://www.drupal.org/user/227761" }, { - "name": "tim.plunkett", - "homepage": "https://www.drupal.org/user/241634" + "name": "realityloop", + "homepage": "https://www.drupal.org/user/139189" + }, + { + "name": "rötzi", + "homepage": "https://www.drupal.org/user/73064" + }, + { + "name": "yhahn", + "homepage": "https://www.drupal.org/user/264833" } ], - "description": "Enables administrators to package configuration into modules.", - "homepage": "https://www.drupal.org/project/features", + "description": "Compares two entity revisions", + "homepage": "https://www.drupal.org/project/diff", "support": { - "source": "http://cgit.drupalcode.org/features" + "source": "http://cgit.drupalcode.org/diff", + "issues": "https://www.drupal.org/project/issues/diff" } }, { - "name": "drupal/inline_entity_form", - "version": "1.0.0-beta1", + "name": "drupal/embed", + "version": "1.0.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/inline_entity_form", - "reference": "8.x-1.0-beta1" + "url": "https://git.drupal.org/project/embed", + "reference": "8.x-1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/inline_entity_form-8.x-1.0-beta1.zip", - "reference": "8.x-1.0-beta1", - "shasum": "185ffc28a7b68d19cce057855d1c111f1741a3ea" + "url": "https://ftp.drupal.org/files/projects/embed-8.x-1.0.zip", + "reference": "8.x-1.0", + "shasum": "cc746ad807260e01c7788dd82110dcebbb4d678a" }, "require": { "drupal/core": "~8.0" }, - "require-dev": { - "drupal/entity_reference_revisions": "*" - }, "type": "drupal-module", "extra": { "branch-alias": { "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.0-beta1", - "datestamp": "1477868343", - "security-coverage": { - "status": "not-covered", - "message": "Beta releases are not covered by Drupal security advisories." + "version": "8.x-1.0", + "datestamp": "1490755685", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" } } }, @@ -1760,53 +2533,50 @@ ], "authors": [ { - "name": "bojanz", - "homepage": "https://www.drupal.org/user/86106" + "name": "Dave Reid", + "homepage": "https://www.drupal.org/user/53892" }, { - "name": "dawehner", - "homepage": "https://www.drupal.org/user/99340" + "name": "Devin Carlson", + "homepage": "https://www.drupal.org/user/290182" }, { - "name": "rszrama", - "homepage": "https://www.drupal.org/user/49344" + "name": "Drupal Media Team", + "homepage": "https://www.drupal.org/user/3260690" }, { - "name": "slashrsm", - "homepage": "https://www.drupal.org/user/744628" + "name": "cs_shadow", + "homepage": "https://www.drupal.org/user/2828287" }, { - "name": "webflo", - "homepage": "https://www.drupal.org/user/254778" + "name": "slashrsm", + "homepage": "https://www.drupal.org/user/744628" } ], - "description": "Provides a widget for inline management (creation, modification, removal) of referenced entities.", - "homepage": "https://www.drupal.org/project/inline_entity_form", + "description": "Provide a framework for various different types of embeds in WYSIWYG editors, common functionality, interfaces, and standards.", + "homepage": "https://www.drupal.org/project/embed", "support": { - "source": "http://cgit.drupalcode.org/inline_entity_form" + "source": "http://cgit.drupalcode.org/embed", + "issues": "https://www.drupal.org/project/issues/embed", + "irc": "irc://irc.freenode.org/drupal-media" } }, { - "name": "drupal/media_entity", - "version": "1.7.0", + "name": "drupal/entity", + "version": "1.0.0-beta3", "source": { "type": "git", - "url": "https://git.drupal.org/project/media_entity", - "reference": "8.x-1.7" + "url": "https://git.drupal.org/project/entity", + "reference": "8.x-1.0-beta3" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/media_entity-8.x-1.7.zip", - "reference": "8.x-1.7", - "shasum": "5f7ccdf1db07732f3c94e642e60d88746e73cc86" + "url": "https://ftp.drupal.org/files/projects/entity-8.x-1.0-beta3.zip", + "reference": "8.x-1.0-beta3", + "shasum": "5d74dbef7bff0db099517b2c7aad14312eb02afa" }, "require": { - "drupal/core": "*", - "drupal/entity": "*" - }, - "require-dev": { - "drupal/entity": "*", - "drupal/inline_entity_form": "*" + "drupal/core": "~8.5" }, "type": "drupal-module", "extra": { @@ -1814,11 +2584,11 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.7", - "datestamp": "1510737185", + "version": "8.x-1.0-beta3", + "datestamp": "1520958485", "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." } } }, @@ -1832,70 +2602,131 @@ "homepage": "https://www.drupal.org/user/214652" }, { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" - }, - { - "name": "Drupal Media Team", - "homepage": "https://www.drupal.org/user/3260690" + "name": "bojanz", + "homepage": "https://www.drupal.org/user/86106" }, { - "name": "Drupal media CI", - "homepage": "https://www.drupal.org/user/3057985" + "name": "dawehner", + "homepage": "https://www.drupal.org/user/99340" }, { - "name": "Primsi", - "homepage": "https://www.drupal.org/user/282629" + "name": "dixon_", + "homepage": "https://www.drupal.org/user/239911" }, { - "name": "boztek", - "homepage": "https://www.drupal.org/user/134410" + "name": "fago", + "homepage": "https://www.drupal.org/user/16747" + } + ], + "description": "Provides expanded entity APIs, which will be moved to Drupal core one day.", + "homepage": "http://drupal.org/project/entity", + "support": { + "source": "http://cgit.drupalcode.org/entity" + } + }, + { + "name": "drupal/entity_browser", + "version": "2.0.0-alpha2", + "source": { + "type": "git", + "url": "https://git.drupal.org/project/entity_browser", + "reference": "8.x-2.0-alpha2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.0-alpha2.zip", + "reference": "8.x-2.0-alpha2", + "shasum": "f31ad069e5c5e95db9b9410a4d71038ac0c5b370" + }, + "require": { + "drupal/core": "~8.0" + }, + "require-dev": { + "drupal/ctools": "*", + "drupal/inline_entity_form": "*", + "drupal/paragraphs": "*", + "drupal/token": "*" + }, + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-8.x-1.x": "8.1.x-dev" }, + "drupal": { + "version": "8.x-2.0-alpha2", + "datestamp": "1512118387", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ { - "name": "chr.fritsch", - "homepage": "https://www.drupal.org/user/2103716" + "name": "Janez Urevc", + "homepage": "https://github.com/slashrsm", + "role": "Maintainer" }, { - "name": "jcisio", - "homepage": "https://www.drupal.org/user/210762" + "name": "Primoz Hmeljak", + "homepage": "https://github.com/primsi", + "role": "Maintainer" }, { - "name": "katzilla", - "homepage": "https://www.drupal.org/user/260398" + "name": "See other contributors", + "homepage": "https://www.drupal.org/node/1943336/committers", + "role": "contributor" }, { - "name": "marcoscano", - "homepage": "https://www.drupal.org/user/1288796" + "name": "Primsi", + "homepage": "https://www.drupal.org/user/282629" }, { - "name": "phenaproxima", - "homepage": "https://www.drupal.org/user/205645" + "name": "marcingy", + "homepage": "https://www.drupal.org/user/77320" }, { - "name": "seanB", - "homepage": "https://www.drupal.org/user/545912" + "name": "samuel.mortenson", + "homepage": "https://www.drupal.org/user/2582268" }, { "name": "slashrsm", "homepage": "https://www.drupal.org/user/744628" } ], - "description": "Media entity API.", - "homepage": "https://www.drupal.org/project/media_entity", + "description": "Entity browsing and selecting component.", + "homepage": "http://drupal.org/project/entity_browser", "support": { - "source": "http://cgit.drupalcode.org/media_entity" + "source": "http://cgit.drupalcode.org/entity_browser", + "issues": "http://drupal.org/project/issues/entity_browser", + "irc": "irc://irc.freenode.org/drupal-contribute" } }, { - "name": "drupal/time_formatter", - "version": "dev-1.x", + "name": "drupal/entity_embed", + "version": "1.0.0-beta2", "source": { "type": "git", - "url": "https://git.drupal.org/project/time_formatter", - "reference": "57150a6244c9f231d871a8256470fce6ec877cbf" + "url": "https://git.drupal.org/project/entity_embed", + "reference": "8.x-1.0-beta2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/entity_embed-8.x-1.0-beta2.zip", + "reference": "8.x-1.0-beta2", + "shasum": "21cdeb2b058efce461683aed9a8951053512dca7" }, "require": { - "drupal/core": "~8.0" + "drupal/core": "*", + "drupal/embed": "*" + }, + "require-dev": { + "drupal/entity_browser": "*" }, "type": "drupal-module", "extra": { @@ -1903,11 +2734,11 @@ "dev-1.x": "1.x-dev" }, "drupal": { - "version": "8.x-1.x-dev", - "datestamp": "1456256339", + "version": "8.x-1.0-beta2", + "datestamp": "1476698339", "security-coverage": { "status": "not-covered", - "message": "Project has not opted into security advisory coverage!" + "message": "Beta releases are not covered by Drupal security advisories." } } }, @@ -1917,62 +2748,60 @@ ], "authors": [ { - "name": "Boobaa", - "homepage": "https://www.drupal.org/user/199303" + "name": "Dave Reid", + "homepage": "https://www.drupal.org/user/53892" }, { - "name": "akosh", - "homepage": "https://www.drupal.org/user/698510" + "name": "Devin Carlson", + "homepage": "https://www.drupal.org/user/290182" }, { - "name": "jan.mashat", - "homepage": "https://www.drupal.org/user/3198923" + "name": "Drupal Media Team", + "homepage": "https://www.drupal.org/user/3260690" }, { - "name": "tamasd", - "homepage": "https://www.drupal.org/user/372872" + "name": "cs_shadow", + "homepage": "https://www.drupal.org/user/2828287" }, { - "name": "yce", - "homepage": "https://www.drupal.org/user/2252152" + "name": "slashrsm", + "homepage": "https://www.drupal.org/user/744628" } ], - "description": "Field formatter for integer fields storing time in seconds/milliseconds displaying it in various formats.", - "homepage": "https://www.drupal.org/project/time_formatter", - "keywords": [ - "Drupal" - ], + "description": "Allows any entity to be embedded within a text area using a WYSIWYG editor.", + "homepage": "https://www.drupal.org/project/entity_embed", "support": { - "source": "http://cgit.drupalcode.org/time_formatter", - "issues": "http://drupal.org/project/issues/time_formatter" - }, - "time": "2016-02-23T19:31:18+00:00" + "source": "http://cgit.drupalcode.org/entity_embed", + "issues": "https://www.drupal.org/project/issues/entity_embed", + "irc": "irc://irc.freenode.org/drupal-media" + } }, { - "name": "drupal/token", - "version": "1.1.0", + "name": "drupal/features", + "version": "3.7.0", "source": { "type": "git", - "url": "https://git.drupal.org/project/token", - "reference": "8.x-1.1" + "url": "https://git.drupal.org/project/features", + "reference": "8.x-3.7" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/token-8.x-1.1.zip", - "reference": "8.x-1.1", - "shasum": "f11042a76bec028b0a86dc33cf6daa19eb55d545" + "url": "https://ftp.drupal.org/files/projects/features-8.x-3.7.zip", + "reference": "8.x-3.7", + "shasum": "1a832002f47f32a83eae789e42e4f06225de9e43" }, "require": { - "drupal/core": "~8.0" + "drupal/config_update": "^1.4", + "drupal/core": "*" }, "type": "drupal-module", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-1.1", - "datestamp": "1513810384", + "version": "8.x-3.7", + "datestamp": "1519763284", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -1985,1184 +2814,1077 @@ ], "authors": [ { - "name": "Berdir", - "homepage": "https://www.drupal.org/user/214652" + "name": "dawehner", + "homepage": "https://www.drupal.org/user/99340" }, { - "name": "Dave Reid", - "homepage": "https://www.drupal.org/user/53892" + "name": "e2thex", + "homepage": "https://www.drupal.org/user/189123" }, { - "name": "eaton", - "homepage": "https://www.drupal.org/user/16496" + "name": "febbraro", + "homepage": "https://www.drupal.org/user/43670" }, { - "name": "fago", - "homepage": "https://www.drupal.org/user/16747" + "name": "jmiccolis", + "homepage": "https://www.drupal.org/user/31731" }, { - "name": "greggles", - "homepage": "https://www.drupal.org/user/36762" - }, + "name": "mpotter", + "homepage": "https://www.drupal.org/user/616192" + }, { - "name": "mikeryan", - "homepage": "https://www.drupal.org/user/4420" + "name": "nedjo", + "homepage": "https://www.drupal.org/user/4481" + }, + { + "name": "tim.plunkett", + "homepage": "https://www.drupal.org/user/241634" } ], - "description": "Provides a user interface for the Token API and some missing core tokens.", - "homepage": "https://www.drupal.org/project/token", + "description": "Enables administrators to package configuration into modules", + "homepage": "https://www.drupal.org/project/features", "support": { - "source": "http://cgit.drupalcode.org/token" + "source": "http://cgit.drupalcode.org/features" } }, { - "name": "drush/drush", - "version": "9.1.0", + "name": "drupal/flysystem", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/drush-ops/drush.git", - "reference": "0380bba1ba88271caab8239edd640ee4ebaac3ee" + "url": "https://git.drupal.org/project/flysystem", + "reference": "8.x-1.0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/drush-ops/drush/zipball/0380bba1ba88271caab8239edd640ee4ebaac3ee", - "reference": "0380bba1ba88271caab8239edd640ee4ebaac3ee", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/flysystem-8.x-1.0.zip", + "reference": "8.x-1.0", + "shasum": "8b6bd358c24e7ec8504d324f6a50bdc11ac1dc14" }, "require": { - "chi-teck/drupal-code-generator": "^1.21.0", - "composer/semver": "^1.4", - "consolidation/annotated-command": "^2.8.1", - "consolidation/config": "^1.0.9", - "consolidation/output-formatters": "^3.1.12", - "consolidation/robo": "^1.1.5", - "ext-dom": "*", - "grasmash/yaml-expander": "^1.1.1", - "league/container": "~2", - "php": ">=5.6.0", - "psr/log": "~1.0", - "psy/psysh": "~0.6", - "sebastian/version": "^1|^2", - "symfony/config": "~2.2|^3", - "symfony/console": "~2.7|^3", - "symfony/event-dispatcher": "~2.7|^3", - "symfony/finder": "~2.7|^3", - "symfony/process": "~2.7|^3", - "symfony/var-dumper": "~2.7|^3", - "symfony/yaml": "~2.3|^3", - "webflo/drupal-finder": "^1.1", - "webmozart/path-util": "^2.1.0" + "drupal/core": "~8.0", + "league/flysystem": "^1.0.3", + "league/flysystem-replicate-adapter": "~1.0", + "twistor/flysystem-stream-wrapper": "^1.0.5" }, "require-dev": { - "lox/xhprof": "dev-master", - "phpunit/phpunit": "^4.8|^5.5.4", - "squizlabs/php_codesniffer": "^2.7" + "league/flysystem-memory": "~1.0" }, - "bin": [ - "drush" - ], - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "9.0.x-dev" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0", + "datestamp": "1497585842", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, "autoload": { "psr-4": { - "Drush\\": "src/", - "Drush\\Internal\\": "internal-copy/", - "Unish\\": "tests/" + "Drupal\\flysystem\\": "src/" } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/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": "twistor", + "homepage": "https://www.drupal.org/user/473738" }, { - "name": "Damian Lee", - "email": "damiankloip@googlemail.com" + "name": "vijaycs85", + "homepage": "https://www.drupal.org/user/93488" } ], - "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", - "time": "2018-02-06T20:02:10+00:00" + "description": "Provides access to various filesystem backends using Flysystem.", + "homepage": "https://www.drupal.org/project/flysystem", + "support": { + "source": "http://cgit.drupalcode.org/flysystem" + } }, { - "name": "easyrdf/easyrdf", - "version": "0.9.1", + "name": "drupal/flysystem_s3", + "version": "1.0.0-alpha2", "source": { "type": "git", - "url": "https://github.com/njh/easyrdf.git", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" + "url": "https://git.drupal.org/project/flysystem_s3", + "reference": "8.x-1.0-alpha2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", - "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/flysystem_s3-8.x-1.0-alpha2.zip", + "reference": "8.x-1.0-alpha2", + "shasum": "8793c4324e561c0dfe99acf164fc0883b880f348" }, "require": { - "ext-mbstring": "*", - "ext-pcre": "*", - "php": ">=5.2.8" - }, - "require-dev": { - "phpunit/phpunit": "~3.5", - "sami/sami": "~1.4", - "squizlabs/php_codesniffer": "~1.4.3" - }, - "suggest": { - "ml/json-ld": "~1.0" + "drupal/core": "~8.0", + "drupal/flysystem": "*", + "league/flysystem": "^1.0.20", + "league/flysystem-aws-s3-v3": "^1.0, !=1.0.12, !=1.0.13" }, - "type": "library", - "autoload": { - "psr-0": { - "EasyRdf_": "lib/" + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0-alpha2", + "datestamp": "1469068442", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "BSD-3-Clause" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Nicholas Humfrey", - "email": "njh@aelius.com", - "homepage": "http://www.aelius.com/njh/", - "role": "Developer" + "name": "cweagans", + "homepage": "https://www.drupal.org/user/404732" }, { - "name": "Alexey Zakhlestin", - "email": "indeyets@gmail.com", - "role": "Developer" + "name": "twistor", + "homepage": "https://www.drupal.org/user/473738" + }, + { + "name": "vijaycs85", + "homepage": "https://www.drupal.org/user/93488" } ], - "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", - "homepage": "http://www.easyrdf.org/", - "keywords": [ - "Linked Data", - "RDF", - "Semantic Web", - "Turtle", - "rdfa", - "sparql" - ], - "time": "2015-02-27T09:45:49+00:00" + "description": "Provides an Amazon S3 plugin for Flysystem.", + "homepage": "https://www.drupal.org/project/flysystem_s3", + "support": { + "source": "http://cgit.drupalcode.org/flysystem_s3" + } }, { - "name": "egulias/email-validator", - "version": "1.2.14", + "name": "drupal/inline_entity_form", + "version": "1.0.0-beta1", "source": { "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "5642614492f0ca2064c01d60cc33284cc2f731a9" + "url": "https://git.drupal.org/project/inline_entity_form", + "reference": "8.x-1.0-beta1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/5642614492f0ca2064c01d60cc33284cc2f731a9", - "reference": "5642614492f0ca2064c01d60cc33284cc2f731a9", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/inline_entity_form-8.x-1.0-beta1.zip", + "reference": "8.x-1.0-beta1", + "shasum": "185ffc28a7b68d19cce057855d1c111f1741a3ea" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">= 5.3.3" + "drupal/core": "~8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.24" + "drupal/entity_reference_revisions": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Egulias\\": "src/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0-beta1", + "datestamp": "1477868343", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0+" ], "authors": [ { - "name": "Eduardo Gulias Davis" + "name": "bojanz", + "homepage": "https://www.drupal.org/user/86106" + }, + { + "name": "dawehner", + "homepage": "https://www.drupal.org/user/99340" + }, + { + "name": "rszrama", + "homepage": "https://www.drupal.org/user/49344" + }, + { + "name": "slashrsm", + "homepage": "https://www.drupal.org/user/744628" + }, + { + "name": "webflo", + "homepage": "https://www.drupal.org/user/254778" } ], - "description": "A library for validating emails", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "time": "2017-02-03T22:48:59+00:00" + "description": "Provides a widget for inline management (creation, modification, removal) of referenced entities.", + "homepage": "https://www.drupal.org/project/inline_entity_form", + "support": { + "source": "http://cgit.drupalcode.org/inline_entity_form" + } }, { - "name": "grasmash/expander", - "version": "1.0.0", + "name": "drupal/masquerade", + "version": "2.0.0-beta1", "source": { "type": "git", - "url": "https://github.com/grasmash/expander.git", - "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f" + "url": "https://git.drupal.org/project/masquerade", + "reference": "8.x-2.0-beta1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/grasmash/expander/zipball/95d6037344a4be1dd5f8e0b0b2571a28c397578f", - "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/masquerade-8.x-2.0-beta1.zip", + "reference": "8.x-2.0-beta1", + "shasum": "d8071c2b01db9a3cc5d5bc8ecd570276e12840d4" }, "require": { - "dflydev/dot-access-data": "^1.1.0", - "php": ">=5.4" - }, - "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", - "phpunit/phpunit": "^4|^5.5.4", - "satooshi/php-coveralls": "^1.0.2|dev-master", - "squizlabs/php_codesniffer": "^2.7" + "drupal/core": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-2.x": "2.x-dev" + }, + "drupal": { + "version": "8.x-2.0-beta1", + "datestamp": "1481184923", + "security-coverage": { + "status": "not-covered", + "message": "Project has not opted into security advisory coverage!" + } } }, - "autoload": { - "psr-4": { - "Grasmash\\Expander\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Matthew Grasmick" - } - ], - "description": "Expands internal property references in PHP arrays file.", - "time": "2017-12-21T22:14:55+00:00" - }, - { - "name": "grasmash/yaml-expander", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/grasmash/yaml-expander.git", - "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/grasmash/yaml-expander/zipball/3f0f6001ae707a24f4d9733958d77d92bf9693b1", - "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^1.1.0", - "php": ">=5.4", - "symfony/yaml": "^2.8.11|^3|^4" - }, - "require-dev": { - "greg-1-anderson/composer-test-scenarios": "^1", - "phpunit/phpunit": "^4.8|^5.5.4", - "satooshi/php-coveralls": "^1.0.2|dev-master", - "squizlabs/php_codesniffer": "^2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Grasmash\\YamlExpander\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "name": "Gurpartap Singh", + "homepage": "https://www.drupal.org/user/41470" + }, { - "name": "Matthew Grasmick" + "name": "andypost", + "homepage": "https://www.drupal.org/user/118908" + }, + { + "name": "deekayen", + "homepage": "https://www.drupal.org/user/972" + }, + { + "name": "deviantintegral", + "homepage": "https://www.drupal.org/user/71291" + }, + { + "name": "shrop", + "homepage": "https://www.drupal.org/user/14767" + }, + { + "name": "sun", + "homepage": "https://www.drupal.org/user/54136" } ], - "description": "Expands internal property references in a yaml file.", - "time": "2017-12-16T16:06:03+00:00" + "description": "Allows privileged users to masquerade as another user.", + "homepage": "https://www.drupal.org/project/masquerade", + "support": { + "source": "http://cgit.drupalcode.org/masquerade" + } }, { - "name": "guzzlehttp/guzzle", - "version": "6.3.0", + "name": "drupal/media_entity", + "version": "1.7.0", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" + "url": "https://git.drupal.org/project/media_entity", + "reference": "8.x-1.7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/media_entity-8.x-1.7.zip", + "reference": "8.x-1.7", + "shasum": "5f7ccdf1db07732f3c94e642e60d88746e73cc86" }, "require": { - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", - "php": ">=5.5" + "drupal/core": "*", + "drupal/entity": "*" }, "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.0 || ^5.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" + "drupal/entity": "*", + "drupal/inline_entity_form": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.7", + "datestamp": "1510737185", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "time": "2017-06-22T18:50:49+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "shasum": "" - }, - "require": { - "php": ">=5.5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" + "name": "Berdir", + "homepage": "https://www.drupal.org/user/214652" }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "time": "2016-12-20T10:07:11+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.4.2", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "name": "Dave Reid", + "homepage": "https://www.drupal.org/user/53892" }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Drupal Media Team", + "homepage": "https://www.drupal.org/user/3260690" }, { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "request", - "response", - "stream", - "uri", - "url" - ], - "time": "2017-03-20T17:10:46+00:00" - }, - { - "name": "jakub-onderka/php-console-color", - "version": "0.1", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", - "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "jakub-onderka/php-code-style": "1.0", - "jakub-onderka/php-parallel-lint": "0.*", - "jakub-onderka/php-var-dump-check": "0.*", - "phpunit/phpunit": "3.7.*", - "squizlabs/php_codesniffer": "1.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleColor": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ + "name": "Drupal media CI", + "homepage": "https://www.drupal.org/user/3057985" + }, { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com", - "homepage": "http://www.acci.cz" - } - ], - "time": "2014-04-08T15:00:19+00:00" - }, - { - "name": "jakub-onderka/php-console-highlighter", - "version": "v0.3.2", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", - "shasum": "" - }, - "require": { - "jakub-onderka/php-console-color": "~0.1", - "php": ">=5.3.0" - }, - "require-dev": { - "jakub-onderka/php-code-style": "~1.0", - "jakub-onderka/php-parallel-lint": "~0.5", - "jakub-onderka/php-var-dump-check": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JakubOnderka\\PhpConsoleHighlighter": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "name": "Primsi", + "homepage": "https://www.drupal.org/user/282629" + }, { - "name": "Jakub Onderka", - "email": "acci@acci.cz", - "homepage": "http://www.acci.cz/" + "name": "boztek", + "homepage": "https://www.drupal.org/user/134410" + }, + { + "name": "chr.fritsch", + "homepage": "https://www.drupal.org/user/2103716" + }, + { + "name": "jcisio", + "homepage": "https://www.drupal.org/user/210762" + }, + { + "name": "katzilla", + "homepage": "https://www.drupal.org/user/260398" + }, + { + "name": "marcoscano", + "homepage": "https://www.drupal.org/user/1288796" + }, + { + "name": "phenaproxima", + "homepage": "https://www.drupal.org/user/205645" + }, + { + "name": "seanB", + "homepage": "https://www.drupal.org/user/545912" + }, + { + "name": "slashrsm", + "homepage": "https://www.drupal.org/user/744628" } ], - "time": "2015-04-20T18:58:01+00:00" + "description": "Media entity API.", + "homepage": "https://www.drupal.org/project/media_entity", + "support": { + "source": "http://cgit.drupalcode.org/media_entity" + } }, { - "name": "league/container", - "version": "2.4.1", + "name": "drupal/pathauto", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/container.git", - "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0" + "url": "https://git.drupal.org/project/pathauto", + "reference": "8.x-1.1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/43f35abd03a12977a60ffd7095efd6a7808488c0", - "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/pathauto-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "3e24c9ff419c1f4bbe9d638eb7477a2169777a11" }, "require": { - "container-interop/container-interop": "^1.2", - "php": "^5.4.0 || ^7.0" - }, - "provide": { - "container-interop/container-interop-implementation": "^1.2", - "psr/container-implementation": "^1.0" - }, - "replace": { - "orno/di": "~2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*" + "drupal/core": "*", + "drupal/ctools": "*", + "drupal/token": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-2.x": "2.x-dev", "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.1", + "datestamp": "1520092685", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, - "autoload": { - "psr-4": { - "League\\Container\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Phil Bennett", - "email": "philipobenito@gmail.com", - "homepage": "http://www.philipobenito.com", - "role": "Developer" + "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": "A fast and intuitive dependency injection container.", - "homepage": "https://github.com/thephpleague/container", - "keywords": [ - "container", - "dependency", - "di", - "injection", - "league", - "provider", - "service" - ], - "time": "2017-05-10T09:20:27+00:00" + "description": "Provides a mechanism for modules to automatically generate aliases for the content they manage.", + "homepage": "https://www.drupal.org/project/pathauto", + "support": { + "source": "http://cgit.drupalcode.org/pathauto" + } }, { - "name": "masterminds/html5", - "version": "2.3.0", + "name": "drupal/rules", + "version": "3.0.0-alpha3", "source": { "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "2c37c6c520b995b761674de3be8455a381679067" + "url": "https://git.drupal.org/project/rules", + "reference": "8.x-3.0-alpha3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/2c37c6c520b995b761674de3be8455a381679067", - "reference": "2c37c6c520b995b761674de3be8455a381679067", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/rules-8.x-3.0-alpha3.zip", + "reference": "8.x-3.0-alpha3", + "shasum": "e8cf4212479a6f8418b519c93b08a8bd22cf00d3" }, "require": { - "ext-libxml": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "sami/sami": "~2.0", - "satooshi/php-coveralls": "1.0.*" + "drupal/core": "~8.0", + "drupal/typed_data": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "2.2-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" + "dev-3.x": "3.x-dev" + }, + "drupal": { + "version": "8.x-3.0-alpha3", + "datestamp": "1495743783", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0+" ], "authors": [ { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" + "name": "fago", + "homepage": "https://www.drupal.org/user/16747" }, { - "name": "Matt Farina", - "email": "matt@mattfarina.com" + "name": "klausi", + "homepage": "https://www.drupal.org/user/262198" } ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "time": "2017-09-04T12:26:28+00:00" + "description": "React on events and conditionally evaluate actions.", + "homepage": "https://www.drupal.org/project/rules", + "support": { + "source": "http://cgit.drupalcode.org/rules" + } }, { - "name": "nikic/php-parser", - "version": "v3.1.4", + "name": "drupal/scheduler", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078" + "url": "https://git.drupal.org/project/scheduler", + "reference": "8.x-1.0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e57b3a09784f846411aa7ed664eedb73e3399078", - "reference": "e57b3a09784f846411aa7ed664eedb73e3399078", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/scheduler-8.x-1.0.zip", + "reference": "8.x-1.0", + "shasum": "213025b64b417f459b73d260d7287ca1f916d587" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.5" + "drupal/core": "*" }, "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "drupal/devel_generate": "*", + "drupal/rules": "*" }, - "bin": [ - "bin/php-parse" - ], - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0", + "datestamp": "1510690385", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "BSD-3-Clause" + "GPL-2.0+" ], "authors": [ { - "name": "Nikita Popov" + "name": "Eric Schaefer (Eric Schaefer)", + "homepage": "https://www.drupal.org/u/eric-schaefer", + "role": "Maintainer" + }, + { + "name": "Jonathan Smith (jonathan1055)", + "homepage": "https://www.drupal.org/u/jonathan1055", + "role": "Maintainer" + }, + { + "name": "Pieter Frenssen (pfrenssen)", + "homepage": "https://www.drupal.org/u/pfrenssen", + "role": "Maintainer" + }, + { + "name": "Rick Manelius (rickmanelius)", + "homepage": "https://www.drupal.org/u/rickmanelius", + "role": "Maintainer" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2018-01-25T21:31:33+00:00" + "description": "Automatically publish and unpublish content at specified dates and times.", + "homepage": "https://drupal.org/project/scheduler", + "support": { + "source": "http://cgit.drupalcode.org/scheduler", + "issues": "https://www.drupal.org/project/issues/scheduler" + } }, { - "name": "paragonie/random_compat", - "version": "v2.0.11", + "name": "drupal/time_formatter", + "version": "dev-1.x", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", - "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", - "shasum": "" + "url": "https://git.drupal.org/project/time_formatter", + "reference": "57150a6244c9f231d871a8256470fce6ec877cbf" }, "require": { - "php": ">=5.2.0" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "drupal/core": "~8.0" }, - "type": "library", - "autoload": { - "files": [ - "lib/random.php" - ] + "type": "drupal-module", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.x-dev", + "datestamp": "1456256339", + "security-coverage": { + "status": "not-covered", + "message": "Project has not opted into security advisory coverage!" + } + } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0+" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" + "name": "Boobaa", + "homepage": "https://www.drupal.org/user/199303" + }, + { + "name": "akosh", + "homepage": "https://www.drupal.org/user/698510" + }, + { + "name": "jan.mashat", + "homepage": "https://www.drupal.org/user/3198923" + }, + { + "name": "tamasd", + "homepage": "https://www.drupal.org/user/372872" + }, + { + "name": "yce", + "homepage": "https://www.drupal.org/user/2252152" } ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "Field formatter for integer fields storing time in seconds/milliseconds displaying it in various formats.", + "homepage": "https://www.drupal.org/project/time_formatter", "keywords": [ - "csprng", - "pseudorandom", - "random" + "Drupal" ], - "time": "2017-09-27T21:40:39+00:00" + "support": { + "source": "http://cgit.drupalcode.org/time_formatter", + "issues": "http://drupal.org/project/issues/time_formatter" + }, + "time": "2016-02-23T19:31:18+00:00" }, { - "name": "psr/container", - "version": "1.0.0", + "name": "drupal/token", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "url": "https://git.drupal.org/project/token", + "reference": "8.x-1.1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/token-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "f11042a76bec028b0a86dc33cf6daa19eb55d545" }, "require": { - "php": ">=5.3.0" + "drupal/core": "~8.0" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.1", + "datestamp": "1513810384", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "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": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "time": "2017-02-14T16:28:37+00:00" + "description": "Provides a user interface for the Token API and some missing core tokens.", + "homepage": "https://www.drupal.org/project/token", + "support": { + "source": "http://cgit.drupalcode.org/token" + } }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "drupal/tour_ui", + "version": "1.0.0-alpha1", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://git.drupal.org/project/tour_ui", + "reference": "8.x-1.0-alpha1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/tour_ui-8.x-1.0-alpha1.zip", + "reference": "8.x-1.0-alpha1", + "shasum": "3c60a163c5699ad31c1a5fb349d5cb639e65e9f0" }, "require": { - "php": ">=5.3.0" + "drupal/core": "*" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0-alpha1", + "datestamp": "1496774342", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "GoZ", + "homepage": "https://www.drupal.org/user/226961" + }, + { + "name": "clemens.tolboom", + "homepage": "https://www.drupal.org/user/125814" + }, + { + "name": "nick_schuch", + "homepage": "https://www.drupal.org/user/1412036" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "time": "2016-08-06T14:39:51+00:00" + "description": "Provides a UI to manage guided tours.", + "homepage": "https://www.drupal.org/project/tour_ui", + "support": { + "source": "http://cgit.drupalcode.org/tour_ui" + } }, { - "name": "psr/log", - "version": "1.0.2", + "name": "drupal/typed_data", + "version": "1.0.0-alpha1", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "url": "https://git.drupal.org/project/typed_data", + "reference": "8.x-1.0-alpha1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/typed_data-8.x-1.0-alpha1.zip", + "reference": "8.x-1.0-alpha1", + "shasum": "69b7230546bfea53d57f8923183e964137f5a456" }, "require": { - "php": ">=5.3.0" + "drupal/core": "~8.0" }, - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0-alpha1", + "datestamp": "1475245822", + "security-coverage": { + "status": "not-covered", + "message": "Alpha releases are not covered by Drupal security advisories." + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0+" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "fago", + "homepage": "https://www.drupal.org/user/16747" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10T12:19:37+00:00" + "description": "Extends the core Typed Data API with new APIS and features.", + "homepage": "https://www.drupal.org/project/typed_data", + "support": { + "source": "http://cgit.drupalcode.org/typed_data" + } }, { - "name": "psy/psysh", - "version": "v0.8.17", + "name": "drupal/workflow", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec" + "url": "https://git.drupal.org/project/workflow", + "reference": "8.x-1.0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", - "shasum": "" + "url": "https://ftp.drupal.org/files/projects/workflow-8.x-1.0.zip", + "reference": "8.x-1.0", + "shasum": "2c439aab3f92b476cb88dbc517e131ea3cd7be47" }, "require": { - "dnoegel/php-xdg-base-dir": "0.1", - "jakub-onderka/php-console-highlighter": "0.3.*", - "nikic/php-parser": "~1.3|~2.0|~3.0", - "php": ">=5.3.9", - "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", - "symfony/var-dumper": "~2.7|~3.0|~4.0" - }, - "require-dev": { - "hoa/console": "~3.16|~1.14", - "phpunit/phpunit": "^4.8.35|^5.4.3", - "symfony/finder": "~2.1|~3.0|~4.0" - }, - "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.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + "drupal/core": "*" }, - "bin": [ - "bin/psysh" - ], - "type": "library", + "type": "drupal-module", "extra": { "branch-alias": { - "dev-develop": "0.8.x-dev" - } - }, - "autoload": { - "files": [ - "src/Psy/functions.php" - ], - "psr-4": { - "Psy\\": "src/Psy/" + "dev-1.x": "1.x-dev" + }, + "drupal": { + "version": "8.x-1.0", + "datestamp": "1513552385", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } } }, - "notification-url": "https://packagist.org/downloads/", + "notification-url": "https://packages.drupal.org/8/downloads", "license": [ - "MIT" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "name": "Bastlynn", + "homepage": "https://www.drupal.org/user/275249" + }, + { + "name": "Heine", + "homepage": "https://www.drupal.org/user/17943" + }, + { + "name": "JacobSingh", + "homepage": "https://www.drupal.org/user/68912" + }, + { + "name": "NancyDru", + "homepage": "https://www.drupal.org/user/101412" + }, + { + "name": "eaton", + "homepage": "https://www.drupal.org/user/16496" + }, + { + "name": "johnv", + "homepage": "https://www.drupal.org/user/591042" + }, + { + "name": "jvandyk", + "homepage": "https://www.drupal.org/user/2375" + }, + { + "name": "mfredrickson", + "homepage": "https://www.drupal.org/user/31994" + }, + { + "name": "q0rban", + "homepage": "https://www.drupal.org/user/31022" } ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "time": "2017-12-28T16:14:16+00:00" + "description": "Defines a field type with Workflows, containing customizable state transitions.", + "homepage": "https://www.drupal.org/project/workflow", + "support": { + "source": "http://cgit.drupalcode.org/workflow" + } }, { - "name": "sebastian/version", - "version": "1.0.6", + "name": "drush/drush", + "version": "9.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" + "url": "https://github.com/drush-ops/drush.git", + "reference": "e40f5bb6a291f643d4699a95ef6873ac40ae8302" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/drush-ops/drush/zipball/e40f5bb6a291f643d4699a95ef6873ac40ae8302", + "reference": "e40f5bb6a291f643d4699a95ef6873ac40ae8302", + "shasum": "" + }, + "require": { + "chi-teck/drupal-code-generator": "^1.21.0", + "composer/semver": "^1.4", + "consolidation/annotated-command": "^2.8.1", + "consolidation/config": "^1.0.9", + "consolidation/output-formatters": "^3.1.12", + "consolidation/robo": "^1.1.5", + "ext-dom": "*", + "grasmash/yaml-expander": "^1.1.1", + "league/container": "~2", + "php": ">=5.6.0", + "psr/log": "~1.0", + "psy/psysh": "~0.6", + "sebastian/version": "^1|^2", + "symfony/config": "~2.2|^3", + "symfony/console": "~2.7|^3", + "symfony/event-dispatcher": "~2.7|^3", + "symfony/finder": "~2.7|^3", + "symfony/process": "~2.7|^3", + "symfony/var-dumper": "~2.7|^3", + "symfony/yaml": "~2.3|^3", + "webflo/drupal-finder": "^1.1", + "webmozart/path-util": "^2.1.0" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", - "shasum": "" + "require-dev": { + "lox/xhprof": "dev-master", + "phpunit/phpunit": "^4.8|^5.5.4", + "squizlabs/php_codesniffer": "^2.7" }, + "bin": [ + "drush" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.0.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Drush\\": "src/", + "Drush\\Internal\\": "internal-copy/", + "Unish\\": "tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "GPL-2.0-or-later" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "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": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-06-21T13:59:46+00:00" + "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", + "time": "2018-02-27T21:26:53+00:00" }, { - "name": "stack/builder", - "version": "v1.0.5", + "name": "easyrdf/easyrdf", + "version": "0.9.1", "source": { "type": "git", - "url": "https://github.com/stackphp/builder.git", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" + "url": "https://github.com/njh/easyrdf.git", + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", - "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", "shasum": "" }, "require": { - "php": ">=5.3.0", - "symfony/http-foundation": "~2.1|~3.0|~4.0", - "symfony/http-kernel": "~2.1|~3.0|~4.0" + "ext-mbstring": "*", + "ext-pcre": "*", + "php": ">=5.2.8" }, "require-dev": { - "silex/silex": "~1.0" + "phpunit/phpunit": "~3.5", + "sami/sami": "~1.4", + "squizlabs/php_codesniffer": "~1.4.3" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "suggest": { + "ml/json-ld": "~1.0" }, + "type": "library", "autoload": { "psr-0": { - "Stack": "src" + "EasyRdf_": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "role": "Developer" } ], - "description": "Builder for stack middlewares based on HttpKernelInterface.", + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", "keywords": [ - "stack" + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" ], - "time": "2017-11-18T14:57:29+00:00" + "time": "2015-02-27T09:45:49+00:00" }, { - "name": "symfony-cmf/routing", - "version": "1.4.1", + "name": "egulias/email-validator", + "version": "1.2.14", "source": { "type": "git", - "url": "https://github.com/symfony-cmf/routing.git", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "5642614492f0ca2064c01d60cc33284cc2f731a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", - "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/5642614492f0ca2064c01d60cc33284cc2f731a9", + "reference": "5642614492f0ca2064c01d60cc33284cc2f731a9", "shasum": "" }, "require": { - "php": "^5.3.9|^7.0", - "psr/log": "1.*", - "symfony/http-kernel": "^2.2|3.*", - "symfony/routing": "^2.2|3.*" + "doctrine/lexer": "^1.0.1", + "php": ">= 5.3.3" }, "require-dev": { - "friendsofsymfony/jsrouting-bundle": "^1.1", - "symfony-cmf/testing": "^1.3", - "symfony/config": "^2.2|3.*", - "symfony/dependency-injection": "^2.0.5|3.*", - "symfony/event-dispatcher": "^2.1|3.*" - }, - "suggest": { - "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" + "phpunit/phpunit": "^4.8.24" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Cmf\\Component\\Routing\\": "" + "psr-0": { + "Egulias\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3171,111 +3893,101 @@ ], "authors": [ { - "name": "Symfony CMF Community", - "homepage": "https://github.com/symfony-cmf/Routing/contributors" + "name": "Eduardo Gulias Davis" } ], - "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", - "homepage": "http://cmf.symfony.com", + "description": "A library for validating emails", + "homepage": "https://github.com/egulias/EmailValidator", "keywords": [ - "database", - "routing" + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" ], - "time": "2017-05-09T08:10:41+00:00" + "time": "2017-02-03T22:48:59+00:00" }, { - "name": "symfony/class-loader", - "version": "v3.2.14", + "name": "ezyang/htmlpurifier", + "version": "v4.10.0", "source": { "type": "git", - "url": "https://github.com/symfony/class-loader.git", - "reference": "e192d96b15fdd168bdb1c91001d26c93ba4af482" + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "d85d39da4576a6934b72480be6978fb10c860021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/e192d96b15fdd168bdb1c91001d26c93ba4af482", - "reference": "e192d96b15fdd168bdb1c91001d26c93ba4af482", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021", + "reference": "d85d39da4576a6934b72480be6978fb10c860021", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.2" }, "require-dev": { - "symfony/finder": "~2.8|~3.0", - "symfony/polyfill-apcu": "~1.1" - }, - "suggest": { - "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" + "simpletest/simpletest": "^1.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\ClassLoader\\": "" + "psr-0": { + "HTMLPurifier": "library/" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "library/HTMLPurifier.composer.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" } ], - "description": "Symfony ClassLoader Component", - "homepage": "https://symfony.com", - "time": "2017-06-01T21:00:24+00:00" + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ], + "time": "2018-02-23T01:58:20+00:00" }, { - "name": "symfony/config", - "version": "v3.2.14", + "name": "grasmash/expander", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "e5533fcc0b3dd377626153b2852707878f363728" + "url": "https://github.com/grasmash/expander.git", + "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/e5533fcc0b3dd377626153b2852707878f363728", - "reference": "e5533fcc0b3dd377626153b2852707878f363728", + "url": "https://api.github.com/repos/grasmash/expander/zipball/95d6037344a4be1dd5f8e0b0b2571a28c397578f", + "reference": "95d6037344a4be1dd5f8e0b0b2571a28c397578f", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/filesystem": "~2.8|~3.0" + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4" }, "require-dev": { - "symfony/yaml": "~3.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "greg-1-anderson/composer-test-scenarios": "^1", + "phpunit/phpunit": "^4|^5.5.4", + "satooshi/php-coveralls": "^1.0.2|dev-master", + "squizlabs/php_codesniffer": "^2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Grasmash\\Expander\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3283,62 +3995,47 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Matthew Grasmick" } ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2017-04-12T14:13:17+00:00" + "description": "Expands internal property references in PHP arrays file.", + "time": "2017-12-21T22:14:55+00:00" }, { - "name": "symfony/console", - "version": "v3.2.14", + "name": "grasmash/yaml-expander", + "version": "1.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "eced439413608647aeff243038a33ea246b2b33a" + "url": "https://github.com/grasmash/yaml-expander.git", + "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/eced439413608647aeff243038a33ea246b2b33a", - "reference": "eced439413608647aeff243038a33ea246b2b33a", + "url": "https://api.github.com/repos/grasmash/yaml-expander/zipball/3f0f6001ae707a24f4d9733958d77d92bf9693b1", + "reference": "3f0f6001ae707a24f4d9733958d77d92bf9693b1", "shasum": "" }, - "require": { - "php": ">=5.5.9", - "symfony/debug": "~2.8|~3.0", - "symfony/polyfill-mbstring": "~1.0" + "require": { + "dflydev/dot-access-data": "^1.1.0", + "php": ">=5.4", + "symfony/yaml": "^2.8.11|^3|^4" }, "require-dev": { - "psr/log": "~1.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/filesystem": "", - "symfony/process": "" + "greg-1-anderson/composer-test-scenarios": "^1", + "phpunit/phpunit": "^4.8|^5.5.4", + "satooshi/php-coveralls": "^1.0.2|dev-master", + "squizlabs/php_codesniffer": "^2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Grasmash\\YamlExpander\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3346,55 +4043,52 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Matthew Grasmick" } ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2017-07-29T21:27:41+00:00" + "description": "Expands internal property references in a yaml file.", + "time": "2017-12-16T16:06:03+00:00" }, { - "name": "symfony/debug", - "version": "v3.4.4", + "name": "guzzlehttp/guzzle", + "version": "6.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/53f6af2805daf52a43b393b93d2f24925d35c937", - "reference": "53f6af2805daf52a43b393b93d2f24925d35c937", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699", + "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.4", + "php": ">=5.5" }, "require-dev": { - "symfony/http-kernel": "~2.8|~3.0|~4.0" + "ext-curl": "*", + "phpunit/phpunit": "^4.0 || ^5.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "6.2-dev" } }, "autoload": { + "files": [ + "src/functions_include.php" + ], "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3402,61 +4096,56 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2018-01-18T22:16:57+00:00" + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "time": "2017-06-22T18:50:49+00:00" }, { - "name": "symfony/dependency-injection", - "version": "v3.2.14", + "name": "guzzlehttp/promises", + "version": "v1.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761" + "url": "https://github.com/guzzle/promises.git", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761", - "reference": "d9f2e62e1a93d52ad4e4f6faaf66f6eef723d761", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "conflict": { - "symfony/yaml": "<3.2" + "php": ">=5.5.0" }, "require-dev": { - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~3.2" - }, - "suggest": { - "symfony/config": "", - "symfony/expression-language": "For using expressions in service container configuration", - "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony/yaml": "" + "phpunit/phpunit": "^4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\DependencyInjection\\": "" + "GuzzleHttp\\Promise\\": "src/" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "src/functions_include.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3465,58 +4154,53 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "Symfony DependencyInjection Component", - "homepage": "https://symfony.com", - "time": "2017-07-28T15:22:55+00:00" + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "time": "2016-12-20T10:07:11+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v3.2.14", + "name": "guzzlehttp/psr7", + "version": "1.4.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b8de6ee252af19330dd72ad5fc0dd4658a1d6325" + "url": "https://github.com/guzzle/psr7.git", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b8de6ee252af19330dd72ad5fc0dd4658a1d6325", - "reference": "b8de6ee252af19330dd72ad5fc0dd4658a1d6325", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.4.0", + "psr/http-message": "~1.0" }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0" + "provide": { + "psr/http-message-implementation": "1.0" }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "require-dev": { + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.4-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" + "GuzzleHttp\\Psr7\\": "src/" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "src/functions_include.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3525,97 +4209,100 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2017-06-02T08:26:05+00:00" + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "request", + "response", + "stream", + "uri", + "url" + ], + "time": "2017-03-20T17:10:46+00:00" }, { - "name": "symfony/filesystem", - "version": "v3.4.4", + "name": "jakub-onderka/php-console-color", + "version": "0.1", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "e078773ad6354af38169faf31c21df0f18ace03d" + "url": "https://github.com/JakubOnderka/PHP-Console-Color.git", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e078773ad6354af38169faf31c21df0f18ace03d", - "reference": "e078773ad6354af38169faf31c21df0f18ace03d", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/e0b393dacf7703fc36a4efc3df1435485197e6c1", + "reference": "e0b393dacf7703fc36a4efc3df1435485197e6c1", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": ">=5.3.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "require-dev": { + "jakub-onderka/php-code-style": "1.0", + "jakub-onderka/php-parallel-lint": "0.*", + "jakub-onderka/php-var-dump-check": "0.*", + "phpunit/phpunit": "3.7.*", + "squizlabs/php_codesniffer": "1.*" }, + "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "JakubOnderka\\PhpConsoleColor": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-2-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com", + "homepage": "http://www.acci.cz" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2018-01-03T07:37:34+00:00" + "time": "2014-04-08T15:00:19+00:00" }, { - "name": "symfony/finder", - "version": "v3.4.4", + "name": "jakub-onderka/php-console-highlighter", + "version": "v0.3.2", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f" + "url": "https://github.com/JakubOnderka/PHP-Console-Highlighter.git", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/613e26310776f49a1773b6737c6bd554b8bc8c6f", - "reference": "613e26310776f49a1773b6737c6bd554b8bc8c6f", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/7daa75df45242c8d5b75a22c00a201e7954e4fb5", + "reference": "7daa75df45242c8d5b75a22c00a201e7954e4fb5", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "jakub-onderka/php-console-color": "~0.1", + "php": ">=5.3.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } + "require-dev": { + "jakub-onderka/php-code-style": "~1.0", + "jakub-onderka/php-parallel-lint": "~0.5", + "jakub-onderka/php-var-dump-check": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" }, + "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "JakubOnderka\\PhpConsoleHighlighter": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3623,52 +4310,52 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jakub Onderka", + "email": "acci@acci.cz", + "homepage": "http://www.acci.cz/" } ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2018-01-03T07:37:34+00:00" + "time": "2015-04-20T18:58:01+00:00" }, { - "name": "symfony/http-foundation", - "version": "v3.2.14", + "name": "league/container", + "version": "2.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1" + "url": "https://github.com/thephpleague/container.git", + "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1", - "reference": "107b7e6c2372ad4859b8a8c8c5b4fb9d7a208fe1", + "url": "https://api.github.com/repos/thephpleague/container/zipball/43f35abd03a12977a60ffd7095efd6a7808488c0", + "reference": "43f35abd03a12977a60ffd7095efd6a7808488c0", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.1" + "container-interop/container-interop": "^1.2", + "php": "^5.4.0 || ^7.0" + }, + "provide": { + "container-interop/container-interop-implementation": "^1.2", + "psr/container-implementation": "^1.0" + }, + "replace": { + "orno/di": "~2.0" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0" + "phpunit/phpunit": "4.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "League\\Container\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3676,82 +4363,76 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Phil Bennett", + "email": "philipobenito@gmail.com", + "homepage": "http://www.philipobenito.com", + "role": "Developer" } ], - "description": "Symfony HttpFoundation Component", - "homepage": "https://symfony.com", - "time": "2017-07-20T07:58:49+00:00" + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "time": "2017-05-10T09:20:27+00:00" }, { - "name": "symfony/http-kernel", - "version": "v3.2.14", + "name": "league/flysystem", + "version": "1.0.43", "source": { "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "18ec42e19ec676d7da5ddff13f1eed68d88fb460" + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/18ec42e19ec676d7da5ddff13f1eed68d88fb460", - "reference": "18ec42e19ec676d7da5ddff13f1eed68d88fb460", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1ce7cc142d906ba58dc54c82915d355a9191c8a8", + "reference": "1ce7cc142d906ba58dc54c82915d355a9191c8a8", "shasum": "" }, "require": { - "php": ">=5.5.9", - "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/http-foundation": "~2.8.13|~3.1.6|~3.2" + "php": ">=5.5.9" }, "conflict": { - "symfony/config": "<2.8", - "twig/twig": "<1.34|<2.4,>=2" + "league/flysystem-sftp": "<1.0.6" }, "require-dev": { - "symfony/browser-kit": "~2.8|~3.0", - "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/css-selector": "~2.8|~3.0", - "symfony/dependency-injection": "~2.8|~3.0", - "symfony/dom-crawler": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/finder": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0", - "symfony/routing": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0", - "symfony/templating": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", - "symfony/var-dumper": "~3.2" + "ext-fileinfo": "*", + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7" }, "suggest": { - "symfony/browser-kit": "", - "symfony/class-loader": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "League\\Flysystem\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3759,51 +4440,65 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Frank de Jonge", + "email": "info@frenky.net" } ], - "description": "Symfony HttpKernel Component", - "homepage": "https://symfony.com", - "time": "2017-08-01T09:40:19+00:00" + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "time": "2018-03-01T10:27:04+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.7.0", + "name": "league/flysystem-aws-s3-v3", + "version": "1.0.18", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "bd515d8f392730c833bc1ba993a4f598da64fa5b" + "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", + "reference": "dc09b19f455750663b922ed52dcc0ff215bed284" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/bd515d8f392730c833bc1ba993a4f598da64fa5b", - "reference": "bd515d8f392730c833bc1ba993a4f598da64fa5b", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/dc09b19f455750663b922ed52dcc0ff215bed284", + "reference": "dc09b19f455750663b922ed52dcc0ff215bed284", "shasum": "" }, "require": { - "php": ">=5.3.3" + "aws/aws-sdk-php": "^3.0.0", + "league/flysystem": "^1.0.40", + "php": ">=5.5.0" }, - "suggest": { - "ext-iconv": "For best performance" + "require-dev": { + "henrikbjorn/phpspec-code-coverage": "~1.0.1", + "phpspec/phpspec": "^2.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, - "files": [ - "bootstrap.php" - ] + "League\\Flysystem\\AwsS3v3\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3811,58 +4506,45 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Frank de Jonge", + "email": "info@frenky.net" } ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "time": "2018-01-30T19:27:44+00:00" + "description": "Flysystem adapter for the AWS S3 SDK v3.x", + "time": "2017-06-30T06:29:25+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.7.0", + "name": "league/flysystem-replicate-adapter", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" + "url": "https://github.com/thephpleague/flysystem-replicate-adapter.git", + "reference": "864e80409c0918b0ed6921c3941247017d9db77c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", - "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "url": "https://api.github.com/repos/thephpleague/flysystem-replicate-adapter/zipball/864e80409c0918b0ed6921c3941247017d9db77c", + "reference": "864e80409c0918b0ed6921c3941247017d9db77c", "shasum": "" }, "require": { - "php": ">=5.3.3" + "league/flysystem": "~1.0", + "php": ">=5.4.0" }, - "suggest": { - "ext-mbstring": "For best performance" + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] + "League\\Flysystem\\Replicate\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3870,55 +4552,46 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Frank de Jonge", + "email": "info@frenky.net" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "time": "2018-01-30T19:27:44+00:00" + "description": "Flysystem adapter for Replica's", + "time": "2015-08-18T21:07:17+00:00" }, { - "name": "symfony/process", - "version": "v3.2.14", + "name": "masterminds/html5", + "version": "2.3.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc" + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "2c37c6c520b995b761674de3be8455a381679067" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc", - "reference": "b39d805dd6c4d1cba1f00cd80361ec80eed0d7bc", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/2c37c6c520b995b761674de3be8455a381679067", + "reference": "2c37c6c520b995b761674de3be8455a381679067", "shasum": "" }, "require": { - "php": ">=5.5.9" + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*", + "sami/sami": "~2.0", + "satooshi/php-coveralls": "1.0.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "2.2-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Masterminds\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3926,127 +4599,103 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Matt Butcher", + "email": "technosophos@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" } ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2017-07-03T08:06:20+00:00" + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "time": "2017-09-04T12:26:28+00:00" }, { - "name": "symfony/psr-http-message-bridge", - "version": "v1.0.2", + "name": "mkalkbrenner/php-htmldiff-advanced", + "version": "0.0.8", "source": { - "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "c2b757934f2d9681a287e662efbc27c41fe8ef86" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c2b757934f2d9681a287e662efbc27c41fe8ef86", - "reference": "c2b757934f2d9681a287e662efbc27c41fe8ef86", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "psr/http-message": "~1.0", - "symfony/http-foundation": "~2.3|~3.0|~4.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "~3.2|4.0" + "type": "git", + "url": "https://github.com/mkalkbrenner/php-htmldiff.git", + "reference": "3a714b48c9c3d3730baaf6d3949691e654cd37c9" }, - "suggest": { - "psr/http-message-implementation": "To use the HttpFoundation factory", - "zendframework/zend-diactoros": "To use the Zend Diactoros factory" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mkalkbrenner/php-htmldiff/zipball/3a714b48c9c3d3730baaf6d3949691e654cd37c9", + "reference": "3a714b48c9c3d3730baaf6d3949691e654cd37c9", + "shasum": "" }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "require": { + "caxy/php-htmldiff": ">=0.0.6", + "php": ">=5.5.0" }, + "type": "library", "autoload": { - "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" - } + "files": [ + "src/HtmlDiffAdvancedInterface.php", + "src/HtmlDiffAdvanced.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } + "GNU General Public License V2" ], - "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", + "description": "An add-on for the php-htmldiff library for comparing two HTML files/snippets and highlighting the differences using simple HTML.", + "homepage": "https://github.com/mkalkbrenner/php-htmldiff", "keywords": [ - "http", - "http-message", - "psr-7" + "diff", + "html" ], - "time": "2017-12-19T00:31:44+00:00" + "time": "2016-07-25T17:07:32+00:00" }, { - "name": "symfony/routing", - "version": "v3.2.14", + "name": "mtdowling/jmespath.php", + "version": "2.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "b382d7c4f443372c118efcd0cd2bf1028434f2f5" + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/b382d7c4f443372c118efcd0cd2bf1028434f2f5", - "reference": "b382d7c4f443372c118efcd0cd2bf1028434f2f5", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/adcc9531682cf87dfda21e1fd5d0e7a41d292fac", + "reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "conflict": { - "symfony/config": "<2.8" + "php": ">=5.4.0" }, "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/yaml": "~2.8|~3.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" + "phpunit/phpunit": "~4.0" }, + "bin": [ + "bin/jp.php" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "2.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Routing\\": "" + "JmesPath\\": "src/" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "src/JmesPath.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4055,143 +4704,96 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "Symfony Routing Component", - "homepage": "https://symfony.com", + "description": "Declaratively specify how to extract elements from a JSON document", "keywords": [ - "router", - "routing", - "uri", - "url" + "json", + "jsonpath" ], - "time": "2017-06-23T06:35:45+00:00" + "time": "2016-12-03T22:08:25+00:00" }, { - "name": "symfony/serializer", - "version": "v3.2.14", + "name": "nikic/php-parser", + "version": "v3.1.5", "source": { "type": "git", - "url": "https://github.com/symfony/serializer.git", - "reference": "dc98d5ab4ae29dc47bfb1507b39806bfe13d3477" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/dc98d5ab4ae29dc47bfb1507b39806bfe13d3477", - "reference": "dc98d5ab4ae29dc47bfb1507b39806bfe13d3477", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "conflict": { - "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", - "symfony/property-info": "<3.1", - "symfony/yaml": "<3.1" + "ext-tokenizer": "*", + "php": ">=5.5" }, "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "phpdocumentor/reflection-docblock": "~3.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/property-access": "~2.8|~3.0", - "symfony/property-info": "~3.1", - "symfony/yaml": "~3.1" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "For using the XML mapping loader.", - "symfony/http-foundation": "To use the DataUriNormalizer.", - "symfony/property-access": "For using the ObjectNormalizer.", - "symfony/property-info": "To deserialize relations.", - "symfony/yaml": "For using the default YAML mapping loader." + "phpunit/phpunit": "~4.0|~5.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Serializer\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Nikita Popov" } ], - "description": "Symfony Serializer Component", - "homepage": "https://symfony.com", - "time": "2017-07-06T07:39:51+00:00" + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "time": "2018-02-28T20:30:58+00:00" }, { - "name": "symfony/translation", - "version": "v3.2.14", + "name": "paragonie/random_compat", + "version": "v2.0.11", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "df36a48672b929bf3995eb62c58d83004b1d0d50" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/df36a48672b929bf3995eb62c58d83004b1d0d50", - "reference": "df36a48672b929bf3995eb62c58d83004b1d0d50", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", + "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/config": "<2.8" + "php": ">=5.2.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~2.8|~3.0" + "phpunit/phpunit": "4.*|5.*" }, "suggest": { - "psr/log": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "lib/random.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4200,75 +4802,46 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "time": "2017-06-24T16:45:17+00:00" + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-09-27T21:40:39+00:00" }, { - "name": "symfony/validator", - "version": "v3.2.14", + "name": "psr/container", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/validator.git", - "reference": "39244fbf580e01acc3f5df01238a8f69b1b3e46f" + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/39244fbf580e01acc3f5df01238a8f69b1b3e46f", - "reference": "39244fbf580e01acc3f5df01238a8f69b1b3e46f", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": ">=5.5.9", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation": "~2.8|~3.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.0", - "egulias/email-validator": "^1.2.8|~2.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~2.8|~3.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", - "doctrine/cache": "For using the default cached annotation reader and metadata cache.", - "egulias/email-validator": "Strict (RFC compliant) email validation", - "psr/cache-implementation": "For using the metadata cache.", - "symfony/config": "", - "symfony/expression-language": "For using the Expression validator", - "symfony/http-foundation": "", - "symfony/intl": "", - "symfony/yaml": "" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Validator\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Container\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4276,64 +4849,48 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Validator Component", - "homepage": "https://symfony.com", - "time": "2017-07-26T06:34:07+00:00" + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "time": "2017-02-14T16:28:37+00:00" }, { - "name": "symfony/var-dumper", - "version": "v3.4.4", + "name": "psr/http-message", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "reference": "472a9849930cf21f73abdb02240f17cf5b5bd1a7", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "require-dev": { - "ext-iconv": "*", - "twig/twig": "~1.34|~2.4" + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" }, - "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", - "ext-symfony_debug": "" + "require": { + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4341,58 +4898,49 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "debug", - "dump" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], - "time": "2018-01-29T09:03:43+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "symfony/yaml", - "version": "v3.2.14", + "name": "psr/log", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "78a0c5d7d43713212aac73d7c6a56754a5c26cea" + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/78a0c5d7d43713212aac73d7c6a56754a5c26cea", - "reference": "78a0c5d7d43713212aac73d7c6a56754a5c26cea", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "shasum": "" }, "require": { - "php": ">=5.5.9" - }, - "require-dev": { - "symfony/console": "~2.8|~3.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4400,150 +4948,165 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2017-06-02T09:43:35+00:00" + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" }, { - "name": "twig/twig", - "version": "v1.35.0", + "name": "psy/psysh", + "version": "v0.8.17", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "daa657073e55b0a78cce8fdd22682fddecc6385f" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/daa657073e55b0a78cce8fdd22682fddecc6385f", - "reference": "daa657073e55b0a78cce8fdd22682fddecc6385f", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", + "reference": "5069b70e8c4ea492c2b5939b6eddc78bfe41cfec", "shasum": "" }, "require": { - "php": ">=5.3.3" + "dnoegel/php-xdg-base-dir": "0.1", + "jakub-onderka/php-console-highlighter": "0.3.*", + "nikic/php-parser": "~1.3|~2.0|~3.0", + "php": ">=5.3.9", + "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", + "symfony/var-dumper": "~2.7|~3.0|~4.0" }, "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "~2.7", - "symfony/phpunit-bridge": "~3.3@dev" + "hoa/console": "~3.16|~1.14", + "phpunit/phpunit": "^4.8.35|^5.4.3", + "symfony/finder": "~2.1|~3.0|~4.0" + }, + "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.", + "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." }, + "bin": [ + "bin/psysh" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.35-dev" + "dev-develop": "0.8.x-dev" } }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, + "files": [ + "src/Psy/functions.php" + ], "psr-4": { - "Twig\\": "src/" + "Psy\\": "src/Psy/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - }, - { - "name": "Twig Team", - "homepage": "http://twig.sensiolabs.org/contributors", - "role": "Contributors" + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "http://twig.sensiolabs.org", + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", "keywords": [ - "templating" + "REPL", + "console", + "interactive", + "shell" ], - "time": "2017-09-27T18:06:46+00:00" + "time": "2017-12-28T16:14:16+00:00" }, { - "name": "webflo/drupal-finder", - "version": "1.1.0", + "name": "sebastian/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/webflo/drupal-finder.git", - "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/8a7886c575d6eaa67a425dceccc84e735c0b9637", - "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", "shasum": "" }, - "require-dev": { - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8" + "require": { + "php": ">=5.6" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "classmap": [ - "src/DrupalFinder.php" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "BSD-3-Clause" ], "authors": [ { - "name": "Florian Weber", - "email": "florian@webflo.org" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Helper class to locate a Drupal installation from a given path.", - "time": "2017-10-24T08:12:11+00:00" + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" }, { - "name": "webmozart/assert", - "version": "1.3.0", + "name": "stack/builder", + "version": "v1.0.5", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "url": "https://github.com/stackphp/builder.git", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/stackphp/builder/zipball/fb3d136d04c6be41120ebf8c0cc71fe9507d750a", + "reference": "fb3d136d04c6be41120ebf8c0cc71fe9507d750a", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=5.3.0", + "symfony/http-foundation": "~2.1|~3.0|~4.0", + "symfony/http-kernel": "~2.1|~3.0|~4.0" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "silex/silex": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" + "psr-0": { + "Stack": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4552,49 +5115,46 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "Builder for stack middlewares based on HttpKernelInterface.", "keywords": [ - "assert", - "check", - "validate" + "stack" ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2017-11-18T14:57:29+00:00" }, { - "name": "webmozart/path-util", - "version": "2.3.0", + "name": "stecman/symfony-console-completion", + "version": "0.7.0", "source": { "type": "git", - "url": "https://github.com/webmozart/path-util.git", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + "url": "https://github.com/stecman/symfony-console-completion.git", + "reference": "5461d43e53092b3d3b9dbd9d999f2054730f4bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", - "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "url": "https://api.github.com/repos/stecman/symfony-console-completion/zipball/5461d43e53092b3d3b9dbd9d999f2054730f4bbb", + "reference": "5461d43e53092b3d3b9dbd9d999f2054730f4bbb", "shasum": "" }, "require": { - "php": ">=5.3.3", - "webmozart/assert": "~1.0" + "php": ">=5.3.2", + "symfony/console": "~2.3 || ~3.0" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "0.6.x-dev" } }, "autoload": { "psr-4": { - "Webmozart\\PathUtil\\": "src/" + "Stecman\\Component\\Symfony\\Console\\BashCompletion\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4603,47 +5163,35 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Stephen Holdaway", + "email": "stephen@stecman.co.nz" } ], - "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", - "time": "2015-12-17T08:42:14+00:00" + "description": "Automatic BASH completion for Symfony Console Component based applications.", + "time": "2016-02-24T05:08:54+00:00" }, { - "name": "wikimedia/composer-merge-plugin", - "version": "v1.4.1", + "name": "sunra/php-simple-html-dom-parser", + "version": "v1.5.2", "source": { "type": "git", - "url": "https://github.com/wikimedia/composer-merge-plugin.git", - "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100" + "url": "https://github.com/sunra/php-simple-html-dom-parser.git", + "reference": "75b9b1cb64502d8f8c04dc11b5906b969af247c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100", - "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "url": "https://api.github.com/repos/sunra/php-simple-html-dom-parser/zipball/75b9b1cb64502d8f8c04dc11b5906b969af247c6", + "reference": "75b9b1cb64502d8f8c04dc11b5906b969af247c6", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0", + "ext-mbstring": "*", "php": ">=5.3.2" }, - "require-dev": { - "composer/composer": "~1.0.0", - "jakub-onderka/php-parallel-lint": "~0.8", - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "~2.1.0" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - }, - "class": "Wikimedia\\Composer\\MergePlugin" - }, + "type": "library", "autoload": { - "psr-4": { - "Wikimedia\\Composer\\": "src/" + "psr-0": { + "Sunra\\PhpSimple\\HtmlDomParser": "Src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4652,254 +5200,301 @@ ], "authors": [ { - "name": "Bryan Davis", - "email": "bd808@wikimedia.org" + "name": "Sunra", + "email": "sunra@yandex.ru", + "homepage": "https://github.com/sunra" + }, + { + "name": "S.C. Chen", + "homepage": "http://sourceforge.net/projects/simplehtmldom/" } ], - "description": "Composer plugin to merge multiple composer.json files", - "time": "2017-04-25T02:31:25+00:00" + "description": "Composer adaptation of: A HTML DOM parser written in PHP5+ let you manipulate HTML in a very easy way! Require PHP 5+. Supports invalid HTML. Find tags on an HTML page with selectors just like jQuery. Extract contents from HTML in a single line.", + "homepage": "https://github.com/sunra/php-simple-html-dom-parser", + "keywords": [ + "dom", + "html", + "parser" + ], + "time": "2016-11-22T22:57:47+00:00" }, { - "name": "zendframework/zend-diactoros", - "version": "1.7.0", + "name": "symfony-cmf/routing", + "version": "1.4.1", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-diactoros.git", - "reference": "ed6ce7e2105c400ca10277643a8327957c0384b7" + "url": "https://github.com/symfony-cmf/routing.git", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/ed6ce7e2105c400ca10277643a8327957c0384b7", - "reference": "ed6ce7e2105c400ca10277643a8327957c0384b7", + "url": "https://api.github.com/repos/symfony-cmf/routing/zipball/fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", + "reference": "fb1e7f85ff8c6866238b7e73a490a0a0243ae8ac", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "psr/http-message": "^1.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" + "php": "^5.3.9|^7.0", + "psr/log": "1.*", + "symfony/http-kernel": "^2.2|3.*", + "symfony/routing": "^2.2|3.*" }, "require-dev": { - "ext-dom": "*", - "ext-libxml": "*", - "phpunit/phpunit": "^5.7.16 || ^6.0.8", - "zendframework/zend-coding-standard": "~1.0" + "friendsofsymfony/jsrouting-bundle": "^1.1", + "symfony-cmf/testing": "^1.3", + "symfony/config": "^2.2|3.*", + "symfony/dependency-injection": "^2.0.5|3.*", + "symfony/event-dispatcher": "^2.1|3.*" + }, + "suggest": { + "symfony/event-dispatcher": "DynamicRouter can optionally trigger an event at the start of matching. Minimal version (~2.1)" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev", - "dev-develop": "1.8.x-dev" + "dev-master": "1.4-dev" } }, "autoload": { "psr-4": { - "Zend\\Diactoros\\": "src/" + "Symfony\\Cmf\\Component\\Routing\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-2-Clause" + "MIT" ], - "description": "PSR HTTP Message implementations", - "homepage": "https://github.com/zendframework/zend-diactoros", + "authors": [ + { + "name": "Symfony CMF Community", + "homepage": "https://github.com/symfony-cmf/Routing/contributors" + } + ], + "description": "Extends the Symfony2 routing component for dynamic routes and chaining several routers", + "homepage": "http://cmf.symfony.com", "keywords": [ - "http", - "psr", - "psr-7" + "database", + "routing" ], - "time": "2018-01-04T18:21:48+00:00" + "time": "2017-05-09T08:10:41+00:00" }, { - "name": "zendframework/zend-escaper", - "version": "2.5.2", + "name": "symfony/class-loader", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e" + "url": "https://github.com/symfony/class-loader.git", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/2dcd14b61a72d8b8e27d579c6344e12c26141d4e", - "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e", + "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "~4.0" + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/polyfill-apcu": "~1.1" + }, + "suggest": { + "symfony/polyfill-apcu": "For using ApcClassLoader on HHVM" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev", - "dev-develop": "2.6-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Zend\\Escaper\\": "src/" - } + "Symfony\\Component\\ClassLoader\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-escaper", - "keywords": [ - "escaper", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-06-30T19:48:38+00:00" + "description": "Symfony ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2018-01-03T07:37:34+00:00" }, { - "name": "zendframework/zend-feed", - "version": "2.9.0", + "name": "symfony/config", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-feed.git", - "reference": "abe88686124d492e0a2a84656f15e5482bfbe030" + "url": "https://github.com/symfony/config.git", + "reference": "05e10567b529476a006b00746c5f538f1636810e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/abe88686124d492e0a2a84656f15e5482bfbe030", - "reference": "abe88686124d492e0a2a84656f15e5482bfbe030", + "url": "https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e", + "reference": "05e10567b529476a006b00746c5f538f1636810e", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-escaper": "^2.5.2", - "zendframework/zend-stdlib": "^2.7.7 || ^3.1" + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" }, "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "psr/http-message": "^1.0.1", - "zendframework/zend-cache": "^2.7.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-db": "^2.8.2", - "zendframework/zend-http": "^2.7", - "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", - "zendframework/zend-validator": "^2.10.1" + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/event-dispatcher": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" }, "suggest": { - "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Zend\\Feed\\Reader\\Http\\Psr7ResponseDecorator", - "zendframework/zend-cache": "Zend\\Cache component, for optionally caching feeds between requests", - "zendframework/zend-db": "Zend\\Db component, for use with PubSubHubbub", - "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for easily extending ExtensionManager implementations", - "zendframework/zend-validator": "Zend\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent" + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.9-dev", - "dev-develop": "2.10-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Zend\\Feed\\": "src/" - } + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "provides functionality for consuming RSS and Atom feeds", - "keywords": [ - "ZendFramework", - "feed", - "zf" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2017-12-04T17:59:38+00:00" + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T10:03:57+00:00" }, { - "name": "zendframework/zend-stdlib", - "version": "3.1.0", + "name": "symfony/console", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78" + "url": "https://github.com/symfony/console.git", + "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78", - "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78", + "url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7", + "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" }, "require-dev": { - "athletic/athletic": "~0.1", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "^2.6.2" + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev", - "dev-develop": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "src/" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "homepage": "https://github.com/zendframework/zend-stdlib", - "keywords": [ - "stdlib", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2016-09-13T14:38:50+00:00" - } - ], - "packages-dev": [ + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2018-02-26T15:46:28+00:00" + }, { - "name": "behat/mink", - "version": "dev-master", + "name": "symfony/css-selector", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "04ab7af68536ac2c80fd6c08a6fd3620d3409891" + "url": "https://github.com/symfony/css-selector.git", + "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/04ab7af68536ac2c80fd6c08a6fd3620d3409891", - "reference": "04ab7af68536ac2c80fd6c08a6fd3620d3409891", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/544655f1fc078a9cd839fdda2b7b1e64627c826a", + "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a", "shasum": "" }, "require": { - "php": ">=5.3.1", - "symfony/css-selector": "^2.7|^3.0|^4.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.3|^4.0" - }, - "suggest": { - "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", - "behat/mink-goutte-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)" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Behat\\Mink\\": "src/" - } + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4907,54 +5502,59 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "http://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" - ], - "time": "2018-01-07T17:25:05+00:00" + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2018-02-03T14:55:07+00:00" }, { - "name": "behat/mink-browserkit-driver", - "version": "v1.3.2", + "name": "symfony/debug", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb" + "url": "https://github.com/symfony/debug.git", + "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/10e67fb4a295efcd62ea0bf16025a85ea19534fb", - "reference": "10e67fb4a295efcd62ea0bf16025a85ea19534fb", + "url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc", + "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc", "shasum": "" }, "require": { - "behat/mink": "^1.7.1@dev", - "php": ">=5.3.6", - "symfony/browser-kit": "~2.3|~3.0", - "symfony/dom-crawler": "~2.3|~3.0" + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "silex/silex": "~1.2", - "symfony/phpunit-bridge": "~2.7|~3.0" + "symfony/http-kernel": "~2.8|~3.0|~4.0" }, - "type": "mink-driver", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4962,54 +5562,70 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" - ], - "time": "2016-03-05T08:59:47+00:00" + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2018-02-28T21:49:22+00:00" }, { - "name": "behat/mink-goutte-driver", - "version": "v1.2.1", + "name": "symfony/dependency-injection", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07", + "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07", "shasum": "" }, "require": { - "behat/mink": "~1.6@dev", - "behat/mink-browserkit-driver": "~1.2@dev", - "fabpot/goutte": "~1.0.4|~2.0|~3.1", - "php": ">=5.3.1" + "php": "^5.5.9|>=7.0.8", + "psr/container": "^1.0" + }, + "conflict": { + "symfony/config": "<3.3.7", + "symfony/finder": "<3.3", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" + "symfony/config": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, - "type": "mink-driver", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5017,55 +5633,55 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Goutte driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "browser", - "goutte", - "headless", - "testing" - ], - "time": "2016-03-05T09:04:22+00:00" + "description": "Symfony DependencyInjection Component", + "homepage": "https://symfony.com", + "time": "2018-03-04T03:54:53+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.0.5", + "name": "symfony/dom-crawler", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", + "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "symfony/css-selector": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/css-selector": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5073,86 +5689,61 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ], - "time": "2015-06-14T21:17:01+00:00" - }, - { - "name": "drupal/coder", - "version": "8.2.12", - "source": { - "type": "git", - "url": "https://git.drupal.org/project/coder.git", - "reference": "984c54a7b1e8f27ff1c32348df69712afd86b17f" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4.0", - "squizlabs/php_codesniffer": ">=2.8.1 <3.0", - "symfony/yaml": ">=2.0.0" - }, - "require-dev": { - "phpunit/phpunit": ">=3.7 <6" - }, - "type": "phpcodesniffer-standard", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "description": "Coder is a library to review Drupal code.", - "homepage": "https://www.drupal.org/project/coder", - "keywords": [ - "code review", - "phpcs", - "standards" - ], - "time": "2017-03-18T10:28:49+00:00" + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" }, { - "name": "fabpot/goutte", - "version": "v3.2.2", + "name": "symfony/event-dispatcher", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "395f61d7c2e15a813839769553a4de16fa3b3c96" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "58990682ac3fdc1f563b7e705452921372aad11d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/395f61d7c2e15a813839769553a4de16fa3b3c96", - "reference": "395f61d7c2e15a813839769553a4de16fa3b3c96", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d", + "reference": "58990682ac3fdc1f563b7e705452921372aad11d", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.0", - "php": ">=5.5.0", - "symfony/browser-kit": "~2.1|~3.0|~4.0", - "symfony/css-selector": "~2.1|~3.0|~4.0", - "symfony/dom-crawler": "~2.1|~3.0|~4.0" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { - "symfony/phpunit-bridge": "^3.3 || ^4" + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, - "type": "application", + "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Goutte\\": "Goutte" + "Symfony\\Component\\EventDispatcher\\": "" }, "exclude-from-classmap": [ - "Goutte/Tests" + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5163,49 +5754,46 @@ { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A simple PHP Web Scraper", - "homepage": "https://github.com/FriendsOfPHP/Goutte", - "keywords": [ - "scraper" - ], - "time": "2017-11-19T08:45:40+00:00" + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T10:03:57+00:00" }, { - "name": "jcalderonzumba/gastonjs", - "version": "v1.2.0", + "name": "symfony/filesystem", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/jcalderonzumba/gastonjs.git", - "reference": "575a9c18d8b87990c37252e8d9707b29f0a313f3" + "url": "https://github.com/symfony/filesystem.git", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jcalderonzumba/gastonjs/zipball/575a9c18d8b87990c37252e8d9707b29f0a313f3", - "reference": "575a9c18d8b87990c37252e8d9707b29f0a313f3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541", + "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "~5.0|~6.0", - "php": ">=5.4" - }, - "require-dev": { - "phpunit/phpunit": "~4.6", - "silex/silex": "~1.2", - "symfony/phpunit-bridge": "~2.7", - "symfony/process": "~2.1" + "php": "^5.5.9|>=7.0.8" }, - "type": "phantomjs-api", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Zumba\\GastonJS\\": "src" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5213,56 +5801,48 @@ ], "authors": [ { - "name": "Juan Francisco Calderón Zumba", - "email": "juanfcz@gmail.com", - "homepage": "http://github.com/jcalderonzumba" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PhantomJS API based server for webpage automation", - "homepage": "https://github.com/jcalderonzumba/gastonjs", - "keywords": [ - "api", - "automation", - "browser", - "headless", - "phantomjs" - ], - "time": "2017-03-31T07:31:47+00:00" + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" }, { - "name": "jcalderonzumba/mink-phantomjs-driver", - "version": "v0.3.3", + "name": "symfony/finder", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/jcalderonzumba/MinkPhantomJSDriver.git", - "reference": "008f43670e94acd39273d15add1e7348eb23848d" + "url": "https://github.com/symfony/finder.git", + "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jcalderonzumba/MinkPhantomJSDriver/zipball/008f43670e94acd39273d15add1e7348eb23848d", - "reference": "008f43670e94acd39273d15add1e7348eb23848d", + "url": "https://api.github.com/repos/symfony/finder/zipball/a479817ce0a9e4adfd7d39c6407c95d97c254625", + "reference": "a479817ce0a9e4adfd7d39c6407c95d97c254625", "shasum": "" }, "require": { - "behat/mink": "~1.7", - "jcalderonzumba/gastonjs": "~1.0", - "php": ">=5.4", - "twig/twig": "~1.20|~2.0" - }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "phpunit/phpunit": "~4.6" + "php": "^5.5.9|>=7.0.8" }, - "type": "mink-driver", + "type": "library", "extra": { "branch-alias": { - "dev-master": "0.4.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "Zumba\\Mink\\Driver\\": "src" - } + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5270,101 +5850,141 @@ ], "authors": [ { - "name": "Juan Francisco Calderón Zumba", - "email": "juanfcz@gmail.com", - "homepage": "http://github.com/jcalderonzumba" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PhantomJS driver for Mink framework", - "homepage": "http://mink.behat.org/", - "keywords": [ - "ajax", - "browser", - "headless", - "javascript", - "phantomjs", - "testing" - ], - "time": "2016-12-01T10:57:30+00:00" + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2018-03-05T18:28:11+00:00" }, { - "name": "mikey179/vfsStream", - "version": "v1.6.5", + "name": "symfony/http-foundation", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/mikey179/vfsStream.git", - "reference": "d5fec95f541d4d71c4823bb5e30cf9b9e5b96145" + "url": "https://github.com/symfony/http-foundation.git", + "reference": "6f5935723c11b4125fc9927db6ad2feaa196e175" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mikey179/vfsStream/zipball/d5fec95f541d4d71c4823bb5e30cf9b9e5b96145", - "reference": "d5fec95f541d4d71c4823bb5e30cf9b9e5b96145", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6f5935723c11b4125fc9927db6ad2feaa196e175", + "reference": "6f5935723c11b4125fc9927db6ad2feaa196e175", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" }, "require-dev": { - "phpunit/phpunit": "~4.5" + "symfony/expression-language": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "psr-0": { - "org\\bovigo\\vfs\\": "src/main/php" - } + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Frank Kleine", - "homepage": "http://frankkleine.de/", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Virtual file system to mock the real file system in unit tests.", - "homepage": "http://vfs.bovigo.org/", - "time": "2017-08-01T08:02:14+00:00" + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T10:48:49+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "name": "symfony/http-kernel", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a443bbbd93682aa08e623fade4c94edd586ed2de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a443bbbd93682aa08e623fade4c94edd586ed2de", + "reference": "a443bbbd93682aa08e623fade4c94edd586ed2de", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.4.4|^4.0.4" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4.5|<4.0.5,>=4", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" }, "require-dev": { - "phpunit/phpunit": "^4.6" + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "^3.4.5|^4.0.5", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5372,52 +5992,51 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2017-09-11T18:02:19+00:00" + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2018-03-05T19:41:07+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "3.3.2", + "name": "symfony/polyfill-iconv", + "version": "v1.7.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "bd515d8f392730c833bc1ba993a4f598da64fa5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/bd515d8f392730c833bc1ba993a4f598da64fa5b", + "reference": "bd515d8f392730c833bc1ba993a4f598da64fa5b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "php": ">=5.3.3" }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "suggest": { + "ext-iconv": "For best performance" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "Symfony\\Polyfill\\Iconv\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5425,47 +6044,58 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-10T14:09:06+00:00" + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "time": "2018-01-30T19:27:44+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.7.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b", + "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": ">=5.3.3" }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.7-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5473,47 +6103,59 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "time": "2017-07-14T14:27:02+00:00" + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2018-01-30T19:27:44+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.7.3", + "name": "symfony/polyfill-php70", + "version": "v1.7.0", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf" + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", - "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f", + "reference": "3532bfcd8f933a7816f3a0a59682fc404776600f", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7" + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7.x-dev" + "dev-master": "1.7-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5521,497 +6163,603 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2017-11-24T13:59:53+00:00" + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-01-30T19:27:44+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "2.2.4", + "name": "symfony/process", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979" + "url": "https://github.com/symfony/process.git", + "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979", - "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979", + "url": "https://api.github.com/repos/symfony/process/zipball/cc4aea21f619116aaf1c58016a944e4821c8e8af", + "reference": "cc4aea21f619116aaf1c58016a944e4821c8e8af", "shasum": "" }, "require": { - "php": ">=5.3.3", - "phpunit/php-file-iterator": "~1.3", - "phpunit/php-text-template": "~1.2", - "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "^1.3.2", - "sebastian/version": "~1.0" - }, - "require-dev": { - "ext-xdebug": ">=2.1.4", - "phpunit/phpunit": "~4" - }, - "suggest": { - "ext-dom": "*", - "ext-xdebug": ">=2.2.1", - "ext-xmlwriter": "*" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "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" - ], - "time": "2015-10-06T15:47:00+00:00" + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2018-02-12T17:55:00+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "name": "symfony/psr-http-message-bridge", + "version": "v1.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "c2b757934f2d9681a287e662efbc27c41fe8ef86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c2b757934f2d9681a287e662efbc27c41fe8ef86", + "reference": "c2b757934f2d9681a287e662efbc27c41fe8ef86", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "psr/http-message": "~1.0", + "symfony/http-foundation": "~2.3|~3.0|~4.0" }, - "type": "library", + "require-dev": { + "symfony/phpunit-bridge": "~3.2|4.0" + }, + "suggest": { + "psr/http-message-implementation": "To use the HttpFoundation factory", + "zendframework/zend-diactoros": "To use the Zend Diactoros factory" + }, + "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "PSR HTTP message bridge", + "homepage": "http://symfony.com", "keywords": [ - "filesystem", - "iterator" + "http", + "http-message", + "psr-7" ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2017-12-19T00:31:44+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "symfony/routing", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/symfony/routing.git", + "reference": "8773a9d52715f1a579576ce0e60213de34f5ef3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/symfony/routing/zipball/8773a9d52715f1a579576ce0e60213de34f5ef3e", + "reference": "8773a9d52715f1a579576ce0e60213de34f5ef3e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/dependency-injection": "For loading routes from a service", + "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", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", "keywords": [ - "template" + "router", + "routing", + "uri", + "url" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2018-02-28T21:49:22+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.9", + "name": "symfony/serializer", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "url": "https://github.com/symfony/serializer.git", + "reference": "11bea1aebe9c8d506f47c01931b0df9f18629a8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/symfony/serializer/zipball/11bea1aebe9c8d506f47c01931b0df9f18629a8f", + "reference": "11bea1aebe9c8d506f47c01931b0df9f18629a8f", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "phpdocumentor/type-resolver": "<0.2.1", + "symfony/dependency-injection": "<3.2", + "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", + "symfony/property-info": "<3.1", + "symfony/yaml": "<3.4" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.2|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.1|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "For using the XML mapping loader.", + "symfony/http-foundation": "To use the DataUriNormalizer.", + "symfony/property-access": "For using the ObjectNormalizer.", + "symfony/property-info": "To deserialize relations.", + "symfony/yaml": "For using the default YAML mapping loader." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "time": "2017-02-26T11:10:40+00:00" + "description": "Symfony Serializer Component", + "homepage": "https://symfony.com", + "time": "2018-02-14T14:07:03+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "1.4.12", + "name": "symfony/translation", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "url": "https://github.com/symfony/translation.git", + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57", + "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ], - "time": "2017-12-04T08:55:13+00:00" + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2018-02-22T06:28:18+00:00" }, { - "name": "phpunit/phpunit", - "version": "4.8.36", + "name": "symfony/validator", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517" + "url": "https://github.com/symfony/validator.git", + "reference": "b0dcfa428168b381ac0340e5209a47780799e393" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517", - "reference": "46023de9a91eec7dfb06cc56cb4e260017298517", + "url": "https://api.github.com/repos/symfony/validator/zipball/b0dcfa428168b381ac0340e5209a47780799e393", + "reference": "b0dcfa428168b381ac0340e5209a47780799e393", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=5.3.3", - "phpspec/prophecy": "^1.3.1", - "phpunit/php-code-coverage": "~2.1", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "~2.3", - "sebastian/comparator": "~1.2.2", - "sebastian/diff": "~1.2", - "sebastian/environment": "~1.3", - "sebastian/exporter": "~1.2", - "sebastian/global-state": "~1.0", - "sebastian/version": "~1.0", - "symfony/yaml": "~2.1|~3.0" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation": "~2.8|~3.0|~4.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/dependency-injection": "<3.3", + "symfony/http-kernel": "<3.3.5", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/cache": "~1.0", + "egulias/email-validator": "^1.2.8|~2.0", + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/http-kernel": "^3.3.5|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { - "phpunit/php-invoker": "~1.1" + "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", + "doctrine/cache": "For using the default cached annotation reader and metadata cache.", + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the metadata cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/yaml": "" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.8.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "time": "2017-06-21T08:07:12+00:00" + "description": "Symfony Validator Component", + "homepage": "https://symfony.com", + "time": "2018-03-01T10:20:19+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "2.3.8", + "name": "symfony/var-dumper", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "80964679d81da3d5618519e0e4be488c3d7ecd7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", - "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/80964679d81da3d5618519e0e4be488c3d7ecd7d", + "reference": "80964679d81da3d5618519e0e4be488c3d7ecd7d", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2", - "sebastian/exporter": "~1.2" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "ext-iconv": "*", + "twig/twig": "~1.34|~2.4" }, "suggest": { - "ext-soap": "*" + "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", + "ext-symfony_debug": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", "keywords": [ - "mock", - "xunit" + "debug", + "dump" ], - "time": "2015-10-02T06:51:40+00:00" + "time": "2018-02-22T17:29:24+00:00" }, { - "name": "sebastian/comparator", - "version": "1.2.4", + "name": "symfony/yaml", + "version": "v3.4.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "url": "https://github.com/symfony/yaml.git", + "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb", + "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "time": "2017-01-29T09:50:25+00:00" + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2018-02-16T09:50:28+00:00" }, { - "name": "sebastian/diff", - "version": "1.4.3", + "name": "twig/twig", + "version": "v1.35.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "url": "https://github.com/twigphp/Twig.git", + "reference": "9c24f2cd39dc1906b76879e099970b7e53724601" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/9c24f2cd39dc1906b76879e099970b7e53724601", + "reference": "9c24f2cd39dc1906b76879e099970b7e53724601", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "psr/container": "^1.0", + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~3.3@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.35-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Twig_": "lib/" + }, + "psr-4": { + "Twig\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6019,560 +6767,463 @@ ], "authors": [ { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Twig Team", + "homepage": "http://twig.sensiolabs.org/contributors", + "role": "Contributors" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "http://twig.sensiolabs.org", "keywords": [ - "diff" + "templating" ], - "time": "2017-05-22T07:24:03+00:00" + "time": "2018-03-03T16:21:29+00:00" }, { - "name": "sebastian/environment", - "version": "1.3.8", + "name": "twistor/flysystem-stream-wrapper", + "version": "v1.0.8", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea" + "url": "https://github.com/twistor/flysystem-stream-wrapper.git", + "reference": "00278abc16bc4bd759e1ec4f2eadb0432fe8d5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea", - "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea", + "url": "https://api.github.com/repos/twistor/flysystem-stream-wrapper/zipball/00278abc16bc4bd759e1ec4f2eadb0432fe8d5ac", + "reference": "00278abc16bc4bd759e1ec4f2eadb0432fe8d5ac", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "league/flysystem": "~1.0", + "twistor/stream-util": "~1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.0" + "phpunit/phpunit": "~4.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Twistor\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Chris Leppanen", + "email": "chris.leppanen@gmail.com" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "time": "2016-08-18T05:49:44+00:00" + "description": "Adapts Flysystem filesystems to PHP stream wrappers.", + "homepage": "http://github.com/twistor/flysystem-stream-wrapper", + "time": "2017-11-06T05:32:20+00:00" }, { - "name": "sebastian/exporter", - "version": "1.2.2", + "name": "twistor/stream-util", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" + "url": "https://github.com/twistor/stream-util.git", + "reference": "226e74e6234508a53639b960c4a2752aee61799a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", - "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", + "url": "https://api.github.com/repos/twistor/stream-util/zipball/226e74e6234508a53639b960c4a2752aee61799a", + "reference": "226e74e6234508a53639b960c4a2752aee61799a", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~1.0" + "php": ">=5.3.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "~4.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Twistor\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Chris Leppanen", + "email": "chris.leppanen@gmail.com" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "time": "2016-06-17T09:04:28+00:00" + "description": "Helper utilities for dealing with streams.", + "homepage": "http://github.com/twistor/stream-util", + "time": "2015-06-12T11:33:28+00:00" }, { - "name": "sebastian/global-state", - "version": "1.1.1", + "name": "webflo/drupal-finder", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "url": "https://github.com/webflo/drupal-finder.git", + "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/webflo/drupal-finder/zipball/8a7886c575d6eaa67a425dceccc84e735c0b9637", + "reference": "8a7886c575d6eaa67a425dceccc84e735c0b9637", "shasum": "" }, - "require": { - "php": ">=5.3.3" - }, "require-dev": { - "phpunit/phpunit": "~4.2" - }, - "suggest": { - "ext-uopz": "*" + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": "^4.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "classmap": [ - "src/" + "src/DrupalFinder.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "GPL-2.0+" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Florian Weber", + "email": "florian@webflo.org" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "time": "2015-10-12T03:26:01+00:00" + "description": "Helper class to locate a Drupal installation from a given path.", + "time": "2017-10-24T08:12:11+00:00" }, { - "name": "sebastian/recursion-context", - "version": "1.0.5", + "name": "webmozart/assert", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", - "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.3-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-10-03T07:41:43+00:00" + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-01-29T19:49:41+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "2.9.1", + "name": "webmozart/path-util", + "version": "2.3.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", - "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.1.2" + "php": ">=5.3.3", + "webmozart/assert": "~1.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" }, - "bin": [ - "scripts/phpcs", - "scripts/phpcbf" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "2.3-dev" } }, "autoload": { - "classmap": [ - "CodeSniffer.php", - "CodeSniffer/CLI.php", - "CodeSniffer/Exception.php", - "CodeSniffer/File.php", - "CodeSniffer/Fixer.php", - "CodeSniffer/Report.php", - "CodeSniffer/Reporting.php", - "CodeSniffer/Sniff.php", - "CodeSniffer/Tokens.php", - "CodeSniffer/Reports/", - "CodeSniffer/Tokenizers/", - "CodeSniffer/DocGenerators/", - "CodeSniffer/Standards/AbstractPatternSniff.php", - "CodeSniffer/Standards/AbstractScopeSniff.php", - "CodeSniffer/Standards/AbstractVariableSniff.php", - "CodeSniffer/Standards/IncorrectPatternException.php", - "CodeSniffer/Standards/Generic/Sniffs/", - "CodeSniffer/Standards/MySource/Sniffs/", - "CodeSniffer/Standards/PEAR/Sniffs/", - "CodeSniffer/Standards/PSR1/Sniffs/", - "CodeSniffer/Standards/PSR2/Sniffs/", - "CodeSniffer/Standards/Squiz/Sniffs/", - "CodeSniffer/Standards/Zend/Sniffs/" - ] + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Greg Sherwood", - "role": "lead" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "http://www.squizlabs.com/php-codesniffer", - "keywords": [ - "phpcs", - "standards" - ], - "time": "2017-05-22T02:43:20+00:00" + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "time": "2015-12-17T08:42:14+00:00" }, { - "name": "symfony/browser-kit", - "version": "v3.4.4", + "name": "zendframework/zend-diactoros", + "version": "1.7.1", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "490f27762705c8489bd042fe3e9377a191dba9b4" + "url": "https://github.com/zendframework/zend-diactoros.git", + "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/490f27762705c8489bd042fe3e9377a191dba9b4", - "reference": "490f27762705c8489bd042fe3e9377a191dba9b4", + "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/bf26aff803a11c5cc8eb7c4878a702c403ec67f1", + "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/dom-crawler": "~2.8|~3.0|~4.0" + "php": "^5.6 || ^7.0", + "psr/http-message": "^1.0" }, - "require-dev": { - "symfony/css-selector": "~2.8|~3.0|~4.0", - "symfony/process": "~2.8|~3.0|~4.0" + "provide": { + "psr/http-message-implementation": "1.0" }, - "suggest": { - "symfony/process": "" + "require-dev": { + "ext-dom": "*", + "ext-libxml": "*", + "phpunit/phpunit": "^5.7.16 || ^6.0.8", + "zendframework/zend-coding-standard": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "1.7.x-dev", + "dev-develop": "1.8.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Zend\\Diactoros\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-2-Clause" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "description": "PSR HTTP Message implementations", + "homepage": "https://github.com/zendframework/zend-diactoros", + "keywords": [ + "http", + "psr", + "psr-7" ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2018-01-03T07:37:34+00:00" + "time": "2018-02-26T15:44:50+00:00" }, { - "name": "symfony/css-selector", - "version": "v3.2.14", + "name": "zendframework/zend-escaper", + "version": "2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "02983c144038e697c959e6b06ef6666de759ccbc" + "url": "https://github.com/zendframework/zend-escaper.git", + "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/02983c144038e697c959e6b06ef6666de759ccbc", - "reference": "02983c144038e697c959e6b06ef6666de759ccbc", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/2dcd14b61a72d8b8e27d579c6344e12c26141d4e", + "reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e", "shasum": "" }, "require": { - "php": ">=5.5.9" + "php": ">=5.5" + }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "2.5-dev", + "dev-develop": "2.6-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Zend\\Escaper\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "authors": [ - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "homepage": "https://github.com/zendframework/zend-escaper", + "keywords": [ + "escaper", + "zf2" ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2017-05-01T14:55:58+00:00" + "time": "2016-06-30T19:48:38+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v3.4.4", + "name": "zendframework/zend-feed", + "version": "2.9.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "09bd97b844b3151fab82f2fdd62db9c464b3910a" + "url": "https://github.com/zendframework/zend-feed.git", + "reference": "abe88686124d492e0a2a84656f15e5482bfbe030" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/09bd97b844b3151fab82f2fdd62db9c464b3910a", - "reference": "09bd97b844b3151fab82f2fdd62db9c464b3910a", + "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/abe88686124d492e0a2a84656f15e5482bfbe030", + "reference": "abe88686124d492e0a2a84656f15e5482bfbe030", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-mbstring": "~1.0" + "php": "^5.6 || ^7.0", + "zendframework/zend-escaper": "^2.5.2", + "zendframework/zend-stdlib": "^2.7.7 || ^3.1" }, "require-dev": { - "symfony/css-selector": "~2.8|~3.0|~4.0" + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "psr/http-message": "^1.0.1", + "zendframework/zend-cache": "^2.7.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-db": "^2.8.2", + "zendframework/zend-http": "^2.7", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.3", + "zendframework/zend-validator": "^2.10.1" }, "suggest": { - "symfony/css-selector": "" + "psr/http-message": "PSR-7 ^1.0.1, if you wish to use Zend\\Feed\\Reader\\Http\\Psr7ResponseDecorator", + "zendframework/zend-cache": "Zend\\Cache component, for optionally caching feeds between requests", + "zendframework/zend-db": "Zend\\Db component, for use with PubSubHubbub", + "zendframework/zend-http": "Zend\\Http for PubSubHubbub, and optionally for use with Zend\\Feed\\Reader", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for easily extending ExtensionManager implementations", + "zendframework/zend-validator": "Zend\\Validator component, for validating email addresses used in Atom feeds and entries when using the Writer subcomponent" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4-dev" + "dev-master": "2.9-dev", + "dev-develop": "2.10-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Zend\\Feed\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "description": "provides functionality for consuming RSS and Atom feeds", + "keywords": [ + "ZendFramework", + "feed", + "zf" ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2018-01-03T07:37:34+00:00" + "time": "2017-12-04T17:59:38+00:00" }, { - "name": "symfony/phpunit-bridge", - "version": "v3.2.14", + "name": "zendframework/zend-stdlib", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "9e5c470da4b1e3e9cd8e29fecbd7c91eb961d15f" + "url": "https://github.com/zendframework/zend-stdlib.git", + "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/9e5c470da4b1e3e9cd8e29fecbd7c91eb961d15f", - "reference": "9e5c470da4b1e3e9cd8e29fecbd7c91eb961d15f", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78", + "reference": "debedcfc373a293f9250cc9aa03cf121428c8e78", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "conflict": { - "phpunit/phpunit": ">=6.0" + "php": "^5.6 || ^7.0" }, - "suggest": { - "ext-zip": "Zip support is required when using bin/simple-phpunit", - "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + "require-dev": { + "athletic/athletic": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "^2.6.2" }, - "bin": [ - "bin/simple-phpunit" - ], - "type": "symfony-bridge", + "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.1-dev", + "dev-develop": "3.2-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Bridge\\PhpUnit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Zend\\Stdlib\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "homepage": "https://github.com/zendframework/zend-stdlib", + "keywords": [ + "stdlib", + "zf2" ], - "description": "Symfony PHPUnit Bridge", - "homepage": "https://symfony.com", - "time": "2017-06-02T09:43:35+00:00" + "time": "2016-09-13T14:38:50+00:00" } ], + "packages-dev": [], "aliases": [], "minimum-stability": "dev", "stability-flags": { + "drupal/diff": 5, + "drupal/entity_embed": 10, + "drupal/flysystem_s3": 15, "drupal/inline_entity_form": 10, + "drupal/masquerade": 10, + "drupal/rules": 15, "drupal/time_formatter": 20, - "behat/mink": 20 + "drupal/tour_ui": 15 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=5.5.9" + "php": "^7.1.0" }, "platform-dev": [] } diff --git a/drush/README.md b/drush/README.md new file mode 100644 index 0000000..9d7bd39 --- /dev/null +++ b/drush/README.md @@ -0,0 +1 @@ +This directory contains commands, configuration and site aliases for Drush. See https://packagist.org/search/?type=drupal-drush for a directory of Drush commands installable via Composer. diff --git a/drush/policy.drush.inc b/drush/policy.drush.inc new file mode 100644 index 0000000..64cd62d --- /dev/null +++ b/drush/policy.drush.inc @@ -0,0 +1,38 @@ +' . t('About') . ''; - $output .= '
' . t('The Configuration Update Base module provides functionality that other modules can use, related to updating and computing differences between configuration versions. This module does not provide any end-user functionality itself.') . '
'; - return $output; - } -} diff --git a/modules/contrib/config_update/config_update.services.yml b/modules/contrib/config_update/config_update.services.yml deleted file mode 100644 index 2a25860..0000000 --- a/modules/contrib/config_update/config_update.services.yml +++ /dev/null @@ -1,20 +0,0 @@ -services: - config_update.config_diff: - class: Drupal\config_update\ConfigDiffer - arguments: ['@string_translation'] - - config_update.config_list: - class: Drupal\config_update\ConfigListerWithProviders - arguments: ['@entity.manager', '@config.storage', '@config_update.extension_storage', '@config_update.extension_optional_storage', '@module_handler', '@theme_handler'] - - config_update.config_update: - class: Drupal\config_update\ConfigReverter - arguments: ['@entity.manager', '@config.storage', '@config_update.extension_storage', '@config_update.extension_optional_storage', '@config.factory', '@event_dispatcher'] - - config_update.extension_storage: - class: Drupal\Core\Config\ExtensionInstallStorage - arguments: ['@config.storage'] - - config_update.extension_optional_storage: - class: Drupal\Core\Config\ExtensionInstallStorage - arguments: ['@config.storage', 'config/optional'] diff --git a/modules/contrib/config_update/config_update_ui/README.txt b/modules/contrib/config_update/config_update_ui/README.txt deleted file mode 100644 index 5773062..0000000 --- a/modules/contrib/config_update/config_update_ui/README.txt +++ /dev/null @@ -1,173 +0,0 @@ -Configuration Update Reports module ------------------------------------ - -CONTENTS OF THIS README FILE -- Introduction -- Installation -- Generating reports in the user interface -- Generating reports using Drush commands -- Important notes *** Be sure to read this section *** - - -INTRODUCTION - -This module provides a report that allows you to see the differences between the -default configuration items provided by the current versions of your installed -modules, themes, and install profile, and the active configuration of your -site. From this report, you can also import new configuration provided by -updates, and revert your site configuration to the provided values. - -The main use case is: You update a module, and it has either changed default -configuration that it provides, or added new default configuration items that -you didn't get when you first installed the module. You want to be able to -import the new items, view the differences between the active site configuration -and the changed configuration, and possibly "revert" (or it may be an update) to -the newly-provided default configuration. - - -INSTALLATION - -Install the module in the normal way for Drupal modules. The only dependencies -are the Configuration Manager module (Drupal core), and the Configuration Update -Base module (part of this same project download). - - -GENERATING REPORTS IN THE USER INTERFACE - -You can generate configuration reports at Administration >> Configuration >> -Development >> Configuration management >> Update report (path: -admin/config/development/configuration/report ). - -You can generate a report for a particular type of configuration object, such as -Actions, Tours, Views, etc. Or, you can generate a report for an installed -module, theme, or install profile. Finally, you can generate a report that -contains all configuration in one report. - -The report has three sections, depending on what type you choose: - -1. Missing configuration items: Configuration items that are provided as - defaults by your currently-installed modules, themes, and install profile - that are missing from your active site configuration. - - Any items listed here can be imported into your site. - -2. Added configuration items: Configuration items that you added to the site - (not provided by a currently-installed module, theme, or install - profile). This section is only shown when you are running the report based on - a configuration type. - - Items listed here can be exported, which is useful for developers or if you - want to keep your site configuration in a version control system. - -3. Changed configuration items: Configuration items that are in your active site - configuration that differ from the same item currently being provided by an - installed module, theme, or install profile. - - You can export these items, see the differences between what is on your site - and what the module/theme/profile is currently providing, or "revert" to the - version currently being provided by the module/theme/profile in its default - configuration. - - Note that the differences may be a bit hard to read, but hopefully they'll - give you the general idea of what has changed. - - -GENERATING REPORTS USING DRUSH COMMANDS - -The reports detailed in the previous section can also be generated, in pieces, -using Drush commands (https://drupal.org/project/drush): - -drush config-list-types (clt) - Lists all the config types on your system. Reports can be run for - 'system.simple' (simple configuration), and 'system.all' (all types), in - addition to the types listed by this command. - -drush config-added-report (cra) -drush config-missing-report (crm) -drush config-different-report (crd) -drush config-inactive-report (cri) - Run config reports (see below). - -drush config-diff (cfd) - Show config differences for one item between active and imported (see below). - -The report commands run reports that tell what config has been added, is -missing, is inactive, or is different between your active site configuration and -the imported default configuration from config/install directories of your -installed profile, modules, and themes. - -For each report except "added", the first argument is one of: -- type: Runs the report for a configuration type; use drush config-list-types to - list them. -- module: Runs the report for an installed module. -- theme: Runs the report for an installed theme. -- profile: Runs the report for the install profile. - -The second argument for reports is the machine name of the configuration type, -module, theme, or install profile you want to run the report for. For the -"added" report, this is the only argument, as the added report is always by -configuration type. - -These are the same as the reports you get in the UI, which is described above; -the difference is that in Drush the report is separated into pieces, and the -UI report sections have more columns giving information about each config item. - -Once you have found a configuration item with differences, you can view the -differences using the config-diff command. This is a normalized/formatted diff -like in the UI of this module, so see above for details. - -Drush examples: - -drush clt -drush crm module node -drush cra block -drush crd theme bartik -drush crd type system.all -drush crd type system.simple -drush crd profile standard -drush cfd block.block.bartik_search - -Once you have figured out which configuration items are added, missing, or -different, you can: - -- Export them - see drush config-export. - -- Import missing configuration or revert to provided default values. There are -Drush commands to do this: - -drush config-revert (cfr) - Revert a config item found in a "different" report to the current version in - the module, theme, or install profile that provides it. - -drush config-revert-multiple (cfrm) - Revert all config items of one type or from one module, theme, or install - profile to the provided versions. - -drush config-import-missing (cfi) - Import a config item found in a "missing" or "inactive" report from the - current version in the module, theme, or install profile that provides it. - -You can also to use the drush config-import command to import/update multiple -configuration items. But this requires that you locate the files containing the -configuration you want to import, and copy them to your configuration staging -directory. - - -IMPORTANT NOTES - -Here are some notes about how this module functions: - -* This module is always looking at the base configuration items, without - overrides (from settings.php, for example) or translations. - -* It is possible for an install profile on a site to provide configuration that - overrides configuration from a module or theme. The install profile version - always takes precedence. As an example, consider the case where module Foo - provides a configuration item called foo.settings, and install profile Bar - overrides this with its own file. Any reports that include foo.settings will - be based on the differences between your site's active configuration and the - version in the install profile. This is not usually a problem, but it can be - confusing if you're looking at the Foo module report. The foo.settings item - will be present, but the differences reported will be between the install - profile's version and your site's active configuration, not the differences - between the Foo module version and your site's active configuration. diff --git a/modules/contrib/config_update/config_update_ui/config_update_ui.drush.inc b/modules/contrib/config_update/config_update_ui/config_update_ui.drush.inc deleted file mode 100644 index fd8cfb2..0000000 --- a/modules/contrib/config_update/config_update_ui/config_update_ui.drush.inc +++ /dev/null @@ -1,351 +0,0 @@ - 'List config types', - 'aliases' => ['clt'], - 'core' => ['8+'], - 'outputformat' => [ - 'default' => 'list', - ], - ]; - - $items['config-added-report'] = [ - 'description' => 'Display a list of config items that did not come from your installed modules, themes, or install profile', - 'arguments' => [ - 'name' => 'The type of config to report on. See config-list-types to list them. You can also use system.all for all types, or system.simple for simple config.', - ], - 'required-arguments' => 1, - 'examples' => [ - 'drush config-added-report action' => 'Displays the added config report for action config.', - ], - 'aliases' => ['cra'], - 'core' => ['8+'], - 'outputformat' => [ - 'default' => 'list', - ], - ]; - - $items['config-missing-report'] = [ - 'description' => 'Display a list of config items from your installed modules, themes, or install profile that are not currently in your active config', - 'arguments' => [ - 'type' => 'Run the report for: module, theme, profile, or "type" for config entity type.', - 'name' => 'The machine name of the module, theme, etc. to report on. See config-list-types to list types for config entities; you can also use system.all for all types, or system.simple for simple config.', - ], - 'required-arguments' => 2, - 'examples' => [ - 'drush config-missing-report type action' => 'Displays the missing config report for action config.', - ], - 'aliases' => ['crm'], - 'core' => ['8+'], - 'outputformat' => [ - 'default' => 'list', - ], - ]; - - $items['config-inactive-report'] = [ - 'description' => 'Display a list of optional config items from your installed modules, themes, or install profile that are not currently in your active config', - 'arguments' => [ - 'type' => 'Run the report for: module, theme, profile, or "type" for config entity type.', - 'name' => 'The machine name of the module, theme, etc. to report on. See config-list-types to list types for config entities; you can also use system.all for all types, or system.simple for simple config.', - ], - 'required-arguments' => 2, - 'examples' => [ - 'drush config-inactive-report type action' => 'Displays the inactive config report for action config.', - ], - 'aliases' => ['cri'], - 'core' => ['8+'], - 'outputformat' => [ - 'default' => 'list', - ], - ]; - - $items['config-different-report'] = [ - 'description' => 'Display a list of config items that differ from the versions provided by your installed modules, themes, or install profile. See config-diff to show what the differences are.', - 'arguments' => [ - 'type' => 'Run the report for: module, theme, profile, or "type" for config entity type.', - 'name' => 'The machine name of the module, theme, etc. to report on. See config-list-types to list types for config entities; you can also use system.all for all types, or system.simple for simple config.', - ], - 'required-arguments' => 2, - 'examples' => [ - 'drush config-different-report type action' => 'Displays the differing config report for action config.', - ], - 'aliases' => ['crd'], - 'core' => ['8+'], - 'outputformat' => [ - 'default' => 'list', - ], - ]; - - $items['config-diff'] = [ - 'description' => 'Display line-by-line differences for one config item between your active config and the version currently being provided by an installed module, theme, or install profile', - 'arguments' => [ - 'name' => 'The config item to diff. See config-different-report to list config items that are different.', - ], - 'required-arguments' => 1, - 'examples' => [ - 'drush config-diff block.block.bartik_search' => 'Displays the config differences for the search block in the Bartik theme.', - ], - 'aliases' => ['cfd'], - 'core' => ['8+'], - ]; - - $items['config-revert'] = [ - 'description' => 'Revert one config item in active storage to the version provided by an installed module, theme, or install profile.', - 'arguments' => [ - 'name' => 'The config item to revert. See config-different-report to list config items that are different.', - ], - 'required-arguments' => 1, - 'examples' => [ - 'drush config-revert block.block.bartik_search' => 'Revert the config for the search block in the Bartik theme to the version provided by the install profile.', - ], - 'aliases' => ['cfr'], - 'core' => ['8+'], - ]; - - $items['config-import-missing'] = [ - 'description' => 'Import a missing or inactive config item provided by an installed module, theme, or install profile. Be sure that requirements are met.', - 'arguments' => [ - 'name' => 'The name of the config item to import (usually the ID you would see in the user interface). See config-missing-report to list config items that are missing, and config-inactive-report to list config items that are inactive.', - ], - 'required-arguments' => 1, - 'examples' => [ - 'drush config-import-missing block.block.bartik_search' => 'Import the config for the search block in the Bartik theme from the version provided by the install profile.', - ], - 'aliases' => ['cfi'], - 'core' => ['8+'], - ]; - - $items['config-revert-multiple'] = [ - 'description' => 'Revert a set of config items to the versions provided by installed modules, themes, or install profiles. A set is all differing items from one extension, or one type of configuration.', - 'arguments' => [ - 'type' => 'Type of set to revert: "module" for all items from a module, "theme" for all items from a theme, "profile" for all items from the install profile, or "type" for all items of one config entity type. See config-different-report to list config items that are different.', - 'name' => 'The machine name of the module, theme, etc. to revert items of. All items in the corresponding config-different-report will be reverted.', - ], - 'required-arguments' => 2, - 'examples' => [ - 'drush config-revert-multiple type action' => 'Revert all differing config items of type action.', - ], - 'aliases' => ['cfrm'], - 'core' => ['8+'], - ]; - - return $items; -} - -/** - * Lists available config types. - */ -function drush_config_update_ui_config_list_types() { - $list = []; - - $definitions = \Drupal::service('config_update.config_list')->listTypes(); - return array_keys($definitions); -} - -/** - * Runs the config added report. - * - * @param string $name - * Type of config to report on. - */ -function drush_config_update_ui_config_added_report($name) { - list($active_list, $install_list, $optional_list) = \Drupal::service('config_update.config_list')->listConfig('type', $name); - - $added = array_diff($active_list, $install_list, $optional_list); - - if (!count($added)) { - drush_print(dt('No added config'), 0, STDERR); - } - - sort($added); - return $added; -} - -/** - * Runs the config missing report. - * - * @param string $type - * Type of report to run: 'type', 'module', 'theme', or 'profile'. - * @param string $name - * Machine name of item to report on. - */ -function drush_config_update_ui_config_missing_report($type, $name) { - list($active_list, $install_list, $optional_list) = \Drupal::service('config_update.config_list')->listConfig($type, $name); - - $missing = array_diff($install_list, $active_list); - if (!count($missing)) { - drush_print(dt('No missing config'), 0, STDERR); - } - - sort($missing); - return $missing; -} - -/** - * Runs the config inactive report. - * - * @param string $type - * Type of report to run: 'type', 'module', 'theme', or 'profile'. - * @param string $name - * Machine name of item to report on. - */ -function drush_config_update_ui_config_inactive_report($type, $name) { - list($active_list, $install_list, $optional_list) = \Drupal::service('config_update.config_list')->listConfig($type, $name); - - $missing = array_diff($optional_list, $active_list); - if (!count($missing)) { - drush_print(dt('No inactive config'), 0, STDERR); - } - - sort($missing); - return $missing; -} - -/** - * Runs the config different report. - * - * @param string $type - * Type of report to run: 'type', 'module', 'theme', or 'profile'. - * @param string $name - * Machine name of item to report on. - */ -function drush_config_update_ui_config_different_report($type, $name) { - list($active_list, $install_list, $optional_list) = \Drupal::service('config_update.config_list')->listConfig($type, $name); - - $reverter = \Drupal::service('config_update.config_update'); - $differ = \Drupal::service('config_update.config_diff'); - - $added = array_diff($active_list, $install_list, $optional_list); - $both = array_diff($active_list, $added); - $different = []; - foreach ($both as $name) { - $active = $reverter->getFromActive('', $name); - $extension = $reverter->getFromExtension('', $name); - if (!$differ->same($active, $extension)) { - $different[] = $name; - } - } - - if (!count($different)) { - drush_print(dt('No different config'), 0, STDERR); - } - - sort($different); - return $different; -} - -/** - * Runs the drush config-diff command. - * - * @param string $name - * Config item to diff. - */ -function drush_config_update_ui_config_diff($name) { - $reverter = \Drupal::service('config_update.config_update'); - $differ = \Drupal::service('config_update.config_diff'); - $formatter = new DiffFormatter(); - - $extension = $reverter->getFromExtension('', $name); - $active = $reverter->getFromActive('', $name); - if ($extension && $active) { - $diff = $differ->diff($extension, $active); - $output = $formatter->format($diff); - return $output; - } - else { - drush_print(dt('Config is missing, cannot diff'), 0, STDERR); - return ''; - } -} - -/** - * Runs the drush config-revert command. - * - * @param string $name - * Config item to revert. - */ -function drush_config_update_ui_config_revert($name) { - $lister = \Drupal::service('config_update.config_list'); - $reverter = \Drupal::service('config_update.config_update'); - $manager = \Drupal::service('entity.manager'); - - // The revert command needs the type and the unprefixed name. - $type = $lister->getTypeNameByConfigName($name); - $shortname = $name; - if ($type && $type != 'system.simple') { - $definition = $manager->getDefinition($type); - $prefix = $definition->getConfigPrefix() . '.'; - if (strpos($name, $prefix) === 0) { - $shortname = substr($name, strlen($prefix)); - } - } - - if ($reverter->revert($type, $shortname)) { - drush_print(dt('The configuration item @name was reverted to its source.', ['@name' => $name])); - } - else { - drush_print(dt('There was an error and the configuration item @name was not reverted.', ['@name' => $name]), 0, STDERR); - } -} - -/** - * Runs the drush config-import-missing command. - * - * @param string $name - * Name of config item to import, without prefix. - */ -function drush_config_update_ui_config_import_missing($name) { - $lister = \Drupal::service('config_update.config_list'); - $reverter = \Drupal::service('config_update.config_update'); - $manager = \Drupal::service('entity.manager'); - - // The import command needs the type and the unprefixed name. - $type = $lister->getTypeNameByConfigName($name); - $shortname = $name; - if ($type && $type != 'system.simple') { - $definition = $manager->getDefinition($type); - $prefix = $definition->getConfigPrefix() . '.'; - if (strpos($name, $prefix) === 0) { - $shortname = substr($name, strlen($prefix)); - } - } - - if ($reverter->import($type, $shortname)) { - drush_print(dt('The configuration item @name was imported from its source.', ['@name' => $name])); - } - else { - drush_print(dt('There was an error and the configuration item @name was not imported.', ['@name' => $name]), 0, STDERR); - drush_print(dt('The configuration was imported from its source.')); - } -} - -/** - * Runs the drush config-revert-multiple command. - * - * @param string $type - * Type of config to revert: 'type', 'module', 'theme', or 'profile'. - * @param string $name - * Machine name of type to revert. - */ -function drush_config_update_ui_config_revert_multiple($type, $name) { - // This command will print an error if there are no items to revert. - $different = drush_config_update_ui_config_different_report($type, $name); - foreach ($different as $name) { - // This command will print a message if it succeeds or fails for each item. - drush_config_update_ui_config_revert($name); - } -} diff --git a/modules/contrib/config_update/config_update_ui/config_update_ui.drush_testing.inc b/modules/contrib/config_update/config_update_ui/config_update_ui.drush_testing.inc deleted file mode 100644 index 2c11acd..0000000 --- a/modules/contrib/config_update/config_update_ui/config_update_ui.drush_testing.inc +++ /dev/null @@ -1,31 +0,0 @@ -' . t('About') . ''; - $output .= '' . t('The Configuration Update Reports module provides a report that allows you to see the differences between the default configuration provided by the current versions of your installed modules, themes, and install profile, and the active configuration of your site. From this report, you can also import new configuration provided by updates, and revert your active configuration to the provided default values.') . '
'; - $output .= '' . t('This report shows which default configuration items provided by the current versions of your installed modules, themes, and install profile differ from the active configuration of your site. You can generate the report for all configuration of a certain type; for a particular installed module, theme, or your install profile (only modules, themes, and install profiles that actually provide configuration are listed); or for all configuration.') . '
'; - $output .= '' . t('Some configuration provided by modules has dependencies, and is only added to your system when all the dependencies are satisfied. This is known as optional configuration.') . '
'; - $output .= '' . t('Differences, including missing and added configuration, can be due to either an updated module or theme providing different configuration from when you installed it, or to changes made by site administrators. This report does not differentiate between these two sources for differences, and note that an install profile can also silently override module/theme configuration. Overrides (such as those in your settings.php file) and translations are not considered when looking at differences.') . '
'; - return $output; - - case 'config_update_ui.diff': - return '' . t('Most configuration is organized into a hierarchy of settings; at a minimum, it is a one-level hierarchy where each setting has a name and a value, and the hierarchy comes in when some of the settings have multiple components.') . '
' . t('Configuration items are normalized and formatted before computing differences. The normalization step alphabetizes the components at each level of the hierarchy, and removes a few components whose differences should be ignored, such as the UUID. The formatting step shows the full hierarchy of each configuration value with :: separators for the hierarchy levels, and a : separator between the lowest-level setting name and the value, so that in a line-by-line diff you can always see which values are actually different. Green lines with + signs have been added, and yellow lines with - signs have been removed.') . '
' . t('Note that differences are considering the base configuration, without overrides from your settings.php file, or translations.') . '
'; - } -} diff --git a/modules/contrib/config_update/config_update_ui/config_update_ui.permissions.yml b/modules/contrib/config_update/config_update_ui/config_update_ui.permissions.yml deleted file mode 100644 index bedd4a9..0000000 --- a/modules/contrib/config_update/config_update_ui/config_update_ui.permissions.yml +++ /dev/null @@ -1,8 +0,0 @@ -view config updates report: - title: 'View configuration updates report' -revert configuration: - title: 'Revert any configuration' - restrict access: true -delete configuration: - title: 'Delete any configuration' - restrict access: true diff --git a/modules/contrib/config_update/config_update_ui/config_update_ui.routing.yml b/modules/contrib/config_update/config_update_ui/config_update_ui.routing.yml deleted file mode 100644 index 9f2f355..0000000 --- a/modules/contrib/config_update/config_update_ui/config_update_ui.routing.yml +++ /dev/null @@ -1,43 +0,0 @@ -config_update_ui.report: - path: '/admin/config/development/configuration/report/{report_type}/{name}' - defaults: - _controller: '\Drupal\config_update_ui\Controller\ConfigUpdateController::report' - _title: 'Updates report' - report_type: NULL - name: NULL - requirements: - _permission: 'view config updates report' - -config_update_ui.import: - path: '/admin/config/development/configuration/report/import/{config_type}/{config_name}' - defaults: - _title: 'Import' - _form: '\Drupal\config_update_ui\Form\ConfigImportConfirmForm' - requirements: - _permission: 'import configuration' - -config_update_ui.diff: - path: '/admin/config/development/configuration/report/diff/{config_type}/{config_name}' - defaults: - _title: 'Differences' - _controller: '\Drupal\config_update_ui\Controller\ConfigUpdateController::diff' - config_type: NULL - config_name: NULL - requirements: - _permission: 'view config updates report' - -config_update_ui.revert: - path: '/admin/config/development/configuration/report/revert/{config_type}/{config_name}' - defaults: - _title: 'Revert' - _form: '\Drupal\config_update_ui\Form\ConfigRevertConfirmForm' - requirements: - _permission: 'revert configuration' - -config_update_ui.delete: - path: '/admin/config/development/configuration/report/delete/{config_type}/{config_name}' - defaults: - _title: 'Delete' - _form: '\Drupal\config_update_ui\Form\ConfigDeleteConfirmForm' - requirements: - _permission: 'delete configuration' diff --git a/modules/contrib/config_update/config_update_ui/css/config_update_ui.report.css b/modules/contrib/config_update/config_update_ui/css/config_update_ui.report.css deleted file mode 100644 index 77b8d10..0000000 --- a/modules/contrib/config_update/config_update_ui/css/config_update_ui.report.css +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @file - * Styling for the Config Updates report. - */ - -table.config-update-report { - margin-top: 2em; -} - -table.config-update-report caption { - font-weight: bold; - font-size: 1.1em; -} diff --git a/modules/contrib/config_update/config_update_ui/src/Controller/ConfigUpdateController.php b/modules/contrib/config_update/config_update_ui/src/Controller/ConfigUpdateController.php deleted file mode 100644 index 31ed06d..0000000 --- a/modules/contrib/config_update/config_update_ui/src/Controller/ConfigUpdateController.php +++ /dev/null @@ -1,656 +0,0 @@ -configDiff = $config_diff; - $this->configList = $config_list; - $this->configRevert = $config_update; - $this->diffFormatter = $diff_formatter; - $this->diffFormatter->show_header = FALSE; - $this->moduleHandler = $module_handler; - $this->themeHandler = $theme_handler; - $this->configFactory = $config_factory; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('config_update.config_diff'), - $container->get('config_update.config_list'), - $container->get('config_update.config_update'), - $container->get('diff.formatter'), - $container->get('module_handler'), - $container->get('theme_handler'), - $container->get('config.factory') - ); - } - - /** - * Shows the diff between active and provided configuration. - * - * @param string $config_type - * The type of configuration. - * @param string $config_name - * The name of the config item, without the prefix. - * - * @return array - * Render array for page showing differences between them. - */ - public function diff($config_type, $config_name) { - $diff = $this->configDiff->diff( - $this->configRevert->getFromExtension($config_type, $config_name), - $this->configRevert->getFromActive($config_type, $config_name) - ); - - $build = []; - $definition = $this->configList->getType($config_type); - $config_type_label = ($definition) ? $definition->getLabel() : $this->t('Simple configuration'); - $build['#title'] = $this->t('Config difference for @type @name', ['@type' => $config_type_label, '@name' => $config_name]); - $build['#attached']['library'][] = 'system/diff'; - - $build['diff'] = [ - '#type' => 'table', - '#header' => [ - ['data' => $this->t('Source config'), 'colspan' => '2'], - ['data' => $this->t('Site config'), 'colspan' => '2'], - ], - '#rows' => $this->diffFormatter->format($diff), - '#attributes' => ['class' => ['diff']], - ]; - - $url = new Url('config_update_ui.report'); - - $build['back'] = [ - '#type' => 'link', - '#attributes' => [ - 'class' => [ - 'dialog-cancel', - ], - ], - '#title' => $this->t("Back to 'Updates report' page."), - '#url' => $url, - ]; - - return $build; - } - - /** - * Generates the config updates report. - * - * @param string $report_type - * (optional) Type of report to run: - * - type: Configuration entity type. - * - module: Module. - * - theme: Theme. - * - profile: Install profile. - * @param string $name - * (optional) Name of specific item to run report for (config entity type - * ID, module machine name, etc.). Ignored for profile. - * - * @return array - * Render array for report, with section at the top for selecting another - * report to run. If either $report_type or $name is missing, the report - * itself is not generated. - */ - public function report($report_type = NULL, $name = NULL) { - $links = $this->generateReportLinks(); - - $report = $this->generateReport($report_type, $name); - if (!$report) { - return $links; - } - - // If there is a report, extract the title, put table of links in a - // details element, and add report to build. - $build = []; - $build['#title'] = $report['#title']; - unset($report['#title']); - - $build['links_wrapper'] = [ - '#type' => 'details', - '#title' => $this->t('Generate new report'), - '#children' => $links, - ]; - - $build['report'] = $report; - - $build['#attached']['library'][] = 'config_update/report_css'; - - return $build; - } - - /** - * Generates the operations links for running individual reports. - * - * @return array - * Render array for the operations links for running reports. - */ - protected function generateReportLinks() { - - // These links are put into an 'operations' render array element. They do - // not look good outside of tables. Also note that the array index in - // operations links is used as a class on the LI element. Some classes are - // special in the Seven CSS, such as "contextual", so avoid hitting these - // accidentally by prefixing. - $build = []; - - $build['links'] = [ - '#type' => 'table', - '#header' => [ - $this->t('Report type'), - $this->t('Report on'), - ], - '#rows' => [], - ]; - - // Full report of all configuration. - $links['report_full'] = [ - 'title' => $this->t('Everything'), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'type', 'name' => 'system.all']), - ]; - $build['links']['#rows'][] = [ - $this->t('Full report'), - [ - 'data' => [ - '#type' => 'operations', - '#links' => $links, - ], - ], - ]; - - // Reports by configuration type. - $definitions = $this->configList->listTypes(); - $links = []; - foreach ($definitions as $entity_type => $definition) { - $links['report_type_' . $entity_type] = [ - 'title' => $definition->getLabel(), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'type', 'name' => $entity_type]), - ]; - } - - uasort($links, [$this, 'sortLinks']); - - $links = [ - 'report_type_system.simple' => [ - 'title' => $this->t('Simple configuration'), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'type', 'name' => 'system.simple']), - ], - ] + $links; - - $build['links']['#rows'][] = [ - $this->t('Single configuration type'), - [ - 'data' => [ - '#type' => 'operations', - '#links' => $links, - ], - ], - ]; - - // Make a list of installed modules. - $profile = $this->getProfileName(); - $modules = $this->moduleHandler->getModuleList(); - $links = []; - foreach ($modules as $machine_name => $module) { - if ($machine_name != $profile && $this->configList->providerHasConfig('module', $machine_name)) { - $links['report_module_' . $machine_name] = [ - 'title' => $this->moduleHandler->getName($machine_name), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'module', 'name' => $machine_name]), - ]; - } - } - uasort($links, [$this, 'sortLinks']); - - $build['links']['#rows'][] = [ - $this->t('Single module'), - [ - 'data' => [ - '#type' => 'operations', - '#links' => $links, - ], - ], - ]; - - // Make a list of installed themes. - $themes = $this->themeHandler->listInfo(); - $links = []; - foreach ($themes as $machine_name => $theme) { - if ($this->configList->providerHasConfig('theme', $machine_name)) { - $links['report_theme_' . $machine_name] = [ - 'title' => $this->themeHandler->getName($machine_name), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'theme', 'name' => $machine_name]), - ]; - } - } - uasort($links, [$this, 'sortLinks']); - - $build['links']['#rows'][] = [ - $this->t('Single theme'), - [ - 'data' => [ - '#type' => 'operations', - '#links' => $links, - ], - ], - ]; - - $links = []; - - // Profile is just one option. - if ($this->configList->providerHasConfig('profile', $profile)) { - $links['report_profile_' . $profile] = [ - 'title' => $this->moduleHandler->getName($profile), - 'url' => Url::fromRoute('config_update_ui.report', ['report_type' => 'profile']), - ]; - $build['links']['#rows'][] = [ - $this->t('Installation profile'), - [ - 'data' => [ - '#type' => 'operations', - '#links' => $links, - ], - ], - ]; - } - - return $build; - } - - /** - * Generates a report about config updates. - * - * @param string $report_type - * Type of report to generate: 'type', 'module', 'theme', or 'profile'. - * @param string $value - * Machine name of a configuration type, module, or theme to generate the - * report for. Ignored for profile, since that uses the active profile. - * - * @return array - * Render array for the updates report. Empty if invalid or missing - * report type or value. - */ - protected function generateReport($report_type, $value) { - // Figure out what to name the report, and incidentally, validate that - // $value exists for this type of report. - switch ($report_type) { - case 'type': - if ($value == 'system.all') { - $label = $this->t('All configuration'); - } - elseif ($value == 'system.simple') { - $label = $this->t('Simple configuration'); - } - else { - $definition = $this->configList->getType($value); - if (!$definition) { - return NULL; - } - - $label = $this->t('@name configuration', ['@name' => $definition->getLabel()]); - } - - break; - - case 'module': - $list = $this->moduleHandler->getModuleList(); - if (!isset($list[$value])) { - return NULL; - } - - $label = $this->t('@name module', ['@name' => $this->moduleHandler->getName($value)]); - break; - - case 'theme': - $list = $this->themeHandler->listInfo(); - if (!isset($list[$value])) { - return NULL; - } - - $label = $this->t('@name theme', ['@name' => $this->themeHandler->getName($value)]); - break; - - case 'profile': - $profile = $this->getProfileName(); - $label = $this->t('@name profile', ['@name' => $this->moduleHandler->getName($profile)]); - break; - - default: - return NULL; - } - - // List the active and extension-provided config. - list($active_list, $install_list, $optional_list) = $this->configList->listConfig($report_type, $value); - - // Build the report. - $build = []; - - $build['#title'] = $this->t('Configuration updates report for @label', ['@label' => $label]); - $build['report_header'] = ['#markup' => '' . t('The Features module provides a user interface for exporting bundles of configuration into modules. For more information, see the online documentation for Features module', array( - ':url' => 'http://drupal.org/node/2404427', - )) . '
'; - return $output; - } -} - -/** - * Implements hook_file_download(). - */ -function features_file_download($uri) { - $scheme = file_uri_scheme($uri); - $target = file_uri_target($uri); - - if ($scheme == 'temporary' && $target) { - $request = \Drupal::request(); - $route = $request->attributes->get('_route'); - // Check if we were called by Features download route. - // No additional access checking needed here: route requires - // "export configuration" permission, token is validated by the controller. - // @see \Drupal\features\Controller\FeaturesController::downloadExport() - if ($route == 'features.export_download') { - return array( - 'Content-disposition' => 'attachment; filename="' . $target . '"', - ); - } - } -} - -/** - * Implements hook_modules_installed(). - */ -function features_modules_installed($modules) { - if (!in_array('features', $modules)) { - /** @var \Drupal\features\FeaturesAssignerInterface $assigner */ - $assigner = \Drupal::service('features_assigner'); - $assigner->purgeConfiguration(); - } -} diff --git a/modules/contrib/features/features.routing.yml b/modules/contrib/features/features.routing.yml deleted file mode 100644 index 3b6c25b..0000000 --- a/modules/contrib/features/features.routing.yml +++ /dev/null @@ -1,6 +0,0 @@ -features.export_download: - path: '/admin/config/development/features/download/{uri}' - defaults: - _controller: 'Drupal\features\Controller\FeaturesController::downloadExport' - requirements: - _permission: 'export configuration' diff --git a/modules/contrib/features/features.services.yml b/modules/contrib/features/features.services.yml deleted file mode 100644 index 6122f53..0000000 --- a/modules/contrib/features/features.services.yml +++ /dev/null @@ -1,38 +0,0 @@ -services: - plugin.manager.features_assignment_method: - class: Drupal\features\FeaturesAssignmentMethodManager - arguments: ['@container.namespaces', '@cache.discovery', '@module_handler'] - plugin.manager.features_generation_method: - class: Drupal\features\FeaturesGenerationMethodManager - arguments: ['@container.namespaces', '@cache.discovery', '@module_handler'] - features_assigner: - class: Drupal\features\FeaturesAssigner - arguments: ['@features.manager', '@plugin.manager.features_assignment_method', '@entity.manager', '@config.factory', '@config.storage'] - calls: - - [initFeaturesManager] - features_generator: - class: Drupal\features\FeaturesGenerator - arguments: ['@features.manager', '@plugin.manager.features_generation_method', '@features_assigner'] - calls: - - [initFeaturesManager] - features.manager: - class: Drupal\features\FeaturesManager - arguments: ['@app.root', '@entity.manager', '@config.factory', '@config.storage', '@config.manager', '@module_handler', '@features.config_update'] - - features.config_update: - class: Drupal\config_update\ConfigReverter - arguments: ['@entity.manager', '@config.storage', '@features.extension_storage', '@features.extension_optional_storage', '@config.factory', '@event_dispatcher'] - - features.extension_storage: - class: Drupal\features\FeaturesInstallStorage - arguments: ['@config.storage'] - - features.extension_optional_storage: - class: Drupal\features\FeaturesInstallStorage - arguments: ['@config.storage', 'config/optional'] - - features.config.installer: - class: Drupal\features\FeaturesConfigInstaller - decorates: config.installer - decoration_priority: 9 - arguments: ['@features.config.installer.inner', '@features.manager', '@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher'] diff --git a/modules/contrib/features/modules/features_ui/css/features_ui.admin.css b/modules/contrib/features/modules/features_ui/css/features_ui.admin.css deleted file mode 100644 index 529a7aa..0000000 --- a/modules/contrib/features/modules/features_ui/css/features_ui.admin.css +++ /dev/null @@ -1,286 +0,0 @@ -span.features-item-list span { - background: #eee; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; - line-height: 1.7em; -} - -.features-listing span.features-override, -.features-listing a.features-override { - background: #FFCE6F; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; -} - -.features-listing span.features-detected, -.features-listing a.features-detected { - color:#68a; - background:#def; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; -} - -.features-listing span.features-conflict, -.features-listing a.features-conflict { - color: #fff; - background-color: #c30 !important; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; -} - -.features-listing span.features-moved, -.features-listing a.features-moved { - color: #fff; - background-color: #215900 !important; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; -} - -.features-listing span.features-missing, -.features-listing a.features-missing { - color: #fff; - background-color: #0E5EA9 !important; - border-radius: 5px; - margin-right: 5px; - padding: 2px 5px; - white-space: nowrap; -} - -table.features-listing .column-nowrap { - white-space: nowrap; -} - -tr.features-export-header-row td { - border-top: 30px solid white; - background: #eee; - padding-top: 10px; -} - -#features-assignment-methods tr.draggable > td:nth-child(1) { - white-space: nowrap; -} - -/** Styles for Features Export/Listing page **/ -.features-listing td { - vertical-align: top; -} - -.features-listing td.feature-name { - font-size: 14px; - white-space: nowrap; -} - -.features-listing td details { - border: 0; - margin: 0; - height: 20px; -} - -.features-listing details[open] { - height: auto; - overflow: visible; - white-space: normal; -} - -.features-listing td summary { - padding: 0; - text-transform: none; - font-weight: normal; -} - -.features-listing td .features-item-label { - font-weight: bold; -} - -.features-header > div, -.features-header > input { - display: inline-block; -} - -/** Styles for Features Edit page **/ - -.fieldset-legend { - font-size: 14px; -} - -#features-export-info { - width: 49%; - float: left; - position: relative; -} -#features-export-wrapper { - width: 49%; - float: right; - clear: both; - position: relative; -} - -.form-type-checkbox.form-item-conflicts { - clear: left; -} - -div.features-export-list { - font-weight: normal; - font-size: 12px; - border: 1px solid #CCC; - border-top-width: 0; - overflow: hidden; - padding: 0 10px 0 30px; -} - -span.features-component-list span { - white-space:nowrap; - margin-right:5px; - padding:2px 5px; - background:#eee; - -moz-border-radius:5px; - -webkit-border-radius:5px; -} - -div.features-export-empty { - display: none; -} - -span.features-component-list span.features-conflict { - background-color: #c30 !important; - color: #fff; -} - -span.features-component-list .features-detected { - color:#68a; - background:#def; -} - -span.features-component-list .features-dependency { - color:#999; - background:#f8f8f8; -} - -#features-legend .fieldset-wrapper span { - font-style: normal; - color: black; - display: inline-block; - background: transparent; - border: 1px solid #DDD; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - white-space: nowrap; - padding: 0 8px; - margin: 0 10px 0 0; -} -#features-export-wrapper .config-name { - color: #777; -} -#features-export-wrapper .component-detected .form-type-checkbox, -#features-legend .fieldset-wrapper .component-detected { - font-style: italic; - color:#68a; - background:#def; - border-width: 0; -} -#features-export-wrapper .component-added .form-type-checkbox, -#features-legend .fieldset-wrapper .component-added { - font-weight: bold; - background: #EEE; - border-width: 0; -} -#features-export-wrapper .component-conflict.form-type-checkbox, -#features-legend .fieldset-wrapper .component-conflict { - color: #c30 !important; - font-weight: bold !important; -} - -#features-export-wrapper .component-conflict.form-type-checkbox label, -#features-export-wrapper .component-added .form-type-checkbox label { - font-weight: bold !important; -} - -#features-filter input[size="60"].form-text { - width: 200px; -} -#features-filter .fieldset-content, -#features-filter .fieldset-wrapper, -#features-filter fieldset { - border: 0; - padding: 0; - margin: 0; -} -#features-filter fieldset legend { - display: none; -} -#features-filter label, -#features-filter input { - display: inline; - width: auto; -} -#features-filter .form-item { - float: left; - margin: 5px 0; - padding: 0; -} -#features-filter .form-item.form-type-checkbox { - margin: 5px 0; -} -#features-filter span { - float: left; - white-space: normal; - margin: 5px 5px; - padding: 0 5px; - background: transparent; - background: #EEE; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - cursor: pointer; -} -#features-filter span:hover { - background:#def; -} - -#features-export-wrapper div.features-export-parent { - clear: both; - margin: 0 0 10px; -} - -details.features-export-component { - background: #F3F8FB; - margin: 0; - padding: 0 5px; -} -details.features-export-component summary { - white-space: nowrap; - text-transform: none; - font-weight: normal; - font-size: 14px; -} -details.features-export-component summary .component-count { - font-size: 11px; -} -details.features-export-component .details-wrapper { - padding-left: 25px; - padding-top: 0; -} - -/** Styles for Bundle assignment config form **/ -#edit-bundles-wrapper .form-item-bundle-bundle-select { - display: inline-block; -} - -#edit-bundles-wrapper #edit-bundle-remove { - display: inline-block; - font-size: 10px; -} - -/** Styles for plugin config forms **/ -.features-assignment-settings-form .fieldset-wrapper { - padding-left: 16px; -} diff --git a/modules/contrib/features/modules/features_ui/features_ui.admin.inc b/modules/contrib/features/modules/features_ui/features_ui.admin.inc deleted file mode 100644 index 408410a..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.admin.inc +++ /dev/null @@ -1,175 +0,0 @@ - array('checkbox'), 'data' => $renderer->render($element['enable'])); - - // Add the module label and expand/collapse functionalty. - $id = Html::getUniqueId('feature-' . $key); - $col2 = new FormattableMarkup('', - array( - '@id' => $id, - '@for' => $element['enable']['#id'], - '@name' => $renderer->render($element['name']), - ) - ); - $row[] = array('class' => array('module'), 'data' => $col2); - - $row[] = array('class' => array('machine_name'), 'data' => $renderer->render($element['machine_name'])); - - $description = t('@details', array('@details' => $renderer->render($element['details']))); - $details = array( - '#type' => 'details', - '#title' => new FormattableMarkup('@desc', array( '@desc' => $renderer->render($element['description']))), - '#attributes' => array('id' => $element['enable']['#id'] . '-description'), - '#description' => $description, - ); - $row[] = array( - 'class' => array('description', 'expand'), - 'data' => $renderer->render($details), - ); - $row[] = array( - 'class' => array('feature-version'), - 'data' => $renderer->render($element['version']), - ); - $row[] = array( - 'class' => array('feature-state'), - 'data' => $renderer->render($element['state']), - ); - - $rows[] = array('data' => $row); - } - - $table = array( - '#type' => 'tableselect', - '#header' => $form['#header'], - '#options' => $rows, - '#empty' => t('No Features packages available.'), - ); - return $renderer->render($table); -} - -/** - * Prepares variables for package assignment configuration form. - * - * @param array $variables - * An associative array containing: - * - form: A render element representing the form. - */ -function template_preprocess_features_assignment_configure_form(&$variables) { - $form =& $variables['form']; - - $header = array( - t('Assignment method'), - t('Description'), - t('Enabled'), - t('Weight'), - ); - - // If there is at least one operation enabled, show the operation column. - if ($form['#show_operations']) { - $header[] = t('Operations'); - } - - $table = array( - '#type' => 'table', - '#weight' => 5, - '#header' => $header, - '#attributes' => array('id' => 'features-assignment-methods'), - '#tabledrag' => array( - array( - 'action' => 'order', - 'relationship' => 'sibling', - 'group' => 'assignment-method-weight', - ), - ), - ); - - foreach ($form['title'] as $id => $element) { - // Do not take form control structures. - if (is_array($element) && Element::child($id)) { - $table[$id]['#attributes']['class'][] = 'draggable'; - $table[$id]['#weight'] = $element['#weight']; - - $table[$id]['title'] = array( - '#prefix' => '', - $form['title'][$id], - '#suffix' => '', - ); - $table[$id]['description'] = $form['description'][$id]; - $table[$id]['enabled'] = $form['enabled'][$id]; - $table[$id]['weight'] = $form['weight'][$id]; - if ($form['#show_operations']) { - $table[$id]['operation'] = $form['operation'][$id]; - } - // Unset to prevent rendering along with children. - unset($form['title'][$id]); - unset($form['description'][$id]); - unset($form['enabled'][$id]); - unset($form['weight'][$id]); - unset($form['operation'][$id]); - } - } - - // For some reason, the #weight is not being handled by drupal_render. - // So we remove the actions and then put them back into the form after the - // table. - $actions = $form['actions']; - unset($form['actions']); - $form['table'] = $table; - $form['actions'] = $actions; -} - -/** - * Themes individual items in an item list. - */ -function theme_features_items(array $variables) { - $items = $variables['items']; - - $list = array(); - foreach ($items as $item) { - $class = !empty($item['class']) ? $item['class'] : ''; - $list[] = '' . $item['label'] . ''; - } - - return '' . implode(' ', $list) . ''; -} - -/** - * Themes the assignment form. - */ -function theme_assignment_form(array $variables) { - $renderer = \Drupal::service('renderer'); - return $renderer->render($variables['form']); -} diff --git a/modules/contrib/features/modules/features_ui/features_ui.info.yml b/modules/contrib/features/modules/features_ui/features_ui.info.yml deleted file mode 100644 index deec8ef..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.info.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Features UI -type: module -description: 'Provides the user interface for Features.' -package: Development -# core: 8.x -configure: features.assignment -dependencies: - - features - -# Information added by Drupal.org packaging script on 2017-03-07 -version: '8.x-3.5' -core: '8.x' -project: 'features' -datestamp: 1488908587 diff --git a/modules/contrib/features/modules/features_ui/features_ui.libraries.yml b/modules/contrib/features/modules/features_ui/features_ui.libraries.yml deleted file mode 100644 index 07a4d49..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.libraries.yml +++ /dev/null @@ -1,11 +0,0 @@ -drupal.features_ui.admin: - version: VERSION - css: - theme: - css/features_ui.admin.css: {} - js: - js/features_ui.admin.js: {} - dependencies: - - core/jquery - - core/drupal - - core/drupalSettings diff --git a/modules/contrib/features/modules/features_ui/features_ui.links.action.yml b/modules/contrib/features/modules/features_ui/features_ui.links.action.yml deleted file mode 100644 index 93a37b4..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.links.action.yml +++ /dev/null @@ -1,5 +0,0 @@ -features_ui.feature_add: - route_name: features.edit - title: 'Create new feature' - appears_on: - - features.export diff --git a/modules/contrib/features/modules/features_ui/features_ui.links.menu.yml b/modules/contrib/features/modules/features_ui/features_ui.links.menu.yml deleted file mode 100644 index 379a3e4..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.links.menu.yml +++ /dev/null @@ -1,5 +0,0 @@ -features.export: - title: 'Features' - description: 'Package your configuration into feature modules.' - route_name: features.export - parent: system.admin_config_development diff --git a/modules/contrib/features/modules/features_ui/features_ui.links.task.yml b/modules/contrib/features/modules/features_ui/features_ui.links.task.yml deleted file mode 100644 index fb8d636..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.links.task.yml +++ /dev/null @@ -1,14 +0,0 @@ -features.export: - route_name: features.export - title: 'Features' - base_route: features.export - -features.assignment: - route_name: features.assignment - title: 'Configure Bundles' - base_route: features.export - -features.diff: - route_name: features.diff - title: 'Differences' - base_route: features.export diff --git a/modules/contrib/features/modules/features_ui/features_ui.module b/modules/contrib/features/modules/features_ui/features_ui.module deleted file mode 100644 index 0eae3ee..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.module +++ /dev/null @@ -1,55 +0,0 @@ -' . t('Bundles are used to collect together groups of features. A bundle provides a shared namespace for all features included in it, which prevents conflicts and helps distinguish your features from those produced for other purposes. Common uses of bundles include:', array(':namespace' => 'http://en.wikipedia.org/wiki/Namespace')); - $output .= '' . t('Use the form below to manage bundles. Each bundle comes with a set of assignment methods. By configuring and ordering the assignment methods, you can set the defaults for what does and doesn\'t get packaged into features for your bundle. Use the Bundle select to choose which bundle to edit, or chose --New-- to create a new bundle. The Default bundle does not include a namespace and cannot be deleted.') . '
'; - return $output; - - case 'features.export': - $output = ''; - $output .= '' . t('Export packages of configuration into modules.') . '
'; - return $output; - } -} - -/** - * Implements hook_theme(). - */ -function features_ui_theme() { - return array( - 'features_listing' => array( - 'render element' => 'form', - 'file' => 'features_ui.admin.inc', - 'function' => 'theme_features_listing', - ), - 'features_assignment_configure_form' => array( - 'render element' => 'form', - 'file' => 'features_ui.admin.inc', - 'function' => 'theme_assignment_form', - ), - 'features_items' => array( - 'variables' => array( - 'items' => array(), - ), - 'file' => 'features_ui.admin.inc', - 'function' => 'theme_features_items', - ), - ); -} diff --git a/modules/contrib/features/modules/features_ui/features_ui.routing.yml b/modules/contrib/features/modules/features_ui/features_ui.routing.yml deleted file mode 100644 index 9343aee..0000000 --- a/modules/contrib/features/modules/features_ui/features_ui.routing.yml +++ /dev/null @@ -1,104 +0,0 @@ -features.export: - path: '/admin/config/development/features' - defaults: - _form: '\Drupal\features_ui\Form\FeaturesExportForm' - _title: 'Features' - requirements: - _permission: 'export configuration' - -features.assignment: - path: '/admin/config/development/features/bundle/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentConfigureForm' - _title: 'Bundle assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_alter: - path: '/admin/config/development/features/bundle/_alter/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentAlterForm' - _title: 'Configure package configuration altering' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_base: - path: '/admin/config/development/features/bundle/_base/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentBaseForm' - _title: 'Configure base package assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_core: - path: '/admin/config/development/features/bundle/_core/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentCoreForm' - _title: 'Configure core package assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_exclude: - path: '/admin/config/development/features/bundle/_exclude/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentExcludeForm' - _title: 'Configure package exclusion' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_optional: - path: '/admin/config/development/features/bundle/_optional/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentOptionalForm' - _title: 'Configure optional package assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_profile: - path: '/admin/config/development/features/bundle/_profile/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentProfileForm' - _title: 'Configure profile package assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.assignment_site: - path: '/admin/config/development/features/bundle/_site/{bundle_name}' - defaults: - _form: '\Drupal\features_ui\Form\AssignmentSiteForm' - _title: 'Configure site package assignment' - bundle_name: NULL - requirements: - _permission: 'administer site configuration' - -features.edit: - path: '/admin/config/development/features/edit/{featurename}' - defaults: - _form: '\Drupal\features_ui\Form\FeaturesEditForm' - _title: 'Edit' - featurename: '' - requirements: - _permission: 'administer site configuration' - -features.diff: - path: '/admin/config/development/features/diff/{featurename}' - defaults: - _form: '\Drupal\features_ui\Form\FeaturesDiffForm' - _title: 'Differences' - featurename: '' - requirements: - _permission: 'administer site configuration' - -features.detect: - path: '/features/api/detect/{name}' - defaults: - _controller: '\Drupal\features_ui\Controller\FeaturesUIController::detect' - requirements: - _permission: 'administer site configuration' diff --git a/modules/contrib/features/modules/features_ui/js/features_ui.admin.js b/modules/contrib/features/modules/features_ui/js/features_ui.admin.js deleted file mode 100644 index d401968..0000000 --- a/modules/contrib/features/modules/features_ui/js/features_ui.admin.js +++ /dev/null @@ -1,401 +0,0 @@ -/** - * jQuery.fn.sortElements - * -------------- - * @param Function comparator: - * Exactly the same behaviour as [1,2,3].sort(comparator) - * - * @param Function getSortable - * A function that should return the element that is - * to be sorted. The comparator will run on the - * current collection, but you may want the actual - * resulting sort to occur on a parent or another - * associated element. - * - * E.g. $('td').sortElements(comparator, function(){ - * return this.parentNode; - * }) - * - * The' . $this->t('Use an export method button below to generate the selected features.') . '
', - ); - - $form['actions'] = array('#type' => 'actions', '#tree' => TRUE); - foreach ($generation_info as $method_id => $method) { - $form['actions'][$method_id] = array( - '#type' => 'submit', - '#name' => $method_id, - '#value' => $this->t('@name', array('@name' => $method['name'])), - '#attributes' => array( - 'title' => Html::escape($method['description']), - ), - ); - } - } - - $form['#pre_render'][] = array(get_class($this), 'preRenderRemoveInvalidCheckboxes'); - - return $form; - } - - /** - * Handles switching the configuration type selector. - */ - public function updatePreview($form, FormStateInterface $form_state) { - // We should really be able to add this pre_render callback to the - // 'preview' element. However, since doing so leads to an error (no rows - // are displayed), we need to instead explicitly invoke it here for the - // processing to apply to the Ajax-rendered form element. - $form = $this->preRenderRemoveInvalidCheckboxes($form); - return $form['preview']; - } - - /** - * Builds the portion of the form showing a listing of features. - * - * @param \Drupal\features\Package[] $packages - * The packages. - * @param \Drupal\features\FeaturesBundleInterface $bundle - * The current bundle - * - * @return array - * A render array of a form element. - */ - protected function buildListing(array $packages, FeaturesBundleInterface $bundle) { - - $header = array( - 'name' => array('data' => $this->t('Feature')), - 'machine_name' => array('data' => $this->t('')), - 'details' => array('data' => $this->t('Description'), 'class' => array(RESPONSIVE_PRIORITY_LOW)), - 'version' => array('data' => $this->t('Version'), 'class' => array(RESPONSIVE_PRIORITY_LOW)), - 'status' => array('data' => $this->t('Status'), 'class' => array(RESPONSIVE_PRIORITY_LOW)), - 'state' => array('data' => $this->t('State'), 'class' => array(RESPONSIVE_PRIORITY_LOW)), - ); - - $options = array(); - $first = TRUE; - foreach ($packages as $package) { - if ($first && $package->getStatus() == FeaturesManagerInterface::STATUS_NO_EXPORT) { - // Don't offer new non-profile packages that are empty. - if ($package->getStatus() === FeaturesManagerInterface::STATUS_NO_EXPORT && - !$bundle->isProfilePackage($package->getMachineName()) && - empty($package->getConfig())) { - continue; - } - $first = FALSE; - $options[] = array( - 'name' => array( - 'data' => $this->t('The following packages are not exported.'), - 'class' => 'features-export-header-row', - 'colspan' => 6, - ), - ); - } - $options[$package->getMachineName()] = $this->buildPackageDetail($package, $bundle); - } - - $element = array( - '#type' => 'tableselect', - '#header' => $header, - '#options' => $options, - '#attributes' => array('class' => array('features-listing')), - '#prefix' => 'This step only shows if the entity is already existing!
', - ); - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - // Do nothing! - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityExternalForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityExternalForm.php deleted file mode 100644 index 2ba871c..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityExternalForm.php +++ /dev/null @@ -1,66 +0,0 @@ -tempstore = $tempstore; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static($container->get('user.shared_tempstore')); - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'ctools_wizard_test_example_config_entity_external_form'; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state, $machine_name = '') { - $cached_values = $this->tempstore->get('ctools_wizard_test.config_entity')->get($machine_name); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $form['blah'] = [ - '#markup' => 'Value from one: ' . $config_entity->getOne(), - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - // Don't do anything. - } - -} - diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityGeneralForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityGeneralForm.php deleted file mode 100644 index 6120342..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityGeneralForm.php +++ /dev/null @@ -1,46 +0,0 @@ -getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - // The label and id will be added by the EntityFormWizardBase. - - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $cached_values = $form_state->getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $config_entity->set('id', $form_state->getValue('id')); - $config_entity->set('label', $form_state->getValue('label')); - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityOneForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityOneForm.php deleted file mode 100644 index 6d1cf6d..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityOneForm.php +++ /dev/null @@ -1,62 +0,0 @@ -getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $form['one'] = [ - '#title' => $this->t('One'), - '#type' => 'textfield', - '#default_value' => $config_entity->getOne() ?: '', - ]; - - $form['external'] = [ - '#type' => 'link', - '#title' => $this->t('Show on dialog'), - '#url' => new Url('entity.ctools_wizard_test_config_entity.external_form', [ - 'machine_name' => $config_entity->id(), - ]), - '#attributes' => [ - 'class' => 'use-ajax', - 'data-dialog-type' => 'modal', - ], - ]; - - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $cached_values = $form_state->getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $config_entity->set('one', $form_state->getValue('one')); - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityTwoForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityTwoForm.php deleted file mode 100644 index 6ea2f40..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/ExampleConfigEntityTwoForm.php +++ /dev/null @@ -1,47 +0,0 @@ -getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $form['two'] = array( - '#title' => $this->t('Two'), - '#type' => 'textfield', - '#default_value' => $config_entity->getTwo() ?: '', - ); - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $cached_values = $form_state->getTemporaryValue('wizard'); - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $config_entity->set('two', $form_state->getValue('two')); - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/OneForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/OneForm.php deleted file mode 100644 index 0375056..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/OneForm.php +++ /dev/null @@ -1,71 +0,0 @@ -getTemporaryValue('wizard'); - $form['one'] = [ - '#title' => $this->t('One'), - '#type' => 'textfield', - '#default_value' => !empty($cached_values['one']) ? $cached_values['one'] : '', - ]; - $form['dynamic'] = [ - '#title' => $this->t('Dynamic value'), - '#type' => 'item', - '#markup' => !empty($cached_values['dynamic']) ? $cached_values['dynamic'] : '', - ]; - return $form; - } - - /** - * Form submission handler. - * - * @param array $form - * An associative array containing the structure of the form. - * @param \Drupal\Core\Form\FormStateInterface $form_state - * The current state of the form. - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $keys = array( - 'one', - ); - $cached_values = $form_state->getTemporaryValue('wizard'); - foreach ($keys as $key) { - $cached_values[$key] = $form_state->getValue($key); - } - $form_state->setTemporaryValue('wizard', $cached_values); - - drupal_set_message($this->t('Dynamic value submitted: @value', ['@value' => $cached_values['dynamic']]));; - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/TwoForm.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Form/TwoForm.php deleted file mode 100644 index 01ae10a..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Form/TwoForm.php +++ /dev/null @@ -1,69 +0,0 @@ -getTemporaryValue('wizard'); - $form['two'] = [ - '#title' => $this->t('Two'), - '#type' => 'textfield', - '#default_value' => !empty($cached_values['two']) ? $cached_values['two'] : '', - ]; - $form['dynamic'] = [ - '#title' => $this->t('Dynamic value'), - '#type' => 'item', - '#markup' => !empty($cached_values['dynamic']) ? $cached_values['dynamic'] : '', - ]; - return $form; - } - - /** - * Form submission handler. - * - * @param array $form - * An associative array containing the structure of the form. - * @param \Drupal\Core\Form\FormStateInterface $form_state - * The current state of the form. - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - $keys = array( - 'two', - ); - $cached_values = $form_state->getTemporaryValue('wizard'); - foreach ($keys as $key) { - $cached_values[$key] = $form_state->getValue($key); - } - $form_state->setTemporaryValue('wizard', $cached_values); - } - -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/EntityAddWizardTest.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/EntityAddWizardTest.php deleted file mode 100644 index 77ab5d5..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/EntityAddWizardTest.php +++ /dev/null @@ -1,15 +0,0 @@ -t('Example entity'); - } - - /** - * {@inheritdoc} - */ - public function getMachineLabel() { - return $this->t('Label'); - } - - /** - * {@inheritdoc} - */ - public function getEntityType() { - return 'ctools_wizard_test_config_entity'; - } - - /** - * {@inheritdoc} - */ - public function exists() { - return '\Drupal\ctools_wizard_test\Entity\ExampleConfigEntity::load'; - } - - /** - * {@inheritdoc} - */ - public function getOperations($cached_values) { - /** @var $page \Drupal\ctools_wizard_test\Entity\ExampleConfigEntity */ - $config_entity = $cached_values['ctools_wizard_test_config_entity']; - - $steps = [ - 'general' => [ - 'form' => 'Drupal\ctools_wizard_test\Form\ExampleConfigEntityGeneralForm', - 'title' => $this->t('General'), - ], - 'one' => [ - 'form' => 'Drupal\ctools_wizard_test\Form\ExampleConfigEntityOneForm', - 'title' => $this->t('Form One'), - ], - 'two' => [ - 'form' => 'Drupal\ctools_wizard_test\Form\ExampleConfigEntityTwoForm', - 'title' => $this->t('Form Two'), - ], - ]; - - // To test that we can get the config entity and add/remove steps - // based on it's values, we'll add a special step only when the entity - // is pre-existing. - if (!empty($config_entity) && !$config_entity->isNew()) { - $steps['existing'] = [ - 'form' => 'Drupal\ctools_wizard_test\Form\ExampleConfigEntityExistingForm', - 'title' => $this->t('Existing entity'), - ]; - } - - return $steps; - } -} diff --git a/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/WizardTest.php b/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/WizardTest.php deleted file mode 100644 index 539df33..0000000 --- a/modules/ctools/tests/modules/ctools_wizard_test/src/Wizard/WizardTest.php +++ /dev/null @@ -1,82 +0,0 @@ -t('Wizard Information'); - } - - /** - * {@inheritdoc} - */ - public function getMachineLabel() { - return $this->t('Wizard Test Name'); - } - - /** - * {@inheritdoc} - */ - public function getOperations($cached_values) { - return array( - 'one' => [ - 'form' => 'Drupal\ctools_wizard_test\Form\OneForm', - 'title' => $this->t('Form One'), - 'values' => ['dynamic' => 'Xylophone'], - 'validate' => ['::stepOneValidate'], - 'submit' => ['::stepOneSubmit'], - ], - 'two' => [ - 'form' => 'Drupal\ctools_wizard_test\Form\TwoForm', - 'title' => $this->t('Form Two'), - 'values' => ['dynamic' => 'Zebra'], - ], - ); - } - - /** - * Validation callback for the first step. - */ - public function stepOneValidate($form, FormStateInterface $form_state) { - if ($form_state->getValue('one') == 'wrong') { - $form_state->setErrorByName('one', $this->t('Cannot set the value to "wrong".')); - } - } - - /** - * Submission callback for the first step. - */ - public function stepOneSubmit($form, FormStateInterface $form_state) { - $cached_values = $form_state->getTemporaryValue('wizard'); - if ($form_state->getValue('one') == 'magic') { - $cached_values['one'] = 'Abraham'; - } - $form_state->setTemporaryValue('wizard', $cached_values); - } - - /** - * {@inheritdoc} - */ - public function getRouteName() { - return 'ctools.wizard.test.step'; - } - - /** - * {@inheritdoc} - */ - public function finish(array &$form, FormStateInterface $form_state) { - $cached_values = $form_state->getTemporaryValue('wizard'); - drupal_set_message($this->t('Value One: @one', ['@one' => $cached_values['one']])); - drupal_set_message($this->t('Value Two: @two', ['@two' => $cached_values['two']])); - parent::finish($form, $form_state); - } - -} diff --git a/modules/ctools/tests/src/Kernel/RelationshipManagerTest.php b/modules/ctools/tests/src/Kernel/RelationshipManagerTest.php deleted file mode 100644 index 94ca6d9..0000000 --- a/modules/ctools/tests/src/Kernel/RelationshipManagerTest.php +++ /dev/null @@ -1,63 +0,0 @@ -relationshipManager->getDefinitions(); - $expected = [ - 'Bundle' => [ - 0 => "page", - 1 => "foo" - ] - ]; - $this->assertSame($expected, $definitions['typed_data_relationship:entity:node:body']['context']['base']->getConstraints()); - - // Check that typed data primitive labels are formatted properly. - $this->assertSame('Body from Page and Foo', (string) $definitions['typed_data_relationship:entity:node:body']['label']); - - // Check that entity relationship labels are formatted properly. - $this->assertSame('Authored by Entity from Content', (string) $definitions['typed_data_entity_relationship:entity:node:uid']['label']); - - // Check that language relationship labels are formatted properly. - $this->assertSame('Language Language from Content', (string) $definitions['typed_data_language_relationship:entity:node:langcode']['label']); - } - - /** - * @covers ::getDefinitionsForContexts - */ - public function testRelationshipPluginAvailability() { - $context_definition = new ContextDefinition('entity:node'); - $contexts = [ - 'node' => new Context($context_definition, $this->entities['node1']), - ]; - $definitions = $this->relationshipManager->getDefinitionsForContexts($contexts); - //$this->assertTrue(isset($definitions['typed_data_relationship:entity:node:body'])); - - $context_definition = new ContextDefinition('entity:node'); - $contexts = [ - 'node' => new Context($context_definition, $this->entities['node2']), - ]; - $definitions = $this->relationshipManager->getDefinitionsForContexts($contexts); - $this->assertFalse(isset($definitions['typed_data_relationship:entity:node:body'])); - - $context_definition = new ContextDefinition('entity:node'); - $contexts = [ - 'node' => new Context($context_definition, $this->entities['node3']), - ]; - $definitions = $this->relationshipManager->getDefinitionsForContexts($contexts); - //$this->assertTrue(isset($definitions['typed_data_relationship:entity:node:body'])); - } - -} diff --git a/modules/ctools/tests/src/Kernel/RelationshipsTestBase.php b/modules/ctools/tests/src/Kernel/RelationshipsTestBase.php deleted file mode 100644 index cd58379..0000000 --- a/modules/ctools/tests/src/Kernel/RelationshipsTestBase.php +++ /dev/null @@ -1,96 +0,0 @@ -installSchema('system', ['sequences', 'router']); - $this->installEntitySchema('user'); - $this->installEntitySchema('node_type'); - $this->installEntitySchema('node'); - $this->installConfig('node'); - $page = $this->createEntity('node_type', [ - 'type' => 'page', - 'name' => 'Page' - ]); - node_add_body_field($page); - $article = $this->createEntity('node_type', [ - 'type' => 'article', - 'name' => 'Article' - ]); - // Not adding the body field the articles so that we can perform a test. - $foo = $this->createEntity('node_type', [ - 'type' => 'foo', - 'name' => 'Foo' - ]); - node_add_body_field($foo); - $this->relationshipManager = $this->container->get('plugin.manager.ctools.relationship'); - - $user = $this->createEntity('user', [ - 'name' => 'test_user', - 'password' => 'password', - 'mail' => 'mail@test.com', - 'status' => 1, - ]); - $node1 = $this->createEntity('node', [ - 'title' => 'Node 1', - 'type' => 'page', - 'uid' => $user->id(), - 'body' => 'This is a test', - ]); - $node2 = $this->createEntity('node', [ - 'title' => 'Node 2', - 'type' => 'article', - 'uid' => $user->id() - ]); - $node3 = $this->createEntity('node', [ - 'title' => 'Node 3', - 'type' => 'foo', - 'uid' => $user->id() - ]); - - $this->entities = [ - 'user' => $user, - 'node1' => $node1, - 'node2' => $node2, - 'node3' => $node3, - ]; - } - -} diff --git a/modules/ctools/tests/src/Kernel/SerializableTempstoreTest.php b/modules/ctools/tests/src/Kernel/SerializableTempstoreTest.php deleted file mode 100644 index 16e0704..0000000 --- a/modules/ctools/tests/src/Kernel/SerializableTempstoreTest.php +++ /dev/null @@ -1,64 +0,0 @@ -installSchema('system', ['key_value_expire']); - } - - /** - * Tests serializing a serializable temp store object. - */ - public function testSerializableTempStore() { - $store = $this->container - ->get('ctools.serializable.tempstore.factory') - ->get('foobar'); - - // Add an unserializable request to the request stack. If the tempstore - // didn't use DependencySerializationTrait, the exception would be thrown - // when we try to serialize the tempstore. - $request = $this->prophesize(Request::class); - $request->willImplement('\Serializable'); - $request->serialize()->willThrow(new \LogicException('Not cool, bruh!')); - $this->container->get('request_stack')->push($request->reveal()); - - $this->assertInstanceOf(SerializableTempstore::class, $store); - /** @var SerializableTempstore $store */ - - $store = serialize($store); - $this->assertInternalType('string', $store); - $this->assertNotEmpty($store, 'The tempstore was serialized.'); - - $store = unserialize($store); - $this->assertInstanceOf(SerializableTempstore::class, $store, 'The tempstore was unserialized.'); - - $request_stack = $this->getObjectAttribute($store, 'requestStack'); - $this->assertSame( - $this->container->get('request_stack'), - $request_stack, - 'The request stack was pulled from the container during unserialization.' - ); - $this->assertSame($request->reveal(), $request_stack->pop()); - } - -} diff --git a/modules/ctools/tests/src/Kernel/TypedDataEntityRelationshipPluginTest.php b/modules/ctools/tests/src/Kernel/TypedDataEntityRelationshipPluginTest.php deleted file mode 100644 index 042eb7b..0000000 --- a/modules/ctools/tests/src/Kernel/TypedDataEntityRelationshipPluginTest.php +++ /dev/null @@ -1,46 +0,0 @@ -relationshipManager->createInstance('typed_data_entity_relationship:entity:node:type'); - $this->assertSame('type', $type_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uuid_plugin */ - $uid_plugin = $this->relationshipManager->createInstance('typed_data_entity_relationship:entity:node:uid'); - $this->assertSame('uid', $uid_plugin->getName()); - } - - /** - * @covers ::getRelationship - */ - public function testRelationship() { - /** @var \Drupal\ctools\Plugin\RelationshipInterface $type_plugin */ - $type_plugin = $this->relationshipManager->createInstance('typed_data_entity_relationship:entity:node:type'); - $type_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $type_plugin->getRelationship(); - $this->assertTrue($relationship->getContextValue() instanceof NodeType); - $this->assertSame('entity:node_type', $relationship->getContextDefinition()->getDataType()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uid_plugin */ - $uid_plugin = $this->relationshipManager->createInstance('typed_data_entity_relationship:entity:node:uid'); - $uid_plugin->setContextValue('base', $this->entities['node3']); - $relationship = $uid_plugin->getRelationship(); - $this->assertTrue($relationship->getContextValue() instanceof User); - $this->assertSame('entity:user', $relationship->getContextDefinition()->getDataType()); - } - -} diff --git a/modules/ctools/tests/src/Kernel/TypedDataLanguageRelationshipPluginTest.php b/modules/ctools/tests/src/Kernel/TypedDataLanguageRelationshipPluginTest.php deleted file mode 100644 index 3e94531..0000000 --- a/modules/ctools/tests/src/Kernel/TypedDataLanguageRelationshipPluginTest.php +++ /dev/null @@ -1,36 +0,0 @@ -relationshipManager->createInstance('typed_data_language_relationship:entity:node:langcode'); - $this->assertSame('langcode', $langcode_plugin->getName()); - } - - /** - * @covers ::getRelationship - * - * @todo expand to include a new language. - */ - public function testRelationship() { - /** @var \Drupal\ctools\Plugin\RelationshipInterface $langcode_plugin */ - $langcode_plugin = $this->relationshipManager->createInstance('typed_data_language_relationship:entity:node:langcode'); - $langcode_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $langcode_plugin->getRelationship(); - $this->assertTrue($relationship->getContextValue() instanceof LanguageInterface); - $this->assertSame('en', $relationship->getContextValue()->getId()); - } - -} diff --git a/modules/ctools/tests/src/Kernel/TypedDataRelationshipPluginTest.php b/modules/ctools/tests/src/Kernel/TypedDataRelationshipPluginTest.php deleted file mode 100644 index f9a07cf..0000000 --- a/modules/ctools/tests/src/Kernel/TypedDataRelationshipPluginTest.php +++ /dev/null @@ -1,103 +0,0 @@ -relationshipManager->createInstance('typed_data_relationship:entity:node:nid'); - $this->assertSame('nid', $nid_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uuid_plugin */ - $uuid_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:uuid'); - $this->assertSame('uuid', $uuid_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $title_plugin */ - $title_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:title'); - $this->assertSame('title', $title_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $body_plugin */ - $body_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:body'); - $this->assertSame('body', $body_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uid_plugin */ - $uid_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:uid'); - $this->assertSame('uid', $uid_plugin->getName()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $mail_plugin */ - $mail_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:user:mail'); - $this->assertSame('mail', $mail_plugin->getName()); - } - - /** - * @covers ::getRelationship - */ - public function testRelationship() { - /** @var \Drupal\ctools\Plugin\RelationshipInterface $nid_plugin */ - $nid_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:nid'); - $nid_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $nid_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'integer'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['node1']->id()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uuid_plugin */ - $uuid_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:uuid'); - $uuid_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $uuid_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'string'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['node1']->uuid()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $title_plugin */ - $title_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:title'); - $title_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $title_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'string'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['node1']->label()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $body_plugin */ - $body_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:body'); - $body_plugin->setContextValue('base', $this->entities['node1']); - $relationship = $body_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'string'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['node1']->get('body')->first()->get('value')->getValue()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $uid_plugin */ - $uid_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:node:uid'); - $uid_plugin->setContextValue('base', $this->entities['node3']); - $relationship = $uid_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'integer'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['node3']->getOwnerId()); - - /** @var \Drupal\ctools\Plugin\RelationshipInterface $mail_plugin */ - $mail_plugin = $this->relationshipManager->createInstance('typed_data_relationship:entity:user:mail'); - $mail_plugin->setContextValue('base', $this->entities['user']); - $relationship = $mail_plugin->getRelationship(); - $this->assertTrue($relationship instanceof ContextInterface); - $this->assertTrue($relationship->getContextDefinition()->getDataType() == 'email'); - $this->assertTrue($relationship->hasContextValue()); - $this->assertTrue($relationship->getContextValue() == $this->entities['user']->getEmail()); - } - -} diff --git a/modules/ctools/tests/src/Kernel/TypedDataResolverTest.php b/modules/ctools/tests/src/Kernel/TypedDataResolverTest.php deleted file mode 100644 index c53c9c1..0000000 --- a/modules/ctools/tests/src/Kernel/TypedDataResolverTest.php +++ /dev/null @@ -1,105 +0,0 @@ -installSchema('system', 'sequences'); - $this->installEntitySchema('user'); - - $this->typedDataResolver = \Drupal::service('ctools.typed_data.resolver'); - } - - /** - * Tests context extraction from properties. - */ - public function testGetContextFromProperty() { - // Create a user and test entity to extract context from. - $user = User::create(['uid' => 2, 'name' => 'username', 'mail' => 'mail@example.org']); - $user->enforceIsNew(TRUE); - $user->save(); - $entity_test = EntityTest::create(['user_id' => $user->id(), 'name' => 'Test name']); - - // Test the language property. - $property_context = $this->assertPropertyPath($entity_test, 'langcode:language', 'language'); - $this->assertEquals('en', $property_context->getContextValue()->getId()); - - // Test the reference to the user. - $property_context = $this->assertPropertyPath($entity_test, 'user_id:entity', 'entity:user'); - $this->assertEquals($user->id(), $property_context->getContextValue()->id()); - - // Test the reference to the name. - $property_context = $this->assertPropertyPath($entity_test, 'name:value', 'string'); - $this->assertEquals('Test name', $property_context->getContextValue()); - - // Test explicitly specifying the delta. - $property_context = $this->assertPropertyPath($entity_test, 'name:0:value', 'string'); - $this->assertEquals('Test name', $property_context->getContextValue()); - - // Test following the reference. - $property_context = $this->assertPropertyPath($entity_test, 'user_id:entity:mail:value', 'email'); - $this->assertEquals('mail@example.org', $property_context->getContextValue()); - } - - /** - * Asserts that a context for the given property path can be derived. - * - * @param \Drupal\Core\Entity\ContentEntityInterface $entity - * The entity to test with. - * @param $property_path - * The property path to look for. - * @param $expected_data_type - * The expected data type. - * - * @return \Drupal\Core\Plugin\Context\ContextInterface - * The context with a value. - */ - protected function assertPropertyPath(ContentEntityInterface $entity, $property_path, $expected_data_type) { - $typed_data_entity = $entity->getTypedData(); - $context_definition = new ContextDefinition($typed_data_entity->getDataDefinition()->getDataType()); - $context_with_value = new Context($context_definition, $typed_data_entity); - $context_without_value = new Context($context_definition); - - // Test the context without value. - $property_context = $this->typedDataResolver->getContextFromProperty($property_path, $context_without_value); - $this->assertEquals($expected_data_type, $property_context->getContextDefinition()->getDataType()); - - // Test the context with value. - $property_context = $this->typedDataResolver->getContextFromProperty($property_path, $context_with_value); - $this->assertEquals($expected_data_type, $property_context->getContextDefinition()->getDataType()); - - // Return the context with value so it can be asserted. - return $property_context; - } - -} diff --git a/modules/ctools/tests/src/Unit/BlockDisplayVariantTest.php b/modules/ctools/tests/src/Unit/BlockDisplayVariantTest.php deleted file mode 100644 index ed04f3d..0000000 --- a/modules/ctools/tests/src/Unit/BlockDisplayVariantTest.php +++ /dev/null @@ -1,90 +0,0 @@ -prophesize(AccountInterface::class); - $context_handler = $this->prophesize(ContextHandlerInterface::class); - $uuid_generator = $this->prophesize(UuidInterface::class); - $token = $this->prophesize(Token::class); - $block_manager = $this->prophesize(BlockManager::class); - $condition_manager = $this->prophesize(ConditionManager::class); - - $display_variant = new TestBlockDisplayVariant([], '', [], $context_handler->reveal(), $account->reveal(), $uuid_generator->reveal(), $token->reveal(), $block_manager->reveal(), $condition_manager->reveal()); - - $form = []; - $form_state = (new FormState())->setValues($values); - $display_variant->submitConfigurationForm($form, $form_state); - $this->assertSame($values['label'], $display_variant->label()); - } - - /** - * Provides data for testSubmitConfigurationForm(). - */ - public function providerTestSubmitConfigurationForm() { - $data = []; - $data[] = [ - [ - 'label' => 'test_label1', - ], - ]; - $data[] = [ - [ - 'label' => 'test_label2', - 'blocks' => ['foo1' => []], - ], - ]; - $data[] = [ - [ - 'label' => 'test_label3', - 'blocks' => ['foo1' => [], 'foo2' => []], - ], - ]; - return $data; - } - -} - -class TestBlockDisplayVariant extends BlockDisplayVariant { - - /** - * {@inheritdoc} - */ - public function build() { - return []; - } - - public function getRegionNames() { - return [ - 'top' => 'Top', - 'bottom' => 'Bottom', - ]; - } - -} diff --git a/modules/ctools/tests/src/Unit/BlockPluginCollectionTest.php b/modules/ctools/tests/src/Unit/BlockPluginCollectionTest.php deleted file mode 100644 index c928107..0000000 --- a/modules/ctools/tests/src/Unit/BlockPluginCollectionTest.php +++ /dev/null @@ -1,81 +0,0 @@ - [ - 'id' => 'foo', - 'label' => 'Foo', - 'plugin' => 'system_powered_by_block', - 'region' => 'bottom', - ], - 'bar' => [ - 'id' => 'bar', - 'label' => 'Bar', - 'plugin' => 'system_powered_by_block', - 'region' => 'top', - ], - 'bing' => [ - 'id' => 'bing', - 'label' => 'Bing', - 'plugin' => 'system_powered_by_block', - 'region' => 'bottom', - 'weight' => -10, - ], - 'baz' => [ - 'id' => 'baz', - 'label' => 'Baz', - 'plugin' => 'system_powered_by_block', - 'region' => 'bottom', - ], - ]; - $block_manager = $this->prophesize(BlockManagerInterface::class); - $plugins = []; - foreach ($blocks as $block_id => $block) { - $plugin = $this->prophesize(BlockPluginInterface::class); - $plugin->label()->willReturn($block['label']); - $plugin->getConfiguration()->willReturn($block); - $plugins[$block_id] = $plugin->reveal(); - - $block_manager->createInstance($block_id, $block) - ->willReturn($plugin->reveal()) - ->shouldBeCalled(); - } - - - $block_plugin_collection = new BlockPluginCollection($block_manager->reveal(), $blocks); - $expected = [ - 'bottom' => [ - 'bing' => $plugins['bing'], - 'baz' => $plugins['baz'], - 'foo' => $plugins['foo'], - ], - 'top' => [ - 'bar' => $plugins['bar'], - ], - ]; - $this->assertSame($expected, $block_plugin_collection->getAllByRegion()); - } - -} diff --git a/modules/ctools/tests/src/Unit/BlockVariantTraitTest.php b/modules/ctools/tests/src/Unit/BlockVariantTraitTest.php deleted file mode 100644 index 8926879..0000000 --- a/modules/ctools/tests/src/Unit/BlockVariantTraitTest.php +++ /dev/null @@ -1,149 +0,0 @@ -prophesize(BlockPluginCollection::class); - $block_collection->getAllByRegion() - ->willReturn($blocks) - ->shouldBeCalled(); - - $display_variant = new TestBlockVariantTrait(); - $display_variant->setBlockPluginCollection($block_collection->reveal()); - - $this->assertSame($expected, $display_variant->getRegionAssignments()); - } - - public function providerTestGetRegionAssignments() { - return [ - [ - [ - 'top' => [], - 'bottom' => [], - ], - ], - [ - [ - 'top' => ['foo'], - 'bottom' => [], - ], - [ - 'top' => ['foo'], - ], - ], - [ - [ - 'top' => [], - 'bottom' => [], - ], - [ - 'invalid' => ['foo'], - ], - ], - [ - [ - 'top' => [], - 'bottom' => ['foo'], - ], - [ - 'bottom' => ['foo'], - 'invalid' => ['bar'], - ], - ], - ]; - } - -} - -class TestBlockVariantTrait { - use BlockVariantTrait; - - /** - * @var array - */ - protected $blockConfig = []; - - /** - * @var \Drupal\Component\Uuid\UuidInterface - */ - protected $uuidGenerator; - - /** - * @param BlockPluginCollection $block_plugin_collection - * - * @return $this - */ - public function setBlockPluginCollection(BlockPluginCollection $block_plugin_collection) { - $this->blockPluginCollection = $block_plugin_collection; - return $this; - } - - /** - * @param \Drupal\Component\Uuid\UuidInterface $uuid_generator - * - * @return $this - */ - public function setUuidGenerator(UuidInterface $uuid_generator) { - $this->uuidGenerator = $uuid_generator; - return $this; - } - - /** - * {@inheritdoc} - */ - protected function uuidGenerator() { - return $this->uuidGenerator; - } - - /** - * Sets the block configuration. - * - * @param array $config - * The block configuration. - * - * @return $this - */ - public function setBlockConfig(array $config) { - $this->blockConfig = $config; - return $this; - } - - /** - * {@inheritdoc} - */ - protected function getBlockConfig() { - return $this->blockConfig; - } - - /** - * {@inheritdoc} - */ - public function getRegionNames() { - return [ - 'top' => 'Top', - 'bottom' => 'Bottom', - ]; - } - -} diff --git a/modules/ctools/tests/src/Unit/ContextMapperTest.php b/modules/ctools/tests/src/Unit/ContextMapperTest.php deleted file mode 100644 index 24a85f2..0000000 --- a/modules/ctools/tests/src/Unit/ContextMapperTest.php +++ /dev/null @@ -1,104 +0,0 @@ -typedDataManager = $this->prophesize(TypedDataManager::class); - $this->entityRepository = $this->prophesize(EntityRepositoryInterface::class); - $this->staticContext = new ContextMapper($this->entityRepository->reveal()); - - $container = new ContainerBuilder(); - $container->set('typed_data_manager', $this->typedDataManager->reveal()); - \Drupal::setContainer($container); - } - - /** - * @covers ::getContextValues - */ - public function testGetContextValues() { - $input = []; - $actual = $this->staticContext->getContextValues($input); - $this->assertEquals([], $actual); - } - - /** - * @covers ::getContextValues - */ - public function testGetContextValuesContext() { - $data_definition = DataDefinition::createFromDataType('integer'); - $typed_data = IntegerData::createInstance($data_definition); - $this->typedDataManager->createDataDefinition('integer')->willReturn($data_definition); - $this->typedDataManager->getDefaultConstraints($data_definition)->willReturn([]); - $this->typedDataManager->create($data_definition, 5)->willReturn($typed_data); - - $input = [ - 'foo' => [ - 'label' => 'Foo', - 'description' => NULL, - 'type' => 'integer', - 'value' => 5, - ], - ]; - $expected = new Context(new ContextDefinition('integer', 'Foo'), 5); - $actual = $this->staticContext->getContextValues($input)['foo']; - $this->assertEquals($expected, $actual); - } - - /** - * @covers ::getContextValues - */ - public function testGetContextValuesEntityContext() { - $input = [ - 'foo' => [ - 'label' => 'Foo', - 'description' => NULL, - 'type' => 'entity:node', - 'value' => 'the_node_uuid', - ], - ]; - $expected = new EntityLazyLoadContext(new ContextDefinition('entity:node', 'Foo'), $this->entityRepository->reveal(), 'the_node_uuid'); - $actual = $this->staticContext->getContextValues($input)['foo']; - $this->assertEquals($expected, $actual); - } - -} diff --git a/modules/ctools/tests/src/Unit/VariantCollectionTraitTest.php b/modules/ctools/tests/src/Unit/VariantCollectionTraitTest.php deleted file mode 100644 index 4e93ea0..0000000 --- a/modules/ctools/tests/src/Unit/VariantCollectionTraitTest.php +++ /dev/null @@ -1,209 +0,0 @@ -manager = $this->prophesize(PluginManagerInterface::class); - $container->set('plugin.manager.display_variant', $this->manager->reveal()); - \Drupal::setContainer($container); - } - - /** - * @covers ::getVariants - */ - public function testGetVariantsEmpty() { - $trait_object = new TestVariantCollectionTrait(); - $this->manager->createInstance()->shouldNotBeCalled(); - - $variants = $trait_object->getVariants(); - $this->assertInstanceOf(VariantPluginCollection::class, $variants); - $this->assertSame(0, count($variants)); - } - - /** - * @covers ::getVariants - */ - public function testGetVariants() { - $trait_object = new TestVariantCollectionTrait(); - $config = [ - 'foo' => ['id' => 'foo_plugin'], - 'bar' => ['id' => 'bar_plugin'], - ]; - foreach ($config as $value) { - $plugin = $this->prophesize(VariantInterface::class); - $this->manager->createInstance($value['id'], $value)->willReturn($plugin->reveal()); - } - $trait_object->setVariantConfig($config); - - $variants = $trait_object->getVariants(); - $this->assertInstanceOf(VariantPluginCollection::class, $variants); - $this->assertSame(2, count($variants)); - return $variants; - } - - /** - * @covers ::getVariants - * - * @depends testGetVariants - */ - public function testGetVariantsSort(VariantPluginCollection $variants) { - $this->assertSame(['bar' => 'bar', 'foo' => 'foo'], $variants->getInstanceIds()); - } - - /** - * @covers ::addVariant - */ - public function testAddVariant() { - $config = ['id' => 'foo']; - $uuid = 'test-uuid'; - $expected_config = $config + ['uuid' => $uuid]; - - $uuid_generator = $this->prophesize(UuidInterface::class); - $uuid_generator->generate() - ->willReturn($uuid) - ->shouldBeCalledTimes(1); - $trait_object = new TestVariantCollectionTrait(); - $trait_object->setUuidGenerator($uuid_generator->reveal()); - - $plugin_prophecy = $this->prophesize(VariantInterface::class); - $plugin_prophecy->getConfiguration() - ->willReturn($expected_config) - ->shouldBeCalled(); - $plugin_prophecy->setConfiguration($expected_config) - ->willReturn($expected_config) - ->shouldBeCalled(); - - $this->manager->createInstance('foo', $expected_config) - ->willReturn($plugin_prophecy->reveal()); - - $resulting_uuid = $trait_object->addVariant($config); - $this->assertSame($uuid, $resulting_uuid); - - $variants = $trait_object->getVariants(); - $this->assertSame([$uuid => $uuid], $variants->getInstanceIds()); - $this->assertSame([$uuid => $expected_config], $variants->getConfiguration()); - $this->assertSame($plugin_prophecy->reveal(), $variants->get($uuid)); - return [$trait_object, $uuid, $plugin_prophecy->reveal()]; - } - - /** - * @covers ::getVariant - * - * @depends testAddVariant - */ - public function testGetVariant($data) { - list($trait_object, $uuid, $plugin) = $data; - $this->manager->createInstance()->shouldNotBeCalled(); - - $this->assertSame($plugin, $trait_object->getVariant($uuid)); - return [$trait_object, $uuid]; - } - - /** - * @covers ::removeVariant - * - * @depends testGetVariant - */ - public function testRemoveVariant($data) { - list($trait_object, $uuid) = $data; - - $this->assertSame($trait_object, $trait_object->removeVariant($uuid)); - $this->assertFalse($trait_object->getVariants()->has($uuid)); - return [$trait_object, $uuid]; - } - - /** - * @covers ::getVariant - * - * @depends testRemoveVariant - * - * @expectedException \Drupal\Component\Plugin\Exception\PluginNotFoundException - * @expectedExceptionMessage Plugin ID 'test-uuid' was not found. - */ - public function testGetVariantException($data) { - list($trait_object, $uuid) = $data; - // Attempt to retrieve a variant that has been removed. - $this->assertNull($trait_object->getVariant($uuid)); - } - -} - -class TestVariantCollectionTrait { - use VariantCollectionTrait; - - /** - * @var array - */ - protected $variantConfig = []; - - /** - * @var \Drupal\Component\Uuid\UuidInterface - */ - protected $uuidGenerator; - - /** - * @param \Drupal\Component\Uuid\UuidInterface $uuid_generator - * - * @return $this - */ - public function setUuidGenerator(UuidInterface $uuid_generator) { - $this->uuidGenerator = $uuid_generator; - return $this; - } - - /** - * {@inheritdoc} - */ - protected function uuidGenerator() { - return $this->uuidGenerator; - } - - /** - * Sets the variant configuration. - * - * @param array $config - * The variant configuration. - * - * @return $this - */ - public function setVariantConfig(array $config) { - $this->variantConfig = $config; - return $this; - } - - /** - * {@inheritdoc} - */ - protected function getVariantConfig() { - return $this->variantConfig; - } - -} diff --git a/modules/devel/LICENSE.txt b/modules/devel/LICENSE.txt deleted file mode 100644 index d159169..0000000 --- a/modules/devel/LICENSE.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - -' . t('The Devel module provides a suite of modules containing fun for module developers and themers. For more information, see the online documentation for the Devel module.', [':url' => 'https://www.drupal.org/docs/8/modules/devel']) . '
'; - $output .= '' . t('Displays Services and Parameters registered in the Service Container. For more informations on the Service Container, see the Symfony online documentation.', [':url' => 'http://symfony.com/doc/current/service_container.html']) . '
'; - return $output; - - case 'devel.route_info': - $output = ''; - $output .= '' . t('Displays registered routes for the site. For a complete overview of the routing system, see the online documentation.', [':url' => 'https://www.drupal.org/docs/8/api/routing-system']) . '
'; - return $output; - - case 'devel.event_info': - $output = ''; - $output .= '' . t('Displays events and listeners registered in the event dispatcher. For a complete overview of the event system, see the Symfony online documentation.', [':url' => 'http://symfony.com/doc/current/components/event_dispatcher.html']) . '
'; - return $output; - - case 'devel.reinstall': - $output = '' . t('Warning - will delete your module tables and configuration.') . '
'; - $output .= '' . t('Uninstall and then install the selected modules. hook_uninstall()
and hook_install()
will be executed and the schema version number will be set to the most recent update number.') . '
' . t('Here are the contents of your $_SESSION
variable.') . '
' . t('This is a list of state variables and their values. For more information read online documentation of State API in Drupal 8.', array(':documentation' => "https://www.drupal.org/developing/api/8/state")) . '
'; - - case 'devel.layout_info': - $output = ''; - $output .= '' . t('Displays layouts available to the site. For a complete overview of the layout system, see the Layout API documentation.', [':url' => 'https://www.drupal.org/docs/8/api/layout-api']) . '
'; - return $output; - - } -} - -/** - * Implements hook_entity_type_alter(). - */ -function devel_entity_type_alter(array &$entity_types) { - return \Drupal::service('class_resolver') - ->getInstanceFromDefinition(EntityTypeInfo::class) - ->entityTypeAlter($entity_types); -} - -/** - * Implements hook_entity_operation(). - */ -function devel_entity_operation(EntityInterface $entity) { - return \Drupal::service('class_resolver') - ->getInstanceFromDefinition(EntityTypeInfo::class) - ->entityOperation($entity); -} - -/** - * Implements hook_toolbar(). - */ -function devel_toolbar() { - return \Drupal::service('class_resolver') - ->getInstanceFromDefinition(ToolbarHandler::class) - ->toolbar(); -} - -/** - * Implements hook_menu_links_discovered_alter(). - */ -function devel_menu_links_discovered_alter(&$links) { - // Conditionally add the Layouts info menu link. - if (\Drupal::moduleHandler()->moduleExists('layout_discovery')) { - $links['devel.layout_info'] = [ - 'title' => new TranslatableMarkup('Layouts Info'), - 'route_name' => 'devel.layout_info', - 'description' => new TranslatableMarkup('Overview of layouts available to the site.'), - 'menu_name' => 'devel', - ]; - } -} - -/** - * Implements hook_local_tasks_alter(). - */ -function devel_local_tasks_alter(&$local_tasks) { - if (\Drupal::moduleHandler()->moduleExists('toolbar')) { - $local_tasks['devel.toolbar.settings_form'] = [ - 'title' => 'Toolbar Settings', - 'base_route' => 'devel.admin_settings', - 'route_name' => 'devel.toolbar.settings_form', - 'class' => LocalTaskDefault::class, - 'options' => [], - ]; - } -} - -/** - * Sets message. - */ -function devel_set_message($msg, $type = NULL) { - if (function_exists('drush_log')) { - drush_log($msg, $type); - } - else { - drupal_set_message($msg, $type, TRUE); - } -} - -/** - * Gets error handlers. - */ -function devel_get_handlers() { - $error_handlers = \Drupal::config('devel.settings')->get('error_handlers'); - if (!empty($error_handlers)) { - unset($error_handlers[DEVEL_ERROR_HANDLER_NONE]); - } - return $error_handlers; -} - -/** - * Sets a new error handler or restores the prior one. - */ -function devel_set_handler($handlers) { - if (empty($handlers)) { - restore_error_handler(); - } - elseif (count($handlers) == 1 && isset($handlers[DEVEL_ERROR_HANDLER_STANDARD])) { - // Do nothing. - } - else { - set_error_handler('backtrace_error_handler'); - } -} - -/** - * Displays backtrace showing the route of calls to the current error. - * - * @param int $error_level - * The level of the error raised. - * @param string $message - * The error message. - * @param string $filename - * The filename that the error was raised in. - * @param int $line - * The line number the error was raised at. - * @param array $context - * An array that points to the active symbol table at the point the error - * occurred. - */ -function backtrace_error_handler($error_level, $message, $filename, $line, $context) { - // Hide stack trace and parameters from unqualified users. - if (!\Drupal::currentUser()->hasPermission('access devel information')) { - // Do what core does in bootstrap.inc and errors.inc. - // (We need to duplicate the core code here rather than calling it - // to avoid having the backtrace_error_handler() on top of the call stack.) - if ($error_level & error_reporting()) { - $types = drupal_error_levels(); - list($severity_msg, $severity_level) = $types[$error_level]; - $backtrace = debug_backtrace(); - $caller = Error::getLastCaller($backtrace); - - // We treat recoverable errors as fatal. - _drupal_log_error(array( - '%type' => isset($types[$error_level]) ? $severity_msg : 'Unknown error', - '@message' => $message, - '%function' => $caller['function'], - '%file' => $caller['file'], - '%line' => $caller['line'], - 'severity_level' => $severity_level, - 'backtrace' => $backtrace, - ), $error_level == E_RECOVERABLE_ERROR); - } - - return; - } - - // Don't respond to the error if it was suppressed with a '@' - if (error_reporting() == 0) { - return; - } - - // Don't respond to warning caused by ourselves. - if (preg_match('#Cannot modify header information - headers already sent by \\([^\\)]*[/\\\\]devel[/\\\\]#', $message)) { - return; - } - - if ($error_level & error_reporting()) { - // Only write each distinct NOTICE message once, as repeats do not give any - // further information and can choke the page output. - if ($error_level == E_NOTICE) { - static $written = array(); - if (!empty($written[$line][$filename][$message])) { - return; - } - $written[$line][$filename][$message] = TRUE; - } - - $types = drupal_error_levels(); - list($severity_msg, $severity_level) = $types[$error_level]; - - $backtrace = debug_backtrace(); - $caller = Error::getLastCaller($backtrace); - $variables = array( - '%type' => isset($types[$error_level]) ? $severity_msg : 'Unknown error', - '@message' => $message, - '%function' => $caller['function'], - '%file' => $caller['file'], - '%line' => $caller['line'], - ); - $msg = t('%type: @message in %function (line %line of %file).', $variables); - - // Show message if error_level is ERROR_REPORTING_DISPLAY_SOME or higher. - // (This is Drupal's error_level, which is different from $error_level, - // and we purposely ignore the difference between _SOME and _ALL, - // see #970688!) - if (\Drupal::config('system.logging')->get('error_level') != 'hide') { - $error_handlers = devel_get_handlers(); - if (!empty($error_handlers[DEVEL_ERROR_HANDLER_STANDARD])) { - drupal_set_message($msg, ($severity_level <= RfcLogLevel::NOTICE ? 'error' : 'warning'), TRUE); - } - if (!empty($error_handlers[DEVEL_ERROR_HANDLER_BACKTRACE_KINT])) { - print kpr(ddebug_backtrace(TRUE, 1), TRUE, $msg); - } - if (!empty($error_handlers[DEVEL_ERROR_HANDLER_BACKTRACE_DPM])) { - dpm(ddebug_backtrace(TRUE, 1), $msg, 'warning'); - } - } - - \Drupal::logger('php')->log($severity_level, $msg); - } -} - -/** - * Implements hook_page_attachments_alter(). - */ -function devel_page_attachments_alter(&$page) { - if (\Drupal::currentUser()->hasPermission('access devel information') && \Drupal::config('devel.settings')->get('page_alter')) { - dpm($page, 'page'); - } -} - -/** - * Wrapper for DevelDumperManager::dump(). - * - * Calls the http://www.firephp.org/ fb() function if it is found. - * - * @see \Drupal\devel\DevelDumperManager::dump() - */ -function dfb() { - $args = func_get_args(); - \Drupal::service('devel.dumper')->dump($args, NULL, 'firephp'); -} - -/** - * Wrapper for DevelDumperManager::dump(). - * - * Calls dfb() to output a backtrace. - * - * @see \Drupal\devel\DevelDumperManager::dump() - */ -function dfbt($label) { - \Drupal::service('devel.dumper')->dump(FirePHP::TRACE, $label, 'firephp'); -} - -/** - * Wrapper for DevelDumperManager::dump(). - * - * Wrapper for ChromePHP Class log method. - * - * @see \Drupal\devel\DevelDumperManager::dump() - */ -function dcp() { - $args = func_get_args(); - \Drupal::service('devel.dumper')->dump($args, NULL, 'chromephp'); -} - -if (!function_exists('dd')) { - /** - * Wrapper for DevelDumperManager::debug(). - * - * @see \Drupal\devel\DevelDumperManager::debug() - */ - function dd($data, $label = NULL) { - return \Drupal::service('devel.dumper')->debug($data, $label, 'default'); - } -} - -/** - * Wrapper for DevelDumperManager::message(). - * - * Prints a variable to the 'message' area of the page. - * - * Uses drupal_set_message(). - * - * @param $input - * An arbitrary value to output. - * @param string $name - * Optional name for identifying the output. - * @param string $type - * Optional message type for drupal_set_message(), defaults to 'status'. - * - * @return input - * The unaltered input value. - * - * @see \Drupal\devel\DevelDumperManager::message() - */ -function dpm($input, $name = NULL, $type = 'status') { - \Drupal::service('devel.dumper')->message($input, $name, $type); - return $input; -} - -/** - * Wrapper for DevelDumperManager::message(). - * - * Displays a Variable::export() variable to the 'message' area of the page. - * - * Uses drupal_set_message(). - * - * @param $input - * An arbitrary value to output. - * @param string $name - * Optional name for identifying the output. - * - * @return input - * The unaltered input value. - * - * @see \Drupal\devel\DevelDumperManager::message() - */ -function dvm($input, $name = NULL) { - \Drupal::service('devel.dumper')->message($input, $name, 'status', 'drupal_variable'); - return $input; -} - -/** - * An alias for dpm(), for historic reasons. - */ -function dsm($input, $name = NULL) { - return dpm($input, $name); -} - -/** - * Wrapper for DevelDumperManager::dumpOrExport(). - * - * An alias for the devel.dumper service. Saves carpal tunnel syndrome. - * - * @see \Drupal\devel\DevelDumperManager::dumpOrExport() - */ -function dpr($input, $export = FALSE, $name = NULL) { - return \Drupal::service('devel.dumper')->dumpOrExport($input, $name, $export, 'default'); -} - -/** - * Wrapper for DevelDumperManager::dumpOrExport(). - * - * An alias for devel_dump(). Saves carpal tunnel syndrome. - * - * @see \Drupal\devel\DevelDumperManager::dumpOrExport() - */ -function kpr($input, $export = FALSE, $name = NULL) { - return \Drupal::service('devel.dumper')->dumpOrExport($input, $name, $export); -} - -/** - * Wrapper for DevelDumperManager::dumpOrExport(). - * - * Like dpr(), but uses Variable::export() instead. - * - * @see \Drupal\devel\DevelDumperManager::dumpOrExport() - */ -function dvr($input, $export = FALSE, $name = NULL) { - return \Drupal::service('devel.dumper')->dumpOrExport($input, $name, $export, 'drupal_variable'); -} - -/** - * Prints the arguments passed into the current function. - */ -function dargs($always = TRUE) { - static $printed; - if ($always || !$printed) { - $bt = debug_backtrace(); - print kpr($bt[1]['args'], TRUE); - $printed = TRUE; - } -} - -/** - * Prints a SQL string from a DBTNG Select object. Includes quoted arguments. - * - * @param object $query - * An object that implements the SelectInterface interface. - * @param boolean $return - * Whether to return the string. Default is FALSE, meaning to print it - * and return $query instead. - * @param string $name - * Optional name for identifying the output. - * - * @return object|string - * The $query object, or the query string if $return was TRUE. - */ -function dpq($query, $return = FALSE, $name = NULL) { - if (\Drupal::currentUser()->hasPermission('access devel information')) { - if (method_exists($query, 'preExecute')) { - $query->preExecute(); - } - $sql = (string) $query; - $quoted = array(); - $connection = Database::getConnection(); - foreach ((array) $query->arguments() as $key => $val) { - $quoted[$key] = is_null($val) ? 'NULL' : $connection->quote($val); - } - $sql = strtr($sql, $quoted); - if ($return) { - return $sql; - } - dpm($sql, $name); - } - return ($return ? NULL : $query); -} - -/** - * Prints a renderable array element to the screen using kprint_r(). - * - * #pre_render and/or #post_render pass-through callback for kprint_r(). - * - * @todo Investigate appending to #suffix. - * @todo Investigate label derived from #id, #title, #name, and #theme. - */ -function devel_render() { - $args = func_get_args(); - // #pre_render and #post_render pass the rendered $element as last argument. - kpr(end($args)); - // #pre_render and #post_render expect the first argument to be returned. - return reset($args); -} - -/** - * Prints the function call stack. - * - * @param $return - * Pass TRUE to return the formatted backtrace rather than displaying it in - * the browser via kprint_r(). - * @param $pop - * How many items to pop from the top of the stack; useful when calling from - * an error handler. - * @param $options - * Options to pass on to PHP's debug_backtrace(). - * - * @return string|NULL - * The formatted backtrace, if requested, or NULL. - * - * @see http://php.net/manual/en/function.debug-backtrace.php - */ -function ddebug_backtrace($return = FALSE, $pop = 0, $options = DEBUG_BACKTRACE_PROVIDE_OBJECT) { - if (\Drupal::currentUser()->hasPermission('access devel information')) { - $backtrace = debug_backtrace($options); - while ($pop-- > 0) { - array_shift($backtrace); - } - $counter = count($backtrace); - $path = $backtrace[$counter - 1]['file']; - $path = substr($path, 0, strlen($path) - 10); - $paths[$path] = strlen($path) + 1; - $paths[DRUPAL_ROOT] = strlen(DRUPAL_ROOT) + 1; - $nbsp = "\xC2\xA0"; - - // Show message if error_level is ERROR_REPORTING_DISPLAY_SOME or higher. - // (This is Drupal's error_level, which is different from $error_level, - // and we purposely ignore the difference between _SOME and _ALL, - // see #970688!) - if (\Drupal::config('system.logging')->get('error_level') != 'hide') { - while (!empty($backtrace)) { - $call = array(); - if (isset($backtrace[0]['file'])) { - $call['file'] = $backtrace[0]['file']; - foreach ($paths as $path => $len) { - if (strpos($backtrace[0]['file'], $path) === 0) { - $call['file'] = substr($backtrace[0]['file'], $len); - } - } - $call['file'] .= ':' . $backtrace[0]['line']; - } - if (isset($backtrace[1])) { - if (isset($backtrace[1]['class'])) { - $function = $backtrace[1]['class'] . $backtrace[1]['type'] . $backtrace[1]['function'] . '()'; - } - else { - $function = $backtrace[1]['function'] . '()'; - } - $backtrace[1] += array('args' => array()); - foreach ($backtrace[1]['args'] as $key => $value) { - $call['args'][$key] = $value; - } - } - else { - $function = 'main()'; - $call['args'] = $_GET; - } - $nicetrace[($counter <= 10 ? $nbsp : '') . --$counter . ': ' . $function] = $call; - array_shift($backtrace); - } - if ($return) { - return $nicetrace; - } - kpr($nicetrace); - } - } -} - -/** - * Implements hook_form_FORM_ID_alter(). - * - * Adds mouse-over hints on the Permissions page to display - * language-independent machine names and module base names. - * - * @see \Drupal\user\Form\UserPermissionsForm::buildForm() - */ -function devel_form_user_admin_permissions_alter(&$form, FormStateInterface $form_state) { - if (\Drupal::currentUser()->hasPermission('access devel information') && \Drupal::config('devel.settings')->get('raw_names')) { - foreach (Element::children($form['permissions']) as $key) { - if (isset($form['permissions'][$key][0])) { - $form['permissions'][$key][0]['#wrapper_attributes']['title'] = $key; - } - elseif(isset($form['permissions'][$key]['description'])) { - $form['permissions'][$key]['description']['#wrapper_attributes']['title'] = $key; - } - } - } -} - -/** - * Implements hook_form_FORM_ID_alter(). - * - * Adds mouse-over hints on the Modules page to display module base names. - * - * @see \Drupal\system\Form\ModulesListForm::buildForm() - * @see theme_system_modules_details() - */ -function devel_form_system_modules_alter(&$form, FormStateInterface $form_state) { - if (\Drupal::currentUser()->hasPermission('access devel information') && \Drupal::config('devel.settings')->get('raw_names', FALSE) && isset($form['modules']) && is_array($form['modules'])) { - foreach (Element::children($form['modules']) as $group) { - if (is_array($form['modules'][$group])) { - foreach (Element::children($form['modules'][$group]) as $key) { - if (isset($form['modules'][$group][$key]['name']['#markup'])) { - $form['modules'][$group][$key]['name']['#markup'] = '' . $form['modules'][$group][$key]['name']['#markup'] . ''; - } - } - } - } - } -} - -/** - * Implements hook_query_TAG_alter(). - * - * Makes debugging entity query much easier. - * - * Example usage: - * @code - * $query = \Drupal::entityQuery('node'); - * $query->condition('status', NODE_PUBLISHED); - * $query->addTag('debug'); - * $query->execute(); - * @endcode - */ -function devel_query_debug_alter(AlterableInterface $query) { - if (!$query->hasTag('debug-semaphore')) { - $query->addTag('debug-semaphore'); - dpq($query); - } -} diff --git a/modules/devel/devel.permissions.yml b/modules/devel/devel.permissions.yml deleted file mode 100644 index 256919d..0000000 --- a/modules/devel/devel.permissions.yml +++ /dev/null @@ -1,14 +0,0 @@ -access devel information: - description: 'View developer output like variable printouts, query log, etc.' - title: 'Access developer information' - restrict access: TRUE - -execute php code: - title: 'Execute PHP code' - description: 'Run arbitrary PHP from a block.' - restrict access: TRUE - -switch users: - title: 'Switch users' - description: 'Become any user on the site with just a click.' - restrict access: TRUE diff --git a/modules/devel/devel.routing.yml b/modules/devel/devel.routing.yml deleted file mode 100644 index 8d20e90..0000000 --- a/modules/devel/devel.routing.yml +++ /dev/null @@ -1,278 +0,0 @@ -devel.admin_settings: - path: '/admin/config/development/devel' - defaults: - _form: '\Drupal\devel\Form\SettingsForm' - _title: 'Devel settings' - requirements: - _permission: 'administer site configuration' - -devel.toolbar.settings_form: - path: '/admin/config/development/devel/toolbar' - defaults: - _form: '\Drupal\devel\Form\ToolbarSettingsForm' - _title: 'Devel Toolbar Settings' - requirements: - _permission: 'administer site configuration' - _module_dependencies: 'toolbar' - -devel.reinstall: - path: '/devel/reinstall' - defaults: - _form: '\Drupal\devel\Form\DevelReinstall' - _title: 'Reinstall modules' - options: - _admin_route: TRUE - requirements: - _permission: 'administer site configuration' - -devel.menu_rebuild: - path: '/devel/menu/reset' - defaults: - _form: '\Drupal\devel\Form\RouterRebuildConfirmForm' - _title: 'Rebuild router' - options: - _admin_route: TRUE - requirements: - _permission: 'administer site configuration' - -devel.configs_list: - path: '/devel/config/{filter}' - options: - _admin_route: TRUE - defaults: - _form: '\Drupal\devel\Form\ConfigsList' - _title: 'Config editor' - filter: '' - requirements: - _permission: 'administer site configuration' - -devel.config_edit: - path: '/devel/config/edit/{config_name}' - defaults: - _form: '\Drupal\devel\Form\ConfigEditor' - _title: 'Edit configuration object: @config_name' - options: - _admin_route: TRUE - requirements: - _permission: 'administer site configuration' - -devel.state_system_page: - path: '/devel/state' - defaults: - _controller: '\Drupal\devel\Controller\DevelController::stateSystemPage' - _title: 'State editor' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.system_state_edit: - path: '/devel/state/edit/{state_name}' - defaults: - _form: '\Drupal\devel\Form\SystemStateEdit' - _title: 'Edit state variable: @state_name' - options: - _admin_route: TRUE - requirements: - _permission: 'administer site configuration' - -devel.theme_registry: - path: '/devel/theme/registry' - defaults: - _controller: '\Drupal\devel\Controller\DevelController::themeRegistry' - _title: 'Theme registry' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.field_info_page: - path: '/devel/field/info' - defaults: - _controller: '\Drupal\devel\Controller\DevelController::fieldInfoPage' - _title: 'Field info' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.execute_php: - path: '/devel/php' - defaults: - _form: '\Drupal\devel\Form\ExecutePHP' - _title: 'Execute PHP code' - options: - _admin_route: TRUE - requirements: - _permission: 'execute php code' - -devel.session: - path: '/devel/session' - defaults: - _controller: '\Drupal\devel\Controller\DevelController::session' - _title: 'Session viewer' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.switch: - path: '/devel/switch/{name}' - defaults: - _controller: '\Drupal\devel\Controller\SwitchUserController::switchUser' - _title: 'Switch user' - name: '' - options: - _admin_route: TRUE - requirements: - _permission: 'switch users' - _csrf_token: 'TRUE' - -devel.cache_clear: - path: '/devel/cache/clear' - defaults: - _controller: '\Drupal\devel\Controller\DevelController::cacheClear' - _title: 'Clear cache' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - _csrf_token: 'TRUE' - -devel.run_cron: - path: '/devel/run-cron' - defaults: - _controller: '\Drupal\system\CronController::runManually' - _title: 'Run cron' - options: - _admin_route: TRUE - requirements: - _permission: 'administer site configuration' - _csrf_token: 'TRUE' - -# Container info -devel.container_info.service: - path: '/devel/container/service' - defaults: - _controller: '\Drupal\devel\Controller\ContainerInfoController::serviceList' - _title: 'Container services' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.container_info.service.detail: - path: '/devel/container/service/{service_id}' - defaults: - _controller: '\Drupal\devel\Controller\ContainerInfoController::serviceDetail' - _title: 'Service @service_id detail' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.container_info.parameter: - path: '/devel/container/parameter' - defaults: - _controller: '\Drupal\devel\Controller\ContainerInfoController::parameterList' - _title: 'Container parameters' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.container_info.parameter.detail: - path: '/devel/container/parameter/{parameter_name}' - defaults: - _controller: '\Drupal\devel\Controller\ContainerInfoController::parameterDetail' - _title: 'Parameter @parameter_name value' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -# Route info -devel.route_info: - path: '/devel/routes' - defaults: - _controller: '\Drupal\devel\Controller\RouteInfoController::routeList' - _title: 'Routes' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.route_info.item: - path: '/devel/routes/item' - defaults: - _controller: '\Drupal\devel\Controller\RouteInfoController::routeDetail' - _title: 'Route detail' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -# Event info -devel.event_info: - path: '/devel/events' - defaults: - _controller: '\Drupal\devel\Controller\EventInfoController::eventList' - _title: 'Events' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -# Layouts info -devel.layout_info: - path: '/devel/layouts' - defaults: - _controller: '\Drupal\devel\Controller\LayoutInfoController::layoutInfoPage' - _title: 'Layouts' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - _module_dependencies: 'layout_discovery' - -# Element info -devel.elements_page: - path: '/devel/elements' - defaults: - _controller: '\Drupal\devel\Controller\ElementInfoController::elementList' - _title: 'Element Info' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.elements_page.detail: - path: '/devel/elements/{element_name}' - defaults: - _controller: '\Drupal\devel\Controller\ElementInfoController::elementDetail' - _title: 'Element @element_name' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -# Entity type info -devel.entity_info_page: - path: '/devel/entity/info' - defaults: - _controller: '\Drupal\devel\Controller\EntityTypeInfoController::entityTypeList' - _title: 'Entity info' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' - -devel.entity_info_page.detail: - path: '/devel/entity/info/{entity_type_id}' - defaults: - _controller: '\Drupal\devel\Controller\EntityTypeInfoController::entityTypeDetail' - _title: 'Entity type @entity_type_id' - options: - _admin_route: TRUE - requirements: - _permission: 'access devel information' diff --git a/modules/devel/devel.services.yml b/modules/devel/devel.services.yml deleted file mode 100644 index 2e74e1a..0000000 --- a/modules/devel/devel.services.yml +++ /dev/null @@ -1,32 +0,0 @@ -services: - devel.error_subscriber: - class: Drupal\devel\EventSubscriber\ErrorHandlerSubscriber - arguments: ['@current_user'] - tags: - - { name: event_subscriber } - - devel.theme_rebuild_subscriber: - class: Drupal\devel\EventSubscriber\ThemeInfoRebuildSubscriber - arguments: ['@config.factory', '@current_user', '@theme_handler'] - tags: - - { name: event_subscriber } - - devel.route_subscriber: - class: Drupal\devel\Routing\RouteSubscriber - arguments: ['@entity_type.manager'] - tags: - - { name: event_subscriber } - - plugin.manager.devel_dumper: - class: Drupal\devel\DevelDumperPluginManager - parent: default_plugin_manager - - devel.dumper: - class: Drupal\devel\DevelDumperManager - arguments: ['@config.factory', '@current_user', '@plugin.manager.devel_dumper'] - - devel.twig.debug_extension: - class: Drupal\devel\Twig\Extension\Debug - arguments: ['@devel.dumper'] - tags: - - { name: twig.extension } diff --git a/modules/devel/devel_generate/README.txt b/modules/devel/devel_generate/README.txt deleted file mode 100644 index 2d73ba9..0000000 --- a/modules/devel/devel_generate/README.txt +++ /dev/null @@ -1,44 +0,0 @@ -This module creates the "DevelGenerate" plugin type. - -All you need to do to provide a new instance for "DevelGenerate" plugin type -is to create your class extending "DevelGenerateBase" and following the next steps. - -1 - Declaring your plugin with annotations: - -/** - * Provides a ExampleDevelGenerate plugin. - * - * @DevelGenerate( - * id = "example", - * label = @Translation("example"), - * description = @Translation("Generate a given number of example elements. Optionally delete current example elements."), - * url = "example", - * permission = "administer example", - * settings = { - * "num" = 50, - * "kill" = FALSE, - * "another_property" = "default_value" - * } - * ) - */ - -2 - Implement "settingsForm" method to create a form using the properties from annotations. - -3 - Implement "handleDrushParams" method. It should return an array of values. - -4 - Implement "generateElements" method. You can write here your business logic -using the array of values. - -Notes: - -You can alter existing properties for every plugin implementing hook_devel_generate_info_alter. - -DevelGenerateBaseInterface details base wrapping methods that most DevelGenerate implementations -will want to directly inherit from Drupal\devel_generate\DevelGenerateBase. - -To give support for a new field type the field type base class should properly -implements \Drupal\Core\Field\FieldItemInterface::generateSampleValue(). -Devel generate automatically use the values returned by this method during the -generate process for generate placeholder field values. For more information -see: -https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Field%21FieldItemInterface.php/function/FieldItemInterface::generateSampleValue diff --git a/modules/devel/devel_generate/devel_generate.batch.inc b/modules/devel/devel_generate/devel_generate.batch.inc deleted file mode 100644 index 2bfa690..0000000 --- a/modules/devel/devel_generate/devel_generate.batch.inc +++ /dev/null @@ -1,25 +0,0 @@ -$method($vars, $context); -} - -/** - * Common finish batch function available for - * every DevelGeneratePlugin. - */ -function devel_generate_batch_finished($success, $results, $operations) { - - if ($success) { - $message = t('Finished @num elements created successfully.', array('@num' => $results['num'])); - } - else { - $message = t('Finished with an error.'); - } - drupal_set_message($message); -} diff --git a/modules/devel/devel_generate/devel_generate.info.yml b/modules/devel/devel_generate/devel_generate.info.yml deleted file mode 100644 index 890261d..0000000 --- a/modules/devel/devel_generate/devel_generate.info.yml +++ /dev/null @@ -1,13 +0,0 @@ -type: module -name: 'Devel generate' -description: 'Generate dummy users, nodes, menus, taxonomy terms...' -package: Development -# core: 8.x -tags: - - developer - -# Information added by Drupal.org packaging script on 2017-10-05 -version: '8.x-1.2' -core: '8.x' -project: 'devel' -datestamp: 1507197848 diff --git a/modules/devel/devel_generate/devel_generate.module b/modules/devel/devel_generate/devel_generate.module deleted file mode 100644 index 530a4fb..0000000 --- a/modules/devel/devel_generate/devel_generate.module +++ /dev/null @@ -1,145 +0,0 @@ -getDefinitions(); - foreach ($devel_generate_plugins as $id => $plugin) { - $label = $plugin['label']; - $links["devel_generate.$id"] = array( - 'title' => "Generate $label", - 'parent' => 'system.admin_config_development', - 'description' => $plugin['description'], - 'route_name' => "devel_generate.$id", - ); - } -} - -/** - * Implements hook_entity_insert(). - * - * Inserts nodes properly based on generation options. - * - * @param \Drupal\Core\Entity\EntityInterface $entity - * The base node created on submit. Inspects $node->devel_generate. - */ -function devel_generate_entity_insert(EntityInterface $entity) { - if ($entity->getEntityTypeId() != 'node' || !isset($entity->devel_generate)) { - return; - } - /** @var \Drupal\node\NodeInterface $entity */ - $results = $entity->devel_generate; - - if (!empty($results['max_comments'])) { - foreach ($entity->getFieldDefinitions() as $field_name => $field_definition) { - if ($field_definition->getType() == 'comment' && $entity->get($field_name)->status == CommentItemInterface::OPEN) { - // Add comments for each comment field on entity. - devel_generate_add_comments($entity, $field_definition, $results['users'], $results['max_comments'], $results['title_length']); - } - } - } - - // Add an url alias. Cannot happen before save because we don't know the nid. - if (!empty($results['add_alias'])) { - $path = array( - 'source' => '/node/' . $entity->id(), - 'alias' => '/node-' . $entity->id() . '-' . $entity->bundle(), - ); - \Drupal::service('path.alias_storage')->save($path['source'], $path['alias']); - } - - // Add node statistics. - if (!empty($results['add_statistics']) && \Drupal::moduleHandler()->moduleExists('statistics')) { - devel_generate_add_statistics($entity); - } -} - -/** - * Create comments and add them to a node. - * - * @param \Drupal\node\NodeInterface $node - * Node to add comments to. - * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition - * The field storage definition. - * @param array $users - * Array of users to assign comment authors. - * @param int $max_comments - * Max number of comments to generate per node. - * @param int $title_length - * Max length of the title of the comments. - */ -function devel_generate_add_comments(NodeInterface $node, FieldDefinitionInterface $field_definition, $users, $max_comments, $title_length = 8) { - $parents = array(); - $field_name = $field_definition->getName(); - $num_comments = mt_rand(1, $max_comments); - for ($i = 1; $i <= $num_comments; $i++) { - switch ($i % 3) { - case 0: - // No parent. - case 1: - // Top level parent. - $parents = \Drupal::entityQuery('comment') - ->condition('pid', 0) - ->condition('entity_id', $node->id()) - ->condition('entity_type', 'node') - ->condition('field_name', $field_name) - ->range(0, 1) - ->execute(); - break; - case 2: - // Non top level parent. - $parents = \Drupal::entityQuery('comment') - ->condition('pid', 0, '>') - ->condition('entity_id', $node->id()) - ->condition('entity_type', 'node') - ->condition('field_name', $field_name) - ->range(0, 1) - ->execute(); - break; - } - $random = new Random(); - $stub = array( - 'entity_type' => $node->getEntityTypeId(), - 'entity_id' => $node->id(), - 'field_name' => $field_name, - 'name' => 'devel generate', - 'mail' => 'devel_generate@example.com', - 'timestamp' => mt_rand($node->getCreatedTime(), REQUEST_TIME), - 'subject' => substr($random->sentences(mt_rand(2, $title_length), TRUE), 0, 63), - 'uid' => $users[array_rand($users)], - 'langcode' => $node->language()->getId(), - ); - if ($parents) { - $stub['pid'] = current($parents); - } - $comment = entity_create('comment', $stub); - - //Populate all core fields on behalf of field.module - DevelGenerateBase::populateFields($comment); - $comment->save(); - } -} - -/** - * Generate statistics information for a node. - * - * @param \Drupal\node\NodeInterface $node - * A node object. - */ -function devel_generate_add_statistics(NodeInterface $node) { - $statistic = array( - 'nid' => $node->id(), - 'totalcount' => mt_rand(0, 500), - 'timestamp' => REQUEST_TIME - mt_rand(0, $node->getCreatedTime()), - ); - $statistic['daycount'] = mt_rand(0, $statistic['totalcount']); - db_insert('node_counter')->fields($statistic)->execute(); -} diff --git a/modules/devel/devel_generate/devel_generate.permissions.yml b/modules/devel/devel_generate/devel_generate.permissions.yml deleted file mode 100644 index 10f9479..0000000 --- a/modules/devel/devel_generate/devel_generate.permissions.yml +++ /dev/null @@ -1,5 +0,0 @@ -administer devel_generate: - title: 'Administer devel_generate' - -permission_callbacks: - - \Drupal\devel_generate\DevelGeneratePermissions::permissions diff --git a/modules/devel/devel_generate/devel_generate.routing.yml b/modules/devel/devel_generate/devel_generate.routing.yml deleted file mode 100644 index eeea668..0000000 --- a/modules/devel/devel_generate/devel_generate.routing.yml +++ /dev/null @@ -1,2 +0,0 @@ -route_callbacks: - - '\Drupal\devel_generate\Routing\DevelGenerateRoutes::routes' \ No newline at end of file diff --git a/modules/devel/devel_generate/devel_generate.services.yml b/modules/devel/devel_generate/devel_generate.services.yml deleted file mode 100644 index 16025e1..0000000 --- a/modules/devel/devel_generate/devel_generate.services.yml +++ /dev/null @@ -1,4 +0,0 @@ -services: - plugin.manager.develgenerate: - class: Drupal\devel_generate\DevelGeneratePluginManager - parent: default_plugin_manager diff --git a/modules/devel/devel_generate/drush.services.yml b/modules/devel/devel_generate/drush.services.yml deleted file mode 100644 index e008b6c..0000000 --- a/modules/devel/devel_generate/drush.services.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - develgenerate.command: - class: Drupal\devel_generate\Commands\DevelGenerateCommands - arguments: ['@plugin.manager.develgenerate'] - tags: - - { name: drush.command } - diff --git a/modules/devel/devel_generate/drush/devel_generate.drush8.inc b/modules/devel/devel_generate/drush/devel_generate.drush8.inc deleted file mode 100644 index e28226d..0000000 --- a/modules/devel/devel_generate/drush/devel_generate.drush8.inc +++ /dev/null @@ -1,196 +0,0 @@ - 'drush_devel_generate', - 'callback arguments' => array( - 'plugin_id' => 'user', - ), - 'description' => 'Create users.', - 'arguments' => array( - 'num' => 'Number of users to generate.', - ), - 'options' => array( - 'kill' => 'Delete all users before generating new ones.', - 'roles' => 'A comma delimited list of role IDs which should be granted to the new users. No need to specify authenticated user role.', - 'pass' => 'Specify a password to be set for all generated users.', - ), - 'aliases' => array('genu'), - ); - $items['generate-terms'] = array( - 'callback' => 'drush_devel_generate', - 'callback arguments' => array( - 'plugin_id' => 'term', - ), - 'description' => 'Create terms in specified vocabulary.', - 'arguments' => array( - 'machine_name' => 'Vocabulary machine name into which new terms will be inserted.', - 'num' => 'Number of terms to insert. Defaults to 10.', - ), - 'options' => array( - 'kill' => 'Delete all terms in specified vocabulary before generating.', - 'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000', - 'pipe' => 'Returns the list of generated terms, one per line.', - ), - 'aliases' => array('gent'), - - ); - $items['generate-vocabs'] = array( - 'callback' => 'drush_devel_generate', - 'callback arguments' => array( - 'plugin_id' => 'vocabulary', - ), - 'description' => 'Create vocabularies.', - 'arguments' => array( - 'num' => 'Number of vocabularies to create. Defaults to 1.', - ), - 'options' => array( - 'kill' => 'Delete all vocabularies before generating.', - 'pipe' => 'Returns the list of generated vocabularies, one per line.', - ), - 'aliases' => array('genv'), - ); - $items['generate-content'] = array( - 'callback' => 'drush_devel_generate', - 'callback arguments' => array( - 'plugin_id' => 'content', - ), - 'description' => 'Create content.', - 'drupal dependencies' => array('devel_generate'), - 'arguments' => array( - 'num' => 'Number of nodes to generate.', - 'max_comments' => 'Maximum number of comments to generate.', - ), - 'options' => array( - 'kill' => 'Delete all content before generating new content.', - 'types' => 'A comma delimited list of content types to create. Defaults to page,article.', - 'feedback' => 'An integer representing interval for insertion rate logging. Defaults to 1000', - 'skip-fields' => 'A comma delimited list of fields to omit when generating random values', - 'languages' => 'A comma-separated list of language codes', - ), - 'aliases' => array('genc'), - ); - $items['generate-menus'] = array( - 'callback' => 'drush_devel_generate', - 'callback arguments' => array( - 'plugin_id' => 'menu', - ), - 'description' => 'Create menus and menu items.', - 'drupal dependencies' => array('devel_generate'), // Remove these once devel.module is moved down a directory. http://drupal.org/node/925246 - 'arguments' => array( - 'number_menus' => 'Number of menus to generate. Defaults to 2.', - 'number_links' => 'Number of links to generate. Defaults to 50.', - 'max_depth' => 'Max link depth. Defaults to 3', - 'max_width' => 'Max width of first level of links. Defaults to 8.', - ), - 'options' => array( - 'kill' => 'Delete all previously generated menus and links before generating new menus and links.', - 'pipe' => 'Returns the list of generated menus, one per line.', - ), - 'aliases' => array('genm'), - ); - return $items; -} - -/** - * Implements drush_hook_COMMAND_validate(). - */ -function drush_devel_generate_generate_users_validate() { - - //Array of "Callback arguments" and "command line args". - $params = func_get_args(); - _drush_plugin_validate($params); -} - -/** - * Implements drush_hook_COMMAND_validate(). - */ -function drush_devel_generate_generate_terms_validate() { - - //Array of "Callback arguments" and "command line args". - $params = func_get_args(); - _drush_plugin_validate($params); -} - -/** - * Implements drush_hook_COMMAND_validate(). - */ -function drush_devel_generate_generate_vocabs_validate() { - - //Array of "Callback arguments" and "command line args". - $params = func_get_args(); - _drush_plugin_validate($params); -} - -/** - * Implements drush_hook_COMMAND_validate(). - */ -function drush_devel_generate_generate_content_validate() { - - //Array of "Callback arguments" and "command line args". - $params = func_get_args(); - _drush_plugin_validate($params); -} - -/** - * Implements drush_hook_COMMAND_validate(). - */ -function drush_devel_generate_generate_menus_validate() { - - //Array of "Callback arguments" and "command line args". - $params = func_get_args(); - _drush_plugin_validate($params); -} - -/** - * Helper function which returns an array with a plugin instance - * for a given id and the validated values ready to be used by - * the generate() function of the plugin. - */ -function _drush_plugin_validate($params) { - - $instance_and_values = &drupal_static('drush_devel_generate_generate_validate'); - //Getting plugin_id and leaving the command line args - $plugin_id = array_shift($params); - - if (!isset($instance_and_values[$plugin_id])) { - - /** @var DevelGeneratePluginManager $manager */ - $manager = \Drupal::service('plugin.manager.develgenerate'); - - /** @var DevelGenerateBaseInterface $instance */ - $instance = $manager->createInstance($plugin_id, array()); - - //Plugin instance suit params in order to fit for generateElements - $values = $instance->validateDrushParams($params); - $instance_and_values[$plugin_id]['instance'] = $instance; - $instance_and_values[$plugin_id]['values'] = $values; - } - - return $instance_and_values[$plugin_id]; -} - -/** - * Command callback. Generate a number of elements. - */ -function drush_devel_generate() { - $params = func_get_args(); - $plugin_id = array_shift($params); - $instance_and_values = drupal_static('drush_devel_generate_generate_validate'); - - /** @var DevelGenerateBaseInterface $instance */ - $instance = $instance_and_values[$plugin_id]['instance']; - $values = $instance_and_values[$plugin_id]['values']; - $instance->generate($values); - -} diff --git a/modules/devel/devel_generate/src/Annotation/DevelGenerate.php b/modules/devel/devel_generate/src/Annotation/DevelGenerate.php deleted file mode 100644 index 9a0ce25..0000000 --- a/modules/devel/devel_generate/src/Annotation/DevelGenerate.php +++ /dev/null @@ -1,86 +0,0 @@ -setManager($manager); - } - - /** - * @return \Drupal\devel_generate\DevelGenerateBaseInterface - */ - public function getManager() { - return $this->manager; - } - - /** - * @param \Drupal\devel_generate\DevelGenerateBaseInterface $manager - */ - public function setManager($manager) { - $this->manager = $manager; - } - - /** - * @return mixed - */ - public function getPluginInstance() { - return $this->pluginInstance; - } - - /** - * @param mixed $pluginInstance - */ - public function setPluginInstance($pluginInstance) { - $this->pluginInstance = $pluginInstance; - } - - /** - * @return array - */ - public function getParameters() { - return $this->parameters; - } - - /** - * @param array $parameters - */ - public function setParameters($parameters) { - $this->parameters = $parameters; - } - - /** - * Create users. - * - * @command devel-generate-users - * @pluginId user - * @param $num Number of users to generate. - * @option kill Delete all users before generating new ones. - * @option roles A comma delimited list of role IDs for new users. Don't specify 'authenticated'. - * @option pass Specify a password to be set for all generated users. - * @aliases genu - */ - public function users($num = 50, $options = ['kill' => FALSE, 'roles' => '']) { - // @todo pass $options to the plugins. - $this->generate(); - } - - /** - * Create terms in specified vocabulary. - * - * @command devel-generate-terms - * @pluginId term - * @param $machine_name Vocabulary machine name into which new terms will be inserted. - * @param $num Number of terms to generate. - * @option kill Delete all terms before generating new ones. - * @option feedback An integer representing interval for insertion rate logging. - * @validate-entity-load taxonomy_vocabulary machine_name - * @aliases gent - */ - public function terms($machine_name, $num = 50, $options = ['feedback' => 1000]) { - $this->generate(); - } - - /** - * Create vocabularies. - * - * @command devel-generate-vocabs - * @pluginId vocabulary - * @param $num Number of vocabularies to generate. - * @option kill Delete all vocabs before generating new ones. - * @aliases genv - * @validate-module-enabled taxonomy - */ - public function vocabs($num = 1, $options = ['kill' => FALSE]) { - $this->generate(); - } - - /** - * Create menus. - * - * @command devel-generate-menus - * @pluginId menu - * @param $number_menus Number of menus to generate. - * @param $number_links Number of links to generate. - * @param $max_depth Max link depth. - * @param $max_width Max width of first level of links. - * @option kill Delete all content before generating new content. - * @aliases genm - * @validate-module-enabled menu_link_content - */ - public function menus($number_menus = 2, $number_links = 50, $max_depth = 3, $max_width = 8, $options = ['kill' => FALSE]) { - $this->generate(); - } - - /** - * Create content. - * - * @command devel-generate-content - * @pluginId content - * @param $num Number of nodes to generate. - * @param $max_comments Maximum number of comments to generate. - * @option kill Delete all content before generating new content. - * @option types A comma delimited list of content types to create. Defaults to page,article. - * @option feedback An integer representing interval for insertion rate logging. - * @option skip-fields A comma delimited list of fields to omit when generating random values - * @option languages A comma-separated list of language codes - * @aliases genc - * @validate-module-enabled node - */ - public function content($num = 50, $max_comments = 0, $options = ['kill' => FALSE, 'types' => 'page,article', 'feedback' => 1000]) { - $this->generate(); - drush_backend_batch_process(); - } - - - /** - * @hook validate - * @param \Consolidation\AnnotatedCommand\CommandData $commandData - * @return \Consolidation\AnnotatedCommand\CommandError|null - */ - public function validate(CommandData $commandData) { - $manager = $this->getManager(); - $args = $commandData->input()->getArguments(); - $commandName = array_shift($args); - /** @var DevelGenerateBaseInterface $instance */ - $instance = $manager->createInstance($commandData->annotationData()->get('pluginId'), array()); - $this->setPluginInstance($instance); - $parameters = $instance->validateDrushParams($args, $commandData->input()->getOptions()); - $this->setParameters($parameters); - } - - public function generate() { - $instance = $this->getPluginInstance(); - $instance->generate($this->getParameters()); - } -} diff --git a/modules/devel/devel_generate/src/DevelGenerateBase.php b/modules/devel/devel_generate/src/DevelGenerateBase.php deleted file mode 100644 index 1d38a35..0000000 --- a/modules/devel/devel_generate/src/DevelGenerateBase.php +++ /dev/null @@ -1,172 +0,0 @@ -settings)) { - $this->settings = $this->getDefaultSettings(); - } - return isset($this->settings[$key]) ? $this->settings[$key] : NULL; - } - - /** - * {@inheritdoc} - */ - public function getDefaultSettings() { - $definition = $this->getPluginDefinition(); - return $definition['settings']; - } - - /** - * {@inheritdoc} - */ - public function getSettings() { - return $this->settings; - } - - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - return array(); - } - - /** - * {@inheritdoc} - */ - function settingsFormValidate(array $form, FormStateInterface $form_state) { - // Validation is optional. - } - - /** - * {@inheritdoc} - */ - public function generate(array $values) { - $this->generateElements($values); - $this->setMessage('Generate process complete.'); - } - - /** - * Business logic relating with each DevelGenerate plugin - * - * @param array $values - * The input values from the settings form. - */ - protected function generateElements(array $values) { - - } - - /** - * Populate the fields on a given entity with sample values. - * - * @param \Drupal\Core\Entity\EntityInterface $entity - * The entity to be enriched with sample field values. - */ - public static function populateFields(EntityInterface $entity) { - /** @var \Drupal\field\FieldConfigInterface[] $instances */ - $instances = entity_load_multiple_by_properties('field_config', array('entity_type' => $entity->getEntityType()->id(), 'bundle' => $entity->bundle())); - - if ($skips = function_exists('drush_get_option') ? drush_get_option('skip-fields', '') : @$_REQUEST['skip-fields']) { - foreach (explode(',', $skips) as $skip) { - unset($instances[$skip]); - } - } - - foreach ($instances as $instance) { - $field_storage = $instance->getFieldStorageDefinition(); - $max = $cardinality = $field_storage->getCardinality(); - if ($cardinality == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) { - // Just an arbitrary number for 'unlimited' - $max = rand(1, 3); - } - $field_name = $field_storage->getName(); - $entity->$field_name->generateSampleItems($max); - } - } - - /** - * {@inheritdoc} - */ - public function handleDrushParams($args) { - - } - - /** - * Set a message for either drush or the web interface. - * - * @param string $msg - * The message to display. - * @param string $type - * (optional) The message type, as defined by drupal_set_message(). Defaults - * to 'status' - */ - protected function setMessage($msg, $type = 'status') { - $function = 'drupal_set_message'; - if (function_exists('drush_log')) { - $function = 'drush_log'; - $msg = strip_tags($msg); - } - $function($msg, $type); - } - - /** - * Check if a given param is a number. - * - * @param mixed $number - * The parameter to check. - * - * @return bool - * TRUE if the parameter is a number, FALSE otherwise. - */ - public static function isNumber($number) { - if ($number == NULL) return FALSE; - if (!is_numeric($number)) return FALSE; - return TRUE; - } - - /** - * Returns the random data generator. - * - * @return \Drupal\Component\Utility\Random - * The random data generator. - */ - protected function getRandom() { - if (!$this->random) { - $this->random = new Random(); - } - return $this->random; - } - - protected function isDrush8() { - return function_exists('drush_drupal_load_autoloader'); - } -} diff --git a/modules/devel/devel_generate/src/DevelGenerateBaseInterface.php b/modules/devel/devel_generate/src/DevelGenerateBaseInterface.php deleted file mode 100644 index c2b814a..0000000 --- a/modules/devel/devel_generate/src/DevelGenerateBaseInterface.php +++ /dev/null @@ -1,77 +0,0 @@ -develGeneratePluginManager = $develGeneratePluginManager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static($container->get('plugin.manager.develgenerate')); - } - - /* - * A permissions callback. - * - * @see devel_generate.permissions.yml. - * - * @return array - */ - function permissions() { - $devel_generate_plugins = $this->develGeneratePluginManager->getDefinitions(); - foreach ($devel_generate_plugins as $plugin) { - - $permission = $plugin['permission']; - $permissions[$permission] = array( - 'title' => t($permission), - ); - } - -// $permissions = array( -// 'administer devel_generate' => array( -// 'title' => t('Administer devel generate'), -// ), -// ); - return $permissions; - } - -} diff --git a/modules/devel/devel_generate/src/DevelGeneratePluginManager.php b/modules/devel/devel_generate/src/DevelGeneratePluginManager.php deleted file mode 100644 index 626e6dc..0000000 --- a/modules/devel/devel_generate/src/DevelGeneratePluginManager.php +++ /dev/null @@ -1,31 +0,0 @@ -alterInfo('devel_generate_info'); - $this->setCacheBackend($cache_backend, 'devel_generate_plugins'); - } - -} diff --git a/modules/devel/devel_generate/src/Form/DevelGenerateForm.php b/modules/devel/devel_generate/src/Form/DevelGenerateForm.php deleted file mode 100644 index 63c708b..0000000 --- a/modules/devel/devel_generate/src/Form/DevelGenerateForm.php +++ /dev/null @@ -1,114 +0,0 @@ -develGenerateManager = $devel_generate_manager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('plugin.manager.develgenerate') - ); - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'devel_generate_form_' . $this->getPluginIdFromRequest(); - } - - /** - * Returns the value of the param _plugin_id for the current request. - * - * @see \Drupal\devel_generate\Routing\DevelGenerateRouteSubscriber - */ - protected function getPluginIdFromRequest() { - $request = $this->getRequest(); - return $request->get('_plugin_id'); - } - - /** - * Returns a DevelGenerate plugin instance for a given plugin id. - * - * @param string $plugin_id - * The plugin_id for the plugin instance. - * - * @return \Drupal\devel_generate\DevelGenerateBaseInterface - * A DevelGenerate plugin instance. - */ - public function getPluginInstance($plugin_id) { - $instance = $this->develGenerateManager->createInstance($plugin_id, array()); - return $instance; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state) { - $plugin_id = $this->getPluginIdFromRequest(); - $instance = $this->getPluginInstance($plugin_id); - $form = $instance->settingsForm($form, $form_state); - $form['actions'] = array('#type' => 'actions'); - $form['actions']['submit'] = array( - '#type' => 'submit', - '#value' => $this->t('Generate'), - '#button_type' => 'primary', - ); - - return $form; - } - - /** - * {@inheritdoc} - */ - public function validateForm(array &$form, FormStateInterface $form_state) { - $plugin_id = $this->getPluginIdFromRequest(); - $instance = $this->getPluginInstance($plugin_id); - $instance->settingsFormValidate($form, $form_state); - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - try { - $plugin_id = $this->getPluginIdFromRequest(); - $instance = $this->getPluginInstance($plugin_id); - $instance->generate($form_state->getValues()); - } - catch (DevelGenerateException $e) { - $this->logger('DevelGenerate', $this->t('Failed to generate elements due to "%error".', array('%error' => $e->getMessage()))); - drupal_set_message($this->t('Failed to generate elements due to "%error".', array('%error' => $e->getMessage()))); - } - } - -} diff --git a/modules/devel/devel_generate/src/Plugin/DevelGenerate/ContentDevelGenerate.php b/modules/devel/devel_generate/src/Plugin/DevelGenerate/ContentDevelGenerate.php deleted file mode 100644 index 34e3e71..0000000 --- a/modules/devel/devel_generate/src/Plugin/DevelGenerate/ContentDevelGenerate.php +++ /dev/null @@ -1,506 +0,0 @@ -moduleHandler = $module_handler; - $this->nodeStorage = $node_storage; - $this->nodeTypeStorage = $node_type_storage; - $this->commentManager = $comment_manager; - $this->languageManager = $language_manager; - $this->urlGenerator = $url_generator; - $this->dateFormatter = $date_formatter; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { - $entity_manager = $container->get('entity.manager'); - return new static( - $configuration, $plugin_id, $plugin_definition, - $entity_manager->getStorage('node'), - $entity_manager->getStorage('node_type'), - $container->get('module_handler'), - $container->has('comment.manager') ? $container->get('comment.manager') : NULL, - $container->get('language_manager'), - $container->get('url_generator'), - $container->get('date.formatter') - ); - } - - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $types = $this->nodeTypeStorage->loadMultiple(); - - if (empty($types)) { - $create_url = $this->urlGenerator->generateFromRoute('node.type_add'); - $this->setMessage($this->t('You do not have any content types that can be generated. Go create a new content type', array(':create-type' => $create_url)), 'error', FALSE); - return; - } - - $options = array(); - - foreach ($types as $type) { - $options[$type->id()] = array( - 'type' => array('#markup' => $type->label()), - ); - if ($this->commentManager) { - $comment_fields = $this->commentManager->getFields('node'); - $map = array($this->t('Hidden'), $this->t('Closed'), $this->t('Open')); - - $fields = array(); - foreach ($comment_fields as $field_name => $info) { - // Find all comment fields for the bundle. - if (in_array($type->id(), $info['bundles'])) { - $instance = FieldConfig::loadByName('node', $type->id(), $field_name); - $default_value = $instance->getDefaultValueLiteral(); - $default_mode = reset($default_value); - $fields[] = new FormattableMarkup('@field: @state', array( - '@field' => $instance->label(), - '@state' => $map[$default_mode['status']], - )); - } - } - // @todo Refactor display of comment fields. - if (!empty($fields)) { - $options[$type->id()]['comments'] = array( - 'data' => array( - '#theme' => 'item_list', - '#items' => $fields, - ), - ); - } - else { - $options[$type->id()]['comments'] = $this->t('No comment fields'); - } - } - } - - $header = array( - 'type' => $this->t('Content type'), - ); - if ($this->commentManager) { - $header['comments'] = array( - 'data' => $this->t('Comments'), - 'class' => array(RESPONSIVE_PRIORITY_MEDIUM), - ); - } - - $form['node_types'] = array( - '#type' => 'tableselect', - '#header' => $header, - '#options' => $options, - ); - - $form['kill'] = array( - '#type' => 'checkbox', - '#title' => $this->t('Delete all content in these content types before generating new content.'), - '#default_value' => $this->getSetting('kill'), - ); - $form['num'] = array( - '#type' => 'number', - '#title' => $this->t('How many nodes would you like to generate?'), - '#default_value' => $this->getSetting('num'), - '#required' => TRUE, - '#min' => 0, - ); - - $options = array(1 => $this->t('Now')); - foreach (array(3600, 86400, 604800, 2592000, 31536000) as $interval) { - $options[$interval] = $this->dateFormatter->formatInterval($interval, 1) . ' ' . $this->t('ago'); - } - $form['time_range'] = array( - '#type' => 'select', - '#title' => $this->t('How far back in time should the nodes be dated?'), - '#description' => $this->t('Node creation dates will be distributed randomly from the current time, back to the selected time.'), - '#options' => $options, - '#default_value' => 604800, - ); - - $form['max_comments'] = array( - '#type' => $this->moduleHandler->moduleExists('comment') ? 'number' : 'value', - '#title' => $this->t('Maximum number of comments per node.'), - '#description' => $this->t('You must also enable comments for the content types you are generating. Note that some nodes will randomly receive zero comments. Some will receive the max.'), - '#default_value' => $this->getSetting('max_comments'), - '#min' => 0, - '#access' => $this->moduleHandler->moduleExists('comment'), - ); - $form['title_length'] = array( - '#type' => 'number', - '#title' => $this->t('Maximum number of words in titles'), - '#default_value' => $this->getSetting('title_length'), - '#required' => TRUE, - '#min' => 1, - '#max' => 255, - ); - $form['add_alias'] = array( - '#type' => 'checkbox', - '#disabled' => !$this->moduleHandler->moduleExists('path'), - '#description' => $this->t('Requires path.module'), - '#title' => $this->t('Add an url alias for each node.'), - '#default_value' => FALSE, - ); - $form['add_statistics'] = array( - '#type' => 'checkbox', - '#title' => $this->t('Add statistics for each node (node_counter table).'), - '#default_value' => TRUE, - '#access' => $this->moduleHandler->moduleExists('statistics'), - ); - - $options = array(); - // We always need a language. - $languages = $this->languageManager->getLanguages(LanguageInterface::STATE_ALL); - foreach ($languages as $langcode => $language) { - $options[$langcode] = $language->getName(); - } - - $form['add_language'] = array( - '#type' => 'select', - '#title' => $this->t('Set language on nodes'), - '#multiple' => TRUE, - '#description' => $this->t('Requires locale.module'), - '#options' => $options, - '#default_value' => array( - $this->languageManager->getDefaultLanguage()->getId(), - ), - ); - - $form['#redirect'] = FALSE; - - return $form; - } - - /** - * {@inheritdoc} - */ - function settingsFormValidate(array $form, FormStateInterface $form_state) { - if (!array_filter($form_state->getValue('node_types'))) { - $form_state->setErrorByName('node_types', $this->t('Please select at least one content type')); - } - } - - /** - * {@inheritdoc} - */ - protected function generateElements(array $values) { - if ($values['num'] <= 50 && $values['max_comments'] <= 10) { - $this->generateContent($values); - } - else { - $this->generateBatchContent($values); - } - } - - /** - * Method responsible for creating content when - * the number of elements is less than 50. - */ - private function generateContent($values) { - $values['node_types'] = array_filter($values['node_types']); - if (!empty($values['kill']) && $values['node_types']) { - $this->contentKill($values); - } - - if (!empty($values['node_types'])) { - // Generate nodes. - $this->develGenerateContentPreNode($values); - $start = time(); - for ($i = 1; $i <= $values['num']; $i++) { - $this->develGenerateContentAddNode($values); - if ($this->isDrush8() && function_exists('drush_log') && $i % drush_get_option('feedback', 1000) == 0) { - $now = time(); - drush_log(dt('Completed @feedback nodes (@rate nodes/min)', array('@feedback' => drush_get_option('feedback', 1000), '@rate' => (drush_get_option('feedback', 1000) * 60) / ($now - $start))), 'ok'); - $start = $now; - } - } - } - $this->setMessage($this->formatPlural($values['num'], '1 node created.', 'Finished creating @count nodes')); - } - - /** - * Method responsible for creating content when - * the number of elements is greater than 50. - */ - private function generateBatchContent($values) { - // Setup the batch operations and save the variables. - $operations[] = array('devel_generate_operation', array($this, 'batchContentPreNode', $values)); - - // Add the kill operation. - if ($values['kill']) { - $operations[] = array('devel_generate_operation', array($this, 'batchContentKill', $values)); - } - - // Add the operations to create the nodes. - for ($num = 0; $num < $values['num']; $num ++) { - $operations[] = array('devel_generate_operation', array($this, 'batchContentAddNode', $values)); - } - - // Set the batch. - $batch = array( - 'title' => $this->t('Generating Content'), - 'operations' => $operations, - 'finished' => 'devel_generate_batch_finished', - 'file' => drupal_get_path('module', 'devel_generate') . '/devel_generate.batch.inc', - ); - batch_set($batch); - } - - public function batchContentPreNode($vars, &$context) { - $context['results'] = $vars; - $context['results']['num'] = 0; - $this->develGenerateContentPreNode($context['results']); - } - - public function batchContentAddNode($vars, &$context) { - $this->develGenerateContentAddNode($context['results']); - $context['results']['num']++; - } - - public function batchContentKill($vars, &$context) { - $this->contentKill($context['results']); - } - - /** - * {@inheritdoc} - */ - public function validateDrushParams($args, $options = []) { - $add_language = $this->isDrush8() ? drush_get_option('languages') : $options['languages']; - if (!empty($add_language)) { - $add_language = explode(',', str_replace(' ', '', $add_language)); - // Intersect with the enabled languages to make sure the language args - // passed are actually enabled. - $values['values']['add_language'] = array_intersect($add_language, array_keys($this->languageManager->getLanguages(LanguageInterface::STATE_ALL))); - } - - $values['kill'] = $this->isDrush8() ? drush_get_option('kill') : $options['kill']; - $values['title_length'] = 6; - $values['num'] = array_shift($args); - $values['max_comments'] = array_shift($args); - $all_types = array_keys(node_type_get_names()); - $default_types = array_intersect(array('page', 'article'), $all_types); - if ($this->isDrush8()) { - $selected_types = _convert_csv_to_array(drush_get_option('types', $default_types)); - } - else { - $selected_types = StringUtils::csvToArray($options['types'] ?: $default_types); - } - - if (empty($selected_types)) { - throw new \Exception(dt('No content types available')); - } - - $values['node_types'] = array_combine($selected_types, $selected_types); - $node_types = array_filter($values['node_types']); - - if (!empty($values['kill']) && empty($node_types)) { - throw new \Exception(dt('Please provide content type (--types) in which you want to delete the content.')); - } - - // Checks for any missing content types before generating nodes. - if (array_diff($node_types, $all_types)) { - throw new \Exception(dt('One or more content types have been entered that don\'t exist on this site')); - } - - return $values; - } - - /** - * Deletes all nodes of given node types. - * - * @param array $values - * The input values from the settings form. - */ - protected function contentKill($values) { - $nids = $this->nodeStorage->getQuery() - ->condition('type', $values['node_types'], 'IN') - ->execute(); - - if (!empty($nids)) { - $nodes = $this->nodeStorage->loadMultiple($nids); - $this->nodeStorage->delete($nodes); - $this->setMessage($this->t('Deleted %count nodes.', array('%count' => count($nids)))); - } - } - - /** - * Return the same array passed as parameter - * but with an array of uids for the key 'users'. - */ - protected function develGenerateContentPreNode(&$results) { - // Get user id. - $users = $this->getUsers(); - $results['users'] = $users; - } - - /** - * Create one node. Used by both batch and non-batch code branches. - */ - protected function develGenerateContentAddNode(&$results) { - if (!isset($results['time_range'])) { - $results['time_range'] = 0; - } - $users = $results['users']; - - $node_type = array_rand(array_filter($results['node_types'])); - $uid = $users[array_rand($users)]; - - $node = $this->nodeStorage->create(array( - 'nid' => NULL, - 'type' => $node_type, - 'title' => $this->getRandom()->sentences(mt_rand(1, $results['title_length']), TRUE), - 'uid' => $uid, - 'revision' => mt_rand(0, 1), - 'status' => TRUE, - 'promote' => mt_rand(0, 1), - 'created' => REQUEST_TIME - mt_rand(0, $results['time_range']), - 'langcode' => $this->getLangcode($results), - )); - - // A flag to let hook_node_insert() implementations know that this is a - // generated node. - $node->devel_generate = $results; - - // Populate all fields with sample values. - $this->populateFields($node); - - // See devel_generate_node_insert() for actions that happen before and after - // this save. - $node->save(); - } - - /** - * Determine language based on $results. - */ - protected function getLangcode($results) { - if (isset($results['add_language'])) { - $langcodes = $results['add_language']; - $langcode = $langcodes[array_rand($langcodes)]; - } - else { - $langcode = $this->languageManager->getDefaultLanguage()->getId(); - } - return $langcode; - } - - /** - * Retrieve 50 uids from the database. - */ - protected function getUsers() { - $users = array(); - $result = db_query_range("SELECT uid FROM {users}", 0, 50); - foreach ($result as $record) { - $users[] = $record->uid; - } - return $users; - } - -} diff --git a/modules/devel/devel_generate/src/Plugin/DevelGenerate/MenuDevelGenerate.php b/modules/devel/devel_generate/src/Plugin/DevelGenerate/MenuDevelGenerate.php deleted file mode 100644 index 6ccacc2..0000000 --- a/modules/devel/devel_generate/src/Plugin/DevelGenerate/MenuDevelGenerate.php +++ /dev/null @@ -1,405 +0,0 @@ -menuLinkTree = $menu_tree; - $this->menuStorage = $menu_storage; - $this->menuLinkContentStorage = $menu_link_storage; - $this->moduleHandler = $module_handler; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { - $entity_manager = $container->get('entity.manager'); - return new static( - $configuration, $plugin_id, $plugin_definition, - $container->get('menu.link_tree'), - $entity_manager->getStorage('menu'), - $entity_manager->getStorage('menu_link_content'), - $container->get('module_handler') - ); - } - - /** - * {@inheritdoc} - */ - public function settingsForm(array $form, FormStateInterface $form_state) { - $menu_enabled = $this->moduleHandler->moduleExists('menu_ui'); - if ($menu_enabled) { - $menus = array('__new-menu__' => $this->t('Create new menu(s)')) + menu_ui_get_menus(); - } - else { - $menus = menu_list_system_menus(); - } - $form['existing_menus'] = array( - '#type' => 'checkboxes', - '#title' => $this->t('Generate links for these menus'), - '#options' => $menus, - '#default_value' => array('__new-menu__'), - '#required' => TRUE, - ); - if ($menu_enabled) { - $form['num_menus'] = array( - '#type' => 'number', - '#title' => $this->t('Number of new menus to create'), - '#default_value' => $this->getSetting('num_menus'), - '#min' => 0, - '#states' => array( - 'visible' => array( - ':input[name="existing_menus[__new-menu__]"]' => array('checked' => TRUE), - ), - ), - ); - } - $form['num_links'] = array( - '#type' => 'number', - '#title' => $this->t('Number of links to generate'), - '#default_value' => $this->getSetting('num_links'), - '#required' => TRUE, - '#min' => 0, - ); - $form['title_length'] = array( - '#type' => 'number', - '#title' => $this->t('Maximum number of characters in menu and menu link names'), - '#description' => $this->t('The minimum length is 2.'), - '#default_value' => $this->getSetting('title_length'), - '#required' => TRUE, - '#min' => 2, - '#max' => 128, - ); - $form['link_types'] = array( - '#type' => 'checkboxes', - '#title' => $this->t('Types of links to generate'), - '#options' => array( - 'node' => $this->t('Nodes'), - 'front' => $this->t('Front page'), - 'external' => $this->t('External'), - ), - '#default_value' => array('node', 'front', 'external'), - '#required' => TRUE, - ); - $form['max_depth'] = array( - '#type' => 'select', - '#title' => $this->t('Maximum link depth'), - '#options' => range(0, $this->menuLinkTree->maxDepth()), - '#default_value' => floor($this->menuLinkTree->maxDepth() / 2), - '#required' => TRUE, - ); - unset($form['max_depth']['#options'][0]); - $form['max_width'] = array( - '#type' => 'number', - '#title' => $this->t('Maximum menu width'), - '#default_value' => $this->getSetting('max_width'), - '#description' => $this->t('Limit the width of the generated menu\'s first level of links to a certain number of items.'), - '#required' => TRUE, - '#min' => 0, - ); - $form['kill'] = array( - '#type' => 'checkbox', - '#title' => $this->t('Delete existing custom generated menus and menu links before generating new ones.'), - '#default_value' => $this->getSetting('kill'), - ); - - return $form; - } - - /** - * {@inheritdoc} - */ - public function generateElements(array $values) { - // If the create new menus checkbox is off, set the number of new menus to 0. - if (!isset($values['existing_menus']['__new-menu__']) || !$values['existing_menus']['__new-menu__']) { - $values['num_menus'] = 0; - } - else { - // Unset the aux menu to avoid attach menu new items. - unset($values['existing_menus']['__new-menu__']); - } - - // Delete custom menus. - if ($values['kill']) { - $this->deleteMenus(); - $this->setMessage($this->t('Deleted existing menus and links.')); - } - - // Generate new menus. - $new_menus = $this->generateMenus($values['num_menus'], $values['title_length']); - if (!empty($new_menus)) { - $this->setMessage($this->t('Created the following new menus: @menus', array('@menus' => implode(', ', $new_menus)))); - } - - // Generate new menu links. - $menus = $new_menus; - if (isset($values['existing_menus'])) { - $menus = $menus + $values['existing_menus']; - } - $new_links = $this->generateLinks($values['num_links'], $menus, $values['title_length'], $values['link_types'], $values['max_depth'], $values['max_width']); - $this->setMessage($this->t('Created @count new menu links.', array('@count' => count($new_links)))); - } - - /** - * {@inheritdoc} - */ - public function validateDrushParams($args, $options = []) { - - $link_types = array('node', 'front', 'external'); - $values = array( - 'num_menus' => array_shift($args), - 'num_links' => array_shift($args), - 'kill' => $this->isDrush8() ? drush_get_option('kill') : $options['kill'], - 'pipe' => $this->isDrush8() ? drush_get_option('pipe') : $options['pipe'], - 'link_types' => array_combine($link_types, $link_types), - ); - - $max_depth = array_shift($args); - $max_width = array_shift($args); - $values['max_depth'] = $max_depth ? $max_depth : 3; - $values['max_width'] = $max_width ? $max_width : 8; - $values['title_length'] = $this->getSetting('title_length'); - $values['existing_menus']['__new-menu__'] = TRUE; - - if ($this->isNumber($values['num_menus']) == FALSE) { - throw new \Exception(dt('Invalid number of menus')); - } - if ($this->isNumber($values['num_links']) == FALSE) { - throw new \Exception(dt('Invalid number of links')); - } - if ($this->isNumber($values['max_depth']) == FALSE || $values['max_depth'] > 9 || $values['max_depth'] < 1) { - throw new \Exception(dt('Invalid maximum link depth. Use a value between 1 and 9')); - } - if ($this->isNumber($values['max_width']) == FALSE || $values['max_width'] < 1) { - throw new \Exception(dt('Invalid maximum menu width. Use a positive numeric value.')); - } - - return $values; - } - - /** - * Deletes custom generated menus. - */ - protected function deleteMenus() { - if ($this->moduleHandler->moduleExists('menu_ui')) { - $menu_ids = array(); - foreach (menu_ui_get_menus(FALSE) as $menu => $menu_title) { - if (strpos($menu, 'devel-') === 0) { - $menu_ids[] = $menu; - } - } - - if ($menu_ids) { - $menus = $this->menuStorage->loadMultiple($menu_ids); - $this->menuStorage->delete($menus); - } - } - - // Delete menu links generated by devel. - $link_ids = $this->menuLinkContentStorage->getQuery() - ->condition('menu_name', 'devel', '<>') - ->condition('link__options', '%' . db_like('s:5:"devel";b:1') . '%', 'LIKE') - ->execute(); - - if ($link_ids) { - $links = $this->menuLinkContentStorage->loadMultiple($link_ids); - $this->menuLinkContentStorage->delete($links); - } - - } - - /** - * Generates new menus. - * - * @param int $num_menus - * Number of menus to create. - * @param int $title_length - * (optional) Maximum length per menu name. - * - * @return array - * Array containing the generated vocabularies id. - */ - protected function generateMenus($num_menus, $title_length = 12) { - $menus = array(); - - for ($i = 1; $i <= $num_menus; $i++) { - $name = $this->getRandom()->word(mt_rand(2, max(2, $title_length))); - - $menu = $this->menuStorage->create(array( - 'label' => $name, - 'id' => 'devel-' . Unicode::strtolower($name), - 'description' => $this->t('Description of @name', array('@name' => $name)), - )); - - $menu->save(); - $menus[$menu->id()] = $menu->label(); - } - - return $menus; - } - - /** - * Generates menu links in a tree structure. - */ - protected function generateLinks($num_links, $menus, $title_length, $link_types, $max_depth, $max_width) { - $links = array(); - $menus = array_keys(array_filter($menus)); - $link_types = array_keys(array_filter($link_types)); - - $nids = array(); - for ($i = 1; $i <= $num_links; $i++) { - // Pick a random menu. - $menu_name = $menus[array_rand($menus)]; - // Build up our link. - $link_title = $this->getRandom()->word(mt_rand(2, max(2, $title_length))); - $link = $this->menuLinkContentStorage->create(array( - 'menu_name' => $menu_name, - 'weight' => mt_rand(-50, 50), - 'title' => $link_title, - 'bundle' => 'menu_link_content', - 'description' => $this->t('Description of @title.', array('@title' => $link_title)), - )); - $link->link->options = array('devel' => TRUE); - - // For the first $max_width items, make first level links. - if ($i <= $max_width) { - $depth = 0; - } - else { - // Otherwise, get a random parent menu depth. - $depth = mt_rand(1, max(1, $max_depth - 1)); - } - // Get a random parent link from the proper depth. - do { - $parameters = new MenuTreeParameters(); - $parameters->setMinDepth($depth); - $parameters->setMaxDepth($depth); - $tree = $this->menuLinkTree->load($menu_name, $parameters); - - if ($tree) { - $link->parent = array_rand($tree); - } - $depth--; - } while (!$link->parent && $depth > 0); - - $link_type = array_rand($link_types); - switch ($link_types[$link_type]) { - case 'node': - // Grab a random node ID. - $select = db_select('node_field_data', 'n') - ->fields('n', array('nid', 'title')) - ->condition('n.status', 1) - ->range(0, 1) - ->orderRandom(); - // Don't put a node into the menu twice. - if (!empty($nids[$menu_name])) { - $select->condition('n.nid', $nids[$menu_name], 'NOT IN'); - } - $node = $select->execute()->fetchAssoc(); - if (isset($node['nid'])) { - $nids[$menu_name][] = $node['nid']; - $link->link->uri = 'entity:node/' . $node['nid']; - $link->title = $node['title']; - break; - } - - case 'external': - $link->link->uri = 'http://www.example.com/'; - break; - - case 'front': - $link->link->uri = 'internal:/Kint: dd() is being deprecated, please use ddd() instead\n"; - $_ = func_get_args(); - call_user_func_array( array( 'Kint', 'dump' ), $_ ); - die; - } -} - -if ( !function_exists( 'ddd' ) ) { - /** - * Alias of Kint::dump() - * [!!!] IMPORTANT: execution will halt after call to this function - * - * @return string - */ - function ddd() - { - if ( !Kint::enabled() ) return ''; - $_ = func_get_args(); - call_user_func_array( array( 'Kint', 'dump' ), $_ ); - die; - } -} - -if ( !function_exists( 's' ) ) { - /** - * Alias of Kint::dump(), however the output is in plain htmlescaped text and some minor visibility enhancements - * added. If run in CLI mode, output is pure whitespace. - * - * To force rendering mode without autodetecting anything: - * - * Kint::enabled( Kint::MODE_PLAIN ); - * Kint::dump( $variable ); - * - * [!!!] IMPORTANT: execution will halt after call to this function - * - * @return string - */ - function s() - { - $enabled = Kint::enabled(); - if ( !$enabled ) return ''; - - if ( $enabled === Kint::MODE_WHITESPACE ) { # if already in whitespace, don't elevate to plain - $restoreMode = Kint::MODE_WHITESPACE; - } else { - $restoreMode = Kint::enabled( # remove cli colors in cli mode; remove rich interface in HTML mode - PHP_SAPI === 'cli' ? Kint::MODE_WHITESPACE : Kint::MODE_PLAIN - ); - } - - $params = func_get_args(); - $dump = call_user_func_array( array( 'Kint', 'dump' ), $params ); - Kint::enabled( $restoreMode ); - return $dump; - } -} - -if ( !function_exists( 'sd' ) ) { - /** - * @see s() - * - * [!!!] IMPORTANT: execution will halt after call to this function - * - * @return string - */ - function sd() - { - $enabled = Kint::enabled(); - if ( !$enabled ) return ''; - - if ( $enabled !== Kint::MODE_WHITESPACE ) { - Kint::enabled( - PHP_SAPI === 'cli' ? Kint::MODE_WHITESPACE : Kint::MODE_PLAIN - ); - } - - $params = func_get_args(); - call_user_func_array( array( 'Kint', 'dump' ), $params ); - die; - } -} diff --git a/modules/devel/kint/kint/LICENCE b/modules/devel/kint/kint/LICENCE deleted file mode 100644 index 936fe1f..0000000 --- a/modules/devel/kint/kint/LICENCE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Rokas Šleinius (raveren@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/modules/devel/kint/kint/README.md b/modules/devel/kint/kint/README.md deleted file mode 100644 index 74edcba..0000000 --- a/modules/devel/kint/kint/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# Kint - debugging helper for PHP developers - -[](https://packagist.org/packages/raveren/kint) - -> **New version** v1.0.0 is released with more than two years of active development - changes are too numerous to list, but there's CLI output and literally hundreds of improvements and additions. - - - -## What am I looking at? - -At first glance Kint is just a pretty replacement for **[var_dump()](http://php.net/manual/en/function.var-dump.php)**, **[print_r()](http://php.net/manual/en/function.print-r.php)** and **[debug_backtrace()](http://php.net/manual/en/function.debug-backtrace.php)**. - -However, it's much, *much* more than that. Even the excellent `xdebug` var_dump improvements don't come close - you will eventually wonder how you developed without it. - -Just to list some of the most useful features: - - * The **variable name and place in code** where Kint was called from is displayed; - * You can **disable all Kint output easily and on the fly** - so you can even debug live systems without anyone knowing (even though you know you shouldn't be doing that!:). - * **CLI is detected** and formatted for automatically (but everything can be overridden on the fly) - if your setup supports it, the output is colored too: -  - * **Debug backtraces** are finally fully readable, actually informative and a pleasure to the eye. - * Kint has been **in active development for more than six years** and is shipped with [Drupal 8](https://www.drupal.org/) by default as part of its devel suite. You can trust it not being abandoned or getting left behind in features. - * Variable content is **displayed in the most informative way** - and you *never, ever* miss anything! Kint guarantees you see every piece of physically available information about everything you are dumping*; - * in some cases, the content is truncated where it would otherwise be too large to view anyway - but the user is always made aware of that; - * Some variable content types have an alternative display - for example you will be able see `JSON` in its raw form - but also as an associative array: -  - There are more than ten custom variable type displays inbuilt and more are added periodically. - - -## Installation and Usage - -One of the main goals of Kint is to be **zero setup**. - -[Download the archive](https://github.com/raveren/kint/releases/download/1.0.2/kint.zip) and simply -```php -');`) - so even if you accidentally leave a dump in production, no one will know. - * `sd()` and `ddd()` are shorthands for `s();die;` and `d();die;` respectively. - * **Important:** The older shorthand `dd()` is deprecated due to compatibility issues and will eventually be removed. Use the analogous `ddd()` instead. - * When looking at Kint output, press D on the keyboard and you will be able to traverse the tree with arrows and tab keys - and expand/collapse nodes with space or enter. - * Double clicking the `[+]` sign in the output will expand/collapse ALL nodes; triple clicking big blocks of text will select it all. - * Clicking the tiny arrows on the right of the output open it in a separate window where you can keep it for comparison. - * To catch output from Kint just assign it to a variablebeta -```php -$o = Kint::dump($GLOBALS); -// yes, the assignment is automatically detected, and $o -// now holds whatever was going to be printed otherwise. - -// it also supports modifiers (read on) for the variable: -~$o = Kint::dump($GLOBALS); // this output will be in whitespace -``` - * There are a couple of real-time modifiers you can use: - * `~d($var)` this call will output in plain text format. - * `+d($var)` will disregard depth level limits and output everything (careful, this can hang your browser on huge objects) - * `!d($var)` will show expanded rich output. - * `-d($var)` will attempt to `ob_clean` the previous output so if you're dumping something inside a HTML page, you will still see Kint output. - You can combine modifiers too: `~+d($var)` - * To force a specific dump output type just pass it to the `Kint::enabled()` method. Available options are: `Kint::MODE_RICH` (default), `Kint::MODE_PLAIN`, `Kint::MODE_WHITESPACE` and `Kint::MODE_CLI`: -```php -Kint::enabled(Kint::MODE_WHITESPACE); -$kintOutput = Kint::dump($GLOBALS); -// now $kintOutput can be written to a text log file and -// be perfectly readable from there -``` - * To change display theme, use `Kint::$theme = '
'; - } - return ''; - } - - public static function wrapEnd( $callee, $miniTrace, $prevCaller ) - { - $lastLine = self::_colorize( self::_char( "═", 80 ), 'title' ); - $lastChar = Kint::enabled() === Kint::MODE_PLAIN ? '' : ''; - - - if ( !Kint::$displayCalledFrom ) return $lastLine . $lastChar; - - - return $lastLine . self::_colorize( 'Called from ' . self::_buildCalleeString( $callee ), 'title' ) . $lastChar; - } - - - private static function _drawHeader( kintVariableData $kintVar ) - { - $output = ''; - - if ( $kintVar->access ) { - $output .= ' ' . $kintVar->access; - } - - if ( $kintVar->name !== null && $kintVar->name !== '' ) { - $output .= ' ' . kintParser::escape( $kintVar->name ); - } - - if ( $kintVar->operator ) { - $output .= ' ' . $kintVar->operator; - } - - $output .= ' ' . self::_colorize( $kintVar->type, 'type', false ); - - if ( $kintVar->size !== null ) { - $output .= ' (' . $kintVar->size . ')'; - } - - - if ( $kintVar->value !== null && $kintVar->value !== '' ) { - $output .= ' ' . self::_colorize( - $kintVar->value, # escape shell - 'value', - false - ); - } - - return ltrim( $output ); - } - - private static function _buildCalleeString( $callee ) - { - if ( Kint::enabled() === Kint::MODE_CLI ) { // todo win/nix - return "+{$callee['line']} {$callee['file']}"; - } - - $url = Kint::getIdeLink( $callee['file'], $callee['line'] ); - $shortenedName = Kint::shortenPath( $callee['file'] ) . ':' . $callee['line']; - - if ( Kint::enabled() === Kint::MODE_PLAIN ) { - if ( strpos( $url, 'http://' ) === 0 ) { - $calleeInfo = "{$shortenedName}"; - } else { - $calleeInfo = "{$shortenedName}"; - } - } else { - $calleeInfo = $shortenedName; - } - - return $calleeInfo; - } - - public static function init() - { - self::$_enableColors = - Kint::$cliColors - && ( DIRECTORY_SEPARATOR === '/' || getenv( 'ANSICON' ) !== false || getenv( 'ConEmuANSI' ) === 'ON' ); - - return Kint::enabled() === Kint::MODE_PLAIN - ? '' - : ''; - } -} \ No newline at end of file diff --git a/modules/devel/kint/kint/decorators/rich.php b/modules/devel/kint/kint/decorators/rich.php deleted file mode 100644 index bb6c978..0000000 --- a/modules/devel/kint/kint/decorators/rich.php +++ /dev/null @@ -1,319 +0,0 @@ -'; - - $extendedPresent = $kintVar->extendedValue !== null || $kintVar->_alternatives !== null; - - if ( $extendedPresent ) { - $class = 'kint-parent'; - if ( Kint::$expandedByDefault ) { - $class .= ' kint-show'; - } - $output .= '
' . $kintVar->extendedValue . ''; - } else { - $output .= self::decorate( $kintVar->extendedValue ); //it's kint's container - } - - } elseif ( isset( $kintVar->_alternatives ) ) { - $output .= "
' . $v . '' - : self::decorate( $v ); - } - } elseif ( is_string( $var ) ) { - $output .= '
' . $var . ''; - } elseif ( isset( $var ) ) { - throw new Exception( - 'Kint has encountered an error, ' - . 'please paste this report to https://github.com/raveren/kint/issues
{$step['source']}
' . '#' . ( $rowIndex + 1 ) . ' | '; - } else { - $output = self::_decorateCell( kintParser::factory( $rowIndex ) ); - } - if ( $firstRow ) { - $extendedValue .= ''; - } - - # we iterate the known full set of keys from all rows in case some appeared at later rows, - # as we only check the first two to assume - foreach ( $arrayKeys as $key ) { - if ( $firstRow ) { - $extendedValue .= ' | ' . self::escape( $key ) . ' | '; - } - - if ( !array_key_exists( $key, $row ) ) { - $output .= ''; - continue; - } - - $var = kintParser::factory( $row[ $key ] ); - - if ( $var->value === self::$_marker ) { - $variableData->value = '*RECURSION*'; - return false; - } elseif ( $var->value === '*RECURSION*' ) { - $output .= ' | *RECURSION* | '; - } else { - $output .= self::_decorateCell( $var ); - } - unset( $var ); - } - - if ( $firstRow ) { - $extendedValue .= '
---|---|---|---|---|
when array("\n") is dumped - if ( parent && kint.hasClass(parent, 'kint-parent') ) { - kint.toggle(parent, hide) - } - } - }, - - toggleChildren : function( element, hide ) { - var parent = kint.next(element) - , nodes = parent.getElementsByClassName('kint-parent') - , i = nodes.length; - - if ( typeof hide === 'undefined' ) { - hide = kint.hasClass(element); - } - - while ( i-- ) { - kint.toggle(nodes[i], hide); - } - kint.toggle(element, hide); - }, - - toggleAll : function( caret ) { - var elements = document.getElementsByClassName('kint-parent') - , i = elements.length - , visible = kint.hasClass(caret.parentNode); - - while ( i-- ) { - kint.toggle(elements[i], visible); - } - }, - - switchTab : function( target ) { - var lis, el = target, index = 0; - - target.parentNode.getElementsByClassName('kint-active-tab')[0].className = ''; - target.className = 'kint-active-tab'; - - // take the index of clicked title tab and make the same n-th content tab visible - while ( el = el.previousSibling ) el.nodeType === 1 && index++; - lis = target.parentNode.nextSibling.childNodes; - for ( var i = 0; i < lis.length; i++ ) { - if ( i === index ) { - lis[i].style.display = 'block'; - - if ( lis[i].childNodes.length === 1 ) { - el = lis[i].childNodes[0].childNodes[0]; - - if ( kint.hasClass(el, 'kint-parent') ) { - kint.toggle(el, false) - } - } - } else { - lis[i].style.display = 'none'; - } - } - }, - - isSibling : function( el ) { - for ( ; ; ) { - el = el.parentNode; - if ( !el || kint.hasClass(el, 'kint') ) break; - } - - return !!el; - }, - - fetchVisiblePluses : function() { - kint.visiblePluses = []; - kint.each('.kint nav, .kint-tabs>li:not(.kint-active-tab)', function( el ) { - if ( el.offsetWidth !== 0 || el.offsetHeight !== 0 ) { - kint.visiblePluses.push(el) - } - }); - }, - - openInNewWindow : function( kintContainer ) { - var newWindow; - - if ( newWindow = window.open() ) { - newWindow.document.open(); - newWindow.document.write( - '' - + '' - + 'Kint (' + new Date().toISOString() + ') ' - + '' - + document.getElementsByClassName('-kint-js')[0].outerHTML - + document.getElementsByClassName('-kint-css')[0].outerHTML - + '' - + '' - + '' - + '' - + kintContainer.parentNode.outerHTML - + '' - ); - newWindow.document.close(); - } - }, - - sortTable : function( table, column ) { - var tbody = table.tBodies[0]; - - var format = function( s ) { - var n = column === 1 ? s.replace(/^#/, '') : s; - if ( isNaN(n) ) { - return s.trim().toLocaleLowerCase(); - } else { - n = parseFloat(n); - return isNaN(n) ? s.trim() : n; - } - }; - - - [].slice.call(table.tBodies[0].rows) - .sort(function( a, b ) { - a = format(a.cells[column].textContent); - b = format(b.cells[column].textContent); - if ( a < b ) return -1; - if ( a > b ) return 1; - - return 0; - }) - .forEach(function( el ) { - tbody.appendChild(el); - }); - }, - - keyCallBacks : { - cleanup : function( i ) { - var focusedClass = 'kint-focused'; - var prevElement = document.querySelector('.' + focusedClass); - prevElement && kint.removeClass(prevElement, focusedClass); - - if ( i !== -1 ) { - var el = kint.visiblePluses[i]; - kint.addClass(el, focusedClass); - - - var offsetTop = function( el ) { - return el.offsetTop + ( el.offsetParent ? offsetTop(el.offsetParent) : 0 ); - }; - - var top = offsetTop(el) - (window.innerHeight / 2 ); - window.scrollTo(0, top); - } - - kint.currentPlus = i; - }, - - moveCursor : function( up, i ) { - // todo make the first VISIBLE plus active - if ( up ) { - if ( --i < 0 ) { - i = kint.visiblePluses.length - 1; - } - } else { - if ( ++i >= kint.visiblePluses.length ) { - i = 0; - } - } - - kint.keyCallBacks.cleanup(i); - return false; - } - } - }; - - window.addEventListener("click", function( e ) { - var target = e.target - , nodeName = target.nodeName.toLowerCase(); - - if ( !kint.isSibling(target) ) return; - - // auto-select name of variable - if ( nodeName === 'dfn' ) { - kint.selectText(target); - target = target.parentNode; - } else if ( nodeName === 'var' ) { // stupid workaround for misc elements - target = target.parentNode; // to not stop event from further propagating - nodeName = target.nodeName.toLowerCase() - } else if ( nodeName === 'th' ) { - if ( !e.ctrlKey ) { - kint.sortTable(target.parentNode.parentNode.parentNode, target.cellIndex) - } - return false; - } - - // switch tabs - if ( nodeName === 'li' && target.parentNode.className === 'kint-tabs' ) { - if ( target.className !== 'kint-active-tab' ) { - kint.switchTab(target); - if ( kint.currentPlus !== -1 ) kint.fetchVisiblePluses(); - } - return false; - } - - // handle clicks on the navigation caret - if ( nodeName === 'nav' ) { - // special case for nav in footer - if ( target.parentNode.nodeName.toLowerCase() === 'footer' ) { - target = target.parentNode; - if ( kint.hasClass(target) ) { - kint.removeClass(target) - } else { - kint.addClass(target) - } - } else { - // ensure doubleclick has different behaviour, see below - setTimeout(function() { - var timer = parseInt(target.kintTimer, 10); - if ( timer > 0 ) { - target.kintTimer--; - } else { - kint.toggleChildren(target.parentNode); //
' . $this->t('Here are the contents of your $_SESSION variable.') . '
', - ); - $output['session'] = array( - '#type' => 'table', - '#header' => array($this->t('Session name'), $this->t('Session ID')), - '#rows' => array(array(session_name(), session_id())), - '#empty' => $this->t('No session available.'), - ); - $output['data'] = $this->dumper->exportAsRenderable($_SESSION); - - return $output; - } - -} diff --git a/modules/devel/src/Controller/ElementInfoController.php b/modules/devel/src/Controller/ElementInfoController.php deleted file mode 100644 index a0440c3..0000000 --- a/modules/devel/src/Controller/ElementInfoController.php +++ /dev/null @@ -1,162 +0,0 @@ -elementInfo = $element_info; - $this->dumper = $dumper; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('element_info'), - $container->get('devel.dumper') - ); - } - - /** - * Builds the element overview page. - * - * @return array - * A render array as expected by the renderer. - */ - public function elementList() { - $headers = [ - $this->t('Name'), - $this->t('Provider'), - $this->t('Class'), - $this->t('Operations'), - ]; - - $rows = []; - - foreach ($this->elementInfo->getDefinitions() as $element_type => $definition) { - $row['name'] = [ - 'data' => $element_type, - 'class' => 'table-filter-text-source', - ]; - $row['provider'] = [ - 'data' => $definition['provider'], - 'class' => 'table-filter-text-source', - ]; - $row['class'] = [ - 'data' => $definition['class'], - 'class' => 'table-filter-text-source', - ]; - $row['operations']['data'] = [ - '#type' => 'operations', - '#links' => [ - 'devel' => [ - 'title' => $this->t('Devel'), - 'url' => Url::fromRoute('devel.elements_page.detail', ['element_name' => $element_type]), - 'attributes' => [ - 'class' => ['use-ajax'], - 'data-dialog-type' => 'modal', - 'data-dialog-options' => Json::encode([ - 'width' => 700, - 'minHeight' => 500, - ]), - ], - ], - ], - ]; - - $rows[$element_type] = $row; - } - - ksort($rows); - - $output['#attached']['library'][] = 'system/drupal.system.modules'; - - $output['filters'] = [ - '#type' => 'container', - '#attributes' => [ - 'class' => ['table-filter', 'js-show'], - ], - ]; - $output['filters']['text'] = [ - '#type' => 'search', - '#title' => $this->t('Search'), - '#size' => 30, - '#placeholder' => $this->t('Enter element id, provider or class'), - '#attributes' => [ - 'class' => ['table-filter-text'], - 'data-table' => '.devel-filter-text', - 'autocomplete' => 'off', - 'title' => $this->t('Enter a part of the element id, provider or class to filter by.'), - ], - ]; - $output['elements'] = [ - '#type' => 'table', - '#header' => $headers, - '#rows' => $rows, - '#empty' => $this->t('No elements found.'), - '#sticky' => TRUE, - '#attributes' => [ - 'class' => ['devel-element-list', 'devel-filter-text'], - ], - ]; - - return $output; - } - - /** - * Returns a render array representation of the element. - * - * @param string $element_name - * The name of the element to retrieve. - * - * @return array - * A render array containing the element. - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - * If the requested element is not defined. - */ - public function elementDetail($element_name) { - if (!$element = $this->elementInfo->getDefinition($element_name, FALSE)) { - throw new NotFoundHttpException(); - } - - $element += $this->elementInfo->getInfo($element_name); - return $this->dumper->exportAsRenderable($element, $element_name); - } - -} diff --git a/modules/devel/src/Controller/EntityDebugController.php b/modules/devel/src/Controller/EntityDebugController.php deleted file mode 100644 index 515a9fc..0000000 --- a/modules/devel/src/Controller/EntityDebugController.php +++ /dev/null @@ -1,143 +0,0 @@ -dumper = $dumper; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static($container->get('devel.dumper')); - } - - /** - * Returns the entity type definition of the current entity. - * - * @param \Drupal\Core\Routing\RouteMatchInterface $route_match - * A RouteMatch object. - * - * @return array - * Array of page elements to render. - */ - public function entityTypeDefinition(RouteMatchInterface $route_match) { - $output = []; - - $entity = $this->getEntityFromRouteMatch($route_match); - - if ($entity instanceof EntityInterface) { - $output = $this->dumper->exportAsRenderable($entity->getEntityType()); - } - - return $output; - } - - /** - * Returns the loaded structure of the current entity. - * - * @param \Drupal\Core\Routing\RouteMatchInterface $route_match - * A RouteMatch object. - * - * @return array - * Array of page elements to render. - */ - public function entityLoad(RouteMatchInterface $route_match) { - $output = []; - - $entity = $this->getEntityFromRouteMatch($route_match); - - if ($entity instanceof EntityInterface) { - // Field definitions are lazy loaded and are populated only when needed. - // By calling ::getFieldDefinitions() we are sure that field definitions - // are populated and available in the dump output. - // @see https://www.drupal.org/node/2311557 - if($entity instanceof FieldableEntityInterface) { - $entity->getFieldDefinitions(); - } - - $output = $this->dumper->exportAsRenderable($entity); - } - - return $output; - } - - /** - * Returns the render structure of the current entity. - * - * @param \Drupal\Core\Routing\RouteMatchInterface $route_match - * A RouteMatch object. - * - * @return array - * Array of page elements to render. - */ - public function entityRender(RouteMatchInterface $route_match) { - $output = []; - - $entity = $this->getEntityFromRouteMatch($route_match); - - if ($entity instanceof EntityInterface) { - $entity_type_id = $entity->getEntityTypeId(); - $view_hook = $entity_type_id . '_view'; - - $build = []; - // If module implements own {entity_type}_view() hook use it, otherwise - // fallback to the entity view builder if available. - if (function_exists($view_hook)) { - $build = $view_hook($entity); - } - elseif ($this->entityTypeManager()->hasHandler($entity_type_id, 'view_builder')) { - $build = $this->entityTypeManager()->getViewBuilder($entity_type_id)->view($entity); - } - - $output = $this->dumper->exportAsRenderable($build); - } - - return $output; - } - - /** - * Retrieves entity from route match. - * - * @param \Drupal\Core\Routing\RouteMatchInterface $route_match - * The route match. - * - * @return \Drupal\Core\Entity\EntityInterface|null - * The entity object as determined from the passed-in route match. - */ - protected function getEntityFromRouteMatch(RouteMatchInterface $route_match) { - $parameter_name = $route_match->getRouteObject()->getOption('_devel_entity_type_id'); - $entity = $route_match->getParameter($parameter_name); - return $entity; - } - -} diff --git a/modules/devel/src/Controller/EntityTypeInfoController.php b/modules/devel/src/Controller/EntityTypeInfoController.php deleted file mode 100644 index f8bac6d..0000000 --- a/modules/devel/src/Controller/EntityTypeInfoController.php +++ /dev/null @@ -1,154 +0,0 @@ -dumper = $dumper; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('devel.dumper') - ); - } - - /** - * Builds the entity types overview page. - * - * @return array - * A render array as expected by the renderer. - */ - public function entityTypeList() { - $headers = [ - $this->t('ID'), - $this->t('Name'), - $this->t('Provider'), - $this->t('Class'), - $this->t('Operations'), - ]; - - $rows = []; - - foreach ($this->entityTypeManager()->getDefinitions() as $entity_type_id => $entity_type) { - $row['id'] = [ - 'data' => $entity_type->id(), - 'class' => 'table-filter-text-source', - ]; - $row['name'] = [ - 'data' => $entity_type->getLabel(), - 'class' => 'table-filter-text-source', - ]; - $row['provider'] = [ - 'data' => $entity_type->getProvider(), - 'class' => 'table-filter-text-source', - ]; - $row['class'] = [ - 'data' => $entity_type->getClass(), - 'class' => 'table-filter-text-source', - ]; - $row['operations']['data'] = [ - '#type' => 'operations', - '#links' => [ - 'devel' => [ - 'title' => $this->t('Devel'), - 'url' => Url::fromRoute('devel.entity_info_page.detail', ['entity_type_id' => $entity_type_id]), - 'attributes' => [ - 'class' => ['use-ajax'], - 'data-dialog-type' => 'modal', - 'data-dialog-options' => Json::encode([ - 'width' => 700, - 'minHeight' => 500, - ]), - ], - ], - ], - ]; - - $rows[$entity_type_id] = $row; - } - - ksort($rows); - - $output['#attached']['library'][] = 'system/drupal.system.modules'; - - $output['filters'] = [ - '#type' => 'container', - '#attributes' => [ - 'class' => ['table-filter', 'js-show'], - ], - ]; - $output['filters']['text'] = [ - '#type' => 'search', - '#title' => $this->t('Search'), - '#size' => 30, - '#placeholder' => $this->t('Enter entity type id, provider or class'), - '#attributes' => [ - 'class' => ['table-filter-text'], - 'data-table' => '.devel-filter-text', - 'autocomplete' => 'off', - 'title' => $this->t('Enter a part of the entity type id, provider or class to filter by.'), - ], - ]; - $output['entities'] = [ - '#type' => 'table', - '#header' => $headers, - '#rows' => $rows, - '#empty' => $this->t('No entity types found.'), - '#sticky' => TRUE, - '#attributes' => [ - 'class' => ['devel-entity-type-list', 'devel-filter-text'], - ], - ]; - - return $output; - } - - /** - * Returns a render array representation of the entity type. - * - * @param string $entity_type_id - * The name of the entity type to retrieve. - * - * @return array - * A render array containing the entity type. - * - * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - * If the requested entity type is not defined. - */ - public function entityTypeDetail($entity_type_id) { - if (!$entity_type = $this->entityTypeManager()->getDefinition($entity_type_id, FALSE)) { - throw new NotFoundHttpException(); - } - - return $this->dumper->exportAsRenderable($entity_type, $entity_type_id); - } - -} diff --git a/modules/devel/src/Controller/EventInfoController.php b/modules/devel/src/Controller/EventInfoController.php deleted file mode 100644 index e8ea0cd..0000000 --- a/modules/devel/src/Controller/EventInfoController.php +++ /dev/null @@ -1,136 +0,0 @@ -eventDispatcher = $event_dispatcher; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('event_dispatcher') - ); - } - - /** - * Builds the events overview page. - * - * @return array - * A render array as expected by the renderer. - */ - public function eventList() { - $headers = [ - 'name' => [ - 'data' => $this->t('Event Name'), - 'class' => 'visually-hidden', - ], - 'callable' => $this->t('Callable'), - 'priority' => $this->t('Priority'), - ]; - - $event_listeners = $this->eventDispatcher->getListeners(); - ksort($event_listeners); - - $rows = []; - - foreach ($event_listeners as $event_name => $listeners) { - - $rows[][] = [ - 'data' => $event_name, - 'class' => 'table-filter-text-source devel-event-name-header', - 'colspan' => '3', - 'header' => TRUE, - ]; - - foreach ($listeners as $priority => $listener) { - $row['name'] = [ - 'data' => $event_name, - 'class' => 'table-filter-text-source visually-hidden', - ]; - $row['class'] = [ - 'data' => $this->resolveCallableName($listener), - ]; - $row['priority'] = [ - 'data' => $priority, - ]; - $rows[] = $row; - } - } - - $output['#attached']['library'][] = 'system/drupal.system.modules'; - - $output['filters'] = [ - '#type' => 'container', - '#attributes' => [ - 'class' => ['table-filter', 'js-show'], - ], - ]; - $output['filters']['name'] = [ - '#type' => 'search', - '#title' => $this->t('Search'), - '#size' => 30, - '#placeholder' => $this->t('Enter event name'), - '#attributes' => [ - 'class' => ['table-filter-text'], - 'data-table' => '.devel-filter-text', - 'autocomplete' => 'off', - 'title' => $this->t('Enter a part of the event name to filter by.'), - ], - ]; - $output['events'] = [ - '#type' => 'table', - '#header' => $headers, - '#rows' => $rows, - '#empty' => $this->t('No events found.'), - '#attributes' => [ - 'class' => ['devel-event-list', 'devel-filter-text'], - ], - ]; - - return $output; - } - - /** - * Helper function for resolve callable name. - * - * @param mixed $callable - * The for which resolve the name. Can be either the name of a function - * stored in a string variable, or an object and the name of a method - * within the object. - * - * @return string - * The resolved callable name or an empty string. - */ - protected function resolveCallableName($callable) { - if (is_callable($callable, TRUE, $callable_name)) { - return $callable_name; - } - return ''; - } - -} diff --git a/modules/devel/src/Controller/LayoutInfoController.php b/modules/devel/src/Controller/LayoutInfoController.php deleted file mode 100644 index 4a2cff2..0000000 --- a/modules/devel/src/Controller/LayoutInfoController.php +++ /dev/null @@ -1,91 +0,0 @@ -layoutPluginManager = $pluginManagerLayout; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('plugin.manager.core.layout') - ); - } - - /** - * Builds the Layout Info page. - * - * @return array - * Array of page elements to render. - */ - public function layoutInfoPage() { - $definedLayouts = []; - $layouts = $this->layoutPluginManager->getDefinitions(); - foreach ($layouts as $layout) { - // @todo Revisit once https://www.drupal.org/node/2660124 gets in, getting - // the image should be as simple as $layout->getIcon(). - $image = NULL; - if ($layout->getIconPath() != NULL) { - $image = [ - 'data' => [ - '#theme' => 'image', - '#uri' => $layout->getIconPath(), - '#alt' => $layout->getLabel(), - '#height' => '65', - ] - ]; - } - $definedLayouts[] = [ - $image, - $layout->getLabel(), - $layout->getDescription(), - $layout->getCategory(), - implode(', ', $layout->getRegionLabels()), - $layout->getProvider(), - ]; - } - - return [ - '#theme' => 'table', - '#header' => [ - $this->t('Icon'), - $this->t('Label'), - $this->t('Description'), - $this->t('Category'), - $this->t('Regions'), - $this->t('Provider'), - ], - '#rows' => $definedLayouts, - '#empty' => $this->t('No layouts available.'), - '#attributes' => [ - 'class' => ['devel-layout-list'], - ], - ]; - } - -} diff --git a/modules/devel/src/Controller/RouteInfoController.php b/modules/devel/src/Controller/RouteInfoController.php deleted file mode 100644 index 45c9f6d..0000000 --- a/modules/devel/src/Controller/RouteInfoController.php +++ /dev/null @@ -1,203 +0,0 @@ -routeProvider = $provider; - $this->router = $router; - $this->dumper = $dumper; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('router.route_provider'), - $container->get('router.no_access_checks'), - $container->get('devel.dumper') - ); - } - - /** - * Builds the routes overview page. - * - * @return array - * A render array as expected by the renderer. - */ - public function routeList() { - $headers = [ - $this->t('Route Name'), - $this->t('Path'), - $this->t('Allowed Methods'), - $this->t('Operations'), - ]; - - $rows = []; - - foreach ($this->routeProvider->getAllRoutes() as $route_name => $route) { - $row['name'] = [ - 'data' => $route_name, - 'class' => 'table-filter-text-source', - ]; - $row['path'] = [ - 'data' => $route->getPath(), - 'class' => 'table-filter-text-source', - ]; - $row['methods']['data'] = [ - '#theme' => 'item_list', - '#items' => $route->getMethods(), - '#empty' => $this->t('ANY'), - '#context' => ['list_style' => 'comma-list'], - ]; - - // We cannot resolve routes with dynamic parameters from route path. For - // these routes we pass the route name. - // @see ::routeItem() - if (strpos($route->getPath(), '{') !== FALSE) { - $parameters = ['query' => ['route_name' => $route_name]]; - } - else { - $parameters = ['query' => ['path' => $route->getPath()]]; - } - - $row['operations']['data'] = [ - '#type' => 'operations', - '#links' => [ - 'devel' => [ - 'title' => $this->t('Devel'), - 'url' => Url::fromRoute('devel.route_info.item', [], $parameters), - ], - ], - ]; - - $rows[] = $row; - } - - $output['#attached']['library'][] = 'system/drupal.system.modules'; - - $output['filters'] = [ - '#type' => 'container', - '#attributes' => [ - 'class' => ['table-filter', 'js-show'], - ], - ]; - $output['filters']['name'] = [ - '#type' => 'search', - '#title' => $this->t('Search'), - '#size' => 30, - '#placeholder' => $this->t('Enter route name or path'), - '#attributes' => [ - 'class' => ['table-filter-text'], - 'data-table' => '.devel-filter-text', - 'autocomplete' => 'off', - 'title' => $this->t('Enter a part of the route name or path to filter by.'), - ], - ]; - $output['routes'] = [ - '#type' => 'table', - '#header' => $headers, - '#rows' => $rows, - '#empty' => $this->t('No routes found.'), - '#sticky' => TRUE, - '#attributes' => [ - 'class' => ['devel-route-list', 'devel-filter-text'], - ], - ]; - - return $output; - } - - /** - * Returns a render array representation of the route object. - * - * The method tries to resolve the route from the 'path' or the 'route_name' - * query string value if available. If no route is retrieved from the query - * string parameters it fallbacks to the current route. - * - * @param \Symfony\Component\HttpFoundation\Request $request - * The request object. - * @param \Drupal\Core\Routing\RouteMatchInterface $route_match - * The route match. - * - * @return array - * A render array as expected by the renderer. - */ - public function routeDetail(Request $request, RouteMatchInterface $route_match) { - $route = NULL; - - // Get the route object from the path query string if available. - if ($path = $request->query->get('path')) { - try { - $route = $this->router->match($path); - } - catch (\Exception $e) { - drupal_set_message($this->t("Unable to load route for url '%url'", ['%url' => $path]), 'warning'); - } - } - - // Get the route object from the route name query string if available and - // the route is not retrieved by path. - if ($route === NULL && $route_name = $request->query->get('route_name')) { - try { - $route = $this->routeProvider->getRouteByName($route_name); - } - catch (\Exception $e) { - drupal_set_message($this->t("Unable to load route '%name'", ['%name' => $route_name]), 'warning'); - } - } - - // No route retrieved from path or name specified, get the current route. - if ($route === NULL) { - $route = $route_match->getRouteObject(); - } - - return $this->dumper->exportAsRenderable($route); - } - -} diff --git a/modules/devel/src/Controller/SwitchUserController.php b/modules/devel/src/Controller/SwitchUserController.php deleted file mode 100644 index e5da73c..0000000 --- a/modules/devel/src/Controller/SwitchUserController.php +++ /dev/null @@ -1,120 +0,0 @@ -account = $account; - $this->userStorage = $user_storage; - $this->moduleHandler = $module_handler; - $this->sessionManager = $session_manager; - $this->session = $session; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('current_user'), - $container->get('entity.manager')->getStorage('user'), - $container->get('module_handler'), - $container->get('session_manager'), - $container->get('session') - ); - } - - /** - * Switches to a different user. - * - * We don't call session_save_session() because we really want to change users. - * Usually unsafe! - * - * @param string $name - * The username to switch to, or NULL to log out. - * - * @return \Symfony\Component\HttpFoundation\RedirectResponse - * A redirect response object. - * - * @throws \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException - */ - public function switchUser($name = NULL) { - if (empty($name) || !($account = $this->userStorage->loadByProperties(['name' => $name]))) { - throw new AccessDeniedHttpException(); - } - $account = reset($account); - - // Call logout hooks when switching from original user. - $this->moduleHandler->invokeAll('user_logout', [$this->account]); - - // Regenerate the session ID to prevent against session fixation attacks. - $this->sessionManager->regenerate(); - - // Based off masquarade module as: - // https://www.drupal.org/node/218104 doesn't stick and instead only - // keeps context until redirect. - $this->account->setAccount($account); - $this->session->set('uid', $account->id()); - - // Call all login hooks when switching to masquerading user. - $this->moduleHandler->invokeAll('user_login', [$account]); - - return $this->redirect('<?php ?>
tags.'),
- '#default_value' => (isset($_SESSION['devel_execute_code']) ? $_SESSION['devel_execute_code'] : ''),
- '#rows' => 20,
- );
- $form['execute']['op'] = array('#type' => 'submit', '#value' => t('Execute'));
- $form['#redirect'] = FALSE;
- if (isset($_SESSION['devel_execute_code'])) {
- unset($_SESSION['devel_execute_code']);
- }
-
- return $form;
- }
-
- /**
- * {@inheritdoc}
- */
- public function submitForm(array &$form, FormStateInterface $form_state) {
- ob_start();
- $code = $form_state->getValue('code');
- print eval($code);
- $_SESSION['devel_execute_code'] = $code;
- dpm(ob_get_clean());
- }
-
-}
diff --git a/modules/devel/src/Form/RouterRebuildConfirmForm.php b/modules/devel/src/Form/RouterRebuildConfirmForm.php
deleted file mode 100644
index a1daf89..0000000
--- a/modules/devel/src/Form/RouterRebuildConfirmForm.php
+++ /dev/null
@@ -1,86 +0,0 @@
-routeBuilder = $route_builder;
- }
-
- /**
- * {@inheritdoc}
- */
- public static function create(ContainerInterface $container) {
- return new static(
- $container->get('router.builder')
- );
- }
-
- /**
- * {@inheritdoc}
- */
- public function getFormId() {
- return 'devel_menu_rebuild';
- }
-
- /**
- * {@inheritdoc}
- */
- public function getQuestion() {
- return $this->t('Are you sure you want to rebuild the router?');
- }
-
- /**
- * {@inheritdoc}
- */
- public function getCancelUrl() {
- return new Url('' . $name . $dump . ''; - - return $this->setSafeMarkup($dump); - } - - /** - * {@inheritdoc} - */ - public function exportAsRenderable($input, $name = NULL) { - $output['container'] = [ - '#type' => 'details', - '#title' => $name ? : $this->t('Variable'), - '#attached' => [ - 'library' => ['devel/devel'] - ], - '#attributes' => [ - 'class' => ['container-inline', 'devel-dumper', 'devel-selectable'], - ], - 'export' => [ - '#markup' => $this->export($input), - ], - ]; - - return $output; - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return TRUE; - } - -} diff --git a/modules/devel/src/Plugin/Devel/Dumper/DrupalVariable.php b/modules/devel/src/Plugin/Devel/Dumper/DrupalVariable.php deleted file mode 100644 index a1561e3..0000000 --- a/modules/devel/src/Plugin/Devel/Dumper/DrupalVariable.php +++ /dev/null @@ -1,61 +0,0 @@ -Drupal Variable class.") - * ) - */ -class DrupalVariable extends DevelDumperBase { - - /** - * {@inheritdoc} - */ - public function export($input, $name = NULL) { - $name = $name ? $name . ' => ' : ''; - $dump = Variable::export($input); - // Run Xss::filterAdmin on the resulting string to prevent - // cross-site-scripting (XSS) vulnerabilities. - $dump = Xss::filterAdmin($dump); - $dump = '
' . $name . $dump . ''; - return $this->setSafeMarkup($dump); - } - - /** - * {@inheritdoc} - */ - public function exportAsRenderable($input, $name = NULL) { - $output['container'] = [ - '#type' => 'details', - '#title' => $name ? : $this->t('Variable'), - '#attached' => [ - 'library' => ['devel/devel'] - ], - '#attributes' => [ - 'class' => ['container-inline', 'devel-dumper', 'devel-selectable'], - ], - 'export' => [ - '#markup' => $this->export($input), - ], - ]; - - return $output; - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return TRUE; - } - -} diff --git a/modules/devel/src/Plugin/Devel/Dumper/FirePhp.php b/modules/devel/src/Plugin/Devel/Dumper/FirePhp.php deleted file mode 100644 index 9140d00..0000000 --- a/modules/devel/src/Plugin/Devel/Dumper/FirePhp.php +++ /dev/null @@ -1,41 +0,0 @@ -FirePhp debugging tool.") - * ) - */ -class FirePhp extends DevelDumperBase { - - /** - * {@inheritdoc} - */ - public function dump($input, $name = NULL) { - $fb = new \FB(); - $fb->dump($name, $input); - } - - /** - * {@inheritdoc} - */ - public function export($input, $name = NULL) { - $this->dump($input); - return $this->t('Dump was redirected to the console.'); - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return class_exists('FirePHP', TRUE); - } - -} diff --git a/modules/devel/src/Plugin/Devel/Dumper/VarDumper.php b/modules/devel/src/Plugin/Devel/Dumper/VarDumper.php deleted file mode 100644 index 59200fa..0000000 --- a/modules/devel/src/Plugin/Devel/Dumper/VarDumper.php +++ /dev/null @@ -1,47 +0,0 @@ -Symfony var-dumper debugging tool."), - * ) - * - */ -class VarDumper extends DevelDumperBase { - - /** - * {@inheritdoc} - */ - public function export($input, $name = NULL) { - $cloner = new VarCloner(); - $dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper(); - - $output = fopen('php://memory', 'r+b'); - $dumper->dump($cloner->cloneVar($input), $output); - $output = stream_get_contents($output, -1, 0); - - if ($name) { - $output = $name . ' => ' . $output; - } - - return $this->setSafeMarkup($output); - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return class_exists('Symfony\Component\VarDumper\Cloner\VarCloner', TRUE); - } - -} diff --git a/modules/devel/src/Plugin/Mail/DevelMailLog.php b/modules/devel/src/Plugin/Mail/DevelMailLog.php deleted file mode 100644 index 16cafc1..0000000 --- a/modules/devel/src/Plugin/Mail/DevelMailLog.php +++ /dev/null @@ -1,188 +0,0 @@ -config = $config_factory->get('devel.settings'); - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { - return new static( - $configuration, - $plugin_id, - $plugin_definition, - $container->get('config.factory') - ); - } - - /** - * {@inheritdoc} - */ - public function mail(array $message) { - $directory = $this->config->get('debug_mail_directory'); - - if (!$this->prepareDirectory($directory)) { - return FALSE; - } - - $pattern = $this->config->get('debug_mail_file_format'); - $filename = $this->replacePlaceholders($pattern, $message); - $output = $this->composeMessage($message); - - return (bool) file_put_contents($directory . '/' . $filename, $output); - } - - /** - * {@inheritdoc} - */ - public function format(array $message) { - // Join the body array into one string. - $message['body'] = implode("\n\n", $message['body']); - - // Convert any HTML to plain-text. - $message['body'] = MailFormatHelper::htmlToText($message['body']); - // Wrap the mail body for sending. - $message['body'] = MailFormatHelper::wrapMail($message['body']); - - return $message; - } - - /** - * Compose the output message. - * - * @param array $message - * A message array, as described in hook_mail_alter(). - * - * @return string - * The output message. - */ - protected function composeMessage($message) { - $mimeheaders = []; - $message['headers']['To'] = $message['to']; - foreach ($message['headers'] as $name => $value) { - $mimeheaders[] = $name . ': ' . Unicode::mimeHeaderEncode($value); - } - - $line_endings = Settings::get('mail_line_endings', PHP_EOL); - $output = join($line_endings, $mimeheaders) . $line_endings; - // 'Subject:' is a mail header and should not be translated. - $output .= 'Subject: ' . $message['subject'] . $line_endings; - // Blank line to separate headers from body. - $output .= $line_endings; - $output .= preg_replace('@\r?\n@', $line_endings, $message['body']); - return $output; - } - - /** - * Replaces placeholders with sanitized values in a string. - * - * @param $filename - * The string that contains the placeholders. The following placeholders - * are considered in the replacement: - * - %to: replaced by the email recipient value. - * - %subject: replaced by the email subject value. - * - %datetime: replaced by the current datetime in 'y-m-d_his' format. - * @param array $message - * A message array, as described in hook_mail_alter(). - * - * @return string - * The formatted string. - */ - protected function replacePlaceholders($filename, $message) { - $tokens = [ - '%to' => $message['to'], - '%subject' => $message['subject'], - '%datetime' => date('y-m-d_his'), - ]; - $filename = str_replace(array_keys($tokens), array_values($tokens), $filename); - return preg_replace('/[^a-zA-Z0-9_\-\.@]/', '_', $filename); - } - - /** - * Checks that the directory exists and is writable. - * Public directories will be protected by adding an .htaccess which - * indicates that the directory is private. - * - * @param $directory - * A string reference containing the name of a directory path or URI. - * - * @return bool - * TRUE if the directory exists (or was created), is writable and is - * protected (if it is public). FALSE otherwise. - */ - protected function prepareDirectory($directory) { - if (!file_prepare_directory($directory, FILE_CREATE_DIRECTORY)) { - return FALSE; - } - if (0 === strpos($directory, 'public://')) { - return file_save_htaccess($directory); - } - - return TRUE; - } - -} diff --git a/modules/devel/src/Plugin/Menu/DestinationMenuLink.php b/modules/devel/src/Plugin/Menu/DestinationMenuLink.php deleted file mode 100644 index 4edf1c3..0000000 --- a/modules/devel/src/Plugin/Menu/DestinationMenuLink.php +++ /dev/null @@ -1,32 +0,0 @@ -')->toString(); - return $options; - } - - /** - * {@inheritdoc} - * - * @todo Make cacheable once https://www.drupal.org/node/2582797 lands. - */ - public function getCacheMaxAge() { - return 0; - } - -} diff --git a/modules/devel/src/Plugin/Menu/MenuItemMenuLink.php b/modules/devel/src/Plugin/Menu/MenuItemMenuLink.php deleted file mode 100644 index 1dd26e5..0000000 --- a/modules/devel/src/Plugin/Menu/MenuItemMenuLink.php +++ /dev/null @@ -1,11 +0,0 @@ -')->getInternalPath(); - return $options; - } - - /** - * {@inheritdoc} - */ - public function getCacheMaxAge() { - return 0; - } - -} diff --git a/modules/devel/src/Render/FilteredMarkup.php b/modules/devel/src/Render/FilteredMarkup.php deleted file mode 100644 index d43c0d5..0000000 --- a/modules/devel/src/Render/FilteredMarkup.php +++ /dev/null @@ -1,23 +0,0 @@ -entityTypeManager = $entity_manager; - } - - /** - * {@inheritdoc} - */ - protected function alterRoutes(RouteCollection $collection) { - foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) { - if ($route = $this->getEntityLoadRoute($entity_type)) { - $collection->add("entity.$entity_type_id.devel_load", $route); - } - if ($route = $this->getEntityRenderRoute($entity_type)) { - $collection->add("entity.$entity_type_id.devel_render", $route); - } - if ($route = $this->getEntityTypeDefinitionRoute($entity_type)) { - $collection->add("entity.$entity_type_id.devel_definition", $route); - } - } - } - - /** - * Gets the entity load route. - * - * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type - * The entity type. - * - * @return \Symfony\Component\Routing\Route|null - * The generated route, if available. - */ - protected function getEntityLoadRoute(EntityTypeInterface $entity_type) { - if ($devel_load = $entity_type->getLinkTemplate('devel-load')) { - $entity_type_id = $entity_type->id(); - $route = new Route($devel_load); - $route - ->addDefaults([ - '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityLoad', - '_title' => 'Devel Load', - ]) - ->addRequirements([ - '_permission' => 'access devel information', - ]) - ->setOption('_admin_route', TRUE) - ->setOption('_devel_entity_type_id', $entity_type_id) - ->setOption('parameters', [ - $entity_type_id => ['type' => 'entity:' . $entity_type_id], - ]); - - return $route; - } - } - - /** - * Gets the entity render route. - * - * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type - * The entity type. - * - * @return \Symfony\Component\Routing\Route|null - * The generated route, if available. - */ - protected function getEntityRenderRoute(EntityTypeInterface $entity_type) { - if ($devel_render = $entity_type->getLinkTemplate('devel-render')) { - $entity_type_id = $entity_type->id(); - $route = new Route($devel_render); - $route - ->addDefaults([ - '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityRender', - '_title' => 'Devel Render', - ]) - ->addRequirements([ - '_permission' => 'access devel information' - ]) - ->setOption('_admin_route', TRUE) - ->setOption('_devel_entity_type_id', $entity_type_id) - ->setOption('parameters', [ - $entity_type_id => ['type' => 'entity:' . $entity_type_id], - ]); - - return $route; - } - } - - /** - * Gets the entity type definition route. - * - * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type - * The entity type. - * - * @return \Symfony\Component\Routing\Route|null - * The generated route, if available. - */ - protected function getEntityTypeDefinitionRoute(EntityTypeInterface $entity_type) { - if ($devel_definition = $entity_type->getLinkTemplate('devel-definition')) { - $entity_type_id = $entity_type->id(); - $route = new Route($devel_definition); - $route - ->addDefaults([ - '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityTypeDefinition', - '_title' => 'Entity type definition', - ]) - ->addRequirements([ - '_permission' => 'access devel information' - ]) - ->setOption('_admin_route', TRUE) - ->setOption('_devel_entity_type_id', $entity_type_id) - ->setOption('parameters', [ - $entity_type_id => ['type' => 'entity:' . $entity_type_id], - ]); - - return $route; - } - } - - /** - * {@inheritdoc} - */ - public static function getSubscribedEvents() { - $events = parent::getSubscribedEvents(); - $events[RoutingEvents::ALTER] = ['onAlterRoutes', 100]; - return $events; - } - -} diff --git a/modules/devel/src/ToolbarHandler.php b/modules/devel/src/ToolbarHandler.php deleted file mode 100644 index 0d7cbcd..0000000 --- a/modules/devel/src/ToolbarHandler.php +++ /dev/null @@ -1,181 +0,0 @@ -menuLinkTree = $menu_link_tree; - $this->config = $config_factory->get('devel.toolbar.settings'); - $this->account = $account; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('toolbar.menu_tree'), - $container->get('config.factory'), - $container->get('current_user') - ); - } - - /** - * Hook bridge. - * - * @return array - * The devel toolbar items render array. - * - * @see hook_toolbar() - */ - public function toolbar() { - $items['devel'] = [ - '#cache' => [ - 'contexts' => ['user.permissions'], - ], - ]; - - if ($this->account->hasPermission('access devel information')) { - $items['devel'] += [ - '#type' => 'toolbar_item', - '#weight' => 999, - 'tab' => [ - '#type' => 'link', - '#title' => $this->t('Devel'), - '#url' => Url::fromRoute('devel.admin_settings'), - '#attributes' => [ - 'title' => $this->t('Development menu'), - 'class' => ['toolbar-icon', 'toolbar-icon-devel'], - ], - ], - 'tray' => [ - '#heading' => $this->t('Development menu'), - 'devel_menu' => [ - // Currently devel menu is uncacheable, so instead of poisoning the - // entire page cache we use a lazy builder. - // @see \Drupal\devel\Plugin\Menu\DestinationMenuLink - // @see \Drupal\devel\Plugin\Menu\RouteDetailMenuItem - '#lazy_builder' => [ToolbarHandler::class . ':lazyBuilder', []], - // Force the creation of the placeholder instead of rely on the - // automatical placeholdering or otherwise the page results - // uncacheable when max-age 0 is bubbled up. - '#create_placeholder' => TRUE, - ], - 'configuration' => [ - '#type' => 'link', - '#title' => $this->t('Configure'), - '#url' => Url::fromRoute('devel.toolbar.settings_form'), - '#options' => [ - 'attributes' => ['class' => ['edit-devel-toolbar']], - ], - ], - ], - '#attached' => [ - 'library' => 'devel/devel-toolbar', - ], - ]; - } - - return $items; - } - - /** - * Lazy builder callback for the devel menu toolbar. - * - * @return array - * The renderable array rapresentation of the devel menu. - */ - public function lazyBuilder() { - $parameters = new MenuTreeParameters(); - $parameters->onlyEnabledLinks()->setTopLevelOnly(); - - $tree = $this->menuLinkTree->load('devel', $parameters); - - $manipulators = [ - ['callable' => 'menu.default_tree_manipulators:checkAccess'], - ['callable' => 'menu.default_tree_manipulators:generateIndexAndSort'], - ['callable' => ToolbarHandler::class . ':processTree'], - ]; - $tree = $this->menuLinkTree->transform($tree, $manipulators); - - $build = $this->menuLinkTree->build($tree); - - CacheableMetadata::createFromRenderArray($build) - ->addCacheableDependency($this->config) - ->applyTo($build); - - return $build; - } - - /** - * Adds toolbar-specific attributes to the menu link tree. - * - * @param \Drupal\Core\Menu\MenuLinkTreeElement[] $tree - * The menu link tree to manipulate. - * - * @return \Drupal\Core\Menu\MenuLinkTreeElement[] - * The manipulated menu link tree. - */ - public function processTree(array $tree) { - $visible_items = $this->config->get('toolbar_items') ?: []; - - foreach ($tree as $element) { - $plugin_id = $element->link->getPluginId(); - if (!in_array($plugin_id, $visible_items)) { - // Add a class that allow to hide the non prioritized menu items when - // the toolbar has horizontal orientation. - $element->options['attributes']['class'][] = 'toolbar-horizontal-item-hidden'; - } - } - - return $tree; - } - -} diff --git a/modules/devel/src/Twig/Extension/Debug.php b/modules/devel/src/Twig/Extension/Debug.php deleted file mode 100644 index 9922e61..0000000 --- a/modules/devel/src/Twig/Extension/Debug.php +++ /dev/null @@ -1,201 +0,0 @@ -dumper = $dumper; - } - - /** - * {@inheritdoc} - */ - public function getName() { - return 'devel_debug'; - } - - /** - * {@inheritdoc} - */ - public function getFunctions() { - $functions = []; - - foreach (['devel_dump', 'kpr'] as $function) { - $functions[] = new \Twig_SimpleFunction($function, [$this, 'dump'], [ - 'is_safe' => ['html'], - 'needs_environment' => TRUE, - 'needs_context' => TRUE, - 'is_variadic' => TRUE, - ]); - } - - foreach (['devel_message', 'dpm', 'dsm'] as $function) { - $functions[] = new \Twig_SimpleFunction($function, [$this, 'message'], [ - 'is_safe' => ['html'], - 'needs_environment' => TRUE, - 'needs_context' => TRUE, - 'is_variadic' => TRUE, - ]); - } - - foreach (['devel_breakpoint'] as $function) { - $functions[] = new \Twig_SimpleFunction($function, [$this, 'breakpoint'], [ - 'needs_environment' => TRUE, - 'needs_context' => TRUE, - 'is_variadic' => TRUE, - ]); - } - - return $functions; - } - - /** - * Provides debug function to Twig templates. - * - * Handles 0, 1, or multiple arguments. - * - * @param \Twig_Environment $env - * The twig environment instance. - * @param array $context - * An array of parameters passed to the template. - * @param array $args - * An array of parameters passed the function. - * - * @return string - * String representation of the input variables. - * - * @see \Drupal\devel\DevelDumperManager::dump() - */ - public function dump(\Twig_Environment $env, array $context, array $args = []) { - if (!$env->isDebug()) { - return; - } - - ob_start(); - - // No arguments passed, display full Twig context. - if (empty($args)) { - $context_variables = $this->getContextVariables($context); - $this->dumper->dump($context_variables, 'Twig context'); - } - else { - foreach ($args as $variable) { - $this->dumper->dump($variable); - } - } - - return ob_get_clean(); - } - - /** - * Provides debug function to Twig templates. - * - * Handles 0, 1, or multiple arguments. - * - * @param \Twig_Environment $env - * The twig environment instance. - * @param array $context - * An array of parameters passed to the template. - * @param array $args - * An array of parameters passed the function. - * - * @return void - * - * @see \Drupal\devel\DevelDumperManager::message() - */ - public function message(\Twig_Environment $env, array $context, array $args = []) { - if (!$env->isDebug()) { - return; - } - - // No arguments passed, display full Twig context. - if (empty($args)) { - $context_variables = $this->getContextVariables($context); - $this->dumper->message($context_variables, 'Twig context'); - } - else { - foreach ($args as $variable) { - $this->dumper->message($variable); - } - } - - } - - /** - * Provides XDebug integration for Twig templates. - * - * To use this features simply put the following statement in the template - * of interest: - * - * @code - * {{ devel_breakpoint() }} - * @endcode - * - * When the template is evaluated is made a call to a dedicated method in - * devel twig debug extension in which is used xdebug_break(), that emits a - * breakpoint to the debug client (the debugger break on the specific line as - * if a normal file/line breakpoint was set on this line). - * In this way you'll be able to inspect any variables available in the - * template (environment, context, specific variables etc..) in your IDE. - * - * @param \Twig_Environment $env - * The twig environment instance. - * @param array $context - * An array of parameters passed to the template. - * @param array $args - * An array of parameters passed the function. - */ - public function breakpoint(\Twig_Environment $env, array $context, array $args = []) { - if (!$env->isDebug()) { - return; - } - - if (function_exists('xdebug_break')) { - xdebug_break(); - } - } - - /** - * Filters the Twig context variable. - * - * @param array $context - * The Twig context. - * - * @return array - * An array Twig context variables. - */ - protected function getContextVariables(array $context) { - $context_variables = []; - foreach ($context as $key => $value) { - if (!$value instanceof \Twig_Template) { - $context_variables[$key] = $value; - } - } - return $context_variables; - } - -} diff --git a/modules/devel/tests/modules/devel_dumper_test/css/devel_dumper_test.css b/modules/devel/tests/modules/devel_dumper_test/css/devel_dumper_test.css deleted file mode 100644 index e69de29..0000000 diff --git a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.info.yml b/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.info.yml deleted file mode 100644 index 265aeb3..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.info.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: 'Devel dumper test module' -type: module -description: 'Test pluggable dumpers.' -package: Testing -# version: VERSION -# core: 8.x - -# Information added by Drupal.org packaging script on 2017-10-05 -version: '8.x-1.2' -core: '8.x' -project: 'devel' -datestamp: 1507197848 diff --git a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.libraries.yml b/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.libraries.yml deleted file mode 100644 index 8e8c2ad..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.libraries.yml +++ /dev/null @@ -1,7 +0,0 @@ -devel_dumper_test: - version: 0 - css: - theme: - css/devel_dumper_test.css: {} - js: - js/devel_dumper_test.js: {} diff --git a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.routing.yml b/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.routing.yml deleted file mode 100644 index 650b337..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/devel_dumper_test.routing.yml +++ /dev/null @@ -1,39 +0,0 @@ -devel_dumper_test.dump: - path: '/devel_dumper_test/dump' - defaults: - _controller: '\Drupal\devel_dumper_test\Controller\DumperTestController::dump' - _title: 'Devel Dumper Test' - requirements: - _permission: 'access devel information' - -devel_dumper_test.message: - path: '/devel_dumper_test/message' - defaults: - _controller: '\Drupal\devel_dumper_test\Controller\DumperTestController::message' - _title: 'Devel Dumper Test' - requirements: - _permission: 'access devel information' - -devel_dumper_test.export: - path: '/devel_dumper_test/export' - defaults: - _controller: '\Drupal\devel_dumper_test\Controller\DumperTestController::export' - _title: 'Devel Dumper Test' - requirements: - _permission: 'access devel information' - -devel_dumper_test.export_renderable: - path: '/devel_dumper_test/export_renderable' - defaults: - _controller: '\Drupal\devel_dumper_test\Controller\DumperTestController::exportRenderable' - _title: 'Devel Dumper Test' - requirements: - _permission: 'access devel information' - -devel_dumper_test.debug: - path: '/devel_dumper_test/debug' - defaults: - _controller: '\Drupal\devel_dumper_test\Controller\DumperTestController::debug' - _title: 'Devel Dumper Test' - requirements: - _access: 'TRUE' diff --git a/modules/devel/tests/modules/devel_dumper_test/js/devel_dumper_test.js b/modules/devel/tests/modules/devel_dumper_test/js/devel_dumper_test.js deleted file mode 100644 index e69de29..0000000 diff --git a/modules/devel/tests/modules/devel_dumper_test/src/Controller/DumperTestController.php b/modules/devel/tests/modules/devel_dumper_test/src/Controller/DumperTestController.php deleted file mode 100644 index 2a78e6e..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/src/Controller/DumperTestController.php +++ /dev/null @@ -1,89 +0,0 @@ -dumper = $devel_dumper_manager; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('devel.dumper') - ); - } - - /** - * @return array - */ - public function dump() { - $this->dumper->dump('Test output'); - - return [ - '#markup' => 'test', - ]; - } - - /** - * @return array - */ - public function message() { - $this->dumper->message('Test output'); - - return [ - '#markup' => 'test', - ]; - } - - /** - * @return array - */ - public function debug() { - $this->dumper->debug('Test output'); - - return [ - '#markup' => 'test', - ]; - } - - /** - * @return array - */ - public function export() { - return [ - '#markup' => $this->dumper->export('Test output'), - ]; - } - - /** - * @return array - */ - public function exportRenderable() { - return $this->dumper->exportAsRenderable('Test output'); - } - -} diff --git a/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/AvailableTestDumper.php b/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/AvailableTestDumper.php deleted file mode 100644 index b15f567..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/AvailableTestDumper.php +++ /dev/null @@ -1,60 +0,0 @@ -' . 'AvailableTestDumper::dump() ' . $input . ''; - echo $input; - } - - /** - * {@inheritdoc} - */ - public function export($input, $name = NULL) { - // Add a predetermined string to $input to check if this dumper has been - // selected successfully. - $input = '
' . 'AvailableTestDumper::export() ' . $input . ''; - return $this->setSafeMarkup($input); - } - - /** - * {@inheritdoc} - */ - public function exportAsRenderable($input, $name = NULL) { - // Add a predetermined string to $input to check if this dumper has been - // selected successfully. - $input = '
' . 'AvailableTestDumper::exportAsRenderable() ' . $input . ''; - - return [ - '#attached' => [ - 'library' => ['devel_dumper_test/devel_dumper_test'] - ], - '#markup' => $this->setSafeMarkup($input), - ]; - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return TRUE; - } -} diff --git a/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/NotAvailableTestDumper.php b/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/NotAvailableTestDumper.php deleted file mode 100644 index 2b0d886..0000000 --- a/modules/devel/tests/modules/devel_dumper_test/src/Plugin/Devel/Dumper/NotAvailableTestDumper.php +++ /dev/null @@ -1,41 +0,0 @@ -' . $input . ''; - echo $input; - } - - /** - * {@inheritdoc} - */ - public function export($input, $name = NULL) { - $input = '
' . $input . ''; - return $this->setSafeMarkup($input); - } - - /** - * {@inheritdoc} - */ - public static function checkRequirements() { - return FALSE; - } - -} diff --git a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.info.yml b/modules/devel/tests/modules/devel_entity_test/devel_entity_test.info.yml deleted file mode 100644 index 4b01554..0000000 --- a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.info.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: 'Devel entity test module' -type: module -description: 'Provides entity types for Devel tests.' -package: Testing -# version: VERSION -# core: 8.x -dependencies: - - field - - text - - entity_test - -# Information added by Drupal.org packaging script on 2017-10-05 -version: '8.x-1.2' -core: '8.x' -project: 'devel' -datestamp: 1507197848 diff --git a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.links.task.yml b/modules/devel/tests/modules/devel_entity_test/devel_entity_test.links.task.yml deleted file mode 100644 index 052baa9..0000000 --- a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.links.task.yml +++ /dev/null @@ -1,2 +0,0 @@ -devel_entity_test.local_tasks: - deriver: 'Drupal\devel_entity_test\Plugin\Derivative\DevelEntityTestLocalTasks' diff --git a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.module b/modules/devel/tests/modules/devel_entity_test/devel_entity_test.module deleted file mode 100644 index 4be887b..0000000 --- a/modules/devel/tests/modules/devel_entity_test/devel_entity_test.module +++ /dev/null @@ -1,29 +0,0 @@ -getDefinitions(); - foreach ($entity_info as $entity_type => $info) { - if ($entity_info[$entity_type]->getProvider() == 'devel_entity_test_canonical' && !isset($view_modes[$entity_type])) { - $view_modes[$entity_type] = array( - 'full' => array( - 'label' => t('Full object'), - 'status' => TRUE, - 'cache' => TRUE, - ), - 'teaser' => array( - 'label' => t('Teaser'), - 'status' => TRUE, - 'cache' => TRUE, - ), - ); - } - } -} diff --git a/modules/devel/tests/modules/devel_entity_test/src/Entity/DevelEntityTestCanonical.php b/modules/devel/tests/modules/devel_entity_test/src/Entity/DevelEntityTestCanonical.php deleted file mode 100644 index e7ed04f..0000000 --- a/modules/devel/tests/modules/devel_entity_test/src/Entity/DevelEntityTestCanonical.php +++ /dev/null @@ -1,44 +0,0 @@ -derivatives = array(); - - $this->derivatives['devel_entity_test_canonical.canonical'] = array(); - $this->derivatives['devel_entity_test_canonical.canonical']['base_route'] = "entity.devel_entity_test_canonical.canonical"; - $this->derivatives['devel_entity_test_canonical.canonical']['route_name'] = "entity.devel_entity_test_canonical.canonical"; - $this->derivatives['devel_entity_test_canonical.canonical']['title'] = 'View'; - - $this->derivatives['devel_entity_test_edit.edit'] = array(); - $this->derivatives['devel_entity_test_edit.edit']['base_route'] = "entity.devel_entity_test_edit.edit_form"; - $this->derivatives['devel_entity_test_edit.edit']['route_name'] = "entity.devel_entity_test_edit.edit_form"; - $this->derivatives['devel_entity_test_edit.edit']['title'] = 'Edit'; - - return parent::getDerivativeDefinitions($base_plugin_definition); - } - -} diff --git a/modules/devel/tests/modules/devel_test/devel_test.info.yml b/modules/devel/tests/modules/devel_test/devel_test.info.yml deleted file mode 100644 index 191c825..0000000 --- a/modules/devel/tests/modules/devel_test/devel_test.info.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: 'Devel test module' -type: module -description: 'Support module for Devel testing.' -package: Testing -# version: VERSION -# core: 8.x - -# Information added by Drupal.org packaging script on 2017-10-05 -version: '8.x-1.2' -core: '8.x' -project: 'devel' -datestamp: 1507197848 diff --git a/modules/devel/tests/modules/devel_test/devel_test.module b/modules/devel/tests/modules/devel_test/devel_test.module deleted file mode 100644 index e94fb71..0000000 --- a/modules/devel/tests/modules/devel_test/devel_test.module +++ /dev/null @@ -1,20 +0,0 @@ - $this->t('Simple page'), - ]; - } - -} diff --git a/modules/devel/tests/modules/devel_test/src/Routing/TestRouteSubscriber.php b/modules/devel/tests/modules/devel_test/src/Routing/TestRouteSubscriber.php deleted file mode 100644 index 1bf9332..0000000 --- a/modules/devel/tests/modules/devel_test/src/Routing/TestRouteSubscriber.php +++ /dev/null @@ -1,20 +0,0 @@ -set('devel_test_route_rebuild','Router rebuild fired'); - } - -} diff --git a/modules/devel/tests/src/Functional/DevelContainerInfoTest.php b/modules/devel/tests/src/Functional/DevelContainerInfoTest.php deleted file mode 100644 index c47d773..0000000 --- a/modules/devel/tests/src/Functional/DevelContainerInfoTest.php +++ /dev/null @@ -1,261 +0,0 @@ -drupalPlaceBlock('local_tasks_block'); - $this->drupalPlaceBlock('page_title_block'); - - $this->develUser = $this->drupalCreateUser(['access devel information']); - $this->drupalLogin($this->develUser); - } - - /** - * Tests container info menu link. - */ - public function testContainerInfoMenuLink() { - $this->drupalPlaceBlock('system_menu_block:devel'); - // Ensures that the events info link is present on the devel menu and that - // it points to the correct page. - $this->drupalGet(''); - $this->clickLink('Container Info'); - $this->assertSession()->statusCodeEquals(200); - $this->assertSession()->addressEquals('/devel/container/service'); - $this->assertSession()->pageTextContains('Container services'); - } - - /** - * Tests service list page. - */ - public function testServiceList() { - $this->drupalGet('/devel/container/service'); - $this->assertSession()->statusCodeEquals(200); - $this->assertSession()->pageTextContains('Container services'); - $this->assertContainerInfoLocalTasks(); - - $page = $this->getSession()->getPage(); - - // Ensures that the services table is found. - $table = $page->find('css', 'table.devel-service-list'); - $this->assertNotNull($table); - - // Ensures that the expected table headers are found. - /** @var $headers \Behat\Mink\Element\NodeElement[] */ - $headers = $table->findAll('css', 'thead th'); - $this->assertEquals(4, count($headers)); - - $expected_headers = ['ID', 'Class', 'Alias', 'Operations']; - $actual_headers = array_map(function ($element) { - return $element->getText(); - }, $headers); - $this->assertSame($expected_headers, $actual_headers); - - // Ensures that all the serivices are listed in the table. - $cached_definition = \Drupal::service('kernel')->getCachedContainerDefinition(); - $this->assertNotNull($cached_definition); - $rows = $table->findAll('css', 'tbody tr'); - $this->assertEquals(count($cached_definition['services']), count($rows)); - - // Tests the presence of some (arbitrarily chosen) services in the table. - $expected_services = [ - 'config.factory' => [ - 'class' => 'Drupal\Core\Config\ConfigFactory', - 'alias' => '', - ], - 'devel.route_subscriber' => [ - 'class' => 'Drupal\devel\Routing\RouteSubscriber', - 'alias' => '', - ], - 'plugin.manager.element_info' => [ - 'class' => 'Drupal\Core\Render\ElementInfoManager', - 'alias' => 'element_info', - ], - ]; - - foreach ($expected_services as $service_id => $expected) { - $row = $table->find('css', sprintf('tbody tr:contains("%s")', $service_id)); - $this->assertNotNull($row); - - /** @var $cells \Behat\Mink\Element\NodeElement[] */ - $cells = $row->findAll('css', 'td'); - $this->assertEquals(4, count($cells)); - - $cell_service_id = $cells[0]; - $this->assertEquals($service_id, $cell_service_id->getText()); - $this->assertTrue($cell_service_id->hasClass('table-filter-text-source')); - - $cell_class = $cells[1]; - $this->assertEquals($expected['class'], $cell_class->getText()); - $this->assertTrue($cell_class->hasClass('table-filter-text-source')); - - $cell_alias = $cells[2]; - $this->assertEquals($expected['alias'], $cell_alias->getText()); - $this->assertTrue($cell_class->hasClass('table-filter-text-source')); - - $cell_operations = $cells[3]; - $actual_href = $cell_operations->findLink('Devel')->getAttribute('href'); - $expected_href = Url::fromRoute('devel.container_info.service.detail', ['service_id' => $service_id])->toString(); - $this->assertEquals($expected_href, $actual_href); - } - - // Ensures that the page is accessible ony to users with the adequate - // permissions. - $this->drupalLogout(); - $this->drupalGet('devel/container/service'); - $this->assertSession()->statusCodeEquals(403); - } - - /** - * Tests service detail page. - */ - public function testServiceDetail() { - $service_id = 'devel.dumper'; - - // Ensures that the page works as expected. - $this->drupalGet("/devel/container/service/$service_id"); - $this->assertSession()->statusCodeEquals(200); - $this->assertSession()->pageTextContains("Service $service_id detail"); - - // Ensures that the page returns a 404 error if the requested service is - // not defined. - $this->drupalGet('/devel/container/service/not.exists'); - $this->assertSession()->statusCodeEquals(404); - - // Ensures that the page is accessible ony to users with the adequate - // permissions. - $this->drupalLogout(); - $this->drupalGet("devel/container/service/$service_id"); - $this->assertSession()->statusCodeEquals(403); - } - - /** - * Tests parameter list page. - */ - public function testParameterList() { - // Ensures that the page works as expected. - $this->drupalGet('/devel/container/parameter'); - $this->assertSession()->statusCodeEquals(200); - $this->assertSession()->pageTextContains('Container parameters'); - $this->assertContainerInfoLocalTasks(); - - $page = $this->getSession()->getPage(); - - // Ensures that the parameters table is found. - $table = $page->find('css', 'table.devel-parameter-list'); - $this->assertNotNull($table); - - // Ensures that the expected table headers are found. - /** @var $headers \Behat\Mink\Element\NodeElement[] */ - $headers = $table->findAll('css', 'thead th'); - $this->assertEquals(2, count($headers)); - - $expected_headers = ['Name', 'Operations']; - $actual_headers = array_map(function ($element) { - return $element->getText(); - }, $headers); - $this->assertSame($expected_headers, $actual_headers); - - // Ensures that all the parameters are listed in the table. - $cached_definition = \Drupal::service('kernel')->getCachedContainerDefinition(); - $this->assertNotNull($cached_definition); - $rows = $table->findAll('css', 'tbody tr'); - $this->assertEquals(count($cached_definition['parameters']), count($rows)); - - // Tests the presence of some parameters in the table. - $expected_parameters = [ - 'container.modules', - 'cache_bins', - 'factory.keyvalue', - 'twig.config', - ]; - - foreach ($expected_parameters as $parameter_name) { - $row = $table->find('css', sprintf('tbody tr:contains("%s")', $parameter_name)); - $this->assertNotNull($row); - - /** @var $cells \Behat\Mink\Element\NodeElement[] */ - $cells = $row->findAll('css', 'td'); - $this->assertEquals(2, count($cells)); - - $cell_parameter_name = $cells[0]; - $this->assertEquals($parameter_name, $cell_parameter_name->getText()); - $this->assertTrue($cell_parameter_name->hasClass('table-filter-text-source')); - - $cell_operations = $cells[1]; - $actual_href = $cell_operations->findLink('Devel')->getAttribute('href'); - $expected_href = Url::fromRoute('devel.container_info.parameter.detail', ['parameter_name' => $parameter_name])->toString(); - $this->assertEquals($expected_href, $actual_href); - } - - // Ensures that the page is accessible ony to users with the adequate - // permissions. - $this->drupalLogout(); - $this->drupalGet('devel/container/service'); - $this->assertSession()->statusCodeEquals(403); - } - - /** - * Tests parameter detail page. - */ - public function testParameterDetail() { - $parameter_name = 'cache_bins'; - - // Ensures that the page works as expected. - $this->drupalGet("/devel/container/parameter/$parameter_name"); - $this->assertSession()->statusCodeEquals(200); - $this->assertSession()->pageTextContains("Parameter $parameter_name value"); - - // Ensures that the page returns a 404 error if the requested parameter is - // not defined. - $this->drupalGet('/devel/container/parameter/not_exists'); - $this->assertSession()->statusCodeEquals(404); - - // Ensures that the page is accessible ony to users with the adequate - // permissions. - $this->drupalLogout(); - $this->drupalGet("devel/container/service/$parameter_name"); - $this->assertSession()->statusCodeEquals(403); - } - - /** - * Asserts that container info local tasks are present. - */ - protected function assertContainerInfoLocalTasks() { - $expected_local_tasks = [ - ['devel.container_info.service', []], - ['devel.container_info.parameter', []], - ]; - - $this->assertLocalTasks($expected_local_tasks); - } - -} diff --git a/modules/devel/tests/src/Functional/DevelControllerTest.php b/modules/devel/tests/src/Functional/DevelControllerTest.php deleted file mode 100644 index 0fc375a..0000000 --- a/modules/devel/tests/src/Functional/DevelControllerTest.php +++ /dev/null @@ -1,122 +0,0 @@ -randomMachineName(); - $data = ['type' => 'entity_test', 'name' => $random_label]; - $this->entity = entity_create('entity_test', $data); - $this->entity->save(); - - // Create a test entity with only canonical route. - $random_label = $this->randomMachineName(); - $data = ['type' => 'devel_entity_test_canonical', 'name' => $random_label]; - $this->entity_canonical = entity_create('devel_entity_test_canonical', $data); - $this->entity_canonical->save(); - - // Create a test entity with only edit route. - $random_label = $this->randomMachineName(); - $data = ['type' => 'devel_entity_test_edit', 'name' => $random_label]; - $this->entity_edit = entity_create('devel_entity_test_edit', $data); - $this->entity_edit->save(); - - // Create a test entity with no routes. - $random_label = $this->randomMachineName(); - $data = ['type' => 'devel_entity_test_no_links', 'name' => $random_label]; - $this->entity_no_links = entity_create('devel_entity_test_no_links', $data); - $this->entity_no_links->save(); - - $this->drupalPlaceBlock('local_tasks_block'); - - $web_user = $this->drupalCreateUser([ - 'view test entity', - 'administer entity_test content', - 'access devel information', - ]); - $this->drupalLogin($web_user); - } - - function testRouteGeneration() { - // Test Devel load and render routes for entities with both route - // definitions. - $this->drupalGet('entity_test/' . $this->entity->id()); - $this->assertText('Devel', 'Devel tab is present'); - $this->drupalGet('devel/entity_test/' . $this->entity->id()); - $this->assertResponse(200); - $this->assertText('Definition', 'Devel definition tab is present'); - $this->assertText('Load', 'Devel load tab is present'); - $this->assertText('Render', 'Devel load tab is present'); - $this->assertLinkByHref('devel/entity_test/' . $this->entity->id() . '/render'); - $this->drupalGet('devel/entity_test/' . $this->entity->id() . '/render'); - $this->assertResponse(200); - $this->assertLinkByHref('devel/entity_test/' . $this->entity->id() . '/definition'); - $this->drupalGet('devel/entity_test/' . $this->entity->id() . '/definition'); - $this->assertResponse(200); - - // Test Devel load and render routes for entities with only canonical route - // definitions. - $this->drupalGet('devel_entity_test_canonical/' . $this->entity_canonical->id()); - $this->assertText('Devel', 'Devel tab is present'); - //TODO this fail since assertNoLinkByHref search by partial value. - //$this->assertNoLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id()); - $this->assertLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/render'); - $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id()); - $this->assertResponse(404); - $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/render'); - $this->assertResponse(200); - $this->assertLinkByHref('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/definition'); - $this->drupalGet('devel/devel_entity_test_canonical/' . $this->entity_canonical->id() . '/definition'); - $this->assertResponse(200); - - // Test Devel load and render routes for entities with only edit route - // definitions. - $this->drupalGet('devel_entity_test_edit/manage/' . $this->entity_edit->id()); - $this->assertText('Devel', 'Devel tab is present'); - $this->assertLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id()); - $this->assertNoLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/render'); - $this->assertNoLinkByHref('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/definition'); - $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id()); - $this->assertResponse(200); - $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/render'); - $this->assertResponse(404); - $this->drupalGet('devel/devel_entity_test_edit/' . $this->entity_edit->id() . '/definition'); - $this->assertResponse(200); - - // Test Devel load and render routes for entities with no route - // definitions. - $this->drupalGet('devel_entity_test_no_links/' . $this->entity_edit->id()); - $this->assertNoText('Devel', 'Devel tab is not present'); - $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id()); - $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/render'); - $this->assertNoLinkByHref('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/definition'); - $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id()); - $this->assertResponse(404); - $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/render'); - $this->assertResponse(404); - $this->drupalGet('devel/devel_entity_test_no_links/' . $this->entity_no_links->id() . '/definition'); - $this->assertResponse(404); - } - -} diff --git a/modules/devel/tests/src/Functional/DevelDumperTest.php b/modules/devel/tests/src/Functional/DevelDumperTest.php deleted file mode 100644 index a4ef9b4..0000000 --- a/modules/devel/tests/src/Functional/DevelDumperTest.php +++ /dev/null @@ -1,165 +0,0 @@ -drupalCreateUser(['administer site configuration', 'access devel information']); - $this->drupalLogin($admin_user); - } - - /** - * Test dumpers configuration page. - */ - public function testDumpersConfiguration() { - $this->drupalGet('admin/config/development/devel'); - - // Ensures that the dumper input is present on the config page. - $this->assertSession()->fieldExists('dumper'); - - // Ensures that the 'default' dumper is enabled by default. - $this->assertSession()->checkboxChecked('edit-dumper-default'); - - // Ensures that all dumpers declared by devel are present on the config page - // and that only the available dumpers are selectable. - $dumpers = [ - 'default', - 'drupal_variable', - 'firephp', - 'chromephp', - 'var_dumper', - ]; - $available_dumpers = ['default', 'drupal_variable']; - - foreach ($dumpers as $dumper) { - $this->assertFieldByXPath('//input[@type="radio" and @name="dumper"]', $dumper); - if (in_array($dumper, $available_dumpers)) { - $this->assertFieldByXPath('//input[@name="dumper" and not(@disabled="disabled")]', $dumper); - } - else { - $this->assertFieldByXPath('//input[@name="dumper" and @disabled="disabled"]', $dumper); - } - } - - // Ensures that dumper plugins declared by other modules are present on the - // config page and that only the available dumpers are selectable. - $this->assertFieldByXPath('//input[@name="dumper"]', 'available_test_dumper'); - $this->assertSession()->pageTextContains('Available test dumper.'); - $this->assertSession()->pageTextContains('Drupal dumper for testing purposes (available).'); - $this->assertFieldByXPath('//input[@name="dumper" and not(@disabled="disabled")]', 'available_test_dumper', 'Available dumper input not is disabled.'); - - $this->assertFieldByXPath('//input[@name="dumper"]', 'not_available_test_dumper'); - $this->assertSession()->pageTextContains('Not available test dumper.'); - $this->assertSession()->pageTextContains('Drupal dumper for testing purposes (not available).Not available. You may need to install external dependencies for use this plugin.'); - $this->assertFieldByXPath('//input[@name="dumper" and @disabled="disabled"]', 'not_available_test_dumper', 'Non available dumper input is disabled.'); - - // Ensures that saving of the dumpers configuration works as expected. - $edit = [ - 'dumper' => 'drupal_variable', - ]; - $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); - $this->assertSession()->pageTextContains(t('The configuration options have been saved.')); - - $config = \Drupal::config('devel.settings')->get('devel_dumper'); - $this->assertEquals('drupal_variable', $config, 'The configuration options have been properly saved'); - - // Ensure that if the chosen dumper is not available (e.g. the module that - // provide it is uninstalled) the 'default' dumper appears selected in the - // config page. - \Drupal::service('module_installer')->install(['kint']); - - $this->drupalGet('admin/config/development/devel'); - $this->assertFieldByXPath('//input[@name="dumper"]', 'kint'); - - $edit = [ - 'dumper' => 'kint', - ]; - $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); - $this->assertSession()->pageTextContains(t('The configuration options have been saved.')); - - $config = \Drupal::config('devel.settings')->get('devel_dumper'); - $this->assertEquals('kint', $config, 'The configuration options have been properly saved'); - - \Drupal::service('module_installer')->uninstall(['kint']); - - $this->drupalGet('admin/config/development/devel'); - $this->assertNoFieldByXPath('//input[@name="dumper"]', 'kint'); - $this->assertSession()->checkboxChecked('edit-dumper-default'); - } - - /** - * Test variable is dumped in page. - */ - function testDumpersOutput() { - $edit = [ - 'dumper' => 'available_test_dumper', - ]; - $this->drupalPostForm('admin/config/development/devel', $edit, t('Save configuration')); - $this->assertSession()->pageTextContains(t('The configuration options have been saved.')); - - $this->drupalGet('devel_dumper_test/dump'); - $elements = $this->xpath('//body/pre[contains(text(), :message)]', [':message' => 'AvailableTestDumper::dump() Test output']); - $this->assertTrue(!empty($elements), 'Dumped message is present.'); - - $this->drupalGet('devel_dumper_test/message'); - $elements = $this->xpath('//div[contains(@class, "messages")]/pre[contains(text(), :message)]', [':message' => 'AvailableTestDumper::export() Test output']); - $this->assertTrue(!empty($elements), 'Dumped message is present.'); - - $this->drupalGet('devel_dumper_test/export'); - $elements = $this->xpath('//div[@class="layout-content"]//pre[contains(text(), :message)]', [':message' => 'AvailableTestDumper::export() Test output']); - $this->assertTrue(!empty($elements), 'Dumped message is present.'); - - $this->drupalGet('devel_dumper_test/export_renderable'); - $elements = $this->xpath('//div[@class="layout-content"]//pre[contains(text(), :message)]', [':message' => 'AvailableTestDumper::exportAsRenderable() Test output']); - $this->assertTrue(!empty($elements), 'Dumped message is present.'); - // Ensures that plugins can add libraries to the page when the - // ::exportAsRenderable() method is used. - $this->assertSession()->responseContains('devel_dumper_test/css/devel_dumper_test.css'); - $this->assertSession()->responseContains('devel_dumper_test/js/devel_dumper_test.js'); - - $debug_filename = file_directory_temp() . '/drupal_debug.txt'; - - $this->drupalGet('devel_dumper_test/debug'); - $file_content = file_get_contents($debug_filename); - $expected = <<