summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-11-16 05:12:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-11-16 05:12:48 +0000
commit475ff42056916d02592191bb550979137f3190b1 (patch)
treee277def01fc7eba7dbc21c4a4ae5576e8aa2cf1f
parentAdding upstream version 0.13.0. (diff)
downloadicinga-php-library-upstream.tar.xz
icinga-php-library-upstream.zip
Adding upstream version 0.13.1.upstream/0.13.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--VERSION2
-rw-r--r--asset/js/widget/Completer.js1
-rw-r--r--composer.json14
-rw-r--r--composer.lock102
-rw-r--r--patches/ramsey-collection.patch37
-rw-r--r--vendor/autoload.php2
-rw-r--r--vendor/composer/ClassLoader.php96
-rw-r--r--vendor/composer/autoload_psr4.php1
-rw-r--r--vendor/composer/autoload_real.php10
-rw-r--r--vendor/composer/autoload_static.php18
-rw-r--r--vendor/composer/installed.json114
-rw-r--r--vendor/composer/installed.php37
-rw-r--r--vendor/cweagans/composer-patches/composer.json30
-rw-r--r--vendor/cweagans/composer-patches/src/PatchEvent.php70
-rw-r--r--vendor/cweagans/composer-patches/src/PatchEvents.php30
-rw-r--r--vendor/cweagans/composer-patches/src/Patches.php599
-rw-r--r--vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php3
-rw-r--r--vendor/ramsey/collection/src/AbstractArray.php11
-rw-r--r--vendor/react/event-loop/src/ExtUvLoop.php2
-rw-r--r--vendor/react/event-loop/src/Timer/Timers.php7
-rw-r--r--vendor/simshaun/recurr/composer.json2
21 files changed, 1048 insertions, 140 deletions
diff --git a/VERSION b/VERSION
index 6345c21..b561134 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-v0.13.0
+v0.13.1
diff --git a/asset/js/widget/Completer.js b/asset/js/widget/Completer.js
index a498d82..6d60380 100644
--- a/asset/js/widget/Completer.js
+++ b/asset/js/widget/Completer.js
@@ -213,6 +213,7 @@ define(["../notjQuery"], function ($) {
this.nextSuggestion = setTimeout(() => {
let req = new XMLHttpRequest();
req.open('POST', this.input.dataset.suggestUrl, true);
+ req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
req.setRequestHeader('Content-Type', 'application/json');
if (typeof icinga !== 'undefined') {
diff --git a/composer.json b/composer.json
index 8cfce65..4588aa3 100644
--- a/composer.json
+++ b/composer.json
@@ -8,6 +8,9 @@
"sort-packages": true,
"platform": {
"php": "7.2.9"
+ },
+ "allow-plugins": {
+ "cweagans/composer-patches": true
}
},
"require": {
@@ -19,7 +22,8 @@
"ipl/sql": "^0.7.0",
"ipl/stdlib": "^0.13.0",
"ipl/validator": "^0.5.0",
- "ipl/web": "^0.9.0"
+ "ipl/web": "^0.9.0",
+ "cweagans/composer-patches": "~1.0"
},
"require-dev": {
},
@@ -30,5 +34,13 @@
"post-update-cmd": [
"AssetLoader::update"
]
+ },
+ "extra": {
+ "composer-exit-on-patch-failure": true,
+ "patches": {
+ "ramsey/collection": {
+ "Collection: Add PHP 8.1 support": "patches/ramsey-collection.patch"
+ }
+ }
}
}
diff --git a/composer.lock b/composer.lock
index 9c73454..45a8652 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "be182e3100edb5ebb4e4ef1cbf3978c1",
+ "content-hash": "35fbfdaec6c999686b0d3ca7c10db905",
"packages": [
{
"name": "brick/math",
@@ -67,6 +67,54 @@
"time": "2021-08-15T20:50:18+00:00"
},
{
+ "name": "cweagans/composer-patches",
+ "version": "1.7.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweagans/composer-patches.git",
+ "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e190d4466fe2b103a55467dfa83fc2fecfcaf2db",
+ "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "composer/composer": "~1.0 || ~2.0",
+ "phpunit/phpunit": "~4.6"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "cweagans\\Composer\\Patches"
+ },
+ "autoload": {
+ "psr-4": {
+ "cweagans\\Composer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Cameron Eagans",
+ "email": "me@cweagans.net"
+ }
+ ],
+ "description": "Provides a way to patch Composer packages.",
+ "support": {
+ "issues": "https://github.com/cweagans/composer-patches/issues",
+ "source": "https://github.com/cweagans/composer-patches/tree/1.7.3"
+ },
+ "time": "2022-12-20T22:53:13+00:00"
+ },
+ {
"name": "doctrine/collections",
"version": "1.8.0",
"source": {
@@ -138,16 +186,16 @@
},
{
"name": "doctrine/deprecations",
- "version": "v1.1.1",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
"shasum": ""
},
"require": {
@@ -179,9 +227,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
},
- "time": "2023-06-03T09:27:29+00:00"
+ "time": "2023-09-27T20:04:15+00:00"
},
{
"name": "dragonmantank/cron-expression",
@@ -784,16 +832,16 @@
},
{
"name": "ipl/web",
- "version": "v0.9.0",
+ "version": "v0.9.1",
"source": {
"type": "git",
"url": "https://github.com/Icinga/ipl-web.git",
- "reference": "656c1dc51b053f48ec885dc0026810ab53fcd8db"
+ "reference": "1168bff7c995719659018b9b141d01c35c63224f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Icinga/ipl-web/zipball/656c1dc51b053f48ec885dc0026810ab53fcd8db",
- "reference": "656c1dc51b053f48ec885dc0026810ab53fcd8db",
+ "url": "https://api.github.com/repos/Icinga/ipl-web/zipball/1168bff7c995719659018b9b141d01c35c63224f",
+ "reference": "1168bff7c995719659018b9b141d01c35c63224f",
"shasum": ""
},
"require": {
@@ -833,9 +881,9 @@
],
"support": {
"issues": "https://github.com/Icinga/ipl-web/issues",
- "source": "https://github.com/Icinga/ipl-web/tree/v0.9.0"
+ "source": "https://github.com/Icinga/ipl-web/tree/v0.9.1"
},
- "time": "2023-09-21T08:27:26+00:00"
+ "time": "2023-10-17T13:10:38+00:00"
},
{
"name": "psr/http-factory",
@@ -1216,16 +1264,16 @@
},
{
"name": "react/event-loop",
- "version": "v1.4.0",
+ "version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/event-loop.git",
- "reference": "6e7e587714fff7a83dcc7025aee42ab3b265ae05"
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/event-loop/zipball/6e7e587714fff7a83dcc7025aee42ab3b265ae05",
- "reference": "6e7e587714fff7a83dcc7025aee42ab3b265ae05",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
"shasum": ""
},
"require": {
@@ -1276,7 +1324,7 @@
],
"support": {
"issues": "https://github.com/reactphp/event-loop/issues",
- "source": "https://github.com/reactphp/event-loop/tree/v1.4.0"
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
},
"funding": [
{
@@ -1284,7 +1332,7 @@
"type": "open_collective"
}
],
- "time": "2023-05-05T10:11:24+00:00"
+ "time": "2023-11-13T13:48:05+00:00"
},
{
"name": "react/promise",
@@ -1360,20 +1408,20 @@
},
{
"name": "simshaun/recurr",
- "version": "v5.0.1",
+ "version": "v5.0.2",
"source": {
"type": "git",
"url": "https://github.com/simshaun/recurr.git",
- "reference": "6887b7bd7075de97c8c69835e0939ff68d23c47e"
+ "reference": "1aff62e6e0ee875b3f2487352542605123ee9172"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/simshaun/recurr/zipball/6887b7bd7075de97c8c69835e0939ff68d23c47e",
- "reference": "6887b7bd7075de97c8c69835e0939ff68d23c47e",
+ "url": "https://api.github.com/repos/simshaun/recurr/zipball/1aff62e6e0ee875b3f2487352542605123ee9172",
+ "reference": "1aff62e6e0ee875b3f2487352542605123ee9172",
"shasum": ""
},
"require": {
- "doctrine/collections": "~1.6",
+ "doctrine/collections": "~1.6||^2.0",
"php": "^7.2||^8.0"
},
"require-dev": {
@@ -1413,9 +1461,9 @@
],
"support": {
"issues": "https://github.com/simshaun/recurr/issues",
- "source": "https://github.com/simshaun/recurr/tree/v5.0.1"
+ "source": "https://github.com/simshaun/recurr/tree/v5.0.2"
},
- "time": "2022-09-09T05:37:22+00:00"
+ "time": "2023-09-26T20:31:33+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -1729,5 +1777,5 @@
"platform-overrides": {
"php": "7.2.9"
},
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/patches/ramsey-collection.patch b/patches/ramsey-collection.patch
new file mode 100644
index 0000000..b204e59
--- /dev/null
+++ b/patches/ramsey-collection.patch
@@ -0,0 +1,37 @@
+--- a/vendor/ramsey/collection/src/AbstractArray.php
++++ b/vendor/ramsey/collection/src/AbstractArray.php
+@@ -84,6 +84,7 @@ abstract class AbstractArray implements ArrayInterface
+ * @return T|null the value stored at the offset, or null if the offset
+ * does not exist.
+ */
++ #[\ReturnTypeWillChange]
+ public function offsetGet($offset)
+ {
+ return $this->data[$offset] ?? null;
+@@ -132,6 +133,11 @@ abstract class AbstractArray implements ArrayInterface
+ return serialize($this->data);
+ }
+
++ public function __serialize()
++ {
++ return $this->serialize();
++ }
++
+ /**
+ * Converts a serialized string representation into an instance object.
+ *
+@@ -149,6 +155,11 @@ abstract class AbstractArray implements ArrayInterface
+ $this->data = $data;
+ }
+
++ public function __unserialize(array $data)
++ {
++ $this->unserialize($data);
++ }
++
+ /**
+ * Returns the number of items in this array.
+ *
+--
+2.41.0
+
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 6efa621..69318e2 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInitf696560c44fc5544e5f1d31f5bdd89c5::getLoader();
+return ComposerAutoloaderInit35fbfdaec6c999686b0d3ca7c10db905::getLoader();
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index a72151c..7824d8f 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -45,35 +45,34 @@ class ClassLoader
/** @var \Closure(string):void */
private static $includeFile;
- /** @var ?string */
+ /** @var string|null */
private $vendorDir;
// PSR-4
/**
- * @var array[]
- * @psalm-var array<string, array<string, int>>
+ * @var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array();
/**
- * @var array[]
- * @psalm-var array<string, array<int, string>>
+ * @var array<string, list<string>>
*/
private $prefixDirsPsr4 = array();
/**
- * @var array[]
- * @psalm-var array<string, string>
+ * @var list<string>
*/
private $fallbackDirsPsr4 = array();
// PSR-0
/**
- * @var array[]
- * @psalm-var array<string, array<string, string[]>>
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array<string, array<string, list<string>>>
*/
private $prefixesPsr0 = array();
/**
- * @var array[]
- * @psalm-var array<string, string>
+ * @var list<string>
*/
private $fallbackDirsPsr0 = array();
@@ -81,8 +80,7 @@ class ClassLoader
private $useIncludePath = false;
/**
- * @var string[]
- * @psalm-var array<string, string>
+ * @var array<string, string>
*/
private $classMap = array();
@@ -90,21 +88,20 @@ class ClassLoader
private $classMapAuthoritative = false;
/**
- * @var bool[]
- * @psalm-var array<string, bool>
+ * @var array<string, bool>
*/
private $missingClasses = array();
- /** @var ?string */
+ /** @var string|null */
private $apcuPrefix;
/**
- * @var self[]
+ * @var array<string, self>
*/
private static $registeredLoaders = array();
/**
- * @param ?string $vendorDir
+ * @param string|null $vendorDir
*/
public function __construct($vendorDir = null)
{
@@ -113,7 +110,7 @@ class ClassLoader
}
/**
- * @return string[]
+ * @return array<string, list<string>>
*/
public function getPrefixes()
{
@@ -125,8 +122,7 @@ class ClassLoader
}
/**
- * @return array[]
- * @psalm-return array<string, array<int, string>>
+ * @return array<string, list<string>>
*/
public function getPrefixesPsr4()
{
@@ -134,8 +130,7 @@ class ClassLoader
}
/**
- * @return array[]
- * @psalm-return array<string, string>
+ * @return list<string>
*/
public function getFallbackDirs()
{
@@ -143,8 +138,7 @@ class ClassLoader
}
/**
- * @return array[]
- * @psalm-return array<string, string>
+ * @return list<string>
*/
public function getFallbackDirsPsr4()
{
@@ -152,8 +146,7 @@ class ClassLoader
}
/**
- * @return string[] Array of classname => path
- * @psalm-return array<string, string>
+ * @return array<string, string> Array of classname => path
*/
public function getClassMap()
{
@@ -161,8 +154,7 @@ class ClassLoader
}
/**
- * @param string[] $classMap Class to filename map
- * @psalm-param array<string, string> $classMap
+ * @param array<string, string> $classMap Class to filename map
*
* @return void
*/
@@ -179,24 +171,25 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param string[]|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param list<string>|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
*
* @return void
*/
public function add($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
- (array) $paths
+ $paths
);
}
@@ -205,19 +198,19 @@ class ClassLoader
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+ $this->prefixesPsr0[$first][$prefix] = $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -226,9 +219,9 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param string[]|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list<string>|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*
@@ -236,17 +229,18 @@ class ClassLoader
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
- (array) $paths
+ $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -256,18 +250,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ $this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -276,8 +270,8 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param string[]|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param list<string>|string $paths The PSR-0 base directories
*
* @return void
*/
@@ -294,8 +288,8 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param string[]|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list<string>|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*
@@ -481,9 +475,9 @@ class ClassLoader
}
/**
- * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
*
- * @return self[]
+ * @return array<string, self>
*/
public static function getRegisteredLoaders()
{
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index 8857b6e..54a21a1 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -14,6 +14,7 @@ return array(
'ipl\\Orm\\' => array($vendorDir . '/ipl/orm/src'),
'ipl\\I18n\\' => array($vendorDir . '/ipl/i18n/src'),
'ipl\\Html\\' => array($vendorDir . '/ipl/html/src'),
+ 'cweagans\\Composer\\' => array($vendorDir . '/cweagans/composer-patches/src'),
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index 104eb08..1bde463 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInitf696560c44fc5544e5f1d31f5bdd89c5
+class ComposerAutoloaderInit35fbfdaec6c999686b0d3ca7c10db905
{
private static $loader;
@@ -24,16 +24,16 @@ class ComposerAutoloaderInitf696560c44fc5544e5f1d31f5bdd89c5
require __DIR__ . '/platform_check.php';
- spl_autoload_register(array('ComposerAutoloaderInitf696560c44fc5544e5f1d31f5bdd89c5', 'loadClassLoader'), true, true);
+ spl_autoload_register(array('ComposerAutoloaderInit35fbfdaec6c999686b0d3ca7c10db905', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
- spl_autoload_unregister(array('ComposerAutoloaderInitf696560c44fc5544e5f1d31f5bdd89c5', 'loadClassLoader'));
+ spl_autoload_unregister(array('ComposerAutoloaderInit35fbfdaec6c999686b0d3ca7c10db905', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::getInitializer($loader));
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::$files;
+ $filesToLoad = \Composer\Autoload\ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::$files;
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index 4889766..464f848 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
namespace Composer\Autoload;
-class ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5
+class ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905
{
public static $files = array (
'a2c78434f64e5f5ed402f42eee19c025' => __DIR__ . '/..' . '/ipl/stdlib/src/functions_include.php',
@@ -29,6 +29,10 @@ class ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5
'ipl\\I18n\\' => 9,
'ipl\\Html\\' => 9,
),
+ 'c' =>
+ array (
+ 'cweagans\\Composer\\' => 18,
+ ),
'W' =>
array (
'Webmozart\\Assert\\' => 17,
@@ -107,6 +111,10 @@ class ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5
array (
0 => __DIR__ . '/..' . '/ipl/html/src',
),
+ 'cweagans\\Composer\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/cweagans/composer-patches/src',
+ ),
'Webmozart\\Assert\\' =>
array (
0 => __DIR__ . '/..' . '/webmozart/assert/src',
@@ -204,10 +212,10 @@ class ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::$prefixDirsPsr4;
- $loader->prefixesPsr0 = ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::$prefixesPsr0;
- $loader->classMap = ComposerStaticInitf696560c44fc5544e5f1d31f5bdd89c5::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::$prefixDirsPsr4;
+ $loader->prefixesPsr0 = ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::$prefixesPsr0;
+ $loader->classMap = ComposerStaticInit35fbfdaec6c999686b0d3ca7c10db905::$classMap;
}, null, ClassLoader::class);
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 34937d9..c1fbdde 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -64,6 +64,57 @@
"install-path": "../brick/math"
},
{
+ "name": "cweagans/composer-patches",
+ "version": "1.7.3",
+ "version_normalized": "1.7.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweagans/composer-patches.git",
+ "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweagans/composer-patches/zipball/e190d4466fe2b103a55467dfa83fc2fecfcaf2db",
+ "reference": "e190d4466fe2b103a55467dfa83fc2fecfcaf2db",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "composer/composer": "~1.0 || ~2.0",
+ "phpunit/phpunit": "~4.6"
+ },
+ "time": "2022-12-20T22:53:13+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "cweagans\\Composer\\Patches"
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "cweagans\\Composer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Cameron Eagans",
+ "email": "me@cweagans.net"
+ }
+ ],
+ "description": "Provides a way to patch Composer packages.",
+ "support": {
+ "issues": "https://github.com/cweagans/composer-patches/issues",
+ "source": "https://github.com/cweagans/composer-patches/tree/1.7.3"
+ },
+ "install-path": "../cweagans/composer-patches"
+ },
+ {
"name": "doctrine/collections",
"version": "1.8.0",
"version_normalized": "1.8.0.0",
@@ -138,17 +189,17 @@
},
{
"name": "doctrine/deprecations",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
+ "version": "1.1.2",
+ "version_normalized": "1.1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3"
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
- "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
"shasum": ""
},
"require": {
@@ -166,7 +217,7 @@
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
},
- "time": "2023-06-03T09:27:29+00:00",
+ "time": "2023-09-27T20:04:15+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -182,7 +233,7 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.1.1"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
},
"install-path": "../doctrine/deprecations"
},
@@ -820,17 +871,17 @@
},
{
"name": "ipl/web",
- "version": "v0.9.0",
- "version_normalized": "0.9.0.0",
+ "version": "v0.9.1",
+ "version_normalized": "0.9.1.0",
"source": {
"type": "git",
"url": "https://github.com/Icinga/ipl-web.git",
- "reference": "656c1dc51b053f48ec885dc0026810ab53fcd8db"
+ "reference": "1168bff7c995719659018b9b141d01c35c63224f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Icinga/ipl-web/zipball/656c1dc51b053f48ec885dc0026810ab53fcd8db",
- "reference": "656c1dc51b053f48ec885dc0026810ab53fcd8db",
+ "url": "https://api.github.com/repos/Icinga/ipl-web/zipball/1168bff7c995719659018b9b141d01c35c63224f",
+ "reference": "1168bff7c995719659018b9b141d01c35c63224f",
"shasum": ""
},
"require": {
@@ -853,7 +904,7 @@
"ipl/stdlib": "dev-main",
"shardj/zf1-future": "^1.22"
},
- "time": "2023-09-21T08:27:26+00:00",
+ "time": "2023-10-17T13:10:38+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -872,7 +923,7 @@
],
"support": {
"issues": "https://github.com/Icinga/ipl-web/issues",
- "source": "https://github.com/Icinga/ipl-web/tree/v0.9.0"
+ "source": "https://github.com/Icinga/ipl-web/tree/v0.9.1"
},
"install-path": "../ipl/web"
},
@@ -1128,6 +1179,11 @@
},
"time": "2021-07-30T00:58:27+00:00",
"type": "library",
+ "extra": {
+ "patches_applied": {
+ "Collection: Add PHP 8.1 support": "patches/ramsey-collection.patch"
+ }
+ },
"installation-source": "dist",
"autoload": {
"psr-4": {
@@ -1273,17 +1329,17 @@
},
{
"name": "react/event-loop",
- "version": "v1.4.0",
- "version_normalized": "1.4.0.0",
+ "version": "v1.5.0",
+ "version_normalized": "1.5.0.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/event-loop.git",
- "reference": "6e7e587714fff7a83dcc7025aee42ab3b265ae05"
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/event-loop/zipball/6e7e587714fff7a83dcc7025aee42ab3b265ae05",
- "reference": "6e7e587714fff7a83dcc7025aee42ab3b265ae05",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
+ "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
"shasum": ""
},
"require": {
@@ -1295,7 +1351,7 @@
"suggest": {
"ext-pcntl": "For signal handling support when using the StreamSelectLoop"
},
- "time": "2023-05-05T10:11:24+00:00",
+ "time": "2023-11-13T13:48:05+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -1336,7 +1392,7 @@
],
"support": {
"issues": "https://github.com/reactphp/event-loop/issues",
- "source": "https://github.com/reactphp/event-loop/tree/v1.4.0"
+ "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
},
"funding": [
{
@@ -1423,28 +1479,28 @@
},
{
"name": "simshaun/recurr",
- "version": "v5.0.1",
- "version_normalized": "5.0.1.0",
+ "version": "v5.0.2",
+ "version_normalized": "5.0.2.0",
"source": {
"type": "git",
"url": "https://github.com/simshaun/recurr.git",
- "reference": "6887b7bd7075de97c8c69835e0939ff68d23c47e"
+ "reference": "1aff62e6e0ee875b3f2487352542605123ee9172"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/simshaun/recurr/zipball/6887b7bd7075de97c8c69835e0939ff68d23c47e",
- "reference": "6887b7bd7075de97c8c69835e0939ff68d23c47e",
+ "url": "https://api.github.com/repos/simshaun/recurr/zipball/1aff62e6e0ee875b3f2487352542605123ee9172",
+ "reference": "1aff62e6e0ee875b3f2487352542605123ee9172",
"shasum": ""
},
"require": {
- "doctrine/collections": "~1.6",
+ "doctrine/collections": "~1.6||^2.0",
"php": "^7.2||^8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.5.16",
"symfony/yaml": "^5.3"
},
- "time": "2022-09-09T05:37:22+00:00",
+ "time": "2023-09-26T20:31:33+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -1479,7 +1535,7 @@
],
"support": {
"issues": "https://github.com/simshaun/recurr/issues",
- "source": "https://github.com/simshaun/recurr/tree/v5.0.1"
+ "source": "https://github.com/simshaun/recurr/tree/v5.0.2"
},
"install-path": "../simshaun/recurr"
},
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 8dfbe95..40b832b 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -3,7 +3,7 @@
'name' => 'icinga/icinga-php-library',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
- 'reference' => '435e443a4122da64f92baaa054d65c36bebab77f',
+ 'reference' => '42dff4b0f6279dfd058ef71fce1de5557eb50b07',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -19,6 +19,15 @@
'aliases' => array(),
'dev_requirement' => false,
),
+ 'cweagans/composer-patches' => array(
+ 'pretty_version' => '1.7.3',
+ 'version' => '1.7.3.0',
+ 'reference' => 'e190d4466fe2b103a55467dfa83fc2fecfcaf2db',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../cweagans/composer-patches',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
'doctrine/collections' => array(
'pretty_version' => '1.8.0',
'version' => '1.8.0.0',
@@ -29,9 +38,9 @@
'dev_requirement' => false,
),
'doctrine/deprecations' => array(
- 'pretty_version' => 'v1.1.1',
- 'version' => '1.1.1.0',
- 'reference' => '612a3ee5ab0d5dd97b7cf3874a6efe24325efac3',
+ 'pretty_version' => '1.1.2',
+ 'version' => '1.1.2.0',
+ 'reference' => '4f2d4f2836e7ec4e7a8625e75c6aa916004db931',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/deprecations',
'aliases' => array(),
@@ -76,7 +85,7 @@
'icinga/icinga-php-library' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
- 'reference' => '435e443a4122da64f92baaa054d65c36bebab77f',
+ 'reference' => '42dff4b0f6279dfd058ef71fce1de5557eb50b07',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -146,9 +155,9 @@
'dev_requirement' => false,
),
'ipl/web' => array(
- 'pretty_version' => 'v0.9.0',
- 'version' => '0.9.0.0',
- 'reference' => '656c1dc51b053f48ec885dc0026810ab53fcd8db',
+ 'pretty_version' => 'v0.9.1',
+ 'version' => '0.9.1.0',
+ 'reference' => '1168bff7c995719659018b9b141d01c35c63224f',
'type' => 'library',
'install_path' => __DIR__ . '/../ipl/web',
'aliases' => array(),
@@ -227,9 +236,9 @@
'dev_requirement' => false,
),
'react/event-loop' => array(
- 'pretty_version' => 'v1.4.0',
- 'version' => '1.4.0.0',
- 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05',
+ 'pretty_version' => 'v1.5.0',
+ 'version' => '1.5.0.0',
+ 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354',
'type' => 'library',
'install_path' => __DIR__ . '/../react/event-loop',
'aliases' => array(),
@@ -251,9 +260,9 @@
),
),
'simshaun/recurr' => array(
- 'pretty_version' => 'v5.0.1',
- 'version' => '5.0.1.0',
- 'reference' => '6887b7bd7075de97c8c69835e0939ff68d23c47e',
+ 'pretty_version' => 'v5.0.2',
+ 'version' => '5.0.2.0',
+ 'reference' => '1aff62e6e0ee875b3f2487352542605123ee9172',
'type' => 'library',
'install_path' => __DIR__ . '/../simshaun/recurr',
'aliases' => array(),
diff --git a/vendor/cweagans/composer-patches/composer.json b/vendor/cweagans/composer-patches/composer.json
new file mode 100644
index 0000000..1565b02
--- /dev/null
+++ b/vendor/cweagans/composer-patches/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "cweagans/composer-patches",
+ "description": "Provides a way to patch Composer packages.",
+ "minimum-stability": "dev",
+ "license": "BSD-3-Clause",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "cweagans\\Composer\\Patches"
+ },
+ "authors": [
+ {
+ "name": "Cameron Eagans",
+ "email": "me@cweagans.net"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.0",
+ "composer-plugin-api": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "~1.0 || ~2.0",
+ "phpunit/phpunit": "~4.6"
+ },
+ "autoload": {
+ "psr-4": {"cweagans\\Composer\\": "src"}
+ },
+ "autoload-dev": {
+ "psr-4": {"cweagans\\Composer\\Tests\\": "tests"}
+ }
+}
diff --git a/vendor/cweagans/composer-patches/src/PatchEvent.php b/vendor/cweagans/composer-patches/src/PatchEvent.php
new file mode 100644
index 0000000..31d36f8
--- /dev/null
+++ b/vendor/cweagans/composer-patches/src/PatchEvent.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * @file
+ * Dispatch events when patches are applied.
+ */
+
+namespace cweagans\Composer;
+
+use Composer\EventDispatcher\Event;
+use Composer\Package\PackageInterface;
+
+class PatchEvent extends Event {
+
+ /**
+ * @var PackageInterface $package
+ */
+ protected $package;
+ /**
+ * @var string $url
+ */
+ protected $url;
+ /**
+ * @var string $description
+ */
+ protected $description;
+
+ /**
+ * Constructs a PatchEvent object.
+ *
+ * @param string $eventName
+ * @param PackageInterface $package
+ * @param string $url
+ * @param string $description
+ */
+ public function __construct($eventName, PackageInterface $package, $url, $description) {
+ parent::__construct($eventName);
+ $this->package = $package;
+ $this->url = $url;
+ $this->description = $description;
+ }
+
+ /**
+ * Returns the package that is patched.
+ *
+ * @return PackageInterface
+ */
+ public function getPackage() {
+ return $this->package;
+ }
+
+ /**
+ * Returns the url of the patch.
+ *
+ * @return string
+ */
+ public function getUrl() {
+ return $this->url;
+ }
+
+ /**
+ * Returns the description of the patch.
+ *
+ * @return string
+ */
+ public function getDescription() {
+ return $this->description;
+ }
+
+}
diff --git a/vendor/cweagans/composer-patches/src/PatchEvents.php b/vendor/cweagans/composer-patches/src/PatchEvents.php
new file mode 100644
index 0000000..ecee947
--- /dev/null
+++ b/vendor/cweagans/composer-patches/src/PatchEvents.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * @file
+ * Dispatch events when patches are applied.
+ */
+
+namespace cweagans\Composer;
+
+class PatchEvents {
+
+ /**
+ * The PRE_PATCH_APPLY event occurs before a patch is applied.
+ *
+ * The event listener method receives a cweagans\Composer\PatchEvent instance.
+ *
+ * @var string
+ */
+ const PRE_PATCH_APPLY = 'pre-patch-apply';
+
+ /**
+ * The POST_PATCH_APPLY event occurs after a patch is applied.
+ *
+ * The event listener method receives a cweagans\Composer\PatchEvent instance.
+ *
+ * @var string
+ */
+ const POST_PATCH_APPLY = 'post-patch-apply';
+
+}
diff --git a/vendor/cweagans/composer-patches/src/Patches.php b/vendor/cweagans/composer-patches/src/Patches.php
new file mode 100644
index 0000000..3d7d864
--- /dev/null
+++ b/vendor/cweagans/composer-patches/src/Patches.php
@@ -0,0 +1,599 @@
+<?php
+
+/**
+ * @file
+ * Provides a way to patch Composer packages after installation.
+ */
+
+namespace cweagans\Composer;
+
+use Composer\Composer;
+use Composer\DependencyResolver\Operation\InstallOperation;
+use Composer\DependencyResolver\Operation\UninstallOperation;
+use Composer\DependencyResolver\Operation\UpdateOperation;
+use Composer\DependencyResolver\Operation\OperationInterface;
+use Composer\EventDispatcher\EventSubscriberInterface;
+use Composer\IO\IOInterface;
+use Composer\Package\AliasPackage;
+use Composer\Package\PackageInterface;
+use Composer\Plugin\PluginInterface;
+use Composer\Installer\PackageEvents;
+use Composer\Script\Event;
+use Composer\Script\ScriptEvents;
+use Composer\Installer\PackageEvent;
+use Composer\Util\ProcessExecutor;
+use Composer\Util\RemoteFilesystem;
+use Symfony\Component\Process\Process;
+
+class Patches implements PluginInterface, EventSubscriberInterface {
+
+ /**
+ * @var Composer $composer
+ */
+ protected $composer;
+ /**
+ * @var IOInterface $io
+ */
+ protected $io;
+ /**
+ * @var EventDispatcher $eventDispatcher
+ */
+ protected $eventDispatcher;
+ /**
+ * @var ProcessExecutor $executor
+ */
+ protected $executor;
+ /**
+ * @var array $patches
+ */
+ protected $patches;
+
+ /**
+ * @var array $installedPatches
+ */
+ protected $installedPatches;
+
+ /**
+ * Apply plugin modifications to composer
+ *
+ * @param Composer $composer
+ * @param IOInterface $io
+ */
+ public function activate(Composer $composer, IOInterface $io) {
+ $this->composer = $composer;
+ $this->io = $io;
+ $this->eventDispatcher = $composer->getEventDispatcher();
+ $this->executor = new ProcessExecutor($this->io);
+ $this->patches = array();
+ $this->installedPatches = array();
+ }
+
+ /**
+ * Returns an array of event names this subscriber wants to listen to.
+ */
+ public static function getSubscribedEvents() {
+ return array(
+ ScriptEvents::PRE_INSTALL_CMD => array('checkPatches'),
+ ScriptEvents::PRE_UPDATE_CMD => array('checkPatches'),
+ PackageEvents::PRE_PACKAGE_INSTALL => array('gatherPatches'),
+ PackageEvents::PRE_PACKAGE_UPDATE => array('gatherPatches'),
+ // The following is a higher weight for compatibility with
+ // https://github.com/AydinHassan/magento-core-composer-installer and more generally for compatibility with
+ // every Composer plugin which deploys downloaded packages to other locations.
+ // In such cases you want that those plugins deploy patched files so they have to run after
+ // the "composer-patches" plugin.
+ // @see: https://github.com/cweagans/composer-patches/pull/153
+ PackageEvents::POST_PACKAGE_INSTALL => array('postInstall', 10),
+ PackageEvents::POST_PACKAGE_UPDATE => array('postInstall', 10),
+ );
+ }
+
+ /**
+ * Before running composer install,
+ * @param Event $event
+ */
+ public function checkPatches(Event $event) {
+ if (!$this->isPatchingEnabled()) {
+ return;
+ }
+
+ try {
+ $repositoryManager = $this->composer->getRepositoryManager();
+ $localRepository = $repositoryManager->getLocalRepository();
+ $installationManager = $this->composer->getInstallationManager();
+ $packages = $localRepository->getPackages();
+
+ $extra = $this->composer->getPackage()->getExtra();
+ $patches_ignore = isset($extra['patches-ignore']) ? $extra['patches-ignore'] : array();
+
+ $tmp_patches = $this->grabPatches();
+ foreach ($packages as $package) {
+ $extra = $package->getExtra();
+ if (isset($extra['patches'])) {
+ if (isset($patches_ignore[$package->getName()])) {
+ foreach ($patches_ignore[$package->getName()] as $package_name => $patches) {
+ if (isset($extra['patches'][$package_name])) {
+ $extra['patches'][$package_name] = array_diff($extra['patches'][$package_name], $patches);
+ }
+ }
+ }
+ $this->installedPatches[$package->getName()] = $extra['patches'];
+ }
+ $patches = isset($extra['patches']) ? $extra['patches'] : array();
+ $tmp_patches = $this->arrayMergeRecursiveDistinct($tmp_patches, $patches);
+ }
+
+ if ($tmp_patches == FALSE) {
+ $this->io->write('<info>No patches supplied.</info>');
+ return;
+ }
+
+ // Remove packages for which the patch set has changed.
+ $promises = array();
+ foreach ($packages as $package) {
+ if (!($package instanceof AliasPackage)) {
+ $package_name = $package->getName();
+ $extra = $package->getExtra();
+ $has_patches = isset($tmp_patches[$package_name]);
+ $has_applied_patches = isset($extra['patches_applied']) && count($extra['patches_applied']) > 0;
+ if (($has_patches && !$has_applied_patches)
+ || (!$has_patches && $has_applied_patches)
+ || ($has_patches && $has_applied_patches && $tmp_patches[$package_name] !== $extra['patches_applied'])) {
+ $uninstallOperation = new UninstallOperation($package, 'Removing package so it can be re-installed and re-patched.');
+ $this->io->write('<info>Removing package ' . $package_name . ' so that it can be re-installed and re-patched.</info>');
+ $promises[] = $installationManager->uninstall($localRepository, $uninstallOperation);
+ }
+ }
+ }
+ $promises = array_filter($promises);
+ if ($promises) {
+ $this->composer->getLoop()->wait($promises);
+ }
+ }
+ // If the Locker isn't available, then we don't need to do this.
+ // It's the first time packages have been installed.
+ catch (\LogicException $e) {
+ return;
+ }
+ }
+
+ /**
+ * Gather patches from dependencies and store them for later use.
+ *
+ * @param PackageEvent $event
+ */
+ public function gatherPatches(PackageEvent $event) {
+ // If we've already done this, then don't do it again.
+ if (isset($this->patches['_patchesGathered'])) {
+ $this->io->write('<info>Patches already gathered. Skipping</info>', TRUE, IOInterface::VERBOSE);
+ return;
+ }
+ // If patching has been disabled, bail out here.
+ elseif (!$this->isPatchingEnabled()) {
+ $this->io->write('<info>Patching is disabled. Skipping.</info>', TRUE, IOInterface::VERBOSE);
+ return;
+ }
+
+ $this->patches = $this->grabPatches();
+ if (empty($this->patches)) {
+ $this->io->write('<info>No patches supplied.</info>');
+ }
+
+ $extra = $this->composer->getPackage()->getExtra();
+ $patches_ignore = isset($extra['patches-ignore']) ? $extra['patches-ignore'] : array();
+
+ // Now add all the patches from dependencies that will be installed.
+ $operations = $event->getOperations();
+ $this->io->write('<info>Gathering patches for dependencies. This might take a minute.</info>');
+ foreach ($operations as $operation) {
+ if ($operation instanceof InstallOperation || $operation instanceof UpdateOperation) {
+ $package = $this->getPackageFromOperation($operation);
+ $extra = $package->getExtra();
+ if (isset($extra['patches'])) {
+ if (isset($patches_ignore[$package->getName()])) {
+ foreach ($patches_ignore[$package->getName()] as $package_name => $patches) {
+ if (isset($extra['patches'][$package_name])) {
+ $extra['patches'][$package_name] = array_diff($extra['patches'][$package_name], $patches);
+ }
+ }
+ }
+ $this->patches = $this->arrayMergeRecursiveDistinct($this->patches, $extra['patches']);
+ }
+ // Unset installed patches for this package
+ if(isset($this->installedPatches[$package->getName()])) {
+ unset($this->installedPatches[$package->getName()]);
+ }
+ }
+ }
+
+ // Merge installed patches from dependencies that did not receive an update.
+ foreach ($this->installedPatches as $patches) {
+ $this->patches = $this->arrayMergeRecursiveDistinct($this->patches, $patches);
+ }
+
+ // If we're in verbose mode, list the projects we're going to patch.
+ if ($this->io->isVerbose()) {
+ foreach ($this->patches as $package => $patches) {
+ $number = count($patches);
+ $this->io->write('<info>Found ' . $number . ' patches for ' . $package . '.</info>');
+ }
+ }
+
+ // Make sure we don't gather patches again. Extra keys in $this->patches
+ // won't hurt anything, so we'll just stash it there.
+ $this->patches['_patchesGathered'] = TRUE;
+ }
+
+ /**
+ * Get the patches from root composer or external file
+ * @return Patches
+ * @throws \Exception
+ */
+ public function grabPatches() {
+ // First, try to get the patches from the root composer.json.
+ $extra = $this->composer->getPackage()->getExtra();
+ if (isset($extra['patches'])) {
+ $this->io->write('<info>Gathering patches for root package.</info>');
+ $patches = $extra['patches'];
+ return $patches;
+ }
+ // If it's not specified there, look for a patches-file definition.
+ elseif (isset($extra['patches-file'])) {
+ $this->io->write('<info>Gathering patches from patch file.</info>');
+ $patches = file_get_contents($extra['patches-file']);
+ $patches = json_decode($patches, TRUE);
+ $error = json_last_error();
+ if ($error != 0) {
+ switch ($error) {
+ case JSON_ERROR_DEPTH:
+ $msg = ' - Maximum stack depth exceeded';
+ break;
+ case JSON_ERROR_STATE_MISMATCH:
+ $msg = ' - Underflow or the modes mismatch';
+ break;
+ case JSON_ERROR_CTRL_CHAR:
+ $msg = ' - Unexpected control character found';
+ break;
+ case JSON_ERROR_SYNTAX:
+ $msg = ' - Syntax error, malformed JSON';
+ break;
+ case JSON_ERROR_UTF8:
+ $msg = ' - Malformed UTF-8 characters, possibly incorrectly encoded';
+ break;
+ default:
+ $msg = ' - Unknown error';
+ break;
+ }
+ throw new \Exception('There was an error in the supplied patches file:' . $msg);
+ }
+ if (isset($patches['patches'])) {
+ $patches = $patches['patches'];
+ return $patches;
+ }
+ elseif(!$patches) {
+ throw new \Exception('There was an error in the supplied patch file');
+ }
+ }
+ else {
+ return array();
+ }
+ }
+
+ /**
+ * @param PackageEvent $event
+ * @throws \Exception
+ */
+ public function postInstall(PackageEvent $event) {
+
+ // Check if we should exit in failure.
+ $extra = $this->composer->getPackage()->getExtra();
+ $exitOnFailure = getenv('COMPOSER_EXIT_ON_PATCH_FAILURE') || !empty($extra['composer-exit-on-patch-failure']);
+ $skipReporting = getenv('COMPOSER_PATCHES_SKIP_REPORTING') || !empty($extra['composer-patches-skip-reporting']);
+
+ // Get the package object for the current operation.
+ $operation = $event->getOperation();
+ /** @var PackageInterface $package */
+ $package = $this->getPackageFromOperation($operation);
+ $package_name = $package->getName();
+
+ if (!isset($this->patches[$package_name])) {
+ if ($this->io->isVerbose()) {
+ $this->io->write('<info>No patches found for ' . $package_name . '.</info>');
+ }
+ return;
+ }
+ $this->io->write(' - Applying patches for <info>' . $package_name . '</info>');
+
+ // Get the install path from the package object.
+ $manager = $event->getComposer()->getInstallationManager();
+ $install_path = $manager->getInstaller($package->getType())->getInstallPath($package);
+
+ // Set up a downloader.
+ $downloader = new RemoteFilesystem($this->io, $this->composer->getConfig());
+
+ // Track applied patches in the package info in installed.json
+ $localRepository = $this->composer->getRepositoryManager()->getLocalRepository();
+ $localPackage = $localRepository->findPackage($package_name, $package->getVersion());
+ $extra = $localPackage->getExtra();
+ $extra['patches_applied'] = array();
+
+ foreach ($this->patches[$package_name] as $description => $url) {
+ $this->io->write(' <info>' . $url . '</info> (<comment>' . $description. '</comment>)');
+ try {
+ $this->eventDispatcher->dispatch(NULL, new PatchEvent(PatchEvents::PRE_PATCH_APPLY, $package, $url, $description));
+ $this->getAndApplyPatch($downloader, $install_path, $url, $package);
+ $this->eventDispatcher->dispatch(NULL, new PatchEvent(PatchEvents::POST_PATCH_APPLY, $package, $url, $description));
+ $extra['patches_applied'][$description] = $url;
+ }
+ catch (\Exception $e) {
+ $this->io->write(' <error>Could not apply patch! Skipping. The error was: ' . $e->getMessage() . '</error>');
+ if ($exitOnFailure) {
+ throw new \Exception("Cannot apply patch $description ($url)!");
+ }
+ }
+ }
+ $localPackage->setExtra($extra);
+
+ $this->io->write('');
+
+ if (true !== $skipReporting) {
+ $this->writePatchReport($this->patches[$package_name], $install_path);
+ }
+ }
+
+ /**
+ * Get a Package object from an OperationInterface object.
+ *
+ * @param OperationInterface $operation
+ * @return PackageInterface
+ * @throws \Exception
+ */
+ protected function getPackageFromOperation(OperationInterface $operation) {
+ if ($operation instanceof InstallOperation) {
+ $package = $operation->getPackage();
+ }
+ elseif ($operation instanceof UpdateOperation) {
+ $package = $operation->getTargetPackage();
+ }
+ else {
+ throw new \Exception('Unknown operation: ' . get_class($operation));
+ }
+
+ return $package;
+ }
+
+ /**
+ * Apply a patch on code in the specified directory.
+ *
+ * @param RemoteFilesystem $downloader
+ * @param $install_path
+ * @param $patch_url
+ * @param PackageInterface $package
+ * @throws \Exception
+ */
+ protected function getAndApplyPatch(RemoteFilesystem $downloader, $install_path, $patch_url, PackageInterface $package) {
+
+ // Local patch file.
+ if (file_exists($patch_url)) {
+ $filename = realpath($patch_url);
+ }
+ else {
+ // Generate random (but not cryptographically so) filename.
+ $filename = uniqid(sys_get_temp_dir().'/') . ".patch";
+
+ // Download file from remote filesystem to this location.
+ $hostname = parse_url($patch_url, PHP_URL_HOST);
+
+ try {
+ $downloader->copy($hostname, $patch_url, $filename, false);
+ } catch (\Exception $e) {
+ // In case of an exception, retry once as the download might
+ // have failed due to intermittent network issues.
+ $downloader->copy($hostname, $patch_url, $filename, false);
+ }
+ }
+
+ // The order here is intentional. p1 is most likely to apply with git apply.
+ // p0 is next likely. p2 is extremely unlikely, but for some special cases,
+ // it might be useful. p4 is useful for Magento 2 patches
+ $patch_levels = array('-p1', '-p0', '-p2', '-p4');
+
+ // Check for specified patch level for this package.
+ $extra = $this->composer->getPackage()->getExtra();
+ if (!empty($extra['patchLevel'][$package->getName()])){
+ $patch_levels = array($extra['patchLevel'][$package->getName()]);
+ }
+ // Attempt to apply with git apply.
+ $patched = $this->applyPatchWithGit($install_path, $patch_levels, $filename);
+
+ // In some rare cases, git will fail to apply a patch, fallback to using
+ // the 'patch' command.
+ if (!$patched) {
+ foreach ($patch_levels as $patch_level) {
+ // --no-backup-if-mismatch here is a hack that fixes some
+ // differences between how patch works on windows and unix.
+ if ($patched = $this->executeCommand("patch %s --no-backup-if-mismatch -d %s < %s", $patch_level, $install_path, $filename)) {
+ break;
+ }
+ }
+ }
+
+ // Clean up the temporary patch file.
+ if (isset($hostname)) {
+ unlink($filename);
+ }
+ // If the patch *still* isn't applied, then give up and throw an Exception.
+ // Otherwise, let the user know it worked.
+ if (!$patched) {
+ throw new \Exception("Cannot apply patch $patch_url");
+ }
+ }
+
+ /**
+ * Checks if the root package enables patching.
+ *
+ * @return bool
+ * Whether patching is enabled. Defaults to TRUE.
+ */
+ protected function isPatchingEnabled() {
+ $extra = $this->composer->getPackage()->getExtra();
+
+ if (empty($extra['patches']) && empty($extra['patches-ignore']) && !isset($extra['patches-file'])) {
+ // The root package has no patches of its own, so only allow patching if
+ // it has specifically opted in.
+ return isset($extra['enable-patching']) ? $extra['enable-patching'] : FALSE;
+ }
+ else {
+ return TRUE;
+ }
+ }
+
+ /**
+ * Writes a patch report to the target directory.
+ *
+ * @param array $patches
+ * @param string $directory
+ */
+ protected function writePatchReport($patches, $directory) {
+ $output = "This file was automatically generated by Composer Patches (https://github.com/cweagans/composer-patches)\n";
+ $output .= "Patches applied to this directory:\n\n";
+ foreach ($patches as $description => $url) {
+ $output .= $description . "\n";
+ $output .= 'Source: ' . $url . "\n\n\n";
+ }
+ file_put_contents($directory . "/PATCHES.txt", $output);
+ }
+
+ /**
+ * Executes a shell command with escaping.
+ *
+ * @param string $cmd
+ * @return bool
+ */
+ protected function executeCommand($cmd) {
+ // Shell-escape all arguments except the command.
+ $args = func_get_args();
+ foreach ($args as $index => $arg) {
+ if ($index !== 0) {
+ $args[$index] = escapeshellarg($arg);
+ }
+ }
+
+ // And replace the arguments.
+ $command = call_user_func_array('sprintf', $args);
+ $output = '';
+ if ($this->io->isVerbose()) {
+ $this->io->write('<comment>' . $command . '</comment>');
+ $io = $this->io;
+ $output = function ($type, $data) use ($io) {
+ if ($type == Process::ERR) {
+ $io->write('<error>' . $data . '</error>');
+ }
+ else {
+ $io->write('<comment>' . $data . '</comment>');
+ }
+ };
+ }
+ return ($this->executor->execute($command, $output) == 0);
+ }
+
+ /**
+ * Recursively merge arrays without changing data types of values.
+ *
+ * Does not change the data types of the values in the arrays. Matching keys'
+ * values in the second array overwrite those in the first array, as is the
+ * case with array_merge.
+ *
+ * @param array $array1
+ * The first array.
+ * @param array $array2
+ * The second array.
+ * @return array
+ * The merged array.
+ *
+ * @see http://php.net/manual/en/function.array-merge-recursive.php#92195
+ */
+ protected function arrayMergeRecursiveDistinct(array $array1, array $array2) {
+ $merged = $array1;
+
+ foreach ($array2 as $key => &$value) {
+ if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
+ $merged[$key] = $this->arrayMergeRecursiveDistinct($merged[$key], $value);
+ }
+ else {
+ $merged[$key] = $value;
+ }
+ }
+
+ return $merged;
+ }
+
+ /**
+ * Attempts to apply a patch with git apply.
+ *
+ * @param $install_path
+ * @param $patch_levels
+ * @param $filename
+ *
+ * @return bool
+ * TRUE if patch was applied, FALSE otherwise.
+ */
+ protected function applyPatchWithGit($install_path, $patch_levels, $filename) {
+ // Do not use git apply unless the install path is itself a git repo
+ // @see https://stackoverflow.com/a/27283285
+ if (!is_dir($install_path . '/.git')) {
+ return FALSE;
+ }
+
+ $patched = FALSE;
+ foreach ($patch_levels as $patch_level) {
+ if ($this->io->isVerbose()) {
+ $comment = 'Testing ability to patch with git apply.';
+ $comment .= ' This command may produce errors that can be safely ignored.';
+ $this->io->write('<comment>' . $comment . '</comment>');
+ }
+ $checked = $this->executeCommand('git -C %s apply --check -v %s %s', $install_path, $patch_level, $filename);
+ $output = $this->executor->getErrorOutput();
+ if (substr($output, 0, 7) == 'Skipped') {
+ // Git will indicate success but silently skip patches in some scenarios.
+ //
+ // @see https://github.com/cweagans/composer-patches/pull/165
+ $checked = FALSE;
+ }
+ if ($checked) {
+ // Apply the first successful style.
+ $patched = $this->executeCommand('git -C %s apply %s %s', $install_path, $patch_level, $filename);
+ break;
+ }
+ }
+ return $patched;
+ }
+
+ /**
+ * Indicates if a package has been patched.
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * The package to check.
+ *
+ * @return bool
+ * TRUE if the package has been patched.
+ */
+ public static function isPackagePatched(PackageInterface $package) {
+ return array_key_exists('patches_applied', $package->getExtra());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function deactivate(Composer $composer, IOInterface $io)
+ {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function uninstall(Composer $composer, IOInterface $io)
+ {
+ }
+
+}
diff --git a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php
index 07cb43b..bad5070 100644
--- a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php
+++ b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php
@@ -11,6 +11,7 @@ use function array_reduce;
use function assert;
use function debug_backtrace;
use function sprintf;
+use function str_replace;
use function strpos;
use function strrpos;
use function substr;
@@ -138,7 +139,7 @@ class Deprecation
// first check that the caller is not from a tests folder, in which case we always let deprecations pass
if (isset($backtrace[1]['file'], $backtrace[0]['file']) && strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) {
- $path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR;
+ $path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $package) . DIRECTORY_SEPARATOR;
if (strpos($backtrace[0]['file'], $path) === false) {
return;
diff --git a/vendor/ramsey/collection/src/AbstractArray.php b/vendor/ramsey/collection/src/AbstractArray.php
index 1c88c7e..a8a164c 100644
--- a/vendor/ramsey/collection/src/AbstractArray.php
+++ b/vendor/ramsey/collection/src/AbstractArray.php
@@ -84,6 +84,7 @@ abstract class AbstractArray implements ArrayInterface
* @return T|null the value stored at the offset, or null if the offset
* does not exist.
*/
+ #[\ReturnTypeWillChange]
public function offsetGet($offset)
{
return $this->data[$offset] ?? null;
@@ -132,6 +133,11 @@ abstract class AbstractArray implements ArrayInterface
return serialize($this->data);
}
+ public function __serialize()
+ {
+ return $this->serialize();
+ }
+
/**
* Converts a serialized string representation into an instance object.
*
@@ -149,6 +155,11 @@ abstract class AbstractArray implements ArrayInterface
$this->data = $data;
}
+ public function __unserialize(array $data)
+ {
+ $this->unserialize($data);
+ }
+
/**
* Returns the number of items in this array.
*
diff --git a/vendor/react/event-loop/src/ExtUvLoop.php b/vendor/react/event-loop/src/ExtUvLoop.php
index 631a459..4434720 100644
--- a/vendor/react/event-loop/src/ExtUvLoop.php
+++ b/vendor/react/event-loop/src/ExtUvLoop.php
@@ -13,7 +13,7 @@ use SplObjectStorage;
* that provides an interface to `libuv` library.
* `libuv` itself supports a number of system-specific backends (epoll, kqueue).
*
- * This loop is known to work with PHP 7.x.
+ * This loop is known to work with PHP 7+.
*
* @see https://github.com/bwoebi/php-uv
*/
diff --git a/vendor/react/event-loop/src/Timer/Timers.php b/vendor/react/event-loop/src/Timer/Timers.php
index 3a33b8c..53c46d0 100644
--- a/vendor/react/event-loop/src/Timer/Timers.php
+++ b/vendor/react/event-loop/src/Timer/Timers.php
@@ -38,7 +38,7 @@ final class Timers
public function add(TimerInterface $timer)
{
- $id = \spl_object_hash($timer);
+ $id = \PHP_VERSION_ID < 70200 ? \spl_object_hash($timer) : \spl_object_id($timer);
$this->timers[$id] = $timer;
$this->schedule[$id] = $timer->getInterval() + $this->updateTime();
$this->sorted = false;
@@ -46,12 +46,13 @@ final class Timers
public function contains(TimerInterface $timer)
{
- return isset($this->timers[\spl_object_hash($timer)]);
+ $id = \PHP_VERSION_ID < 70200 ? \spl_object_hash($timer) : \spl_object_id($timer);
+ return isset($this->timers[$id]);
}
public function cancel(TimerInterface $timer)
{
- $id = \spl_object_hash($timer);
+ $id = \PHP_VERSION_ID < 70200 ? \spl_object_hash($timer) : \spl_object_id($timer);
unset($this->timers[$id], $this->schedule[$id]);
}
diff --git a/vendor/simshaun/recurr/composer.json b/vendor/simshaun/recurr/composer.json
index b9b009f..5474da2 100644
--- a/vendor/simshaun/recurr/composer.json
+++ b/vendor/simshaun/recurr/composer.json
@@ -14,7 +14,7 @@
],
"require": {
"php": "^7.2||^8.0",
- "doctrine/collections": "~1.6"
+ "doctrine/collections": "~1.6||^2.0"
},
"require-dev": {
"phpunit/phpunit": "^8.5.16",