+
\ No newline at end of file
diff --git a/oc-includes/vendor/bin/export-plural-rules b/oc-includes/vendor/bin/export-plural-rules
deleted file mode 120000
index d727a0516..000000000
--- a/oc-includes/vendor/bin/export-plural-rules
+++ /dev/null
@@ -1 +0,0 @@
-../gettext/languages/bin/export-plural-rules
\ No newline at end of file
diff --git a/oc-includes/vendor/bin/export-plural-rules b/oc-includes/vendor/bin/export-plural-rules
new file mode 100755
index 000000000..c57177981
--- /dev/null
+++ b/oc-includes/vendor/bin/export-plural-rules
@@ -0,0 +1,120 @@
+#!/usr/bin/env php
+realpath = realpath($opened_path) ?: $opened_path;
+ $opened_path = $this->realpath;
+ $this->handle = fopen($this->realpath, $mode);
+ $this->position = 0;
+
+ return (bool) $this->handle;
+ }
+
+ public function stream_read($count)
+ {
+ $data = fread($this->handle, $count);
+
+ if ($this->position === 0) {
+ $data = preg_replace('{^#!.*\r?\n}', '', $data);
+ }
+
+ $this->position += strlen($data);
+
+ return $data;
+ }
+
+ public function stream_cast($castAs)
+ {
+ return $this->handle;
+ }
+
+ public function stream_close()
+ {
+ fclose($this->handle);
+ }
+
+ public function stream_lock($operation)
+ {
+ return $operation ? flock($this->handle, $operation) : true;
+ }
+
+ public function stream_seek($offset, $whence)
+ {
+ if (0 === fseek($this->handle, $offset, $whence)) {
+ $this->position = ftell($this->handle);
+ return true;
+ }
+
+ return false;
+ }
+
+ public function stream_tell()
+ {
+ return $this->position;
+ }
+
+ public function stream_eof()
+ {
+ return feof($this->handle);
+ }
+
+ public function stream_stat()
+ {
+ return array();
+ }
+
+ public function stream_set_option($option, $arg1, $arg2)
+ {
+ return true;
+ }
+
+ public function url_stat($path, $flags)
+ {
+ $path = substr($path, 17);
+ if (file_exists($path)) {
+ return stat($path);
+ }
+
+ return false;
+ }
+ }
+ }
+
+ if (
+ (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+ || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+ ) {
+ include("phpvfscomposer://" . __DIR__ . '/..'.'/gettext/languages/bin/export-plural-rules');
+ exit(0);
+ }
+}
+
+include __DIR__ . '/..'.'/gettext/languages/bin/export-plural-rules';
diff --git a/oc-includes/vendor/composer/installed.json b/oc-includes/vendor/composer/installed.json
index a6a1ed86f..385dd6e02 100644
--- a/oc-includes/vendor/composer/installed.json
+++ b/oc-includes/vendor/composer/installed.json
@@ -2,21 +2,21 @@
"packages": [
{
"name": "ezyang/htmlpurifier",
- "version": "v4.15.0",
- "version_normalized": "4.15.0.0",
+ "version": "v4.17.0",
+ "version_normalized": "4.17.0.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "8d9f4c9ec154922ff19690ffade9ed915b27a017"
+ "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/8d9f4c9ec154922ff19690ffade9ed915b27a017",
- "reference": "8d9f4c9ec154922ff19690ffade9ed915b27a017",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
+ "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
"shasum": ""
},
"require": {
- "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -28,7 +28,7 @@
"ext-iconv": "Converts text to and from non-UTF-8 encodings",
"ext-tidy": "Used for pretty-printing HTML"
},
- "time": "2022-09-18T06:23:57+00:00",
+ "time": "2023-11-17T15:01:25+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -60,23 +60,23 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.15.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0"
},
"install-path": "../ezyang/htmlpurifier"
},
{
"name": "gettext/gettext",
- "version": "v4.8.8",
- "version_normalized": "4.8.8.0",
+ "version": "v4.8.11",
+ "version_normalized": "4.8.11.0",
"source": {
"type": "git",
"url": "https://github.com/php-gettext/Gettext.git",
- "reference": "302a00aa9d6762c92c884d879c15d3ed05d6a37d"
+ "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/302a00aa9d6762c92c884d879c15d3ed05d6a37d",
- "reference": "302a00aa9d6762c92c884d879c15d3ed05d6a37d",
+ "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/b632aaf5e4579d0b2ae8bc61785e238bff4c5156",
+ "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156",
"shasum": ""
},
"require": {
@@ -97,7 +97,7 @@
"twig/extensions": "Is necessary if you want to use the Twig extractor",
"twig/twig": "Is necessary if you want to use the Twig extractor"
},
- "time": "2022-12-08T11:59:50+00:00",
+ "time": "2023-08-14T15:15:05+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -130,7 +130,7 @@
"support": {
"email": "oom@oscarotero.com",
"issues": "https://github.com/oscarotero/Gettext/issues",
- "source": "https://github.com/php-gettext/Gettext/tree/v4.8.8"
+ "source": "https://github.com/php-gettext/Gettext/tree/v4.8.11"
},
"funding": [
{
@@ -442,22 +442,22 @@
},
{
"name": "phpseclib/mcrypt_compat",
- "version": "1.0.15",
- "version_normalized": "1.0.15.0",
+ "version": "1.0.17",
+ "version_normalized": "1.0.17.0",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/mcrypt_compat.git",
- "reference": "077eccc6970b723c00a30d95c70d67f892df0de7"
+ "reference": "1f89c26026da56334a88871b9148bbd8220e94fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/mcrypt_compat/zipball/077eccc6970b723c00a30d95c70d67f892df0de7",
- "reference": "077eccc6970b723c00a30d95c70d67f892df0de7",
+ "url": "https://api.github.com/repos/phpseclib/mcrypt_compat/zipball/1f89c26026da56334a88871b9148bbd8220e94fe",
+ "reference": "1f89c26026da56334a88871b9148bbd8220e94fe",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
- "phpseclib/phpseclib": ">=2.0.36 <3.0.0"
+ "phpseclib/phpseclib": ">=2.0.47 <3.0.0"
},
"provide": {
"ext-mcrypt": "5.6.40"
@@ -468,7 +468,7 @@
"suggest": {
"ext-openssl": "Will enable faster cryptographic operations"
},
- "time": "2022-12-18T12:17:52+00:00",
+ "time": "2024-02-26T14:41:01+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -512,17 +512,17 @@
},
{
"name": "phpseclib/phpseclib",
- "version": "2.0.42",
- "version_normalized": "2.0.42.0",
+ "version": "2.0.47",
+ "version_normalized": "2.0.47.0",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "665d289f59e646a259ebf13f29be7f6f54cab24b"
+ "reference": "b7d7d90ee7df7f33a664b4aea32d50a305d35adb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/665d289f59e646a259ebf13f29be7f6f54cab24b",
- "reference": "665d289f59e646a259ebf13f29be7f6f54cab24b",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/b7d7d90ee7df7f33a664b4aea32d50a305d35adb",
+ "reference": "b7d7d90ee7df7f33a664b4aea32d50a305d35adb",
"shasum": ""
},
"require": {
@@ -540,7 +540,7 @@
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations.",
"ext-xml": "Install the XML extension to load XML formatted public keys."
},
- "time": "2023-03-06T12:45:53+00:00",
+ "time": "2024-02-26T04:55:38+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -605,7 +605,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
- "source": "https://github.com/phpseclib/phpseclib/tree/2.0.42"
+ "source": "https://github.com/phpseclib/phpseclib/tree/2.0.47"
},
"funding": [
{
@@ -630,53 +630,71 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "08c832d96735c46a9d5849a5412fc4304e12d242"
+ "reference": "c9920ef42818bc65373cec1acc26bdee7a487e72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/08c832d96735c46a9d5849a5412fc4304e12d242",
- "reference": "08c832d96735c46a9d5849a5412fc4304e12d242",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c9920ef42818bc65373cec1acc26bdee7a487e72",
+ "reference": "c9920ef42818bc65373cec1acc26bdee7a487e72",
"shasum": ""
},
"conflict": {
"3f/pygmentize": "<1.2",
- "admidio/admidio": "<4.1.9",
+ "admidio/admidio": "<4.2.13",
"adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
- "aheinze/cockpit": "<=2.2.1",
+ "aheinze/cockpit": "<2.2",
+ "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
+ "airesvsg/acf-to-rest-api": "<=3.1",
"akaunting/akaunting": "<2.1.13",
"akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
"alextselegidis/easyappointments": "<1.5",
"alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
"amazing/media2click": ">=1,<1.3.3",
"amphp/artax": "<1.0.6|>=2,<2.0.6",
- "amphp/http": "<1.0.1",
+ "amphp/http": "<=1.7.2|>=2,<=2.1",
"amphp/http-client": ">=4,<4.4",
"anchorcms/anchor-cms": "<=0.12.7",
"andreapollastri/cipi": "<=3.1.15",
+ "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5",
+ "apache-solr-for-typo3/solr": "<2.8.3",
"apereo/phpcas": "<1.6",
"api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3",
- "appwrite/server-ce": "<0.11.1|>=0.12,<0.12.2",
+ "appwrite/server-ce": "<=1.2.1",
"arc/web": "<3",
"area17/twill": "<1.2.5|>=2,<2.5.3",
- "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
- "automad/automad": "<1.8",
+ "artesaos/seotools": "<0.17.2",
+ "asymmetricrypt/asymmetricrypt": "<9.9.99",
+ "athlon1600/php-proxy": "<=5.1",
+ "athlon1600/php-proxy-app": "<=3",
+ "austintoddj/canvas": "<=3.4.2",
+ "automad/automad": "<=1.10.9",
+ "automattic/jetpack": "<9.8",
"awesome-support/awesome-support": "<=6.0.7",
- "aws/aws-sdk-php": ">=3,<3.2.1",
- "backdrop/backdrop": "<=1.23",
+ "aws/aws-sdk-php": "<3.288.1",
+ "azuracast/azuracast": "<0.18.3",
+ "backdrop/backdrop": "<1.24.2",
+ "backpack/crud": "<3.4.9",
+ "bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
"badaso/core": "<2.7",
- "bagisto/bagisto": "<0.1.5",
+ "bagisto/bagisto": "<2.1",
"barrelstrength/sprout-base-email": "<1.2.7",
"barrelstrength/sprout-forms": "<3.9",
"barryvdh/laravel-translation-manager": "<0.6.2",
"barzahlen/barzahlen-php": "<2.0.1",
- "baserproject/basercms": "<4.7.5",
+ "baserproject/basercms": "<5.0.9",
"bassjobsen/bootstrap-3-typeahead": ">4.0.2",
- "billz/raspap-webgui": "<=2.6.6",
+ "bbpress/bbpress": "<2.6.5",
+ "bcosca/fatfree": "<3.7.2",
+ "bedita/bedita": "<4",
+ "bigfork/silverstripe-form-capture": ">=3,<3.1.1",
+ "billz/raspap-webgui": "<2.9.5",
"bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
+ "blueimp/jquery-file-upload": "==6.4.4",
"bmarshall511/wordpress_zero_spam": "<5.2.13",
"bolt/bolt": "<3.7.2",
"bolt/core": "<=4.2",
"bottelet/flarepoint": "<2.2.1",
+ "bref/bref": "<2.1.17",
"brightlocal/phpwhois": "<=4.2.5",
"brotkrueml/codehighlight": "<2.7",
"brotkrueml/schema": "<1.13.1|>=2,<2.5.1",
@@ -685,368 +703,502 @@
"bugsnag/bugsnag-laravel": ">=2,<2.0.2",
"bytefury/crater": "<6.0.2",
"cachethq/cachet": "<2.5.1",
- "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10|= 1.3.7|>=4.1,<4.1.4",
+ "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
"cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
"cardgate/magento2": "<2.0.33",
+ "cardgate/woocommerce": "<=3.1.15",
"cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
"cartalyst/sentry": "<=2.1.6",
"catfan/medoo": "<1.7.5",
- "centreon/centreon": "<22.10-beta.1",
+ "causal/oidc": "<2.1",
+ "cecil/cecil": "<7.47.1",
+ "centreon/centreon": "<22.10.15",
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
- "cockpit-hq/cockpit": "<2.4.1",
+ "chriskacerguis/codeigniter-restserver": "<=2.7.1",
+ "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
+ "ckeditor/ckeditor": "<4.24",
+ "cockpit-hq/cockpit": "<=2.6.3|==2.7",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
- "codeigniter/framework": "<=3.0.6",
- "codeigniter4/framework": "<4.2.11",
- "codeigniter4/shield": "<1-beta.4|= 1.0.0-beta",
+ "codeigniter/framework": "<3.1.9",
+ "codeigniter4/framework": "<4.4.7",
+ "codeigniter4/shield": "<1.0.0.0-beta8",
"codiad/codiad": "<=2.8.4",
- "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5",
- "concrete5/concrete5": "<=9.1.3|>= 9.0.0RC1, < 9.1.3",
+ "composer/composer": "<1.10.27|>=2,<2.2.23|>=2.3,<2.7",
+ "concrete5/concrete5": "<9.2.8",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
- "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3",
- "contao/core": ">=2,<3.5.39",
- "contao/core-bundle": "<4.9.18|>=4.10,<4.11.7|>=4.13,<4.13.3|= 4.10.0",
- "contao/listing-bundle": ">=4,<4.4.8",
+ "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
+ "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
+ "contao/core": "<3.5.39",
+ "contao/core-bundle": "<4.13.40|>=5,<5.3.4",
+ "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
"contao/managed-edition": "<=1.5",
- "craftcms/cms": "<3.7.64|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
- "croogo/croogo": "<3.0.7",
+ "corveda/phpsandbox": "<1.3.5",
+ "cosenary/instagram": "<=2.3",
+ "craftcms/cms": "<4.6.2",
+ "croogo/croogo": "<4",
"cuyz/valinor": "<0.12",
"czproject/git-php": "<4.0.3",
+ "dapphp/securimage": "<3.6.6",
"darylldoyle/safe-svg": "<1.9.10",
"datadog/dd-trace": ">=0.30,<0.30.2",
+ "datatables/datatables": "<1.10.10",
"david-garcia/phpwhois": "<=4.3.1",
"dbrisinajumi/d2files": "<1",
+ "dcat/laravel-admin": "<=2.1.3.0-beta",
"derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
- "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1",
- "directmailteam/direct-mail": "<5.2.4",
- "doctrine/annotations": ">=1,<1.2.7",
+ "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
+ "desperado/xml-bundle": "<=0.1.7",
+ "devgroup/dotplant": "<2020.09.14-dev",
+ "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2",
+ "doctrine/annotations": "<1.2.7",
"doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
- "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1",
+ "doctrine/common": "<2.4.3|>=2.5,<2.5.1",
"doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4",
"doctrine/doctrine-bundle": "<1.5.2",
"doctrine/doctrine-module": "<=0.7.1",
- "doctrine/mongodb-odm": ">=1,<1.0.2",
- "doctrine/mongodb-odm-bundle": ">=2,<3.0.1",
+ "doctrine/mongodb-odm": "<1.0.2",
+ "doctrine/mongodb-odm-bundle": "<3.0.1",
"doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
- "dolibarr/dolibarr": "<16|>=16.0.1,<16.0.3|= 12.0.5|>= 3.3.beta1, < 13.0.2",
- "dompdf/dompdf": "<2.0.2|= 2.0.2",
- "drupal/core": ">=7,<7.91|>=8,<9.3.19|>=9.4,<9.4.3",
- "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4",
+ "dolibarr/dolibarr": "<=19",
+ "dompdf/dompdf": "<2.0.4",
+ "doublethreedigital/guest-entries": "<3.1.2",
+ "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2",
+ "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4",
+ "duncanmcclean/guest-entries": "<3.1.2",
"dweeves/magmi": "<=0.7.24",
+ "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2",
"ecodev/newsletter": "<=4",
"ectouch/ectouch": "<=2.7.2",
- "elefant/cms": "<1.3.13",
+ "egroupware/egroupware": "<16.1.20170922",
+ "elefant/cms": "<2.0.7",
"elgg/elgg": "<3.3.24|>=4,<4.0.5",
+ "elijaa/phpmemcacheadmin": "<=1.3",
"encore/laravel-admin": "<=1.8.19",
"endroid/qr-code-bundle": "<3.4.2",
+ "enhavo/enhavo-app": "<=0.13.1",
"enshrined/svg-sanitize": "<0.15",
"erusev/parsedown": "<1.7.2",
"ether/logs": "<3.0.4",
+ "evolutioncms/evolution": "<=3.2.3",
"exceedone/exment": "<4.4.3|>=5,<5.0.3",
- "exceedone/laravel-admin": "= 3.0.0|<2.2.3",
- "ezsystems/demobundle": ">=5.4,<5.4.6.1",
+ "exceedone/laravel-admin": "<2.2.3|==3",
+ "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev",
"ezsystems/ez-support-tools": ">=2.2,<2.2.3",
- "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1",
- "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1",
+ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev",
+ "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev",
"ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24",
"ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26",
"ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1",
- "ezsystems/ezplatform-graphql": ">=1-rc.1,<1.0.13|>=2-beta.1,<2.3.12",
- "ezsystems/ezplatform-kernel": "<1.2.5.1|>=1.3,<1.3.26",
+ "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12",
+ "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35",
"ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8",
- "ezsystems/ezplatform-richtext": ">=2.3,<=2.3.7",
+ "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev",
+ "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15",
"ezsystems/ezplatform-user": ">=1,<1.0.1",
- "ezsystems/ezpublish-kernel": "<6.13.8.2|>=7,<7.5.30",
- "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.3.5.1",
+ "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31",
+ "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.06,<=2019.03.5.1",
"ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
- "ezsystems/repository-forms": ">=2.3,<2.3.2.1|>=2.5,<2.5.15",
+ "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
"ezyang/htmlpurifier": "<4.1.1",
"facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
- "facturascripts/facturascripts": "<=2022.8",
+ "facturascripts/facturascripts": "<=2022.08",
+ "fastly/magento2": "<1.2.26",
"feehi/cms": "<=2.1.1",
"feehi/feehicms": "<=2.1.1",
"fenom/fenom": "<=2.12.1",
"filegator/filegator": "<7.8",
+ "filp/whoops": "<2.1.13",
+ "fineuploader/php-traditional-server": "<=1.2.2",
"firebase/php-jwt": "<6",
"fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
"fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
- "flarum/core": "<1.7",
+ "flarum/core": "<1.8.5",
+ "flarum/flarum": "<0.1.0.0-beta8",
+ "flarum/framework": "<1.8.5",
"flarum/mentions": "<1.6.3",
- "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15",
- "flarum/tags": "<=0.1-beta.13",
+ "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
+ "flarum/tags": "<=0.1.0.0-beta13",
+ "floriangaerber/magnesium": "<0.3.1",
"fluidtypo3/vhs": "<5.1.1",
- "fof/byobu": ">=0.3-beta.2,<1.1.7",
+ "fof/byobu": ">=0.3.0.0-beta2,<1.1.7",
"fof/upload": "<1.2.3",
+ "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1",
"fooman/tcpdf": "<6.2.22",
"forkcms/forkcms": "<5.11.1",
"fossar/tcpdf-parser": "<6.2.22",
- "francoisjacquet/rosariosis": "<10.8.2",
+ "francoisjacquet/rosariosis": "<=11.5.1",
"frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2",
"friendsofsymfony/oauth2-php": "<1.3",
"friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
"friendsofsymfony/user-bundle": ">=1.2,<1.3.5",
+ "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5",
+ "friendsofsymfony1/symfony1": ">=1.1,<1.15.19",
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
- "froala/wysiwyg-editor": "<3.2.7",
- "froxlor/froxlor": "<2.0.13",
+ "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
+ "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3",
+ "froxlor/froxlor": "<=2.1.1",
+ "frozennode/administrator": "<=5.0.12",
"fuel/core": "<1.8.1",
- "funadmin/funadmin": "<=3.2",
+ "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
"gaoming13/wechat-php-sdk": "<=1.10.2",
"genix/cms": "<=1.1.11",
- "getgrav/grav": "<1.7.34",
- "getkirby/cms": "= 3.8.0|<3.5.8.2|>=3.6,<3.6.6.2|>=3.7,<3.7.5.1",
+ "getgrav/grav": "<1.7.45",
+ "getkirby/cms": "<4.1.1",
+ "getkirby/kirby": "<=2.5.12",
"getkirby/panel": "<2.5.14",
"getkirby/starterkit": "<=3.7.0.2",
- "gilacms/gila": "<=1.11.4",
+ "gilacms/gila": "<=1.15.4",
+ "gleez/cms": "<=1.2|==2",
"globalpayments/php-sdk": "<2",
+ "gogentooss/samlbase": "<1.2.7",
"google/protobuf": "<3.15",
"gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
"gree/jose": "<2.2.1",
"gregwar/rst": "<1.0.3",
- "grumpydictator/firefly-iii": "<5.8",
+ "grumpydictator/firefly-iii": "<6.1.7",
+ "gugoan/economizzer": "<=0.9.0.0-beta1",
"guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
- "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1",
+ "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
+ "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
"harvesthq/chosen": "<1.8.7",
- "helloxz/imgurl": "= 2.31|<=2.31",
+ "helloxz/imgurl": "<=2.31",
+ "hhxsv5/laravel-s": "<3.7.36",
"hillelcoren/invoice-ninja": "<5.3.35",
"himiklab/yii2-jqgrid-widget": "<1.0.8",
"hjue/justwriting": "<=1",
"hov/jobfair": "<1.0.13|>=2,<2.0.2",
+ "httpsoft/http-message": "<1.0.12",
"hyn/multi-tenant": ">=5.6,<5.7.2",
"ibexa/admin-ui": ">=4.2,<4.2.3",
- "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3",
+ "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2",
"ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3",
"ibexa/post-install": "<=1.0.4",
+ "ibexa/solr": ">=4.5,<4.5.4",
+ "ibexa/user": ">=4,<4.4.3",
"icecoder/icecoder": "<=8.1",
"idno/known": "<=1.3.1",
- "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10",
+ "ilicmiljan/secure-props": ">=1.2,<1.2.2",
+ "illuminate/auth": "<5.5.10",
"illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4",
"illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40",
"illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
"illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
- "impresscms/impresscms": "<=1.4.3",
- "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.1",
+ "imdbphp/imdbphp": "<=5.1.1",
+ "impresscms/impresscms": "<=1.4.5",
+ "impresspages/impresspages": "<=1.0.12",
+ "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3",
+ "in2code/ipandlanguageredirect": "<5.1.2",
"in2code/lux": "<17.6.1|>=18,<24.0.2",
"innologi/typo3-appointments": "<2.0.6",
- "intelliants/subrion": "<=4.2.1",
+ "intelliants/subrion": "<4.2.2",
+ "inter-mediator/inter-mediator": "==5.5",
"islandora/islandora": ">=2,<2.4.1",
"ivankristianto/phpwhois": "<=4.3",
"jackalope/jackalope-doctrine-dbal": "<1.7.4",
"james-heinrich/getid3": "<1.9.21",
+ "james-heinrich/phpthumb": "<1.7.12",
"jasig/phpcas": "<1.3.3",
+ "jcbrand/converse.js": "<3.3.3",
+ "johnbillion/wp-crontrol": "<1.16.2",
+ "joomla/application": "<1.0.13",
"joomla/archive": "<1.1.12|>=2,<2.0.1",
"joomla/filesystem": "<1.6.2|>=2,<2.0.1",
"joomla/filter": "<1.4.4|>=2,<2.0.1",
+ "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12",
"joomla/input": ">=2,<2.0.2",
+ "joomla/joomla-cms": ">=2.5,<3.9.12",
"joomla/session": "<1.3.1",
"joyqi/hyper-down": "<=2.4.27",
"jsdecena/laracom": "<2.0.9",
"jsmitty12/phpwhois": "<5.1",
+ "juzaweb/cms": "<=3.4",
"kazist/phpwhois": "<=4.2.6",
"kelvinmo/simplexrd": "<3.1.1",
"kevinpapst/kimai2": "<1.16.7",
- "kimai/kimai": "<1.1",
- "kitodo/presentation": "<3.1.2",
+ "khodakhah/nodcms": "<=3",
+ "kimai/kimai": "<2.13",
+ "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
"klaviyo/magento2-extension": ">=1,<3",
- "knplabs/knp-snappy": "<=1.4.1",
+ "knplabs/knp-snappy": "<=1.4.2",
+ "kohana/core": "<3.3.3",
"krayin/laravel-crm": "<1.2.2",
"kreait/firebase-php": ">=3.2,<3.8.1",
+ "kumbiaphp/kumbiapp": "<=1.1.1",
"la-haute-societe/tcpdf": "<6.2.22",
- "laminas/laminas-diactoros": "<2.11.1",
+ "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
"laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
"laminas/laminas-http": "<2.14.2",
"laravel/fortify": "<1.11.1",
- "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
+ "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75",
+ "laravel/laravel": ">=5.4,<5.4.22",
"laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10",
"latte/latte": "<2.10.8",
- "lavalite/cms": "<=5.8",
+ "lavalite/cms": "<=9",
"lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5",
"league/commonmark": "<0.18.3",
"league/flysystem": "<1.1.4|>=2,<2.1.1",
+ "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
"lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
- "librenms/librenms": "<22.10",
+ "libreform/libreform": ">=2,<=2.0.8",
+ "librenms/librenms": "<2017.08.18",
"liftkit/database": "<2.13.2",
+ "lightsaml/lightsaml": "<1.3.5",
"limesurvey/limesurvey": "<3.27.19",
"livehelperchat/livehelperchat": "<=3.91",
- "livewire/livewire": ">2.2.4,<2.2.6",
+ "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9",
"lms/routes": "<2.1.1",
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
"luyadev/yii-helpers": "<1.2.1",
- "magento/community-edition": ">=2,<2.2.10|>=2.3,<2.3.3",
- "magento/magento1ce": "<1.9.4.3",
- "magento/magento1ee": ">=1,<1.14.4.3",
- "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2",
+ "magento/community-edition": "<2.4.3.0-patch3|>=2.4.4,<2.4.5",
+ "magento/core": "<=1.9.4.5",
+ "magento/magento1ce": "<1.9.4.3-dev",
+ "magento/magento1ee": ">=1,<1.14.4.3-dev",
+ "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2",
+ "magneto/core": "<1.9.4.4-dev",
"maikuolan/phpmussel": ">=1,<1.6",
- "mantisbt/mantisbt": "<=2.25.5",
+ "mainwp/mainwp": "<=4.4.3.3",
+ "mantisbt/mantisbt": "<2.26.1",
"marcwillmann/turn": "<0.3.3",
"matyhtf/framework": "<3.0.6",
- "mautic/core": "<4.3|= 2.13.1",
- "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35",
+ "mautic/core": "<4.4.12|>=5.0.0.0-alpha,<5.0.4",
+ "mdanter/ecc": "<2",
+ "mediawiki/core": "<1.36.2",
"mediawiki/matomo": "<2.4.3",
+ "mediawiki/semantic-media-wiki": "<4.0.2",
"melisplatform/melis-asset-manager": "<5.0.1",
"melisplatform/melis-cms": "<5.0.1",
"melisplatform/melis-front": "<5.0.1",
"mezzio/mezzio-swoole": "<3.7|>=4,<4.3",
"mgallegos/laravel-jqgrid": "<=1.3",
- "microweber/microweber": "<=1.3.2",
+ "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1",
+ "microsoft/microsoft-graph-beta": "<2.0.1",
+ "microsoft/microsoft-graph-core": "<2.0.2",
+ "microweber/microweber": "<=2.0.4",
+ "mikehaertl/php-shellcommand": "<1.6.1",
"miniorange/miniorange-saml": "<1.4.3",
"mittwald/typo3_forum": "<1.2.1",
"mobiledetect/mobiledetectlib": "<2.8.32",
- "modx/revolution": "<= 2.8.3-pl|<2.8",
+ "modx/revolution": "<=2.8.3.0-patch",
"mojo42/jirafeau": "<4.4",
+ "mongodb/mongodb": ">=1,<1.9.2",
"monolog/monolog": ">=1.8,<1.12",
- "moodle/moodle": "<4.0.7|>=4.1-beta,<4.1.2|= 3.11",
+ "moodle/moodle": "<=4.3.3",
+ "mos/cimage": "<0.7.19",
+ "movim/moxl": ">=0.8,<=0.10",
+ "movingbytes/social-network": "<=1.2.1",
+ "mpdf/mpdf": "<=7.1.7",
+ "munkireport/comment": "<4.1",
+ "munkireport/managedinstalls": "<2.6",
+ "munkireport/munki_facts": "<1.5",
+ "munkireport/munkireport": ">=2.5.3,<5.6.3",
+ "munkireport/reportdata": "<3.5",
+ "munkireport/softwareupdate": "<1.6",
"mustache/mustache": ">=2,<2.14.1",
"namshi/jose": "<2.2",
"neoan3-apps/template": "<1.1.1",
- "neorazorx/facturascripts": "<2022.4",
+ "neorazorx/facturascripts": "<2022.04",
"neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
"neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3",
+ "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9",
"neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
"neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
"netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
"nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
"nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
- "nilsteampassnet/teampass": "<3.0.0.23",
+ "nilsteampassnet/teampass": "<3.0.10",
+ "nonfiction/nterchange": "<4.1.1",
"notrinos/notrinos-erp": "<=0.7",
"noumo/easyii": "<=0.9",
- "nukeviet/nukeviet": "<4.5.2",
+ "nukeviet/nukeviet": "<4.5.02",
+ "nyholm/psr7": "<1.6.1",
"nystudio107/craft-seomatic": "<3.4.12",
+ "nzedb/nzedb": "<0.8",
"nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
"october/backend": "<1.1.2",
- "october/cms": "= 1.1.1|= 1.0.471|= 1.0.469|>=1.0.319,<1.0.469",
- "october/october": ">=1.0.319,<1.0.466|>=2.1,<2.1.12",
+ "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1",
+ "october/october": "<=3.4.4",
"october/rain": "<1.0.472|>=1.1,<1.1.2",
- "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.0.66",
+ "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2",
+ "omeka/omeka-s": "<4.0.3",
"onelogin/php-saml": "<2.10.4",
- "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5",
+ "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5",
"open-web-analytics/open-web-analytics": "<1.7.4",
- "opencart/opencart": "<=3.0.3.7",
+ "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev",
"openid/php-openid": "<2.3",
- "openmage/magento-lts": "<19.4.22|>=20,<20.0.19",
- "orchid/platform": ">=9,<9.4.4",
- "oro/commerce": ">=4.1,<5.0.6",
+ "openmage/magento-lts": "<20.5",
+ "opensolutions/vimbadmin": "<=3.0.15",
+ "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2",
+ "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5",
+ "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1",
+ "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1",
"oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7",
- "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<4.2.8",
+ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1",
+ "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3",
+ "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3",
+ "oxid-esales/oxideshop-ce": "<4.5",
+ "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1",
"packbackbooks/lti-1-3-php-library": "<5",
"padraic/humbug_get_contents": "<1.1.2",
- "pagarme/pagarme-php": ">=0,<3",
+ "pagarme/pagarme-php": "<3",
"pagekit/pagekit": "<=1.0.18",
"paragonie/random_compat": "<2",
- "passbolt/passbolt_api": "<2.11",
+ "passbolt/passbolt_api": "<4.6.2",
+ "paypal/adaptivepayments-sdk-php": "<=3.9.2",
+ "paypal/invoice-sdk-php": "<=3.9",
"paypal/merchant-sdk-php": "<3.12",
+ "paypal/permissions-sdk-php": "<=3.9.1",
"pear/archive_tar": "<1.4.14",
+ "pear/auth": "<1.2.4",
"pear/crypt_gpg": "<1.6.7",
+ "pear/pear": "<=1.10.1",
"pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1",
"personnummer/personnummer": "<3.0.2",
"phanan/koel": "<5.1.4",
+ "phenx/php-svg-lib": "<0.5.2",
"php-mod/curl": "<2.3.2",
+ "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1",
+ "phpems/phpems": ">=6,<=6.1.3",
"phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
"phpmailer/phpmailer": "<6.5",
"phpmussel/phpmussel": ">=1,<1.6",
"phpmyadmin/phpmyadmin": "<5.2.1",
- "phpmyfaq/phpmyfaq": "<=3.1.7",
+ "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
+ "phpoffice/common": "<0.2.9",
"phpoffice/phpexcel": "<1.8",
"phpoffice/phpspreadsheet": "<1.16",
- "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19",
- "phpservermon/phpservermon": "<=3.5.2",
- "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3",
+ "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
+ "phpservermon/phpservermon": "<3.6",
+ "phpsysinfo/phpsysinfo": "<3.4.3",
+ "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3",
"phpwhois/phpwhois": "<=4.2.5",
"phpxmlrpc/extras": "<0.6.1",
"phpxmlrpc/phpxmlrpc": "<4.9.2",
+ "pi/pi": "<=2.5",
+ "pimcore/admin-ui-classic-bundle": "<1.3.4",
+ "pimcore/customer-management-framework-bundle": "<4.0.6",
"pimcore/data-hub": "<1.2.4",
- "pimcore/pimcore": "<11",
- "pixelfed/pixelfed": "<=0.11.4",
+ "pimcore/demo": "<10.3",
+ "pimcore/ecommerce-framework-bundle": "<1.0.10",
+ "pimcore/perspective-editor": "<1.5.1",
+ "pimcore/pimcore": "<11.2.3",
+ "pixelfed/pixelfed": "<0.11.11",
+ "plotly/plotly.js": "<2.25.2",
"pocketmine/bedrock-protocol": "<8.0.2",
- "pocketmine/pocketmine-mp": "<4.12.5|>= 4.0.0-BETA5, < 4.4.2",
+ "pocketmine/pocketmine-mp": "<5.11.2",
+ "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
"pressbooks/pressbooks": "<5.18",
"prestashop/autoupgrade": ">=4,<4.10.1",
+ "prestashop/blockreassurance": "<=5.1.3",
"prestashop/blockwishlist": ">=2,<2.1.1",
"prestashop/contactform": ">=1.0.1,<4.3",
"prestashop/gamification": "<2.3.2",
- "prestashop/prestashop": "<8.0.1",
+ "prestashop/prestashop": "<8.1.4",
"prestashop/productcomments": "<5.0.2",
"prestashop/ps_emailsubscription": "<2.6.1",
"prestashop/ps_facetedsearch": "<3.4.1",
"prestashop/ps_linklist": "<3.1",
"privatebin/privatebin": "<1.4",
- "processwire/processwire": "<=3.0.200",
- "propel/propel": ">=2-alpha.1,<=2-alpha.7",
+ "processwire/processwire": "<=3.0.210",
+ "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
"propel/propel1": ">=1,<=1.7.1",
"pterodactyl/panel": "<1.7",
+ "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
"ptrofimov/beanstalk_console": "<1.7.14",
+ "pubnub/pubnub": "<6.1",
"pusher/pusher-php-server": "<2.2.1",
- "pwweb/laravel-core": "<=0.3.6-beta",
+ "pwweb/laravel-core": "<=0.3.6.0-beta",
"pyrocms/pyrocms": "<=3.9.1",
+ "qcubed/qcubed": "<=3.1.1",
+ "quickapps/cms": "<=2.0.0.0-beta2",
+ "rainlab/blog-plugin": "<1.4.1",
"rainlab/debugbar-plugin": "<3.1",
+ "rainlab/user-plugin": "<=1.4.5",
"rankmath/seo-by-rank-math": "<=1.0.95",
- "react/http": ">=0.7,<1.7",
- "remdex/livehelperchat": "<3.99",
+ "rap2hpoutre/laravel-log-viewer": "<0.13",
+ "react/http": ">=0.7,<1.9",
+ "really-simple-plugins/complianz-gdpr": "<6.4.2",
+ "redaxo/source": "<=5.15.1",
+ "remdex/livehelperchat": "<4.29",
+ "reportico-web/reportico": "<=8.1",
+ "rhukster/dom-sanitizer": "<1.0.7",
"rmccue/requests": ">=1.6,<1.8",
- "robrichards/xmlseclibs": "<3.0.4",
+ "robrichards/xmlseclibs": ">=1,<3.0.4",
"roots/soil": "<4.1",
"rudloff/alltube": "<3.0.3",
"s-cart/core": "<6.9",
"s-cart/s-cart": "<6.9",
"sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
- "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9",
- "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11",
+ "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
+ "scheb/two-factor-bundle": "<3.26|>=4,<4.11",
"sensiolabs/connect": "<4.2.3",
"serluck/phpwhois": "<=4.2.6",
- "shopware/core": "<=6.4.18",
- "shopware/platform": "<=6.4.18",
+ "sfroemken/url_redirect": "<=1.2.1",
+ "sheng/yiicms": "<=1.2",
+ "shopware/core": "<6.5.8.8-dev|>=6.6.0.0-RC1-dev,<6.6.1",
+ "shopware/platform": "<6.5.8.8-dev|>=6.6.0.0-RC1-dev,<6.6.1",
"shopware/production": "<=6.3.5.2",
- "shopware/shopware": "<=5.7.14",
- "shopware/storefront": "<=6.4.8.1",
+ "shopware/shopware": "<6.2.3",
+ "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev",
"shopxo/shopxo": "<2.2.6",
"showdoc/showdoc": "<2.10.4",
- "silverstripe/admin": ">=1,<1.11.3",
+ "silverstripe-australia/advancedreports": ">=1,<=2",
+ "silverstripe/admin": "<1.13.19|>=2,<2.1.8",
"silverstripe/assets": ">=1,<1.11.1",
"silverstripe/cms": "<4.11.3",
"silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1",
"silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
- "silverstripe/framework": "<4.11.14",
- "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|>=4.1.1,<4.1.2|>=4.2.2,<4.2.3|= 4.0.0-alpha1",
+ "silverstripe/framework": "<4.13.39|>=5,<5.1.11",
+ "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
"silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
+ "silverstripe/recipe-cms": ">=4.5,<4.5.3",
"silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
- "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4",
+ "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2",
"silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1",
"silverstripe/subsites": ">=2,<2.6.1",
"silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1",
- "silverstripe/userforms": "<3",
+ "silverstripe/userforms": "<3|>=5,<5.4.2",
"silverstripe/versioned-admin": ">=1,<1.11.1",
"simple-updates/phpwhois": "<=1",
- "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4",
+ "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12",
"simplesamlphp/simplesamlphp": "<1.18.6",
"simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
"simplesamlphp/simplesamlphp-module-openid": "<1",
"simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
+ "simplesamlphp/xml-security": "==1.6.11",
"simplito/elliptic-php": "<1.0.6",
"sitegeist/fluid-components": "<3.5",
+ "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3",
+ "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
"slim/slim": "<2.6",
- "smarty/smarty": "<3.1.47|>=4,<4.2.1",
- "snipe/snipe-it": "<=6.0.14|>= 6.0.0-RC-1, <= 6.0.0-RC-5",
+ "slub/slub-events": "<3.0.3",
+ "smarty/smarty": "<3.1.48|>=4,<4.3.1",
+ "snipe/snipe-it": "<=6.2.2",
"socalnick/scn-social-auth": "<1.15.2",
"socialiteproviders/steam": "<1.1",
"spatie/browsershot": "<3.57.4",
- "spipu/html2pdf": "<5.2.4",
+ "spipu/html2pdf": "<5.2.8",
+ "spoon/library": "<1.4.1",
"spoonity/tcpdf": "<6.2.22",
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
- "ssddanbrown/bookstack": "<22.2.3",
- "statamic/cms": "<3.2.39|>=3.3,<3.3.2",
- "stormpath/sdk": ">=0,<9.9.99",
- "studio-42/elfinder": "<2.1.59",
- "subrion/cms": "<=4.2.1",
+ "ssddanbrown/bookstack": "<22.02.3",
+ "statamic/cms": "<4.46",
+ "stormpath/sdk": "<9.9.99",
+ "studio-42/elfinder": "<2.1.62",
+ "subhh/libconnect": "<7.0.8|>=8,<8.1",
"sukohi/surpass": "<1",
- "sulu/sulu": "= 2.4.0-RC1|<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8",
+ "sulu/sulu": "<1.6.44|>=2,<2.4.17|>=2.5,<2.5.13",
"sumocoders/framework-user-bundle": "<1.4",
+ "superbig/craft-audit": "<3.0.2",
"swag/paypal": "<5.4.4",
- "swiftmailer/swiftmailer": ">=4,<5.4.5",
+ "swiftmailer/swiftmailer": "<6.2.5",
+ "swiftyedit/swiftyedit": "<1.2",
"sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
"sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
"sylius/grid-bundle": "<1.10.1",
"sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1",
- "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
- "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2",
+ "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
+ "sylius/sylius": "<=1.12.13",
"symbiote/silverstripe-multivaluefield": ">=3,<3.0.99",
"symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4",
"symbiote/silverstripe-seed": "<6.0.3",
@@ -1056,7 +1208,7 @@
"symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
"symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
"symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
- "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14",
+ "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4",
"symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
"symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
"symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
@@ -1072,78 +1224,111 @@
"symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
"symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
"symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
- "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2",
+ "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8",
"symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
- "symfony/symfony": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/symfony": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
"symfony/translation": ">=2,<2.0.17",
+ "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/ux-autocomplete": "<2.11.2",
"symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
"symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
"symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
- "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7",
- "t3/dce": ">=2.2,<2.6.2",
+ "symfony/webhook": ">=6.3,<6.3.8",
+ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2",
+ "symphonycms/symphony-2": "<2.6.4",
+ "t3/dce": "<0.11.5|>=2.2,<2.6.2",
"t3g/svg-sanitizer": "<1.0.3",
+ "t3s/content-consent": "<1.0.3|>=2,<2.0.2",
"tastyigniter/tastyigniter": "<3.3",
- "tecnickcom/tcpdf": "<6.2.22",
+ "tcg/voyager": "<=1.4",
+ "tecnickcom/tcpdf": "<=6.7.4",
"terminal42/contao-tablelookupwizard": "<3.3.5",
"thelia/backoffice-default-template": ">=2.1,<2.1.2",
- "thelia/thelia": ">=2.1-beta.1,<2.1.3",
+ "thelia/thelia": ">=2.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
- "thinkcmf/thinkcmf": "<=5.1.7",
- "thorsten/phpmyfaq": "<3.1.11",
- "tinymce/tinymce": "<5.10.7|>=6,<6.3.1",
+ "thinkcmf/thinkcmf": "<6.0.8",
+ "thorsten/phpmyfaq": "<3.2.2",
+ "tikiwiki/tiki-manager": "<=17.1",
+ "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
+ "tinymce/tinymce": "<7",
"tinymighty/wiki-seo": "<1.2.2",
- "titon/framework": ">=0,<9.9.99",
- "tobiasbg/tablepress": "<= 2.0-RC1",
+ "titon/framework": "<9.9.99",
+ "tobiasbg/tablepress": "<=2.0.0.0-RC1",
"topthink/framework": "<6.0.14",
"topthink/think": "<=6.1.1",
"topthink/thinkphp": "<=3.2.3",
- "tribalsystems/zenario": "<=9.3.57595",
+ "torrentpier/torrentpier": "<=2.4.1",
+ "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
+ "tribalsystems/zenario": "<=9.4.59197",
"truckersmp/phpwhois": "<=4.3.1",
"ttskch/pagination-service-provider": "<1",
"twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3",
- "typo3/cms": "<2.0.5|>=3,<3.0.3|>=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
- "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
- "typo3/cms-core": "<8.7.51|>=9,<9.5.40|>=10,<10.4.36|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-core": "<=8.7.56|>=9,<=9.5.45|>=10,<=10.4.42|>=11,<=11.5.34|>=12,<=12.4.10|==13",
+ "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
+ "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
"typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
+ "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8",
+ "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
"typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
- "typo3/html-sanitizer": ">=1,<1.5|>=2,<2.1.1",
+ "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
"typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
"typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
"typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
"typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
"ua-parser/uap-php": "<3.8",
- "unisharp/laravel-filemanager": "<=2.5.1",
+ "uasoft-indonesia/badaso": "<=2.9.7",
+ "unisharp/laravel-filemanager": "<2.6.4",
"userfrosting/userfrosting": ">=0.3.1,<4.6.3",
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
- "uvdesk/community-skeleton": "<1.1",
+ "uvdesk/community-skeleton": "<=1.1.1",
+ "uvdesk/core-framework": "<=1.1.1",
"vanilla/safecurl": "<0.9.2",
- "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4",
+ "verbb/comments": "<1.5.5",
+ "verbb/image-resizer": "<2.0.9",
+ "verbb/knock-knock": "<1.2.8",
+ "verot/class.upload.php": "<=2.1.6",
+ "villagedefrance/opencart-overclocked": "<=1.11.1",
"vova07/yii2-fileapi-widget": "<0.1.9",
"vrana/adminer": "<4.8.1",
+ "waldhacker/hcaptcha": "<2.1.2",
"wallabag/tcpdf": "<6.2.22",
- "wallabag/wallabag": "<2.5.4",
+ "wallabag/wallabag": "<2.6.7",
"wanglelecc/laracms": "<=1.0.3",
"web-auth/webauthn-framework": ">=3.3,<3.3.4",
+ "web-feet/coastercms": "==5.5",
"webbuilders-group/silverstripe-kapost-bridge": "<0.4",
"webcoast/deferred-image-processing": "<1.0.2",
+ "webklex/laravel-imap": "<5.3",
+ "webklex/php-imap": "<5.3",
"webpa/webpa": "<3.1.2",
+ "wikibase/wikibase": "<=1.39.3",
"wikimedia/parsoid": "<0.12.2",
"willdurand/js-translation-bundle": "<2.1.1",
- "wintercms/winter": "<1.0.475|>=1.1,<1.1.10|>=1.2,<1.2.1",
+ "winter/wn-backend-module": "<1.2.4",
+ "winter/wn-dusk-plugin": "<2.1",
+ "winter/wn-system-module": "<1.2.4",
+ "wintercms/winter": "<=1.2.3",
"woocommerce/woocommerce": "<6.6",
- "wp-cli/wp-cli": "<2.5",
- "wp-graphql/wp-graphql": "<0.3.5",
+ "wp-cli/wp-cli": ">=0.12,<2.5",
+ "wp-graphql/wp-graphql": "<=1.14.5",
+ "wp-premium/gravityforms": "<2.4.21",
"wpanel/wpanel4-cms": "<=4.3.1",
"wpcloud/wp-stateless": "<3.2",
- "wwbn/avideo": "<12.4",
+ "wpglobus/wpglobus": "<=1.9.6",
+ "wwbn/avideo": "<=12.4",
"xataface/xataface": "<3",
"xpressengine/xpressengine": "<3.0.15",
+ "yab/quarx": "<2.4.5",
"yeswiki/yeswiki": "<4.1",
"yetiforce/yetiforce-crm": "<=6.4",
"yidashi/yii2cmf": "<=2",
"yii2mod/yii2-cms": "<1.9.2",
- "yiisoft/yii": "<1.1.27",
+ "yiisoft/yii": "<1.1.29",
"yiisoft/yii2": "<2.0.38",
+ "yiisoft/yii2-authclient": "<2.2.15",
"yiisoft/yii2-bootstrap": "<2.0.4",
"yiisoft/yii2-dev": "<2.0.43",
"yiisoft/yii2-elasticsearch": "<2.0.5",
@@ -1153,11 +1338,13 @@
"yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6",
"yoast-seo-for-typo3/yoast_seo": "<7.2.3",
"yourls/yourls": "<=1.8.2",
+ "yuan1994/tpadmin": "<=1.3.12",
+ "zencart/zencart": "<=1.5.7.0-beta",
"zendesk/zendesk_api_client_php": "<2.2.11",
"zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
"zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
"zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
- "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5",
+ "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5",
"zendframework/zend-developer-tools": ">=1.2.2,<1.2.3",
"zendframework/zend-diactoros": "<1.8.4",
"zendframework/zend-feed": "<2.10.3",
@@ -1165,7 +1352,7 @@
"zendframework/zend-http": "<2.8.1",
"zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6",
"zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3",
- "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2",
+ "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2",
"zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1",
"zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4",
"zendframework/zend-validator": ">=2.3,<2.3.6",
@@ -1173,15 +1360,24 @@
"zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
"zendframework/zendframework": "<=3",
"zendframework/zendframework1": "<1.12.20",
- "zendframework/zendopenid": ">=2,<2.0.2",
+ "zendframework/zendopenid": "<2.0.2",
+ "zendframework/zendrest": "<2.0.2",
+ "zendframework/zendservice-amazon": "<2.0.3",
+ "zendframework/zendservice-api": "<1",
+ "zendframework/zendservice-audioscrobbler": "<2.0.2",
+ "zendframework/zendservice-nirvanix": "<2.0.2",
+ "zendframework/zendservice-slideshare": "<2.0.2",
+ "zendframework/zendservice-technorati": "<2.0.2",
+ "zendframework/zendservice-windowsazure": "<2.0.2",
"zendframework/zendxml": ">=1,<1.0.1",
+ "zenstruck/collection": "<0.2.1",
"zetacomponents/mail": "<1.8.2",
"zf-commons/zfc-user": "<1.2.2",
"zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
"zfr/zfr-oauth2-server-module": "<0.1.2",
- "zoujingli/thinkadmin": "<6.0.22"
+ "zoujingli/thinkadmin": "<=6.1.53"
},
- "time": "2023-03-27T09:04:40+00:00",
+ "time": "2024-04-26T17:04:41+00:00",
"default-branch": true,
"type": "metapackage",
"notification-url": "https://packagist.org/downloads/",
diff --git a/oc-includes/vendor/composer/installed.php b/oc-includes/vendor/composer/installed.php
index 8365fb537..bf118a201 100644
--- a/oc-includes/vendor/composer/installed.php
+++ b/oc-includes/vendor/composer/installed.php
@@ -3,7 +3,7 @@
'name' => 'mindstellar/osclass',
'pretty_version' => 'dev-develop',
'version' => 'dev-develop',
- 'reference' => 'b5c43d753c182e363bcf5a545eb5edc40d7c902e',
+ 'reference' => '6d48aad6ad239f1d9e43a223cbfbb58b50d87966',
'type' => 'project',
'install_path' => __DIR__ . '/../../../',
'aliases' => array(),
@@ -11,18 +11,18 @@
),
'versions' => array(
'ezyang/htmlpurifier' => array(
- 'pretty_version' => 'v4.15.0',
- 'version' => '4.15.0.0',
- 'reference' => '8d9f4c9ec154922ff19690ffade9ed915b27a017',
+ 'pretty_version' => 'v4.17.0',
+ 'version' => '4.17.0.0',
+ 'reference' => 'bbc513d79acf6691fa9cf10f192c90dd2957f18c',
'type' => 'library',
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
'aliases' => array(),
'dev_requirement' => false,
),
'gettext/gettext' => array(
- 'pretty_version' => 'v4.8.8',
- 'version' => '4.8.8.0',
- 'reference' => '302a00aa9d6762c92c884d879c15d3ed05d6a37d',
+ 'pretty_version' => 'v4.8.11',
+ 'version' => '4.8.11.0',
+ 'reference' => 'b632aaf5e4579d0b2ae8bc61785e238bff4c5156',
'type' => 'library',
'install_path' => __DIR__ . '/../gettext/gettext',
'aliases' => array(),
@@ -49,7 +49,7 @@
'mindstellar/osclass' => array(
'pretty_version' => 'dev-develop',
'version' => 'dev-develop',
- 'reference' => 'b5c43d753c182e363bcf5a545eb5edc40d7c902e',
+ 'reference' => '6d48aad6ad239f1d9e43a223cbfbb58b50d87966',
'type' => 'project',
'install_path' => __DIR__ . '/../../../',
'aliases' => array(),
@@ -83,18 +83,18 @@
'dev_requirement' => false,
),
'phpseclib/mcrypt_compat' => array(
- 'pretty_version' => '1.0.15',
- 'version' => '1.0.15.0',
- 'reference' => '077eccc6970b723c00a30d95c70d67f892df0de7',
+ 'pretty_version' => '1.0.17',
+ 'version' => '1.0.17.0',
+ 'reference' => '1f89c26026da56334a88871b9148bbd8220e94fe',
'type' => 'library',
'install_path' => __DIR__ . '/../phpseclib/mcrypt_compat',
'aliases' => array(),
'dev_requirement' => false,
),
'phpseclib/phpseclib' => array(
- 'pretty_version' => '2.0.42',
- 'version' => '2.0.42.0',
- 'reference' => '665d289f59e646a259ebf13f29be7f6f54cab24b',
+ 'pretty_version' => '2.0.47',
+ 'version' => '2.0.47.0',
+ 'reference' => 'b7d7d90ee7df7f33a664b4aea32d50a305d35adb',
'type' => 'library',
'install_path' => __DIR__ . '/../phpseclib/phpseclib',
'aliases' => array(),
@@ -103,7 +103,7 @@
'roave/security-advisories' => array(
'pretty_version' => 'dev-latest',
'version' => 'dev-latest',
- 'reference' => '08c832d96735c46a9d5849a5412fc4304e12d242',
+ 'reference' => 'c9920ef42818bc65373cec1acc26bdee7a487e72',
'type' => 'metapackage',
'install_path' => NULL,
'aliases' => array(
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/VERSION b/oc-includes/vendor/ezyang/htmlpurifier/VERSION
index f029ee574..8643e7227 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/VERSION
+++ b/oc-includes/vendor/ezyang/htmlpurifier/VERSION
@@ -1 +1 @@
-4.15.0
\ No newline at end of file
+4.17.0
\ No newline at end of file
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/composer.json b/oc-includes/vendor/ezyang/htmlpurifier/composer.json
index d75582950..ed46bd5cf 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/composer.json
+++ b/oc-includes/vendor/ezyang/htmlpurifier/composer.json
@@ -13,7 +13,7 @@
}
],
"require": {
- "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -38,7 +38,8 @@
"repositories": [
{
"type": "vcs",
- "url": "https://github.com/ezyang/simpletest.git"
+ "url": "https://github.com/ezyang/simpletest.git",
+ "no-api": true
}
]
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
index 47ee0133d..77ebf2de7 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
@@ -7,7 +7,7 @@
* primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
* FILE, changes will be overwritten the next time the script is run.
*
- * @version 4.15.0
+ * @version 4.17.0
*
* @warning
* You must *not* include any other HTML Purifier files before this file,
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
index 26f061276..5c14a335d 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
@@ -19,7 +19,7 @@
*/
/*
- HTML Purifier 4.15.0 - Standards Compliant HTML Filtering
+ HTML Purifier 4.17.0 - Standards Compliant HTML Filtering
Copyright (C) 2006-2008 Edward Z. Yang
This library is free software; you can redistribute it and/or
@@ -58,12 +58,12 @@ class HTMLPurifier
* Version of HTML Purifier.
* @type string
*/
- public $version = '4.15.0';
+ public $version = '4.17.0';
/**
* Constant with version of HTML Purifier.
*/
- const VERSION = '4.15.0';
+ const VERSION = '4.17.0';
/**
* Global configuration object.
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
index 74e24c881..f1ff11636 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
@@ -10,23 +10,21 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
public function __construct()
{
- $this->mask = '_- ';
- for ($c = 'a'; $c <= 'z'; $c++) {
- $this->mask .= $c;
- }
- for ($c = 'A'; $c <= 'Z'; $c++) {
- $this->mask .= $c;
- }
- for ($c = '0'; $c <= '9'; $c++) {
- $this->mask .= $c;
- } // cast-y, but should be fine
- // special bytes used by UTF-8
- for ($i = 0x80; $i <= 0xFF; $i++) {
- // We don't bother excluding invalid bytes in this range,
- // because the our restriction of well-formed UTF-8 will
- // prevent these from ever occurring.
- $this->mask .= chr($i);
- }
+ // Lowercase letters
+ $l = range('a', 'z');
+ // Uppercase letters
+ $u = range('A', 'Z');
+ // Digits
+ $d = range('0', '9');
+ // Special bytes used by UTF-8
+ $b = array_map('chr', range(0x80, 0xFF));
+ // All valid characters for the mask
+ $c = array_merge($l, $u, $d, $b);
+ // Concatenate all valid characters into a string
+ // Use '_- ' as an initial value
+ $this->mask = array_reduce($c, function ($carry, $value) {
+ return $carry . $value;
+ }, '_- ');
/*
PHP's internal strcspn implementation is
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
index 1beeaa5d2..ddc5dfbea 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
@@ -106,7 +106,7 @@ public function validate($string, $config, $context)
// If we have Net_IDNA2 support, we can support IRIs by
// punycoding them. (This is the most portable thing to do,
// since otherwise we have to assume browsers support
- } elseif ($config->get('Core.EnableIDNA')) {
+ } elseif ($config->get('Core.EnableIDNA') && class_exists('Net_IDNA2')) {
$idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true));
// we need to encode each period separately
$parts = explode('.', $string);
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
index dd63ea89c..cc30ab8c3 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
@@ -33,7 +33,11 @@ public function transform($attr, $config, $context)
// XXX Kind of inefficient
$url = $this->parser->parse($attr['href']);
- $scheme = $url->getSchemeObj($config, $context);
+
+ // Ignore invalid schemes (e.g. `javascript:`)
+ if (!($scheme = $url->getSchemeObj($config, $context))) {
+ return $attr;
+ }
if ($scheme->browsable && !$url->isBenign($config, $context)) {
$attr['target'] = '_blank';
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php
index 707122bb2..bd8f9984f 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php
@@ -79,44 +79,11 @@ public static function getPath($class)
public static function registerAutoload()
{
$autoload = array('HTMLPurifier_Bootstrap', 'autoload');
- if (($funcs = spl_autoload_functions()) === false) {
+ if (spl_autoload_functions() === false) {
spl_autoload_register($autoload);
- } elseif (function_exists('spl_autoload_unregister')) {
- if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
- // prepend flag exists, no need for shenanigans
- spl_autoload_register($autoload, true, true);
- } else {
- $buggy = version_compare(PHP_VERSION, '5.2.11', '<');
- $compat = version_compare(PHP_VERSION, '5.1.2', '<=') &&
- version_compare(PHP_VERSION, '5.1.0', '>=');
- foreach ($funcs as $func) {
- if ($buggy && is_array($func)) {
- // :TRICKY: There are some compatibility issues and some
- // places where we need to error out
- $reflector = new ReflectionMethod($func[0], $func[1]);
- if (!$reflector->isStatic()) {
- throw new Exception(
- 'HTML Purifier autoloader registrar is not compatible
- with non-static object methods due to PHP Bug #44144;
- Please do not use HTMLPurifier.autoload.php (or any
- file that includes this file); instead, place the code:
- spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\'))
- after your own autoloaders.'
- );
- }
- // Suprisingly, spl_autoload_register supports the
- // Class::staticMethod callback format, although call_user_func doesn't
- if ($compat) {
- $func = implode('::', $func);
- }
- }
- spl_autoload_unregister($func);
- }
- spl_autoload_register($autoload);
- foreach ($funcs as $func) {
- spl_autoload_register($func);
- }
- }
+ } else {
+ // prepend flag exists, no need for shenanigans
+ spl_autoload_register($autoload, true, true);
}
}
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
index 3f08b81c5..1bc419c53 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
@@ -13,7 +13,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
* Assoc array of attribute name to definition object.
* @type HTMLPurifier_AttrDef[]
*/
- public $info = array();
+ public $info = [];
/**
* Constructs the info array. The meat of this class.
@@ -22,7 +22,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
protected function doSetup($config)
{
$this->info['text-align'] = new HTMLPurifier_AttrDef_Enum(
- array('left', 'right', 'center', 'justify'),
+ ['left', 'right', 'center', 'justify'],
false
);
@@ -31,7 +31,7 @@ protected function doSetup($config)
$this->info['border-right-style'] =
$this->info['border-left-style'] =
$this->info['border-top-style'] = new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'none',
'hidden',
'dotted',
@@ -42,42 +42,42 @@ protected function doSetup($config)
'ridge',
'inset',
'outset'
- ),
+ ],
false
);
$this->info['border-style'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_style);
$this->info['clear'] = new HTMLPurifier_AttrDef_Enum(
- array('none', 'left', 'right', 'both'),
+ ['none', 'left', 'right', 'both'],
false
);
$this->info['float'] = new HTMLPurifier_AttrDef_Enum(
- array('none', 'left', 'right'),
+ ['none', 'left', 'right'],
false
);
$this->info['font-style'] = new HTMLPurifier_AttrDef_Enum(
- array('normal', 'italic', 'oblique'),
+ ['normal', 'italic', 'oblique'],
false
);
$this->info['font-variant'] = new HTMLPurifier_AttrDef_Enum(
- array('normal', 'small-caps'),
+ ['normal', 'small-caps'],
false
);
$uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('none')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['none']),
new HTMLPurifier_AttrDef_CSS_URI()
- )
+ ]
);
$this->info['list-style-position'] = new HTMLPurifier_AttrDef_Enum(
- array('inside', 'outside'),
+ ['inside', 'outside'],
false
);
$this->info['list-style-type'] = new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'disc',
'circle',
'square',
@@ -87,7 +87,7 @@ protected function doSetup($config)
'lower-alpha',
'upper-alpha',
'none'
- ),
+ ],
false
);
$this->info['list-style-image'] = $uri_or_none;
@@ -95,34 +95,34 @@ protected function doSetup($config)
$this->info['list-style'] = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
$this->info['text-transform'] = new HTMLPurifier_AttrDef_Enum(
- array('capitalize', 'uppercase', 'lowercase', 'none'),
+ ['capitalize', 'uppercase', 'lowercase', 'none'],
false
);
$this->info['color'] = new HTMLPurifier_AttrDef_CSS_Color();
$this->info['background-image'] = $uri_or_none;
$this->info['background-repeat'] = new HTMLPurifier_AttrDef_Enum(
- array('repeat', 'repeat-x', 'repeat-y', 'no-repeat')
+ ['repeat', 'repeat-x', 'repeat-y', 'no-repeat']
);
$this->info['background-attachment'] = new HTMLPurifier_AttrDef_Enum(
- array('scroll', 'fixed')
+ ['scroll', 'fixed']
);
$this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
$this->info['background-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'auto',
'cover',
'contain',
'initial',
'inherit',
- )
+ ]
),
new HTMLPurifier_AttrDef_CSS_Percentage(),
new HTMLPurifier_AttrDef_CSS_Length()
- )
+ ]
);
$border_color =
@@ -131,10 +131,10 @@ protected function doSetup($config)
$this->info['border-left-color'] =
$this->info['border-right-color'] =
$this->info['background-color'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('transparent')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['transparent']),
new HTMLPurifier_AttrDef_CSS_Color()
- )
+ ]
);
$this->info['background'] = new HTMLPurifier_AttrDef_CSS_Background($config);
@@ -146,32 +146,32 @@ protected function doSetup($config)
$this->info['border-bottom-width'] =
$this->info['border-left-width'] =
$this->info['border-right-width'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['thin', 'medium', 'thick']),
new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative
- )
+ ]
);
$this->info['border-width'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_width);
$this->info['letter-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('normal')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['normal']),
new HTMLPurifier_AttrDef_CSS_Length()
- )
+ ]
);
$this->info['word-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('normal')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['normal']),
new HTMLPurifier_AttrDef_CSS_Length()
- )
+ ]
);
$this->info['font-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'xx-small',
'x-small',
'small',
@@ -181,20 +181,20 @@ protected function doSetup($config)
'xx-large',
'larger',
'smaller'
- )
+ ]
),
new HTMLPurifier_AttrDef_CSS_Percentage(),
new HTMLPurifier_AttrDef_CSS_Length()
- )
+ ]
);
$this->info['line-height'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
- new HTMLPurifier_AttrDef_Enum(array('normal')),
+ [
+ new HTMLPurifier_AttrDef_Enum(['normal']),
new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives
new HTMLPurifier_AttrDef_CSS_Length('0'),
new HTMLPurifier_AttrDef_CSS_Percentage(true)
- )
+ ]
);
$margin =
@@ -202,11 +202,11 @@ protected function doSetup($config)
$this->info['margin-bottom'] =
$this->info['margin-left'] =
$this->info['margin-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage(),
- new HTMLPurifier_AttrDef_Enum(array('auto'))
- )
+ new HTMLPurifier_AttrDef_Enum(['auto'])
+ ]
);
$this->info['margin'] = new HTMLPurifier_AttrDef_CSS_Multiple($margin);
@@ -217,41 +217,41 @@ protected function doSetup($config)
$this->info['padding-bottom'] =
$this->info['padding-left'] =
$this->info['padding-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0'),
new HTMLPurifier_AttrDef_CSS_Percentage(true)
- )
+ ]
);
$this->info['padding'] = new HTMLPurifier_AttrDef_CSS_Multiple($padding);
$this->info['text-indent'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
- )
+ ]
);
$trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0'),
new HTMLPurifier_AttrDef_CSS_Percentage(true),
- new HTMLPurifier_AttrDef_Enum(array('auto', 'initial', 'inherit'))
- )
+ new HTMLPurifier_AttrDef_Enum(['auto', 'initial', 'inherit'])
+ ]
);
$trusted_min_wh = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0'),
new HTMLPurifier_AttrDef_CSS_Percentage(true),
- new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
- )
+ new HTMLPurifier_AttrDef_Enum(['initial', 'inherit'])
+ ]
);
$trusted_max_wh = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0'),
new HTMLPurifier_AttrDef_CSS_Percentage(true),
- new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
- )
+ new HTMLPurifier_AttrDef_Enum(['none', 'initial', 'inherit'])
+ ]
);
$max = $config->get('CSS.MaxImgLength');
@@ -263,10 +263,10 @@ protected function doSetup($config)
'img',
// For img tags:
new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
- new HTMLPurifier_AttrDef_Enum(array('auto'))
- )
+ new HTMLPurifier_AttrDef_Enum(['auto'])
+ ]
),
// For everyone else:
$trusted_wh
@@ -279,10 +279,10 @@ protected function doSetup($config)
'img',
// For img tags:
new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
- new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
- )
+ new HTMLPurifier_AttrDef_Enum(['initial', 'inherit'])
+ ]
),
// For everyone else:
$trusted_min_wh
@@ -295,22 +295,39 @@ protected function doSetup($config)
'img',
// For img tags:
new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
- new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
- )
+ new HTMLPurifier_AttrDef_Enum(['none', 'initial', 'inherit'])
+ ]
),
// For everyone else:
$trusted_max_wh
);
+ // text-decoration and related shorthands
$this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration();
+ $this->info['text-decoration-line'] = new HTMLPurifier_AttrDef_Enum(
+ ['none', 'underline', 'overline', 'line-through', 'initial', 'inherit']
+ );
+
+ $this->info['text-decoration-style'] = new HTMLPurifier_AttrDef_Enum(
+ ['solid', 'double', 'dotted', 'dashed', 'wavy', 'initial', 'inherit']
+ );
+
+ $this->info['text-decoration-color'] = new HTMLPurifier_AttrDef_CSS_Color();
+
+ $this->info['text-decoration-thickness'] = new HTMLPurifier_AttrDef_CSS_Composite([
+ new HTMLPurifier_AttrDef_CSS_Length(),
+ new HTMLPurifier_AttrDef_CSS_Percentage(),
+ new HTMLPurifier_AttrDef_Enum(['auto', 'from-font', 'initial', 'inherit'])
+ ]);
+
$this->info['font-family'] = new HTMLPurifier_AttrDef_CSS_FontFamily();
// this could use specialized code
$this->info['font-weight'] = new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'normal',
'bold',
'bolder',
@@ -324,7 +341,7 @@ protected function doSetup($config)
'700',
'800',
'900'
- ),
+ ],
false
);
@@ -340,21 +357,21 @@ protected function doSetup($config)
$this->info['border-right'] = new HTMLPurifier_AttrDef_CSS_Border($config);
$this->info['border-collapse'] = new HTMLPurifier_AttrDef_Enum(
- array('collapse', 'separate')
+ ['collapse', 'separate']
);
$this->info['caption-side'] = new HTMLPurifier_AttrDef_Enum(
- array('top', 'bottom')
+ ['top', 'bottom']
);
$this->info['table-layout'] = new HTMLPurifier_AttrDef_Enum(
- array('auto', 'fixed')
+ ['auto', 'fixed']
);
$this->info['vertical-align'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'baseline',
'sub',
'super',
@@ -363,11 +380,11 @@ protected function doSetup($config)
'middle',
'bottom',
'text-bottom'
- )
+ ]
),
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
- )
+ ]
);
$this->info['border-spacing'] = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2);
@@ -375,7 +392,7 @@ protected function doSetup($config)
// These CSS properties don't work on many browsers, but we live
// in THE FUTURE!
$this->info['white-space'] = new HTMLPurifier_AttrDef_Enum(
- array('nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line')
+ ['nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line']
);
if ($config->get('CSS.Proprietary')) {
@@ -422,21 +439,21 @@ protected function doSetupProprietary($config)
// more CSS3
$this->info['page-break-after'] =
$this->info['page-break-before'] = new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'auto',
'always',
'avoid',
'left',
'right'
- )
+ ]
);
- $this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid'));
+ $this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(['auto', 'avoid']);
$border_radius = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Percentage(true), // disallow negative
new HTMLPurifier_AttrDef_CSS_Length('0') // disallow negative
- ));
+ ]);
$this->info['border-top-left-radius'] =
$this->info['border-top-right-radius'] =
@@ -453,7 +470,7 @@ protected function doSetupProprietary($config)
protected function doSetupTricky($config)
{
$this->info['display'] = new HTMLPurifier_AttrDef_Enum(
- array(
+ [
'inline',
'block',
'list-item',
@@ -472,12 +489,12 @@ protected function doSetupTricky($config)
'table-cell',
'table-caption',
'none'
- )
+ ]
);
$this->info['visibility'] = new HTMLPurifier_AttrDef_Enum(
- array('visible', 'hidden', 'collapse')
+ ['visible', 'hidden', 'collapse']
);
- $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll'));
+ $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(['visible', 'hidden', 'auto', 'scroll']);
$this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue();
}
@@ -487,23 +504,23 @@ protected function doSetupTricky($config)
protected function doSetupTrusted($config)
{
$this->info['position'] = new HTMLPurifier_AttrDef_Enum(
- array('static', 'relative', 'absolute', 'fixed')
+ ['static', 'relative', 'absolute', 'fixed']
);
$this->info['top'] =
$this->info['left'] =
$this->info['right'] =
$this->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage(),
- new HTMLPurifier_AttrDef_Enum(array('auto')),
- )
+ new HTMLPurifier_AttrDef_Enum(['auto']),
+ ]
);
$this->info['z-index'] = new HTMLPurifier_AttrDef_CSS_Composite(
- array(
+ [
new HTMLPurifier_AttrDef_Integer(),
- new HTMLPurifier_AttrDef_Enum(array('auto')),
- )
+ new HTMLPurifier_AttrDef_Enum(['auto']),
+ ]
);
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
index 797d26877..f7511ca41 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
@@ -21,7 +21,7 @@ class HTMLPurifier_Config
* HTML Purifier's version
* @type string
*/
- public $version = '4.15.0';
+ public $version = '4.17.0';
/**
* Whether or not to automatically finalize
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
index b82c6bb20..bfad967fb 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
@@ -287,13 +287,14 @@ private function _testPermissions($dir, $chmod)
} elseif (filegroup($dir) === posix_getgid()) {
$chmod = $chmod | 0070;
} else {
- // PHP's probably running as nobody, so we'll
- // need to give global permissions
- $chmod = $chmod | 0777;
+ // PHP's probably running as nobody, it is
+ // not obvious how to fix this (777 is probably
+ // bad if you are multi-user), let the user figure it out
+ $chmod = null;
}
trigger_error(
- 'Directory ' . $dir . ' not writable, ' .
- 'please chmod to ' . decoct($chmod),
+ 'Directory ' . $dir . ' not writable. ' .
+ ($chmod === null ? '' : 'Please chmod to ' . decoct($chmod)),
E_USER_WARNING
);
} else {
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
index fd1cc9be4..3a0f4616a 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php
@@ -71,7 +71,7 @@ public function create($type, $config)
return $this->caches[$method][$type];
}
if (isset($this->implementations[$method]) &&
- class_exists($class = $this->implementations[$method], false)) {
+ class_exists($class = $this->implementations[$method])) {
$cache = new $class($type);
} else {
if ($method != 'Serializer') {
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
index 66f70b0fc..6f8e7790e 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php
@@ -146,175 +146,179 @@ public function cleanCSS($css, $config, $context)
foreach ($this->_tidy->css as $k => $decls) {
// $decls are all CSS declarations inside an @ selector
$new_decls = array();
- foreach ($decls as $selector => $style) {
- $selector = trim($selector);
- if ($selector === '') {
- continue;
- } // should not happen
- // Parse the selector
- // Here is the relevant part of the CSS grammar:
- //
- // ruleset
- // : selector [ ',' S* selector ]* '{' ...
- // selector
- // : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
- // combinator
- // : '+' S*
- // : '>' S*
- // simple_selector
- // : element_name [ HASH | class | attrib | pseudo ]*
- // | [ HASH | class | attrib | pseudo ]+
- // element_name
- // : IDENT | '*'
- // ;
- // class
- // : '.' IDENT
- // ;
- // attrib
- // : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*
- // [ IDENT | STRING ] S* ]? ']'
- // ;
- // pseudo
- // : ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]
- // ;
- //
- // For reference, here are the relevant tokens:
- //
- // HASH #{name}
- // IDENT {ident}
- // INCLUDES ==
- // DASHMATCH |=
- // STRING {string}
- // FUNCTION {ident}\(
- //
- // And the lexical scanner tokens
- //
- // name {nmchar}+
- // nmchar [_a-z0-9-]|{nonascii}|{escape}
- // nonascii [\240-\377]
- // escape {unicode}|\\[^\r\n\f0-9a-f]
- // unicode \\{h}}{1,6}(\r\n|[ \t\r\n\f])?
- // ident -?{nmstart}{nmchar*}
- // nmstart [_a-z]|{nonascii}|{escape}
- // string {string1}|{string2}
- // string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
- // string2 \'([^\n\r\f\\"]|\\{nl}|{escape})*\'
- //
- // We'll implement a subset (in order to reduce attack
- // surface); in particular:
- //
- // - No Unicode support
- // - No escapes support
- // - No string support (by proxy no attrib support)
- // - element_name is matched against allowed
- // elements (some people might find this
- // annoying...)
- // - Pseudo-elements one of :first-child, :link,
- // :visited, :active, :hover, :focus
+ if (is_array($decls)) {
+ foreach ($decls as $selector => $style) {
+ $selector = trim($selector);
+ if ($selector === '') {
+ continue;
+ } // should not happen
+ // Parse the selector
+ // Here is the relevant part of the CSS grammar:
+ //
+ // ruleset
+ // : selector [ ',' S* selector ]* '{' ...
+ // selector
+ // : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
+ // combinator
+ // : '+' S*
+ // : '>' S*
+ // simple_selector
+ // : element_name [ HASH | class | attrib | pseudo ]*
+ // | [ HASH | class | attrib | pseudo ]+
+ // element_name
+ // : IDENT | '*'
+ // ;
+ // class
+ // : '.' IDENT
+ // ;
+ // attrib
+ // : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*
+ // [ IDENT | STRING ] S* ]? ']'
+ // ;
+ // pseudo
+ // : ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]
+ // ;
+ //
+ // For reference, here are the relevant tokens:
+ //
+ // HASH #{name}
+ // IDENT {ident}
+ // INCLUDES ==
+ // DASHMATCH |=
+ // STRING {string}
+ // FUNCTION {ident}\(
+ //
+ // And the lexical scanner tokens
+ //
+ // name {nmchar}+
+ // nmchar [_a-z0-9-]|{nonascii}|{escape}
+ // nonascii [\240-\377]
+ // escape {unicode}|\\[^\r\n\f0-9a-f]
+ // unicode \\{h}}{1,6}(\r\n|[ \t\r\n\f])?
+ // ident -?{nmstart}{nmchar*}
+ // nmstart [_a-z]|{nonascii}|{escape}
+ // string {string1}|{string2}
+ // string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
+ // string2 \'([^\n\r\f\\"]|\\{nl}|{escape})*\'
+ //
+ // We'll implement a subset (in order to reduce attack
+ // surface); in particular:
+ //
+ // - No Unicode support
+ // - No escapes support
+ // - No string support (by proxy no attrib support)
+ // - element_name is matched against allowed
+ // elements (some people might find this
+ // annoying...)
+ // - Pseudo-elements one of :first-child, :link,
+ // :visited, :active, :hover, :focus
- // handle ruleset
- $selectors = array_map('trim', explode(',', $selector));
- $new_selectors = array();
- foreach ($selectors as $sel) {
- // split on +, > and spaces
- $basic_selectors = preg_split('/\s*([+> ])\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
- // even indices are chunks, odd indices are
- // delimiters
- $nsel = null;
- $delim = null; // guaranteed to be non-null after
- // two loop iterations
- for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
- $x = $basic_selectors[$i];
- if ($i % 2) {
- // delimiter
- if ($x === ' ') {
- $delim = ' ';
- } else {
- $delim = ' ' . $x . ' ';
- }
- } else {
- // simple selector
- $components = preg_split('/([#.:])/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
- $sdelim = null;
- $nx = null;
- for ($j = 0, $cc = count($components); $j < $cc; $j++) {
- $y = $components[$j];
- if ($j === 0) {
- if ($y === '*' || isset($html_definition->info[$y = strtolower($y)])) {
- $nx = $y;
- } else {
- // $nx stays null; this matters
- // if we don't manage to find
- // any valid selector content,
- // in which case we ignore the
- // outer $delim
- }
- } elseif ($j % 2) {
- // set delimiter
- $sdelim = $y;
+ // handle ruleset
+ $selectors = array_map('trim', explode(',', $selector));
+ $new_selectors = array();
+ foreach ($selectors as $sel) {
+ // split on +, > and spaces
+ $basic_selectors = preg_split('/\s*([+> ])\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
+ // even indices are chunks, odd indices are
+ // delimiters
+ $nsel = null;
+ $delim = null; // guaranteed to be non-null after
+ // two loop iterations
+ for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
+ $x = $basic_selectors[$i];
+ if ($i % 2) {
+ // delimiter
+ if ($x === ' ') {
+ $delim = ' ';
} else {
- $attrdef = null;
- if ($sdelim === '#') {
- $attrdef = $this->_id_attrdef;
- } elseif ($sdelim === '.') {
- $attrdef = $this->_class_attrdef;
- } elseif ($sdelim === ':') {
- $attrdef = $this->_enum_attrdef;
+ $delim = ' ' . $x . ' ';
+ }
+ } else {
+ // simple selector
+ $components = preg_split('/([#.:])/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
+ $sdelim = null;
+ $nx = null;
+ for ($j = 0, $cc = count($components); $j < $cc; $j++) {
+ $y = $components[$j];
+ if ($j === 0) {
+ if ($y === '*' || isset($html_definition->info[$y = strtolower($y)])) {
+ $nx = $y;
+ } else {
+ // $nx stays null; this matters
+ // if we don't manage to find
+ // any valid selector content,
+ // in which case we ignore the
+ // outer $delim
+ }
+ } elseif ($j % 2) {
+ // set delimiter
+ $sdelim = $y;
} else {
- throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
- }
- $r = $attrdef->validate($y, $config, $context);
- if ($r !== false) {
- if ($r !== true) {
- $y = $r;
+ $attrdef = null;
+ if ($sdelim === '#') {
+ $attrdef = $this->_id_attrdef;
+ } elseif ($sdelim === '.') {
+ $attrdef = $this->_class_attrdef;
+ } elseif ($sdelim === ':') {
+ $attrdef = $this->_enum_attrdef;
+ } else {
+ throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
}
- if ($nx === null) {
- $nx = '';
+ $r = $attrdef->validate($y, $config, $context);
+ if ($r !== false) {
+ if ($r !== true) {
+ $y = $r;
+ }
+ if ($nx === null) {
+ $nx = '';
+ }
+ $nx .= $sdelim . $y;
}
- $nx .= $sdelim . $y;
}
}
- }
- if ($nx !== null) {
- if ($nsel === null) {
- $nsel = $nx;
+ if ($nx !== null) {
+ if ($nsel === null) {
+ $nsel = $nx;
+ } else {
+ $nsel .= $delim . $nx;
+ }
} else {
- $nsel .= $delim . $nx;
+ // delimiters to the left of invalid
+ // basic selector ignored
}
- } else {
- // delimiters to the left of invalid
- // basic selector ignored
}
}
- }
- if ($nsel !== null) {
- if (!empty($scopes)) {
- foreach ($scopes as $s) {
- $new_selectors[] = "$s $nsel";
+ if ($nsel !== null) {
+ if (!empty($scopes)) {
+ foreach ($scopes as $s) {
+ $new_selectors[] = "$s $nsel";
+ }
+ } else {
+ $new_selectors[] = $nsel;
}
- } else {
- $new_selectors[] = $nsel;
}
}
- }
- if (empty($new_selectors)) {
- continue;
- }
- $selector = implode(', ', $new_selectors);
- foreach ($style as $name => $value) {
- if (!isset($css_definition->info[$name])) {
- unset($style[$name]);
+ if (empty($new_selectors)) {
continue;
}
- $def = $css_definition->info[$name];
- $ret = $def->validate($value, $config, $context);
- if ($ret === false) {
- unset($style[$name]);
- } else {
- $style[$name] = $ret;
+ $selector = implode(', ', $new_selectors);
+ foreach ($style as $name => $value) {
+ if (!isset($css_definition->info[$name])) {
+ unset($style[$name]);
+ continue;
+ }
+ $def = $css_definition->info[$name];
+ $ret = $def->validate($value, $config, $context);
+ if ($ret === false) {
+ unset($style[$name]);
+ } else {
+ $style[$name] = $ret;
+ }
}
+ $new_decls[$selector] = $style;
}
- $new_decls[$selector] = $style;
+ } else {
+ continue;
}
$new_css[$k] = $new_decls;
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
index 12173ba70..76fd93a6c 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php
@@ -221,6 +221,7 @@ public function getFixType($name)
*/
public function makeFixes()
{
+ return array();
}
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
index 4e35272d8..16a4f6932 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php
@@ -109,7 +109,7 @@ public function create($config, $context, $code = false)
} else {
$class = 'HTMLPurifier_Language_' . $pcode;
$file = $this->dir . '/Language/classes/' . $code . '.php';
- if (file_exists($file) || class_exists($class, false)) {
+ if (file_exists($file) || class_exists($class)) {
$lang = new $class($config, $context);
} else {
// Go fallback
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
index c21f36491..1f552a17a 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php
@@ -101,7 +101,7 @@ public static function create($config)
break;
}
- if (class_exists('DOMDocument', false) &&
+ if (class_exists('DOMDocument') &&
method_exists('DOMDocument', 'loadHTML') &&
!extension_loaded('domxml')
) {
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
index ca5f25b84..5e8104be9 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
@@ -104,7 +104,6 @@ public function tokenizeHTML($html, $config, $context)
* To iterate is human, to recurse divine - L. Peter Deutsch
* @param DOMNode $node DOMNode to be tokenized.
* @param HTMLPurifier_Token[] $tokens Array-list of already tokenized tokens.
- * @return HTMLPurifier_Token of node appended to previously passed tokens.
*/
protected function tokenizeDOM($node, &$tokens, $config)
{
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
index 33ae11397..4c3ce1758 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php
@@ -32,6 +32,11 @@ class HTMLPurifier_Printer_ConfigForm extends HTMLPurifier_Printer
*/
protected $compress = false;
+ /**
+ * @var HTMLPurifier_Config
+ */
+ protected $genConfig;
+
/**
* @param string $name Form element name for directives to be stuffed into
* @param string $doc_url String documentation URL, will have fragment tagged on
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php
index 8cd193352..dfad8efcf 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php
@@ -33,11 +33,11 @@ public function doValidate(&$uri, $config, $context)
$uri->host = null;
$uri->port = null;
- // Delete all non-numeric characters, non-x characters
+ // Delete all non-numeric characters, commas, and non-x characters
// from phone number, EXCEPT for a leading plus sign.
- $uri->path = preg_replace('/(?!^\+)[^\dx]/', '',
+ $uri->path = preg_replace('/(?!^\+)[^\dx,]/', '',
// Normalize e(x)tension to lower-case
- str_replace('X', 'x', $uri->path));
+ str_replace('X', 'x', rawurldecode($uri->path)));
return true;
}
diff --git a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php
index 166f3bf30..b5a1eab5c 100644
--- a/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php
+++ b/oc-includes/vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php
@@ -261,7 +261,7 @@ private function div($s1, $s2, $scale)
*/
private function round($n, $sigfigs)
{
- $new_log = (int)floor(log(abs($n), 10)); // Number of digits left of decimal - 1
+ $new_log = (int)floor(log(abs((float)$n), 10)); // Number of digits left of decimal - 1
$rp = $sigfigs - $new_log - 1; // Number of decimal places needed
$neg = $n < 0 ? '-' : ''; // Negative sign
if ($this->bcmath) {
@@ -276,7 +276,7 @@ private function round($n, $sigfigs)
}
return $n;
} else {
- return $this->scale(round($n, $sigfigs - $new_log - 1), $rp + 1);
+ return $this->scale(round((float)$n, $sigfigs - $new_log - 1), $rp + 1);
}
}
@@ -300,7 +300,7 @@ private function scale($r, $scale)
// Now we return it, truncating the zero that was rounded off.
return substr($precise, 0, -1) . str_repeat('0', -$scale + 1);
}
- return sprintf('%.' . $scale . 'f', (float)$r);
+ return number_format((float)$r, $scale, '.', '');
}
}
diff --git a/oc-includes/vendor/gettext/gettext/CHANGELOG.md b/oc-includes/vendor/gettext/gettext/CHANGELOG.md
index 01cf571d5..f04bccc1a 100644
--- a/oc-includes/vendor/gettext/gettext/CHANGELOG.md
+++ b/oc-includes/vendor/gettext/gettext/CHANGELOG.md
@@ -1,5 +1,4 @@
# Change Log
-
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
@@ -7,6 +6,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
Previous releases are documented in [github releases](https://github.com/oscarotero/Gettext/releases)
+## [4.8.11] - 2023-08-14
+### Fixed
+- PHP 5.4 support [#289]
+
+## [4.8.10] - 2023-08-10
+### Fixed
+- Previous version was tagged with the incorrect branch.
+
+## [4.8.9] - 2023-08-10
+### Fixed
+- PHP 8.1 deprecation warning [#289]
+
## [4.8.8] - 2022-12-08
### Fixed
- PHP functions prefixed with a slash are being ignored [#284], [#288]
@@ -186,7 +197,11 @@ Previous releases are documented in [github releases](https://github.com/oscarot
[#280]: https://github.com/oscarotero/Gettext/issues/280
[#284]: https://github.com/oscarotero/Gettext/issues/284
[#288]: https://github.com/oscarotero/Gettext/issues/288
+[#289]: https://github.com/oscarotero/Gettext/issues/289
+[4.8.11]: https://github.com/oscarotero/Gettext/compare/v4.8.10...v4.8.11
+[4.8.10]: https://github.com/oscarotero/Gettext/compare/v4.8.9...v4.8.10
+[4.8.9]: https://github.com/oscarotero/Gettext/compare/v4.8.8...v4.8.9
[4.8.8]: https://github.com/oscarotero/Gettext/compare/v4.8.7...v4.8.8
[4.8.7]: https://github.com/oscarotero/Gettext/compare/v4.8.6...v4.8.7
[4.8.6]: https://github.com/oscarotero/Gettext/compare/v4.8.5...v4.8.6
diff --git a/oc-includes/vendor/gettext/gettext/composer.json b/oc-includes/vendor/gettext/gettext/composer.json
index 5c5c2b5c4..289e14f1d 100644
--- a/oc-includes/vendor/gettext/gettext/composer.json
+++ b/oc-includes/vendor/gettext/gettext/composer.json
@@ -50,5 +50,10 @@
"phpunit",
"phpcs"
]
+ },
+ "config": {
+ "allow-plugins": {
+ "kylekatarnls/update-helper": false
+ }
}
}
diff --git a/oc-includes/vendor/gettext/gettext/src/Translations.php b/oc-includes/vendor/gettext/gettext/src/Translations.php
index c852fca5b..0cc085217 100644
--- a/oc-includes/vendor/gettext/gettext/src/Translations.php
+++ b/oc-includes/vendor/gettext/gettext/src/Translations.php
@@ -282,7 +282,7 @@ public function getPluralForms()
public function setHeader($name, $value)
{
$name = trim($name);
- $this->headers[$name] = trim($value);
+ $this->headers[$name] = trim(isset($value) ? $value : '');
return $this;
}
diff --git a/oc-includes/vendor/phpseclib/mcrypt_compat/.github/workflows/ci.yml b/oc-includes/vendor/phpseclib/mcrypt_compat/.github/workflows/ci.yml
new file mode 100644
index 000000000..d981c878f
--- /dev/null
+++ b/oc-includes/vendor/phpseclib/mcrypt_compat/.github/workflows/ci.yml
@@ -0,0 +1,31 @@
+
+name: CI
+on: [push, pull_request]
+
+permissions:
+ contents: read # to fetch code (actions/checkout)
+
+jobs:
+ tests:
+ name: Tests
+ timeout-minutes: 10
+ runs-on: ${{ matrix.os }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-version }}
+ - name: Composer Install
+ run: composer install --no-interaction --no-cache
+ - name: Make Tests Compatiable With PHPUnit 9+
+ if: contains(fromJSON('["7.3", "7.4", "8.0", "8.1", "8.2", "8.3"]'), matrix.php-version)
+ run: php tests/make_compatible_with_phpunit9.php
+ - name: PHPUnit
+ run: vendor/bin/phpunit
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+ php-version: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']
\ No newline at end of file
diff --git a/oc-includes/vendor/phpseclib/mcrypt_compat/README.md b/oc-includes/vendor/phpseclib/mcrypt_compat/README.md
index 5289bda60..afa8dc707 100644
--- a/oc-includes/vendor/phpseclib/mcrypt_compat/README.md
+++ b/oc-includes/vendor/phpseclib/mcrypt_compat/README.md
@@ -1,6 +1,6 @@
# mcrypt_compat
-[](https://app.travis-ci.com/github/phpseclib/mcrypt_compat)
+[](https://github.com/phpseclib/mcrypt_compat/actions/workflows/ci.yml?query=branch%3A1.0)
PHP 5.x-8.x polyfill for mcrypt extension.
@@ -48,3 +48,7 @@ composer require phpseclib/mcrypt_compat
- stream
mcrypt_compat's `ncfb` implementation has some incompatibles with mcrypt's implementation where `mcrypt_generic` and `mdecrypt_generic` are concerned. The unit tests elaborate.
+
+## Emulating older PHP versions
+
+The mcrypt extension's behavior underwent changes as new versions of PHP were released. By default mcrypt_compat emulates the behavior of PHP 7.1 but if you need to emulate how mcrypt behaved in, say, PHP 5.3.0, you may do so by doing `define('PHPSECLIB_MCRYPT_TARGET_VERSION', '5.3.0');` before including vendor/autoload.php (if you're using this with Composer).
\ No newline at end of file
diff --git a/oc-includes/vendor/phpseclib/mcrypt_compat/composer.json b/oc-includes/vendor/phpseclib/mcrypt_compat/composer.json
index 3ca798e2c..6c5fc6014 100644
--- a/oc-includes/vendor/phpseclib/mcrypt_compat/composer.json
+++ b/oc-includes/vendor/phpseclib/mcrypt_compat/composer.json
@@ -22,7 +22,7 @@
},
"require": {
"php": ">=5.3.3",
- "phpseclib/phpseclib": ">=2.0.36 <3.0.0"
+ "phpseclib/phpseclib": ">=2.0.47 <3.0.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4"
diff --git a/oc-includes/vendor/phpseclib/mcrypt_compat/lib/mcrypt.php b/oc-includes/vendor/phpseclib/mcrypt_compat/lib/mcrypt.php
index ccab85050..d014343b5 100644
--- a/oc-includes/vendor/phpseclib/mcrypt_compat/lib/mcrypt.php
+++ b/oc-includes/vendor/phpseclib/mcrypt_compat/lib/mcrypt.php
@@ -773,6 +773,22 @@ function phpseclib_mdecrypt_generic(Base $td, $data)
return phpseclib_mcrypt_generic_helper($td, $data, 'decrypt');
}
+ /**
+ * This function terminates encryption
+ *
+ * Alias of mcrypt_generic_deinit()
+ *
+ * @param Base $td
+ * @return bool
+ * @access public
+ */
+ function phpseclib_mcrypt_generic_end(Base $td)
+ {
+ // https://web.archive.org/web/20180106174656/https://www.php.net/manual/en/function.mcrypt-generic-end.php
+
+ return phpseclib_mcrypt_generic_deinit($td);
+ }
+
/**
* This function deinitializes an encryption module
*
@@ -962,6 +978,47 @@ function phpseclib_mcrypt_module_self_test($algorithm, $lib_dir = '')
return in_array($algorithm, phpseclib_mcrypt_list_algorithms());
}
+ /**
+ * Encrypt / decrypt data using pre PHP 5.6.0 behavior
+ *
+ * Performs checks common to both mcrypt_encrypt and mcrypt_decrypt
+ *
+ * @param string $cipher
+ * @param string $key
+ * @param string $data
+ * @param string $mode
+ * @param string $iv
+ * @param string $op
+ * @return string|bool
+ * @access private
+ */
+ function phpseclib_mcrypt_helper_old($cipher, $key, $data, $mode, $iv, $op)
+ {
+ $td = @phpseclib_mcrypt_module_open($cipher, '', $mode, '');
+ phpseclib_set_key($td, $key);
+
+ $iv_size = phpseclib_mcrypt_enc_get_iv_size($td);
+ if ($iv_size && phpseclib_mcrypt_module_is_iv_mode($mode)) {
+ if (!isset($iv)) {
+ trigger_error(
+ 'mcrypt_' . $op . '(): Attempt to use an empty IV, which is NOT recommended',
+ E_USER_WARNING
+ );
+ $iv = str_repeat("\0", $iv_size);
+ } elseif (strlen($iv) != $iv_size) {
+ trigger_error(
+ 'mcrypt_' . $op . '(): The IV parameter must be as long as the blocksize',
+ E_USER_WARNING
+ );
+ $iv = str_repeat("\0", $iv_size);
+ }
+ } else {
+ $iv = null;
+ }
+ phpseclib_mcrypt_generic_init($td, $key, $iv);
+ return $op == 'encrypt' ? phpseclib_mcrypt_generic($td, $data) : phpseclib_mdecrypt_generic($td, $data);
+ }
+
/**
* Encrypt / decrypt data
*
@@ -1027,6 +1084,85 @@ function phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, $op)
return $op == 'encrypt' ? phpseclib_mcrypt_generic($td, $data) : phpseclib_mdecrypt_generic($td, $data);
}
+ /**
+ * Encrypts/decrypts data in CFB mode
+ *
+ * @param string $cipher
+ * @param string $key
+ * @param string $data
+ * @param int $mode
+ * @param string $iv optional
+ * @return string|bool
+ * @access public
+ */
+ function phpseclib_mcrypt_cfb($cipher, $key, $data, $mode, $iv = null)
+ {
+ // https://web.archive.org/web/20180106174656/https://www.php.net/manual/en/function.mcrypt-cfb.php
+ return $mode == MCRYPT_ENCRYPT ?
+ phpseclib_mcrypt_encrypt($cipher, $key, $data, MCRYPT_MODE_CFB, $iv) :
+ phpseclib_mcrypt_decrypt($cipher, $key, $data, MCRYPT_MODE_CFB, $iv);
+ }
+
+ /**
+ * Encrypts/decrypts data in OFB mode
+ *
+ * @param string $cipher
+ * @param string $key
+ * @param string $data
+ * @param int $mode
+ * @param string $iv optional
+ * @return string|bool
+ * @access public
+ */
+ function phpseclib_mcrypt_ofb($cipher, $key, $data, $mode, $iv = null)
+ {
+ // https://web.archive.org/web/20180106174656/https://www.php.net/manual/en/function.mcrypt-ofb.php
+ return $mode == MCRYPT_ENCRYPT ?
+ phpseclib_mcrypt_encrypt($cipher, $key, $data, MCRYPT_MODE_OFB, $iv) :
+ phpseclib_mcrypt_decrypt($cipher, $key, $data, MCRYPT_MODE_OFB, $iv);
+ }
+
+ /**
+ * Encrypts/decrypts data in CBC mode
+ *
+ * @param string $cipher
+ * @param string $key
+ * @param string $data
+ * @param int $mode
+ * @param string $iv optional
+ * @return string|bool
+ * @access public
+ */
+ function phpseclib_mcrypt_cbc($cipher, $key, $data, $mode, $iv = null)
+ {
+ // https://web.archive.org/web/20180106174656/https://www.php.net/manual/en/function.mcrypt-cbc.php
+ return $mode == MCRYPT_ENCRYPT ?
+ phpseclib_mcrypt_encrypt($cipher, $key, $data, MCRYPT_MODE_CBC, $iv) :
+ phpseclib_mcrypt_decrypt($cipher, $key, $data, MCRYPT_MODE_CBC, $iv);
+ }
+
+ /**
+ * Encrypts/decrypts data in ECB mode
+ *
+ * @param string $cipher
+ * @param string $key
+ * @param string $data
+ * @param int $mode
+ * @param string $iv optional
+ * @return string|bool
+ * @access public
+ */
+ function phpseclib_mcrypt_ecb($cipher, $key, $data, $mode, $iv = null)
+ {
+ // idk why mcrypt_ecb had an $iv parameter when ECB mode doesn't use an IV
+ // but whatever
+
+ // https://web.archive.org/web/20180106174656/https://www.php.net/manual/en/function.mcrypt-ecb.php
+ return $mode == MCRYPT_ENCRYPT ?
+ phpseclib_mcrypt_encrypt($cipher, $key, $data, MCRYPT_MODE_ECB, $iv) :
+ phpseclib_mcrypt_decrypt($cipher, $key, $data, MCRYPT_MODE_ECB, $iv);
+ }
+
/**
* Encrypts plaintext with given parameters
*
@@ -1042,7 +1178,9 @@ function phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, $op)
*/
function phpseclib_mcrypt_encrypt($cipher, $key, $data, $mode, $iv = null)
{
- return phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, 'encrypt');
+ return !defined('PHPSECLIB_MCRYPT_TARGET_VERSION') || version_compare(PHPSECLIB_MCRYPT_TARGET_VERSION, '5.6.0', '>=') ?
+ phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, 'encrypt') :
+ phpseclib_mcrypt_helper_old($cipher, $key, $data, $mode, $iv, 'encrypt');
}
/**
@@ -1060,7 +1198,9 @@ function phpseclib_mcrypt_encrypt($cipher, $key, $data, $mode, $iv = null)
*/
function phpseclib_mcrypt_decrypt($cipher, $key, $data, $mode, $iv = null)
{
- return phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, 'decrypt');
+ return !defined('PHPSECLIB_MCRYPT_TARGET_VERSION') || version_compare(PHPSECLIB_MCRYPT_TARGET_VERSION, '5.6.0', '>=') ?
+ phpseclib_mcrypt_helper($cipher, $key, $data, $mode, $iv, 'decrypt') :
+ phpseclib_mcrypt_helper_old($cipher, $key, $data, $mode, $iv, 'decrypt');
}
/**
@@ -1266,6 +1406,33 @@ public function onClose()
// define
if (!function_exists('mcrypt_list_algorithms')) {
+ if (defined('PHPSECLIB_MCRYPT_TARGET_VERSION') && version_compare(PHPSECLIB_MCRYPT_TARGET_VERSION, '7.0.0', '<')) {
+ function mcrypt_generic_end($td)
+ {
+ return phpseclib_mcrypt_generic_end($td);
+ }
+
+ function mcrypt_ecb($cipher, $key, $data, $mode, $iv = null)
+ {
+ return phpseclib_mcrypt_ecb($cipher, $key, $data, $mode, $iv);
+ }
+
+ function mcrypt_cbc($cipher, $key, $data, $mode, $iv = null)
+ {
+ return phpseclib_mcrypt_cbc($cipher, $key, $data, $mode, $iv);
+ }
+
+ function mcrypt_cfb($cipher, $key, $data, $mode, $iv = null)
+ {
+ return phpseclib_mcrypt_cfb($cipher, $key, $data, $mode, $iv);
+ }
+
+ function mcrypt_ofb($cipher, $key, $data, $mode, $iv = null)
+ {
+ return phpseclib_mcrypt_ofb($cipher, $key, $data, $mode, $iv);
+ }
+ }
+
function mcrypt_list_algorithms($lib_dir = '')
{
return phpseclib_mcrypt_list_algorithms($lib_dir);
diff --git a/oc-includes/vendor/phpseclib/phpseclib/BACKERS.md b/oc-includes/vendor/phpseclib/phpseclib/BACKERS.md
index 5e5c6d99b..efca482ad 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/BACKERS.md
+++ b/oc-includes/vendor/phpseclib/phpseclib/BACKERS.md
@@ -12,4 +12,6 @@ phpseclib ongoing development is made possible by [Tidelift](https://tidelift.co
- [Charles Severance](https://github.com/csev)
- [Rachel Fish](https://github.com/itsrachelfish)
- Tharyrok
-- [cjhaas](https://github.com/cjhaas)
\ No newline at end of file
+- [cjhaas](https://github.com/cjhaas)
+- [istiak-tridip](https://github.com/istiak-tridip)
+- [Anna Filina](https://github.com/afilina)
\ No newline at end of file
diff --git a/oc-includes/vendor/phpseclib/phpseclib/README.md b/oc-includes/vendor/phpseclib/phpseclib/README.md
index 9be5517e6..1bdee151d 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/README.md
+++ b/oc-includes/vendor/phpseclib/phpseclib/README.md
@@ -51,8 +51,7 @@ SSH-2, SFTP, X.509, an arbitrary-precision integer arithmetic library, Ed25519 /
* PHP4 compatible
* Composer compatible (PSR-0 autoloading)
* Install using Composer: `composer require phpseclib/phpseclib:~1.0`
-* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
-* [Download 1.0.20 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.20.zip/download)
+* [Download 1.0.23 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.23.zip/download)
## Security contact information
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
index 7d8cb8b03..9903db105 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php
@@ -84,43 +84,13 @@ function setBlockLength($length)
*/
function setKeyLength($length)
{
- switch ($length) {
- case 160:
- $length = 192;
- break;
- case 224:
- $length = 256;
- }
parent::setKeyLength($length);
- }
-
- /**
- * Sets the key.
- *
- * Rijndael supports five different key lengths, AES only supports three.
- *
- * @see \phpseclib\Crypt\Rijndael:setKey()
- * @see setKeyLength()
- * @access public
- * @param string $key
- */
- function setKey($key)
- {
- parent::setKey($key);
-
- if (!$this->explicit_key_length) {
- $length = strlen($key);
- switch (true) {
- case $length <= 16:
- $this->key_length = 16;
- break;
- case $length <= 24:
- $this->key_length = 24;
- break;
- default:
- $this->key_length = 32;
- }
- $this->_setEngine();
+ switch ($this->key_length) {
+ case 20:
+ $this->key_length = 24;
+ break;
+ case 28:
+ $this->key_length = 32;
}
}
}
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
index 7bb357a7b..ab5944cde 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php
@@ -514,6 +514,8 @@ function __construct($mode = self::MODE_CBC)
switch (true) {
// PHP_OS & "\xDF\xDF\xDF" == strtoupper(substr(PHP_OS, 0, 3)), but a lot faster
case (PHP_OS & "\xDF\xDF\xDF") === 'WIN':
+ case !function_exists('php_uname'):
+ case !is_string(php_uname('m')):
case (php_uname('m') & "\xDF\xDF\xDF") != 'ARM':
case PHP_INT_SIZE == 8:
define('CRYPT_BASE_USE_REG_INTVAL', true);
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
index 248b65ef7..5e5d13d4c 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php
@@ -866,7 +866,7 @@ function _add()
$result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument;
}
- if ((php_uname('m') & "\xDF\xDF\xDF") != 'ARM') {
+ if (function_exists('php_uname') && is_string(php_uname('m')) && (php_uname('m') & "\xDF\xDF\xDF") != 'ARM') {
return fmod($result, $mod);
}
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
index a8fa23156..fec689585 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php
@@ -570,6 +570,7 @@ function createKey($bits = 1024, $timeout = false, $partial = array())
$publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, self::PUBLIC_FORMAT_PKCS1)));
// clear the buffer of error strings stemming from a minimalistic openssl.cnf
+ // https://github.com/php/php-src/issues/11054 talks about other errors this'll pick up
while (openssl_error_string() !== false) {
}
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
index 7a6be2a67..4665738e1 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php
@@ -814,7 +814,6 @@ function _setupInlineCrypt()
// Generating encrypt code:
$init_encrypt.= '
- static $tables;
if (empty($tables)) {
$tables = &$self->_getTables();
}
@@ -871,7 +870,6 @@ function _setupInlineCrypt()
// Generating decrypt code:
$init_decrypt.= '
- static $invtables;
if (empty($invtables)) {
$invtables = &$self->_getInvTables();
}
@@ -928,7 +926,7 @@ function _setupInlineCrypt()
$lambda_functions[$code_hash] = $this->_createInlineCryptFunction(
array(
- 'init_crypt' => '',
+ 'init_crypt' => 'static $tables; static $invtables;',
'init_encrypt' => $init_encrypt,
'init_decrypt' => $init_decrypt,
'encrypt_block' => $encrypt_block,
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
index 22e4d9652..dba99de73 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php
@@ -1176,6 +1176,11 @@ function _decodeOID($content)
$oid = array();
$pos = 0;
$len = strlen($content);
+ // see https://github.com/openjdk/jdk/blob/2deb318c9f047ec5a4b160d66a4b52f93688ec42/src/java.base/share/classes/sun/security/util/ObjectIdentifier.java#L55
+ if ($len > 4096) {
+ //user_error('Object Identifier size is limited to 4096 bytes');
+ return false;
+ }
if (ord($content[$len - 1]) & 0x80) {
return false;
@@ -1441,7 +1446,7 @@ function convert($in, $from = self::TYPE_UTF8_STRING, $to = self::TYPE_UTF8_STRI
return false;
}
break;
- case ($c & 0x80000000) != 0:
+ case ($c & (PHP_INT_SIZE == 8 ? 0x80000000 : (1 << 31))) != 0:
return false;
case $c >= 0x04000000:
$v .= chr(0x80 | ($c & 0x3F));
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/X509.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
index 73ecd25de..7b8d96e29 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/File/X509.php
@@ -1321,6 +1321,10 @@ function __construct()
'2.5.4.45' => 'id-at-uniqueIdentifier',
'2.5.4.72' => 'id-at-role',
'2.5.4.16' => 'id-at-postalAddress',
+ '1.3.6.1.4.1.311.60.2.1.3' => 'jurisdictionOfIncorporationCountryName',
+ '1.3.6.1.4.1.311.60.2.1.2' => 'jurisdictionOfIncorporationStateOrProvinceName',
+ '1.3.6.1.4.1.311.60.2.1.1' => 'jurisdictionLocalityName',
+ '2.5.4.15' => 'id-at-businessCategory',
'0.9.2342.19200300.100.1.25' => 'id-domainComponent',
'1.2.840.113549.1.9' => 'pkcs-9',
@@ -2066,7 +2070,8 @@ function validateURL($url)
if ($names = $this->getExtension('id-ce-subjectAltName')) {
foreach ($names as $name) {
foreach ($name as $key => $value) {
- $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value);
+ $value = preg_quote($value);
+ $value = str_replace('\*', '[^.]*', $value);
switch ($key) {
case 'dNSName':
/* From RFC2818 "HTTP over TLS":
@@ -2576,6 +2581,20 @@ function _encodeIP($ip)
function _translateDNProp($propName)
{
switch (strtolower($propName)) {
+ case 'jurisdictionofincorporationcountryname':
+ case 'jurisdictioncountryname':
+ case 'jurisdictionc':
+ return 'jurisdictionOfIncorporationCountryName';
+ case 'jurisdictionofincorporationstateorprovincename':
+ case 'jurisdictionstateorprovincename':
+ case 'jurisdictionst':
+ return 'jurisdictionOfIncorporationStateOrProvinceName';
+ case 'jurisdictionlocalityname':
+ case 'jurisdictionl':
+ return 'jurisdictionLocalityName';
+ case 'id-at-businesscategory':
+ case 'businesscategory':
+ return 'id-at-businessCategory';
case 'id-at-countryname':
case 'countryname':
case 'c':
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
index 81b69ace6..7747a95b6 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php
@@ -163,23 +163,23 @@ class BigInteger
*
* @see __construct()
*/
- protected static $base;
- protected static $baseFull;
- protected static $maxDigit;
- protected static $msb;
+ static $base;
+ static $baseFull;
+ static $maxDigit;
+ static $msb;
/**
* $max10 in greatest $max10Len satisfying
* $max10 = 10**$max10Len <= 2**$base.
*/
- protected static $max10;
+ static $max10;
/**
* $max10Len in greatest $max10Len satisfying
* $max10 = 10**$max10Len <= 2**$base.
*/
- protected static $max10Len;
- protected static $maxDigit2;
+ static $max10Len;
+ static $maxDigit2;
/**#@-*/
/**
@@ -729,6 +729,33 @@ function toString()
return $result;
}
+ /**
+ * Return the size of a BigInteger in bits
+ *
+ * @return int
+ */
+ function getLength()
+ {
+ if (MATH_BIGINTEGER_MODE != self::MODE_INTERNAL) {
+ return strlen($this->toBits());
+ }
+
+ $max = count($this->value) - 1;
+ return $max != -1 ?
+ $max * self::$base + intval(ceil(log($this->value[$max] + 1, 2))) :
+ 0;
+ }
+
+ /**
+ * Return the size of a BigInteger in bytes
+ *
+ * @return int
+ */
+ function getLengthInBytes()
+ {
+ return (int) ceil($this->getLength() / 8);
+ }
+
/**
* Copy an object
*
@@ -3237,6 +3264,11 @@ function randomPrime($arg1, $arg2 = false, $timeout = false)
$min = $temp;
}
+ $length = $max->getLength();
+ if ($length > 8196) {
+ user_error('Generation of random prime numbers larger than 8196 has been disabled');
+ }
+
static $one, $two;
if (!isset($one)) {
$one = new static(1);
@@ -3344,7 +3376,14 @@ function _make_odd()
*/
function isPrime($t = false)
{
- $length = strlen($this->toBytes());
+ $length = $this->getLength();
+ // OpenSSL limits RSA keys to 16384 bits. The length of an RSA key is equal to the length of the modulo, which is
+ // produced by multiplying the primes p and q by one another. The largest number two 8196 bit primes can produce is
+ // a 16384 bit number so, basically, 8196 bit primes are the largest OpenSSL will generate and if that's the largest
+ // that it'll generate it also stands to reason that that's the largest you'll be able to test primality on
+ if ($length > 8196) {
+ user_error('Primality testing is not supported for numbers larger than 8196 bits');
+ }
if (!$t) {
// see HAC 4.49 "Note (controlling the error probability)"
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
index ea5fb083e..28b568062 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php
@@ -454,7 +454,7 @@ function __construct($host, $port = 22, $timeout = 10)
// yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in
// two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000.
// that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored.
- (PHP_INT_SIZE == 4 ? -1 : 0xFFFFFFFF) => 'NET_SFTP_ATTR_EXTENDED'
+ (PHP_INT_SIZE == 4 ? (-1 << 31) : 0x80000000) => 'NET_SFTP_ATTR_EXTENDED'
);
$this->open_flags = array(
0x00000001 => 'NET_SFTP_OPEN_READ',
@@ -871,7 +871,7 @@ function _logError($response, $status = -1)
$error = $this->status_codes[$status];
- if ($this->version > 2 || strlen($response) < 4) {
+ if ($this->version > 2) {
extract(unpack('Nlength', $this->_string_shift($response, 4)));
$this->sftp_errors[] = $error . ': ' . $this->_string_shift($response, $length);
} else {
@@ -2312,7 +2312,7 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc
if ($start >= 0) {
$offset = $start;
- } elseif ($mode & self::RESUME) {
+ } elseif ($mode & (self::RESUME | self::RESUME_START)) {
// if NET_SFTP_OPEN_APPEND worked as it should _size() wouldn't need to be called
$size = $this->size($remote_file);
$offset = $size !== false ? $size : 0;
@@ -2385,7 +2385,11 @@ function put($remote_file, $data, $mode = self::SOURCE_STRING, $start = -1, $loc
if ($local_start >= 0) {
fseek($fp, $local_start);
$size-= $local_start;
+ } elseif ($mode & self::RESUME) {
+ fseek($fp, $offset);
+ $size-= $offset;
}
+
} elseif ($dataCallback) {
$size = 0;
} else {
@@ -2689,14 +2693,6 @@ function get($remote_file, $local_file = false, $offset = 0, $length = -1, $prog
}
}
- if ($length > 0 && $length <= $offset - $start) {
- if ($local_file === false) {
- $content = substr($content, 0, $length);
- } else {
- ftruncate($fp, $length + $res_offset);
- }
- }
-
if ($fclose_check) {
fclose($fp);
@@ -3644,6 +3640,7 @@ function _reset_connection($reason)
$this->use_request_id = false;
$this->pwd = false;
$this->requestBuffer = array();
+ $this->partial_init = false;
}
/**
@@ -3792,7 +3789,7 @@ function getSFTPLog()
}
/**
- * Returns all errors
+ * Returns all errors on the SFTP layer
*
* @return array
* @access public
@@ -3803,7 +3800,7 @@ function getSFTPErrors()
}
/**
- * Returns the last error
+ * Returns the last error on the SFTP layer
*
* @return string
* @access public
diff --git a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
index 5eb1c71b9..607cc2145 100644
--- a/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
+++ b/oc-includes/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
@@ -402,6 +402,14 @@ class SSH2
*/
var $decrypt = false;
+ /**
+ * Decryption Algorithm Name
+ *
+ * @var string|null
+ * @access private
+ */
+ var $decryptName;
+
/**
* Client to Server Encryption Object
*
@@ -411,6 +419,14 @@ class SSH2
*/
var $encrypt = false;
+ /**
+ * Encryption Algorithm Name
+ *
+ * @var string|null
+ * @access private
+ */
+ var $encryptName;
+
/**
* Client to Server HMAC Object
*
@@ -420,6 +436,13 @@ class SSH2
*/
var $hmac_create = false;
+ /**
+ * Client to Server HMAC Name
+ *
+ * @var string|false
+ */
+ private $hmac_create_name;
+
/**
* Server to Client HMAC Object
*
@@ -429,6 +452,13 @@ class SSH2
*/
var $hmac_check = false;
+ /**
+ * Server to Client HMAC Name
+ *
+ * @var string|false
+ */
+ var $hmac_check_name;
+
/**
* Size of server to client HMAC
*
@@ -1066,10 +1096,20 @@ class SSH2
*/
var $smartMFA = true;
+ /**
+ * Extra packets counter
+ *
+ * @var bool
+ * @access private
+ */
+ var $extra_packets;
+
/**
* Default Constructor.
*
* $host can either be a string, representing the host, or a stream resource.
+ * If $host is a stream resource then $port doesn't do anything, altho $timeout
+ * still will be used
*
* @param mixed $host
* @param int $port
@@ -1087,6 +1127,7 @@ function __construct($host, $port = 22, $timeout = 10)
4 => 'NET_SSH2_MSG_DEBUG',
5 => 'NET_SSH2_MSG_SERVICE_REQUEST',
6 => 'NET_SSH2_MSG_SERVICE_ACCEPT',
+ 7 => 'NET_SSH2_MSG_EXT_INFO', // RFC 8308
20 => 'NET_SSH2_MSG_KEXINIT',
21 => 'NET_SSH2_MSG_NEWKEYS',
30 => 'NET_SSH2_MSG_KEXDH_INIT',
@@ -1159,6 +1200,8 @@ function __construct($host, $port = 22, $timeout = 10)
31 => 'NET_SSH2_MSG_KEX_ECDH_REPLY')
);
+ $this->timeout = $timeout;
+
if (is_resource($host)) {
$this->fsock = $host;
return;
@@ -1167,7 +1210,6 @@ function __construct($host, $port = 22, $timeout = 10)
if (is_string($host)) {
$this->host = $host;
$this->port = $port;
- $this->timeout = $timeout;
}
}
@@ -1471,6 +1513,8 @@ function _key_exchange($kexinit_payload_server = false)
$preferred['client_to_server']['comp'] :
$this->getSupportedCompressionAlgorithms();
+ $kex_algorithms = array_merge($kex_algorithms, array('ext-info-c', 'kex-strict-c-v00@openssh.com'));
+
// some SSH servers have buggy implementations of some of the above algorithms
switch (true) {
case $this->server_identifier == 'SSH-2.0-SSHD':
@@ -1533,6 +1577,7 @@ function _key_exchange($kexinit_payload_server = false)
return false;
}
+ $this->extra_packets = 0;
$kexinit_payload_server = $this->_get_binary_packet();
if ($kexinit_payload_server === false) {
$this->bitmap = 0;
@@ -1557,6 +1602,12 @@ function _key_exchange($kexinit_payload_server = false)
}
$temp = unpack('Nlength', $this->_string_shift($response, 4));
$this->kex_algorithms = explode(',', $this->_string_shift($response, $temp['length']));
+ if (in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) {
+ if ($this->session_id === false && $this->extra_packets) {
+ user_error('Possible Terrapin Attack detected');
+ return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
+ }
+ }
if (strlen($response) < 4) {
return false;
@@ -1963,6 +2014,10 @@ function _key_exchange($kexinit_payload_server = false)
return false;
}
+ if (in_array('kex-strict-s-v00@openssh.com', $this->kex_algorithms)) {
+ $this->get_seq_no = $this->send_seq_no = 0;
+ }
+
$keyBytes = pack('Na*', strlen($keyBytes), $keyBytes);
$this->encrypt = $this->_encryption_algorithm_to_crypt_instance($encrypt);
@@ -1992,7 +2047,7 @@ function _key_exchange($kexinit_payload_server = false)
}
$this->encrypt->setKey(substr($key, 0, $encryptKeyLength));
- $this->encrypt->name = $decrypt;
+ $this->encryptName = $encrypt;
}
$this->decrypt = $this->_encryption_algorithm_to_crypt_instance($decrypt);
@@ -2022,7 +2077,7 @@ function _key_exchange($kexinit_payload_server = false)
}
$this->decrypt->setKey(substr($key, 0, $decryptKeyLength));
- $this->decrypt->name = $decrypt;
+ $this->decryptName = $decrypt;
}
/* The "arcfour128" algorithm is the RC4 cipher, as described in
@@ -2067,7 +2122,7 @@ function _key_exchange($kexinit_payload_server = false)
$this->hmac_create = new Hash('md5-96');
$createKeyLength = 16;
}
- $this->hmac_create->name = $mac_algorithm_out;
+ $this->hmac_create_name = $mac_algorithm_out;
$checkKeyLength = 0;
$this->hmac_size = 0;
@@ -2097,7 +2152,7 @@ function _key_exchange($kexinit_payload_server = false)
$checkKeyLength = 16;
$this->hmac_size = 12;
}
- $this->hmac_check->name = $mac_algorithm_in;
+ $this->hmac_check_name = $mac_algorithm_in;
$key = $kexHash->hash($keyBytes . $this->exchange_hash . 'E' . $this->session_id);
while ($createKeyLength > strlen($key)) {
@@ -2237,7 +2292,9 @@ function _bad_algorithm_candidate($algorithm)
function login($username)
{
$args = func_get_args();
- $this->auth[] = $args;
+ if (!$this->retry_connect) {
+ $this->auth[] = $args;
+ }
// try logging with 'none' as an authentication method first since that's what
// PuTTY does
@@ -2380,6 +2437,35 @@ function _login_helper($username, $password = null)
}
extract(unpack('Ctype', $this->_string_shift($response, 1)));
+ if ($type == NET_SSH2_MSG_EXT_INFO) {
+ if (strlen($response) < 4) {
+ return false;
+ }
+ $nr_extensions = unpack('Nlength', $this->_string_shift($response, 4));
+ for ($i = 0; $i < $nr_extensions['length']; $i++) {
+ if (strlen($response) < 4) {
+ return false;
+ }
+ $temp = unpack('Nlength', $this->_string_shift($response, 4));
+ $extension_name = $this->_string_shift($response, $temp['length']);
+ if ($extension_name == 'server-sig-algs') {
+ if (strlen($response) < 4) {
+ return false;
+ }
+ $temp = unpack('Nlength', $this->_string_shift($response, 4));
+ $this->supported_private_key_algorithms = explode(',', $this->_string_shift($response, $temp['length']));
+ }
+ }
+
+ $response = $this->_get_binary_packet();
+ if ($response === false) {
+ $this->bitmap = 0;
+ user_error('Connection closed by server');
+ return false;
+ }
+ extract(unpack('Ctype', $this->_string_shift($response, 1)));
+ }
+
if ($type != NET_SSH2_MSG_SERVICE_ACCEPT) {
user_error('Expected SSH_MSG_SERVICE_ACCEPT');
return false;
@@ -2747,7 +2833,7 @@ function _privatekey_login($username, $privatekey)
$algos = array('rsa-sha2-256', 'rsa-sha2-512', 'ssh-rsa');
if (isset($this->preferred['hostkey'])) {
- $algos = array_intersect($this->preferred['hostkey'], $algos);
+ $algos = array_intersect($algos, $this->preferred['hostkey']);
}
$algo = $this->_array_intersect_first($algos, $this->supported_private_key_algorithms);
@@ -3398,7 +3484,7 @@ function __destruct()
*/
function isConnected()
{
- return (bool) ($this->bitmap & self::MASK_CONNECTED);
+ return ($this->bitmap & self::MASK_CONNECTED) && is_resource($this->fsock) && !feof($this->fsock);
}
/**
@@ -3563,6 +3649,9 @@ function _get_binary_packet($skip_channel_filter = false)
}
$start = microtime(true);
+ $sec = (int) floor($this->curTimeout);
+ $usec = (int) (1000000 * ($this->curTimeout - $sec));
+ stream_set_timeout($this->fsock, $sec, $usec);
$raw = stream_get_contents($this->fsock, $this->decrypt_block_size);
if (!strlen($raw)) {
@@ -3589,7 +3678,7 @@ function _get_binary_packet($skip_channel_filter = false)
// "implementations SHOULD check that the packet length is reasonable"
// PuTTY uses 0x9000 as the actual max packet size and so to shall we
if ($remaining_length < -$this->decrypt_block_size || $remaining_length > 0x9000 || $remaining_length % $this->decrypt_block_size != 0) {
- if (!$this->bad_key_size_fix && $this->_bad_algorithm_candidate($this->decrypt->name) && !($this->bitmap & SSH2::MASK_LOGIN)) {
+ if (!$this->bad_key_size_fix && $this->_bad_algorithm_candidate($this->decryptName) && !($this->bitmap & SSH2::MASK_LOGIN)) {
$this->bad_key_size_fix = true;
$this->_reset_connection(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
return false;
@@ -3702,9 +3791,11 @@ function _filter($payload, $skip_channel_filter)
$this->bitmap = 0;
return false;
case NET_SSH2_MSG_IGNORE:
+ $this->extra_packets++;
$payload = $this->_get_binary_packet($skip_channel_filter);
break;
case NET_SSH2_MSG_DEBUG:
+ $this->extra_packets++;
$this->_string_shift($payload, 2);
if (strlen($payload) < 4) {
return false;
@@ -3716,6 +3807,7 @@ function _filter($payload, $skip_channel_filter)
case NET_SSH2_MSG_UNIMPLEMENTED:
return false;
case NET_SSH2_MSG_KEXINIT:
+ // this is here for key re-exchanges after the initial key exchange
if ($this->session_id !== false) {
$this->send_kex_first = false;
if (!$this->_key_exchange($payload)) {
@@ -4612,7 +4704,9 @@ function _array_intersect_first($array1, $array2)
}
/**
- * Returns all errors
+ * Returns all errors / debug messages on the SSH layer
+ *
+ * If you are looking for messages from the SFTP layer, please see SFTP::getSFTPErrors()
*
* @return string[]
* @access public
@@ -4623,7 +4717,9 @@ function getErrors()
}
/**
- * Returns the last error
+ * Returns the last error received on the SSH layer
+ *
+ * If you are looking for messages from the SFTP layer, please see SFTP::getLastSFTPError()
*
* @return string
* @access public
@@ -4994,13 +5090,13 @@ function getAlgorithmsNegotiated()
'kex' => $this->kex_algorithm,
'hostkey' => $this->signature_format,
'client_to_server' => array(
- 'crypt' => $this->encrypt->name,
- 'mac' => $this->hmac_create->name,
+ 'crypt' => $this->encryptName,
+ 'mac' => $this->hmac_create_name,
'comp' => $compression_map[$this->compress],
),
'server_to_client' => array(
- 'crypt' => $this->decrypt->name,
- 'mac' => $this->hmac_check->name,
+ 'crypt' => $this->decryptName,
+ 'mac' => $this->hmac_check_name,
'comp' => $compression_map[$this->decompress],
)
);
diff --git a/oc-load.php b/oc-load.php
index bcc3f0525..11958f7f0 100755
--- a/oc-load.php
+++ b/oc-load.php
@@ -35,9 +35,8 @@
define('LIB_PATH', ABS_PATH . 'oc-includes/');
+require_once LIB_PATH . 'osclass/helpers/hErrors.php';
if (!file_exists(ABS_PATH . 'config.php')) {
- require_once LIB_PATH . 'osclass/helpers/hErrors.php';
-
$title = 'Osclass » Error';
$message =
'There doesn\'t seem to be a
config.php file. Osclass isn\'t installed. '
@@ -60,17 +59,14 @@
OsclassErrors::newInstance()->register();
require_once LIB_PATH . 'osclass/helpers/hDatabaseInfo.php';
require_once LIB_PATH . 'osclass/helpers/hPreference.php';
-
// check if Osclass is installed
if (!Preference::newInstance()->get('osclass_installed')) {
- require_once LIB_PATH . 'osclass/helpers/hErrors.php';
-
$title = 'Osclass » Error';
$message =
- 'Osclass isn\'t installed.
Need more help?';
- $message .= '
Install
';
-
osc_die($title, $message);
}
require_once LIB_PATH . 'osclass/helpers/hDefines.php';
diff --git a/package.json b/package.json
index d0493d4da..e0e5c1e20 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,13 @@
"@popperjs/core": "^2.9.2",
"eslint": "^6.8.0",
"grunt": "^1.4.1",
+ "grunt-cli": "^1.4.3",
"grunt-contrib-clean": "^2.0.0",
- "grunt-contrib-copy": "^1.0.0"
+ "grunt-contrib-copy": "^1.0.0",
+ "grunt-contrib-uglify": "^5.2.2",
+ "grunt-sass": "^3.1.0",
+ "load-grunt-tasks": "^5.1.0",
+ "node-sass": "^9.0.0"
},
"description": "Osclass is a free and open script to create your advertisement or listings site. Best features: Plugins, themes, multi-language, CAPTCHA, dashboard, SEO friendly.",
"scripts": {
@@ -26,9 +31,6 @@
"bootstrap": "^5.0.*",
"bootstrap-icons": "^1.5.0",
"chart.js": "^3.5.0",
- "grunt-cli": "^1.4.3",
- "grunt-contrib-sass": "^2.0.0",
- "grunt-contrib-uglify": "^5.0.1",
"jquery": "^3.6.0",
"jquery-migrate": "^3.3.2",
"jquery-treeview": "^1.4.*",
@@ -39,6 +41,6 @@
"osclass-legacy-assets": "github:mindstellar/osclass-legacy-assets#master",
"sortablejs": "^1.14.0",
"spectrum-colorpicker": "^1.8.*",
- "tinymce": "^5.8.1"
+ "tinymce": "^7.0.1"
}
}