├── .gitignore ├── tests ├── test-microformats.php └── bootstrap.php ├── .editorconfig ├── phpunit.xml.dist ├── .svnignore ├── includes ├── class-uf2-author.php ├── class-uf2-media.php ├── class-uf2-comment.php ├── class-uf2-post.php ├── genesis.php └── class-uf2-settings.php ├── phpcs.xml ├── docker-compose.yml ├── .github └── dependabot.yml ├── Gruntfile.js ├── package.json ├── composer.json ├── .travis.yml ├── readme.txt ├── README.md ├── wp-uf2.php ├── languages └── wp-uf2.pot ├── bin └── install-wp-tests.sh └── composer.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | vendor 3 | package-lock.json 4 | -------------------------------------------------------------------------------- /tests/test-microformats.php: -------------------------------------------------------------------------------- 1 | assertTrue( true ); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | trim_trailing_whitespace = true 9 | charset = utf-8 10 | indent_style = tab 11 | indent_size = 4 12 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | ./tests/ 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.svnignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .editorconfig 3 | .git 4 | .gitignore 5 | .travis.yml 6 | Gruntfile.js 7 | LINGUAS 8 | Makefile 9 | README.md 10 | _site 11 | bin 12 | composer.json 13 | composer.lock 14 | docker-compose.yml 15 | gulpfile.js 16 | package.json 17 | node_modules 18 | npm-debug.log 19 | phpcs.xml 20 | package.json 21 | phpunit.xml 22 | phpunit.xml.dist 23 | tests 24 | node_modules 25 | vendor 26 | -------------------------------------------------------------------------------- /includes/class-uf2-author.php: -------------------------------------------------------------------------------- 1 | $author"; 21 | } 22 | 23 | return $author; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /phpcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | A custom set of code standard rules to check for WordPress themes. 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | =5.6.0", 6 | "composer/installers": "~1.0" 7 | }, 8 | "extra": { 9 | "installer-name": "wp-uf2" 10 | }, 11 | "type": "wordpress-plugin", 12 | "license": "MIT", 13 | "authors": [ 14 | { 15 | "name": "Matthias Pfefferle", 16 | "homepage": "https://notiz.blog" 17 | }, 18 | { 19 | "name": "David Shanske", 20 | "homepage": "https://david.shanske.com" 21 | } 22 | ], 23 | "require-dev": { 24 | "phpunit/phpunit": "5.5.*" 25 | }, 26 | "scripts": { 27 | "test": [ 28 | "composer install", 29 | "bin/install-wp-tests.sh wordpress wordpress wordpress", 30 | "vendor/bin/phpunit" 31 | ] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /includes/class-uf2-media.php: -------------------------------------------------------------------------------- 1 | $comment"; 37 | } 38 | 39 | return $comment; 40 | } 41 | 42 | /** 43 | * Adds microformats v2 support to the comment_author_link. 44 | */ 45 | public static function get_comment_author_link( $return, $author, $comment_ID ) { 46 | $comment = get_comment( $comment_ID ); 47 | $url = get_comment_author_url( $comment ); 48 | 49 | // Adds a class for microformats v2 50 | if ( empty( $url ) || 'http://' === $url ) { 51 | return $author; 52 | } else { 53 | return "$author"; 54 | } 55 | return $return; 56 | } 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Microformats 2 === 2 | Contributors: pfefferle, dshanske, indieweb 3 | Tags: microformats, indieweb 4 | Requires at least: 4.7 5 | Tested up to: 4.9.5 6 | Stable tag: 1.2.0 7 | 8 | Enhances your WordPress theme with Microformats 2 classes. 9 | 10 | == Description == 11 | 12 | It is only a very basic implementation, because not every element is accessible through actions or filters. It is better to use a theme that supports [Microformats 2](http://microformats.org/wiki/microformats2) fully. 13 | 14 | == Frequently Asked Questions == 15 | 16 | = What are Microformats 2? = 17 | 18 | Microformats are a simple way to markup structured information in HTML. WordPress incorporates some classic Microformats. Microformats 2 supersedes class microformats. 19 | 20 | = What does this plugin actually do? = 21 | 22 | For all themes that do not declare support for Microformats 2, this plugin attempts to add Microformats to areas that are accessible through filters and actions. 23 | 24 | = What can themes do to support this plugin or Microformats 2? = 25 | 26 | The classes in this theme can optionally be called by a theme. To avoid conflict with this plugin, themes should not have CSS style any classic Microformats or 27 | Microformats 2 classes. Most commonly, the classic Microformats class hentry. 28 | 29 | == Changelog == 30 | 31 | Project actively developed on Github at [indieweb/wordpress-uf2](https://github.com/indieweb/wordpress-uf2). Please file support issues there. 32 | 33 | = 1.2.0 = 34 | 35 | * Add Settings Page to turn off Author and Media Enhancements 36 | * Fix Genesis hooks 37 | * Deactivate comment enhancements if Semantic Linkbacks is enabled as it does the same sort of enhancements but better 38 | 39 | = 1.1.0 = 40 | 41 | * Better handling for unattached images (props @kraftbj) 42 | * Fixed proper `current_theme_supports` handling 43 | 44 | = 1.0.1 = 45 | 46 | * WP.org version 47 | 48 | = 1.0.0 = 49 | 50 | * Initial Stable Release 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Microformats 2 # 2 | **Contributors:** pfefferle, dshanske, indieweb 3 | **Tags:** microformats, indieweb 4 | **Requires at least:** 4.7 5 | **Tested up to:** 4.9.5 6 | **Stable tag:** 1.2.0 7 | 8 | Enhances your WordPress theme with Microformats 2 classes. 9 | 10 | ## Description ## 11 | 12 | It is only a very basic implementation, because not every element is accessible through actions or filters. It is better to use a theme that supports [Microformats 2](http://microformats.org/wiki/microformats2) fully. 13 | 14 | ## Frequently Asked Questions ## 15 | 16 | ### What are Microformats 2? ### 17 | 18 | Microformats are a simple way to markup structured information in HTML. WordPress incorporates some classic Microformats. Microformats 2 supersedes class microformats. 19 | 20 | ### What does this plugin actually do? ### 21 | 22 | For all themes that do not declare support for Microformats 2, this plugin attempts to add Microformats to areas that are accessible through filters and actions. 23 | 24 | ### What can themes do to support this plugin or Microformats 2? ### 25 | 26 | The classes in this theme can optionally be called by a theme. To avoid conflict with this plugin, themes should not have CSS style any classic Microformats or 27 | Microformats 2 classes. Most commonly, the classic Microformats class hentry. 28 | 29 | ## Changelog ## 30 | 31 | Project actively developed on Github at [indieweb/wordpress-uf2](https://github.com/indieweb/wordpress-uf2). Please file support issues there. 32 | 33 | ### 1.2.0 ### 34 | 35 | * Add Settings Page to turn off Author and Media Enhancements 36 | * Fix Genesis hooks 37 | * Deactivate comment enhancements if Semantic Linkbacks is enabled as it does the same sort of enhancements but better 38 | 39 | ### 1.1.0 ### 40 | 41 | * Better handling for unattached images (props @kraftbj) 42 | * Fixed proper `current_theme_supports` handling 43 | 44 | ### 1.0.1 ### 45 | 46 | * WP.org version 47 | 48 | ### 1.0.0 ### 49 | 50 | * Initial Stable Release 51 | -------------------------------------------------------------------------------- /wp-uf2.php: -------------------------------------------------------------------------------- 1 | \n" 13 | "Language-Team: LANGUAGE \n" 14 | "X-Generator: grunt-wp-i18n 0.5.4\n" 15 | 16 | #: includes/class-uf2-settings.php:17 17 | msgid "Microformats" 18 | msgstr "" 19 | 20 | #: includes/class-uf2-settings.php:18 21 | msgid "Microfomats" 22 | msgstr "" 23 | 24 | #: includes/class-uf2-settings.php:42 25 | msgid "Attempt to Markup Author" 26 | msgstr "" 27 | 28 | #: includes/class-uf2-settings.php:53 29 | msgid "Attempt to add Photo Property to Media" 30 | msgstr "" 31 | 32 | #: includes/class-uf2-settings.php:68 33 | msgid "General Settings" 34 | msgstr "" 35 | 36 | #: includes/class-uf2-settings.php:75 37 | msgid "Author" 38 | msgstr "" 39 | 40 | #: includes/class-uf2-settings.php:81 41 | msgid "Attempt to mark up author" 42 | msgstr "" 43 | 44 | #: includes/class-uf2-settings.php:87 45 | msgid "Media" 46 | msgstr "" 47 | 48 | #: includes/class-uf2-settings.php:93 49 | msgid "Attempt to add photo property to all images and avatars" 50 | msgstr "" 51 | 52 | #. Plugin Name of the plugin/theme 53 | msgid "Microformats 2" 54 | msgstr "" 55 | 56 | #: includes/class-uf2-settings.php:105 57 | msgid "" 58 | "The Microformats 2 plugin attempts to add microformats to WordPress themes " 59 | "using WordPress hooks and filters. This does not work as well as having " 60 | "microformats built into your theme.You can check how your page is marked up " 61 | "by visiting Indiewebify.me" 62 | msgstr "" 63 | 64 | #. Plugin URI of the plugin/theme 65 | msgid "https://github.com/indieweb/wordpress-uf2" 66 | msgstr "" 67 | 68 | #. Description of the plugin/theme 69 | msgid "Adds Microformats 2 support to your WordPress installation or theme" 70 | msgstr "" 71 | 72 | #. Author of the plugin/theme 73 | msgid "IndieWeb WordPress Outreach Club" 74 | msgstr "" 75 | 76 | #. Author URI of the plugin/theme 77 | msgid "https://indieweb.org/WordPress_Outreach_Club" 78 | msgstr "" -------------------------------------------------------------------------------- /includes/class-uf2-post.php: -------------------------------------------------------------------------------- 1 | $title"; 66 | } 67 | 68 | return $title; 69 | } 70 | 71 | /** 72 | * Adds microformats v2 support to the post. 73 | */ 74 | public static function the_post( $post ) { 75 | if ( ! is_admin() && 76 | ! ( function_exists( 'is_micropub_post' ) && is_micropub_post() ) ) { 77 | return "
\n$post\n
"; 78 | } 79 | 80 | return "\n" . $post . "\n"; 81 | } 82 | 83 | /** 84 | * Adds microformats v2 support to the excerpt. 85 | */ 86 | public static function the_excerpt( $post ) { 87 | if ( ! is_admin() ) { 88 | return "
$post
"; 89 | } 90 | 91 | return $post; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /bin/install-wp-tests.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ $# -lt 3 ]; then 4 | echo "usage: $0 [db-host] [wp-version]" 5 | exit 1 6 | fi 7 | 8 | DB_NAME=$1 9 | DB_USER=$2 10 | DB_PASS=$3 11 | DB_HOST=${4-localhost} 12 | WP_VERSION=${5-latest} 13 | 14 | WP_TESTS_DIR=${WP_TESTS_DIR-/tmp/wordpress-tests-lib} 15 | WP_CORE_DIR=${WP_CORE_DIR-/tmp/wordpress/} 16 | 17 | download() { 18 | if [ `which curl` ]; then 19 | curl -s "$1" > "$2"; 20 | elif [ `which wget` ]; then 21 | wget -nv -O "$2" "$1" 22 | fi 23 | } 24 | 25 | if [[ $WP_VERSION =~ [0-9]+\.[0-9]+(\.[0-9]+)? ]]; then 26 | WP_TESTS_TAG="tags/$WP_VERSION" 27 | elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then 28 | WP_TESTS_TAG="trunk" 29 | else 30 | # http serves a single offer, whereas https serves multiple. we only want one 31 | download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json 32 | grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json 33 | LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//') 34 | if [[ -z "$LATEST_VERSION" ]]; then 35 | echo "Latest WordPress version could not be found" 36 | exit 1 37 | fi 38 | WP_TESTS_TAG="tags/$LATEST_VERSION" 39 | fi 40 | 41 | set -ex 42 | 43 | install_wp() { 44 | 45 | if [ -d $WP_CORE_DIR ]; then 46 | return; 47 | fi 48 | 49 | mkdir -p $WP_CORE_DIR 50 | 51 | if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then 52 | mkdir -p /tmp/wordpress-nightly 53 | download https://wordpress.org/nightly-builds/wordpress-latest.zip /tmp/wordpress-nightly/wordpress-nightly.zip 54 | unzip -q /tmp/wordpress-nightly/wordpress-nightly.zip -d /tmp/wordpress-nightly/ 55 | mv /tmp/wordpress-nightly/wordpress/* $WP_CORE_DIR 56 | else 57 | if [ $WP_VERSION == 'latest' ]; then 58 | local ARCHIVE_NAME='latest' 59 | else 60 | local ARCHIVE_NAME="wordpress-$WP_VERSION" 61 | fi 62 | download https://wordpress.org/${ARCHIVE_NAME}.tar.gz /tmp/wordpress.tar.gz 63 | tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C $WP_CORE_DIR 64 | fi 65 | 66 | download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php 67 | } 68 | 69 | install_test_suite() { 70 | # portable in-place argument for both GNU sed and Mac OSX sed 71 | if [[ $(uname -s) == 'Darwin' ]]; then 72 | local ioption='-i .bak' 73 | else 74 | local ioption='-i' 75 | fi 76 | 77 | # set up testing suite if it doesn't yet exist 78 | if [ ! -d $WP_TESTS_DIR ]; then 79 | # set up testing suite 80 | mkdir -p $WP_TESTS_DIR 81 | svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes 82 | fi 83 | 84 | cd $WP_TESTS_DIR 85 | 86 | if [ ! -f wp-tests-config.php ]; then 87 | download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php 88 | sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR':" "$WP_TESTS_DIR"/wp-tests-config.php 89 | sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php 90 | sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php 91 | sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php 92 | sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php 93 | fi 94 | 95 | } 96 | 97 | install_db() { 98 | # parse DB_HOST for port or socket references 99 | local PARTS=(${DB_HOST//\:/ }) 100 | local DB_HOSTNAME=${PARTS[0]}; 101 | local DB_SOCK_OR_PORT=${PARTS[1]}; 102 | local EXTRA="" 103 | 104 | if ! [ -z $DB_HOSTNAME ] ; then 105 | if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then 106 | EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp" 107 | elif ! [ -z $DB_SOCK_OR_PORT ] ; then 108 | EXTRA=" --socket=$DB_SOCK_OR_PORT" 109 | elif ! [ -z $DB_HOSTNAME ] ; then 110 | EXTRA=" --host=$DB_HOSTNAME --protocol=tcp" 111 | fi 112 | fi 113 | 114 | # create database 115 | mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA 116 | } 117 | 118 | install_wp 119 | install_test_suite 120 | install_db 121 | -------------------------------------------------------------------------------- /includes/genesis.php: -------------------------------------------------------------------------------- 1 | '; 37 | } 38 | add_filter( 'genesis_entry_header', 'uf2_genesis_entry_permalink' ); 39 | 40 | /** 41 | * Adds microformats v2 support to the post title. 42 | */ 43 | function uf2_genesis_attr_entry_title( $attr ) { 44 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'p-name'; 45 | return $attr; 46 | } 47 | add_filter( 'genesis_attr_entry-title', 'uf2_genesis_attr_entry_title', 20 ); 48 | 49 | /** 50 | * Adds microformats v2 support to the post content. 51 | */ 52 | function uf2_genesis_attr_entry_content( $attr ) { 53 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'e-content'; 54 | return $attr; 55 | } 56 | add_filter( 'genesis_attr_entry-content', 'uf2_genesis_attr_entry_content', 20 ); 57 | 58 | /** 59 | * Adds microformats v2 support to the post date. 60 | */ 61 | function uf2_genesis_attr_entry_time( $attr ) { 62 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'dt-published'; 63 | return $attr; 64 | } 65 | add_filter( 'genesis_attr_entry-time', 'uf2_genesis_attr_entry_time', 20 ); 66 | 67 | /** 68 | * Adds microformats v2 support to the post author. 69 | */ 70 | function uf2_genesis_attr_entry_author( $attr ) { 71 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'p-author h-card'; 72 | return $attr; 73 | } 74 | add_filter( 'genesis_attr_entry-author', 'uf2_genesis_attr_entry_author', 20 ); 75 | 76 | /** 77 | * Adds microformats v2 support to the post author link. 78 | */ 79 | function uf2_genesis_attr_entry_author_link( $attr ) { 80 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'u-url'; 81 | return $attr; 82 | } 83 | add_filter( 'genesis_attr_entry-author-link', 'uf2_genesis_attr_entry_author_link', 20 ); 84 | 85 | /** 86 | * Adds microformats v2 support to the post author name. 87 | */ 88 | function uf2_genesis_attr_entry_author_name( $attr ) { 89 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'p-name'; 90 | return $attr; 91 | } 92 | add_filter( 'genesis_attr_entry-author-name', 'uf2_genesis_attr_entry_author_name', 20 ); 93 | 94 | /** 95 | * Adds microformat 2 classes to the array of comment classes. 96 | */ 97 | function uf2_genesis_attr_comment( $attr ) { 98 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'p-comment h-entry'; 99 | return $attr; 100 | } 101 | add_filter( 'genesis_attr_comment', 'uf2_genesis_attr_comment', 20 ); 102 | 103 | /** 104 | * Adds microformats v2 support to the comment author. 105 | */ 106 | function uf2_genesis_attr_comment_author( $attr ) { 107 | $attr['class'] .= ( $attr['class'] ? ' ' : '' ) . 'p-author h-card'; 108 | return $attr; 109 | } 110 | add_filter( 'genesis_attr_comment-author', 'uf2_genesis_attr_comment_author', 20 ); 111 | -------------------------------------------------------------------------------- /includes/class-uf2-settings.php: -------------------------------------------------------------------------------- 1 | 'boolean', 42 | 'description' => __( 'Attempt to Markup Author', 'wp-uf2' ), 43 | 'show_in_rest' => true, 44 | 'default' => 1, 45 | ) 46 | ); 47 | 48 | register_setting( 49 | $section, 50 | 'uf2_media', 51 | array( 52 | 'type' => 'boolean', 53 | 'description' => __( 'Attempt to add Photo Property to Media', 'wp-uf2' ), 54 | 'show_in_rest' => true, 55 | 'default' => 1, 56 | ) 57 | ); 58 | 59 | } 60 | 61 | public function admin_settings() { 62 | $page = 'uf2'; 63 | // Settings Section 64 | $section = 'uf2'; 65 | 66 | add_settings_section( 67 | $section, // ID used to identify this section and with which to register options 68 | __( 'General Settings', 'wp-uf2' ), // Title to be displayed on the administration page 69 | array( $this, 'uf2_options_callback' ), // Callback used to render the description of the section 70 | $page // Page on which to add this section of options 71 | ); 72 | 73 | add_settings_field( 74 | 'uf2_author', // ID used to identify the field throughout the theme 75 | __( 'Author', 'wp-uf2' ), // The label to the left of the option interface element 76 | array( $this, 'checkbox_callback' ), // The name of the function responsible for rendering the option interface 77 | $page, // The page on which this option will be displayed 78 | $section, // The name of the section to which this field belongs 79 | array( // The array of arguments to pass to the callback. In this case, just a description. 80 | 'name' => 'uf2_author', 81 | 'description' => __( 'Attempt to mark up author', 'wp-uf2' ), 82 | ) 83 | ); 84 | 85 | add_settings_field( 86 | 'uf2_media', // ID used to identify the field throughout the theme 87 | __( 'Media', 'wp-uf2' ), // The label to the left of the option interface element 88 | array( $this, 'checkbox_callback' ), // The name of the function responsible for rendering the option interface 89 | $page, // The page on which this option will be displayed 90 | $section, // The name of the section to which this field belongs 91 | array( // The array of arguments to pass to the callback. In this case, just a description. 92 | 'name' => 'uf2_media', 93 | 'description' => __( 'Attempt to add photo property to all images and avatars', 'wp-uf2' ), 94 | ) 95 | ); 96 | 97 | } 98 | 99 | public function uf2_options_callback() { 100 | } 101 | 102 | public function uf2_options() { 103 | ?> 104 |

105 |

Indiewebify.me', 'wp-uf2' ); ?>

106 | 107 |
108 |
109 | 110 | 111 | 112 | 113 |
114 | "; 124 | echo " '; 125 | 126 | if ( array_key_exists( 'description', $args ) ) { 127 | echo ''; 128 | } 129 | } 130 | 131 | } 132 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "fa709737bb9f53963413221563486ca2", 8 | "packages": [ 9 | { 10 | "name": "composer/installers", 11 | "version": "v1.12.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/composer/installers.git", 15 | "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19", 20 | "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "composer-plugin-api": "^1.0 || ^2.0" 25 | }, 26 | "replace": { 27 | "roundcube/plugin-installer": "*", 28 | "shama/baton": "*" 29 | }, 30 | "require-dev": { 31 | "composer/composer": "1.6.* || ^2.0", 32 | "composer/semver": "^1 || ^3", 33 | "phpstan/phpstan": "^0.12.55", 34 | "phpstan/phpstan-phpunit": "^0.12.16", 35 | "symfony/phpunit-bridge": "^4.2 || ^5", 36 | "symfony/process": "^2.3" 37 | }, 38 | "type": "composer-plugin", 39 | "extra": { 40 | "class": "Composer\\Installers\\Plugin", 41 | "branch-alias": { 42 | "dev-main": "1.x-dev" 43 | } 44 | }, 45 | "autoload": { 46 | "psr-4": { 47 | "Composer\\Installers\\": "src/Composer/Installers" 48 | } 49 | }, 50 | "notification-url": "https://packagist.org/downloads/", 51 | "license": [ 52 | "MIT" 53 | ], 54 | "authors": [ 55 | { 56 | "name": "Kyle Robinson Young", 57 | "email": "kyle@dontkry.com", 58 | "homepage": "https://github.com/shama" 59 | } 60 | ], 61 | "description": "A multi-framework Composer library installer", 62 | "homepage": "https://composer.github.io/installers/", 63 | "keywords": [ 64 | "Craft", 65 | "Dolibarr", 66 | "Eliasis", 67 | "Hurad", 68 | "ImageCMS", 69 | "Kanboard", 70 | "Lan Management System", 71 | "MODX Evo", 72 | "MantisBT", 73 | "Mautic", 74 | "Maya", 75 | "OXID", 76 | "Plentymarkets", 77 | "Porto", 78 | "RadPHP", 79 | "SMF", 80 | "Starbug", 81 | "Thelia", 82 | "Whmcs", 83 | "WolfCMS", 84 | "agl", 85 | "aimeos", 86 | "annotatecms", 87 | "attogram", 88 | "bitrix", 89 | "cakephp", 90 | "chef", 91 | "cockpit", 92 | "codeigniter", 93 | "concrete5", 94 | "croogo", 95 | "dokuwiki", 96 | "drupal", 97 | "eZ Platform", 98 | "elgg", 99 | "expressionengine", 100 | "fuelphp", 101 | "grav", 102 | "installer", 103 | "itop", 104 | "joomla", 105 | "known", 106 | "kohana", 107 | "laravel", 108 | "lavalite", 109 | "lithium", 110 | "magento", 111 | "majima", 112 | "mako", 113 | "mediawiki", 114 | "miaoxing", 115 | "modulework", 116 | "modx", 117 | "moodle", 118 | "osclass", 119 | "pantheon", 120 | "phpbb", 121 | "piwik", 122 | "ppi", 123 | "processwire", 124 | "puppet", 125 | "pxcms", 126 | "reindex", 127 | "roundcube", 128 | "shopware", 129 | "silverstripe", 130 | "sydes", 131 | "sylius", 132 | "symfony", 133 | "tastyigniter", 134 | "typo3", 135 | "wordpress", 136 | "yawik", 137 | "zend", 138 | "zikula" 139 | ], 140 | "support": { 141 | "issues": "https://github.com/composer/installers/issues", 142 | "source": "https://github.com/composer/installers/tree/v1.12.0" 143 | }, 144 | "funding": [ 145 | { 146 | "url": "https://packagist.com", 147 | "type": "custom" 148 | }, 149 | { 150 | "url": "https://github.com/composer", 151 | "type": "github" 152 | }, 153 | { 154 | "url": "https://tidelift.com/funding/github/packagist/composer/composer", 155 | "type": "tidelift" 156 | } 157 | ], 158 | "time": "2021-09-13T08:19:44+00:00" 159 | } 160 | ], 161 | "packages-dev": [ 162 | { 163 | "name": "doctrine/instantiator", 164 | "version": "1.0.5", 165 | "source": { 166 | "type": "git", 167 | "url": "https://github.com/doctrine/instantiator.git", 168 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 169 | }, 170 | "dist": { 171 | "type": "zip", 172 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 173 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 174 | "shasum": "" 175 | }, 176 | "require": { 177 | "php": ">=5.3,<8.0-DEV" 178 | }, 179 | "require-dev": { 180 | "athletic/athletic": "~0.1.8", 181 | "ext-pdo": "*", 182 | "ext-phar": "*", 183 | "phpunit/phpunit": "~4.0", 184 | "squizlabs/php_codesniffer": "~2.0" 185 | }, 186 | "type": "library", 187 | "extra": { 188 | "branch-alias": { 189 | "dev-master": "1.0.x-dev" 190 | } 191 | }, 192 | "autoload": { 193 | "psr-4": { 194 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 195 | } 196 | }, 197 | "notification-url": "https://packagist.org/downloads/", 198 | "license": [ 199 | "MIT" 200 | ], 201 | "authors": [ 202 | { 203 | "name": "Marco Pivetta", 204 | "email": "ocramius@gmail.com", 205 | "homepage": "http://ocramius.github.com/" 206 | } 207 | ], 208 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 209 | "homepage": "https://github.com/doctrine/instantiator", 210 | "keywords": [ 211 | "constructor", 212 | "instantiate" 213 | ], 214 | "time": "2015-06-14T21:17:01+00:00" 215 | }, 216 | { 217 | "name": "myclabs/deep-copy", 218 | "version": "1.6.1", 219 | "source": { 220 | "type": "git", 221 | "url": "https://github.com/myclabs/DeepCopy.git", 222 | "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102" 223 | }, 224 | "dist": { 225 | "type": "zip", 226 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8e6e04167378abf1ddb4d3522d8755c5fd90d102", 227 | "reference": "8e6e04167378abf1ddb4d3522d8755c5fd90d102", 228 | "shasum": "" 229 | }, 230 | "require": { 231 | "php": ">=5.4.0" 232 | }, 233 | "require-dev": { 234 | "doctrine/collections": "1.*", 235 | "phpunit/phpunit": "~4.1" 236 | }, 237 | "type": "library", 238 | "autoload": { 239 | "psr-4": { 240 | "DeepCopy\\": "src/DeepCopy/" 241 | } 242 | }, 243 | "notification-url": "https://packagist.org/downloads/", 244 | "license": [ 245 | "MIT" 246 | ], 247 | "description": "Create deep copies (clones) of your objects", 248 | "homepage": "https://github.com/myclabs/DeepCopy", 249 | "keywords": [ 250 | "clone", 251 | "copy", 252 | "duplicate", 253 | "object", 254 | "object graph" 255 | ], 256 | "time": "2017-04-12T18:52:22+00:00" 257 | }, 258 | { 259 | "name": "phpdocumentor/reflection-common", 260 | "version": "1.0", 261 | "source": { 262 | "type": "git", 263 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git", 264 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c" 265 | }, 266 | "dist": { 267 | "type": "zip", 268 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 269 | "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c", 270 | "shasum": "" 271 | }, 272 | "require": { 273 | "php": ">=5.5" 274 | }, 275 | "require-dev": { 276 | "phpunit/phpunit": "^4.6" 277 | }, 278 | "type": "library", 279 | "extra": { 280 | "branch-alias": { 281 | "dev-master": "1.0.x-dev" 282 | } 283 | }, 284 | "autoload": { 285 | "psr-4": { 286 | "phpDocumentor\\Reflection\\": [ 287 | "src" 288 | ] 289 | } 290 | }, 291 | "notification-url": "https://packagist.org/downloads/", 292 | "license": [ 293 | "MIT" 294 | ], 295 | "authors": [ 296 | { 297 | "name": "Jaap van Otterdijk", 298 | "email": "opensource@ijaap.nl" 299 | } 300 | ], 301 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure", 302 | "homepage": "http://www.phpdoc.org", 303 | "keywords": [ 304 | "FQSEN", 305 | "phpDocumentor", 306 | "phpdoc", 307 | "reflection", 308 | "static analysis" 309 | ], 310 | "time": "2015-12-27T11:43:31+00:00" 311 | }, 312 | { 313 | "name": "phpdocumentor/reflection-docblock", 314 | "version": "3.1.1", 315 | "source": { 316 | "type": "git", 317 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 318 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e" 319 | }, 320 | "dist": { 321 | "type": "zip", 322 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e", 323 | "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e", 324 | "shasum": "" 325 | }, 326 | "require": { 327 | "php": ">=5.5", 328 | "phpdocumentor/reflection-common": "^1.0@dev", 329 | "phpdocumentor/type-resolver": "^0.2.0", 330 | "webmozart/assert": "^1.0" 331 | }, 332 | "require-dev": { 333 | "mockery/mockery": "^0.9.4", 334 | "phpunit/phpunit": "^4.4" 335 | }, 336 | "type": "library", 337 | "autoload": { 338 | "psr-4": { 339 | "phpDocumentor\\Reflection\\": [ 340 | "src/" 341 | ] 342 | } 343 | }, 344 | "notification-url": "https://packagist.org/downloads/", 345 | "license": [ 346 | "MIT" 347 | ], 348 | "authors": [ 349 | { 350 | "name": "Mike van Riel", 351 | "email": "me@mikevanriel.com" 352 | } 353 | ], 354 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 355 | "time": "2016-09-30T07:12:33+00:00" 356 | }, 357 | { 358 | "name": "phpdocumentor/type-resolver", 359 | "version": "0.2.1", 360 | "source": { 361 | "type": "git", 362 | "url": "https://github.com/phpDocumentor/TypeResolver.git", 363 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb" 364 | }, 365 | "dist": { 366 | "type": "zip", 367 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 368 | "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb", 369 | "shasum": "" 370 | }, 371 | "require": { 372 | "php": ">=5.5", 373 | "phpdocumentor/reflection-common": "^1.0" 374 | }, 375 | "require-dev": { 376 | "mockery/mockery": "^0.9.4", 377 | "phpunit/phpunit": "^5.2||^4.8.24" 378 | }, 379 | "type": "library", 380 | "extra": { 381 | "branch-alias": { 382 | "dev-master": "1.0.x-dev" 383 | } 384 | }, 385 | "autoload": { 386 | "psr-4": { 387 | "phpDocumentor\\Reflection\\": [ 388 | "src/" 389 | ] 390 | } 391 | }, 392 | "notification-url": "https://packagist.org/downloads/", 393 | "license": [ 394 | "MIT" 395 | ], 396 | "authors": [ 397 | { 398 | "name": "Mike van Riel", 399 | "email": "me@mikevanriel.com" 400 | } 401 | ], 402 | "time": "2016-11-25T06:54:22+00:00" 403 | }, 404 | { 405 | "name": "phpspec/prophecy", 406 | "version": "v1.7.0", 407 | "source": { 408 | "type": "git", 409 | "url": "https://github.com/phpspec/prophecy.git", 410 | "reference": "93d39f1f7f9326d746203c7c056f300f7f126073" 411 | }, 412 | "dist": { 413 | "type": "zip", 414 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073", 415 | "reference": "93d39f1f7f9326d746203c7c056f300f7f126073", 416 | "shasum": "" 417 | }, 418 | "require": { 419 | "doctrine/instantiator": "^1.0.2", 420 | "php": "^5.3|^7.0", 421 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2", 422 | "sebastian/comparator": "^1.1|^2.0", 423 | "sebastian/recursion-context": "^1.0|^2.0|^3.0" 424 | }, 425 | "require-dev": { 426 | "phpspec/phpspec": "^2.5|^3.2", 427 | "phpunit/phpunit": "^4.8 || ^5.6.5" 428 | }, 429 | "type": "library", 430 | "extra": { 431 | "branch-alias": { 432 | "dev-master": "1.6.x-dev" 433 | } 434 | }, 435 | "autoload": { 436 | "psr-0": { 437 | "Prophecy\\": "src/" 438 | } 439 | }, 440 | "notification-url": "https://packagist.org/downloads/", 441 | "license": [ 442 | "MIT" 443 | ], 444 | "authors": [ 445 | { 446 | "name": "Konstantin Kudryashov", 447 | "email": "ever.zet@gmail.com", 448 | "homepage": "http://everzet.com" 449 | }, 450 | { 451 | "name": "Marcello Duarte", 452 | "email": "marcello.duarte@gmail.com" 453 | } 454 | ], 455 | "description": "Highly opinionated mocking framework for PHP 5.3+", 456 | "homepage": "https://github.com/phpspec/prophecy", 457 | "keywords": [ 458 | "Double", 459 | "Dummy", 460 | "fake", 461 | "mock", 462 | "spy", 463 | "stub" 464 | ], 465 | "time": "2017-03-02T20:05:34+00:00" 466 | }, 467 | { 468 | "name": "phpunit/php-code-coverage", 469 | "version": "4.0.8", 470 | "source": { 471 | "type": "git", 472 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 473 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" 474 | }, 475 | "dist": { 476 | "type": "zip", 477 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 478 | "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", 479 | "shasum": "" 480 | }, 481 | "require": { 482 | "ext-dom": "*", 483 | "ext-xmlwriter": "*", 484 | "php": "^5.6 || ^7.0", 485 | "phpunit/php-file-iterator": "^1.3", 486 | "phpunit/php-text-template": "^1.2", 487 | "phpunit/php-token-stream": "^1.4.2 || ^2.0", 488 | "sebastian/code-unit-reverse-lookup": "^1.0", 489 | "sebastian/environment": "^1.3.2 || ^2.0", 490 | "sebastian/version": "^1.0 || ^2.0" 491 | }, 492 | "require-dev": { 493 | "ext-xdebug": "^2.1.4", 494 | "phpunit/phpunit": "^5.7" 495 | }, 496 | "suggest": { 497 | "ext-xdebug": "^2.5.1" 498 | }, 499 | "type": "library", 500 | "extra": { 501 | "branch-alias": { 502 | "dev-master": "4.0.x-dev" 503 | } 504 | }, 505 | "autoload": { 506 | "classmap": [ 507 | "src/" 508 | ] 509 | }, 510 | "notification-url": "https://packagist.org/downloads/", 511 | "license": [ 512 | "BSD-3-Clause" 513 | ], 514 | "authors": [ 515 | { 516 | "name": "Sebastian Bergmann", 517 | "email": "sb@sebastian-bergmann.de", 518 | "role": "lead" 519 | } 520 | ], 521 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 522 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 523 | "keywords": [ 524 | "coverage", 525 | "testing", 526 | "xunit" 527 | ], 528 | "time": "2017-04-02T07:44:40+00:00" 529 | }, 530 | { 531 | "name": "phpunit/php-file-iterator", 532 | "version": "1.4.2", 533 | "source": { 534 | "type": "git", 535 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 536 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" 537 | }, 538 | "dist": { 539 | "type": "zip", 540 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 541 | "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", 542 | "shasum": "" 543 | }, 544 | "require": { 545 | "php": ">=5.3.3" 546 | }, 547 | "type": "library", 548 | "extra": { 549 | "branch-alias": { 550 | "dev-master": "1.4.x-dev" 551 | } 552 | }, 553 | "autoload": { 554 | "classmap": [ 555 | "src/" 556 | ] 557 | }, 558 | "notification-url": "https://packagist.org/downloads/", 559 | "license": [ 560 | "BSD-3-Clause" 561 | ], 562 | "authors": [ 563 | { 564 | "name": "Sebastian Bergmann", 565 | "email": "sb@sebastian-bergmann.de", 566 | "role": "lead" 567 | } 568 | ], 569 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 570 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 571 | "keywords": [ 572 | "filesystem", 573 | "iterator" 574 | ], 575 | "time": "2016-10-03T07:40:28+00:00" 576 | }, 577 | { 578 | "name": "phpunit/php-text-template", 579 | "version": "1.2.1", 580 | "source": { 581 | "type": "git", 582 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 583 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" 584 | }, 585 | "dist": { 586 | "type": "zip", 587 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 588 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", 589 | "shasum": "" 590 | }, 591 | "require": { 592 | "php": ">=5.3.3" 593 | }, 594 | "type": "library", 595 | "autoload": { 596 | "classmap": [ 597 | "src/" 598 | ] 599 | }, 600 | "notification-url": "https://packagist.org/downloads/", 601 | "license": [ 602 | "BSD-3-Clause" 603 | ], 604 | "authors": [ 605 | { 606 | "name": "Sebastian Bergmann", 607 | "email": "sebastian@phpunit.de", 608 | "role": "lead" 609 | } 610 | ], 611 | "description": "Simple template engine.", 612 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 613 | "keywords": [ 614 | "template" 615 | ], 616 | "time": "2015-06-21T13:50:34+00:00" 617 | }, 618 | { 619 | "name": "phpunit/php-timer", 620 | "version": "1.0.9", 621 | "source": { 622 | "type": "git", 623 | "url": "https://github.com/sebastianbergmann/php-timer.git", 624 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" 625 | }, 626 | "dist": { 627 | "type": "zip", 628 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 629 | "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", 630 | "shasum": "" 631 | }, 632 | "require": { 633 | "php": "^5.3.3 || ^7.0" 634 | }, 635 | "require-dev": { 636 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 637 | }, 638 | "type": "library", 639 | "extra": { 640 | "branch-alias": { 641 | "dev-master": "1.0-dev" 642 | } 643 | }, 644 | "autoload": { 645 | "classmap": [ 646 | "src/" 647 | ] 648 | }, 649 | "notification-url": "https://packagist.org/downloads/", 650 | "license": [ 651 | "BSD-3-Clause" 652 | ], 653 | "authors": [ 654 | { 655 | "name": "Sebastian Bergmann", 656 | "email": "sb@sebastian-bergmann.de", 657 | "role": "lead" 658 | } 659 | ], 660 | "description": "Utility class for timing", 661 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 662 | "keywords": [ 663 | "timer" 664 | ], 665 | "time": "2017-02-26T11:10:40+00:00" 666 | }, 667 | { 668 | "name": "phpunit/php-token-stream", 669 | "version": "1.4.11", 670 | "source": { 671 | "type": "git", 672 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 673 | "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7" 674 | }, 675 | "dist": { 676 | "type": "zip", 677 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7", 678 | "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7", 679 | "shasum": "" 680 | }, 681 | "require": { 682 | "ext-tokenizer": "*", 683 | "php": ">=5.3.3" 684 | }, 685 | "require-dev": { 686 | "phpunit/phpunit": "~4.2" 687 | }, 688 | "type": "library", 689 | "extra": { 690 | "branch-alias": { 691 | "dev-master": "1.4-dev" 692 | } 693 | }, 694 | "autoload": { 695 | "classmap": [ 696 | "src/" 697 | ] 698 | }, 699 | "notification-url": "https://packagist.org/downloads/", 700 | "license": [ 701 | "BSD-3-Clause" 702 | ], 703 | "authors": [ 704 | { 705 | "name": "Sebastian Bergmann", 706 | "email": "sebastian@phpunit.de" 707 | } 708 | ], 709 | "description": "Wrapper around PHP's tokenizer extension.", 710 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 711 | "keywords": [ 712 | "tokenizer" 713 | ], 714 | "time": "2017-02-27T10:12:30+00:00" 715 | }, 716 | { 717 | "name": "phpunit/phpunit", 718 | "version": "5.5.7", 719 | "source": { 720 | "type": "git", 721 | "url": "https://github.com/sebastianbergmann/phpunit.git", 722 | "reference": "3f67cee782c9abfaee5e32fd2f57cdd54bc257ba" 723 | }, 724 | "dist": { 725 | "type": "zip", 726 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3f67cee782c9abfaee5e32fd2f57cdd54bc257ba", 727 | "reference": "3f67cee782c9abfaee5e32fd2f57cdd54bc257ba", 728 | "shasum": "" 729 | }, 730 | "require": { 731 | "ext-dom": "*", 732 | "ext-json": "*", 733 | "ext-libxml": "*", 734 | "ext-mbstring": "*", 735 | "ext-xml": "*", 736 | "myclabs/deep-copy": "~1.3", 737 | "php": "^5.6 || ^7.0", 738 | "phpspec/prophecy": "^1.3.1", 739 | "phpunit/php-code-coverage": "^4.0.1", 740 | "phpunit/php-file-iterator": "~1.4", 741 | "phpunit/php-text-template": "~1.2", 742 | "phpunit/php-timer": "^1.0.6", 743 | "phpunit/phpunit-mock-objects": "^3.2", 744 | "sebastian/comparator": "~1.1", 745 | "sebastian/diff": "~1.2", 746 | "sebastian/environment": "^1.3 || ^2.0", 747 | "sebastian/exporter": "~1.2", 748 | "sebastian/global-state": "~1.0", 749 | "sebastian/object-enumerator": "~1.0", 750 | "sebastian/resource-operations": "~1.0", 751 | "sebastian/version": "~1.0|~2.0", 752 | "symfony/yaml": "~2.1|~3.0" 753 | }, 754 | "conflict": { 755 | "phpdocumentor/reflection-docblock": "3.0.2" 756 | }, 757 | "require-dev": { 758 | "ext-pdo": "*" 759 | }, 760 | "suggest": { 761 | "ext-tidy": "*", 762 | "ext-xdebug": "*", 763 | "phpunit/php-invoker": "~1.1" 764 | }, 765 | "bin": [ 766 | "phpunit" 767 | ], 768 | "type": "library", 769 | "extra": { 770 | "branch-alias": { 771 | "dev-master": "5.5.x-dev" 772 | } 773 | }, 774 | "autoload": { 775 | "classmap": [ 776 | "src/" 777 | ] 778 | }, 779 | "notification-url": "https://packagist.org/downloads/", 780 | "license": [ 781 | "BSD-3-Clause" 782 | ], 783 | "authors": [ 784 | { 785 | "name": "Sebastian Bergmann", 786 | "email": "sebastian@phpunit.de", 787 | "role": "lead" 788 | } 789 | ], 790 | "description": "The PHP Unit Testing framework.", 791 | "homepage": "https://phpunit.de/", 792 | "keywords": [ 793 | "phpunit", 794 | "testing", 795 | "xunit" 796 | ], 797 | "time": "2016-10-03T13:04:15+00:00" 798 | }, 799 | { 800 | "name": "phpunit/phpunit-mock-objects", 801 | "version": "3.4.3", 802 | "source": { 803 | "type": "git", 804 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 805 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" 806 | }, 807 | "dist": { 808 | "type": "zip", 809 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 810 | "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", 811 | "shasum": "" 812 | }, 813 | "require": { 814 | "doctrine/instantiator": "^1.0.2", 815 | "php": "^5.6 || ^7.0", 816 | "phpunit/php-text-template": "^1.2", 817 | "sebastian/exporter": "^1.2 || ^2.0" 818 | }, 819 | "conflict": { 820 | "phpunit/phpunit": "<5.4.0" 821 | }, 822 | "require-dev": { 823 | "phpunit/phpunit": "^5.4" 824 | }, 825 | "suggest": { 826 | "ext-soap": "*" 827 | }, 828 | "type": "library", 829 | "extra": { 830 | "branch-alias": { 831 | "dev-master": "3.2.x-dev" 832 | } 833 | }, 834 | "autoload": { 835 | "classmap": [ 836 | "src/" 837 | ] 838 | }, 839 | "notification-url": "https://packagist.org/downloads/", 840 | "license": [ 841 | "BSD-3-Clause" 842 | ], 843 | "authors": [ 844 | { 845 | "name": "Sebastian Bergmann", 846 | "email": "sb@sebastian-bergmann.de", 847 | "role": "lead" 848 | } 849 | ], 850 | "description": "Mock Object library for PHPUnit", 851 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 852 | "keywords": [ 853 | "mock", 854 | "xunit" 855 | ], 856 | "time": "2016-12-08T20:27:08+00:00" 857 | }, 858 | { 859 | "name": "sebastian/code-unit-reverse-lookup", 860 | "version": "1.0.1", 861 | "source": { 862 | "type": "git", 863 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", 864 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" 865 | }, 866 | "dist": { 867 | "type": "zip", 868 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 869 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", 870 | "shasum": "" 871 | }, 872 | "require": { 873 | "php": "^5.6 || ^7.0" 874 | }, 875 | "require-dev": { 876 | "phpunit/phpunit": "^5.7 || ^6.0" 877 | }, 878 | "type": "library", 879 | "extra": { 880 | "branch-alias": { 881 | "dev-master": "1.0.x-dev" 882 | } 883 | }, 884 | "autoload": { 885 | "classmap": [ 886 | "src/" 887 | ] 888 | }, 889 | "notification-url": "https://packagist.org/downloads/", 890 | "license": [ 891 | "BSD-3-Clause" 892 | ], 893 | "authors": [ 894 | { 895 | "name": "Sebastian Bergmann", 896 | "email": "sebastian@phpunit.de" 897 | } 898 | ], 899 | "description": "Looks up which function or method a line of code belongs to", 900 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", 901 | "time": "2017-03-04T06:30:41+00:00" 902 | }, 903 | { 904 | "name": "sebastian/comparator", 905 | "version": "1.2.4", 906 | "source": { 907 | "type": "git", 908 | "url": "https://github.com/sebastianbergmann/comparator.git", 909 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" 910 | }, 911 | "dist": { 912 | "type": "zip", 913 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 914 | "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", 915 | "shasum": "" 916 | }, 917 | "require": { 918 | "php": ">=5.3.3", 919 | "sebastian/diff": "~1.2", 920 | "sebastian/exporter": "~1.2 || ~2.0" 921 | }, 922 | "require-dev": { 923 | "phpunit/phpunit": "~4.4" 924 | }, 925 | "type": "library", 926 | "extra": { 927 | "branch-alias": { 928 | "dev-master": "1.2.x-dev" 929 | } 930 | }, 931 | "autoload": { 932 | "classmap": [ 933 | "src/" 934 | ] 935 | }, 936 | "notification-url": "https://packagist.org/downloads/", 937 | "license": [ 938 | "BSD-3-Clause" 939 | ], 940 | "authors": [ 941 | { 942 | "name": "Jeff Welch", 943 | "email": "whatthejeff@gmail.com" 944 | }, 945 | { 946 | "name": "Volker Dusch", 947 | "email": "github@wallbash.com" 948 | }, 949 | { 950 | "name": "Bernhard Schussek", 951 | "email": "bschussek@2bepublished.at" 952 | }, 953 | { 954 | "name": "Sebastian Bergmann", 955 | "email": "sebastian@phpunit.de" 956 | } 957 | ], 958 | "description": "Provides the functionality to compare PHP values for equality", 959 | "homepage": "http://www.github.com/sebastianbergmann/comparator", 960 | "keywords": [ 961 | "comparator", 962 | "compare", 963 | "equality" 964 | ], 965 | "time": "2017-01-29T09:50:25+00:00" 966 | }, 967 | { 968 | "name": "sebastian/diff", 969 | "version": "1.4.3", 970 | "source": { 971 | "type": "git", 972 | "url": "https://github.com/sebastianbergmann/diff.git", 973 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" 974 | }, 975 | "dist": { 976 | "type": "zip", 977 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", 978 | "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", 979 | "shasum": "" 980 | }, 981 | "require": { 982 | "php": "^5.3.3 || ^7.0" 983 | }, 984 | "require-dev": { 985 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" 986 | }, 987 | "type": "library", 988 | "extra": { 989 | "branch-alias": { 990 | "dev-master": "1.4-dev" 991 | } 992 | }, 993 | "autoload": { 994 | "classmap": [ 995 | "src/" 996 | ] 997 | }, 998 | "notification-url": "https://packagist.org/downloads/", 999 | "license": [ 1000 | "BSD-3-Clause" 1001 | ], 1002 | "authors": [ 1003 | { 1004 | "name": "Kore Nordmann", 1005 | "email": "mail@kore-nordmann.de" 1006 | }, 1007 | { 1008 | "name": "Sebastian Bergmann", 1009 | "email": "sebastian@phpunit.de" 1010 | } 1011 | ], 1012 | "description": "Diff implementation", 1013 | "homepage": "https://github.com/sebastianbergmann/diff", 1014 | "keywords": [ 1015 | "diff" 1016 | ], 1017 | "time": "2017-05-22T07:24:03+00:00" 1018 | }, 1019 | { 1020 | "name": "sebastian/environment", 1021 | "version": "2.0.0", 1022 | "source": { 1023 | "type": "git", 1024 | "url": "https://github.com/sebastianbergmann/environment.git", 1025 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" 1026 | }, 1027 | "dist": { 1028 | "type": "zip", 1029 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1030 | "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", 1031 | "shasum": "" 1032 | }, 1033 | "require": { 1034 | "php": "^5.6 || ^7.0" 1035 | }, 1036 | "require-dev": { 1037 | "phpunit/phpunit": "^5.0" 1038 | }, 1039 | "type": "library", 1040 | "extra": { 1041 | "branch-alias": { 1042 | "dev-master": "2.0.x-dev" 1043 | } 1044 | }, 1045 | "autoload": { 1046 | "classmap": [ 1047 | "src/" 1048 | ] 1049 | }, 1050 | "notification-url": "https://packagist.org/downloads/", 1051 | "license": [ 1052 | "BSD-3-Clause" 1053 | ], 1054 | "authors": [ 1055 | { 1056 | "name": "Sebastian Bergmann", 1057 | "email": "sebastian@phpunit.de" 1058 | } 1059 | ], 1060 | "description": "Provides functionality to handle HHVM/PHP environments", 1061 | "homepage": "http://www.github.com/sebastianbergmann/environment", 1062 | "keywords": [ 1063 | "Xdebug", 1064 | "environment", 1065 | "hhvm" 1066 | ], 1067 | "time": "2016-11-26T07:53:53+00:00" 1068 | }, 1069 | { 1070 | "name": "sebastian/exporter", 1071 | "version": "1.2.2", 1072 | "source": { 1073 | "type": "git", 1074 | "url": "https://github.com/sebastianbergmann/exporter.git", 1075 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" 1076 | }, 1077 | "dist": { 1078 | "type": "zip", 1079 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", 1080 | "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", 1081 | "shasum": "" 1082 | }, 1083 | "require": { 1084 | "php": ">=5.3.3", 1085 | "sebastian/recursion-context": "~1.0" 1086 | }, 1087 | "require-dev": { 1088 | "ext-mbstring": "*", 1089 | "phpunit/phpunit": "~4.4" 1090 | }, 1091 | "type": "library", 1092 | "extra": { 1093 | "branch-alias": { 1094 | "dev-master": "1.3.x-dev" 1095 | } 1096 | }, 1097 | "autoload": { 1098 | "classmap": [ 1099 | "src/" 1100 | ] 1101 | }, 1102 | "notification-url": "https://packagist.org/downloads/", 1103 | "license": [ 1104 | "BSD-3-Clause" 1105 | ], 1106 | "authors": [ 1107 | { 1108 | "name": "Jeff Welch", 1109 | "email": "whatthejeff@gmail.com" 1110 | }, 1111 | { 1112 | "name": "Volker Dusch", 1113 | "email": "github@wallbash.com" 1114 | }, 1115 | { 1116 | "name": "Bernhard Schussek", 1117 | "email": "bschussek@2bepublished.at" 1118 | }, 1119 | { 1120 | "name": "Sebastian Bergmann", 1121 | "email": "sebastian@phpunit.de" 1122 | }, 1123 | { 1124 | "name": "Adam Harvey", 1125 | "email": "aharvey@php.net" 1126 | } 1127 | ], 1128 | "description": "Provides the functionality to export PHP variables for visualization", 1129 | "homepage": "http://www.github.com/sebastianbergmann/exporter", 1130 | "keywords": [ 1131 | "export", 1132 | "exporter" 1133 | ], 1134 | "time": "2016-06-17T09:04:28+00:00" 1135 | }, 1136 | { 1137 | "name": "sebastian/global-state", 1138 | "version": "1.1.1", 1139 | "source": { 1140 | "type": "git", 1141 | "url": "https://github.com/sebastianbergmann/global-state.git", 1142 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" 1143 | }, 1144 | "dist": { 1145 | "type": "zip", 1146 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", 1147 | "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", 1148 | "shasum": "" 1149 | }, 1150 | "require": { 1151 | "php": ">=5.3.3" 1152 | }, 1153 | "require-dev": { 1154 | "phpunit/phpunit": "~4.2" 1155 | }, 1156 | "suggest": { 1157 | "ext-uopz": "*" 1158 | }, 1159 | "type": "library", 1160 | "extra": { 1161 | "branch-alias": { 1162 | "dev-master": "1.0-dev" 1163 | } 1164 | }, 1165 | "autoload": { 1166 | "classmap": [ 1167 | "src/" 1168 | ] 1169 | }, 1170 | "notification-url": "https://packagist.org/downloads/", 1171 | "license": [ 1172 | "BSD-3-Clause" 1173 | ], 1174 | "authors": [ 1175 | { 1176 | "name": "Sebastian Bergmann", 1177 | "email": "sebastian@phpunit.de" 1178 | } 1179 | ], 1180 | "description": "Snapshotting of global state", 1181 | "homepage": "http://www.github.com/sebastianbergmann/global-state", 1182 | "keywords": [ 1183 | "global state" 1184 | ], 1185 | "time": "2015-10-12T03:26:01+00:00" 1186 | }, 1187 | { 1188 | "name": "sebastian/object-enumerator", 1189 | "version": "1.0.0", 1190 | "source": { 1191 | "type": "git", 1192 | "url": "https://github.com/sebastianbergmann/object-enumerator.git", 1193 | "reference": "d4ca2fb70344987502567bc50081c03e6192fb26" 1194 | }, 1195 | "dist": { 1196 | "type": "zip", 1197 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26", 1198 | "reference": "d4ca2fb70344987502567bc50081c03e6192fb26", 1199 | "shasum": "" 1200 | }, 1201 | "require": { 1202 | "php": ">=5.6", 1203 | "sebastian/recursion-context": "~1.0" 1204 | }, 1205 | "require-dev": { 1206 | "phpunit/phpunit": "~5" 1207 | }, 1208 | "type": "library", 1209 | "extra": { 1210 | "branch-alias": { 1211 | "dev-master": "1.0.x-dev" 1212 | } 1213 | }, 1214 | "autoload": { 1215 | "classmap": [ 1216 | "src/" 1217 | ] 1218 | }, 1219 | "notification-url": "https://packagist.org/downloads/", 1220 | "license": [ 1221 | "BSD-3-Clause" 1222 | ], 1223 | "authors": [ 1224 | { 1225 | "name": "Sebastian Bergmann", 1226 | "email": "sebastian@phpunit.de" 1227 | } 1228 | ], 1229 | "description": "Traverses array structures and object graphs to enumerate all referenced objects", 1230 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/", 1231 | "time": "2016-01-28T13:25:10+00:00" 1232 | }, 1233 | { 1234 | "name": "sebastian/recursion-context", 1235 | "version": "1.0.5", 1236 | "source": { 1237 | "type": "git", 1238 | "url": "https://github.com/sebastianbergmann/recursion-context.git", 1239 | "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" 1240 | }, 1241 | "dist": { 1242 | "type": "zip", 1243 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", 1244 | "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", 1245 | "shasum": "" 1246 | }, 1247 | "require": { 1248 | "php": ">=5.3.3" 1249 | }, 1250 | "require-dev": { 1251 | "phpunit/phpunit": "~4.4" 1252 | }, 1253 | "type": "library", 1254 | "extra": { 1255 | "branch-alias": { 1256 | "dev-master": "1.0.x-dev" 1257 | } 1258 | }, 1259 | "autoload": { 1260 | "classmap": [ 1261 | "src/" 1262 | ] 1263 | }, 1264 | "notification-url": "https://packagist.org/downloads/", 1265 | "license": [ 1266 | "BSD-3-Clause" 1267 | ], 1268 | "authors": [ 1269 | { 1270 | "name": "Jeff Welch", 1271 | "email": "whatthejeff@gmail.com" 1272 | }, 1273 | { 1274 | "name": "Sebastian Bergmann", 1275 | "email": "sebastian@phpunit.de" 1276 | }, 1277 | { 1278 | "name": "Adam Harvey", 1279 | "email": "aharvey@php.net" 1280 | } 1281 | ], 1282 | "description": "Provides functionality to recursively process PHP variables", 1283 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context", 1284 | "time": "2016-10-03T07:41:43+00:00" 1285 | }, 1286 | { 1287 | "name": "sebastian/resource-operations", 1288 | "version": "1.0.0", 1289 | "source": { 1290 | "type": "git", 1291 | "url": "https://github.com/sebastianbergmann/resource-operations.git", 1292 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" 1293 | }, 1294 | "dist": { 1295 | "type": "zip", 1296 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1297 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", 1298 | "shasum": "" 1299 | }, 1300 | "require": { 1301 | "php": ">=5.6.0" 1302 | }, 1303 | "type": "library", 1304 | "extra": { 1305 | "branch-alias": { 1306 | "dev-master": "1.0.x-dev" 1307 | } 1308 | }, 1309 | "autoload": { 1310 | "classmap": [ 1311 | "src/" 1312 | ] 1313 | }, 1314 | "notification-url": "https://packagist.org/downloads/", 1315 | "license": [ 1316 | "BSD-3-Clause" 1317 | ], 1318 | "authors": [ 1319 | { 1320 | "name": "Sebastian Bergmann", 1321 | "email": "sebastian@phpunit.de" 1322 | } 1323 | ], 1324 | "description": "Provides a list of PHP built-in functions that operate on resources", 1325 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations", 1326 | "time": "2015-07-28T20:34:47+00:00" 1327 | }, 1328 | { 1329 | "name": "sebastian/version", 1330 | "version": "2.0.1", 1331 | "source": { 1332 | "type": "git", 1333 | "url": "https://github.com/sebastianbergmann/version.git", 1334 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" 1335 | }, 1336 | "dist": { 1337 | "type": "zip", 1338 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", 1339 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", 1340 | "shasum": "" 1341 | }, 1342 | "require": { 1343 | "php": ">=5.6" 1344 | }, 1345 | "type": "library", 1346 | "extra": { 1347 | "branch-alias": { 1348 | "dev-master": "2.0.x-dev" 1349 | } 1350 | }, 1351 | "autoload": { 1352 | "classmap": [ 1353 | "src/" 1354 | ] 1355 | }, 1356 | "notification-url": "https://packagist.org/downloads/", 1357 | "license": [ 1358 | "BSD-3-Clause" 1359 | ], 1360 | "authors": [ 1361 | { 1362 | "name": "Sebastian Bergmann", 1363 | "email": "sebastian@phpunit.de", 1364 | "role": "lead" 1365 | } 1366 | ], 1367 | "description": "Library that helps with managing the version number of Git-hosted PHP projects", 1368 | "homepage": "https://github.com/sebastianbergmann/version", 1369 | "time": "2016-10-03T07:35:21+00:00" 1370 | }, 1371 | { 1372 | "name": "symfony/yaml", 1373 | "version": "v3.3.2", 1374 | "source": { 1375 | "type": "git", 1376 | "url": "https://github.com/symfony/yaml.git", 1377 | "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063" 1378 | }, 1379 | "dist": { 1380 | "type": "zip", 1381 | "url": "https://api.github.com/repos/symfony/yaml/zipball/9752a30000a8ca9f4b34b5227d15d0101b96b063", 1382 | "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063", 1383 | "shasum": "" 1384 | }, 1385 | "require": { 1386 | "php": ">=5.5.9" 1387 | }, 1388 | "require-dev": { 1389 | "symfony/console": "~2.8|~3.0" 1390 | }, 1391 | "suggest": { 1392 | "symfony/console": "For validating YAML files using the lint command" 1393 | }, 1394 | "type": "library", 1395 | "extra": { 1396 | "branch-alias": { 1397 | "dev-master": "3.3-dev" 1398 | } 1399 | }, 1400 | "autoload": { 1401 | "psr-4": { 1402 | "Symfony\\Component\\Yaml\\": "" 1403 | }, 1404 | "exclude-from-classmap": [ 1405 | "/Tests/" 1406 | ] 1407 | }, 1408 | "notification-url": "https://packagist.org/downloads/", 1409 | "license": [ 1410 | "MIT" 1411 | ], 1412 | "authors": [ 1413 | { 1414 | "name": "Fabien Potencier", 1415 | "email": "fabien@symfony.com" 1416 | }, 1417 | { 1418 | "name": "Symfony Community", 1419 | "homepage": "https://symfony.com/contributors" 1420 | } 1421 | ], 1422 | "description": "Symfony Yaml Component", 1423 | "homepage": "https://symfony.com", 1424 | "time": "2017-06-02T22:05:06+00:00" 1425 | }, 1426 | { 1427 | "name": "webmozart/assert", 1428 | "version": "1.2.0", 1429 | "source": { 1430 | "type": "git", 1431 | "url": "https://github.com/webmozart/assert.git", 1432 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" 1433 | }, 1434 | "dist": { 1435 | "type": "zip", 1436 | "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", 1437 | "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", 1438 | "shasum": "" 1439 | }, 1440 | "require": { 1441 | "php": "^5.3.3 || ^7.0" 1442 | }, 1443 | "require-dev": { 1444 | "phpunit/phpunit": "^4.6", 1445 | "sebastian/version": "^1.0.1" 1446 | }, 1447 | "type": "library", 1448 | "extra": { 1449 | "branch-alias": { 1450 | "dev-master": "1.3-dev" 1451 | } 1452 | }, 1453 | "autoload": { 1454 | "psr-4": { 1455 | "Webmozart\\Assert\\": "src/" 1456 | } 1457 | }, 1458 | "notification-url": "https://packagist.org/downloads/", 1459 | "license": [ 1460 | "MIT" 1461 | ], 1462 | "authors": [ 1463 | { 1464 | "name": "Bernhard Schussek", 1465 | "email": "bschussek@gmail.com" 1466 | } 1467 | ], 1468 | "description": "Assertions to validate method input/output with nice error messages.", 1469 | "keywords": [ 1470 | "assert", 1471 | "check", 1472 | "validate" 1473 | ], 1474 | "time": "2016-11-23T20:04:58+00:00" 1475 | } 1476 | ], 1477 | "aliases": [], 1478 | "minimum-stability": "stable", 1479 | "stability-flags": [], 1480 | "prefer-stable": false, 1481 | "prefer-lowest": false, 1482 | "platform": { 1483 | "php": ">=5.6.0" 1484 | }, 1485 | "platform-dev": [], 1486 | "plugin-api-version": "2.1.0" 1487 | } 1488 | --------------------------------------------------------------------------------