├── .gitignore
├── tests
└── phpunit
│ ├── tools
│ ├── includable.php
│ ├── includable2.php
│ ├── wp-admin
│ │ └── includes
│ │ │ └── plugin.php
│ └── WP_Plugins_List_Table.php
│ ├── MULoaderPlugin_Tests.php
│ ├── util_Tests.php
│ ├── list-table_Tests.php
│ └── loader_Tests.php
├── .codeclimate.yml
├── .travis.yml
├── bootstrap.php.dist
├── phpunit.xml.dist
├── composer.json
├── src
└── lkwdwrd
│ ├── mu-loader.php
│ ├── util
│ ├── list-table.php
│ ├── util.php
│ └── loader.php
│ └── Composer
│ └── MULoaderPlugin.php
├── README.md
└── composer.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | /vendor
3 | /phpunit.xml
4 | /bootstrap.php
5 | /build
6 |
--------------------------------------------------------------------------------
/tests/phpunit/tools/includable.php:
--------------------------------------------------------------------------------
1 | [] ] );
13 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 |
3 | php:
4 | - '7.2'
5 | - '7.1'
6 |
7 | install: composer install
8 |
9 | script: composer test
10 |
11 | after_script:
12 | - composer export-coverage
13 |
14 | cache:
15 | directories:
16 | - vendor
17 |
18 | branches:
19 | only:
20 | - master
21 |
22 | notifications:
23 | email:
24 | on_success: never
25 | on_failure: change
26 |
--------------------------------------------------------------------------------
/tests/phpunit/tools/WP_Plugins_List_Table.php:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 | ./tests/phpunit
9 |
10 |
11 |
12 |
13 | ./src/lkwdwrd
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "lkwdwrd/wp-muplugin-loader",
3 | "version" : "1.0.5",
4 | "description" : "A drop-in MU Plugin loader for WordPress",
5 | "keywords" : ["wordpress", "muplugin", "loader"],
6 | "type" : "composer-plugin",
7 | "license" : "MIT",
8 | "minimum-stability": "dev",
9 | "prefer-stable": true,
10 | "authors" : [
11 | {
12 | "name" : "Luke Woodward",
13 | "email": "woodward.lucas@gmail.com"
14 | }
15 | ],
16 | "autoload": {
17 | "psr-4": { "LkWdwrd\\Composer\\": "src/lkwdwrd/Composer" }
18 | },
19 | "extra": {
20 | "class": "LkWdwrd\\Composer\\MULoaderPlugin"
21 | },
22 | "require": {
23 | "composer-plugin-api": "^1.0"
24 | },
25 | "require-dev" : {
26 | "phpunit/phpunit": "^7.1.4",
27 | "10up/wp_mock": "dev-dev",
28 | "codeclimate/php-test-reporter": "^0.4.4"
29 | },
30 | "scripts" : {
31 | "test" : "phpunit --colors",
32 | "export-coverage": "test-reporter"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/lkwdwrd/mu-loader.php:
--------------------------------------------------------------------------------
1 | testFiles ) ) {
24 | foreach ( $this->testFiles as $file ) {
25 | if ( file_exists( PROJECT . $file ) ) {
26 | require_once( PROJECT . $file );
27 | }
28 | }
29 | }
30 |
31 | parent::setUp();
32 | }
33 |
34 | /**
35 | * Test setup method.
36 | */
37 | public function test_setup() {
38 | $this->assertTrue( true );
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/lkwdwrd/util/list-table.php:
--------------------------------------------------------------------------------
1 | single_row( array( $plugin_file, $plugin_data ) );
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/lkwdwrd/util/util.php:
--------------------------------------------------------------------------------
1 | assertEquals( Util\rel_path( $path1, $path2, $sep ), $expected );
35 | }
36 |
37 | public function data_rel_path(){
38 | return array(
39 | array(
40 | '/a/random/path/to/a/place',
41 | '/a/random/path/to/another/place',
42 | '/',
43 | '../../another/place',
44 | ),
45 | array(
46 | '/somewhere/over/the/rainbow',
47 | '/somewhere/over/the/rainbow/bluebirds/sing',
48 | '/',
49 | 'bluebirds/sing',
50 | ),
51 | array(
52 | '/just/some/test',
53 | '/just\some\mixed\slash\example',
54 | '/',
55 | '../mixed/slash/example',
56 | ),
57 | array(
58 | '/testing/inverse/directory/separators',
59 | '/unix/to/windows',
60 | '\\',
61 | '..\..\..\..\unix\to\windows',
62 | ),
63 | );
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/tests/phpunit/list-table_Tests.php:
--------------------------------------------------------------------------------
1 | [
46 | 'random/random.php',
47 | 'testing/notsame.php',
48 | 'lastone/lastone.php'
49 | ]
50 | ] );
51 | $base = WPMU_PLUGIN_DIR . DIRECTORY_SEPARATOR;
52 | WP_Mock::wpFunction( 'get_plugin_data', [
53 | 'args' => [$base . 'random/random.php', false ],
54 | 'return' => [
55 | 'Name' => 'Random MU Plugin'
56 | ]
57 | ] );
58 | WP_Mock::wpFunction( 'get_plugin_data', [
59 | 'args' => [$base . 'testing/notsame.php', false],
60 | 'return' => []
61 | ] );
62 | WP_Mock::wpFunction( 'get_plugin_data', [
63 | 'args' => [$base . 'lastone/lastone.php', false],
64 | 'return' => [
65 | 'Name' => 'The Last One',
66 | 'arbitrary' => [ 1, 2, 3 ],
67 | 'another' => 21
68 | ]
69 | ] );
70 |
71 | // Run the function
72 | List_Table\list_table();
73 |
74 | // Verify the expected data was passed to the single_row method.
75 | $this->assertEquals(
76 | \WP_Plugins_List_Table::$received,
77 | [
78 | [
79 | 'random/random.php',
80 | [ 'Name' => '+ Random MU Plugin' ],
81 | ],
82 | [
83 | 'testing/notsame.php',
84 | [ 'Name' => '+ testing/notsame.php'],
85 | ],
86 | [
87 | 'lastone/lastone.php',
88 | [
89 | 'Name' => '+ The Last One',
90 | 'arbitrary' => [ 1, 2, 3 ],
91 | 'another' => 21
92 | ]
93 | ]
94 | ]
95 | );
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WP Must-Use Plugin Loader
2 |
3 | [](https://travis-ci.org/lkwdwrd/wp-muplugin-loader)
4 |
5 | Managing plugins using the [Composer Installers](https://github.com/composer/installers) library works remarkably well. However, its handling of MU plugins leaves something to be desired.
6 |
7 | WordPress MU (must use) Plugins are files that are placed in the `wp-content/mu-plugins/` folder. These files are loaded automatically. The problem is when a plugin is actually inside a folder. WordPress will only load .php files and doesn't drop into any directories. When the Composer Installers plugin runs, it always puts the repo into a nice contained folder. This means the Composer Installers MU plugins never actually run!
8 |
9 | There are manual ways around this that work fine, but I want to get away from any manual steps when running the install. No extra files, just run `composer install` or `composer update` and have it work. That is what the WP Must-Use Plugin Loader does.
10 |
11 | ## Usage Instructions
12 |
13 | In your project's `composer.json` file, require this package.
14 |
15 | ```json
16 | "require": {
17 | "composer/installers": "~1.2.0",
18 | "johnpbloch/wordpress": "*",
19 | "lkwdwrd/wp-muplugin-loader": "~1.0.0",
20 | }
21 | ```
22 | Make sure in the `extras` of your `composer.json` you have your mu-plugins path defined.
23 |
24 | ```json
25 | "extra": {
26 | "installer-paths": {
27 | "app/wp-content/themes/{$name}": [
28 | "type:wordpress-theme"
29 | ],
30 | "app/wp-content/plugins/{$name}": [
31 | "type:wordpress-plugin"
32 | ],
33 | "app/wp-content/mu-plugins/{$name}": [
34 | "type:wordpress-muplugin"
35 | ]
36 | },
37 | "wordpress-install-dir": "app/wp"
38 | }
39 | ```
40 |
41 | And that's it.
42 |
43 | When Composer dumps it's autoload file, a file called `mu-require.php` will be placed into your mu-plugins folder. When WordPress loads this file as an MU plugin, it will find all of the plugins in folders in your MU plugins directory and include those as well.
44 |
45 | ## Forcing MU Plugins
46 |
47 | Usually when you are using MU plugins, you have some 'normal' WordPress plugins that you want to always be active. They are not always MU-Plugins, though, so it makes no sense to put the `"type": "wordpress-muplugin"` in the `composer.json` file. WP Must-Use Plugin Loader allows you to override the type from `wordpress-plugin` to `wordpress-muplugin` as needed.
48 |
49 | To do this, define a `"force-mu"` key in `"extra"` of your `composer.json` file. This key should hold an array of slugs for plugins to force into Must-Use status.
50 |
51 | This is compatible with [WPackagist](https://wpackagist.org/). When adding plugins from WPackagist use the plugin's normal slug, not the wp-packagist version.
52 |
53 | ```json
54 | "require": {
55 | "johnpbloch/wordpress": "*",
56 | "lkwdwrd/wp-muplugin-loader": "~1.0.0",
57 | "wpackagist-plugin/rest-api": "*"
58 | },
59 | "extra": {
60 | "force-mu": [
61 | "rest-api"
62 | ],
63 | "installer-paths": {
64 | "app/wp-content/themes/{$name}": [
65 | "type:wordpress-theme"
66 | ],
67 | "app/wp-content/plugins/{$name}": [
68 | "type:wordpress-plugin"
69 | ],
70 | "app/wp-content/mu-plugins/{$name}": [
71 | "type:wordpress-muplugin"
72 | ]
73 | },
74 | "wordpress-install-dir": "app/wp"
75 | }
76 | ```
77 |
78 | When the `rest-api` plugin is installed, instead of going in the normal plugins folder, it will be pushed over to the mu-plugins folder and loaded automatically with other Must-Use Plugins.
79 |
80 | ## Forcing Unix Directory Separators
81 |
82 | If you work on Windows but use a Linux VM to run your development server, you may need to force unix directory separators to make sure the server can find the mu loader script. If so, there's another configuration in the `extra` block you can set:
83 |
84 | ```json
85 | "extra": {
86 | "force-unix-separator": true
87 | }
88 | ```
89 |
--------------------------------------------------------------------------------
/src/lkwdwrd/util/loader.php:
--------------------------------------------------------------------------------
1 | $data ) {
71 | // skip files directly at root
72 | if ( dirname( $plugin_file ) !== '.' ) {
73 | $plugins[] = $plugin_file;
74 | }
75 | }
76 | set_site_transient( $key, $plugins );
77 | }
78 | return $plugins;
79 | }
80 |
81 | /**
82 | * Gets a unique key to use in caching the MU-Plugins list.
83 | *
84 | * Because this uses transients, we can't simply let the key change for
85 | * invalidation. To that end, we store the used key as a transient and then
86 | * pull that transient. We then create the cache key using an MD5 hash of The
87 | * files in the Must-Use plugins directory. If the files change, the key will
88 | * also change. If it does not match the old key, the previous cache entry is
89 | * removed and the new key is stored for future comparisons.
90 | *
91 | * Doing this ensures as the MU-Plugins directory changes, regaurdless of the
92 | * caching mechanism, even the options table, the data will not build up over
93 | * time. Especially important when the options table is used.
94 | *
95 | * @param String $mudir The MU Plugins Directory. Default: WPMU_PLUGIN_DIR
96 | * @return String An MD5 cache key to use.
97 | */
98 | function get_muloader_key( $mudir = MUDIR ) {
99 | $old_key = get_site_transient( 'lkw_mu_loader_key' );
100 | $key = md5( json_encode( scandir( $mudir ) ) );
101 | if ( $old_key !== $key ) {
102 | if ( $old_key ) {
103 | delete_site_transient( $old_key );
104 | }
105 | set_site_transient( 'lkw_mu_loader_key', $key );
106 | }
107 | return $key;
108 | }
109 |
--------------------------------------------------------------------------------
/tests/phpunit/loader_Tests.php:
--------------------------------------------------------------------------------
1 | key = md5( json_encode( scandir( WPMU_PLUGIN_DIR ) ) );
27 | require_once PROJECT . '/util/loader.php';
28 | WP_Mock::setUp();
29 | parent::setUp();
30 | }
31 | /**
32 | * Run tear down scripts.
33 | * @return [type] [description]
34 | */
35 | public function tearDown() {
36 | WP_Mock::tearDown();
37 | parent::tearDown();
38 | }
39 | /**
40 | * Ensure the loader function includes passed plugin files.
41 | */
42 | public function test_mu_loader() {
43 | // Run control assertions.
44 | $this->assertFalse( defined( '\LkWdwrd\Test\included' ) );
45 | $this->assertFalse( defined( '\LkWdwrd\Test2\included' ) );
46 | // Run the method to include plugin files.
47 | Loader\mu_loader( [ 'includable.php', 'includable2.php'] );
48 | // Make sure the files are now included.
49 | $this->assertTrue( defined( '\LkWdwrd\Test\included' ) );
50 | $this->assertTrue( defined( '\LkWdwrd\Test2\included' ) );
51 | }
52 | /**
53 | * The test_mu_loader should use call get_muplugins by default.
54 | *
55 | * We can't test that very well, but we can short-cicuit the method pretty
56 | * easily by returning an empty array from the transient call. The transient
57 | * should be called twice, once to get the cache key, and again to get the
58 | * plugin list. By asserting this is called twice we can assume it is
59 | * properly calling the get_muplugins function.
60 | *
61 | * This will likley breaky on a major refactor, but should catch most of the
62 | * possible used cases.
63 | */
64 | public function test_mu_loader_default() {
65 | // Set up mocks
66 | WP_Mock::wpFunction( 'get_site_transient', [
67 | 'times' => 2,
68 | 'return_in_order' => [
69 | $this->key,
70 | []
71 | ]
72 | ] );
73 | // Run the test
74 | $return = Loader\mu_loader();
75 | // Verify the results
76 | $this->assertNull( $return );
77 | }
78 | /**
79 | * The get_muplugins function will return cached data if available.
80 | */
81 | public function test_get_muplugins_cache() {
82 | // Set up mocks
83 | WP_Mock::wpFunction( 'get_site_transient', [
84 | 'return_in_order' => [
85 | $this->key,
86 | [ 'a/plugin.php' ]
87 | ]
88 | ] );
89 | // Run the test
90 | $result = Loader\get_muplugins();
91 | // Verify the results
92 | $this->assertEquals( $result, [ 'a/plugin.php' ] );
93 | }
94 | /**
95 | * If the cache misses get_muplugins will generate a new list of plugins.
96 | */
97 | public function test_get_muplugins_nocache() {
98 | $expected = [ 'random/plugin1.php', 'random/plugin2.php' ];
99 | // Set up mocks
100 | WP_Mock::wpFunction( 'get_site_transient', [
101 | 'return_in_order' => [
102 | $this->key,
103 | false
104 | ]
105 | ] );
106 | WP_Mock::wpFunction( 'LkWdwrd\MU_Loader\Util\rel_path', [
107 | 'return' => 'relpath'
108 | ] );
109 | // only plugins in directorys should pass: rootplugin.php will go away.
110 | // WP will include root plugins in it's normal course.
111 | WP_Mock::wpFunction( 'get_plugins', [
112 | 'args' => [ DIRECTORY_SEPARATOR . 'relpath' ],
113 | 'return' => [
114 | 'random/plugin1.php' => true,
115 | 'random/plugin2.php' => true,
116 | 'rootplugin.php' => true
117 | ]
118 | ] );
119 | WP_Mock::wpFunction( 'set_site_transient', [
120 | 'times' => 1,
121 | 'args' => [ $this->key, $expected ]
122 | ] );
123 | // Run the test
124 | $result = Loader\get_muplugins();
125 | // Make sure the set cache function was called.
126 | $this->assertEquals( $result, $expected );
127 | }
128 | /**
129 | * If get_plugins is not defined it will include the admin file.
130 | */
131 | public function test_get_muplugins_admin_require() {
132 | // Set up mocks
133 | WP_Mock::wpFunction( 'get_site_transient', [
134 | 'return_in_order' => [
135 | $this->key,
136 | false
137 | ]
138 | ] );
139 | WP_Mock::wpFunction( 'LkWdwrd\MU_Loader\Util\rel_path', [
140 | 'return' => 'relpath'
141 | ] );
142 | WP_Mock::wpPassthruFunction( 'set_site_transient' );
143 | // Run the test.
144 | // This will include `tools/wp-admin/includes/plugin.php` which sets
145 | // a flag in it's namespace to indicate it has loaded.
146 | // First run a control assertion, then run a test assertion.
147 | $this->assertFalse( defined( '\LkWdWrd\Test\WP_Admin\included' ) );
148 | // Run the test
149 | Loader\get_muplugins();
150 | // Verify the results
151 | $this->assertTrue( defined( '\LkWdWrd\Test\WP_Admin\included' ) );
152 | }
153 | /**
154 | * The get_muloader_key function returns the existing key if no changes
155 | */
156 | public function test_get_muloader_key_same() {
157 | //Set up mocks
158 | WP_Mock::wpFunction( 'get_site_transient', [ 'return' => $this->key ] );
159 | // Run the test
160 | $result = Loader\get_muloader_key();
161 | // Verify results
162 | $this->assertEquals( $result, $this->key );
163 | }
164 | /**
165 | * The get_muloader_key function deletes old transients with change.
166 | */
167 | public function test_get_muloader_key_different() {
168 | //Set up mocks
169 | WP_Mock::wpFunction( 'get_site_transient', [
170 | 'args' => [ 'lkw_mu_loader_key' ],
171 | 'return' => 'non-matching-key'
172 | ] );
173 | WP_Mock::wpFunction( 'delete_site_transient', [
174 | 'times' => 1,
175 | 'args' => [ 'non-matching-key' ]
176 | ] );
177 | WP_Mock::wpFunction( 'set_site_transient', [
178 | 'times' => 1,
179 | 'args' => [ 'lkw_mu_loader_key', $this->key ]
180 | ] );
181 | // Run the test
182 | $result = Loader\get_muloader_key();
183 | // Verify results
184 | $this->assertEquals( $result, $this->key );
185 | }
186 | }
187 |
--------------------------------------------------------------------------------
/src/lkwdwrd/Composer/MULoaderPlugin.php:
--------------------------------------------------------------------------------
1 | extras = $composer->getPackage()->getExtra();
58 | $this->config = $composer->getConfig();
59 | }
60 | /**
61 | * Subscribes to autoload dump and package install events.
62 | *
63 | * When `pre-autoload-dump` fires, run the `dumpRequireFile` method.
64 | * When `pre-package-install` fires, run the `overridePluginTypes` method.
65 | *
66 | * @return array The event subscription map.
67 | */
68 | public static function getSubscribedEvents() {
69 | return array(
70 | 'pre-autoload-dump' => 'dumpRequireFile',
71 | 'pre-package-install' => 'overridePluginTypes',
72 | 'pre-package-update' => 'overridePluginTypes',
73 | );
74 | }
75 | /**
76 | * Checks the package being installed and conditionaly overrides type.
77 | *
78 | * If the package being installed is the `wordpress-plugin` type, this will
79 | * check the extras array to see if the package's slug is present in the
80 | * `force-mu` array. If it is, the package type is updated to so that it
81 | * will install as if it were the `wordpress-muplugin` type.
82 | *
83 | * This takes into account WPackagist. If overriding the type in a plugin
84 | * from WPackagist, there is no need to include the `wpackagist-plugin`
85 | * prefix. Just use the slug as it appears in the wordpress.org repository.
86 | * @param Composer\Installer\PackageEvent $event The package event for the
87 | * current package.
88 | * @return void
89 | */
90 | public function overridePluginTypes( $event ) {
91 | // Get the package being worked on.
92 | $operation = $event->getOperation();
93 | if ( $operation instanceof \Composer\DependencyResolver\Operation\UpdateOperation ) {
94 | $package = $operation->getInitialPackage();
95 | } else {
96 | $package = $operation->getPackage();
97 | }
98 |
99 | // Only act on wordpress-plugin types
100 | if ( 'wordpress-plugin' !== $package->getType() ) {
101 | return;
102 | }
103 |
104 | // Only act when there is a force-mu key holding an array in extras
105 | $extras = $this->extras;
106 | if( empty( $extras['force-mu'] ) || !is_array( $extras['force-mu'] ) ) {
107 | return;
108 | }
109 |
110 | // Check to see if the current package is in the force-mu extra
111 | // If it is, set it's type to 'wordpress-muplugin'
112 | $slug = str_replace( 'wpackagist-plugin/', '', $package->getName() );
113 | if ( in_array( $slug, $extras['force-mu'] ) ) {
114 | $package->setType( 'wordpress-muplugin' );
115 | }
116 | }
117 | /**
118 | * Controlls dumping the require file into the `mu-plugins` folder.
119 | *
120 | * This method finds the relative path from the `mu-plugins` folder to this
121 | * composer package. It then writes a very simple PHP file into the
122 | * `mu-plugins` folder, which runs a `require_once` to load the main
123 | * `mu-loader.php` which can remain cozy back in the vendor directory.
124 | *
125 | * @return void
126 | */
127 | public function dumpRequireFile() {
128 | $muRelPath = $this->findMURelPath();
129 |
130 | // If we didn't find a relative MU Plugins path, bail.
131 | if ( ! $muRelPath ) {
132 | return;
133 | }
134 |
135 | // Find the relative path from the mu-plugins dir to the mu-loader file.
136 | $muPath = $this->resolveMURelPath( $muRelPath );
137 | $ds = $this->getDirectorySeparator();
138 | $loadFile = dirname( __DIR__ ) . $ds . 'mu-loader.php';
139 | $toLoader = $ds . Util\rel_path( $muPath, $loadFile, $ds );
140 |
141 | // Write the boostrapping PHP file.
142 | if ( !file_exists( $muPath ) ) {
143 | mkdir( $muPath, 0755, true );
144 | }
145 | file_put_contents(
146 | $muPath . 'mu-require.php',
147 | "extras['installer-paths'] ) || ! is_array( $this->extras['installer-paths'] ) ) {
166 | return false;
167 | }
168 | // Find the array to the mu-plugin path.
169 | foreach( $this->extras['installer-paths'] as $path => $types ) {
170 | if ( ! is_array( $types ) ) {
171 | continue;
172 | }
173 | if ( ! in_array( 'type:wordpress-muplugin', $types ) ) {
174 | continue;
175 | }
176 | $path = str_replace( '{$name}', '', $path );
177 | break;
178 | }
179 | return $path;
180 | }
181 | /**
182 | * Takes the relative Must-Use plugins path and send back the abslute path.
183 | *
184 | * @param String $relpath The relative `mu-plugins` path.
185 | * @return String The aboslute `mu-plugins` path.
186 | */
187 | protected function resolveMURelPath( $relpath ) {
188 | // Find the actual base path by removing the vendor-dir raw config path.
189 | if ( $this->config->has( 'vendor-dir' ) ) {
190 | $tag = $this->config->raw()['config']['vendor-dir'];
191 | } else {
192 | $tag = '';
193 | }
194 | $basepath = str_replace( $tag, '', $this->config->get('vendor-dir') );
195 | // Return the abosolute path.
196 | return $basepath . $relpath;
197 | }
198 |
199 | /**
200 | * Get the directory separator to use for the generatoed loader
201 | *
202 | * This defaults to the DIRECTORY_SEPARATOR constant, but can be overridden in
203 | * the composer.json extra section with "force-unix-separator" set to true.
204 | *
205 | * @return string The directory separator character to use
206 | */
207 | protected function getDirectorySeparator() {
208 | $separator = DIRECTORY_SEPARATOR;
209 | if ( ! empty( $this->extras['force-unix-separator'] ) ) {
210 | $separator = '/';
211 | }
212 |
213 | return $separator;
214 | }
215 | }
216 |
--------------------------------------------------------------------------------
/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#composer-lock-the-lock-file",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "1305540d2b52fa4ba156962f14fada48",
8 | "packages": [],
9 | "packages-dev": [
10 | {
11 | "name": "10up/wp_mock",
12 | "version": "dev-dev",
13 | "source": {
14 | "type": "git",
15 | "url": "https://github.com/10up/wp_mock.git",
16 | "reference": "0354413d63cbae920ffc0676443c6d9dd330ce40"
17 | },
18 | "dist": {
19 | "type": "zip",
20 | "url": "https://api.github.com/repos/10up/wp_mock/zipball/0354413d63cbae920ffc0676443c6d9dd330ce40",
21 | "reference": "0354413d63cbae920ffc0676443c6d9dd330ce40",
22 | "shasum": ""
23 | },
24 | "require": {
25 | "antecedent/patchwork": "^2.1",
26 | "mockery/mockery": "^1.0",
27 | "php": ">=7.0",
28 | "phpunit/phpunit": ">=6.0"
29 | },
30 | "require-dev": {
31 | "behat/behat": "^3.0",
32 | "satooshi/php-coveralls": "^1.0",
33 | "sebastian/comparator": ">=1.2.3"
34 | },
35 | "type": "library",
36 | "autoload": {
37 | "psr-4": {
38 | "WP_Mock\\": "./php/WP_Mock"
39 | },
40 | "classmap": [
41 | "php/WP_Mock.php"
42 | ]
43 | },
44 | "notification-url": "https://packagist.org/downloads/",
45 | "license": [
46 | "GPL-2.0+"
47 | ],
48 | "description": "A mocking library to take the pain out of unit testing for WordPress",
49 | "time": "2017-12-03T19:27:57+00:00"
50 | },
51 | {
52 | "name": "antecedent/patchwork",
53 | "version": "2.1.8",
54 | "source": {
55 | "type": "git",
56 | "url": "https://github.com/antecedent/patchwork.git",
57 | "reference": "3bb81ace3914c220aa273d1c0603d5e1b454c0d7"
58 | },
59 | "dist": {
60 | "type": "zip",
61 | "url": "https://api.github.com/repos/antecedent/patchwork/zipball/3bb81ace3914c220aa273d1c0603d5e1b454c0d7",
62 | "reference": "3bb81ace3914c220aa273d1c0603d5e1b454c0d7",
63 | "shasum": ""
64 | },
65 | "require": {
66 | "php": ">=5.4.0"
67 | },
68 | "type": "library",
69 | "notification-url": "https://packagist.org/downloads/",
70 | "license": [
71 | "MIT"
72 | ],
73 | "authors": [
74 | {
75 | "name": "Ignas Rudaitis",
76 | "email": "ignas.rudaitis@gmail.com"
77 | }
78 | ],
79 | "description": "Method redefinition (monkey-patching) functionality for PHP.",
80 | "homepage": "http://patchwork2.org/",
81 | "keywords": [
82 | "aop",
83 | "aspect",
84 | "interception",
85 | "monkeypatching",
86 | "redefinition",
87 | "runkit",
88 | "testing"
89 | ],
90 | "time": "2018-02-19T18:52:50+00:00"
91 | },
92 | {
93 | "name": "codeclimate/php-test-reporter",
94 | "version": "v0.4.4",
95 | "source": {
96 | "type": "git",
97 | "url": "https://github.com/codeclimate/php-test-reporter.git",
98 | "reference": "eab9ac233f23a4c12a12755793750f22fc46dd3e"
99 | },
100 | "dist": {
101 | "type": "zip",
102 | "url": "https://api.github.com/repos/codeclimate/php-test-reporter/zipball/eab9ac233f23a4c12a12755793750f22fc46dd3e",
103 | "reference": "eab9ac233f23a4c12a12755793750f22fc46dd3e",
104 | "shasum": ""
105 | },
106 | "require": {
107 | "ext-curl": "*",
108 | "padraic/phar-updater": "^1.0",
109 | "php": "^5.3 || ^7.0",
110 | "psr/log": "^1.0",
111 | "satooshi/php-coveralls": "^1.0",
112 | "symfony/console": "^2.0 || ^3.0"
113 | },
114 | "require-dev": {
115 | "friendsofphp/php-cs-fixer": "^2.0.0",
116 | "phpunit/phpunit": "^4.8.31"
117 | },
118 | "bin": [
119 | "composer/bin/test-reporter"
120 | ],
121 | "type": "library",
122 | "extra": {
123 | "branch-alias": {
124 | "dev-master": "0.3.x-dev"
125 | }
126 | },
127 | "autoload": {
128 | "psr-4": {
129 | "CodeClimate\\PhpTestReporter\\": "src/"
130 | }
131 | },
132 | "notification-url": "https://packagist.org/downloads/",
133 | "license": [
134 | "MIT"
135 | ],
136 | "authors": [
137 | {
138 | "name": "Code Climate",
139 | "email": "hello@codeclimate.com",
140 | "homepage": "https://codeclimate.com"
141 | }
142 | ],
143 | "description": "PHP client for reporting test coverage to Code Climate",
144 | "homepage": "https://github.com/codeclimate/php-test-reporter",
145 | "keywords": [
146 | "codeclimate",
147 | "coverage"
148 | ],
149 | "time": "2017-02-15T22:25:47+00:00"
150 | },
151 | {
152 | "name": "composer/ca-bundle",
153 | "version": "1.1.1",
154 | "source": {
155 | "type": "git",
156 | "url": "https://github.com/composer/ca-bundle.git",
157 | "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169"
158 | },
159 | "dist": {
160 | "type": "zip",
161 | "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d2c0a83b7533d6912e8d516756ebd34f893e9169",
162 | "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169",
163 | "shasum": ""
164 | },
165 | "require": {
166 | "ext-openssl": "*",
167 | "ext-pcre": "*",
168 | "php": "^5.3.2 || ^7.0"
169 | },
170 | "require-dev": {
171 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
172 | "psr/log": "^1.0",
173 | "symfony/process": "^2.5 || ^3.0 || ^4.0"
174 | },
175 | "type": "library",
176 | "extra": {
177 | "branch-alias": {
178 | "dev-master": "1.x-dev"
179 | }
180 | },
181 | "autoload": {
182 | "psr-4": {
183 | "Composer\\CaBundle\\": "src"
184 | }
185 | },
186 | "notification-url": "https://packagist.org/downloads/",
187 | "license": [
188 | "MIT"
189 | ],
190 | "authors": [
191 | {
192 | "name": "Jordi Boggiano",
193 | "email": "j.boggiano@seld.be",
194 | "homepage": "http://seld.be"
195 | }
196 | ],
197 | "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
198 | "keywords": [
199 | "cabundle",
200 | "cacert",
201 | "certificate",
202 | "ssl",
203 | "tls"
204 | ],
205 | "time": "2018-03-29T19:57:20+00:00"
206 | },
207 | {
208 | "name": "doctrine/instantiator",
209 | "version": "1.1.0",
210 | "source": {
211 | "type": "git",
212 | "url": "https://github.com/doctrine/instantiator.git",
213 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
214 | },
215 | "dist": {
216 | "type": "zip",
217 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
218 | "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
219 | "shasum": ""
220 | },
221 | "require": {
222 | "php": "^7.1"
223 | },
224 | "require-dev": {
225 | "athletic/athletic": "~0.1.8",
226 | "ext-pdo": "*",
227 | "ext-phar": "*",
228 | "phpunit/phpunit": "^6.2.3",
229 | "squizlabs/php_codesniffer": "^3.0.2"
230 | },
231 | "type": "library",
232 | "extra": {
233 | "branch-alias": {
234 | "dev-master": "1.2.x-dev"
235 | }
236 | },
237 | "autoload": {
238 | "psr-4": {
239 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
240 | }
241 | },
242 | "notification-url": "https://packagist.org/downloads/",
243 | "license": [
244 | "MIT"
245 | ],
246 | "authors": [
247 | {
248 | "name": "Marco Pivetta",
249 | "email": "ocramius@gmail.com",
250 | "homepage": "http://ocramius.github.com/"
251 | }
252 | ],
253 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
254 | "homepage": "https://github.com/doctrine/instantiator",
255 | "keywords": [
256 | "constructor",
257 | "instantiate"
258 | ],
259 | "time": "2017-07-22T11:58:36+00:00"
260 | },
261 | {
262 | "name": "guzzle/guzzle",
263 | "version": "v3.9.3",
264 | "source": {
265 | "type": "git",
266 | "url": "https://github.com/guzzle/guzzle3.git",
267 | "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
268 | },
269 | "dist": {
270 | "type": "zip",
271 | "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
272 | "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
273 | "shasum": ""
274 | },
275 | "require": {
276 | "ext-curl": "*",
277 | "php": ">=5.3.3",
278 | "symfony/event-dispatcher": "~2.1"
279 | },
280 | "replace": {
281 | "guzzle/batch": "self.version",
282 | "guzzle/cache": "self.version",
283 | "guzzle/common": "self.version",
284 | "guzzle/http": "self.version",
285 | "guzzle/inflection": "self.version",
286 | "guzzle/iterator": "self.version",
287 | "guzzle/log": "self.version",
288 | "guzzle/parser": "self.version",
289 | "guzzle/plugin": "self.version",
290 | "guzzle/plugin-async": "self.version",
291 | "guzzle/plugin-backoff": "self.version",
292 | "guzzle/plugin-cache": "self.version",
293 | "guzzle/plugin-cookie": "self.version",
294 | "guzzle/plugin-curlauth": "self.version",
295 | "guzzle/plugin-error-response": "self.version",
296 | "guzzle/plugin-history": "self.version",
297 | "guzzle/plugin-log": "self.version",
298 | "guzzle/plugin-md5": "self.version",
299 | "guzzle/plugin-mock": "self.version",
300 | "guzzle/plugin-oauth": "self.version",
301 | "guzzle/service": "self.version",
302 | "guzzle/stream": "self.version"
303 | },
304 | "require-dev": {
305 | "doctrine/cache": "~1.3",
306 | "monolog/monolog": "~1.0",
307 | "phpunit/phpunit": "3.7.*",
308 | "psr/log": "~1.0",
309 | "symfony/class-loader": "~2.1",
310 | "zendframework/zend-cache": "2.*,<2.3",
311 | "zendframework/zend-log": "2.*,<2.3"
312 | },
313 | "suggest": {
314 | "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
315 | },
316 | "type": "library",
317 | "extra": {
318 | "branch-alias": {
319 | "dev-master": "3.9-dev"
320 | }
321 | },
322 | "autoload": {
323 | "psr-0": {
324 | "Guzzle": "src/",
325 | "Guzzle\\Tests": "tests/"
326 | }
327 | },
328 | "notification-url": "https://packagist.org/downloads/",
329 | "license": [
330 | "MIT"
331 | ],
332 | "authors": [
333 | {
334 | "name": "Michael Dowling",
335 | "email": "mtdowling@gmail.com",
336 | "homepage": "https://github.com/mtdowling"
337 | },
338 | {
339 | "name": "Guzzle Community",
340 | "homepage": "https://github.com/guzzle/guzzle/contributors"
341 | }
342 | ],
343 | "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
344 | "homepage": "http://guzzlephp.org/",
345 | "keywords": [
346 | "client",
347 | "curl",
348 | "framework",
349 | "http",
350 | "http client",
351 | "rest",
352 | "web service"
353 | ],
354 | "abandoned": "guzzlehttp/guzzle",
355 | "time": "2015-03-18T18:23:50+00:00"
356 | },
357 | {
358 | "name": "hamcrest/hamcrest-php",
359 | "version": "v2.0.0",
360 | "source": {
361 | "type": "git",
362 | "url": "https://github.com/hamcrest/hamcrest-php.git",
363 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad"
364 | },
365 | "dist": {
366 | "type": "zip",
367 | "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad",
368 | "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad",
369 | "shasum": ""
370 | },
371 | "require": {
372 | "php": "^5.3|^7.0"
373 | },
374 | "replace": {
375 | "cordoval/hamcrest-php": "*",
376 | "davedevelopment/hamcrest-php": "*",
377 | "kodova/hamcrest-php": "*"
378 | },
379 | "require-dev": {
380 | "phpunit/php-file-iterator": "1.3.3",
381 | "phpunit/phpunit": "~4.0",
382 | "satooshi/php-coveralls": "^1.0"
383 | },
384 | "type": "library",
385 | "extra": {
386 | "branch-alias": {
387 | "dev-master": "2.0-dev"
388 | }
389 | },
390 | "autoload": {
391 | "classmap": [
392 | "hamcrest"
393 | ]
394 | },
395 | "notification-url": "https://packagist.org/downloads/",
396 | "license": [
397 | "BSD"
398 | ],
399 | "description": "This is the PHP port of Hamcrest Matchers",
400 | "keywords": [
401 | "test"
402 | ],
403 | "time": "2016-01-20T08:20:44+00:00"
404 | },
405 | {
406 | "name": "mockery/mockery",
407 | "version": "1.0",
408 | "source": {
409 | "type": "git",
410 | "url": "https://github.com/mockery/mockery.git",
411 | "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38"
412 | },
413 | "dist": {
414 | "type": "zip",
415 | "url": "https://api.github.com/repos/mockery/mockery/zipball/1bac8c362b12f522fdd1f1fa3556284c91affa38",
416 | "reference": "1bac8c362b12f522fdd1f1fa3556284c91affa38",
417 | "shasum": ""
418 | },
419 | "require": {
420 | "hamcrest/hamcrest-php": "~2.0",
421 | "lib-pcre": ">=7.0",
422 | "php": ">=5.6.0"
423 | },
424 | "require-dev": {
425 | "phpunit/phpunit": "~5.7|~6.1"
426 | },
427 | "type": "library",
428 | "extra": {
429 | "branch-alias": {
430 | "dev-master": "1.0.x-dev"
431 | }
432 | },
433 | "autoload": {
434 | "psr-0": {
435 | "Mockery": "library/"
436 | }
437 | },
438 | "notification-url": "https://packagist.org/downloads/",
439 | "license": [
440 | "BSD-3-Clause"
441 | ],
442 | "authors": [
443 | {
444 | "name": "Pádraic Brady",
445 | "email": "padraic.brady@gmail.com",
446 | "homepage": "http://blog.astrumfutura.com"
447 | },
448 | {
449 | "name": "Dave Marshall",
450 | "email": "dave.marshall@atstsolutions.co.uk",
451 | "homepage": "http://davedevelopment.co.uk"
452 | }
453 | ],
454 | "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.",
455 | "homepage": "http://github.com/mockery/mockery",
456 | "keywords": [
457 | "BDD",
458 | "TDD",
459 | "library",
460 | "mock",
461 | "mock objects",
462 | "mockery",
463 | "stub",
464 | "test",
465 | "test double",
466 | "testing"
467 | ],
468 | "time": "2017-10-06T16:20:43+00:00"
469 | },
470 | {
471 | "name": "myclabs/deep-copy",
472 | "version": "1.7.0",
473 | "source": {
474 | "type": "git",
475 | "url": "https://github.com/myclabs/DeepCopy.git",
476 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
477 | },
478 | "dist": {
479 | "type": "zip",
480 | "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
481 | "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
482 | "shasum": ""
483 | },
484 | "require": {
485 | "php": "^5.6 || ^7.0"
486 | },
487 | "require-dev": {
488 | "doctrine/collections": "^1.0",
489 | "doctrine/common": "^2.6",
490 | "phpunit/phpunit": "^4.1"
491 | },
492 | "type": "library",
493 | "autoload": {
494 | "psr-4": {
495 | "DeepCopy\\": "src/DeepCopy/"
496 | },
497 | "files": [
498 | "src/DeepCopy/deep_copy.php"
499 | ]
500 | },
501 | "notification-url": "https://packagist.org/downloads/",
502 | "license": [
503 | "MIT"
504 | ],
505 | "description": "Create deep copies (clones) of your objects",
506 | "keywords": [
507 | "clone",
508 | "copy",
509 | "duplicate",
510 | "object",
511 | "object graph"
512 | ],
513 | "time": "2017-10-19T19:58:43+00:00"
514 | },
515 | {
516 | "name": "padraic/humbug_get_contents",
517 | "version": "1.1.2",
518 | "source": {
519 | "type": "git",
520 | "url": "https://github.com/humbug/file_get_contents.git",
521 | "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7"
522 | },
523 | "dist": {
524 | "type": "zip",
525 | "url": "https://api.github.com/repos/humbug/file_get_contents/zipball/dcb086060c9dd6b2f51d8f7a895500307110b7a7",
526 | "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7",
527 | "shasum": ""
528 | },
529 | "require": {
530 | "composer/ca-bundle": "^1.0",
531 | "ext-openssl": "*",
532 | "php": "^5.3 || ^7.0 || ^7.1 || ^7.2"
533 | },
534 | "require-dev": {
535 | "bamarni/composer-bin-plugin": "^1.1",
536 | "mikey179/vfsstream": "^1.6",
537 | "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5"
538 | },
539 | "type": "library",
540 | "extra": {
541 | "bamarni-bin": {
542 | "bin-links": false
543 | },
544 | "branch-alias": {
545 | "dev-master": "2.0-dev"
546 | }
547 | },
548 | "autoload": {
549 | "psr-4": {
550 | "Humbug\\": "src/"
551 | },
552 | "files": [
553 | "src/function.php",
554 | "src/functions.php"
555 | ]
556 | },
557 | "notification-url": "https://packagist.org/downloads/",
558 | "license": [
559 | "BSD-3-Clause"
560 | ],
561 | "authors": [
562 | {
563 | "name": "Padraic Brady",
564 | "email": "padraic.brady@gmail.com",
565 | "homepage": "http://blog.astrumfutura.com"
566 | },
567 | {
568 | "name": "Théo Fidry",
569 | "email": "theo.fidry@gmail.com"
570 | }
571 | ],
572 | "description": "Secure wrapper for accessing HTTPS resources with file_get_contents for PHP 5.3+",
573 | "homepage": "https://github.com/padraic/file_get_contents",
574 | "keywords": [
575 | "download",
576 | "file_get_contents",
577 | "http",
578 | "https",
579 | "ssl",
580 | "tls"
581 | ],
582 | "time": "2018-02-12T18:47:17+00:00"
583 | },
584 | {
585 | "name": "padraic/phar-updater",
586 | "version": "v1.0.6",
587 | "source": {
588 | "type": "git",
589 | "url": "https://github.com/humbug/phar-updater.git",
590 | "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1"
591 | },
592 | "dist": {
593 | "type": "zip",
594 | "url": "https://api.github.com/repos/humbug/phar-updater/zipball/d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1",
595 | "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1",
596 | "shasum": ""
597 | },
598 | "require": {
599 | "padraic/humbug_get_contents": "^1.0",
600 | "php": ">=5.3.3"
601 | },
602 | "require-dev": {
603 | "phpunit/phpunit": "~4.0"
604 | },
605 | "type": "library",
606 | "extra": {
607 | "branch-alias": {
608 | "dev-master": "1.0-dev"
609 | }
610 | },
611 | "autoload": {
612 | "psr-4": {
613 | "Humbug\\SelfUpdate\\": "src/"
614 | }
615 | },
616 | "notification-url": "https://packagist.org/downloads/",
617 | "license": [
618 | "BSD-3-Clause"
619 | ],
620 | "authors": [
621 | {
622 | "name": "Padraic Brady",
623 | "email": "padraic.brady@gmail.com",
624 | "homepage": "http://blog.astrumfutura.com"
625 | }
626 | ],
627 | "description": "A thing to make PHAR self-updating easy and secure.",
628 | "keywords": [
629 | "humbug",
630 | "phar",
631 | "self-update",
632 | "update"
633 | ],
634 | "time": "2018-03-30T12:52:15+00:00"
635 | },
636 | {
637 | "name": "phar-io/manifest",
638 | "version": "1.0.1",
639 | "source": {
640 | "type": "git",
641 | "url": "https://github.com/phar-io/manifest.git",
642 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0"
643 | },
644 | "dist": {
645 | "type": "zip",
646 | "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0",
647 | "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0",
648 | "shasum": ""
649 | },
650 | "require": {
651 | "ext-dom": "*",
652 | "ext-phar": "*",
653 | "phar-io/version": "^1.0.1",
654 | "php": "^5.6 || ^7.0"
655 | },
656 | "type": "library",
657 | "extra": {
658 | "branch-alias": {
659 | "dev-master": "1.0.x-dev"
660 | }
661 | },
662 | "autoload": {
663 | "classmap": [
664 | "src/"
665 | ]
666 | },
667 | "notification-url": "https://packagist.org/downloads/",
668 | "license": [
669 | "BSD-3-Clause"
670 | ],
671 | "authors": [
672 | {
673 | "name": "Arne Blankerts",
674 | "email": "arne@blankerts.de",
675 | "role": "Developer"
676 | },
677 | {
678 | "name": "Sebastian Heuer",
679 | "email": "sebastian@phpeople.de",
680 | "role": "Developer"
681 | },
682 | {
683 | "name": "Sebastian Bergmann",
684 | "email": "sebastian@phpunit.de",
685 | "role": "Developer"
686 | }
687 | ],
688 | "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
689 | "time": "2017-03-05T18:14:27+00:00"
690 | },
691 | {
692 | "name": "phar-io/version",
693 | "version": "1.0.1",
694 | "source": {
695 | "type": "git",
696 | "url": "https://github.com/phar-io/version.git",
697 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df"
698 | },
699 | "dist": {
700 | "type": "zip",
701 | "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df",
702 | "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df",
703 | "shasum": ""
704 | },
705 | "require": {
706 | "php": "^5.6 || ^7.0"
707 | },
708 | "type": "library",
709 | "autoload": {
710 | "classmap": [
711 | "src/"
712 | ]
713 | },
714 | "notification-url": "https://packagist.org/downloads/",
715 | "license": [
716 | "BSD-3-Clause"
717 | ],
718 | "authors": [
719 | {
720 | "name": "Arne Blankerts",
721 | "email": "arne@blankerts.de",
722 | "role": "Developer"
723 | },
724 | {
725 | "name": "Sebastian Heuer",
726 | "email": "sebastian@phpeople.de",
727 | "role": "Developer"
728 | },
729 | {
730 | "name": "Sebastian Bergmann",
731 | "email": "sebastian@phpunit.de",
732 | "role": "Developer"
733 | }
734 | ],
735 | "description": "Library for handling version information and constraints",
736 | "time": "2017-03-05T17:38:23+00:00"
737 | },
738 | {
739 | "name": "phpdocumentor/reflection-common",
740 | "version": "1.0.1",
741 | "source": {
742 | "type": "git",
743 | "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
744 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
745 | },
746 | "dist": {
747 | "type": "zip",
748 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
749 | "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
750 | "shasum": ""
751 | },
752 | "require": {
753 | "php": ">=5.5"
754 | },
755 | "require-dev": {
756 | "phpunit/phpunit": "^4.6"
757 | },
758 | "type": "library",
759 | "extra": {
760 | "branch-alias": {
761 | "dev-master": "1.0.x-dev"
762 | }
763 | },
764 | "autoload": {
765 | "psr-4": {
766 | "phpDocumentor\\Reflection\\": [
767 | "src"
768 | ]
769 | }
770 | },
771 | "notification-url": "https://packagist.org/downloads/",
772 | "license": [
773 | "MIT"
774 | ],
775 | "authors": [
776 | {
777 | "name": "Jaap van Otterdijk",
778 | "email": "opensource@ijaap.nl"
779 | }
780 | ],
781 | "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
782 | "homepage": "http://www.phpdoc.org",
783 | "keywords": [
784 | "FQSEN",
785 | "phpDocumentor",
786 | "phpdoc",
787 | "reflection",
788 | "static analysis"
789 | ],
790 | "time": "2017-09-11T18:02:19+00:00"
791 | },
792 | {
793 | "name": "phpdocumentor/reflection-docblock",
794 | "version": "4.3.0",
795 | "source": {
796 | "type": "git",
797 | "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
798 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
799 | },
800 | "dist": {
801 | "type": "zip",
802 | "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
803 | "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
804 | "shasum": ""
805 | },
806 | "require": {
807 | "php": "^7.0",
808 | "phpdocumentor/reflection-common": "^1.0.0",
809 | "phpdocumentor/type-resolver": "^0.4.0",
810 | "webmozart/assert": "^1.0"
811 | },
812 | "require-dev": {
813 | "doctrine/instantiator": "~1.0.5",
814 | "mockery/mockery": "^1.0",
815 | "phpunit/phpunit": "^6.4"
816 | },
817 | "type": "library",
818 | "extra": {
819 | "branch-alias": {
820 | "dev-master": "4.x-dev"
821 | }
822 | },
823 | "autoload": {
824 | "psr-4": {
825 | "phpDocumentor\\Reflection\\": [
826 | "src/"
827 | ]
828 | }
829 | },
830 | "notification-url": "https://packagist.org/downloads/",
831 | "license": [
832 | "MIT"
833 | ],
834 | "authors": [
835 | {
836 | "name": "Mike van Riel",
837 | "email": "me@mikevanriel.com"
838 | }
839 | ],
840 | "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
841 | "time": "2017-11-30T07:14:17+00:00"
842 | },
843 | {
844 | "name": "phpdocumentor/type-resolver",
845 | "version": "0.4.0",
846 | "source": {
847 | "type": "git",
848 | "url": "https://github.com/phpDocumentor/TypeResolver.git",
849 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
850 | },
851 | "dist": {
852 | "type": "zip",
853 | "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
854 | "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
855 | "shasum": ""
856 | },
857 | "require": {
858 | "php": "^5.5 || ^7.0",
859 | "phpdocumentor/reflection-common": "^1.0"
860 | },
861 | "require-dev": {
862 | "mockery/mockery": "^0.9.4",
863 | "phpunit/phpunit": "^5.2||^4.8.24"
864 | },
865 | "type": "library",
866 | "extra": {
867 | "branch-alias": {
868 | "dev-master": "1.0.x-dev"
869 | }
870 | },
871 | "autoload": {
872 | "psr-4": {
873 | "phpDocumentor\\Reflection\\": [
874 | "src/"
875 | ]
876 | }
877 | },
878 | "notification-url": "https://packagist.org/downloads/",
879 | "license": [
880 | "MIT"
881 | ],
882 | "authors": [
883 | {
884 | "name": "Mike van Riel",
885 | "email": "me@mikevanriel.com"
886 | }
887 | ],
888 | "time": "2017-07-14T14:27:02+00:00"
889 | },
890 | {
891 | "name": "phpspec/prophecy",
892 | "version": "1.7.6",
893 | "source": {
894 | "type": "git",
895 | "url": "https://github.com/phpspec/prophecy.git",
896 | "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712"
897 | },
898 | "dist": {
899 | "type": "zip",
900 | "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
901 | "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
902 | "shasum": ""
903 | },
904 | "require": {
905 | "doctrine/instantiator": "^1.0.2",
906 | "php": "^5.3|^7.0",
907 | "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
908 | "sebastian/comparator": "^1.1|^2.0|^3.0",
909 | "sebastian/recursion-context": "^1.0|^2.0|^3.0"
910 | },
911 | "require-dev": {
912 | "phpspec/phpspec": "^2.5|^3.2",
913 | "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
914 | },
915 | "type": "library",
916 | "extra": {
917 | "branch-alias": {
918 | "dev-master": "1.7.x-dev"
919 | }
920 | },
921 | "autoload": {
922 | "psr-0": {
923 | "Prophecy\\": "src/"
924 | }
925 | },
926 | "notification-url": "https://packagist.org/downloads/",
927 | "license": [
928 | "MIT"
929 | ],
930 | "authors": [
931 | {
932 | "name": "Konstantin Kudryashov",
933 | "email": "ever.zet@gmail.com",
934 | "homepage": "http://everzet.com"
935 | },
936 | {
937 | "name": "Marcello Duarte",
938 | "email": "marcello.duarte@gmail.com"
939 | }
940 | ],
941 | "description": "Highly opinionated mocking framework for PHP 5.3+",
942 | "homepage": "https://github.com/phpspec/prophecy",
943 | "keywords": [
944 | "Double",
945 | "Dummy",
946 | "fake",
947 | "mock",
948 | "spy",
949 | "stub"
950 | ],
951 | "time": "2018-04-18T13:57:24+00:00"
952 | },
953 | {
954 | "name": "phpunit/php-code-coverage",
955 | "version": "6.0.3",
956 | "source": {
957 | "type": "git",
958 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
959 | "reference": "774a82c0c5da4c1c7701790c262035d235ab7856"
960 | },
961 | "dist": {
962 | "type": "zip",
963 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/774a82c0c5da4c1c7701790c262035d235ab7856",
964 | "reference": "774a82c0c5da4c1c7701790c262035d235ab7856",
965 | "shasum": ""
966 | },
967 | "require": {
968 | "ext-dom": "*",
969 | "ext-xmlwriter": "*",
970 | "php": "^7.1",
971 | "phpunit/php-file-iterator": "^1.4.2",
972 | "phpunit/php-text-template": "^1.2.1",
973 | "phpunit/php-token-stream": "^3.0",
974 | "sebastian/code-unit-reverse-lookup": "^1.0.1",
975 | "sebastian/environment": "^3.1",
976 | "sebastian/version": "^2.0.1",
977 | "theseer/tokenizer": "^1.1"
978 | },
979 | "require-dev": {
980 | "phpunit/phpunit": "^7.0"
981 | },
982 | "suggest": {
983 | "ext-xdebug": "^2.6.0"
984 | },
985 | "type": "library",
986 | "extra": {
987 | "branch-alias": {
988 | "dev-master": "6.0-dev"
989 | }
990 | },
991 | "autoload": {
992 | "classmap": [
993 | "src/"
994 | ]
995 | },
996 | "notification-url": "https://packagist.org/downloads/",
997 | "license": [
998 | "BSD-3-Clause"
999 | ],
1000 | "authors": [
1001 | {
1002 | "name": "Sebastian Bergmann",
1003 | "email": "sebastian@phpunit.de",
1004 | "role": "lead"
1005 | }
1006 | ],
1007 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1008 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1009 | "keywords": [
1010 | "coverage",
1011 | "testing",
1012 | "xunit"
1013 | ],
1014 | "time": "2018-04-06T15:39:20+00:00"
1015 | },
1016 | {
1017 | "name": "phpunit/php-file-iterator",
1018 | "version": "1.4.5",
1019 | "source": {
1020 | "type": "git",
1021 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1022 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
1023 | },
1024 | "dist": {
1025 | "type": "zip",
1026 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
1027 | "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
1028 | "shasum": ""
1029 | },
1030 | "require": {
1031 | "php": ">=5.3.3"
1032 | },
1033 | "type": "library",
1034 | "extra": {
1035 | "branch-alias": {
1036 | "dev-master": "1.4.x-dev"
1037 | }
1038 | },
1039 | "autoload": {
1040 | "classmap": [
1041 | "src/"
1042 | ]
1043 | },
1044 | "notification-url": "https://packagist.org/downloads/",
1045 | "license": [
1046 | "BSD-3-Clause"
1047 | ],
1048 | "authors": [
1049 | {
1050 | "name": "Sebastian Bergmann",
1051 | "email": "sb@sebastian-bergmann.de",
1052 | "role": "lead"
1053 | }
1054 | ],
1055 | "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1056 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1057 | "keywords": [
1058 | "filesystem",
1059 | "iterator"
1060 | ],
1061 | "time": "2017-11-27T13:52:08+00:00"
1062 | },
1063 | {
1064 | "name": "phpunit/php-text-template",
1065 | "version": "1.2.1",
1066 | "source": {
1067 | "type": "git",
1068 | "url": "https://github.com/sebastianbergmann/php-text-template.git",
1069 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1070 | },
1071 | "dist": {
1072 | "type": "zip",
1073 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1074 | "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1075 | "shasum": ""
1076 | },
1077 | "require": {
1078 | "php": ">=5.3.3"
1079 | },
1080 | "type": "library",
1081 | "autoload": {
1082 | "classmap": [
1083 | "src/"
1084 | ]
1085 | },
1086 | "notification-url": "https://packagist.org/downloads/",
1087 | "license": [
1088 | "BSD-3-Clause"
1089 | ],
1090 | "authors": [
1091 | {
1092 | "name": "Sebastian Bergmann",
1093 | "email": "sebastian@phpunit.de",
1094 | "role": "lead"
1095 | }
1096 | ],
1097 | "description": "Simple template engine.",
1098 | "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1099 | "keywords": [
1100 | "template"
1101 | ],
1102 | "time": "2015-06-21T13:50:34+00:00"
1103 | },
1104 | {
1105 | "name": "phpunit/php-timer",
1106 | "version": "2.0.0",
1107 | "source": {
1108 | "type": "git",
1109 | "url": "https://github.com/sebastianbergmann/php-timer.git",
1110 | "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f"
1111 | },
1112 | "dist": {
1113 | "type": "zip",
1114 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f",
1115 | "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f",
1116 | "shasum": ""
1117 | },
1118 | "require": {
1119 | "php": "^7.1"
1120 | },
1121 | "require-dev": {
1122 | "phpunit/phpunit": "^7.0"
1123 | },
1124 | "type": "library",
1125 | "extra": {
1126 | "branch-alias": {
1127 | "dev-master": "2.0-dev"
1128 | }
1129 | },
1130 | "autoload": {
1131 | "classmap": [
1132 | "src/"
1133 | ]
1134 | },
1135 | "notification-url": "https://packagist.org/downloads/",
1136 | "license": [
1137 | "BSD-3-Clause"
1138 | ],
1139 | "authors": [
1140 | {
1141 | "name": "Sebastian Bergmann",
1142 | "email": "sebastian@phpunit.de",
1143 | "role": "lead"
1144 | }
1145 | ],
1146 | "description": "Utility class for timing",
1147 | "homepage": "https://github.com/sebastianbergmann/php-timer/",
1148 | "keywords": [
1149 | "timer"
1150 | ],
1151 | "time": "2018-02-01T13:07:23+00:00"
1152 | },
1153 | {
1154 | "name": "phpunit/php-token-stream",
1155 | "version": "3.0.0",
1156 | "source": {
1157 | "type": "git",
1158 | "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1159 | "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace"
1160 | },
1161 | "dist": {
1162 | "type": "zip",
1163 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace",
1164 | "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace",
1165 | "shasum": ""
1166 | },
1167 | "require": {
1168 | "ext-tokenizer": "*",
1169 | "php": "^7.1"
1170 | },
1171 | "require-dev": {
1172 | "phpunit/phpunit": "^7.0"
1173 | },
1174 | "type": "library",
1175 | "extra": {
1176 | "branch-alias": {
1177 | "dev-master": "3.0-dev"
1178 | }
1179 | },
1180 | "autoload": {
1181 | "classmap": [
1182 | "src/"
1183 | ]
1184 | },
1185 | "notification-url": "https://packagist.org/downloads/",
1186 | "license": [
1187 | "BSD-3-Clause"
1188 | ],
1189 | "authors": [
1190 | {
1191 | "name": "Sebastian Bergmann",
1192 | "email": "sebastian@phpunit.de"
1193 | }
1194 | ],
1195 | "description": "Wrapper around PHP's tokenizer extension.",
1196 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1197 | "keywords": [
1198 | "tokenizer"
1199 | ],
1200 | "time": "2018-02-01T13:16:43+00:00"
1201 | },
1202 | {
1203 | "name": "phpunit/phpunit",
1204 | "version": "7.1.4",
1205 | "source": {
1206 | "type": "git",
1207 | "url": "https://github.com/sebastianbergmann/phpunit.git",
1208 | "reference": "6d51299e307dc510149e0b7cd1931dd11770e1cb"
1209 | },
1210 | "dist": {
1211 | "type": "zip",
1212 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6d51299e307dc510149e0b7cd1931dd11770e1cb",
1213 | "reference": "6d51299e307dc510149e0b7cd1931dd11770e1cb",
1214 | "shasum": ""
1215 | },
1216 | "require": {
1217 | "ext-dom": "*",
1218 | "ext-json": "*",
1219 | "ext-libxml": "*",
1220 | "ext-mbstring": "*",
1221 | "ext-xml": "*",
1222 | "myclabs/deep-copy": "^1.6.1",
1223 | "phar-io/manifest": "^1.0.1",
1224 | "phar-io/version": "^1.0",
1225 | "php": "^7.1",
1226 | "phpspec/prophecy": "^1.7",
1227 | "phpunit/php-code-coverage": "^6.0.1",
1228 | "phpunit/php-file-iterator": "^1.4.3",
1229 | "phpunit/php-text-template": "^1.2.1",
1230 | "phpunit/php-timer": "^2.0",
1231 | "phpunit/phpunit-mock-objects": "^6.1.1",
1232 | "sebastian/comparator": "^2.1 || ^3.0",
1233 | "sebastian/diff": "^3.0",
1234 | "sebastian/environment": "^3.1",
1235 | "sebastian/exporter": "^3.1",
1236 | "sebastian/global-state": "^2.0",
1237 | "sebastian/object-enumerator": "^3.0.3",
1238 | "sebastian/resource-operations": "^1.0",
1239 | "sebastian/version": "^2.0.1"
1240 | },
1241 | "require-dev": {
1242 | "ext-pdo": "*"
1243 | },
1244 | "suggest": {
1245 | "ext-xdebug": "*",
1246 | "phpunit/php-invoker": "^2.0"
1247 | },
1248 | "bin": [
1249 | "phpunit"
1250 | ],
1251 | "type": "library",
1252 | "extra": {
1253 | "branch-alias": {
1254 | "dev-master": "7.1-dev"
1255 | }
1256 | },
1257 | "autoload": {
1258 | "classmap": [
1259 | "src/"
1260 | ]
1261 | },
1262 | "notification-url": "https://packagist.org/downloads/",
1263 | "license": [
1264 | "BSD-3-Clause"
1265 | ],
1266 | "authors": [
1267 | {
1268 | "name": "Sebastian Bergmann",
1269 | "email": "sebastian@phpunit.de",
1270 | "role": "lead"
1271 | }
1272 | ],
1273 | "description": "The PHP Unit Testing framework.",
1274 | "homepage": "https://phpunit.de/",
1275 | "keywords": [
1276 | "phpunit",
1277 | "testing",
1278 | "xunit"
1279 | ],
1280 | "time": "2018-04-18T13:41:53+00:00"
1281 | },
1282 | {
1283 | "name": "phpunit/phpunit-mock-objects",
1284 | "version": "6.1.1",
1285 | "source": {
1286 | "type": "git",
1287 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1288 | "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157"
1289 | },
1290 | "dist": {
1291 | "type": "zip",
1292 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/70c740bde8fd9ea9ea295be1cd875dd7b267e157",
1293 | "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157",
1294 | "shasum": ""
1295 | },
1296 | "require": {
1297 | "doctrine/instantiator": "^1.0.5",
1298 | "php": "^7.1",
1299 | "phpunit/php-text-template": "^1.2.1",
1300 | "sebastian/exporter": "^3.1"
1301 | },
1302 | "require-dev": {
1303 | "phpunit/phpunit": "^7.0"
1304 | },
1305 | "suggest": {
1306 | "ext-soap": "*"
1307 | },
1308 | "type": "library",
1309 | "extra": {
1310 | "branch-alias": {
1311 | "dev-master": "6.1-dev"
1312 | }
1313 | },
1314 | "autoload": {
1315 | "classmap": [
1316 | "src/"
1317 | ]
1318 | },
1319 | "notification-url": "https://packagist.org/downloads/",
1320 | "license": [
1321 | "BSD-3-Clause"
1322 | ],
1323 | "authors": [
1324 | {
1325 | "name": "Sebastian Bergmann",
1326 | "email": "sebastian@phpunit.de",
1327 | "role": "lead"
1328 | }
1329 | ],
1330 | "description": "Mock Object library for PHPUnit",
1331 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1332 | "keywords": [
1333 | "mock",
1334 | "xunit"
1335 | ],
1336 | "time": "2018-04-11T04:50:36+00:00"
1337 | },
1338 | {
1339 | "name": "psr/log",
1340 | "version": "1.0.2",
1341 | "source": {
1342 | "type": "git",
1343 | "url": "https://github.com/php-fig/log.git",
1344 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1345 | },
1346 | "dist": {
1347 | "type": "zip",
1348 | "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1349 | "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1350 | "shasum": ""
1351 | },
1352 | "require": {
1353 | "php": ">=5.3.0"
1354 | },
1355 | "type": "library",
1356 | "extra": {
1357 | "branch-alias": {
1358 | "dev-master": "1.0.x-dev"
1359 | }
1360 | },
1361 | "autoload": {
1362 | "psr-4": {
1363 | "Psr\\Log\\": "Psr/Log/"
1364 | }
1365 | },
1366 | "notification-url": "https://packagist.org/downloads/",
1367 | "license": [
1368 | "MIT"
1369 | ],
1370 | "authors": [
1371 | {
1372 | "name": "PHP-FIG",
1373 | "homepage": "http://www.php-fig.org/"
1374 | }
1375 | ],
1376 | "description": "Common interface for logging libraries",
1377 | "homepage": "https://github.com/php-fig/log",
1378 | "keywords": [
1379 | "log",
1380 | "psr",
1381 | "psr-3"
1382 | ],
1383 | "time": "2016-10-10T12:19:37+00:00"
1384 | },
1385 | {
1386 | "name": "satooshi/php-coveralls",
1387 | "version": "v1.1.0",
1388 | "source": {
1389 | "type": "git",
1390 | "url": "https://github.com/php-coveralls/php-coveralls.git",
1391 | "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad"
1392 | },
1393 | "dist": {
1394 | "type": "zip",
1395 | "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad",
1396 | "reference": "37f8f83fe22224eb9d9c6d593cdeb33eedd2a9ad",
1397 | "shasum": ""
1398 | },
1399 | "require": {
1400 | "ext-json": "*",
1401 | "ext-simplexml": "*",
1402 | "guzzle/guzzle": "^2.8 || ^3.0",
1403 | "php": "^5.3.3 || ^7.0",
1404 | "psr/log": "^1.0",
1405 | "symfony/config": "^2.1 || ^3.0 || ^4.0",
1406 | "symfony/console": "^2.1 || ^3.0 || ^4.0",
1407 | "symfony/stopwatch": "^2.0 || ^3.0 || ^4.0",
1408 | "symfony/yaml": "^2.0 || ^3.0 || ^4.0"
1409 | },
1410 | "require-dev": {
1411 | "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0"
1412 | },
1413 | "suggest": {
1414 | "symfony/http-kernel": "Allows Symfony integration"
1415 | },
1416 | "bin": [
1417 | "bin/coveralls"
1418 | ],
1419 | "type": "library",
1420 | "autoload": {
1421 | "psr-4": {
1422 | "Satooshi\\": "src/Satooshi/"
1423 | }
1424 | },
1425 | "notification-url": "https://packagist.org/downloads/",
1426 | "license": [
1427 | "MIT"
1428 | ],
1429 | "authors": [
1430 | {
1431 | "name": "Kitamura Satoshi",
1432 | "email": "with.no.parachute@gmail.com",
1433 | "homepage": "https://www.facebook.com/satooshi.jp"
1434 | }
1435 | ],
1436 | "description": "PHP client library for Coveralls API",
1437 | "homepage": "https://github.com/php-coveralls/php-coveralls",
1438 | "keywords": [
1439 | "ci",
1440 | "coverage",
1441 | "github",
1442 | "test"
1443 | ],
1444 | "time": "2017-12-06T23:17:56+00:00"
1445 | },
1446 | {
1447 | "name": "sebastian/code-unit-reverse-lookup",
1448 | "version": "1.0.1",
1449 | "source": {
1450 | "type": "git",
1451 | "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1452 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1453 | },
1454 | "dist": {
1455 | "type": "zip",
1456 | "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1457 | "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1458 | "shasum": ""
1459 | },
1460 | "require": {
1461 | "php": "^5.6 || ^7.0"
1462 | },
1463 | "require-dev": {
1464 | "phpunit/phpunit": "^5.7 || ^6.0"
1465 | },
1466 | "type": "library",
1467 | "extra": {
1468 | "branch-alias": {
1469 | "dev-master": "1.0.x-dev"
1470 | }
1471 | },
1472 | "autoload": {
1473 | "classmap": [
1474 | "src/"
1475 | ]
1476 | },
1477 | "notification-url": "https://packagist.org/downloads/",
1478 | "license": [
1479 | "BSD-3-Clause"
1480 | ],
1481 | "authors": [
1482 | {
1483 | "name": "Sebastian Bergmann",
1484 | "email": "sebastian@phpunit.de"
1485 | }
1486 | ],
1487 | "description": "Looks up which function or method a line of code belongs to",
1488 | "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1489 | "time": "2017-03-04T06:30:41+00:00"
1490 | },
1491 | {
1492 | "name": "sebastian/comparator",
1493 | "version": "3.0.0",
1494 | "source": {
1495 | "type": "git",
1496 | "url": "https://github.com/sebastianbergmann/comparator.git",
1497 | "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5"
1498 | },
1499 | "dist": {
1500 | "type": "zip",
1501 | "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ed5fd2281113729f1ebcc64d101ad66028aeb3d5",
1502 | "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5",
1503 | "shasum": ""
1504 | },
1505 | "require": {
1506 | "php": "^7.1",
1507 | "sebastian/diff": "^3.0",
1508 | "sebastian/exporter": "^3.1"
1509 | },
1510 | "require-dev": {
1511 | "phpunit/phpunit": "^7.1"
1512 | },
1513 | "type": "library",
1514 | "extra": {
1515 | "branch-alias": {
1516 | "dev-master": "3.0-dev"
1517 | }
1518 | },
1519 | "autoload": {
1520 | "classmap": [
1521 | "src/"
1522 | ]
1523 | },
1524 | "notification-url": "https://packagist.org/downloads/",
1525 | "license": [
1526 | "BSD-3-Clause"
1527 | ],
1528 | "authors": [
1529 | {
1530 | "name": "Jeff Welch",
1531 | "email": "whatthejeff@gmail.com"
1532 | },
1533 | {
1534 | "name": "Volker Dusch",
1535 | "email": "github@wallbash.com"
1536 | },
1537 | {
1538 | "name": "Bernhard Schussek",
1539 | "email": "bschussek@2bepublished.at"
1540 | },
1541 | {
1542 | "name": "Sebastian Bergmann",
1543 | "email": "sebastian@phpunit.de"
1544 | }
1545 | ],
1546 | "description": "Provides the functionality to compare PHP values for equality",
1547 | "homepage": "https://github.com/sebastianbergmann/comparator",
1548 | "keywords": [
1549 | "comparator",
1550 | "compare",
1551 | "equality"
1552 | ],
1553 | "time": "2018-04-18T13:33:00+00:00"
1554 | },
1555 | {
1556 | "name": "sebastian/diff",
1557 | "version": "3.0.0",
1558 | "source": {
1559 | "type": "git",
1560 | "url": "https://github.com/sebastianbergmann/diff.git",
1561 | "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8"
1562 | },
1563 | "dist": {
1564 | "type": "zip",
1565 | "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/e09160918c66281713f1c324c1f4c4c3037ba1e8",
1566 | "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8",
1567 | "shasum": ""
1568 | },
1569 | "require": {
1570 | "php": "^7.1"
1571 | },
1572 | "require-dev": {
1573 | "phpunit/phpunit": "^7.0",
1574 | "symfony/process": "^2 || ^3.3 || ^4"
1575 | },
1576 | "type": "library",
1577 | "extra": {
1578 | "branch-alias": {
1579 | "dev-master": "3.0-dev"
1580 | }
1581 | },
1582 | "autoload": {
1583 | "classmap": [
1584 | "src/"
1585 | ]
1586 | },
1587 | "notification-url": "https://packagist.org/downloads/",
1588 | "license": [
1589 | "BSD-3-Clause"
1590 | ],
1591 | "authors": [
1592 | {
1593 | "name": "Kore Nordmann",
1594 | "email": "mail@kore-nordmann.de"
1595 | },
1596 | {
1597 | "name": "Sebastian Bergmann",
1598 | "email": "sebastian@phpunit.de"
1599 | }
1600 | ],
1601 | "description": "Diff implementation",
1602 | "homepage": "https://github.com/sebastianbergmann/diff",
1603 | "keywords": [
1604 | "diff",
1605 | "udiff",
1606 | "unidiff",
1607 | "unified diff"
1608 | ],
1609 | "time": "2018-02-01T13:45:15+00:00"
1610 | },
1611 | {
1612 | "name": "sebastian/environment",
1613 | "version": "3.1.0",
1614 | "source": {
1615 | "type": "git",
1616 | "url": "https://github.com/sebastianbergmann/environment.git",
1617 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5"
1618 | },
1619 | "dist": {
1620 | "type": "zip",
1621 | "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1622 | "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5",
1623 | "shasum": ""
1624 | },
1625 | "require": {
1626 | "php": "^7.0"
1627 | },
1628 | "require-dev": {
1629 | "phpunit/phpunit": "^6.1"
1630 | },
1631 | "type": "library",
1632 | "extra": {
1633 | "branch-alias": {
1634 | "dev-master": "3.1.x-dev"
1635 | }
1636 | },
1637 | "autoload": {
1638 | "classmap": [
1639 | "src/"
1640 | ]
1641 | },
1642 | "notification-url": "https://packagist.org/downloads/",
1643 | "license": [
1644 | "BSD-3-Clause"
1645 | ],
1646 | "authors": [
1647 | {
1648 | "name": "Sebastian Bergmann",
1649 | "email": "sebastian@phpunit.de"
1650 | }
1651 | ],
1652 | "description": "Provides functionality to handle HHVM/PHP environments",
1653 | "homepage": "http://www.github.com/sebastianbergmann/environment",
1654 | "keywords": [
1655 | "Xdebug",
1656 | "environment",
1657 | "hhvm"
1658 | ],
1659 | "time": "2017-07-01T08:51:00+00:00"
1660 | },
1661 | {
1662 | "name": "sebastian/exporter",
1663 | "version": "3.1.0",
1664 | "source": {
1665 | "type": "git",
1666 | "url": "https://github.com/sebastianbergmann/exporter.git",
1667 | "reference": "234199f4528de6d12aaa58b612e98f7d36adb937"
1668 | },
1669 | "dist": {
1670 | "type": "zip",
1671 | "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937",
1672 | "reference": "234199f4528de6d12aaa58b612e98f7d36adb937",
1673 | "shasum": ""
1674 | },
1675 | "require": {
1676 | "php": "^7.0",
1677 | "sebastian/recursion-context": "^3.0"
1678 | },
1679 | "require-dev": {
1680 | "ext-mbstring": "*",
1681 | "phpunit/phpunit": "^6.0"
1682 | },
1683 | "type": "library",
1684 | "extra": {
1685 | "branch-alias": {
1686 | "dev-master": "3.1.x-dev"
1687 | }
1688 | },
1689 | "autoload": {
1690 | "classmap": [
1691 | "src/"
1692 | ]
1693 | },
1694 | "notification-url": "https://packagist.org/downloads/",
1695 | "license": [
1696 | "BSD-3-Clause"
1697 | ],
1698 | "authors": [
1699 | {
1700 | "name": "Jeff Welch",
1701 | "email": "whatthejeff@gmail.com"
1702 | },
1703 | {
1704 | "name": "Volker Dusch",
1705 | "email": "github@wallbash.com"
1706 | },
1707 | {
1708 | "name": "Bernhard Schussek",
1709 | "email": "bschussek@2bepublished.at"
1710 | },
1711 | {
1712 | "name": "Sebastian Bergmann",
1713 | "email": "sebastian@phpunit.de"
1714 | },
1715 | {
1716 | "name": "Adam Harvey",
1717 | "email": "aharvey@php.net"
1718 | }
1719 | ],
1720 | "description": "Provides the functionality to export PHP variables for visualization",
1721 | "homepage": "http://www.github.com/sebastianbergmann/exporter",
1722 | "keywords": [
1723 | "export",
1724 | "exporter"
1725 | ],
1726 | "time": "2017-04-03T13:19:02+00:00"
1727 | },
1728 | {
1729 | "name": "sebastian/global-state",
1730 | "version": "2.0.0",
1731 | "source": {
1732 | "type": "git",
1733 | "url": "https://github.com/sebastianbergmann/global-state.git",
1734 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
1735 | },
1736 | "dist": {
1737 | "type": "zip",
1738 | "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1739 | "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
1740 | "shasum": ""
1741 | },
1742 | "require": {
1743 | "php": "^7.0"
1744 | },
1745 | "require-dev": {
1746 | "phpunit/phpunit": "^6.0"
1747 | },
1748 | "suggest": {
1749 | "ext-uopz": "*"
1750 | },
1751 | "type": "library",
1752 | "extra": {
1753 | "branch-alias": {
1754 | "dev-master": "2.0-dev"
1755 | }
1756 | },
1757 | "autoload": {
1758 | "classmap": [
1759 | "src/"
1760 | ]
1761 | },
1762 | "notification-url": "https://packagist.org/downloads/",
1763 | "license": [
1764 | "BSD-3-Clause"
1765 | ],
1766 | "authors": [
1767 | {
1768 | "name": "Sebastian Bergmann",
1769 | "email": "sebastian@phpunit.de"
1770 | }
1771 | ],
1772 | "description": "Snapshotting of global state",
1773 | "homepage": "http://www.github.com/sebastianbergmann/global-state",
1774 | "keywords": [
1775 | "global state"
1776 | ],
1777 | "time": "2017-04-27T15:39:26+00:00"
1778 | },
1779 | {
1780 | "name": "sebastian/object-enumerator",
1781 | "version": "3.0.3",
1782 | "source": {
1783 | "type": "git",
1784 | "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1785 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
1786 | },
1787 | "dist": {
1788 | "type": "zip",
1789 | "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1790 | "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
1791 | "shasum": ""
1792 | },
1793 | "require": {
1794 | "php": "^7.0",
1795 | "sebastian/object-reflector": "^1.1.1",
1796 | "sebastian/recursion-context": "^3.0"
1797 | },
1798 | "require-dev": {
1799 | "phpunit/phpunit": "^6.0"
1800 | },
1801 | "type": "library",
1802 | "extra": {
1803 | "branch-alias": {
1804 | "dev-master": "3.0.x-dev"
1805 | }
1806 | },
1807 | "autoload": {
1808 | "classmap": [
1809 | "src/"
1810 | ]
1811 | },
1812 | "notification-url": "https://packagist.org/downloads/",
1813 | "license": [
1814 | "BSD-3-Clause"
1815 | ],
1816 | "authors": [
1817 | {
1818 | "name": "Sebastian Bergmann",
1819 | "email": "sebastian@phpunit.de"
1820 | }
1821 | ],
1822 | "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1823 | "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1824 | "time": "2017-08-03T12:35:26+00:00"
1825 | },
1826 | {
1827 | "name": "sebastian/object-reflector",
1828 | "version": "1.1.1",
1829 | "source": {
1830 | "type": "git",
1831 | "url": "https://github.com/sebastianbergmann/object-reflector.git",
1832 | "reference": "773f97c67f28de00d397be301821b06708fca0be"
1833 | },
1834 | "dist": {
1835 | "type": "zip",
1836 | "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
1837 | "reference": "773f97c67f28de00d397be301821b06708fca0be",
1838 | "shasum": ""
1839 | },
1840 | "require": {
1841 | "php": "^7.0"
1842 | },
1843 | "require-dev": {
1844 | "phpunit/phpunit": "^6.0"
1845 | },
1846 | "type": "library",
1847 | "extra": {
1848 | "branch-alias": {
1849 | "dev-master": "1.1-dev"
1850 | }
1851 | },
1852 | "autoload": {
1853 | "classmap": [
1854 | "src/"
1855 | ]
1856 | },
1857 | "notification-url": "https://packagist.org/downloads/",
1858 | "license": [
1859 | "BSD-3-Clause"
1860 | ],
1861 | "authors": [
1862 | {
1863 | "name": "Sebastian Bergmann",
1864 | "email": "sebastian@phpunit.de"
1865 | }
1866 | ],
1867 | "description": "Allows reflection of object attributes, including inherited and non-public ones",
1868 | "homepage": "https://github.com/sebastianbergmann/object-reflector/",
1869 | "time": "2017-03-29T09:07:27+00:00"
1870 | },
1871 | {
1872 | "name": "sebastian/recursion-context",
1873 | "version": "3.0.0",
1874 | "source": {
1875 | "type": "git",
1876 | "url": "https://github.com/sebastianbergmann/recursion-context.git",
1877 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
1878 | },
1879 | "dist": {
1880 | "type": "zip",
1881 | "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1882 | "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
1883 | "shasum": ""
1884 | },
1885 | "require": {
1886 | "php": "^7.0"
1887 | },
1888 | "require-dev": {
1889 | "phpunit/phpunit": "^6.0"
1890 | },
1891 | "type": "library",
1892 | "extra": {
1893 | "branch-alias": {
1894 | "dev-master": "3.0.x-dev"
1895 | }
1896 | },
1897 | "autoload": {
1898 | "classmap": [
1899 | "src/"
1900 | ]
1901 | },
1902 | "notification-url": "https://packagist.org/downloads/",
1903 | "license": [
1904 | "BSD-3-Clause"
1905 | ],
1906 | "authors": [
1907 | {
1908 | "name": "Jeff Welch",
1909 | "email": "whatthejeff@gmail.com"
1910 | },
1911 | {
1912 | "name": "Sebastian Bergmann",
1913 | "email": "sebastian@phpunit.de"
1914 | },
1915 | {
1916 | "name": "Adam Harvey",
1917 | "email": "aharvey@php.net"
1918 | }
1919 | ],
1920 | "description": "Provides functionality to recursively process PHP variables",
1921 | "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1922 | "time": "2017-03-03T06:23:57+00:00"
1923 | },
1924 | {
1925 | "name": "sebastian/resource-operations",
1926 | "version": "1.0.0",
1927 | "source": {
1928 | "type": "git",
1929 | "url": "https://github.com/sebastianbergmann/resource-operations.git",
1930 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1931 | },
1932 | "dist": {
1933 | "type": "zip",
1934 | "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1935 | "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1936 | "shasum": ""
1937 | },
1938 | "require": {
1939 | "php": ">=5.6.0"
1940 | },
1941 | "type": "library",
1942 | "extra": {
1943 | "branch-alias": {
1944 | "dev-master": "1.0.x-dev"
1945 | }
1946 | },
1947 | "autoload": {
1948 | "classmap": [
1949 | "src/"
1950 | ]
1951 | },
1952 | "notification-url": "https://packagist.org/downloads/",
1953 | "license": [
1954 | "BSD-3-Clause"
1955 | ],
1956 | "authors": [
1957 | {
1958 | "name": "Sebastian Bergmann",
1959 | "email": "sebastian@phpunit.de"
1960 | }
1961 | ],
1962 | "description": "Provides a list of PHP built-in functions that operate on resources",
1963 | "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
1964 | "time": "2015-07-28T20:34:47+00:00"
1965 | },
1966 | {
1967 | "name": "sebastian/version",
1968 | "version": "2.0.1",
1969 | "source": {
1970 | "type": "git",
1971 | "url": "https://github.com/sebastianbergmann/version.git",
1972 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
1973 | },
1974 | "dist": {
1975 | "type": "zip",
1976 | "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
1977 | "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
1978 | "shasum": ""
1979 | },
1980 | "require": {
1981 | "php": ">=5.6"
1982 | },
1983 | "type": "library",
1984 | "extra": {
1985 | "branch-alias": {
1986 | "dev-master": "2.0.x-dev"
1987 | }
1988 | },
1989 | "autoload": {
1990 | "classmap": [
1991 | "src/"
1992 | ]
1993 | },
1994 | "notification-url": "https://packagist.org/downloads/",
1995 | "license": [
1996 | "BSD-3-Clause"
1997 | ],
1998 | "authors": [
1999 | {
2000 | "name": "Sebastian Bergmann",
2001 | "email": "sebastian@phpunit.de",
2002 | "role": "lead"
2003 | }
2004 | ],
2005 | "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2006 | "homepage": "https://github.com/sebastianbergmann/version",
2007 | "time": "2016-10-03T07:35:21+00:00"
2008 | },
2009 | {
2010 | "name": "symfony/config",
2011 | "version": "v4.0.8",
2012 | "source": {
2013 | "type": "git",
2014 | "url": "https://github.com/symfony/config.git",
2015 | "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8"
2016 | },
2017 | "dist": {
2018 | "type": "zip",
2019 | "url": "https://api.github.com/repos/symfony/config/zipball/7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
2020 | "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8",
2021 | "shasum": ""
2022 | },
2023 | "require": {
2024 | "php": "^7.1.3",
2025 | "symfony/filesystem": "~3.4|~4.0"
2026 | },
2027 | "conflict": {
2028 | "symfony/finder": "<3.4"
2029 | },
2030 | "require-dev": {
2031 | "symfony/dependency-injection": "~3.4|~4.0",
2032 | "symfony/event-dispatcher": "~3.4|~4.0",
2033 | "symfony/finder": "~3.4|~4.0",
2034 | "symfony/yaml": "~3.4|~4.0"
2035 | },
2036 | "suggest": {
2037 | "symfony/yaml": "To use the yaml reference dumper"
2038 | },
2039 | "type": "library",
2040 | "extra": {
2041 | "branch-alias": {
2042 | "dev-master": "4.0-dev"
2043 | }
2044 | },
2045 | "autoload": {
2046 | "psr-4": {
2047 | "Symfony\\Component\\Config\\": ""
2048 | },
2049 | "exclude-from-classmap": [
2050 | "/Tests/"
2051 | ]
2052 | },
2053 | "notification-url": "https://packagist.org/downloads/",
2054 | "license": [
2055 | "MIT"
2056 | ],
2057 | "authors": [
2058 | {
2059 | "name": "Fabien Potencier",
2060 | "email": "fabien@symfony.com"
2061 | },
2062 | {
2063 | "name": "Symfony Community",
2064 | "homepage": "https://symfony.com/contributors"
2065 | }
2066 | ],
2067 | "description": "Symfony Config Component",
2068 | "homepage": "https://symfony.com",
2069 | "time": "2018-03-19T22:35:49+00:00"
2070 | },
2071 | {
2072 | "name": "symfony/console",
2073 | "version": "v3.4.8",
2074 | "source": {
2075 | "type": "git",
2076 | "url": "https://github.com/symfony/console.git",
2077 | "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf"
2078 | },
2079 | "dist": {
2080 | "type": "zip",
2081 | "url": "https://api.github.com/repos/symfony/console/zipball/d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf",
2082 | "reference": "d4bb70fa24d540c309d88a9d6e43fb2d339b1fbf",
2083 | "shasum": ""
2084 | },
2085 | "require": {
2086 | "php": "^5.5.9|>=7.0.8",
2087 | "symfony/debug": "~2.8|~3.0|~4.0",
2088 | "symfony/polyfill-mbstring": "~1.0"
2089 | },
2090 | "conflict": {
2091 | "symfony/dependency-injection": "<3.4",
2092 | "symfony/process": "<3.3"
2093 | },
2094 | "require-dev": {
2095 | "psr/log": "~1.0",
2096 | "symfony/config": "~3.3|~4.0",
2097 | "symfony/dependency-injection": "~3.4|~4.0",
2098 | "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
2099 | "symfony/lock": "~3.4|~4.0",
2100 | "symfony/process": "~3.3|~4.0"
2101 | },
2102 | "suggest": {
2103 | "psr/log": "For using the console logger",
2104 | "symfony/event-dispatcher": "",
2105 | "symfony/lock": "",
2106 | "symfony/process": ""
2107 | },
2108 | "type": "library",
2109 | "extra": {
2110 | "branch-alias": {
2111 | "dev-master": "3.4-dev"
2112 | }
2113 | },
2114 | "autoload": {
2115 | "psr-4": {
2116 | "Symfony\\Component\\Console\\": ""
2117 | },
2118 | "exclude-from-classmap": [
2119 | "/Tests/"
2120 | ]
2121 | },
2122 | "notification-url": "https://packagist.org/downloads/",
2123 | "license": [
2124 | "MIT"
2125 | ],
2126 | "authors": [
2127 | {
2128 | "name": "Fabien Potencier",
2129 | "email": "fabien@symfony.com"
2130 | },
2131 | {
2132 | "name": "Symfony Community",
2133 | "homepage": "https://symfony.com/contributors"
2134 | }
2135 | ],
2136 | "description": "Symfony Console Component",
2137 | "homepage": "https://symfony.com",
2138 | "time": "2018-04-03T05:22:50+00:00"
2139 | },
2140 | {
2141 | "name": "symfony/debug",
2142 | "version": "v4.0.8",
2143 | "source": {
2144 | "type": "git",
2145 | "url": "https://github.com/symfony/debug.git",
2146 | "reference": "5961d02d48828671f5d8a7805e06579d692f6ede"
2147 | },
2148 | "dist": {
2149 | "type": "zip",
2150 | "url": "https://api.github.com/repos/symfony/debug/zipball/5961d02d48828671f5d8a7805e06579d692f6ede",
2151 | "reference": "5961d02d48828671f5d8a7805e06579d692f6ede",
2152 | "shasum": ""
2153 | },
2154 | "require": {
2155 | "php": "^7.1.3",
2156 | "psr/log": "~1.0"
2157 | },
2158 | "conflict": {
2159 | "symfony/http-kernel": "<3.4"
2160 | },
2161 | "require-dev": {
2162 | "symfony/http-kernel": "~3.4|~4.0"
2163 | },
2164 | "type": "library",
2165 | "extra": {
2166 | "branch-alias": {
2167 | "dev-master": "4.0-dev"
2168 | }
2169 | },
2170 | "autoload": {
2171 | "psr-4": {
2172 | "Symfony\\Component\\Debug\\": ""
2173 | },
2174 | "exclude-from-classmap": [
2175 | "/Tests/"
2176 | ]
2177 | },
2178 | "notification-url": "https://packagist.org/downloads/",
2179 | "license": [
2180 | "MIT"
2181 | ],
2182 | "authors": [
2183 | {
2184 | "name": "Fabien Potencier",
2185 | "email": "fabien@symfony.com"
2186 | },
2187 | {
2188 | "name": "Symfony Community",
2189 | "homepage": "https://symfony.com/contributors"
2190 | }
2191 | ],
2192 | "description": "Symfony Debug Component",
2193 | "homepage": "https://symfony.com",
2194 | "time": "2018-04-03T05:24:00+00:00"
2195 | },
2196 | {
2197 | "name": "symfony/event-dispatcher",
2198 | "version": "v2.8.38",
2199 | "source": {
2200 | "type": "git",
2201 | "url": "https://github.com/symfony/event-dispatcher.git",
2202 | "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c"
2203 | },
2204 | "dist": {
2205 | "type": "zip",
2206 | "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9b69aad7d4c086dc94ebade2d5eb9145da5dac8c",
2207 | "reference": "9b69aad7d4c086dc94ebade2d5eb9145da5dac8c",
2208 | "shasum": ""
2209 | },
2210 | "require": {
2211 | "php": ">=5.3.9"
2212 | },
2213 | "require-dev": {
2214 | "psr/log": "~1.0",
2215 | "symfony/config": "^2.0.5|~3.0.0",
2216 | "symfony/dependency-injection": "~2.6|~3.0.0",
2217 | "symfony/expression-language": "~2.6|~3.0.0",
2218 | "symfony/stopwatch": "~2.3|~3.0.0"
2219 | },
2220 | "suggest": {
2221 | "symfony/dependency-injection": "",
2222 | "symfony/http-kernel": ""
2223 | },
2224 | "type": "library",
2225 | "extra": {
2226 | "branch-alias": {
2227 | "dev-master": "2.8-dev"
2228 | }
2229 | },
2230 | "autoload": {
2231 | "psr-4": {
2232 | "Symfony\\Component\\EventDispatcher\\": ""
2233 | },
2234 | "exclude-from-classmap": [
2235 | "/Tests/"
2236 | ]
2237 | },
2238 | "notification-url": "https://packagist.org/downloads/",
2239 | "license": [
2240 | "MIT"
2241 | ],
2242 | "authors": [
2243 | {
2244 | "name": "Fabien Potencier",
2245 | "email": "fabien@symfony.com"
2246 | },
2247 | {
2248 | "name": "Symfony Community",
2249 | "homepage": "https://symfony.com/contributors"
2250 | }
2251 | ],
2252 | "description": "Symfony EventDispatcher Component",
2253 | "homepage": "https://symfony.com",
2254 | "time": "2018-04-06T07:35:03+00:00"
2255 | },
2256 | {
2257 | "name": "symfony/filesystem",
2258 | "version": "v4.0.8",
2259 | "source": {
2260 | "type": "git",
2261 | "url": "https://github.com/symfony/filesystem.git",
2262 | "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21"
2263 | },
2264 | "dist": {
2265 | "type": "zip",
2266 | "url": "https://api.github.com/repos/symfony/filesystem/zipball/5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21",
2267 | "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21",
2268 | "shasum": ""
2269 | },
2270 | "require": {
2271 | "php": "^7.1.3"
2272 | },
2273 | "type": "library",
2274 | "extra": {
2275 | "branch-alias": {
2276 | "dev-master": "4.0-dev"
2277 | }
2278 | },
2279 | "autoload": {
2280 | "psr-4": {
2281 | "Symfony\\Component\\Filesystem\\": ""
2282 | },
2283 | "exclude-from-classmap": [
2284 | "/Tests/"
2285 | ]
2286 | },
2287 | "notification-url": "https://packagist.org/downloads/",
2288 | "license": [
2289 | "MIT"
2290 | ],
2291 | "authors": [
2292 | {
2293 | "name": "Fabien Potencier",
2294 | "email": "fabien@symfony.com"
2295 | },
2296 | {
2297 | "name": "Symfony Community",
2298 | "homepage": "https://symfony.com/contributors"
2299 | }
2300 | ],
2301 | "description": "Symfony Filesystem Component",
2302 | "homepage": "https://symfony.com",
2303 | "time": "2018-02-22T10:50:29+00:00"
2304 | },
2305 | {
2306 | "name": "symfony/polyfill-mbstring",
2307 | "version": "v1.7.0",
2308 | "source": {
2309 | "type": "git",
2310 | "url": "https://github.com/symfony/polyfill-mbstring.git",
2311 | "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
2312 | },
2313 | "dist": {
2314 | "type": "zip",
2315 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
2316 | "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
2317 | "shasum": ""
2318 | },
2319 | "require": {
2320 | "php": ">=5.3.3"
2321 | },
2322 | "suggest": {
2323 | "ext-mbstring": "For best performance"
2324 | },
2325 | "type": "library",
2326 | "extra": {
2327 | "branch-alias": {
2328 | "dev-master": "1.7-dev"
2329 | }
2330 | },
2331 | "autoload": {
2332 | "psr-4": {
2333 | "Symfony\\Polyfill\\Mbstring\\": ""
2334 | },
2335 | "files": [
2336 | "bootstrap.php"
2337 | ]
2338 | },
2339 | "notification-url": "https://packagist.org/downloads/",
2340 | "license": [
2341 | "MIT"
2342 | ],
2343 | "authors": [
2344 | {
2345 | "name": "Nicolas Grekas",
2346 | "email": "p@tchwork.com"
2347 | },
2348 | {
2349 | "name": "Symfony Community",
2350 | "homepage": "https://symfony.com/contributors"
2351 | }
2352 | ],
2353 | "description": "Symfony polyfill for the Mbstring extension",
2354 | "homepage": "https://symfony.com",
2355 | "keywords": [
2356 | "compatibility",
2357 | "mbstring",
2358 | "polyfill",
2359 | "portable",
2360 | "shim"
2361 | ],
2362 | "time": "2018-01-30T19:27:44+00:00"
2363 | },
2364 | {
2365 | "name": "symfony/stopwatch",
2366 | "version": "v4.0.8",
2367 | "source": {
2368 | "type": "git",
2369 | "url": "https://github.com/symfony/stopwatch.git",
2370 | "reference": "6795ffa2f8eebedac77f045aa62c0c10b2763042"
2371 | },
2372 | "dist": {
2373 | "type": "zip",
2374 | "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6795ffa2f8eebedac77f045aa62c0c10b2763042",
2375 | "reference": "6795ffa2f8eebedac77f045aa62c0c10b2763042",
2376 | "shasum": ""
2377 | },
2378 | "require": {
2379 | "php": "^7.1.3"
2380 | },
2381 | "type": "library",
2382 | "extra": {
2383 | "branch-alias": {
2384 | "dev-master": "4.0-dev"
2385 | }
2386 | },
2387 | "autoload": {
2388 | "psr-4": {
2389 | "Symfony\\Component\\Stopwatch\\": ""
2390 | },
2391 | "exclude-from-classmap": [
2392 | "/Tests/"
2393 | ]
2394 | },
2395 | "notification-url": "https://packagist.org/downloads/",
2396 | "license": [
2397 | "MIT"
2398 | ],
2399 | "authors": [
2400 | {
2401 | "name": "Fabien Potencier",
2402 | "email": "fabien@symfony.com"
2403 | },
2404 | {
2405 | "name": "Symfony Community",
2406 | "homepage": "https://symfony.com/contributors"
2407 | }
2408 | ],
2409 | "description": "Symfony Stopwatch Component",
2410 | "homepage": "https://symfony.com",
2411 | "time": "2018-02-19T16:50:22+00:00"
2412 | },
2413 | {
2414 | "name": "symfony/yaml",
2415 | "version": "v4.0.8",
2416 | "source": {
2417 | "type": "git",
2418 | "url": "https://github.com/symfony/yaml.git",
2419 | "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c"
2420 | },
2421 | "dist": {
2422 | "type": "zip",
2423 | "url": "https://api.github.com/repos/symfony/yaml/zipball/8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
2424 | "reference": "8b34ebb5989df61cbd77eff29a02c4db9ac1069c",
2425 | "shasum": ""
2426 | },
2427 | "require": {
2428 | "php": "^7.1.3"
2429 | },
2430 | "conflict": {
2431 | "symfony/console": "<3.4"
2432 | },
2433 | "require-dev": {
2434 | "symfony/console": "~3.4|~4.0"
2435 | },
2436 | "suggest": {
2437 | "symfony/console": "For validating YAML files using the lint command"
2438 | },
2439 | "type": "library",
2440 | "extra": {
2441 | "branch-alias": {
2442 | "dev-master": "4.0-dev"
2443 | }
2444 | },
2445 | "autoload": {
2446 | "psr-4": {
2447 | "Symfony\\Component\\Yaml\\": ""
2448 | },
2449 | "exclude-from-classmap": [
2450 | "/Tests/"
2451 | ]
2452 | },
2453 | "notification-url": "https://packagist.org/downloads/",
2454 | "license": [
2455 | "MIT"
2456 | ],
2457 | "authors": [
2458 | {
2459 | "name": "Fabien Potencier",
2460 | "email": "fabien@symfony.com"
2461 | },
2462 | {
2463 | "name": "Symfony Community",
2464 | "homepage": "https://symfony.com/contributors"
2465 | }
2466 | ],
2467 | "description": "Symfony Yaml Component",
2468 | "homepage": "https://symfony.com",
2469 | "time": "2018-04-03T05:24:00+00:00"
2470 | },
2471 | {
2472 | "name": "theseer/tokenizer",
2473 | "version": "1.1.0",
2474 | "source": {
2475 | "type": "git",
2476 | "url": "https://github.com/theseer/tokenizer.git",
2477 | "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b"
2478 | },
2479 | "dist": {
2480 | "type": "zip",
2481 | "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b",
2482 | "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b",
2483 | "shasum": ""
2484 | },
2485 | "require": {
2486 | "ext-dom": "*",
2487 | "ext-tokenizer": "*",
2488 | "ext-xmlwriter": "*",
2489 | "php": "^7.0"
2490 | },
2491 | "type": "library",
2492 | "autoload": {
2493 | "classmap": [
2494 | "src/"
2495 | ]
2496 | },
2497 | "notification-url": "https://packagist.org/downloads/",
2498 | "license": [
2499 | "BSD-3-Clause"
2500 | ],
2501 | "authors": [
2502 | {
2503 | "name": "Arne Blankerts",
2504 | "email": "arne@blankerts.de",
2505 | "role": "Developer"
2506 | }
2507 | ],
2508 | "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
2509 | "time": "2017-04-07T12:08:54+00:00"
2510 | },
2511 | {
2512 | "name": "webmozart/assert",
2513 | "version": "1.3.0",
2514 | "source": {
2515 | "type": "git",
2516 | "url": "https://github.com/webmozart/assert.git",
2517 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
2518 | },
2519 | "dist": {
2520 | "type": "zip",
2521 | "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
2522 | "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
2523 | "shasum": ""
2524 | },
2525 | "require": {
2526 | "php": "^5.3.3 || ^7.0"
2527 | },
2528 | "require-dev": {
2529 | "phpunit/phpunit": "^4.6",
2530 | "sebastian/version": "^1.0.1"
2531 | },
2532 | "type": "library",
2533 | "extra": {
2534 | "branch-alias": {
2535 | "dev-master": "1.3-dev"
2536 | }
2537 | },
2538 | "autoload": {
2539 | "psr-4": {
2540 | "Webmozart\\Assert\\": "src/"
2541 | }
2542 | },
2543 | "notification-url": "https://packagist.org/downloads/",
2544 | "license": [
2545 | "MIT"
2546 | ],
2547 | "authors": [
2548 | {
2549 | "name": "Bernhard Schussek",
2550 | "email": "bschussek@gmail.com"
2551 | }
2552 | ],
2553 | "description": "Assertions to validate method input/output with nice error messages.",
2554 | "keywords": [
2555 | "assert",
2556 | "check",
2557 | "validate"
2558 | ],
2559 | "time": "2018-01-29T19:49:41+00:00"
2560 | }
2561 | ],
2562 | "aliases": [],
2563 | "minimum-stability": "dev",
2564 | "stability-flags": {
2565 | "10up/wp_mock": 20
2566 | },
2567 | "prefer-stable": true,
2568 | "prefer-lowest": false,
2569 | "platform": [],
2570 | "platform-dev": []
2571 | }
2572 |
--------------------------------------------------------------------------------