summaryrefslogtreecommitdiff
path: root/vendor/composer
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2024-08-13 23:45:21 +0200
committerpolo <ordipolo@gmx.fr>2024-08-13 23:45:21 +0200
commitbf6655a534a6775d30cafa67bd801276bda1d98d (patch)
treec6381e3f6c81c33eab72508f410b165ba05f7e9c /vendor/composer
parent94d67a4b51f8e62e7d518cce26a526ae1ec48278 (diff)
downloadAppliGestionPHP-bf6655a534a6775d30cafa67bd801276bda1d98d.zip
VERSION 0.2 doctrine ORM et entités
Diffstat (limited to 'vendor/composer')
-rw-r--r--vendor/composer/ClassLoader.php579
-rw-r--r--vendor/composer/InstalledVersions.php359
-rw-r--r--vendor/composer/LICENSE21
-rw-r--r--vendor/composer/autoload_classmap.php12
-rw-r--r--vendor/composer/autoload_files.php15
-rw-r--r--vendor/composer/autoload_namespaces.php10
-rw-r--r--vendor/composer/autoload_psr4.php31
-rw-r--r--vendor/composer/autoload_real.php50
-rw-r--r--vendor/composer/autoload_static.php163
-rw-r--r--vendor/composer/installed.json1879
-rw-r--r--vendor/composer/installed.php254
-rw-r--r--vendor/composer/platform_check.php26
12 files changed, 3399 insertions, 0 deletions
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
new file mode 100644
index 0000000..7824d8f
--- /dev/null
+++ b/vendor/composer/ClassLoader.php
@@ -0,0 +1,579 @@
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
13namespace Composer\Autoload;
14
15/**
16 * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17 *
18 * $loader = new \Composer\Autoload\ClassLoader();
19 *
20 * // register classes with namespaces
21 * $loader->add('Symfony\Component', __DIR__.'/component');
22 * $loader->add('Symfony', __DIR__.'/framework');
23 *
24 * // activate the autoloader
25 * $loader->register();
26 *
27 * // to enable searching the include path (eg. for PEAR packages)
28 * $loader->setUseIncludePath(true);
29 *
30 * In this example, if you try to use a class in the Symfony\Component
31 * namespace or one of its children (Symfony\Component\Console for instance),
32 * the autoloader will first look for the class under the component/
33 * directory, and it will then fallback to the framework/ directory if not
34 * found before giving up.
35 *
36 * This class is loosely based on the Symfony UniversalClassLoader.
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 */
43class ClassLoader
44{
45 /** @var \Closure(string):void */
46 private static $includeFile;
47
48 /** @var string|null */
49 private $vendorDir;
50
51 // PSR-4
52 /**
53 * @var array<string, array<string, int>>
54 */
55 private $prefixLengthsPsr4 = array();
56 /**
57 * @var array<string, list<string>>
58 */
59 private $prefixDirsPsr4 = array();
60 /**
61 * @var list<string>
62 */
63 private $fallbackDirsPsr4 = array();
64
65 // PSR-0
66 /**
67 * List of PSR-0 prefixes
68 *
69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
70 *
71 * @var array<string, array<string, list<string>>>
72 */
73 private $prefixesPsr0 = array();
74 /**
75 * @var list<string>
76 */
77 private $fallbackDirsPsr0 = array();
78
79 /** @var bool */
80 private $useIncludePath = false;
81
82 /**
83 * @var array<string, string>
84 */
85 private $classMap = array();
86
87 /** @var bool */
88 private $classMapAuthoritative = false;
89
90 /**
91 * @var array<string, bool>
92 */
93 private $missingClasses = array();
94
95 /** @var string|null */
96 private $apcuPrefix;
97
98 /**
99 * @var array<string, self>
100 */
101 private static $registeredLoaders = array();
102
103 /**
104 * @param string|null $vendorDir
105 */
106 public function __construct($vendorDir = null)
107 {
108 $this->vendorDir = $vendorDir;
109 self::initializeIncludeClosure();
110 }
111
112 /**
113 * @return array<string, list<string>>
114 */
115 public function getPrefixes()
116 {
117 if (!empty($this->prefixesPsr0)) {
118 return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
119 }
120
121 return array();
122 }
123
124 /**
125 * @return array<string, list<string>>
126 */
127 public function getPrefixesPsr4()
128 {
129 return $this->prefixDirsPsr4;
130 }
131
132 /**
133 * @return list<string>
134 */
135 public function getFallbackDirs()
136 {
137 return $this->fallbackDirsPsr0;
138 }
139
140 /**
141 * @return list<string>
142 */
143 public function getFallbackDirsPsr4()
144 {
145 return $this->fallbackDirsPsr4;
146 }
147
148 /**
149 * @return array<string, string> Array of classname => path
150 */
151 public function getClassMap()
152 {
153 return $this->classMap;
154 }
155
156 /**
157 * @param array<string, string> $classMap Class to filename map
158 *
159 * @return void
160 */
161 public function addClassMap(array $classMap)
162 {
163 if ($this->classMap) {
164 $this->classMap = array_merge($this->classMap, $classMap);
165 } else {
166 $this->classMap = $classMap;
167 }
168 }
169
170 /**
171 * Registers a set of PSR-0 directories for a given prefix, either
172 * appending or prepending to the ones previously set for this prefix.
173 *
174 * @param string $prefix The prefix
175 * @param list<string>|string $paths The PSR-0 root directories
176 * @param bool $prepend Whether to prepend the directories
177 *
178 * @return void
179 */
180 public function add($prefix, $paths, $prepend = false)
181 {
182 $paths = (array) $paths;
183 if (!$prefix) {
184 if ($prepend) {
185 $this->fallbackDirsPsr0 = array_merge(
186 $paths,
187 $this->fallbackDirsPsr0
188 );
189 } else {
190 $this->fallbackDirsPsr0 = array_merge(
191 $this->fallbackDirsPsr0,
192 $paths
193 );
194 }
195
196 return;
197 }
198
199 $first = $prefix[0];
200 if (!isset($this->prefixesPsr0[$first][$prefix])) {
201 $this->prefixesPsr0[$first][$prefix] = $paths;
202
203 return;
204 }
205 if ($prepend) {
206 $this->prefixesPsr0[$first][$prefix] = array_merge(
207 $paths,
208 $this->prefixesPsr0[$first][$prefix]
209 );
210 } else {
211 $this->prefixesPsr0[$first][$prefix] = array_merge(
212 $this->prefixesPsr0[$first][$prefix],
213 $paths
214 );
215 }
216 }
217
218 /**
219 * Registers a set of PSR-4 directories for a given namespace, either
220 * appending or prepending to the ones previously set for this namespace.
221 *
222 * @param string $prefix The prefix/namespace, with trailing '\\'
223 * @param list<string>|string $paths The PSR-4 base directories
224 * @param bool $prepend Whether to prepend the directories
225 *
226 * @throws \InvalidArgumentException
227 *
228 * @return void
229 */
230 public function addPsr4($prefix, $paths, $prepend = false)
231 {
232 $paths = (array) $paths;
233 if (!$prefix) {
234 // Register directories for the root namespace.
235 if ($prepend) {
236 $this->fallbackDirsPsr4 = array_merge(
237 $paths,
238 $this->fallbackDirsPsr4
239 );
240 } else {
241 $this->fallbackDirsPsr4 = array_merge(
242 $this->fallbackDirsPsr4,
243 $paths
244 );
245 }
246 } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
247 // Register directories for a new namespace.
248 $length = strlen($prefix);
249 if ('\\' !== $prefix[$length - 1]) {
250 throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
251 }
252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
253 $this->prefixDirsPsr4[$prefix] = $paths;
254 } elseif ($prepend) {
255 // Prepend directories for an already registered namespace.
256 $this->prefixDirsPsr4[$prefix] = array_merge(
257 $paths,
258 $this->prefixDirsPsr4[$prefix]
259 );
260 } else {
261 // Append directories for an already registered namespace.
262 $this->prefixDirsPsr4[$prefix] = array_merge(
263 $this->prefixDirsPsr4[$prefix],
264 $paths
265 );
266 }
267 }
268
269 /**
270 * Registers a set of PSR-0 directories for a given prefix,
271 * replacing any others previously set for this prefix.
272 *
273 * @param string $prefix The prefix
274 * @param list<string>|string $paths The PSR-0 base directories
275 *
276 * @return void
277 */
278 public function set($prefix, $paths)
279 {
280 if (!$prefix) {
281 $this->fallbackDirsPsr0 = (array) $paths;
282 } else {
283 $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
284 }
285 }
286
287 /**
288 * Registers a set of PSR-4 directories for a given namespace,
289 * replacing any others previously set for this namespace.
290 *
291 * @param string $prefix The prefix/namespace, with trailing '\\'
292 * @param list<string>|string $paths The PSR-4 base directories
293 *
294 * @throws \InvalidArgumentException
295 *
296 * @return void
297 */
298 public function setPsr4($prefix, $paths)
299 {
300 if (!$prefix) {
301 $this->fallbackDirsPsr4 = (array) $paths;
302 } else {
303 $length = strlen($prefix);
304 if ('\\' !== $prefix[$length - 1]) {
305 throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
306 }
307 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
308 $this->prefixDirsPsr4[$prefix] = (array) $paths;
309 }
310 }
311
312 /**
313 * Turns on searching the include path for class files.
314 *
315 * @param bool $useIncludePath
316 *
317 * @return void
318 */
319 public function setUseIncludePath($useIncludePath)
320 {
321 $this->useIncludePath = $useIncludePath;
322 }
323
324 /**
325 * Can be used to check if the autoloader uses the include path to check
326 * for classes.
327 *
328 * @return bool
329 */
330 public function getUseIncludePath()
331 {
332 return $this->useIncludePath;
333 }
334
335 /**
336 * Turns off searching the prefix and fallback directories for classes
337 * that have not been registered with the class map.
338 *
339 * @param bool $classMapAuthoritative
340 *
341 * @return void
342 */
343 public function setClassMapAuthoritative($classMapAuthoritative)
344 {
345 $this->classMapAuthoritative = $classMapAuthoritative;
346 }
347
348 /**
349 * Should class lookup fail if not found in the current class map?
350 *
351 * @return bool
352 */
353 public function isClassMapAuthoritative()
354 {
355 return $this->classMapAuthoritative;
356 }
357
358 /**
359 * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
360 *
361 * @param string|null $apcuPrefix
362 *
363 * @return void
364 */
365 public function setApcuPrefix($apcuPrefix)
366 {
367 $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
368 }
369
370 /**
371 * The APCu prefix in use, or null if APCu caching is not enabled.
372 *
373 * @return string|null
374 */
375 public function getApcuPrefix()
376 {
377 return $this->apcuPrefix;
378 }
379
380 /**
381 * Registers this instance as an autoloader.
382 *
383 * @param bool $prepend Whether to prepend the autoloader or not
384 *
385 * @return void
386 */
387 public function register($prepend = false)
388 {
389 spl_autoload_register(array($this, 'loadClass'), true, $prepend);
390
391 if (null === $this->vendorDir) {
392 return;
393 }
394
395 if ($prepend) {
396 self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
397 } else {
398 unset(self::$registeredLoaders[$this->vendorDir]);
399 self::$registeredLoaders[$this->vendorDir] = $this;
400 }
401 }
402
403 /**
404 * Unregisters this instance as an autoloader.
405 *
406 * @return void
407 */
408 public function unregister()
409 {
410 spl_autoload_unregister(array($this, 'loadClass'));
411
412 if (null !== $this->vendorDir) {
413 unset(self::$registeredLoaders[$this->vendorDir]);
414 }
415 }
416
417 /**
418 * Loads the given class or interface.
419 *
420 * @param string $class The name of the class
421 * @return true|null True if loaded, null otherwise
422 */
423 public function loadClass($class)
424 {
425 if ($file = $this->findFile($class)) {
426 $includeFile = self::$includeFile;
427 $includeFile($file);
428
429 return true;
430 }
431
432 return null;
433 }
434
435 /**
436 * Finds the path to the file where the class is defined.
437 *
438 * @param string $class The name of the class
439 *
440 * @return string|false The path if found, false otherwise
441 */
442 public function findFile($class)
443 {
444 // class map lookup
445 if (isset($this->classMap[$class])) {
446 return $this->classMap[$class];
447 }
448 if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
449 return false;
450 }
451 if (null !== $this->apcuPrefix) {
452 $file = apcu_fetch($this->apcuPrefix.$class, $hit);
453 if ($hit) {
454 return $file;
455 }
456 }
457
458 $file = $this->findFileWithExtension($class, '.php');
459
460 // Search for Hack files if we are running on HHVM
461 if (false === $file && defined('HHVM_VERSION')) {
462 $file = $this->findFileWithExtension($class, '.hh');
463 }
464
465 if (null !== $this->apcuPrefix) {
466 apcu_add($this->apcuPrefix.$class, $file);
467 }
468
469 if (false === $file) {
470 // Remember that this class does not exist.
471 $this->missingClasses[$class] = true;
472 }
473
474 return $file;
475 }
476
477 /**
478 * Returns the currently registered loaders keyed by their corresponding vendor directories.
479 *
480 * @return array<string, self>
481 */
482 public static function getRegisteredLoaders()
483 {
484 return self::$registeredLoaders;
485 }
486
487 /**
488 * @param string $class
489 * @param string $ext
490 * @return string|false
491 */
492 private function findFileWithExtension($class, $ext)
493 {
494 // PSR-4 lookup
495 $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
496
497 $first = $class[0];
498 if (isset($this->prefixLengthsPsr4[$first])) {
499 $subPath = $class;
500 while (false !== $lastPos = strrpos($subPath, '\\')) {
501 $subPath = substr($subPath, 0, $lastPos);
502 $search = $subPath . '\\';
503 if (isset($this->prefixDirsPsr4[$search])) {
504 $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
505 foreach ($this->prefixDirsPsr4[$search] as $dir) {
506 if (file_exists($file = $dir . $pathEnd)) {
507 return $file;
508 }
509 }
510 }
511 }
512 }
513
514 // PSR-4 fallback dirs
515 foreach ($this->fallbackDirsPsr4 as $dir) {
516 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
517 return $file;
518 }
519 }
520
521 // PSR-0 lookup
522 if (false !== $pos = strrpos($class, '\\')) {
523 // namespaced class name
524 $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
525 . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
526 } else {
527 // PEAR-like class name
528 $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
529 }
530
531 if (isset($this->prefixesPsr0[$first])) {
532 foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
533 if (0 === strpos($class, $prefix)) {
534 foreach ($dirs as $dir) {
535 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
536 return $file;
537 }
538 }
539 }
540 }
541 }
542
543 // PSR-0 fallback dirs
544 foreach ($this->fallbackDirsPsr0 as $dir) {
545 if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
546 return $file;
547 }
548 }
549
550 // PSR-0 include paths.
551 if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
552 return $file;
553 }
554
555 return false;
556 }
557
558 /**
559 * @return void
560 */
561 private static function initializeIncludeClosure()
562 {
563 if (self::$includeFile !== null) {
564 return;
565 }
566
567 /**
568 * Scope isolated include.
569 *
570 * Prevents access to $this/self from included files.
571 *
572 * @param string $file
573 * @return void
574 */
575 self::$includeFile = \Closure::bind(static function($file) {
576 include $file;
577 }, null, null);
578 }
579}
diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php
new file mode 100644
index 0000000..51e734a
--- /dev/null
+++ b/vendor/composer/InstalledVersions.php
@@ -0,0 +1,359 @@
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
13namespace Composer;
14
15use Composer\Autoload\ClassLoader;
16use 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 * @final
26 */
27class InstalledVersions
28{
29 /**
30 * @var mixed[]|null
31 * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
32 */
33 private static $installed;
34
35 /**
36 * @var bool|null
37 */
38 private static $canGetVendors;
39
40 /**
41 * @var array[]
42 * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
43 */
44 private static $installedByVendor = array();
45
46 /**
47 * Returns a list of all package names which are present, either by being installed, replaced or provided
48 *
49 * @return string[]
50 * @psalm-return list<string>
51 */
52 public static function getInstalledPackages()
53 {
54 $packages = array();
55 foreach (self::getInstalled() as $installed) {
56 $packages[] = array_keys($installed['versions']);
57 }
58
59 if (1 === \count($packages)) {
60 return $packages[0];
61 }
62
63 return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
64 }
65
66 /**
67 * Returns a list of all package names with a specific type e.g. 'library'
68 *
69 * @param string $type
70 * @return string[]
71 * @psalm-return list<string>
72 */
73 public static function getInstalledPackagesByType($type)
74 {
75 $packagesByType = array();
76
77 foreach (self::getInstalled() as $installed) {
78 foreach ($installed['versions'] as $name => $package) {
79 if (isset($package['type']) && $package['type'] === $type) {
80 $packagesByType[] = $name;
81 }
82 }
83 }
84
85 return $packagesByType;
86 }
87
88 /**
89 * Checks whether the given package is installed
90 *
91 * This also returns true if the package name is provided or replaced by another package
92 *
93 * @param string $packageName
94 * @param bool $includeDevRequirements
95 * @return bool
96 */
97 public static function isInstalled($packageName, $includeDevRequirements = true)
98 {
99 foreach (self::getInstalled() as $installed) {
100 if (isset($installed['versions'][$packageName])) {
101 return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
102 }
103 }
104
105 return false;
106 }
107
108 /**
109 * Checks whether the given package satisfies a version constraint
110 *
111 * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
112 *
113 * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
114 *
115 * @param VersionParser $parser Install composer/semver to have access to this class and functionality
116 * @param string $packageName
117 * @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
118 * @return bool
119 */
120 public static function satisfies(VersionParser $parser, $packageName, $constraint)
121 {
122 $constraint = $parser->parseConstraints((string) $constraint);
123 $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
124
125 return $provided->matches($constraint);
126 }
127
128 /**
129 * Returns a version constraint representing all the range(s) which are installed for a given package
130 *
131 * It is easier to use this via isInstalled() with the $constraint argument if you need to check
132 * whether a given version of a package is installed, and not just whether it exists
133 *
134 * @param string $packageName
135 * @return string Version constraint usable with composer/semver
136 */
137 public static function getVersionRanges($packageName)
138 {
139 foreach (self::getInstalled() as $installed) {
140 if (!isset($installed['versions'][$packageName])) {
141 continue;
142 }
143
144 $ranges = array();
145 if (isset($installed['versions'][$packageName]['pretty_version'])) {
146 $ranges[] = $installed['versions'][$packageName]['pretty_version'];
147 }
148 if (array_key_exists('aliases', $installed['versions'][$packageName])) {
149 $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
150 }
151 if (array_key_exists('replaced', $installed['versions'][$packageName])) {
152 $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
153 }
154 if (array_key_exists('provided', $installed['versions'][$packageName])) {
155 $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
156 }
157
158 return implode(' || ', $ranges);
159 }
160
161 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
162 }
163
164 /**
165 * @param string $packageName
166 * @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
167 */
168 public static function getVersion($packageName)
169 {
170 foreach (self::getInstalled() as $installed) {
171 if (!isset($installed['versions'][$packageName])) {
172 continue;
173 }
174
175 if (!isset($installed['versions'][$packageName]['version'])) {
176 return null;
177 }
178
179 return $installed['versions'][$packageName]['version'];
180 }
181
182 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
183 }
184
185 /**
186 * @param string $packageName
187 * @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
188 */
189 public static function getPrettyVersion($packageName)
190 {
191 foreach (self::getInstalled() as $installed) {
192 if (!isset($installed['versions'][$packageName])) {
193 continue;
194 }
195
196 if (!isset($installed['versions'][$packageName]['pretty_version'])) {
197 return null;
198 }
199
200 return $installed['versions'][$packageName]['pretty_version'];
201 }
202
203 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
204 }
205
206 /**
207 * @param string $packageName
208 * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
209 */
210 public static function getReference($packageName)
211 {
212 foreach (self::getInstalled() as $installed) {
213 if (!isset($installed['versions'][$packageName])) {
214 continue;
215 }
216
217 if (!isset($installed['versions'][$packageName]['reference'])) {
218 return null;
219 }
220
221 return $installed['versions'][$packageName]['reference'];
222 }
223
224 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
225 }
226
227 /**
228 * @param string $packageName
229 * @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.
230 */
231 public static function getInstallPath($packageName)
232 {
233 foreach (self::getInstalled() as $installed) {
234 if (!isset($installed['versions'][$packageName])) {
235 continue;
236 }
237
238 return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
239 }
240
241 throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
242 }
243
244 /**
245 * @return array
246 * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
247 */
248 public static function getRootPackage()
249 {
250 $installed = self::getInstalled();
251
252 return $installed[0]['root'];
253 }
254
255 /**
256 * Returns the raw installed.php data for custom implementations
257 *
258 * @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.
259 * @return array[]
260 * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
261 */
262 public static function getRawData()
263 {
264 @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);
265
266 if (null === self::$installed) {
267 // only require the installed.php file if this file is loaded from its dumped location,
268 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
269 if (substr(__DIR__, -8, 1) !== 'C') {
270 self::$installed = include __DIR__ . '/installed.php';
271 } else {
272 self::$installed = array();
273 }
274 }
275
276 return self::$installed;
277 }
278
279 /**
280 * Returns the raw data of all installed.php which are currently loaded for custom implementations
281 *
282 * @return array[]
283 * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
284 */
285 public static function getAllRawData()
286 {
287 return self::getInstalled();
288 }
289
290 /**
291 * Lets you reload the static array from another file
292 *
293 * This is only useful for complex integrations in which a project needs to use
294 * this class but then also needs to execute another project's autoloader in process,
295 * and wants to ensure both projects have access to their version of installed.php.
296 *
297 * A typical case would be PHPUnit, where it would need to make sure it reads all
298 * the data it needs from this class, then call reload() with
299 * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
300 * the project in which it runs can then also use this class safely, without
301 * interference between PHPUnit's dependencies and the project's dependencies.
302 *
303 * @param array[] $data A vendor/composer/installed.php data set
304 * @return void
305 *
306 * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
307 */
308 public static function reload($data)
309 {
310 self::$installed = $data;
311 self::$installedByVendor = array();
312 }
313
314 /**
315 * @return array[]
316 * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
317 */
318 private static function getInstalled()
319 {
320 if (null === self::$canGetVendors) {
321 self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
322 }
323
324 $installed = array();
325
326 if (self::$canGetVendors) {
327 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
328 if (isset(self::$installedByVendor[$vendorDir])) {
329 $installed[] = self::$installedByVendor[$vendorDir];
330 } elseif (is_file($vendorDir.'/composer/installed.php')) {
331 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
332 $required = require $vendorDir.'/composer/installed.php';
333 $installed[] = self::$installedByVendor[$vendorDir] = $required;
334 if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
335 self::$installed = $installed[count($installed) - 1];
336 }
337 }
338 }
339 }
340
341 if (null === self::$installed) {
342 // only require the installed.php file if this file is loaded from its dumped location,
343 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
344 if (substr(__DIR__, -8, 1) !== 'C') {
345 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
346 $required = require __DIR__ . '/installed.php';
347 self::$installed = $required;
348 } else {
349 self::$installed = array();
350 }
351 }
352
353 if (self::$installed !== array()) {
354 $installed[] = self::$installed;
355 }
356
357 return $installed;
358 }
359}
diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE
new file mode 100644
index 0000000..f27399a
--- /dev/null
+++ b/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
1
2Copyright (c) Nils Adermann, Jordi Boggiano
3
4Permission is hereby granted, free of charge, to any person obtaining a copy
5of this software and associated documentation files (the "Software"), to deal
6in the Software without restriction, including without limitation the rights
7to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8copies of the Software, and to permit persons to whom the Software is furnished
9to do so, subject to the following conditions:
10
11The above copyright notice and this permission notice shall be included in all
12copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20THE SOFTWARE.
21
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000..778aaf6
--- /dev/null
+++ b/vendor/composer/autoload_classmap.php
@@ -0,0 +1,12 @@
1<?php
2
3// autoload_classmap.php @generated by Composer
4
5$vendorDir = dirname(__DIR__);
6$baseDir = dirname($vendorDir);
7
8return array(
9 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
10 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
11 '©' => $vendorDir . '/symfony/cache/Traits/ValueWrapper.php',
12);
diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php
new file mode 100644
index 0000000..4eb79a1
--- /dev/null
+++ b/vendor/composer/autoload_files.php
@@ -0,0 +1,15 @@
1<?php
2
3// autoload_files.php @generated by Composer
4
5$vendorDir = dirname(__DIR__);
6$baseDir = dirname($vendorDir);
7
8return array(
9 '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
10 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
11 '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
12 '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
13 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
14 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
15);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000..6c0bc99
--- /dev/null
+++ b/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,10 @@
1<?php
2
3// autoload_namespaces.php @generated by Composer
4
5$vendorDir = dirname(__DIR__);
6$baseDir = dirname($vendorDir);
7
8return array(
9 '' => array($baseDir . '/src'),
10);
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
new file mode 100644
index 0000000..c2b602b
--- /dev/null
+++ b/vendor/composer/autoload_psr4.php
@@ -0,0 +1,31 @@
1<?php
2
3// autoload_psr4.php @generated by Composer
4
5$vendorDir = dirname(__DIR__);
6$baseDir = dirname($vendorDir);
7
8return array(
9 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
10 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
11 'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'),
12 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
13 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
14 'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'),
15 'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'),
16 'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'),
17 'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
18 'Symfony\\Component\\Cache\\' => array($vendorDir . '/symfony/cache'),
19 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
20 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
21 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
22 'Doctrine\\Persistence\\' => array($vendorDir . '/doctrine/persistence/src/Persistence'),
23 'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/src'),
24 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
25 'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'),
26 'Doctrine\\Deprecations\\' => array($vendorDir . '/doctrine/deprecations/lib/Doctrine/Deprecations'),
27 'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/src'),
28 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/src'),
29 'Doctrine\\Common\\Collections\\' => array($vendorDir . '/doctrine/collections/src'),
30 'Doctrine\\Common\\' => array($vendorDir . '/doctrine/event-manager/src'),
31);
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
new file mode 100644
index 0000000..ca94fca
--- /dev/null
+++ b/vendor/composer/autoload_real.php
@@ -0,0 +1,50 @@
1<?php
2
3// autoload_real.php @generated by Composer
4
5class ComposerAutoloaderInit06b3b9cb1cc1409798fdff35c860a254
6{
7 private static $loader;
8
9 public static function loadClassLoader($class)
10 {
11 if ('Composer\Autoload\ClassLoader' === $class) {
12 require __DIR__ . '/ClassLoader.php';
13 }
14 }
15
16 /**
17 * @return \Composer\Autoload\ClassLoader
18 */
19 public static function getLoader()
20 {
21 if (null !== self::$loader) {
22 return self::$loader;
23 }
24
25 require __DIR__ . '/platform_check.php';
26
27 spl_autoload_register(array('ComposerAutoloaderInit06b3b9cb1cc1409798fdff35c860a254', 'loadClassLoader'), true, true);
28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29 spl_autoload_unregister(array('ComposerAutoloaderInit06b3b9cb1cc1409798fdff35c860a254', 'loadClassLoader'));
30
31 require __DIR__ . '/autoload_static.php';
32 call_user_func(\Composer\Autoload\ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::getInitializer($loader));
33
34 $loader->register(true);
35
36 $filesToLoad = \Composer\Autoload\ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::$files;
37 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
38 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
39 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
40
41 require $file;
42 }
43 }, null, null);
44 foreach ($filesToLoad as $fileIdentifier => $file) {
45 $requireFile($fileIdentifier, $file);
46 }
47
48 return $loader;
49 }
50}
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
new file mode 100644
index 0000000..c034123
--- /dev/null
+++ b/vendor/composer/autoload_static.php
@@ -0,0 +1,163 @@
1<?php
2
3// autoload_static.php @generated by Composer
4
5namespace Composer\Autoload;
6
7class ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254
8{
9 public static $files = array (
10 '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
11 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
12 '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
13 '8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
14 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
15 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
16 );
17
18 public static $prefixLengthsPsr4 = array (
19 'S' =>
20 array (
21 'Symfony\\Polyfill\\Mbstring\\' => 26,
22 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
23 'Symfony\\Polyfill\\Intl\\Grapheme\\' => 31,
24 'Symfony\\Polyfill\\Ctype\\' => 23,
25 'Symfony\\Contracts\\Service\\' => 26,
26 'Symfony\\Contracts\\Cache\\' => 24,
27 'Symfony\\Component\\VarExporter\\' => 30,
28 'Symfony\\Component\\String\\' => 25,
29 'Symfony\\Component\\Console\\' => 26,
30 'Symfony\\Component\\Cache\\' => 24,
31 ),
32 'P' =>
33 array (
34 'Psr\\Log\\' => 8,
35 'Psr\\Container\\' => 14,
36 'Psr\\Cache\\' => 10,
37 ),
38 'D' =>
39 array (
40 'Doctrine\\Persistence\\' => 21,
41 'Doctrine\\ORM\\' => 13,
42 'Doctrine\\Instantiator\\' => 22,
43 'Doctrine\\Inflector\\' => 19,
44 'Doctrine\\Deprecations\\' => 22,
45 'Doctrine\\DBAL\\' => 14,
46 'Doctrine\\Common\\Lexer\\' => 22,
47 'Doctrine\\Common\\Collections\\' => 28,
48 'Doctrine\\Common\\' => 16,
49 ),
50 );
51
52 public static $prefixDirsPsr4 = array (
53 'Symfony\\Polyfill\\Mbstring\\' =>
54 array (
55 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
56 ),
57 'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
58 array (
59 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer',
60 ),
61 'Symfony\\Polyfill\\Intl\\Grapheme\\' =>
62 array (
63 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme',
64 ),
65 'Symfony\\Polyfill\\Ctype\\' =>
66 array (
67 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
68 ),
69 'Symfony\\Contracts\\Service\\' =>
70 array (
71 0 => __DIR__ . '/..' . '/symfony/service-contracts',
72 ),
73 'Symfony\\Contracts\\Cache\\' =>
74 array (
75 0 => __DIR__ . '/..' . '/symfony/cache-contracts',
76 ),
77 'Symfony\\Component\\VarExporter\\' =>
78 array (
79 0 => __DIR__ . '/..' . '/symfony/var-exporter',
80 ),
81 'Symfony\\Component\\String\\' =>
82 array (
83 0 => __DIR__ . '/..' . '/symfony/string',
84 ),
85 'Symfony\\Component\\Console\\' =>
86 array (
87 0 => __DIR__ . '/..' . '/symfony/console',
88 ),
89 'Symfony\\Component\\Cache\\' =>
90 array (
91 0 => __DIR__ . '/..' . '/symfony/cache',
92 ),
93 'Psr\\Log\\' =>
94 array (
95 0 => __DIR__ . '/..' . '/psr/log/src',
96 ),
97 'Psr\\Container\\' =>
98 array (
99 0 => __DIR__ . '/..' . '/psr/container/src',
100 ),
101 'Psr\\Cache\\' =>
102 array (
103 0 => __DIR__ . '/..' . '/psr/cache/src',
104 ),
105 'Doctrine\\Persistence\\' =>
106 array (
107 0 => __DIR__ . '/..' . '/doctrine/persistence/src/Persistence',
108 ),
109 'Doctrine\\ORM\\' =>
110 array (
111 0 => __DIR__ . '/..' . '/doctrine/orm/src',
112 ),
113 'Doctrine\\Instantiator\\' =>
114 array (
115 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
116 ),
117 'Doctrine\\Inflector\\' =>
118 array (
119 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector',
120 ),
121 'Doctrine\\Deprecations\\' =>
122 array (
123 0 => __DIR__ . '/..' . '/doctrine/deprecations/lib/Doctrine/Deprecations',
124 ),
125 'Doctrine\\DBAL\\' =>
126 array (
127 0 => __DIR__ . '/..' . '/doctrine/dbal/src',
128 ),
129 'Doctrine\\Common\\Lexer\\' =>
130 array (
131 0 => __DIR__ . '/..' . '/doctrine/lexer/src',
132 ),
133 'Doctrine\\Common\\Collections\\' =>
134 array (
135 0 => __DIR__ . '/..' . '/doctrine/collections/src',
136 ),
137 'Doctrine\\Common\\' =>
138 array (
139 0 => __DIR__ . '/..' . '/doctrine/event-manager/src',
140 ),
141 );
142
143 public static $fallbackDirsPsr0 = array (
144 0 => __DIR__ . '/../..' . '/src',
145 );
146
147 public static $classMap = array (
148 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
149 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php',
150 '©' => __DIR__ . '/..' . '/symfony/cache/Traits/ValueWrapper.php',
151 );
152
153 public static function getInitializer(ClassLoader $loader)
154 {
155 return \Closure::bind(function () use ($loader) {
156 $loader->prefixLengthsPsr4 = ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::$prefixLengthsPsr4;
157 $loader->prefixDirsPsr4 = ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::$prefixDirsPsr4;
158 $loader->fallbackDirsPsr0 = ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::$fallbackDirsPsr0;
159 $loader->classMap = ComposerStaticInit06b3b9cb1cc1409798fdff35c860a254::$classMap;
160
161 }, null, ClassLoader::class);
162 }
163}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
new file mode 100644
index 0000000..c0f93d0
--- /dev/null
+++ b/vendor/composer/installed.json
@@ -0,0 +1,1879 @@
1{
2 "packages": [
3 {
4 "name": "doctrine/collections",
5 "version": "2.2.2",
6 "version_normalized": "2.2.2.0",
7 "source": {
8 "type": "git",
9 "url": "https://github.com/doctrine/collections.git",
10 "reference": "d8af7f248c74f195f7347424600fd9e17b57af59"
11 },
12 "dist": {
13 "type": "zip",
14 "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59",
15 "reference": "d8af7f248c74f195f7347424600fd9e17b57af59",
16 "shasum": ""
17 },
18 "require": {
19 "doctrine/deprecations": "^1",
20 "php": "^8.1"
21 },
22 "require-dev": {
23 "doctrine/coding-standard": "^12",
24 "ext-json": "*",
25 "phpstan/phpstan": "^1.8",
26 "phpstan/phpstan-phpunit": "^1.0",
27 "phpunit/phpunit": "^10.5",
28 "vimeo/psalm": "^5.11"
29 },
30 "time": "2024-04-18T06:56:21+00:00",
31 "type": "library",
32 "installation-source": "dist",
33 "autoload": {
34 "psr-4": {
35 "Doctrine\\Common\\Collections\\": "src"
36 }
37 },
38 "notification-url": "https://packagist.org/downloads/",
39 "license": [
40 "MIT"
41 ],
42 "authors": [
43 {
44 "name": "Guilherme Blanco",
45 "email": "guilhermeblanco@gmail.com"
46 },
47 {
48 "name": "Roman Borschel",
49 "email": "roman@code-factory.org"
50 },
51 {
52 "name": "Benjamin Eberlei",
53 "email": "kontakt@beberlei.de"
54 },
55 {
56 "name": "Jonathan Wage",
57 "email": "jonwage@gmail.com"
58 },
59 {
60 "name": "Johannes Schmitt",
61 "email": "schmittjoh@gmail.com"
62 }
63 ],
64 "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
65 "homepage": "https://www.doctrine-project.org/projects/collections.html",
66 "keywords": [
67 "array",
68 "collections",
69 "iterators",
70 "php"
71 ],
72 "support": {
73 "issues": "https://github.com/doctrine/collections/issues",
74 "source": "https://github.com/doctrine/collections/tree/2.2.2"
75 },
76 "funding": [
77 {
78 "url": "https://www.doctrine-project.org/sponsorship.html",
79 "type": "custom"
80 },
81 {
82 "url": "https://www.patreon.com/phpdoctrine",
83 "type": "patreon"
84 },
85 {
86 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections",
87 "type": "tidelift"
88 }
89 ],
90 "install-path": "../doctrine/collections"
91 },
92 {
93 "name": "doctrine/dbal",
94 "version": "4.0.5",
95 "version_normalized": "4.0.5.0",
96 "source": {
97 "type": "git",
98 "url": "https://github.com/doctrine/dbal.git",
99 "reference": "389230389ed2d73a5fbf9a07d2bc0f8d0d56070e"
100 },
101 "dist": {
102 "type": "zip",
103 "url": "https://api.github.com/repos/doctrine/dbal/zipball/389230389ed2d73a5fbf9a07d2bc0f8d0d56070e",
104 "reference": "389230389ed2d73a5fbf9a07d2bc0f8d0d56070e",
105 "shasum": ""
106 },
107 "require": {
108 "doctrine/deprecations": "^0.5.3|^1",
109 "php": "^8.1",
110 "psr/cache": "^1|^2|^3",
111 "psr/log": "^1|^2|^3"
112 },
113 "require-dev": {
114 "doctrine/coding-standard": "12.0.0",
115 "fig/log-test": "^1",
116 "jetbrains/phpstorm-stubs": "2023.2",
117 "phpstan/phpstan": "1.11.7",
118 "phpstan/phpstan-phpunit": "1.4.0",
119 "phpstan/phpstan-strict-rules": "^1.6",
120 "phpunit/phpunit": "10.5.28",
121 "psalm/plugin-phpunit": "0.19.0",
122 "slevomat/coding-standard": "8.13.1",
123 "squizlabs/php_codesniffer": "3.10.2",
124 "symfony/cache": "^6.3.8|^7.0",
125 "symfony/console": "^5.4|^6.3|^7.0",
126 "vimeo/psalm": "5.24.0"
127 },
128 "suggest": {
129 "symfony/console": "For helpful console commands such as SQL execution and import of files."
130 },
131 "time": "2024-08-07T12:53:48+00:00",
132 "type": "library",
133 "installation-source": "dist",
134 "autoload": {
135 "psr-4": {
136 "Doctrine\\DBAL\\": "src"
137 }
138 },
139 "notification-url": "https://packagist.org/downloads/",
140 "license": [
141 "MIT"
142 ],
143 "authors": [
144 {
145 "name": "Guilherme Blanco",
146 "email": "guilhermeblanco@gmail.com"
147 },
148 {
149 "name": "Roman Borschel",
150 "email": "roman@code-factory.org"
151 },
152 {
153 "name": "Benjamin Eberlei",
154 "email": "kontakt@beberlei.de"
155 },
156 {
157 "name": "Jonathan Wage",
158 "email": "jonwage@gmail.com"
159 }
160 ],
161 "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
162 "homepage": "https://www.doctrine-project.org/projects/dbal.html",
163 "keywords": [
164 "abstraction",
165 "database",
166 "db2",
167 "dbal",
168 "mariadb",
169 "mssql",
170 "mysql",
171 "oci8",
172 "oracle",
173 "pdo",
174 "pgsql",
175 "postgresql",
176 "queryobject",
177 "sasql",
178 "sql",
179 "sqlite",
180 "sqlserver",
181 "sqlsrv"
182 ],
183 "support": {
184 "issues": "https://github.com/doctrine/dbal/issues",
185 "source": "https://github.com/doctrine/dbal/tree/4.0.5"
186 },
187 "funding": [
188 {
189 "url": "https://www.doctrine-project.org/sponsorship.html",
190 "type": "custom"
191 },
192 {
193 "url": "https://www.patreon.com/phpdoctrine",
194 "type": "patreon"
195 },
196 {
197 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
198 "type": "tidelift"
199 }
200 ],
201 "install-path": "../doctrine/dbal"
202 },
203 {
204 "name": "doctrine/deprecations",
205 "version": "1.1.3",
206 "version_normalized": "1.1.3.0",
207 "source": {
208 "type": "git",
209 "url": "https://github.com/doctrine/deprecations.git",
210 "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
211 },
212 "dist": {
213 "type": "zip",
214 "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
215 "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
216 "shasum": ""
217 },
218 "require": {
219 "php": "^7.1 || ^8.0"
220 },
221 "require-dev": {
222 "doctrine/coding-standard": "^9",
223 "phpstan/phpstan": "1.4.10 || 1.10.15",
224 "phpstan/phpstan-phpunit": "^1.0",
225 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
226 "psalm/plugin-phpunit": "0.18.4",
227 "psr/log": "^1 || ^2 || ^3",
228 "vimeo/psalm": "4.30.0 || 5.12.0"
229 },
230 "suggest": {
231 "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
232 },
233 "time": "2024-01-30T19:34:25+00:00",
234 "type": "library",
235 "installation-source": "dist",
236 "autoload": {
237 "psr-4": {
238 "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
239 }
240 },
241 "notification-url": "https://packagist.org/downloads/",
242 "license": [
243 "MIT"
244 ],
245 "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
246 "homepage": "https://www.doctrine-project.org/",
247 "support": {
248 "issues": "https://github.com/doctrine/deprecations/issues",
249 "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
250 },
251 "install-path": "../doctrine/deprecations"
252 },
253 {
254 "name": "doctrine/event-manager",
255 "version": "2.0.1",
256 "version_normalized": "2.0.1.0",
257 "source": {
258 "type": "git",
259 "url": "https://github.com/doctrine/event-manager.git",
260 "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e"
261 },
262 "dist": {
263 "type": "zip",
264 "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e",
265 "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e",
266 "shasum": ""
267 },
268 "require": {
269 "php": "^8.1"
270 },
271 "conflict": {
272 "doctrine/common": "<2.9"
273 },
274 "require-dev": {
275 "doctrine/coding-standard": "^12",
276 "phpstan/phpstan": "^1.8.8",
277 "phpunit/phpunit": "^10.5",
278 "vimeo/psalm": "^5.24"
279 },
280 "time": "2024-05-22T20:47:39+00:00",
281 "type": "library",
282 "installation-source": "dist",
283 "autoload": {
284 "psr-4": {
285 "Doctrine\\Common\\": "src"
286 }
287 },
288 "notification-url": "https://packagist.org/downloads/",
289 "license": [
290 "MIT"
291 ],
292 "authors": [
293 {
294 "name": "Guilherme Blanco",
295 "email": "guilhermeblanco@gmail.com"
296 },
297 {
298 "name": "Roman Borschel",
299 "email": "roman@code-factory.org"
300 },
301 {
302 "name": "Benjamin Eberlei",
303 "email": "kontakt@beberlei.de"
304 },
305 {
306 "name": "Jonathan Wage",
307 "email": "jonwage@gmail.com"
308 },
309 {
310 "name": "Johannes Schmitt",
311 "email": "schmittjoh@gmail.com"
312 },
313 {
314 "name": "Marco Pivetta",
315 "email": "ocramius@gmail.com"
316 }
317 ],
318 "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
319 "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
320 "keywords": [
321 "event",
322 "event dispatcher",
323 "event manager",
324 "event system",
325 "events"
326 ],
327 "support": {
328 "issues": "https://github.com/doctrine/event-manager/issues",
329 "source": "https://github.com/doctrine/event-manager/tree/2.0.1"
330 },
331 "funding": [
332 {
333 "url": "https://www.doctrine-project.org/sponsorship.html",
334 "type": "custom"
335 },
336 {
337 "url": "https://www.patreon.com/phpdoctrine",
338 "type": "patreon"
339 },
340 {
341 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
342 "type": "tidelift"
343 }
344 ],
345 "install-path": "../doctrine/event-manager"
346 },
347 {
348 "name": "doctrine/inflector",
349 "version": "2.0.10",
350 "version_normalized": "2.0.10.0",
351 "source": {
352 "type": "git",
353 "url": "https://github.com/doctrine/inflector.git",
354 "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
355 },
356 "dist": {
357 "type": "zip",
358 "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
359 "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
360 "shasum": ""
361 },
362 "require": {
363 "php": "^7.2 || ^8.0"
364 },
365 "require-dev": {
366 "doctrine/coding-standard": "^11.0",
367 "phpstan/phpstan": "^1.8",
368 "phpstan/phpstan-phpunit": "^1.1",
369 "phpstan/phpstan-strict-rules": "^1.3",
370 "phpunit/phpunit": "^8.5 || ^9.5",
371 "vimeo/psalm": "^4.25 || ^5.4"
372 },
373 "time": "2024-02-18T20:23:39+00:00",
374 "type": "library",
375 "installation-source": "dist",
376 "autoload": {
377 "psr-4": {
378 "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
379 }
380 },
381 "notification-url": "https://packagist.org/downloads/",
382 "license": [
383 "MIT"
384 ],
385 "authors": [
386 {
387 "name": "Guilherme Blanco",
388 "email": "guilhermeblanco@gmail.com"
389 },
390 {
391 "name": "Roman Borschel",
392 "email": "roman@code-factory.org"
393 },
394 {
395 "name": "Benjamin Eberlei",
396 "email": "kontakt@beberlei.de"
397 },
398 {
399 "name": "Jonathan Wage",
400 "email": "jonwage@gmail.com"
401 },
402 {
403 "name": "Johannes Schmitt",
404 "email": "schmittjoh@gmail.com"
405 }
406 ],
407 "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
408 "homepage": "https://www.doctrine-project.org/projects/inflector.html",
409 "keywords": [
410 "inflection",
411 "inflector",
412 "lowercase",
413 "manipulation",
414 "php",
415 "plural",
416 "singular",
417 "strings",
418 "uppercase",
419 "words"
420 ],
421 "support": {
422 "issues": "https://github.com/doctrine/inflector/issues",
423 "source": "https://github.com/doctrine/inflector/tree/2.0.10"
424 },
425 "funding": [
426 {
427 "url": "https://www.doctrine-project.org/sponsorship.html",
428 "type": "custom"
429 },
430 {
431 "url": "https://www.patreon.com/phpdoctrine",
432 "type": "patreon"
433 },
434 {
435 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
436 "type": "tidelift"
437 }
438 ],
439 "install-path": "../doctrine/inflector"
440 },
441 {
442 "name": "doctrine/instantiator",
443 "version": "2.0.0",
444 "version_normalized": "2.0.0.0",
445 "source": {
446 "type": "git",
447 "url": "https://github.com/doctrine/instantiator.git",
448 "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
449 },
450 "dist": {
451 "type": "zip",
452 "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
453 "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
454 "shasum": ""
455 },
456 "require": {
457 "php": "^8.1"
458 },
459 "require-dev": {
460 "doctrine/coding-standard": "^11",
461 "ext-pdo": "*",
462 "ext-phar": "*",
463 "phpbench/phpbench": "^1.2",
464 "phpstan/phpstan": "^1.9.4",
465 "phpstan/phpstan-phpunit": "^1.3",
466 "phpunit/phpunit": "^9.5.27",
467 "vimeo/psalm": "^5.4"
468 },
469 "time": "2022-12-30T00:23:10+00:00",
470 "type": "library",
471 "installation-source": "dist",
472 "autoload": {
473 "psr-4": {
474 "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
475 }
476 },
477 "notification-url": "https://packagist.org/downloads/",
478 "license": [
479 "MIT"
480 ],
481 "authors": [
482 {
483 "name": "Marco Pivetta",
484 "email": "ocramius@gmail.com",
485 "homepage": "https://ocramius.github.io/"
486 }
487 ],
488 "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
489 "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
490 "keywords": [
491 "constructor",
492 "instantiate"
493 ],
494 "support": {
495 "issues": "https://github.com/doctrine/instantiator/issues",
496 "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
497 },
498 "funding": [
499 {
500 "url": "https://www.doctrine-project.org/sponsorship.html",
501 "type": "custom"
502 },
503 {
504 "url": "https://www.patreon.com/phpdoctrine",
505 "type": "patreon"
506 },
507 {
508 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
509 "type": "tidelift"
510 }
511 ],
512 "install-path": "../doctrine/instantiator"
513 },
514 {
515 "name": "doctrine/lexer",
516 "version": "3.0.1",
517 "version_normalized": "3.0.1.0",
518 "source": {
519 "type": "git",
520 "url": "https://github.com/doctrine/lexer.git",
521 "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
522 },
523 "dist": {
524 "type": "zip",
525 "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
526 "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
527 "shasum": ""
528 },
529 "require": {
530 "php": "^8.1"
531 },
532 "require-dev": {
533 "doctrine/coding-standard": "^12",
534 "phpstan/phpstan": "^1.10",
535 "phpunit/phpunit": "^10.5",
536 "psalm/plugin-phpunit": "^0.18.3",
537 "vimeo/psalm": "^5.21"
538 },
539 "time": "2024-02-05T11:56:58+00:00",
540 "type": "library",
541 "installation-source": "dist",
542 "autoload": {
543 "psr-4": {
544 "Doctrine\\Common\\Lexer\\": "src"
545 }
546 },
547 "notification-url": "https://packagist.org/downloads/",
548 "license": [
549 "MIT"
550 ],
551 "authors": [
552 {
553 "name": "Guilherme Blanco",
554 "email": "guilhermeblanco@gmail.com"
555 },
556 {
557 "name": "Roman Borschel",
558 "email": "roman@code-factory.org"
559 },
560 {
561 "name": "Johannes Schmitt",
562 "email": "schmittjoh@gmail.com"
563 }
564 ],
565 "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
566 "homepage": "https://www.doctrine-project.org/projects/lexer.html",
567 "keywords": [
568 "annotations",
569 "docblock",
570 "lexer",
571 "parser",
572 "php"
573 ],
574 "support": {
575 "issues": "https://github.com/doctrine/lexer/issues",
576 "source": "https://github.com/doctrine/lexer/tree/3.0.1"
577 },
578 "funding": [
579 {
580 "url": "https://www.doctrine-project.org/sponsorship.html",
581 "type": "custom"
582 },
583 {
584 "url": "https://www.patreon.com/phpdoctrine",
585 "type": "patreon"
586 },
587 {
588 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
589 "type": "tidelift"
590 }
591 ],
592 "install-path": "../doctrine/lexer"
593 },
594 {
595 "name": "doctrine/orm",
596 "version": "3.2.1",
597 "version_normalized": "3.2.1.0",
598 "source": {
599 "type": "git",
600 "url": "https://github.com/doctrine/orm.git",
601 "reference": "722cea6536775206e81744542b36fa7c9a4ea3e5"
602 },
603 "dist": {
604 "type": "zip",
605 "url": "https://api.github.com/repos/doctrine/orm/zipball/722cea6536775206e81744542b36fa7c9a4ea3e5",
606 "reference": "722cea6536775206e81744542b36fa7c9a4ea3e5",
607 "shasum": ""
608 },
609 "require": {
610 "composer-runtime-api": "^2",
611 "doctrine/collections": "^2.2",
612 "doctrine/dbal": "^3.8.2 || ^4",
613 "doctrine/deprecations": "^0.5.3 || ^1",
614 "doctrine/event-manager": "^1.2 || ^2",
615 "doctrine/inflector": "^1.4 || ^2.0",
616 "doctrine/instantiator": "^1.3 || ^2",
617 "doctrine/lexer": "^3",
618 "doctrine/persistence": "^3.3.1",
619 "ext-ctype": "*",
620 "php": "^8.1",
621 "psr/cache": "^1 || ^2 || ^3",
622 "symfony/console": "^5.4 || ^6.0 || ^7.0",
623 "symfony/var-exporter": "^6.3.9 || ^7.0"
624 },
625 "require-dev": {
626 "doctrine/coding-standard": "^12.0",
627 "phpbench/phpbench": "^1.0",
628 "phpstan/phpstan": "1.11.1",
629 "phpunit/phpunit": "^10.4.0",
630 "psr/log": "^1 || ^2 || ^3",
631 "squizlabs/php_codesniffer": "3.7.2",
632 "symfony/cache": "^5.4 || ^6.2 || ^7.0",
633 "vimeo/psalm": "5.24.0"
634 },
635 "suggest": {
636 "ext-dom": "Provides support for XSD validation for XML mapping files",
637 "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0"
638 },
639 "time": "2024-06-26T21:48:58+00:00",
640 "type": "library",
641 "installation-source": "dist",
642 "autoload": {
643 "psr-4": {
644 "Doctrine\\ORM\\": "src"
645 }
646 },
647 "notification-url": "https://packagist.org/downloads/",
648 "license": [
649 "MIT"
650 ],
651 "authors": [
652 {
653 "name": "Guilherme Blanco",
654 "email": "guilhermeblanco@gmail.com"
655 },
656 {
657 "name": "Roman Borschel",
658 "email": "roman@code-factory.org"
659 },
660 {
661 "name": "Benjamin Eberlei",
662 "email": "kontakt@beberlei.de"
663 },
664 {
665 "name": "Jonathan Wage",
666 "email": "jonwage@gmail.com"
667 },
668 {
669 "name": "Marco Pivetta",
670 "email": "ocramius@gmail.com"
671 }
672 ],
673 "description": "Object-Relational-Mapper for PHP",
674 "homepage": "https://www.doctrine-project.org/projects/orm.html",
675 "keywords": [
676 "database",
677 "orm"
678 ],
679 "support": {
680 "issues": "https://github.com/doctrine/orm/issues",
681 "source": "https://github.com/doctrine/orm/tree/3.2.1"
682 },
683 "install-path": "../doctrine/orm"
684 },
685 {
686 "name": "doctrine/persistence",
687 "version": "3.3.3",
688 "version_normalized": "3.3.3.0",
689 "source": {
690 "type": "git",
691 "url": "https://github.com/doctrine/persistence.git",
692 "reference": "b337726451f5d530df338fc7f68dee8781b49779"
693 },
694 "dist": {
695 "type": "zip",
696 "url": "https://api.github.com/repos/doctrine/persistence/zipball/b337726451f5d530df338fc7f68dee8781b49779",
697 "reference": "b337726451f5d530df338fc7f68dee8781b49779",
698 "shasum": ""
699 },
700 "require": {
701 "doctrine/event-manager": "^1 || ^2",
702 "php": "^7.2 || ^8.0",
703 "psr/cache": "^1.0 || ^2.0 || ^3.0"
704 },
705 "conflict": {
706 "doctrine/common": "<2.10"
707 },
708 "require-dev": {
709 "doctrine/coding-standard": "^12",
710 "doctrine/common": "^3.0",
711 "phpstan/phpstan": "1.11.1",
712 "phpstan/phpstan-phpunit": "^1",
713 "phpstan/phpstan-strict-rules": "^1.1",
714 "phpunit/phpunit": "^8.5 || ^9.5",
715 "symfony/cache": "^4.4 || ^5.4 || ^6.0",
716 "vimeo/psalm": "4.30.0 || 5.24.0"
717 },
718 "time": "2024-06-20T10:14:30+00:00",
719 "type": "library",
720 "installation-source": "dist",
721 "autoload": {
722 "psr-4": {
723 "Doctrine\\Persistence\\": "src/Persistence"
724 }
725 },
726 "notification-url": "https://packagist.org/downloads/",
727 "license": [
728 "MIT"
729 ],
730 "authors": [
731 {
732 "name": "Guilherme Blanco",
733 "email": "guilhermeblanco@gmail.com"
734 },
735 {
736 "name": "Roman Borschel",
737 "email": "roman@code-factory.org"
738 },
739 {
740 "name": "Benjamin Eberlei",
741 "email": "kontakt@beberlei.de"
742 },
743 {
744 "name": "Jonathan Wage",
745 "email": "jonwage@gmail.com"
746 },
747 {
748 "name": "Johannes Schmitt",
749 "email": "schmittjoh@gmail.com"
750 },
751 {
752 "name": "Marco Pivetta",
753 "email": "ocramius@gmail.com"
754 }
755 ],
756 "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
757 "homepage": "https://www.doctrine-project.org/projects/persistence.html",
758 "keywords": [
759 "mapper",
760 "object",
761 "odm",
762 "orm",
763 "persistence"
764 ],
765 "support": {
766 "issues": "https://github.com/doctrine/persistence/issues",
767 "source": "https://github.com/doctrine/persistence/tree/3.3.3"
768 },
769 "funding": [
770 {
771 "url": "https://www.doctrine-project.org/sponsorship.html",
772 "type": "custom"
773 },
774 {
775 "url": "https://www.patreon.com/phpdoctrine",
776 "type": "patreon"
777 },
778 {
779 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence",
780 "type": "tidelift"
781 }
782 ],
783 "install-path": "../doctrine/persistence"
784 },
785 {
786 "name": "psr/cache",
787 "version": "3.0.0",
788 "version_normalized": "3.0.0.0",
789 "source": {
790 "type": "git",
791 "url": "https://github.com/php-fig/cache.git",
792 "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
793 },
794 "dist": {
795 "type": "zip",
796 "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
797 "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
798 "shasum": ""
799 },
800 "require": {
801 "php": ">=8.0.0"
802 },
803 "time": "2021-02-03T23:26:27+00:00",
804 "type": "library",
805 "extra": {
806 "branch-alias": {
807 "dev-master": "1.0.x-dev"
808 }
809 },
810 "installation-source": "dist",
811 "autoload": {
812 "psr-4": {
813 "Psr\\Cache\\": "src/"
814 }
815 },
816 "notification-url": "https://packagist.org/downloads/",
817 "license": [
818 "MIT"
819 ],
820 "authors": [
821 {
822 "name": "PHP-FIG",
823 "homepage": "https://www.php-fig.org/"
824 }
825 ],
826 "description": "Common interface for caching libraries",
827 "keywords": [
828 "cache",
829 "psr",
830 "psr-6"
831 ],
832 "support": {
833 "source": "https://github.com/php-fig/cache/tree/3.0.0"
834 },
835 "install-path": "../psr/cache"
836 },
837 {
838 "name": "psr/container",
839 "version": "2.0.2",
840 "version_normalized": "2.0.2.0",
841 "source": {
842 "type": "git",
843 "url": "https://github.com/php-fig/container.git",
844 "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
845 },
846 "dist": {
847 "type": "zip",
848 "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
849 "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
850 "shasum": ""
851 },
852 "require": {
853 "php": ">=7.4.0"
854 },
855 "time": "2021-11-05T16:47:00+00:00",
856 "type": "library",
857 "extra": {
858 "branch-alias": {
859 "dev-master": "2.0.x-dev"
860 }
861 },
862 "installation-source": "dist",
863 "autoload": {
864 "psr-4": {
865 "Psr\\Container\\": "src/"
866 }
867 },
868 "notification-url": "https://packagist.org/downloads/",
869 "license": [
870 "MIT"
871 ],
872 "authors": [
873 {
874 "name": "PHP-FIG",
875 "homepage": "https://www.php-fig.org/"
876 }
877 ],
878 "description": "Common Container Interface (PHP FIG PSR-11)",
879 "homepage": "https://github.com/php-fig/container",
880 "keywords": [
881 "PSR-11",
882 "container",
883 "container-interface",
884 "container-interop",
885 "psr"
886 ],
887 "support": {
888 "issues": "https://github.com/php-fig/container/issues",
889 "source": "https://github.com/php-fig/container/tree/2.0.2"
890 },
891 "install-path": "../psr/container"
892 },
893 {
894 "name": "psr/log",
895 "version": "3.0.0",
896 "version_normalized": "3.0.0.0",
897 "source": {
898 "type": "git",
899 "url": "https://github.com/php-fig/log.git",
900 "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
901 },
902 "dist": {
903 "type": "zip",
904 "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
905 "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
906 "shasum": ""
907 },
908 "require": {
909 "php": ">=8.0.0"
910 },
911 "time": "2021-07-14T16:46:02+00:00",
912 "type": "library",
913 "extra": {
914 "branch-alias": {
915 "dev-master": "3.x-dev"
916 }
917 },
918 "installation-source": "dist",
919 "autoload": {
920 "psr-4": {
921 "Psr\\Log\\": "src"
922 }
923 },
924 "notification-url": "https://packagist.org/downloads/",
925 "license": [
926 "MIT"
927 ],
928 "authors": [
929 {
930 "name": "PHP-FIG",
931 "homepage": "https://www.php-fig.org/"
932 }
933 ],
934 "description": "Common interface for logging libraries",
935 "homepage": "https://github.com/php-fig/log",
936 "keywords": [
937 "log",
938 "psr",
939 "psr-3"
940 ],
941 "support": {
942 "source": "https://github.com/php-fig/log/tree/3.0.0"
943 },
944 "install-path": "../psr/log"
945 },
946 {
947 "name": "symfony/cache",
948 "version": "v7.1.3",
949 "version_normalized": "7.1.3.0",
950 "source": {
951 "type": "git",
952 "url": "https://github.com/symfony/cache.git",
953 "reference": "8ac37acee794372f9732fe8a61a8221f6762148e"
954 },
955 "dist": {
956 "type": "zip",
957 "url": "https://api.github.com/repos/symfony/cache/zipball/8ac37acee794372f9732fe8a61a8221f6762148e",
958 "reference": "8ac37acee794372f9732fe8a61a8221f6762148e",
959 "shasum": ""
960 },
961 "require": {
962 "php": ">=8.2",
963 "psr/cache": "^2.0|^3.0",
964 "psr/log": "^1.1|^2|^3",
965 "symfony/cache-contracts": "^2.5|^3",
966 "symfony/deprecation-contracts": "^2.5|^3.0",
967 "symfony/service-contracts": "^2.5|^3",
968 "symfony/var-exporter": "^6.4|^7.0"
969 },
970 "conflict": {
971 "doctrine/dbal": "<3.6",
972 "symfony/dependency-injection": "<6.4",
973 "symfony/http-kernel": "<6.4",
974 "symfony/var-dumper": "<6.4"
975 },
976 "provide": {
977 "psr/cache-implementation": "2.0|3.0",
978 "psr/simple-cache-implementation": "1.0|2.0|3.0",
979 "symfony/cache-implementation": "1.1|2.0|3.0"
980 },
981 "require-dev": {
982 "cache/integration-tests": "dev-master",
983 "doctrine/dbal": "^3.6|^4",
984 "predis/predis": "^1.1|^2.0",
985 "psr/simple-cache": "^1.0|^2.0|^3.0",
986 "symfony/config": "^6.4|^7.0",
987 "symfony/dependency-injection": "^6.4|^7.0",
988 "symfony/filesystem": "^6.4|^7.0",
989 "symfony/http-kernel": "^6.4|^7.0",
990 "symfony/messenger": "^6.4|^7.0",
991 "symfony/var-dumper": "^6.4|^7.0"
992 },
993 "time": "2024-07-17T06:10:24+00:00",
994 "type": "library",
995 "installation-source": "dist",
996 "autoload": {
997 "psr-4": {
998 "Symfony\\Component\\Cache\\": ""
999 },
1000 "classmap": [
1001 "Traits/ValueWrapper.php"
1002 ],
1003 "exclude-from-classmap": [
1004 "/Tests/"
1005 ]
1006 },
1007 "notification-url": "https://packagist.org/downloads/",
1008 "license": [
1009 "MIT"
1010 ],
1011 "authors": [
1012 {
1013 "name": "Nicolas Grekas",
1014 "email": "p@tchwork.com"
1015 },
1016 {
1017 "name": "Symfony Community",
1018 "homepage": "https://symfony.com/contributors"
1019 }
1020 ],
1021 "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
1022 "homepage": "https://symfony.com",
1023 "keywords": [
1024 "caching",
1025 "psr6"
1026 ],
1027 "support": {
1028 "source": "https://github.com/symfony/cache/tree/v7.1.3"
1029 },
1030 "funding": [
1031 {
1032 "url": "https://symfony.com/sponsor",
1033 "type": "custom"
1034 },
1035 {
1036 "url": "https://github.com/fabpot",
1037 "type": "github"
1038 },
1039 {
1040 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1041 "type": "tidelift"
1042 }
1043 ],
1044 "install-path": "../symfony/cache"
1045 },
1046 {
1047 "name": "symfony/cache-contracts",
1048 "version": "v3.5.0",
1049 "version_normalized": "3.5.0.0",
1050 "source": {
1051 "type": "git",
1052 "url": "https://github.com/symfony/cache-contracts.git",
1053 "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197"
1054 },
1055 "dist": {
1056 "type": "zip",
1057 "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
1058 "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
1059 "shasum": ""
1060 },
1061 "require": {
1062 "php": ">=8.1",
1063 "psr/cache": "^3.0"
1064 },
1065 "time": "2024-04-18T09:32:20+00:00",
1066 "type": "library",
1067 "extra": {
1068 "branch-alias": {
1069 "dev-main": "3.5-dev"
1070 },
1071 "thanks": {
1072 "name": "symfony/contracts",
1073 "url": "https://github.com/symfony/contracts"
1074 }
1075 },
1076 "installation-source": "dist",
1077 "autoload": {
1078 "psr-4": {
1079 "Symfony\\Contracts\\Cache\\": ""
1080 }
1081 },
1082 "notification-url": "https://packagist.org/downloads/",
1083 "license": [
1084 "MIT"
1085 ],
1086 "authors": [
1087 {
1088 "name": "Nicolas Grekas",
1089 "email": "p@tchwork.com"
1090 },
1091 {
1092 "name": "Symfony Community",
1093 "homepage": "https://symfony.com/contributors"
1094 }
1095 ],
1096 "description": "Generic abstractions related to caching",
1097 "homepage": "https://symfony.com",
1098 "keywords": [
1099 "abstractions",
1100 "contracts",
1101 "decoupling",
1102 "interfaces",
1103 "interoperability",
1104 "standards"
1105 ],
1106 "support": {
1107 "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0"
1108 },
1109 "funding": [
1110 {
1111 "url": "https://symfony.com/sponsor",
1112 "type": "custom"
1113 },
1114 {
1115 "url": "https://github.com/fabpot",
1116 "type": "github"
1117 },
1118 {
1119 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1120 "type": "tidelift"
1121 }
1122 ],
1123 "install-path": "../symfony/cache-contracts"
1124 },
1125 {
1126 "name": "symfony/console",
1127 "version": "v7.1.3",
1128 "version_normalized": "7.1.3.0",
1129 "source": {
1130 "type": "git",
1131 "url": "https://github.com/symfony/console.git",
1132 "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9"
1133 },
1134 "dist": {
1135 "type": "zip",
1136 "url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
1137 "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9",
1138 "shasum": ""
1139 },
1140 "require": {
1141 "php": ">=8.2",
1142 "symfony/polyfill-mbstring": "~1.0",
1143 "symfony/service-contracts": "^2.5|^3",
1144 "symfony/string": "^6.4|^7.0"
1145 },
1146 "conflict": {
1147 "symfony/dependency-injection": "<6.4",
1148 "symfony/dotenv": "<6.4",
1149 "symfony/event-dispatcher": "<6.4",
1150 "symfony/lock": "<6.4",
1151 "symfony/process": "<6.4"
1152 },
1153 "provide": {
1154 "psr/log-implementation": "1.0|2.0|3.0"
1155 },
1156 "require-dev": {
1157 "psr/log": "^1|^2|^3",
1158 "symfony/config": "^6.4|^7.0",
1159 "symfony/dependency-injection": "^6.4|^7.0",
1160 "symfony/event-dispatcher": "^6.4|^7.0",
1161 "symfony/http-foundation": "^6.4|^7.0",
1162 "symfony/http-kernel": "^6.4|^7.0",
1163 "symfony/lock": "^6.4|^7.0",
1164 "symfony/messenger": "^6.4|^7.0",
1165 "symfony/process": "^6.4|^7.0",
1166 "symfony/stopwatch": "^6.4|^7.0",
1167 "symfony/var-dumper": "^6.4|^7.0"
1168 },
1169 "time": "2024-07-26T12:41:01+00:00",
1170 "type": "library",
1171 "installation-source": "dist",
1172 "autoload": {
1173 "psr-4": {
1174 "Symfony\\Component\\Console\\": ""
1175 },
1176 "exclude-from-classmap": [
1177 "/Tests/"
1178 ]
1179 },
1180 "notification-url": "https://packagist.org/downloads/",
1181 "license": [
1182 "MIT"
1183 ],
1184 "authors": [
1185 {
1186 "name": "Fabien Potencier",
1187 "email": "fabien@symfony.com"
1188 },
1189 {
1190 "name": "Symfony Community",
1191 "homepage": "https://symfony.com/contributors"
1192 }
1193 ],
1194 "description": "Eases the creation of beautiful and testable command line interfaces",
1195 "homepage": "https://symfony.com",
1196 "keywords": [
1197 "cli",
1198 "command-line",
1199 "console",
1200 "terminal"
1201 ],
1202 "support": {
1203 "source": "https://github.com/symfony/console/tree/v7.1.3"
1204 },
1205 "funding": [
1206 {
1207 "url": "https://symfony.com/sponsor",
1208 "type": "custom"
1209 },
1210 {
1211 "url": "https://github.com/fabpot",
1212 "type": "github"
1213 },
1214 {
1215 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1216 "type": "tidelift"
1217 }
1218 ],
1219 "install-path": "../symfony/console"
1220 },
1221 {
1222 "name": "symfony/deprecation-contracts",
1223 "version": "v3.5.0",
1224 "version_normalized": "3.5.0.0",
1225 "source": {
1226 "type": "git",
1227 "url": "https://github.com/symfony/deprecation-contracts.git",
1228 "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
1229 },
1230 "dist": {
1231 "type": "zip",
1232 "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
1233 "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
1234 "shasum": ""
1235 },
1236 "require": {
1237 "php": ">=8.1"
1238 },
1239 "time": "2024-04-18T09:32:20+00:00",
1240 "type": "library",
1241 "extra": {
1242 "branch-alias": {
1243 "dev-main": "3.5-dev"
1244 },
1245 "thanks": {
1246 "name": "symfony/contracts",
1247 "url": "https://github.com/symfony/contracts"
1248 }
1249 },
1250 "installation-source": "dist",
1251 "autoload": {
1252 "files": [
1253 "function.php"
1254 ]
1255 },
1256 "notification-url": "https://packagist.org/downloads/",
1257 "license": [
1258 "MIT"
1259 ],
1260 "authors": [
1261 {
1262 "name": "Nicolas Grekas",
1263 "email": "p@tchwork.com"
1264 },
1265 {
1266 "name": "Symfony Community",
1267 "homepage": "https://symfony.com/contributors"
1268 }
1269 ],
1270 "description": "A generic function and convention to trigger deprecation notices",
1271 "homepage": "https://symfony.com",
1272 "support": {
1273 "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
1274 },
1275 "funding": [
1276 {
1277 "url": "https://symfony.com/sponsor",
1278 "type": "custom"
1279 },
1280 {
1281 "url": "https://github.com/fabpot",
1282 "type": "github"
1283 },
1284 {
1285 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1286 "type": "tidelift"
1287 }
1288 ],
1289 "install-path": "../symfony/deprecation-contracts"
1290 },
1291 {
1292 "name": "symfony/polyfill-ctype",
1293 "version": "v1.30.0",
1294 "version_normalized": "1.30.0.0",
1295 "source": {
1296 "type": "git",
1297 "url": "https://github.com/symfony/polyfill-ctype.git",
1298 "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
1299 },
1300 "dist": {
1301 "type": "zip",
1302 "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
1303 "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
1304 "shasum": ""
1305 },
1306 "require": {
1307 "php": ">=7.1"
1308 },
1309 "provide": {
1310 "ext-ctype": "*"
1311 },
1312 "suggest": {
1313 "ext-ctype": "For best performance"
1314 },
1315 "time": "2024-05-31T15:07:36+00:00",
1316 "type": "library",
1317 "extra": {
1318 "thanks": {
1319 "name": "symfony/polyfill",
1320 "url": "https://github.com/symfony/polyfill"
1321 }
1322 },
1323 "installation-source": "dist",
1324 "autoload": {
1325 "files": [
1326 "bootstrap.php"
1327 ],
1328 "psr-4": {
1329 "Symfony\\Polyfill\\Ctype\\": ""
1330 }
1331 },
1332 "notification-url": "https://packagist.org/downloads/",
1333 "license": [
1334 "MIT"
1335 ],
1336 "authors": [
1337 {
1338 "name": "Gert de Pagter",
1339 "email": "BackEndTea@gmail.com"
1340 },
1341 {
1342 "name": "Symfony Community",
1343 "homepage": "https://symfony.com/contributors"
1344 }
1345 ],
1346 "description": "Symfony polyfill for ctype functions",
1347 "homepage": "https://symfony.com",
1348 "keywords": [
1349 "compatibility",
1350 "ctype",
1351 "polyfill",
1352 "portable"
1353 ],
1354 "support": {
1355 "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
1356 },
1357 "funding": [
1358 {
1359 "url": "https://symfony.com/sponsor",
1360 "type": "custom"
1361 },
1362 {
1363 "url": "https://github.com/fabpot",
1364 "type": "github"
1365 },
1366 {
1367 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1368 "type": "tidelift"
1369 }
1370 ],
1371 "install-path": "../symfony/polyfill-ctype"
1372 },
1373 {
1374 "name": "symfony/polyfill-intl-grapheme",
1375 "version": "v1.30.0",
1376 "version_normalized": "1.30.0.0",
1377 "source": {
1378 "type": "git",
1379 "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
1380 "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
1381 },
1382 "dist": {
1383 "type": "zip",
1384 "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
1385 "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
1386 "shasum": ""
1387 },
1388 "require": {
1389 "php": ">=7.1"
1390 },
1391 "suggest": {
1392 "ext-intl": "For best performance"
1393 },
1394 "time": "2024-05-31T15:07:36+00:00",
1395 "type": "library",
1396 "extra": {
1397 "thanks": {
1398 "name": "symfony/polyfill",
1399 "url": "https://github.com/symfony/polyfill"
1400 }
1401 },
1402 "installation-source": "dist",
1403 "autoload": {
1404 "files": [
1405 "bootstrap.php"
1406 ],
1407 "psr-4": {
1408 "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
1409 }
1410 },
1411 "notification-url": "https://packagist.org/downloads/",
1412 "license": [
1413 "MIT"
1414 ],
1415 "authors": [
1416 {
1417 "name": "Nicolas Grekas",
1418 "email": "p@tchwork.com"
1419 },
1420 {
1421 "name": "Symfony Community",
1422 "homepage": "https://symfony.com/contributors"
1423 }
1424 ],
1425 "description": "Symfony polyfill for intl's grapheme_* functions",
1426 "homepage": "https://symfony.com",
1427 "keywords": [
1428 "compatibility",
1429 "grapheme",
1430 "intl",
1431 "polyfill",
1432 "portable",
1433 "shim"
1434 ],
1435 "support": {
1436 "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
1437 },
1438 "funding": [
1439 {
1440 "url": "https://symfony.com/sponsor",
1441 "type": "custom"
1442 },
1443 {
1444 "url": "https://github.com/fabpot",
1445 "type": "github"
1446 },
1447 {
1448 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1449 "type": "tidelift"
1450 }
1451 ],
1452 "install-path": "../symfony/polyfill-intl-grapheme"
1453 },
1454 {
1455 "name": "symfony/polyfill-intl-normalizer",
1456 "version": "v1.30.0",
1457 "version_normalized": "1.30.0.0",
1458 "source": {
1459 "type": "git",
1460 "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
1461 "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
1462 },
1463 "dist": {
1464 "type": "zip",
1465 "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
1466 "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
1467 "shasum": ""
1468 },
1469 "require": {
1470 "php": ">=7.1"
1471 },
1472 "suggest": {
1473 "ext-intl": "For best performance"
1474 },
1475 "time": "2024-05-31T15:07:36+00:00",
1476 "type": "library",
1477 "extra": {
1478 "thanks": {
1479 "name": "symfony/polyfill",
1480 "url": "https://github.com/symfony/polyfill"
1481 }
1482 },
1483 "installation-source": "dist",
1484 "autoload": {
1485 "files": [
1486 "bootstrap.php"
1487 ],
1488 "psr-4": {
1489 "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
1490 },
1491 "classmap": [
1492 "Resources/stubs"
1493 ]
1494 },
1495 "notification-url": "https://packagist.org/downloads/",
1496 "license": [
1497 "MIT"
1498 ],
1499 "authors": [
1500 {
1501 "name": "Nicolas Grekas",
1502 "email": "p@tchwork.com"
1503 },
1504 {
1505 "name": "Symfony Community",
1506 "homepage": "https://symfony.com/contributors"
1507 }
1508 ],
1509 "description": "Symfony polyfill for intl's Normalizer class and related functions",
1510 "homepage": "https://symfony.com",
1511 "keywords": [
1512 "compatibility",
1513 "intl",
1514 "normalizer",
1515 "polyfill",
1516 "portable",
1517 "shim"
1518 ],
1519 "support": {
1520 "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
1521 },
1522 "funding": [
1523 {
1524 "url": "https://symfony.com/sponsor",
1525 "type": "custom"
1526 },
1527 {
1528 "url": "https://github.com/fabpot",
1529 "type": "github"
1530 },
1531 {
1532 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1533 "type": "tidelift"
1534 }
1535 ],
1536 "install-path": "../symfony/polyfill-intl-normalizer"
1537 },
1538 {
1539 "name": "symfony/polyfill-mbstring",
1540 "version": "v1.30.0",
1541 "version_normalized": "1.30.0.0",
1542 "source": {
1543 "type": "git",
1544 "url": "https://github.com/symfony/polyfill-mbstring.git",
1545 "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
1546 },
1547 "dist": {
1548 "type": "zip",
1549 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
1550 "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
1551 "shasum": ""
1552 },
1553 "require": {
1554 "php": ">=7.1"
1555 },
1556 "provide": {
1557 "ext-mbstring": "*"
1558 },
1559 "suggest": {
1560 "ext-mbstring": "For best performance"
1561 },
1562 "time": "2024-06-19T12:30:46+00:00",
1563 "type": "library",
1564 "extra": {
1565 "thanks": {
1566 "name": "symfony/polyfill",
1567 "url": "https://github.com/symfony/polyfill"
1568 }
1569 },
1570 "installation-source": "dist",
1571 "autoload": {
1572 "files": [
1573 "bootstrap.php"
1574 ],
1575 "psr-4": {
1576 "Symfony\\Polyfill\\Mbstring\\": ""
1577 }
1578 },
1579 "notification-url": "https://packagist.org/downloads/",
1580 "license": [
1581 "MIT"
1582 ],
1583 "authors": [
1584 {
1585 "name": "Nicolas Grekas",
1586 "email": "p@tchwork.com"
1587 },
1588 {
1589 "name": "Symfony Community",
1590 "homepage": "https://symfony.com/contributors"
1591 }
1592 ],
1593 "description": "Symfony polyfill for the Mbstring extension",
1594 "homepage": "https://symfony.com",
1595 "keywords": [
1596 "compatibility",
1597 "mbstring",
1598 "polyfill",
1599 "portable",
1600 "shim"
1601 ],
1602 "support": {
1603 "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
1604 },
1605 "funding": [
1606 {
1607 "url": "https://symfony.com/sponsor",
1608 "type": "custom"
1609 },
1610 {
1611 "url": "https://github.com/fabpot",
1612 "type": "github"
1613 },
1614 {
1615 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1616 "type": "tidelift"
1617 }
1618 ],
1619 "install-path": "../symfony/polyfill-mbstring"
1620 },
1621 {
1622 "name": "symfony/service-contracts",
1623 "version": "v3.5.0",
1624 "version_normalized": "3.5.0.0",
1625 "source": {
1626 "type": "git",
1627 "url": "https://github.com/symfony/service-contracts.git",
1628 "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
1629 },
1630 "dist": {
1631 "type": "zip",
1632 "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
1633 "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
1634 "shasum": ""
1635 },
1636 "require": {
1637 "php": ">=8.1",
1638 "psr/container": "^1.1|^2.0",
1639 "symfony/deprecation-contracts": "^2.5|^3"
1640 },
1641 "conflict": {
1642 "ext-psr": "<1.1|>=2"
1643 },
1644 "time": "2024-04-18T09:32:20+00:00",
1645 "type": "library",
1646 "extra": {
1647 "branch-alias": {
1648 "dev-main": "3.5-dev"
1649 },
1650 "thanks": {
1651 "name": "symfony/contracts",
1652 "url": "https://github.com/symfony/contracts"
1653 }
1654 },
1655 "installation-source": "dist",
1656 "autoload": {
1657 "psr-4": {
1658 "Symfony\\Contracts\\Service\\": ""
1659 },
1660 "exclude-from-classmap": [
1661 "/Test/"
1662 ]
1663 },
1664 "notification-url": "https://packagist.org/downloads/",
1665 "license": [
1666 "MIT"
1667 ],
1668 "authors": [
1669 {
1670 "name": "Nicolas Grekas",
1671 "email": "p@tchwork.com"
1672 },
1673 {
1674 "name": "Symfony Community",
1675 "homepage": "https://symfony.com/contributors"
1676 }
1677 ],
1678 "description": "Generic abstractions related to writing services",
1679 "homepage": "https://symfony.com",
1680 "keywords": [
1681 "abstractions",
1682 "contracts",
1683 "decoupling",
1684 "interfaces",
1685 "interoperability",
1686 "standards"
1687 ],
1688 "support": {
1689 "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
1690 },
1691 "funding": [
1692 {
1693 "url": "https://symfony.com/sponsor",
1694 "type": "custom"
1695 },
1696 {
1697 "url": "https://github.com/fabpot",
1698 "type": "github"
1699 },
1700 {
1701 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1702 "type": "tidelift"
1703 }
1704 ],
1705 "install-path": "../symfony/service-contracts"
1706 },
1707 {
1708 "name": "symfony/string",
1709 "version": "v7.1.3",
1710 "version_normalized": "7.1.3.0",
1711 "source": {
1712 "type": "git",
1713 "url": "https://github.com/symfony/string.git",
1714 "reference": "ea272a882be7f20cad58d5d78c215001617b7f07"
1715 },
1716 "dist": {
1717 "type": "zip",
1718 "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07",
1719 "reference": "ea272a882be7f20cad58d5d78c215001617b7f07",
1720 "shasum": ""
1721 },
1722 "require": {
1723 "php": ">=8.2",
1724 "symfony/polyfill-ctype": "~1.8",
1725 "symfony/polyfill-intl-grapheme": "~1.0",
1726 "symfony/polyfill-intl-normalizer": "~1.0",
1727 "symfony/polyfill-mbstring": "~1.0"
1728 },
1729 "conflict": {
1730 "symfony/translation-contracts": "<2.5"
1731 },
1732 "require-dev": {
1733 "symfony/emoji": "^7.1",
1734 "symfony/error-handler": "^6.4|^7.0",
1735 "symfony/http-client": "^6.4|^7.0",
1736 "symfony/intl": "^6.4|^7.0",
1737 "symfony/translation-contracts": "^2.5|^3.0",
1738 "symfony/var-exporter": "^6.4|^7.0"
1739 },
1740 "time": "2024-07-22T10:25:37+00:00",
1741 "type": "library",
1742 "installation-source": "dist",
1743 "autoload": {
1744 "files": [
1745 "Resources/functions.php"
1746 ],
1747 "psr-4": {
1748 "Symfony\\Component\\String\\": ""
1749 },
1750 "exclude-from-classmap": [
1751 "/Tests/"
1752 ]
1753 },
1754 "notification-url": "https://packagist.org/downloads/",
1755 "license": [
1756 "MIT"
1757 ],
1758 "authors": [
1759 {
1760 "name": "Nicolas Grekas",
1761 "email": "p@tchwork.com"
1762 },
1763 {
1764 "name": "Symfony Community",
1765 "homepage": "https://symfony.com/contributors"
1766 }
1767 ],
1768 "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
1769 "homepage": "https://symfony.com",
1770 "keywords": [
1771 "grapheme",
1772 "i18n",
1773 "string",
1774 "unicode",
1775 "utf-8",
1776 "utf8"
1777 ],
1778 "support": {
1779 "source": "https://github.com/symfony/string/tree/v7.1.3"
1780 },
1781 "funding": [
1782 {
1783 "url": "https://symfony.com/sponsor",
1784 "type": "custom"
1785 },
1786 {
1787 "url": "https://github.com/fabpot",
1788 "type": "github"
1789 },
1790 {
1791 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1792 "type": "tidelift"
1793 }
1794 ],
1795 "install-path": "../symfony/string"
1796 },
1797 {
1798 "name": "symfony/var-exporter",
1799 "version": "v7.1.2",
1800 "version_normalized": "7.1.2.0",
1801 "source": {
1802 "type": "git",
1803 "url": "https://github.com/symfony/var-exporter.git",
1804 "reference": "b80a669a2264609f07f1667f891dbfca25eba44c"
1805 },
1806 "dist": {
1807 "type": "zip",
1808 "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c",
1809 "reference": "b80a669a2264609f07f1667f891dbfca25eba44c",
1810 "shasum": ""
1811 },
1812 "require": {
1813 "php": ">=8.2"
1814 },
1815 "require-dev": {
1816 "symfony/property-access": "^6.4|^7.0",
1817 "symfony/serializer": "^6.4|^7.0",
1818 "symfony/var-dumper": "^6.4|^7.0"
1819 },
1820 "time": "2024-06-28T08:00:31+00:00",
1821 "type": "library",
1822 "installation-source": "dist",
1823 "autoload": {
1824 "psr-4": {
1825 "Symfony\\Component\\VarExporter\\": ""
1826 },
1827 "exclude-from-classmap": [
1828 "/Tests/"
1829 ]
1830 },
1831 "notification-url": "https://packagist.org/downloads/",
1832 "license": [
1833 "MIT"
1834 ],
1835 "authors": [
1836 {
1837 "name": "Nicolas Grekas",
1838 "email": "p@tchwork.com"
1839 },
1840 {
1841 "name": "Symfony Community",
1842 "homepage": "https://symfony.com/contributors"
1843 }
1844 ],
1845 "description": "Allows exporting any serializable PHP data structure to plain PHP code",
1846 "homepage": "https://symfony.com",
1847 "keywords": [
1848 "clone",
1849 "construct",
1850 "export",
1851 "hydrate",
1852 "instantiate",
1853 "lazy-loading",
1854 "proxy",
1855 "serialize"
1856 ],
1857 "support": {
1858 "source": "https://github.com/symfony/var-exporter/tree/v7.1.2"
1859 },
1860 "funding": [
1861 {
1862 "url": "https://symfony.com/sponsor",
1863 "type": "custom"
1864 },
1865 {
1866 "url": "https://github.com/fabpot",
1867 "type": "github"
1868 },
1869 {
1870 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1871 "type": "tidelift"
1872 }
1873 ],
1874 "install-path": "../symfony/var-exporter"
1875 }
1876 ],
1877 "dev": true,
1878 "dev-package-names": []
1879}
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
new file mode 100644
index 0000000..d279dee
--- /dev/null
+++ b/vendor/composer/installed.php
@@ -0,0 +1,254 @@
1<?php return array(
2 'root' => array(
3 'name' => '__root__',
4 'pretty_version' => 'dev-master',
5 'version' => 'dev-master',
6 'reference' => '94d67a4b51f8e62e7d518cce26a526ae1ec48278',
7 'type' => 'library',
8 'install_path' => __DIR__ . '/../../',
9 'aliases' => array(),
10 'dev' => true,
11 ),
12 'versions' => array(
13 '__root__' => array(
14 'pretty_version' => 'dev-master',
15 'version' => 'dev-master',
16 'reference' => '94d67a4b51f8e62e7d518cce26a526ae1ec48278',
17 'type' => 'library',
18 'install_path' => __DIR__ . '/../../',
19 'aliases' => array(),
20 'dev_requirement' => false,
21 ),
22 'doctrine/collections' => array(
23 'pretty_version' => '2.2.2',
24 'version' => '2.2.2.0',
25 'reference' => 'd8af7f248c74f195f7347424600fd9e17b57af59',
26 'type' => 'library',
27 'install_path' => __DIR__ . '/../doctrine/collections',
28 'aliases' => array(),
29 'dev_requirement' => false,
30 ),
31 'doctrine/dbal' => array(
32 'pretty_version' => '4.0.5',
33 'version' => '4.0.5.0',
34 'reference' => '389230389ed2d73a5fbf9a07d2bc0f8d0d56070e',
35 'type' => 'library',
36 'install_path' => __DIR__ . '/../doctrine/dbal',
37 'aliases' => array(),
38 'dev_requirement' => false,
39 ),
40 'doctrine/deprecations' => array(
41 'pretty_version' => '1.1.3',
42 'version' => '1.1.3.0',
43 'reference' => 'dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab',
44 'type' => 'library',
45 'install_path' => __DIR__ . '/../doctrine/deprecations',
46 'aliases' => array(),
47 'dev_requirement' => false,
48 ),
49 'doctrine/event-manager' => array(
50 'pretty_version' => '2.0.1',
51 'version' => '2.0.1.0',
52 'reference' => 'b680156fa328f1dfd874fd48c7026c41570b9c6e',
53 'type' => 'library',
54 'install_path' => __DIR__ . '/../doctrine/event-manager',
55 'aliases' => array(),
56 'dev_requirement' => false,
57 ),
58 'doctrine/inflector' => array(
59 'pretty_version' => '2.0.10',
60 'version' => '2.0.10.0',
61 'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc',
62 'type' => 'library',
63 'install_path' => __DIR__ . '/../doctrine/inflector',
64 'aliases' => array(),
65 'dev_requirement' => false,
66 ),
67 'doctrine/instantiator' => array(
68 'pretty_version' => '2.0.0',
69 'version' => '2.0.0.0',
70 'reference' => 'c6222283fa3f4ac679f8b9ced9a4e23f163e80d0',
71 'type' => 'library',
72 'install_path' => __DIR__ . '/../doctrine/instantiator',
73 'aliases' => array(),
74 'dev_requirement' => false,
75 ),
76 'doctrine/lexer' => array(
77 'pretty_version' => '3.0.1',
78 'version' => '3.0.1.0',
79 'reference' => '31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd',
80 'type' => 'library',
81 'install_path' => __DIR__ . '/../doctrine/lexer',
82 'aliases' => array(),
83 'dev_requirement' => false,
84 ),
85 'doctrine/orm' => array(
86 'pretty_version' => '3.2.1',
87 'version' => '3.2.1.0',
88 'reference' => '722cea6536775206e81744542b36fa7c9a4ea3e5',
89 'type' => 'library',
90 'install_path' => __DIR__ . '/../doctrine/orm',
91 'aliases' => array(),
92 'dev_requirement' => false,
93 ),
94 'doctrine/persistence' => array(
95 'pretty_version' => '3.3.3',
96 'version' => '3.3.3.0',
97 'reference' => 'b337726451f5d530df338fc7f68dee8781b49779',
98 'type' => 'library',
99 'install_path' => __DIR__ . '/../doctrine/persistence',
100 'aliases' => array(),
101 'dev_requirement' => false,
102 ),
103 'psr/cache' => array(
104 'pretty_version' => '3.0.0',
105 'version' => '3.0.0.0',
106 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
107 'type' => 'library',
108 'install_path' => __DIR__ . '/../psr/cache',
109 'aliases' => array(),
110 'dev_requirement' => false,
111 ),
112 'psr/cache-implementation' => array(
113 'dev_requirement' => false,
114 'provided' => array(
115 0 => '2.0|3.0',
116 ),
117 ),
118 'psr/container' => array(
119 'pretty_version' => '2.0.2',
120 'version' => '2.0.2.0',
121 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
122 'type' => 'library',
123 'install_path' => __DIR__ . '/../psr/container',
124 'aliases' => array(),
125 'dev_requirement' => false,
126 ),
127 'psr/log' => array(
128 'pretty_version' => '3.0.0',
129 'version' => '3.0.0.0',
130 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001',
131 'type' => 'library',
132 'install_path' => __DIR__ . '/../psr/log',
133 'aliases' => array(),
134 'dev_requirement' => false,
135 ),
136 'psr/log-implementation' => array(
137 'dev_requirement' => false,
138 'provided' => array(
139 0 => '1.0|2.0|3.0',
140 ),
141 ),
142 'psr/simple-cache-implementation' => array(
143 'dev_requirement' => false,
144 'provided' => array(
145 0 => '1.0|2.0|3.0',
146 ),
147 ),
148 'symfony/cache' => array(
149 'pretty_version' => 'v7.1.3',
150 'version' => '7.1.3.0',
151 'reference' => '8ac37acee794372f9732fe8a61a8221f6762148e',
152 'type' => 'library',
153 'install_path' => __DIR__ . '/../symfony/cache',
154 'aliases' => array(),
155 'dev_requirement' => false,
156 ),
157 'symfony/cache-contracts' => array(
158 'pretty_version' => 'v3.5.0',
159 'version' => '3.5.0.0',
160 'reference' => 'df6a1a44c890faded49a5fca33c2d5c5fd3c2197',
161 'type' => 'library',
162 'install_path' => __DIR__ . '/../symfony/cache-contracts',
163 'aliases' => array(),
164 'dev_requirement' => false,
165 ),
166 'symfony/cache-implementation' => array(
167 'dev_requirement' => false,
168 'provided' => array(
169 0 => '1.1|2.0|3.0',
170 ),
171 ),
172 'symfony/console' => array(
173 'pretty_version' => 'v7.1.3',
174 'version' => '7.1.3.0',
175 'reference' => 'cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9',
176 'type' => 'library',
177 'install_path' => __DIR__ . '/../symfony/console',
178 'aliases' => array(),
179 'dev_requirement' => false,
180 ),
181 'symfony/deprecation-contracts' => array(
182 'pretty_version' => 'v3.5.0',
183 'version' => '3.5.0.0',
184 'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1',
185 'type' => 'library',
186 'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
187 'aliases' => array(),
188 'dev_requirement' => false,
189 ),
190 'symfony/polyfill-ctype' => array(
191 'pretty_version' => 'v1.30.0',
192 'version' => '1.30.0.0',
193 'reference' => '0424dff1c58f028c451efff2045f5d92410bd540',
194 'type' => 'library',
195 'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
196 'aliases' => array(),
197 'dev_requirement' => false,
198 ),
199 'symfony/polyfill-intl-grapheme' => array(
200 'pretty_version' => 'v1.30.0',
201 'version' => '1.30.0.0',
202 'reference' => '64647a7c30b2283f5d49b874d84a18fc22054b7a',
203 'type' => 'library',
204 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme',
205 'aliases' => array(),
206 'dev_requirement' => false,
207 ),
208 'symfony/polyfill-intl-normalizer' => array(
209 'pretty_version' => 'v1.30.0',
210 'version' => '1.30.0.0',
211 'reference' => 'a95281b0be0d9ab48050ebd988b967875cdb9fdb',
212 'type' => 'library',
213 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
214 'aliases' => array(),
215 'dev_requirement' => false,
216 ),
217 'symfony/polyfill-mbstring' => array(
218 'pretty_version' => 'v1.30.0',
219 'version' => '1.30.0.0',
220 'reference' => 'fd22ab50000ef01661e2a31d850ebaa297f8e03c',
221 'type' => 'library',
222 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
223 'aliases' => array(),
224 'dev_requirement' => false,
225 ),
226 'symfony/service-contracts' => array(
227 'pretty_version' => 'v3.5.0',
228 'version' => '3.5.0.0',
229 'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f',
230 'type' => 'library',
231 'install_path' => __DIR__ . '/../symfony/service-contracts',
232 'aliases' => array(),
233 'dev_requirement' => false,
234 ),
235 'symfony/string' => array(
236 'pretty_version' => 'v7.1.3',
237 'version' => '7.1.3.0',
238 'reference' => 'ea272a882be7f20cad58d5d78c215001617b7f07',
239 'type' => 'library',
240 'install_path' => __DIR__ . '/../symfony/string',
241 'aliases' => array(),
242 'dev_requirement' => false,
243 ),
244 'symfony/var-exporter' => array(
245 'pretty_version' => 'v7.1.2',
246 'version' => '7.1.2.0',
247 'reference' => 'b80a669a2264609f07f1667f891dbfca25eba44c',
248 'type' => 'library',
249 'install_path' => __DIR__ . '/../symfony/var-exporter',
250 'aliases' => array(),
251 'dev_requirement' => false,
252 ),
253 ),
254);
diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php
new file mode 100644
index 0000000..d32d90c
--- /dev/null
+++ b/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
1<?php
2
3// platform_check.php @generated by Composer
4
5$issues = array();
6
7if (!(PHP_VERSION_ID >= 80200)) {
8 $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.';
9}
10
11if ($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}