Timber - Version 1.19.1

Version Description

Fixes and improvements

  • Fix bug when using switch_to_blog() in combination with Timber images by @gchtr in https://github.com/timber/timber/pull/2478
  • Fix the thumbnail() method return type by @titouanmathis in https://github.com/timber/timber/pull/2463
  • Merge in 2.x GH Actions changes by @jarednova in https://github.com/timber/timber/pull/2484
  • Adds @nlemoine to the contribs list! by @jarednova in https://github.com/timber/timber/pull/2488
  • Bump version of Upstatement/Routes to 0.8.1 by @jarednova in https://github.com/timber/timber/pull/2512

  • @titouanmathis made their first contribution in https://github.com/timber/timber/pull/2463

Full Changelog: https://github.com/timber/timber/compare/1.19.0...1.19.1

Download this release

Release Info

Developer jarednova
Plugin Icon 128x128 Timber
Version 1.19.1
Comparing to
See all releases

Code changes from version 1.19.0 to 1.19.1

README.md CHANGED
@@ -5,9 +5,9 @@
5
  By
6
  [Jared Novack](https://github.com/jarednova) ([@jarednova](https://twitter.com/jarednova)),
7
  [Lukas Gächter](https://github.com/gchtr) ([@lgaechter](https://twitter.com/lgaechter)),
8
- [Pascal Knecht](https://github.com/pascalknecht) ([@pascalknecht](https://twitter.com/revenwo)),
9
- [Maciej Palmowski](https://github.com/palmiak) ([@palmiak_fp](https://twitter.com/palmiak_fp)),
10
  [Coby Tamayo](https://github.com/acobster) ([@cobytamayo](https://keybase.io/acobster)),
 
 
11
  [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
12
 
13
  [![Build Status](https://img.shields.io/travis/timber/timber/master?style=flat-square)](https://app.travis-ci.com/github/timber/timber/branches)
@@ -17,7 +17,6 @@ By
17
  [![WordPress Download Count](https://img.shields.io/wordpress/plugin/dt/timber-library.svg?style=flat-square)](https://wordpress.org/plugins/timber-library/)
18
  [![WordPress Rating](https://img.shields.io/wordpress/plugin/r/timber-library.svg?style=flat-square)](https://wordpress.org/support/plugin/timber-library/reviews/)
19
 
20
-
21
  ### Because WordPress is awesome, but the_loop isn't
22
  Timber helps you create fully-customized WordPress themes faster with more sustainable code. With Timber, you write your HTML using the [Twig Template Engine](https://twig.symfony.com/) separate from your PHP files.
23
 
5
  By
6
  [Jared Novack](https://github.com/jarednova) ([@jarednova](https://twitter.com/jarednova)),
7
  [Lukas Gächter](https://github.com/gchtr) ([@lgaechter](https://twitter.com/lgaechter)),
 
 
8
  [Coby Tamayo](https://github.com/acobster) ([@cobytamayo](https://keybase.io/acobster)),
9
+ [Maciej Palmowski](https://github.com/palmiak) ([@palmiak_fp](https://twitter.com/palmiak_fp)),
10
+ [Nicolas Lemoine](https://github.com/nlemoine) ([@nlemoine](https://niconico.fr/))
11
  [Upstatement](https://twitter.com/upstatement) and [hundreds of other GitHub contributors](https://github.com/timber/timber/graphs/contributors)
12
 
13
  [![Build Status](https://img.shields.io/travis/timber/timber/master?style=flat-square)](https://app.travis-ci.com/github/timber/timber/branches)
17
  [![WordPress Download Count](https://img.shields.io/wordpress/plugin/dt/timber-library.svg?style=flat-square)](https://wordpress.org/plugins/timber-library/)
18
  [![WordPress Rating](https://img.shields.io/wordpress/plugin/r/timber-library.svg?style=flat-square)](https://wordpress.org/support/plugin/timber-library/reviews/)
19
 
 
20
  ### Because WordPress is awesome, but the_loop isn't
21
  Timber helps you create fully-customized WordPress themes faster with more sustainable code. With Timber, you write your HTML using the [Twig Template Engine](https://twig.symfony.com/) separate from your PHP files.
22
 
lib/Image.php CHANGED
@@ -240,10 +240,18 @@ class Image extends Post implements CoreInterface {
240
  return $url;
241
  }
242
 
 
 
 
 
 
 
 
 
243
  public static function wp_upload_dir() {
244
  static $wp_upload_dir = false;
245
 
246
- if ( !$wp_upload_dir ) {
247
  $wp_upload_dir = wp_upload_dir();
248
  }
249
 
240
  return $url;
241
  }
242
 
243
+ /**
244
+ * Gets cached version of wp_upload_dir().
245
+ *
246
+ * Because wp_upload_dir() returns a different result for each site in a multisite, we shouldn’t
247
+ * return the cached version when we switched to a different site in a multisite environment.
248
+ *
249
+ * @todo Deprecate this function in the future and use wp_upload_dir() directly.
250
+ */
251
  public static function wp_upload_dir() {
252
  static $wp_upload_dir = false;
253
 
254
+ if ( ! $wp_upload_dir || ( is_multisite() && ms_is_switched() ) ) {
255
  $wp_upload_dir = wp_upload_dir();
256
  }
257
 
lib/Post.php CHANGED
@@ -1570,7 +1570,7 @@ class Post extends Core implements CoreInterface {
1570
  * ```twig
1571
  * <img src="{{ post.thumbnail.src }}" />
1572
  * ```
1573
- * @return Timber\Image|null of your thumbnail
1574
  */
1575
  public function thumbnail() {
1576
  $tid = get_post_thumbnail_id($this->ID);
1570
  * ```twig
1571
  * <img src="{{ post.thumbnail.src }}" />
1572
  * ```
1573
+ * @return Image|null of your thumbnail
1574
  */
1575
  public function thumbnail() {
1576
  $tid = get_post_thumbnail_id($this->ID);
lib/Timber.php CHANGED
@@ -35,7 +35,7 @@ use Timber\Loader;
35
  */
36
  class Timber {
37
 
38
- public static $version = '1.19.0';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
35
  */
36
  class Timber {
37
 
38
+ public static $version = '1.19.1';
39
  public static $locations;
40
  public static $dirname = 'views';
41
  public static $twig_cache = false;
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: jarednova
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.9.8
5
  Tested up to: 5.8.1
6
- Stable tag: 1.19.0
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -37,6 +37,21 @@ _Twig is the template language powering Timber; if you need a little background
37
  **Changes for Theme Developers**
38
 
39
  **Fixes and improvements**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  = 1.19.0 =
42
 
@@ -46,6 +61,7 @@ _Twig is the template language powering Timber; if you need a little background
46
  * You can pass additional variables to the `timber/loader/loader` filter #2324 (thanks @neojp)
47
 
48
  **Fixes and improvements**
 
49
  * Fix for double quotes that might appear in a "Read More" in Gutenberg #2337 #2343 (thanks @Keysaw)
50
  * Fix implementation of WP's `get_the_date` and `get_the_time` filters #2350 (thanks @shvlv)
51
  * Fix for how the `wp:more` tag works with `noteaser` #2348 #2351 (thanks @jhhazelaar)
@@ -55,7 +71,9 @@ _Twig is the template language powering Timber; if you need a little background
55
  * Fix for sidebar retrieval in PHP 8 #2385 (thanks @marciojc)
56
  * Fix for proper ignoring of the Cache directory on case-insensitive file systems #342 #2416 (thanks @toonvandeputte)
57
 
58
- = 1.18.2 =
 
 
59
 
60
  **Fixes and improvements**
61
 
3
  Tags: template engine, templates, twig
4
  Requires at least: 4.9.8
5
  Tested up to: 5.8.1
6
+ Stable tag: 1.19.1
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
37
  **Changes for Theme Developers**
38
 
39
  **Fixes and improvements**
40
+ * Fix documented return type for Timber\Image::thumbnail #2463 (thanks @titouanmathis)
41
+
42
+ = 1.19.1 =
43
+
44
+ **Fixes and improvements**
45
+
46
+ * Fix bug when using switch_to_blog() in combination with Timber images by @gchtr in https://github.com/timber/timber/pull/2478
47
+ * Fix the `thumbnail()` method return type by @titouanmathis in https://github.com/timber/timber/pull/2463
48
+ * Merge in 2.x GH Actions changes by @jarednova in https://github.com/timber/timber/pull/2484
49
+ * Adds @nlemoine to the contribs list! by @jarednova in https://github.com/timber/timber/pull/2488
50
+ * Bump version of Upstatement/Routes to 0.8.1 by @jarednova in https://github.com/timber/timber/pull/2512
51
+
52
+ * @titouanmathis made their first contribution in https://github.com/timber/timber/pull/2463
53
+
54
+ **Full Changelog**: https://github.com/timber/timber/compare/1.19.0...1.19.1
55
 
56
  = 1.19.0 =
57
 
61
  * You can pass additional variables to the `timber/loader/loader` filter #2324 (thanks @neojp)
62
 
63
  **Fixes and improvements**
64
+
65
  * Fix for double quotes that might appear in a "Read More" in Gutenberg #2337 #2343 (thanks @Keysaw)
66
  * Fix implementation of WP's `get_the_date` and `get_the_time` filters #2350 (thanks @shvlv)
67
  * Fix for how the `wp:more` tag works with `noteaser` #2348 #2351 (thanks @jhhazelaar)
71
  * Fix for sidebar retrieval in PHP 8 #2385 (thanks @marciojc)
72
  * Fix for proper ignoring of the Cache directory on case-insensitive file systems #342 #2416 (thanks @toonvandeputte)
73
 
74
+ * Fixed a bug when using `switch_to_blog()` in combination with Timber images #1312 #2478 (thanks @gchtr)
75
+
76
+ = 1.18.2 =
77
 
78
  **Fixes and improvements**
79
 
timber.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Timber
4
  Description: The WordPress Timber Library allows you to write themes using the power of Twig templates.
5
  Plugin URI: https://upstatement.com/timber
6
  Author: Jared Novack + Upstatement
7
- Version: 1.19.0
8
  Author URI: http://upstatement.com/
9
  */
10
  // we look for Composer files first in the plugins dir.
4
  Description: The WordPress Timber Library allows you to write themes using the power of Twig templates.
5
  Plugin URI: https://upstatement.com/timber
6
  Author: Jared Novack + Upstatement
7
+ Version: 1.19.1
8
  Author URI: http://upstatement.com/
9
  */
10
  // we look for Composer files first in the plugins dir.
vendor/altorouter/altorouter/AltoRouter.php CHANGED
@@ -204,7 +204,7 @@ class AltoRouter
204
  $requestUrl = substr($requestUrl, 0, $strpos);
205
  }
206
 
207
- $lastRequestUrlChar = $requestUrl[strlen($requestUrl)-1];
208
 
209
  // set Request Method if it isn't passed as a parameter
210
  if ($requestMethod === null) {
204
  $requestUrl = substr($requestUrl, 0, $strpos);
205
  }
206
 
207
+ $lastRequestUrlChar = $requestUrl ? $requestUrl[strlen($requestUrl)-1] : '';
208
 
209
  // set Request Method if it isn't passed as a parameter
210
  if ($requestMethod === null) {
vendor/altorouter/altorouter/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # AltoRouter [![Build Status](https://api.travis-ci.org/dannyvankooten/AltoRouter.png)](http://travis-ci.org/dannyvankooten/AltoRouter) [![Latest Stable Version](https://poser.pugx.org/altorouter/altorouter/v/stable.svg)](https://packagist.org/packages/altorouter/altorouter) [![License](https://poser.pugx.org/altorouter/altorouter/license.svg)](https://packagist.org/packages/altorouter/altorouter) [![Code Climate](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/gpa.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter) [![Test Coverage](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/coverage.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter)
2
  AltoRouter is a small but powerful routing class, heavily inspired by [klein.php](https://github.com/chriso/klein.php/).
3
 
4
  ```php
1
+ # AltoRouter [![Build Status](https://img.shields.io/travis/dannyvankooten/AltoRouter/master)](https://travis-ci.org/dannyvankooten/AltoRouter) [![Latest Stable Version](https://poser.pugx.org/altorouter/altorouter/v/stable.svg)](https://packagist.org/packages/altorouter/altorouter) [![License](https://poser.pugx.org/altorouter/altorouter/license.svg)](https://packagist.org/packages/altorouter/altorouter) [![Code Climate](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/gpa.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter) [![Test Coverage](https://codeclimate.com/github/dannyvankooten/AltoRouter/badges/coverage.svg)](https://codeclimate.com/github/dannyvankooten/AltoRouter)
2
  AltoRouter is a small but powerful routing class, heavily inspired by [klein.php](https://github.com/chriso/klein.php/).
3
 
4
  ```php
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit6083f74763027d293cf808f57b917514::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit88b27880b72a8f9d46918e01e89ec929::getLoader();
vendor/composer/ClassLoader.php CHANGED
@@ -37,57 +37,130 @@ namespace Composer\Autoload;
37
  *
38
  * @author Fabien Potencier <fabien@symfony.com>
39
  * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see http://www.php-fig.org/psr/psr-0/
41
- * @see http://www.php-fig.org/psr/psr-4/
42
  */
43
  class ClassLoader
44
  {
 
 
 
45
  // PSR-4
 
 
 
 
46
  private $prefixLengthsPsr4 = array();
 
 
 
 
47
  private $prefixDirsPsr4 = array();
 
 
 
 
48
  private $fallbackDirsPsr4 = array();
49
 
50
  // PSR-0
 
 
 
 
51
  private $prefixesPsr0 = array();
 
 
 
 
52
  private $fallbackDirsPsr0 = array();
53
 
 
54
  private $useIncludePath = false;
 
 
 
 
 
55
  private $classMap = array();
 
 
56
  private $classMapAuthoritative = false;
 
 
 
 
 
57
  private $missingClasses = array();
 
 
58
  private $apcuPrefix;
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  public function getPrefixes()
61
  {
62
  if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', $this->prefixesPsr0);
64
  }
65
 
66
  return array();
67
  }
68
 
 
 
 
 
69
  public function getPrefixesPsr4()
70
  {
71
  return $this->prefixDirsPsr4;
72
  }
73
 
 
 
 
 
74
  public function getFallbackDirs()
75
  {
76
  return $this->fallbackDirsPsr0;
77
  }
78
 
 
 
 
 
79
  public function getFallbackDirsPsr4()
80
  {
81
  return $this->fallbackDirsPsr4;
82
  }
83
 
 
 
 
 
84
  public function getClassMap()
85
  {
86
  return $this->classMap;
87
  }
88
 
89
  /**
90
- * @param array $classMap Class to filename map
 
 
 
91
  */
92
  public function addClassMap(array $classMap)
93
  {
@@ -102,9 +175,11 @@ class ClassLoader
102
  * Registers a set of PSR-0 directories for a given prefix, either
103
  * appending or prepending to the ones previously set for this prefix.
104
  *
105
- * @param string $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
 
 
108
  */
109
  public function add($prefix, $paths, $prepend = false)
110
  {
@@ -147,11 +222,13 @@ class ClassLoader
147
  * Registers a set of PSR-4 directories for a given namespace, either
148
  * appending or prepending to the ones previously set for this namespace.
149
  *
150
- * @param string $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
153
  *
154
  * @throws \InvalidArgumentException
 
 
155
  */
156
  public function addPsr4($prefix, $paths, $prepend = false)
157
  {
@@ -195,8 +272,10 @@ class ClassLoader
195
  * Registers a set of PSR-0 directories for a given prefix,
196
  * replacing any others previously set for this prefix.
197
  *
198
- * @param string $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
 
 
200
  */
201
  public function set($prefix, $paths)
202
  {
@@ -211,10 +290,12 @@ class ClassLoader
211
  * Registers a set of PSR-4 directories for a given namespace,
212
  * replacing any others previously set for this namespace.
213
  *
214
- * @param string $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
216
  *
217
  * @throws \InvalidArgumentException
 
 
218
  */
219
  public function setPsr4($prefix, $paths)
220
  {
@@ -234,6 +315,8 @@ class ClassLoader
234
  * Turns on searching the include path for class files.
235
  *
236
  * @param bool $useIncludePath
 
 
237
  */
238
  public function setUseIncludePath($useIncludePath)
239
  {
@@ -256,6 +339,8 @@ class ClassLoader
256
  * that have not been registered with the class map.
257
  *
258
  * @param bool $classMapAuthoritative
 
 
259
  */
260
  public function setClassMapAuthoritative($classMapAuthoritative)
261
  {
@@ -276,6 +361,8 @@ class ClassLoader
276
  * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
  *
278
  * @param string|null $apcuPrefix
 
 
279
  */
280
  public function setApcuPrefix($apcuPrefix)
281
  {
@@ -296,25 +383,44 @@ class ClassLoader
296
  * Registers this instance as an autoloader.
297
  *
298
  * @param bool $prepend Whether to prepend the autoloader or not
 
 
299
  */
300
  public function register($prepend = false)
301
  {
302
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
 
 
 
 
 
 
 
 
 
 
 
303
  }
304
 
305
  /**
306
  * Unregisters this instance as an autoloader.
 
 
307
  */
308
  public function unregister()
309
  {
310
  spl_autoload_unregister(array($this, 'loadClass'));
 
 
 
 
311
  }
312
 
313
  /**
314
  * Loads the given class or interface.
315
  *
316
  * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
  */
319
  public function loadClass($class)
320
  {
@@ -323,6 +429,8 @@ class ClassLoader
323
 
324
  return true;
325
  }
 
 
326
  }
327
 
328
  /**
@@ -367,6 +475,21 @@ class ClassLoader
367
  return $file;
368
  }
369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  private function findFileWithExtension($class, $ext)
371
  {
372
  // PSR-4 lookup
@@ -438,6 +561,10 @@ class ClassLoader
438
  * Scope isolated include.
439
  *
440
  * Prevents access to $this/self from included files.
 
 
 
 
441
  */
442
  function includeFile($file)
443
  {
37
  *
38
  * @author Fabien Potencier <fabien@symfony.com>
39
  * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see https://www.php-fig.org/psr/psr-0/
41
+ * @see https://www.php-fig.org/psr/psr-4/
42
  */
43
  class ClassLoader
44
  {
45
+ /** @var ?string */
46
+ private $vendorDir;
47
+
48
  // PSR-4
49
+ /**
50
+ * @var array[]
51
+ * @psalm-var array<string, array<string, int>>
52
+ */
53
  private $prefixLengthsPsr4 = array();
54
+ /**
55
+ * @var array[]
56
+ * @psalm-var array<string, array<int, string>>
57
+ */
58
  private $prefixDirsPsr4 = array();
59
+ /**
60
+ * @var array[]
61
+ * @psalm-var array<string, string>
62
+ */
63
  private $fallbackDirsPsr4 = array();
64
 
65
  // PSR-0
66
+ /**
67
+ * @var array[]
68
+ * @psalm-var array<string, array<string, string[]>>
69
+ */
70
  private $prefixesPsr0 = array();
71
+ /**
72
+ * @var array[]
73
+ * @psalm-var array<string, string>
74
+ */
75
  private $fallbackDirsPsr0 = array();
76
 
77
+ /** @var bool */
78
  private $useIncludePath = false;
79
+
80
+ /**
81
+ * @var string[]
82
+ * @psalm-var array<string, string>
83
+ */
84
  private $classMap = array();
85
+
86
+ /** @var bool */
87
  private $classMapAuthoritative = false;
88
+
89
+ /**
90
+ * @var bool[]
91
+ * @psalm-var array<string, bool>
92
+ */
93
  private $missingClasses = array();
94
+
95
+ /** @var ?string */
96
  private $apcuPrefix;
97
 
98
+ /**
99
+ * @var self[]
100
+ */
101
+ private static $registeredLoaders = array();
102
+
103
+ /**
104
+ * @param ?string $vendorDir
105
+ */
106
+ public function __construct($vendorDir = null)
107
+ {
108
+ $this->vendorDir = $vendorDir;
109
+ }
110
+
111
+ /**
112
+ * @return string[]
113
+ */
114
  public function getPrefixes()
115
  {
116
  if (!empty($this->prefixesPsr0)) {
117
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
118
  }
119
 
120
  return array();
121
  }
122
 
123
+ /**
124
+ * @return array[]
125
+ * @psalm-return array<string, array<int, string>>
126
+ */
127
  public function getPrefixesPsr4()
128
  {
129
  return $this->prefixDirsPsr4;
130
  }
131
 
132
+ /**
133
+ * @return array[]
134
+ * @psalm-return array<string, string>
135
+ */
136
  public function getFallbackDirs()
137
  {
138
  return $this->fallbackDirsPsr0;
139
  }
140
 
141
+ /**
142
+ * @return array[]
143
+ * @psalm-return array<string, string>
144
+ */
145
  public function getFallbackDirsPsr4()
146
  {
147
  return $this->fallbackDirsPsr4;
148
  }
149
 
150
+ /**
151
+ * @return string[] Array of classname => path
152
+ * @psalm-var array<string, string>
153
+ */
154
  public function getClassMap()
155
  {
156
  return $this->classMap;
157
  }
158
 
159
  /**
160
+ * @param string[] $classMap Class to filename map
161
+ * @psalm-param array<string, string> $classMap
162
+ *
163
+ * @return void
164
  */
165
  public function addClassMap(array $classMap)
166
  {
175
  * Registers a set of PSR-0 directories for a given prefix, either
176
  * appending or prepending to the ones previously set for this prefix.
177
  *
178
+ * @param string $prefix The prefix
179
+ * @param string[]|string $paths The PSR-0 root directories
180
+ * @param bool $prepend Whether to prepend the directories
181
+ *
182
+ * @return void
183
  */
184
  public function add($prefix, $paths, $prepend = false)
185
  {
222
  * Registers a set of PSR-4 directories for a given namespace, either
223
  * appending or prepending to the ones previously set for this namespace.
224
  *
225
+ * @param string $prefix The prefix/namespace, with trailing '\\'
226
+ * @param string[]|string $paths The PSR-4 base directories
227
+ * @param bool $prepend Whether to prepend the directories
228
  *
229
  * @throws \InvalidArgumentException
230
+ *
231
+ * @return void
232
  */
233
  public function addPsr4($prefix, $paths, $prepend = false)
234
  {
272
  * Registers a set of PSR-0 directories for a given prefix,
273
  * replacing any others previously set for this prefix.
274
  *
275
+ * @param string $prefix The prefix
276
+ * @param string[]|string $paths The PSR-0 base directories
277
+ *
278
+ * @return void
279
  */
280
  public function set($prefix, $paths)
281
  {
290
  * Registers a set of PSR-4 directories for a given namespace,
291
  * replacing any others previously set for this namespace.
292
  *
293
+ * @param string $prefix The prefix/namespace, with trailing '\\'
294
+ * @param string[]|string $paths The PSR-4 base directories
295
  *
296
  * @throws \InvalidArgumentException
297
+ *
298
+ * @return void
299
  */
300
  public function setPsr4($prefix, $paths)
301
  {
315
  * Turns on searching the include path for class files.
316
  *
317
  * @param bool $useIncludePath
318
+ *
319
+ * @return void
320
  */
321
  public function setUseIncludePath($useIncludePath)
322
  {
339
  * that have not been registered with the class map.
340
  *
341
  * @param bool $classMapAuthoritative
342
+ *
343
+ * @return void
344
  */
345
  public function setClassMapAuthoritative($classMapAuthoritative)
346
  {
361
  * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
362
  *
363
  * @param string|null $apcuPrefix
364
+ *
365
+ * @return void
366
  */
367
  public function setApcuPrefix($apcuPrefix)
368
  {
383
  * Registers this instance as an autoloader.
384
  *
385
  * @param bool $prepend Whether to prepend the autoloader or not
386
+ *
387
+ * @return void
388
  */
389
  public function register($prepend = false)
390
  {
391
  spl_autoload_register(array($this, 'loadClass'), true, $prepend);
392
+
393
+ if (null === $this->vendorDir) {
394
+ return;
395
+ }
396
+
397
+ if ($prepend) {
398
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
399
+ } else {
400
+ unset(self::$registeredLoaders[$this->vendorDir]);
401
+ self::$registeredLoaders[$this->vendorDir] = $this;
402
+ }
403
  }
404
 
405
  /**
406
  * Unregisters this instance as an autoloader.
407
+ *
408
+ * @return void
409
  */
410
  public function unregister()
411
  {
412
  spl_autoload_unregister(array($this, 'loadClass'));
413
+
414
+ if (null !== $this->vendorDir) {
415
+ unset(self::$registeredLoaders[$this->vendorDir]);
416
+ }
417
  }
418
 
419
  /**
420
  * Loads the given class or interface.
421
  *
422
  * @param string $class The name of the class
423
+ * @return true|null True if loaded, null otherwise
424
  */
425
  public function loadClass($class)
426
  {
429
 
430
  return true;
431
  }
432
+
433
+ return null;
434
  }
435
 
436
  /**
475
  return $file;
476
  }
477
 
478
+ /**
479
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
480
+ *
481
+ * @return self[]
482
+ */
483
+ public static function getRegisteredLoaders()
484
+ {
485
+ return self::$registeredLoaders;
486
+ }
487
+
488
+ /**
489
+ * @param string $class
490
+ * @param string $ext
491
+ * @return string|false
492
+ */
493
  private function findFileWithExtension($class, $ext)
494
  {
495
  // PSR-4 lookup
561
  * Scope isolated include.
562
  *
563
  * Prevents access to $this/self from included files.
564
+ *
565
+ * @param string $file
566
+ * @return void
567
+ * @private
568
  */
569
  function includeFile($file)
570
  {
vendor/composer/InstalledVersions.php ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer;
14
+
15
+ use Composer\Autoload\ClassLoader;
16
+ use Composer\Semver\VersionParser;
17
+
18
+ /**
19
+ * This class is copied in every Composer installed project and available to all
20
+ *
21
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
22
+ *
23
+ * To require its presence, you can require `composer-runtime-api ^2.0`
24
+ */
25
+ class InstalledVersions
26
+ {
27
+ private static $installed;
28
+ private static $canGetVendors;
29
+ private static $installedByVendor = array();
30
+
31
+ /**
32
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
33
+ *
34
+ * @return string[]
35
+ * @psalm-return list<string>
36
+ */
37
+ public static function getInstalledPackages()
38
+ {
39
+ $packages = array();
40
+ foreach (self::getInstalled() as $installed) {
41
+ $packages[] = array_keys($installed['versions']);
42
+ }
43
+
44
+ if (1 === \count($packages)) {
45
+ return $packages[0];
46
+ }
47
+
48
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
49
+ }
50
+
51
+ /**
52
+ * Returns a list of all package names with a specific type e.g. 'library'
53
+ *
54
+ * @param string $type
55
+ * @return string[]
56
+ * @psalm-return list<string>
57
+ */
58
+ public static function getInstalledPackagesByType($type)
59
+ {
60
+ $packagesByType = array();
61
+
62
+ foreach (self::getInstalled() as $installed) {
63
+ foreach ($installed['versions'] as $name => $package) {
64
+ if (isset($package['type']) && $package['type'] === $type) {
65
+ $packagesByType[] = $name;
66
+ }
67
+ }
68
+ }
69
+
70
+ return $packagesByType;
71
+ }
72
+
73
+ /**
74
+ * Checks whether the given package is installed
75
+ *
76
+ * This also returns true if the package name is provided or replaced by another package
77
+ *
78
+ * @param string $packageName
79
+ * @param bool $includeDevRequirements
80
+ * @return bool
81
+ */
82
+ public static function isInstalled($packageName, $includeDevRequirements = true)
83
+ {
84
+ foreach (self::getInstalled() as $installed) {
85
+ if (isset($installed['versions'][$packageName])) {
86
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
87
+ }
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+ /**
94
+ * Checks whether the given package satisfies a version constraint
95
+ *
96
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
97
+ *
98
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
99
+ *
100
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
101
+ * @param string $packageName
102
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
103
+ * @return bool
104
+ */
105
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
106
+ {
107
+ $constraint = $parser->parseConstraints($constraint);
108
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
109
+
110
+ return $provided->matches($constraint);
111
+ }
112
+
113
+ /**
114
+ * Returns a version constraint representing all the range(s) which are installed for a given package
115
+ *
116
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
117
+ * whether a given version of a package is installed, and not just whether it exists
118
+ *
119
+ * @param string $packageName
120
+ * @return string Version constraint usable with composer/semver
121
+ */
122
+ public static function getVersionRanges($packageName)
123
+ {
124
+ foreach (self::getInstalled() as $installed) {
125
+ if (!isset($installed['versions'][$packageName])) {
126
+ continue;
127
+ }
128
+
129
+ $ranges = array();
130
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
131
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
132
+ }
133
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
134
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
135
+ }
136
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
137
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
138
+ }
139
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
140
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
141
+ }
142
+
143
+ return implode(' || ', $ranges);
144
+ }
145
+
146
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
147
+ }
148
+
149
+ /**
150
+ * @param string $packageName
151
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
152
+ */
153
+ public static function getVersion($packageName)
154
+ {
155
+ foreach (self::getInstalled() as $installed) {
156
+ if (!isset($installed['versions'][$packageName])) {
157
+ continue;
158
+ }
159
+
160
+ if (!isset($installed['versions'][$packageName]['version'])) {
161
+ return null;
162
+ }
163
+
164
+ return $installed['versions'][$packageName]['version'];
165
+ }
166
+
167
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
168
+ }
169
+
170
+ /**
171
+ * @param string $packageName
172
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
173
+ */
174
+ public static function getPrettyVersion($packageName)
175
+ {
176
+ foreach (self::getInstalled() as $installed) {
177
+ if (!isset($installed['versions'][$packageName])) {
178
+ continue;
179
+ }
180
+
181
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
182
+ return null;
183
+ }
184
+
185
+ return $installed['versions'][$packageName]['pretty_version'];
186
+ }
187
+
188
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
189
+ }
190
+
191
+ /**
192
+ * @param string $packageName
193
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
194
+ */
195
+ public static function getReference($packageName)
196
+ {
197
+ foreach (self::getInstalled() as $installed) {
198
+ if (!isset($installed['versions'][$packageName])) {
199
+ continue;
200
+ }
201
+
202
+ if (!isset($installed['versions'][$packageName]['reference'])) {
203
+ return null;
204
+ }
205
+
206
+ return $installed['versions'][$packageName]['reference'];
207
+ }
208
+
209
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
210
+ }
211
+
212
+ /**
213
+ * @param string $packageName
214
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
215
+ */
216
+ public static function getInstallPath($packageName)
217
+ {
218
+ foreach (self::getInstalled() as $installed) {
219
+ if (!isset($installed['versions'][$packageName])) {
220
+ continue;
221
+ }
222
+
223
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
224
+ }
225
+
226
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
227
+ }
228
+
229
+ /**
230
+ * @return array
231
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
232
+ */
233
+ public static function getRootPackage()
234
+ {
235
+ $installed = self::getInstalled();
236
+
237
+ return $installed[0]['root'];
238
+ }
239
+
240
+ /**
241
+ * Returns the raw installed.php data for custom implementations
242
+ *
243
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
244
+ * @return array[]
245
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
246
+ */
247
+ public static function getRawData()
248
+ {
249
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
250
+
251
+ if (null === self::$installed) {
252
+ // only require the installed.php file if this file is loaded from its dumped location,
253
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
254
+ if (substr(__DIR__, -8, 1) !== 'C') {
255
+ self::$installed = include __DIR__ . '/installed.php';
256
+ } else {
257
+ self::$installed = array();
258
+ }
259
+ }
260
+
261
+ return self::$installed;
262
+ }
263
+
264
+ /**
265
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
266
+ *
267
+ * @return array[]
268
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
269
+ */
270
+ public static function getAllRawData()
271
+ {
272
+ return self::getInstalled();
273
+ }
274
+
275
+ /**
276
+ * Lets you reload the static array from another file
277
+ *
278
+ * This is only useful for complex integrations in which a project needs to use
279
+ * this class but then also needs to execute another project's autoloader in process,
280
+ * and wants to ensure both projects have access to their version of installed.php.
281
+ *
282
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
283
+ * the data it needs from this class, then call reload() with
284
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
285
+ * the project in which it runs can then also use this class safely, without
286
+ * interference between PHPUnit's dependencies and the project's dependencies.
287
+ *
288
+ * @param array[] $data A vendor/composer/installed.php data set
289
+ * @return void
290
+ *
291
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
292
+ */
293
+ public static function reload($data)
294
+ {
295
+ self::$installed = $data;
296
+ self::$installedByVendor = array();
297
+ }
298
+
299
+ /**
300
+ * @return array[]
301
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
302
+ */
303
+ private static function getInstalled()
304
+ {
305
+ if (null === self::$canGetVendors) {
306
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
307
+ }
308
+
309
+ $installed = array();
310
+
311
+ if (self::$canGetVendors) {
312
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
313
+ if (isset(self::$installedByVendor[$vendorDir])) {
314
+ $installed[] = self::$installedByVendor[$vendorDir];
315
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
316
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
317
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
318
+ self::$installed = $installed[count($installed) - 1];
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ if (null === self::$installed) {
325
+ // only require the installed.php file if this file is loaded from its dumped location,
326
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
327
+ if (substr(__DIR__, -8, 1) !== 'C') {
328
+ self::$installed = require __DIR__ . '/installed.php';
329
+ } else {
330
+ self::$installed = array();
331
+ }
332
+ }
333
+ $installed[] = self::$installed;
334
+
335
+ return $installed;
336
+ }
337
+ }
vendor/composer/autoload_classmap.php CHANGED
@@ -7,6 +7,7 @@ $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
  'AltoRouter' => $vendorDir . '/altorouter/altorouter/AltoRouter.php',
 
10
  'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
11
  'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
12
  'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
7
 
8
  return array(
9
  'AltoRouter' => $vendorDir . '/altorouter/altorouter/AltoRouter.php',
10
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
11
  'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
12
  'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
13
  'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit6083f74763027d293cf808f57b917514
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,17 @@ class ComposerAutoloaderInit6083f74763027d293cf808f57b917514
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit6083f74763027d293cf808f57b917514', 'loadClassLoader'), true, true);
26
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit6083f74763027d293cf808f57b917514', 'loadClassLoader'));
 
 
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
- require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit6083f74763027d293cf808f57b917514::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -51,19 +53,19 @@ class ComposerAutoloaderInit6083f74763027d293cf808f57b917514
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
- $includeFiles = Composer\Autoload\ComposerStaticInit6083f74763027d293cf808f57b917514::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
- composerRequire6083f74763027d293cf808f57b917514($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
- function composerRequire6083f74763027d293cf808f57b917514($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit88b27880b72a8f9d46918e01e89ec929
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ require __DIR__ . '/platform_check.php';
26
+
27
+ spl_autoload_register(array('ComposerAutoloaderInit88b27880b72a8f9d46918e01e89ec929', 'loadClassLoader'), true, true);
28
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInit88b27880b72a8f9d46918e01e89ec929', 'loadClassLoader'));
30
 
31
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
32
  if ($useStaticLoader) {
33
+ require __DIR__ . '/autoload_static.php';
34
 
35
+ call_user_func(\Composer\Autoload\ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::getInitializer($loader));
36
  } else {
37
  $map = require __DIR__ . '/autoload_namespaces.php';
38
  foreach ($map as $namespace => $path) {
53
  $loader->register(true);
54
 
55
  if ($useStaticLoader) {
56
+ $includeFiles = Composer\Autoload\ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$files;
57
  } else {
58
  $includeFiles = require __DIR__ . '/autoload_files.php';
59
  }
60
  foreach ($includeFiles as $fileIdentifier => $file) {
61
+ composerRequire88b27880b72a8f9d46918e01e89ec929($fileIdentifier, $file);
62
  }
63
 
64
  return $loader;
65
  }
66
  }
67
 
68
+ function composerRequire88b27880b72a8f9d46918e01e89ec929($fileIdentifier, $file)
69
  {
70
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
71
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit6083f74763027d293cf808f57b917514
8
  {
9
  public static $files = array (
10
  '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
@@ -68,6 +68,7 @@ class ComposerStaticInit6083f74763027d293cf808f57b917514
68
 
69
  public static $classMap = array (
70
  'AltoRouter' => __DIR__ . '/..' . '/altorouter/altorouter/AltoRouter.php',
 
71
  'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
72
  'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
73
  'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
@@ -624,11 +625,11 @@ class ComposerStaticInit6083f74763027d293cf808f57b917514
624
  public static function getInitializer(ClassLoader $loader)
625
  {
626
  return \Closure::bind(function () use ($loader) {
627
- $loader->prefixLengthsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixLengthsPsr4;
628
- $loader->prefixDirsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixDirsPsr4;
629
- $loader->fallbackDirsPsr4 = ComposerStaticInit6083f74763027d293cf808f57b917514::$fallbackDirsPsr4;
630
- $loader->prefixesPsr0 = ComposerStaticInit6083f74763027d293cf808f57b917514::$prefixesPsr0;
631
- $loader->classMap = ComposerStaticInit6083f74763027d293cf808f57b917514::$classMap;
632
 
633
  }, null, ClassLoader::class);
634
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit88b27880b72a8f9d46918e01e89ec929
8
  {
9
  public static $files = array (
10
  '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
68
 
69
  public static $classMap = array (
70
  'AltoRouter' => __DIR__ . '/..' . '/altorouter/altorouter/AltoRouter.php',
71
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
72
  'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
73
  'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
74
  'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
625
  public static function getInitializer(ClassLoader $loader)
626
  {
627
  return \Closure::bind(function () use ($loader) {
628
+ $loader->prefixLengthsPsr4 = ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$prefixLengthsPsr4;
629
+ $loader->prefixDirsPsr4 = ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$prefixDirsPsr4;
630
+ $loader->fallbackDirsPsr4 = ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$fallbackDirsPsr4;
631
+ $loader->prefixesPsr0 = ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$prefixesPsr0;
632
+ $loader->classMap = ComposerStaticInit88b27880b72a8f9d46918e01e89ec929::$classMap;
633
 
634
  }, null, ClassLoader::class);
635
  }
vendor/composer/installed.json CHANGED
@@ -1,476 +1,510 @@
1
- [
2
- {
3
- "name": "altorouter/altorouter",
4
- "version": "2.0.1",
5
- "version_normalized": "2.0.1.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/dannyvankooten/AltoRouter.git",
9
- "reference": "127f6e96998708a31ef32252985bea82e3b03888"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/127f6e96998708a31ef32252985bea82e3b03888",
14
- "reference": "127f6e96998708a31ef32252985bea82e3b03888",
15
- "shasum": ""
16
- },
17
- "require": {
18
- "php": ">=5.6.0"
19
- },
20
- "require-dev": {
21
- "codeclimate/php-test-reporter": "dev-master",
22
- "phpunit/phpunit": "5.7.*",
23
- "squizlabs/php_codesniffer": "3.4.2"
24
- },
25
- "time": "2019-11-23T11:01:41+00:00",
26
- "type": "library",
27
- "installation-source": "dist",
28
- "autoload": {
29
- "classmap": [
30
- "AltoRouter.php"
31
- ]
32
- },
33
- "notification-url": "https://packagist.org/downloads/",
34
- "license": [
35
- "MIT"
36
- ],
37
- "authors": [
38
- {
39
- "name": "Danny van Kooten",
40
- "email": "dannyvankooten@gmail.com",
41
- "homepage": "http://dannyvankooten.com/"
42
- },
43
- {
44
- "name": "Koen Punt",
45
- "homepage": "https://github.com/koenpunt"
46
- },
47
- {
48
- "name": "niahoo",
49
- "homepage": "https://github.com/niahoo"
50
- }
51
- ],
52
- "description": "A lightning fast router for PHP",
53
- "homepage": "https://github.com/dannyvankooten/AltoRouter",
54
- "keywords": [
55
- "lightweight",
56
- "router",
57
- "routing"
58
- ]
59
- },
60
- {
61
- "name": "composer/installers",
62
- "version": "v1.12.0",
63
- "version_normalized": "1.12.0.0",
64
- "source": {
65
- "type": "git",
66
- "url": "https://github.com/composer/installers.git",
67
- "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19"
68
- },
69
- "dist": {
70
- "type": "zip",
71
- "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19",
72
- "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19",
73
- "shasum": ""
74
- },
75
- "require": {
76
- "composer-plugin-api": "^1.0 || ^2.0"
77
- },
78
- "replace": {
79
- "roundcube/plugin-installer": "*",
80
- "shama/baton": "*"
81
- },
82
- "require-dev": {
83
- "composer/composer": "1.6.* || ^2.0",
84
- "composer/semver": "^1 || ^3",
85
- "phpstan/phpstan": "^0.12.55",
86
- "phpstan/phpstan-phpunit": "^0.12.16",
87
- "symfony/phpunit-bridge": "^4.2 || ^5",
88
- "symfony/process": "^2.3"
89
- },
90
- "time": "2021-09-13T08:19:44+00:00",
91
- "type": "composer-plugin",
92
- "extra": {
93
- "class": "Composer\\Installers\\Plugin",
94
- "branch-alias": {
95
- "dev-main": "1.x-dev"
96
- }
97
- },
98
- "installation-source": "dist",
99
- "autoload": {
100
- "psr-4": {
101
- "Composer\\Installers\\": "src/Composer/Installers"
102
- }
103
- },
104
- "notification-url": "https://packagist.org/downloads/",
105
- "license": [
106
- "MIT"
107
- ],
108
- "authors": [
109
- {
110
- "name": "Kyle Robinson Young",
111
- "email": "kyle@dontkry.com",
112
- "homepage": "https://github.com/shama"
113
- }
114
- ],
115
- "description": "A multi-framework Composer library installer",
116
- "homepage": "https://composer.github.io/installers/",
117
- "keywords": [
118
- "Craft",
119
- "Dolibarr",
120
- "Eliasis",
121
- "Hurad",
122
- "ImageCMS",
123
- "Kanboard",
124
- "Lan Management System",
125
- "MODX Evo",
126
- "MantisBT",
127
- "Mautic",
128
- "Maya",
129
- "OXID",
130
- "Plentymarkets",
131
- "Porto",
132
- "RadPHP",
133
- "SMF",
134
- "Starbug",
135
- "Thelia",
136
- "Whmcs",
137
- "WolfCMS",
138
- "agl",
139
- "aimeos",
140
- "annotatecms",
141
- "attogram",
142
- "bitrix",
143
- "cakephp",
144
- "chef",
145
- "cockpit",
146
- "codeigniter",
147
- "concrete5",
148
- "croogo",
149
- "dokuwiki",
150
- "drupal",
151
- "eZ Platform",
152
- "elgg",
153
- "expressionengine",
154
- "fuelphp",
155
- "grav",
156
- "installer",
157
- "itop",
158
- "joomla",
159
- "known",
160
- "kohana",
161
- "laravel",
162
- "lavalite",
163
- "lithium",
164
- "magento",
165
- "majima",
166
- "mako",
167
- "mediawiki",
168
- "miaoxing",
169
- "modulework",
170
- "modx",
171
- "moodle",
172
- "osclass",
173
- "pantheon",
174
- "phpbb",
175
- "piwik",
176
- "ppi",
177
- "processwire",
178
- "puppet",
179
- "pxcms",
180
- "reindex",
181
- "roundcube",
182
- "shopware",
183
- "silverstripe",
184
- "sydes",
185
- "sylius",
186
- "symfony",
187
- "tastyigniter",
188
- "typo3",
189
- "wordpress",
190
- "yawik",
191
- "zend",
192
- "zikula"
193
- ],
194
- "funding": [
195
- {
196
- "url": "https://packagist.com",
197
- "type": "custom"
198
- },
199
- {
200
- "url": "https://github.com/composer",
201
- "type": "github"
202
- },
203
- {
204
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
205
- "type": "tidelift"
206
- }
207
- ]
208
- },
209
- {
210
- "name": "symfony/polyfill-ctype",
211
- "version": "v1.19.0",
212
- "version_normalized": "1.19.0.0",
213
- "source": {
214
- "type": "git",
215
- "url": "https://github.com/symfony/polyfill-ctype.git",
216
- "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
217
- },
218
- "dist": {
219
- "type": "zip",
220
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
221
- "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
222
- "shasum": ""
223
- },
224
- "require": {
225
- "php": ">=5.3.3"
226
- },
227
- "suggest": {
228
- "ext-ctype": "For best performance"
229
- },
230
- "time": "2020-10-23T09:01:57+00:00",
231
- "type": "library",
232
- "extra": {
233
- "branch-alias": {
234
- "dev-main": "1.19-dev"
235
- },
236
- "thanks": {
237
- "name": "symfony/polyfill",
238
- "url": "https://github.com/symfony/polyfill"
239
- }
240
- },
241
- "installation-source": "dist",
242
- "autoload": {
243
- "psr-4": {
244
- "Symfony\\Polyfill\\Ctype\\": ""
245
- },
246
- "files": [
247
- "bootstrap.php"
248
- ]
249
- },
250
- "notification-url": "https://packagist.org/downloads/",
251
- "license": [
252
- "MIT"
253
- ],
254
- "authors": [
255
- {
256
- "name": "Gert de Pagter",
257
- "email": "BackEndTea@gmail.com"
258
- },
259
- {
260
- "name": "Symfony Community",
261
- "homepage": "https://symfony.com/contributors"
262
- }
263
- ],
264
- "description": "Symfony polyfill for ctype functions",
265
- "homepage": "https://symfony.com",
266
- "keywords": [
267
- "compatibility",
268
- "ctype",
269
- "polyfill",
270
- "portable"
271
- ],
272
- "funding": [
273
- {
274
- "url": "https://symfony.com/sponsor",
275
- "type": "custom"
276
- },
277
- {
278
- "url": "https://github.com/fabpot",
279
- "type": "github"
280
- },
281
- {
282
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
283
- "type": "tidelift"
284
- }
285
- ]
286
- },
287
- {
288
- "name": "twig/cache-extension",
289
- "version": "v1.5.0",
290
- "version_normalized": "1.5.0.0",
291
- "source": {
292
- "type": "git",
293
- "url": "https://github.com/twigphp/twig-cache-extension.git",
294
- "reference": "2c243643f59132194458bd03c745b079bbb12e78"
295
- },
296
- "dist": {
297
- "type": "zip",
298
- "url": "https://api.github.com/repos/twigphp/twig-cache-extension/zipball/2c243643f59132194458bd03c745b079bbb12e78",
299
- "reference": "2c243643f59132194458bd03c745b079bbb12e78",
300
- "shasum": ""
301
- },
302
- "require": {
303
- "php": ">=5.3.2",
304
- "twig/twig": "^1.38|^2.4|^3.0"
305
- },
306
- "require-dev": {
307
- "doctrine/cache": "~1.0",
308
- "phpunit/phpunit": "^5.0 || ^4.8.36",
309
- "psr/cache": "^1.0",
310
- "sebastian/comparator": "^1.2.4|^2.0"
311
- },
312
- "suggest": {
313
- "psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter."
314
- },
315
- "time": "2020-10-04T09:56:48+00:00",
316
- "type": "library",
317
- "extra": {
318
- "branch-alias": {
319
- "dev-master": "1.5-dev"
320
- }
321
- },
322
- "installation-source": "dist",
323
- "autoload": {
324
- "psr-4": {
325
- "": "lib/"
326
- }
327
- },
328
- "notification-url": "https://packagist.org/downloads/",
329
- "license": [
330
- "MIT"
331
- ],
332
- "authors": [
333
- {
334
- "name": "Alexander",
335
- "email": "iam.asm89@gmail.com"
336
- }
337
- ],
338
- "description": "Cache fragments of templates directly within Twig.",
339
- "homepage": "https://github.com/twigphp/twig-cache-extension",
340
- "keywords": [
341
- "cache",
342
- "extension",
343
- "twig"
344
- ],
345
- "funding": [
346
- {
347
- "url": "https://github.com/fabpot",
348
- "type": "github"
349
- },
350
- {
351
- "url": "https://tidelift.com/funding/github/packagist/twig/twig",
352
- "type": "tidelift"
353
- }
354
- ],
355
- "abandoned": "twig/cache-extra"
356
- },
357
- {
358
- "name": "twig/twig",
359
- "version": "v1.42.5",
360
- "version_normalized": "1.42.5.0",
361
- "source": {
362
- "type": "git",
363
- "url": "https://github.com/twigphp/Twig.git",
364
- "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e"
365
- },
366
- "dist": {
367
- "type": "zip",
368
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e",
369
- "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e",
370
- "shasum": ""
371
- },
372
- "require": {
373
- "php": ">=5.5.0",
374
- "symfony/polyfill-ctype": "^1.8"
375
- },
376
- "require-dev": {
377
- "psr/container": "^1.0",
378
- "symfony/phpunit-bridge": "^4.4|^5.0"
379
- },
380
- "time": "2020-02-11T05:59:23+00:00",
381
- "type": "library",
382
- "extra": {
383
- "branch-alias": {
384
- "dev-master": "1.42-dev"
385
- }
386
- },
387
- "installation-source": "dist",
388
- "autoload": {
389
- "psr-0": {
390
- "Twig_": "lib/"
391
- },
392
- "psr-4": {
393
- "Twig\\": "src/"
394
- }
395
- },
396
- "notification-url": "https://packagist.org/downloads/",
397
- "license": [
398
- "BSD-3-Clause"
399
- ],
400
- "authors": [
401
- {
402
- "name": "Fabien Potencier",
403
- "email": "fabien@symfony.com",
404
- "homepage": "http://fabien.potencier.org",
405
- "role": "Lead Developer"
406
- },
407
- {
408
- "name": "Twig Team",
409
- "role": "Contributors"
410
- },
411
- {
412
- "name": "Armin Ronacher",
413
- "email": "armin.ronacher@active-4.com",
414
- "role": "Project Founder"
415
- }
416
- ],
417
- "description": "Twig, the flexible, fast, and secure template language for PHP",
418
- "homepage": "https://twig.symfony.com",
419
- "keywords": [
420
- "templating"
421
- ]
422
- },
423
- {
424
- "name": "upstatement/routes",
425
- "version": "0.8",
426
- "version_normalized": "0.8.0.0",
427
- "source": {
428
- "type": "git",
429
- "url": "https://github.com/Upstatement/routes.git",
430
- "reference": "9294660710ba5cab48a62002210f74889c511701"
431
- },
432
- "dist": {
433
- "type": "zip",
434
- "url": "https://api.github.com/repos/Upstatement/routes/zipball/9294660710ba5cab48a62002210f74889c511701",
435
- "reference": "9294660710ba5cab48a62002210f74889c511701",
436
- "shasum": ""
437
- },
438
- "require": {
439
- "altorouter/altorouter": "^2.0",
440
- "composer/installers": "~1.0",
441
- "php": ">=5.6.0"
442
- },
443
- "require-dev": {
444
- "phpunit/phpunit": "5.7.16",
445
- "satooshi/php-coveralls": "*",
446
- "wp-cli/wp-cli": "*"
447
- },
448
- "time": "2020-08-14T20:20:29+00:00",
449
- "type": "library",
450
- "installation-source": "dist",
451
- "autoload": {
452
- "psr-0": {
453
- "Routes": ""
454
- }
455
- },
456
- "notification-url": "https://packagist.org/downloads/",
457
- "license": [
458
- "MIT"
459
- ],
460
- "authors": [
461
- {
462
- "name": "Jared Novack",
463
- "email": "jared@upstatement.com",
464
- "homepage": "http://upstatement.com"
465
- }
466
- ],
467
- "description": "Manage rewrites and routes in WordPress with this dead-simple plugin",
468
- "homepage": "http://routes.upstatement.com",
469
- "keywords": [
470
- "redirects",
471
- "rewrite",
472
- "routes",
473
- "routing"
474
- ]
475
- }
476
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "packages": [
3
+ {
4
+ "name": "altorouter/altorouter",
5
+ "version": "2.0.2",
6
+ "version_normalized": "2.0.2.0",
7
+ "source": {
8
+ "type": "git",
9
+ "url": "https://github.com/dannyvankooten/AltoRouter.git",
10
+ "reference": "f6fede4f94ced7c22ba63a9b8af0bf2dc38e3cb2"
11
+ },
12
+ "dist": {
13
+ "type": "zip",
14
+ "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/f6fede4f94ced7c22ba63a9b8af0bf2dc38e3cb2",
15
+ "reference": "f6fede4f94ced7c22ba63a9b8af0bf2dc38e3cb2",
16
+ "shasum": ""
17
+ },
18
+ "require": {
19
+ "php": ">=5.6.0"
20
+ },
21
+ "require-dev": {
22
+ "codeclimate/php-test-reporter": "dev-master",
23
+ "phpunit/phpunit": "5.7.*",
24
+ "squizlabs/php_codesniffer": "3.4.2"
25
+ },
26
+ "time": "2020-03-09T08:34:59+00:00",
27
+ "type": "library",
28
+ "installation-source": "dist",
29
+ "autoload": {
30
+ "classmap": [
31
+ "AltoRouter.php"
32
+ ]
33
+ },
34
+ "notification-url": "https://packagist.org/downloads/",
35
+ "license": [
36
+ "MIT"
37
+ ],
38
+ "authors": [
39
+ {
40
+ "name": "Danny van Kooten",
41
+ "email": "dannyvankooten@gmail.com",
42
+ "homepage": "http://dannyvankooten.com/"
43
+ },
44
+ {
45
+ "name": "Koen Punt",
46
+ "homepage": "https://github.com/koenpunt"
47
+ },
48
+ {
49
+ "name": "niahoo",
50
+ "homepage": "https://github.com/niahoo"
51
+ }
52
+ ],
53
+ "description": "A lightning fast router for PHP",
54
+ "homepage": "https://github.com/dannyvankooten/AltoRouter",
55
+ "keywords": [
56
+ "lightweight",
57
+ "router",
58
+ "routing"
59
+ ],
60
+ "support": {
61
+ "issues": "https://github.com/dannyvankooten/AltoRouter/issues",
62
+ "source": "https://github.com/dannyvankooten/AltoRouter/tree/2.0.2"
63
+ },
64
+ "install-path": "../altorouter/altorouter"
65
+ },
66
+ {
67
+ "name": "composer/installers",
68
+ "version": "v1.12.0",
69
+ "version_normalized": "1.12.0.0",
70
+ "source": {
71
+ "type": "git",
72
+ "url": "https://github.com/composer/installers.git",
73
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19"
74
+ },
75
+ "dist": {
76
+ "type": "zip",
77
+ "url": "https://api.github.com/repos/composer/installers/zipball/d20a64ed3c94748397ff5973488761b22f6d3f19",
78
+ "reference": "d20a64ed3c94748397ff5973488761b22f6d3f19",
79
+ "shasum": ""
80
+ },
81
+ "require": {
82
+ "composer-plugin-api": "^1.0 || ^2.0"
83
+ },
84
+ "replace": {
85
+ "roundcube/plugin-installer": "*",
86
+ "shama/baton": "*"
87
+ },
88
+ "require-dev": {
89
+ "composer/composer": "1.6.* || ^2.0",
90
+ "composer/semver": "^1 || ^3",
91
+ "phpstan/phpstan": "^0.12.55",
92
+ "phpstan/phpstan-phpunit": "^0.12.16",
93
+ "symfony/phpunit-bridge": "^4.2 || ^5",
94
+ "symfony/process": "^2.3"
95
+ },
96
+ "time": "2021-09-13T08:19:44+00:00",
97
+ "type": "composer-plugin",
98
+ "extra": {
99
+ "class": "Composer\\Installers\\Plugin",
100
+ "branch-alias": {
101
+ "dev-main": "1.x-dev"
102
+ }
103
+ },
104
+ "installation-source": "dist",
105
+ "autoload": {
106
+ "psr-4": {
107
+ "Composer\\Installers\\": "src/Composer/Installers"
108
+ }
109
+ },
110
+ "notification-url": "https://packagist.org/downloads/",
111
+ "license": [
112
+ "MIT"
113
+ ],
114
+ "authors": [
115
+ {
116
+ "name": "Kyle Robinson Young",
117
+ "email": "kyle@dontkry.com",
118
+ "homepage": "https://github.com/shama"
119
+ }
120
+ ],
121
+ "description": "A multi-framework Composer library installer",
122
+ "homepage": "https://composer.github.io/installers/",
123
+ "keywords": [
124
+ "Craft",
125
+ "Dolibarr",
126
+ "Eliasis",
127
+ "Hurad",
128
+ "ImageCMS",
129
+ "Kanboard",
130
+ "Lan Management System",
131
+ "MODX Evo",
132
+ "MantisBT",
133
+ "Mautic",
134
+ "Maya",
135
+ "OXID",
136
+ "Plentymarkets",
137
+ "Porto",
138
+ "RadPHP",
139
+ "SMF",
140
+ "Starbug",
141
+ "Thelia",
142
+ "Whmcs",
143
+ "WolfCMS",
144
+ "agl",
145
+ "aimeos",
146
+ "annotatecms",
147
+ "attogram",
148
+ "bitrix",
149
+ "cakephp",
150
+ "chef",
151
+ "cockpit",
152
+ "codeigniter",
153
+ "concrete5",
154
+ "croogo",
155
+ "dokuwiki",
156
+ "drupal",
157
+ "eZ Platform",
158
+ "elgg",
159
+ "expressionengine",
160
+ "fuelphp",
161
+ "grav",
162
+ "installer",
163
+ "itop",
164
+ "joomla",
165
+ "known",
166
+ "kohana",
167
+ "laravel",
168
+ "lavalite",
169
+ "lithium",
170
+ "magento",
171
+ "majima",
172
+ "mako",
173
+ "mediawiki",
174
+ "miaoxing",
175
+ "modulework",
176
+ "modx",
177
+ "moodle",
178
+ "osclass",
179
+ "pantheon",
180
+ "phpbb",
181
+ "piwik",
182
+ "ppi",
183
+ "processwire",
184
+ "puppet",
185
+ "pxcms",
186
+ "reindex",
187
+ "roundcube",
188
+ "shopware",
189
+ "silverstripe",
190
+ "sydes",
191
+ "sylius",
192
+ "symfony",
193
+ "tastyigniter",
194
+ "typo3",
195
+ "wordpress",
196
+ "yawik",
197
+ "zend",
198
+ "zikula"
199
+ ],
200
+ "support": {
201
+ "issues": "https://github.com/composer/installers/issues",
202
+ "source": "https://github.com/composer/installers/tree/v1.12.0"
203
+ },
204
+ "funding": [
205
+ {
206
+ "url": "https://packagist.com",
207
+ "type": "custom"
208
+ },
209
+ {
210
+ "url": "https://github.com/composer",
211
+ "type": "github"
212
+ },
213
+ {
214
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
215
+ "type": "tidelift"
216
+ }
217
+ ],
218
+ "install-path": "./installers"
219
+ },
220
+ {
221
+ "name": "symfony/polyfill-ctype",
222
+ "version": "v1.19.0",
223
+ "version_normalized": "1.19.0.0",
224
+ "source": {
225
+ "type": "git",
226
+ "url": "https://github.com/symfony/polyfill-ctype.git",
227
+ "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
228
+ },
229
+ "dist": {
230
+ "type": "zip",
231
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
232
+ "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
233
+ "shasum": ""
234
+ },
235
+ "require": {
236
+ "php": ">=5.3.3"
237
+ },
238
+ "suggest": {
239
+ "ext-ctype": "For best performance"
240
+ },
241
+ "time": "2020-10-23T09:01:57+00:00",
242
+ "type": "library",
243
+ "extra": {
244
+ "branch-alias": {
245
+ "dev-main": "1.19-dev"
246
+ },
247
+ "thanks": {
248
+ "name": "symfony/polyfill",
249
+ "url": "https://github.com/symfony/polyfill"
250
+ }
251
+ },
252
+ "installation-source": "dist",
253
+ "autoload": {
254
+ "psr-4": {
255
+ "Symfony\\Polyfill\\Ctype\\": ""
256
+ },
257
+ "files": [
258
+ "bootstrap.php"
259
+ ]
260
+ },
261
+ "notification-url": "https://packagist.org/downloads/",
262
+ "license": [
263
+ "MIT"
264
+ ],
265
+ "authors": [
266
+ {
267
+ "name": "Gert de Pagter",
268
+ "email": "BackEndTea@gmail.com"
269
+ },
270
+ {
271
+ "name": "Symfony Community",
272
+ "homepage": "https://symfony.com/contributors"
273
+ }
274
+ ],
275
+ "description": "Symfony polyfill for ctype functions",
276
+ "homepage": "https://symfony.com",
277
+ "keywords": [
278
+ "compatibility",
279
+ "ctype",
280
+ "polyfill",
281
+ "portable"
282
+ ],
283
+ "support": {
284
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
285
+ },
286
+ "funding": [
287
+ {
288
+ "url": "https://symfony.com/sponsor",
289
+ "type": "custom"
290
+ },
291
+ {
292
+ "url": "https://github.com/fabpot",
293
+ "type": "github"
294
+ },
295
+ {
296
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
297
+ "type": "tidelift"
298
+ }
299
+ ],
300
+ "install-path": "../symfony/polyfill-ctype"
301
+ },
302
+ {
303
+ "name": "twig/cache-extension",
304
+ "version": "v1.5.0",
305
+ "version_normalized": "1.5.0.0",
306
+ "source": {
307
+ "type": "git",
308
+ "url": "https://github.com/twigphp/twig-cache-extension.git",
309
+ "reference": "2c243643f59132194458bd03c745b079bbb12e78"
310
+ },
311
+ "dist": {
312
+ "type": "zip",
313
+ "url": "https://api.github.com/repos/twigphp/twig-cache-extension/zipball/2c243643f59132194458bd03c745b079bbb12e78",
314
+ "reference": "2c243643f59132194458bd03c745b079bbb12e78",
315
+ "shasum": ""
316
+ },
317
+ "require": {
318
+ "php": ">=5.3.2",
319
+ "twig/twig": "^1.38|^2.4|^3.0"
320
+ },
321
+ "require-dev": {
322
+ "doctrine/cache": "~1.0",
323
+ "phpunit/phpunit": "^5.0 || ^4.8.36",
324
+ "psr/cache": "^1.0",
325
+ "sebastian/comparator": "^1.2.4|^2.0"
326
+ },
327
+ "suggest": {
328
+ "psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter."
329
+ },
330
+ "time": "2020-10-04T09:56:48+00:00",
331
+ "type": "library",
332
+ "extra": {
333
+ "branch-alias": {
334
+ "dev-master": "1.5-dev"
335
+ }
336
+ },
337
+ "installation-source": "dist",
338
+ "autoload": {
339
+ "psr-4": {
340
+ "": "lib/"
341
+ }
342
+ },
343
+ "notification-url": "https://packagist.org/downloads/",
344
+ "license": [
345
+ "MIT"
346
+ ],
347
+ "authors": [
348
+ {
349
+ "name": "Alexander",
350
+ "email": "iam.asm89@gmail.com"
351
+ }
352
+ ],
353
+ "description": "Cache fragments of templates directly within Twig.",
354
+ "homepage": "https://github.com/twigphp/twig-cache-extension",
355
+ "keywords": [
356
+ "cache",
357
+ "extension",
358
+ "twig"
359
+ ],
360
+ "support": {
361
+ "issues": "https://github.com/twigphp/twig-cache-extension/issues",
362
+ "source": "https://github.com/twigphp/twig-cache-extension/tree/v1.5.0"
363
+ },
364
+ "funding": [
365
+ {
366
+ "url": "https://github.com/fabpot",
367
+ "type": "github"
368
+ },
369
+ {
370
+ "url": "https://tidelift.com/funding/github/packagist/twig/twig",
371
+ "type": "tidelift"
372
+ }
373
+ ],
374
+ "abandoned": "twig/cache-extra",
375
+ "install-path": "../twig/cache-extension"
376
+ },
377
+ {
378
+ "name": "twig/twig",
379
+ "version": "v1.42.5",
380
+ "version_normalized": "1.42.5.0",
381
+ "source": {
382
+ "type": "git",
383
+ "url": "https://github.com/twigphp/Twig.git",
384
+ "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e"
385
+ },
386
+ "dist": {
387
+ "type": "zip",
388
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e",
389
+ "reference": "87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e",
390
+ "shasum": ""
391
+ },
392
+ "require": {
393
+ "php": ">=5.5.0",
394
+ "symfony/polyfill-ctype": "^1.8"
395
+ },
396
+ "require-dev": {
397
+ "psr/container": "^1.0",
398
+ "symfony/phpunit-bridge": "^4.4|^5.0"
399
+ },
400
+ "time": "2020-02-11T05:59:23+00:00",
401
+ "type": "library",
402
+ "extra": {
403
+ "branch-alias": {
404
+ "dev-master": "1.42-dev"
405
+ }
406
+ },
407
+ "installation-source": "dist",
408
+ "autoload": {
409
+ "psr-0": {
410
+ "Twig_": "lib/"
411
+ },
412
+ "psr-4": {
413
+ "Twig\\": "src/"
414
+ }
415
+ },
416
+ "notification-url": "https://packagist.org/downloads/",
417
+ "license": [
418
+ "BSD-3-Clause"
419
+ ],
420
+ "authors": [
421
+ {
422
+ "name": "Fabien Potencier",
423
+ "email": "fabien@symfony.com",
424
+ "homepage": "http://fabien.potencier.org",
425
+ "role": "Lead Developer"
426
+ },
427
+ {
428
+ "name": "Twig Team",
429
+ "role": "Contributors"
430
+ },
431
+ {
432
+ "name": "Armin Ronacher",
433
+ "email": "armin.ronacher@active-4.com",
434
+ "role": "Project Founder"
435
+ }
436
+ ],
437
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
438
+ "homepage": "https://twig.symfony.com",
439
+ "keywords": [
440
+ "templating"
441
+ ],
442
+ "support": {
443
+ "issues": "https://github.com/twigphp/Twig/issues",
444
+ "source": "https://github.com/twigphp/Twig/tree/1.x"
445
+ },
446
+ "install-path": "../twig/twig"
447
+ },
448
+ {
449
+ "name": "upstatement/routes",
450
+ "version": "0.8.1",
451
+ "version_normalized": "0.8.1.0",
452
+ "source": {
453
+ "type": "git",
454
+ "url": "https://github.com/Upstatement/routes.git",
455
+ "reference": "02eb866668f5478d794547aa79e73dd92a989ad9"
456
+ },
457
+ "dist": {
458
+ "type": "zip",
459
+ "url": "https://api.github.com/repos/Upstatement/routes/zipball/02eb866668f5478d794547aa79e73dd92a989ad9",
460
+ "reference": "02eb866668f5478d794547aa79e73dd92a989ad9",
461
+ "shasum": ""
462
+ },
463
+ "require": {
464
+ "altorouter/altorouter": "^2.0.2",
465
+ "composer/installers": "~1.0",
466
+ "php": ">=5.6.0"
467
+ },
468
+ "require-dev": {
469
+ "phpunit/phpunit": "5.7.16",
470
+ "satooshi/php-coveralls": "*",
471
+ "wp-cli/wp-cli": "*"
472
+ },
473
+ "time": "2021-10-16T00:12:03+00:00",
474
+ "type": "library",
475
+ "installation-source": "dist",
476
+ "autoload": {
477
+ "psr-0": {
478
+ "Routes": ""
479
+ }
480
+ },
481
+ "notification-url": "https://packagist.org/downloads/",
482
+ "license": [
483
+ "MIT"
484
+ ],
485
+ "authors": [
486
+ {
487
+ "name": "Jared Novack",
488
+ "email": "jared@upstatement.com",
489
+ "homepage": "https://www.upstatement.com"
490
+ }
491
+ ],
492
+ "description": "Manage rewrites and routes in WordPress with this dead-simple plugin",
493
+ "homepage": "https://www.upstatement.com",
494
+ "keywords": [
495
+ "redirects",
496
+ "rewrite",
497
+ "routes",
498
+ "routing"
499
+ ],
500
+ "support": {
501
+ "issues": "https://github.com/Upstatement/routes/issues",
502
+ "source": "https://github.com/Upstatement/routes",
503
+ "wiki": "https://github.com/Upstatement/routes/wiki"
504
+ },
505
+ "install-path": "../upstatement/routes"
506
+ }
507
+ ],
508
+ "dev": false,
509
+ "dev-package-names": []
510
+ }
vendor/composer/installed.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php return array(
2
+ 'root' => array(
3
+ 'pretty_version' => '1.19.1.x-dev',
4
+ 'version' => '1.19.1.9999999-dev',
5
+ 'type' => 'library',
6
+ 'install_path' => __DIR__ . '/../../',
7
+ 'aliases' => array(),
8
+ 'reference' => '3e213fbd3587eb36adec2d5a081824c4722a0acf',
9
+ 'name' => 'timber/timber',
10
+ 'dev' => false,
11
+ ),
12
+ 'versions' => array(
13
+ 'altorouter/altorouter' => array(
14
+ 'pretty_version' => '2.0.2',
15
+ 'version' => '2.0.2.0',
16
+ 'type' => 'library',
17
+ 'install_path' => __DIR__ . '/../altorouter/altorouter',
18
+ 'aliases' => array(),
19
+ 'reference' => 'f6fede4f94ced7c22ba63a9b8af0bf2dc38e3cb2',
20
+ 'dev_requirement' => false,
21
+ ),
22
+ 'composer/installers' => array(
23
+ 'pretty_version' => 'v1.12.0',
24
+ 'version' => '1.12.0.0',
25
+ 'type' => 'composer-plugin',
26
+ 'install_path' => __DIR__ . '/./installers',
27
+ 'aliases' => array(),
28
+ 'reference' => 'd20a64ed3c94748397ff5973488761b22f6d3f19',
29
+ 'dev_requirement' => false,
30
+ ),
31
+ 'roundcube/plugin-installer' => array(
32
+ 'dev_requirement' => false,
33
+ 'replaced' => array(
34
+ 0 => '*',
35
+ ),
36
+ ),
37
+ 'shama/baton' => array(
38
+ 'dev_requirement' => false,
39
+ 'replaced' => array(
40
+ 0 => '*',
41
+ ),
42
+ ),
43
+ 'symfony/polyfill-ctype' => array(
44
+ 'pretty_version' => 'v1.19.0',
45
+ 'version' => '1.19.0.0',
46
+ 'type' => 'library',
47
+ 'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
48
+ 'aliases' => array(),
49
+ 'reference' => 'aed596913b70fae57be53d86faa2e9ef85a2297b',
50
+ 'dev_requirement' => false,
51
+ ),
52
+ 'timber/timber' => array(
53
+ 'pretty_version' => '1.19.1.x-dev',
54
+ 'version' => '1.19.1.9999999-dev',
55
+ 'type' => 'library',
56
+ 'install_path' => __DIR__ . '/../../',
57
+ 'aliases' => array(),
58
+ 'reference' => '3e213fbd3587eb36adec2d5a081824c4722a0acf',
59
+ 'dev_requirement' => false,
60
+ ),
61
+ 'twig/cache-extension' => array(
62
+ 'pretty_version' => 'v1.5.0',
63
+ 'version' => '1.5.0.0',
64
+ 'type' => 'library',
65
+ 'install_path' => __DIR__ . '/../twig/cache-extension',
66
+ 'aliases' => array(),
67
+ 'reference' => '2c243643f59132194458bd03c745b079bbb12e78',
68
+ 'dev_requirement' => false,
69
+ ),
70
+ 'twig/twig' => array(
71
+ 'pretty_version' => 'v1.42.5',
72
+ 'version' => '1.42.5.0',
73
+ 'type' => 'library',
74
+ 'install_path' => __DIR__ . '/../twig/twig',
75
+ 'aliases' => array(),
76
+ 'reference' => '87b2ea9d8f6fd014d0621ca089bb1b3769ea3f8e',
77
+ 'dev_requirement' => false,
78
+ ),
79
+ 'upstatement/routes' => array(
80
+ 'pretty_version' => '0.8.1',
81
+ 'version' => '0.8.1.0',
82
+ 'type' => 'library',
83
+ 'install_path' => __DIR__ . '/../upstatement/routes',
84
+ 'aliases' => array(),
85
+ 'reference' => '02eb866668f5478d794547aa79e73dd92a989ad9',
86
+ 'dev_requirement' => false,
87
+ ),
88
+ ),
89
+ );
vendor/composer/platform_check.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // platform_check.php @generated by Composer
4
+
5
+ $issues = array();
6
+
7
+ if (!(PHP_VERSION_ID >= 50600)) {
8
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 5.6.0". You are running ' . PHP_VERSION . '.';
9
+ }
10
+
11
+ if ($issues) {
12
+ if (!headers_sent()) {
13
+ header('HTTP/1.1 500 Internal Server Error');
14
+ }
15
+ if (!ini_get('display_errors')) {
16
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
17
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
18
+ } elseif (!headers_sent()) {
19
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
20
+ }
21
+ }
22
+ trigger_error(
23
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
24
+ E_USER_ERROR
25
+ );
26
+ }
vendor/upstatement/routes/README.md CHANGED
@@ -105,7 +105,6 @@ Routes::map('info/:name/page/:pg', function($params){
105
  $query = 'posts_per_page=3&post_type='.$params['name'].'&paged='.intval($params['pg']);
106
 
107
  //load up a template which will use that query
108
- $params = array();
109
  $params['my_title'] = 'This is my custom title';
110
  Routes::load('archive.php', $params, $query, 200);
111
  });
105
  $query = 'posts_per_page=3&post_type='.$params['name'].'&paged='.intval($params['pg']);
106
 
107
  //load up a template which will use that query
 
108
  $params['my_title'] = 'This is my custom title';
109
  Routes::load('archive.php', $params, $query, 200);
110
  });
vendor/upstatement/routes/Routes.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
  /*
3
  Plugin Name: Routes
4
- Plugin URI: http://routes.upstatement.com
5
- Description: The WordPress Timber Library allows you to write themes using the power Twig templates
6
  Author: Jared Novack + Upstatement
7
- Version: 0.3.1
8
  Author URI: http://upstatement.com/
9
 
10
  Usage:
1
  <?php
2
  /*
3
  Plugin Name: Routes
4
+ Plugin URI: http://www.upstatement.com
5
+ Description: Routes makes it easy to add custom routing to your WordPress site. That's why we call it Routes. That is all.
6
  Author: Jared Novack + Upstatement
7
+ Version: 0.8.1
8
  Author URI: http://upstatement.com/
9
 
10
  Usage:
vendor/upstatement/routes/composer.json CHANGED
@@ -7,23 +7,23 @@
7
  "rewrite",
8
  "redirects"
9
  ],
10
- "homepage": "http://routes.upstatement.com",
11
  "license": "MIT",
12
  "authors": [
13
  {
14
  "name": "Jared Novack",
15
  "email": "jared@upstatement.com",
16
- "homepage": "http://upstatement.com"
17
  }
18
  ],
19
  "support": {
20
- "issues": "https://github.com/jarednova/routes/issues",
21
- "wiki": "https://github.com/jarednova/routes/wiki",
22
- "source": "https://github.com/jarednova/routes"
23
  },
24
  "require": {
25
  "php": ">=5.6.0",
26
- "altorouter/altorouter": "^2.0",
27
  "composer/installers": "~1.0"
28
  },
29
  "require-dev": {
7
  "rewrite",
8
  "redirects"
9
  ],
10
+ "homepage": "https://www.upstatement.com",
11
  "license": "MIT",
12
  "authors": [
13
  {
14
  "name": "Jared Novack",
15
  "email": "jared@upstatement.com",
16
+ "homepage": "https://www.upstatement.com"
17
  }
18
  ],
19
  "support": {
20
+ "issues": "https://github.com/Upstatement/routes/issues",
21
+ "wiki": "https://github.com/Upstatement/routes/wiki",
22
+ "source": "https://github.com/Upstatement/routes"
23
  },
24
  "require": {
25
  "php": ">=5.6.0",
26
+ "altorouter/altorouter": "^2.0.2",
27
  "composer/installers": "~1.0"
28
  },
29
  "require-dev": {