From 7a43772acbb1323cabb8a41d9942b5a820900676 Mon Sep 17 00:00:00 2001 From: Peter Hrvatin Date: Fri, 5 Aug 2022 09:52:36 +0200 Subject: [PATCH] Posodobljeni dependancyji (composer produkcija), brisanje vprasanj - sql in osnova (pobrisana vprasanja shranimo podobno kot v knjiznico) --- .../survey/classes/class.VprasanjeDeleted.php | 36 + composer.lock | 289 +- sql/update2.sql | 14 + vendor/composer/ClassLoader.php | 42 +- vendor/composer/autoload_classmap.php | 2 +- vendor/composer/autoload_real.php | 6 +- vendor/composer/autoload_static.php | 2 +- vendor/composer/ca-bundle/res/cacert.pem | 165 +- vendor/composer/installed.json | 4404 ++++++++--------- vendor/geoip2/geoip2/.github/dependabot.yml | 7 - .../geoip2/geoip2/.github/workflows/lint.yml | 32 - .../geoip2/geoip2/.github/workflows/test.yml | 36 - vendor/geoip2/geoip2/.php-cs-fixer.php | 45 - vendor/geoip2/geoip2/CHANGELOG.md | 33 - vendor/geoip2/geoip2/README.md | 51 +- vendor/geoip2/geoip2/composer.json | 13 +- vendor/geoip2/geoip2/examples/benchmark.php | 3 +- vendor/geoip2/geoip2/phpstan.neon | 7 - vendor/geoip2/geoip2/src/Database/Reader.php | 73 +- .../Exception/AddressNotFoundException.php | 2 - .../src/Exception/AuthenticationException.php | 2 - .../geoip2/src/Exception/GeoIp2Exception.php | 2 - .../geoip2/src/Exception/HttpException.php | 10 +- .../src/Exception/InvalidRequestException.php | 12 +- .../src/Exception/OutOfQueriesException.php | 2 - .../geoip2/geoip2/src/Model/AbstractModel.php | 27 +- .../geoip2/geoip2/src/Model/AnonymousIp.php | 34 +- vendor/geoip2/geoip2/src/Model/Asn.php | 18 +- vendor/geoip2/geoip2/src/Model/City.php | 36 +- .../geoip2/src/Model/ConnectionType.php | 15 +- vendor/geoip2/geoip2/src/Model/Country.php | 31 +- vendor/geoip2/geoip2/src/Model/Domain.php | 15 +- vendor/geoip2/geoip2/src/Model/Enterprise.php | 4 +- vendor/geoip2/geoip2/src/Model/Insights.php | 4 +- vendor/geoip2/geoip2/src/Model/Isp.php | 40 +- .../geoip2/geoip2/src/ProviderInterface.php | 6 +- .../geoip2/src/Record/AbstractPlaceRecord.php | 26 +- .../geoip2/src/Record/AbstractRecord.php | 30 +- vendor/geoip2/geoip2/src/Record/City.php | 4 - vendor/geoip2/geoip2/src/Record/Continent.php | 4 - vendor/geoip2/geoip2/src/Record/Country.php | 4 - vendor/geoip2/geoip2/src/Record/Location.php | 4 - vendor/geoip2/geoip2/src/Record/MaxMind.php | 4 - vendor/geoip2/geoip2/src/Record/Postal.php | 4 - .../geoip2/src/Record/RepresentedCountry.php | 7 - .../geoip2/geoip2/src/Record/Subdivision.php | 4 - vendor/geoip2/geoip2/src/Record/Traits.php | 24 +- vendor/geoip2/geoip2/src/Util.php | 7 +- .../geoip2/geoip2/src/WebService/Client.php | 98 +- vendor/maxmind-db/reader/CHANGELOG.md | 50 - vendor/maxmind-db/reader/README.md | 17 +- vendor/maxmind-db/reader/autoload.php | 12 +- vendor/maxmind-db/reader/composer.json | 13 +- vendor/maxmind-db/reader/ext/config.w32 | 10 - vendor/maxmind-db/reader/ext/maxminddb.c | 593 +-- vendor/maxmind-db/reader/ext/php_maxminddb.h | 2 +- vendor/maxmind-db/reader/package.xml | 63 - .../reader/src/MaxMind/Db/Reader.php | 144 +- .../reader/src/MaxMind/Db/Reader/Decoder.php | 206 +- .../Db/Reader/InvalidDatabaseException.php | 2 - .../reader/src/MaxMind/Db/Reader/Metadata.php | 148 +- .../reader/src/MaxMind/Db/Reader/Util.php | 10 +- .../maxmind/web-service-common/CHANGELOG.md | 20 - vendor/maxmind/web-service-common/README.md | 2 +- .../maxmind/web-service-common/composer.json | 9 +- .../web-service-common/dev-bin/release.sh | 6 +- .../maxmind/web-service-common/phpstan.neon | 7 - .../src/Exception/AuthenticationException.php | 2 - .../src/Exception/HttpException.php | 14 +- .../Exception/InsufficientFundsException.php | 2 - .../src/Exception/InvalidInputException.php | 2 - .../src/Exception/InvalidRequestException.php | 16 +- .../Exception/IpAddressNotFoundException.php | 2 - .../Exception/PermissionRequiredException.php | 2 - .../src/Exception/WebServiceException.php | 2 - .../src/WebService/Client.php | 180 +- .../src/WebService/Http/CurlRequest.php | 74 +- .../src/WebService/Http/Request.php | 20 +- .../src/WebService/Http/RequestFactory.php | 15 +- .../google-authenticator/Makefile | 60 + .../google-authenticator/composer.json | 4 +- .../google-authenticator/phpunit.xml.dist | 40 + .../google-authenticator/sample/web/Users.php | 10 +- .../google-authenticator/sample/web/index.php | 6 +- .../src/FixedBitNotation.php | 28 +- .../src/GoogleAuthenticator.php | 73 +- .../src/GoogleAuthenticatorInterface.php | 6 +- .../google-authenticator/src/GoogleQrUrl.php | 9 +- 88 files changed, 3383 insertions(+), 4238 deletions(-) create mode 100644 admin/survey/classes/class.VprasanjeDeleted.php delete mode 100644 vendor/geoip2/geoip2/.github/dependabot.yml delete mode 100644 vendor/geoip2/geoip2/.github/workflows/lint.yml delete mode 100644 vendor/geoip2/geoip2/.github/workflows/test.yml delete mode 100644 vendor/geoip2/geoip2/.php-cs-fixer.php delete mode 100644 vendor/geoip2/geoip2/phpstan.neon delete mode 100644 vendor/maxmind-db/reader/ext/config.w32 delete mode 100644 vendor/maxmind-db/reader/package.xml delete mode 100644 vendor/maxmind/web-service-common/phpstan.neon create mode 100644 vendor/sonata-project/google-authenticator/Makefile create mode 100644 vendor/sonata-project/google-authenticator/phpunit.xml.dist diff --git a/admin/survey/classes/class.VprasanjeDeleted.php b/admin/survey/classes/class.VprasanjeDeleted.php new file mode 100644 index 000000000..a73e7c2ef --- /dev/null +++ b/admin/survey/classes/class.VprasanjeDeleted.php @@ -0,0 +1,36 @@ +anketa = $_GET['anketa']; + elseif (isset ($_POST['anketa'])) + $this->anketa = $_POST['anketa']; + elseif ($anketa != 0) + $this->anketa = $anketa; + + SurveyInfo::getInstance()->SurveyInit($this->anketa); + } + + + + // Prikazemo seznam pobrisanih vprasanj uporabnika + public function displayDeletedVprasanja(){ + global $global_user_id; + + } +} + +?> \ No newline at end of file diff --git a/composer.lock b/composer.lock index f77102490..e6c815b36 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "composer/ca-bundle", - "version": "1.3.2", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", "shasum": "" }, "require": { @@ -61,11 +61,6 @@ "ssl", "tls" ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.2" - }, "funding": [ { "url": "https://packagist.com", @@ -80,7 +75,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:56:16+00:00" + "time": "2022-07-20T07:14:26+00:00" }, { "name": "fgrosse/phpasn1", @@ -159,28 +154,27 @@ }, { "name": "geoip2/geoip2", - "version": "v2.12.2", + "version": "v2.10.0", "source": { "type": "git", "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f" + "reference": "419557cd21d9fe039721a83490701a58c8ce784a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/83adb44ac4b9553d36b579a14673ed124583082f", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f", + "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/419557cd21d9fe039721a83490701a58c8ce784a", + "reference": "419557cd21d9fe039721a83490701a58c8ce784a", "shasum": "" }, "require": { "ext-json": "*", - "maxmind-db/reader": "~1.8", - "maxmind/web-service-common": "~0.8", - "php": ">=7.2" + "maxmind-db/reader": "~1.5", + "maxmind/web-service-common": "~0.6", + "php": ">=5.6" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^8.0 || ^9.0", + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "5.*", "squizlabs/php_codesniffer": "3.*" }, "type": "library", @@ -209,11 +203,7 @@ "geolocation", "maxmind" ], - "support": { - "issues": "https://github.com/maxmind/GeoIP2-php/issues", - "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.2" - }, - "time": "2021-11-30T18:15:25+00:00" + "time": "2019-12-12T18:48:39+00:00" }, { "name": "guzzlehttp/guzzle", @@ -357,12 +347,12 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -526,30 +516,29 @@ }, { "name": "maxmind-db/reader", - "version": "v1.11.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git", - "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b" + "reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/b1f3c0699525336d09cc5161a2861268d9f2ae5b", - "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b", + "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/febd4920bf17c1da84cef58e56a8227dfb37fbe4", + "reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=5.6" }, "conflict": { - "ext-maxminddb": "<1.10.1,>=2.0.0" + "ext-maxminddb": "<1.6.0,>=2.0.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", + "friendsofphp/php-cs-fixer": "2.*", "php-coveralls/php-coveralls": "^2.1", - "phpstan/phpstan": "*", - "phpunit/phpcov": ">=6.0.0", - "phpunit/phpunit": ">=8.0.0,<10.0.0", + "phpunit/phpcov": "^3.0", + "phpunit/phpunit": "5.*", "squizlabs/php_codesniffer": "3.*" }, "suggest": { @@ -583,36 +572,31 @@ "geolocation", "maxmind" ], - "support": { - "issues": "https://github.com/maxmind/MaxMind-DB-Reader-php/issues", - "source": "https://github.com/maxmind/MaxMind-DB-Reader-php/tree/v1.11.0" - }, - "time": "2021-10-18T15:23:10+00:00" + "time": "2019-12-19T22:59:03+00:00" }, { "name": "maxmind/web-service-common", - "version": "v0.9.0", + "version": "v0.7.0", "source": { "type": "git", "url": "https://github.com/maxmind/web-service-common-php.git", - "reference": "4dc5a3e8df38aea4ca3b1096cee3a038094e9b53" + "reference": "74c996c218ada5c639c8c2f076756e059f5552fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/4dc5a3e8df38aea4ca3b1096cee3a038094e9b53", - "reference": "4dc5a3e8df38aea4ca3b1096cee3a038094e9b53", + "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/74c996c218ada5c639c8c2f076756e059f5552fc", + "reference": "74c996c218ada5c639c8c2f076756e059f5552fc", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0.3", "ext-curl": "*", "ext-json": "*", - "php": ">=7.2" + "php": ">=5.6" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^8.0 || ^9.0", + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0", "squizlabs/php_codesniffer": "3.*" }, "type": "library", @@ -634,11 +618,7 @@ ], "description": "Internal MaxMind Web Service API", "homepage": "https://github.com/maxmind/web-service-common-php", - "support": { - "issues": "https://github.com/maxmind/web-service-common-php/issues", - "source": "https://github.com/maxmind/web-service-common-php/tree/v0.9.0" - }, - "time": "2022-03-28T17:43:20+00:00" + "time": "2020-05-06T14:07:26+00:00" }, { "name": "minishlink/web-push", @@ -694,10 +674,6 @@ "push", "web" ], - "support": { - "issues": "https://github.com/web-push-libs/web-push-php/issues", - "source": "https://github.com/web-push-libs/web-push-php/tree/v5.2.5" - }, "time": "2020-08-02T08:58:01+00:00" }, { @@ -743,11 +719,6 @@ "pseudorandom", "random" ], - "support": { - "email": "info@paragonie.com", - "issues": "https://github.com/paragonie/random_compat/issues", - "source": "https://github.com/paragonie/random_compat" - }, "time": "2020-10-15T08:29:30+00:00" }, { @@ -859,8 +830,8 @@ "type": "library", "autoload": { "psr-4": { - "Sample\\": "samples/", - "PayPalCheckoutSdk\\": "lib/PayPalCheckoutSdk" + "PayPalCheckoutSdk\\": "lib/PayPalCheckoutSdk", + "Sample\\": "samples/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1057,9 +1028,6 @@ "request", "response" ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, "time": "2016-08-06T14:39:51+00:00" }, { @@ -1100,31 +1068,27 @@ } ], "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, "time": "2019-03-08T08:55:37+00:00" }, { "name": "sonata-project/google-authenticator", - "version": "2.3.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/sonata-project/GoogleAuthenticator.git", - "reference": "71a4189228f93a9662574dc8c65e77ef55061b59" + "reference": "feda53899b26af24e3db2fe7a3e5f053ca483762" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sonata-project/GoogleAuthenticator/zipball/71a4189228f93a9662574dc8c65e77ef55061b59", - "reference": "71a4189228f93a9662574dc8c65e77ef55061b59", + "url": "https://api.github.com/repos/sonata-project/GoogleAuthenticator/zipball/feda53899b26af24e3db2fe7a3e5f053ca483762", + "reference": "feda53899b26af24e3db2fe7a3e5f053ca483762", "shasum": "" }, "require": { - "php": "^7.3 || ^8.0" + "php": "^7.1" }, "require-dev": { - "symfony/phpunit-bridge": "^5.1.8" + "symfony/phpunit-bridge": "^4.0" }, "type": "library", "extra": { @@ -1143,10 +1107,6 @@ "MIT" ], "authors": [ - { - "name": "Thomas Rabaix", - "email": "thomas.rabaix@gmail.com" - }, { "name": "Christian Stocker", "email": "me@chregu.tv" @@ -1154,6 +1114,10 @@ { "name": "Andre DeMarre", "homepage": "http://www.devnetwork.net/viewtopic.php?f=50&t=94989" + }, + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@gmail.com" } ], "description": "Library to integrate Google Authenticator into a PHP project", @@ -1161,30 +1125,8 @@ "keywords": [ "google authenticator" ], - "support": { - "issues": "https://github.com/sonata-project/GoogleAuthenticator/issues", - "source": "https://github.com/sonata-project/GoogleAuthenticator/tree/2.3.1" - }, - "funding": [ - { - "url": "https://github.com/OskarStark", - "type": "github" - }, - { - "url": "https://github.com/VincentLanglet", - "type": "github" - }, - { - "url": "https://github.com/core23", - "type": "github" - }, - { - "url": "https://github.com/wbloszyk", - "type": "github" - } - ], "abandoned": true, - "time": "2021-02-15T19:23:18+00:00" + "time": "2018-07-18T22:08:02+00:00" }, { "name": "spomky-labs/base64url", @@ -1235,20 +1177,6 @@ "safe", "url" ], - "support": { - "issues": "https://github.com/Spomky-Labs/base64url/issues", - "source": "https://github.com/Spomky-Labs/base64url/tree/v2.0.4" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-11-03T09:10:25+00:00" }, { @@ -1631,15 +1559,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-core/tree/v1.3.10" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -1717,15 +1636,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-key-mgmt/tree/v1.3.10" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -1806,15 +1716,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature/tree/v1.3.10" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -1882,15 +1783,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature-algorithm-ecdsa/tree/v1.3.10" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -1958,15 +1850,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature-algorithm-eddsa/tree/v1.3.10" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -2034,15 +1917,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature-algorithm-hmac/tree/v1.3" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -2110,15 +1984,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature-algorithm-none/tree/v1.3" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -2186,15 +2051,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-signature-algorithm-rsa/tree/v1.3" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" }, { @@ -2264,15 +2120,6 @@ "jwt", "symfony" ], - "support": { - "source": "https://github.com/web-token/jwt-util-ecc/tree/v1.3" - }, - "funding": [ - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], "time": "2020-03-20T13:29:04+00:00" } ], @@ -2336,10 +2183,6 @@ "throwable", "whoops" ], - "support": { - "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.5" - }, "funding": [ { "url": "https://github.com/denis-sokolov", @@ -2397,10 +2240,6 @@ "kint", "php" ], - "support": { - "issues": "https://github.com/kint-php/kint/issues", - "source": "https://github.com/kint-php/kint/tree/1.1" - }, "time": "2017-01-15T14:23:43+00:00" }, { @@ -2463,10 +2302,6 @@ "debug", "debugbar" ], - "support": { - "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.0" - }, "time": "2021-12-27T18:49:48+00:00" }, { @@ -2514,9 +2349,6 @@ "psr", "psr-3" ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, "time": "2021-05-03T11:20:27+00:00" }, { @@ -2583,9 +2415,6 @@ "portable", "shim" ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" - }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2666,9 +2495,6 @@ "portable", "shim" ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" - }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2687,16 +2513,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.42", + "version": "v4.4.44", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "742aab50ad097bcb62d91fccb613f66b8047d2ca" + "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/742aab50ad097bcb62d91fccb613f66b8047d2ca", - "reference": "742aab50ad097bcb62d91fccb613f66b8047d2ca", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f19951007dae942cc79b979c1fe26bfdfbeb54ed", + "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed", "shasum": "" }, "require": { @@ -2755,9 +2581,6 @@ "debug", "dump" ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.42" - }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2772,7 +2595,7 @@ "type": "tidelift" } ], - "time": "2022-05-21T10:00:54+00:00" + "time": "2022-07-20T09:59:04+00:00" } ], "aliases": [], @@ -2784,5 +2607,5 @@ "php": "^5.5|^7.0" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "1.1.0" } diff --git a/sql/update2.sql b/sql/update2.sql index 2447dddba..bc13c40a4 100644 --- a/sql/update2.sql +++ b/sql/update2.sql @@ -9641,3 +9641,17 @@ CREATE TABLE kolektor_podjetje_funkcija( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; UPDATE misc SET value='22.07.13' WHERE what="version"; + +## FK za pobrisana vprasanja - po novem jih ne brisemo ampak ohranimo (podoben sistem kot knjiznica vprasanj) +INSERT INTO srv_grupa (id, ank_id, naslov, vrstni_red) VALUES (-3, 0, 'system', 0); + +CREATE TABLE IF NOT EXISTS srv_spremenljivka_deleted ( + spr_id INT(11) NOT NULL, + ank_id INT(11) NOT NULL, + delete_time DATETIME(3) NOT NULL, + CONSTRAINT fk_srv_spremenljivka_deleted_ank_id FOREIGN KEY (ank_id) REFERENCES srv_anketa (id) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT fk_srv_spremenljivka_deleted_spr_id FOREIGN KEY (spr_id) REFERENCES srv_spremenljivka (id) ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8;; + +UPDATE misc SET value='22.08.05' WHERE what="version"; diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 6d0c3f2d0..03b9bb9c4 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -37,13 +37,11 @@ namespace Composer\Autoload; * * @author Fabien Potencier * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ */ class ClassLoader { - private $vendorDir; - // PSR-4 private $prefixLengthsPsr4 = array(); private $prefixDirsPsr4 = array(); @@ -59,13 +57,6 @@ class ClassLoader private $missingClasses = array(); private $apcuPrefix; - private static $registeredLoaders = array(); - - public function __construct($vendorDir = null) - { - $this->vendorDir = $vendorDir; - } - public function getPrefixes() { if (!empty($this->prefixesPsr0)) { @@ -309,17 +300,6 @@ class ClassLoader public function register($prepend = false) { spl_autoload_register(array($this, 'loadClass'), true, $prepend); - - if (null === $this->vendorDir) { - return; - } - - if ($prepend) { - self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; - } else { - unset(self::$registeredLoaders[$this->vendorDir]); - self::$registeredLoaders[$this->vendorDir] = $this; - } } /** @@ -328,17 +308,13 @@ class ClassLoader public function unregister() { spl_autoload_unregister(array($this, 'loadClass')); - - if (null !== $this->vendorDir) { - unset(self::$registeredLoaders[$this->vendorDir]); - } } /** * Loads the given class or interface. * * @param string $class The name of the class - * @return true|null True if loaded, null otherwise + * @return bool|null True if loaded, null otherwise */ public function loadClass($class) { @@ -347,8 +323,6 @@ class ClassLoader return true; } - - return null; } /** @@ -393,16 +367,6 @@ class ClassLoader return $file; } - /** - * Returns the currently registered loaders indexed by their corresponding vendor directories. - * - * @return self[] - */ - public static function getRegisteredLoaders() - { - return self::$registeredLoaders; - } - private function findFileWithExtension($class, $ext) { // PSR-4 lookup diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 19d936379..1cbd55d87 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -67,7 +67,6 @@ return array( 'CheckboxXml' => $baseDir . '/admin/survey/export/xmlClasses/Vprasanja/CheckboxXml.php', 'Common' => $baseDir . '/admin/survey/classes/class.Common.php', 'Composer\\CaBundle\\CaBundle' => $vendorDir . '/composer/ca-bundle/src/CaBundle.php', - 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'CrossRoad' => $baseDir . '/admin/survey/classes/tracking/CrossRoad.php', 'DatumLatex' => $baseDir . '/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php', 'Demografija' => $baseDir . '/admin/survey/classes/class.Demografija.php', @@ -1071,6 +1070,7 @@ return array( 'UserTrackingClass' => $baseDir . '/admin/survey/classes/tracking/UserTrackingClass.php', 'VariableView' => $baseDir . '/admin/survey/classes/class.SurveyVariableView.php', 'Vprasanje' => $baseDir . '/admin/survey/classes/class.Vprasanje.php', + 'VprasanjeDeleted' => $baseDir . '/admin/survey/classes/class.VprasanjeDeleted.php', 'VprasanjeInline' => $baseDir . '/admin/survey/classes/class.VprasanjeInline.php', 'VsotaLatex' => $baseDir . '/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php', 'WPN' => $baseDir . '/admin/survey/modules/mod_WPN/class.WPN.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 5fd19c594..7cffa8c0a 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -22,15 +22,13 @@ class ComposerAutoloaderInit6b03163c371c5541881b55b762b8c779 return self::$loader; } - require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit6b03163c371c5541881b55b762b8c779', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); spl_autoload_unregister(array('ComposerAutoloaderInit6b03163c371c5541881b55b762b8c779', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; + require_once __DIR__ . '/autoload_static.php'; call_user_func(\Composer\Autoload\ComposerStaticInit6b03163c371c5541881b55b762b8c779::getInitializer($loader)); } else { diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index f9efccb2e..93dcac457 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -271,7 +271,6 @@ class ComposerStaticInit6b03163c371c5541881b55b762b8c779 'CheckboxXml' => __DIR__ . '/../..' . '/admin/survey/export/xmlClasses/Vprasanja/CheckboxXml.php', 'Common' => __DIR__ . '/../..' . '/admin/survey/classes/class.Common.php', 'Composer\\CaBundle\\CaBundle' => __DIR__ . '/..' . '/composer/ca-bundle/src/CaBundle.php', - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'CrossRoad' => __DIR__ . '/../..' . '/admin/survey/classes/tracking/CrossRoad.php', 'DatumLatex' => __DIR__ . '/../..' . '/admin/survey/export/latexclasses/Vprasanja/DatumLatex.php', 'Demografija' => __DIR__ . '/../..' . '/admin/survey/classes/class.Demografija.php', @@ -1275,6 +1274,7 @@ class ComposerStaticInit6b03163c371c5541881b55b762b8c779 'UserTrackingClass' => __DIR__ . '/../..' . '/admin/survey/classes/tracking/UserTrackingClass.php', 'VariableView' => __DIR__ . '/../..' . '/admin/survey/classes/class.SurveyVariableView.php', 'Vprasanje' => __DIR__ . '/../..' . '/admin/survey/classes/class.Vprasanje.php', + 'VprasanjeDeleted' => __DIR__ . '/../..' . '/admin/survey/classes/class.VprasanjeDeleted.php', 'VprasanjeInline' => __DIR__ . '/../..' . '/admin/survey/classes/class.VprasanjeInline.php', 'VsotaLatex' => __DIR__ . '/../..' . '/admin/survey/export/latexclasses/Vprasanja/VsotaLatex.php', 'WPN' => __DIR__ . '/../..' . '/admin/survey/modules/mod_WPN/class.WPN.php', diff --git a/vendor/composer/ca-bundle/res/cacert.pem b/vendor/composer/ca-bundle/res/cacert.pem index 26f135040..6b70ee07b 100644 --- a/vendor/composer/ca-bundle/res/cacert.pem +++ b/vendor/composer/ca-bundle/res/cacert.pem @@ -1,7 +1,7 @@ ## ## Bundle of CA Root Certificates ## -## Certificate data from Mozilla as of: Tue Apr 26 03:12:05 2022 GMT +## Certificate data from Mozilla as of: Tue Jul 19 03:12:06 2022 GMT ## ## This is a bundle of X.509 certificates of public Certificate Authorities ## (CA). These were automatically extracted from Mozilla's root certificates @@ -14,7 +14,7 @@ ## Just configure this file as the SSLCACertificateFile. ## ## Conversion done with mk-ca-bundle.pl version 1.29. -## SHA256: 34a54d5191775c1bd37be6cfd3f09e831e072555dc3a2e51f4a2c4b0f8ada5cc +## SHA256: 9bf3799611fb58197f61d45e71ce3dc19f30e7dd73731915872ce5108a7bb066 ## @@ -993,30 +993,6 @@ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - Actalis Authentication Root CA ============================== -----BEGIN CERTIFICATE----- @@ -3345,3 +3321,140 @@ PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW -----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +E-Tugra Global Root CA RSA v3 +============================= +-----BEGIN CERTIFICATE----- +MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQELBQAwgYAxCzAJ +BgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAb +BgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290 +IENBIFJTQSB2MzAeFw0yMDAzMTgwOTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJU +UjEPMA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRF +LVR1Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBSU0Eg +djMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J77gnJY9LTQ91ew6aEOErx +jYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscxuj7X/iWpKo429NEvx7epXTPcMHD4QGxL +sqYxYdE0PD0xesevxKenhOGXpOhL9hd87jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF +/YP9f4RtNGx/ardLAQO/rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8q +QedmCeFLl+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bGwzrw +bMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4znKS4iicvObpCdg6 +04nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBOM/J+JjKsBY04pOZ2PJ8QaQ5tndLB +eSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiM +bIedBi3x7+PmBvrFZhNb/FAHnnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbg +h3cXTJ2w2AmoDVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD +AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSytK7mLfcm1ap1 +LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAImocn+M684uGMQQ +gC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN4 +38o2Fi+CiJ+8EUdPdk3ILY7r3y18Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/q +ln0F7psTpURs+APQ3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3s +SdPkvmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn99t2HVhjY +sCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQmhty3QUBjYZgv6Rn7rWl +DdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YAVSgU7NbHEqIbZULpkejLPoeJVF3Zr52X +nGnnCv8PWniLYypMfUeUP95L6VPQMPHF9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFH +IK+WEj5jlB0E5y67hscMmoi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiX +YY60MGo8bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ +-----END CERTIFICATE----- + +E-Tugra Global Root CA ECC v3 +============================= +-----BEGIN CERTIFICATE----- +MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV +BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV +BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB +IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP +MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1 +Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw +djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2 +w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31 +Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ +zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO +PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W +Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3 +-----END CERTIFICATE----- diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 72a79363f..c6d95db9d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,2256 +1,2180 @@ -{ - "packages": [ - { - "name": "composer/ca-bundle", - "version": "1.3.2", - "version_normalized": "1.3.2.0", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" - }, - "time": "2022-05-24T11:56:16+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "install-path": "./ca-bundle" +[ + { + "name": "composer/ca-bundle", + "version": "1.3.3", + "version_normalized": "1.3.3.0", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" }, - { - "name": "fgrosse/phpasn1", - "version": "v2.4.0", - "version_normalized": "2.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/fgrosse/PHPASN1.git", - "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fgrosse/PHPASN1/zipball/eef488991d53e58e60c9554b09b1201ca5ba9296", - "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296", - "shasum": "" - }, - "require": { - "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0" - }, - "require-dev": { - "php-coveralls/php-coveralls": "~2.0", - "phpunit/phpunit": "^6.3 || ^7.0 || ^8.0" - }, - "suggest": { - "ext-bcmath": "BCmath is the fallback extension for big integer calculations", - "ext-curl": "For loading OID information from the web if they have not bee defined statically", - "ext-gmp": "GMP is the preferred extension for big integer calculations", - "phpseclib/bcmath_compat": "BCmath polyfill for servers where neither GMP nor BCmath is available" - }, - "time": "2021-12-11T12:41:06+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "FG\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Friedrich Große", - "email": "friedrich.grosse@gmail.com", - "homepage": "https://github.com/FGrosse", - "role": "Author" - }, - { - "name": "All contributors", - "homepage": "https://github.com/FGrosse/PHPASN1/contributors" - } - ], - "description": "A PHP Framework that allows you to encode and decode arbitrary ASN.1 structures using the ITU-T X.690 Encoding Rules.", - "homepage": "https://github.com/FGrosse/PHPASN1", - "keywords": [ - "DER", - "asn.1", - "asn1", - "ber", - "binary", - "decoding", - "encoding", - "x.509", - "x.690", - "x509", - "x690" - ], - "support": { - "issues": "https://github.com/fgrosse/PHPASN1/issues", - "source": "https://github.com/fgrosse/PHPASN1/tree/v2.4.0" - }, - "install-path": "../fgrosse/phpasn1" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "shasum": "" }, - { - "name": "geoip2/geoip2", - "version": "v2.12.2", - "version_normalized": "2.12.2.0", - "source": { - "type": "git", - "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/83adb44ac4b9553d36b579a14673ed124583082f", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f", - "shasum": "" - }, - "require": { - "ext-json": "*", - "maxmind-db/reader": "~1.8", - "maxmind/web-service-common": "~0.8", - "php": ">=7.2" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^8.0 || ^9.0", - "squizlabs/php_codesniffer": "3.*" - }, - "time": "2021-11-30T18:15:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "GeoIp2\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Gregory J. Oschwald", - "email": "goschwald@maxmind.com", - "homepage": "https://www.maxmind.com/" - } - ], - "description": "MaxMind GeoIP2 PHP API", - "homepage": "https://github.com/maxmind/GeoIP2-php", - "keywords": [ - "IP", - "geoip", - "geoip2", - "geolocation", - "maxmind" - ], - "support": { - "issues": "https://github.com/maxmind/GeoIP2-php/issues", - "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.2" - }, - "install-path": "../geoip2/geoip2" + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" }, - { - "name": "guzzlehttp/guzzle", - "version": "6.5.8", - "version_normalized": "6.5.8.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", - "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.9", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" - }, - "suggest": { - "psr/log": "Required for using the Log middleware" - }, - "time": "2022-06-20T22:16:07+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5.8" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" - } - ], - "install-path": "../guzzlehttp/guzzle" + "require-dev": { + "phpstan/phpstan": "^0.12.55", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, - { - "name": "guzzlehttp/promises", - "version": "1.5.1", - "version_normalized": "1.5.1.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "time": "2021-10-22T20:56:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "install-path": "../guzzlehttp/promises" + "time": "2022-07-20T07:14:26+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } }, - { - "name": "guzzlehttp/psr7", - "version": "1.9.0", - "version_normalized": "1.9.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "time": "2022-06-20T21:43:03+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.9.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "install-path": "../guzzlehttp/psr7" + "installation-source": "dist", + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } }, - { - "name": "maxmind-db/reader", - "version": "v1.11.0", - "version_normalized": "1.11.0.0", - "source": { - "type": "git", - "url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git", - "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/b1f3c0699525336d09cc5161a2861268d9f2ae5b", - "reference": "b1f3c0699525336d09cc5161a2861268d9f2ae5b", - "shasum": "" + { + "url": "https://github.com/composer", + "type": "github" }, - "require": { - "php": ">=7.2" - }, - "conflict": { - "ext-maxminddb": "<1.10.1,>=2.0.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "php-coveralls/php-coveralls": "^2.1", - "phpstan/phpstan": "*", - "phpunit/phpcov": ">=6.0.0", - "phpunit/phpunit": ">=8.0.0,<10.0.0", - "squizlabs/php_codesniffer": "3.*" - }, - "suggest": { - "ext-bcmath": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder", - "ext-gmp": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder", - "ext-maxminddb": "A C-based database decoder that provides significantly faster lookups" - }, - "time": "2021-10-18T15:23:10+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "MaxMind\\Db\\": "src/MaxMind/Db" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Gregory J. Oschwald", - "email": "goschwald@maxmind.com", - "homepage": "https://www.maxmind.com/" - } - ], - "description": "MaxMind DB Reader API", - "homepage": "https://github.com/maxmind/MaxMind-DB-Reader-php", - "keywords": [ - "database", - "geoip", - "geoip2", - "geolocation", - "maxmind" - ], - "support": { - "issues": "https://github.com/maxmind/MaxMind-DB-Reader-php/issues", - "source": "https://github.com/maxmind/MaxMind-DB-Reader-php/tree/v1.11.0" - }, - "install-path": "../maxmind-db/reader" + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ] + }, + { + "name": "fgrosse/phpasn1", + "version": "v2.4.0", + "version_normalized": "2.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/fgrosse/PHPASN1.git", + "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296" }, - { - "name": "maxmind/web-service-common", - "version": "v0.9.0", - "version_normalized": "0.9.0.0", - "source": { - "type": "git", - "url": "https://github.com/maxmind/web-service-common-php.git", - "reference": "4dc5a3e8df38aea4ca3b1096cee3a038094e9b53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/4dc5a3e8df38aea4ca3b1096cee3a038094e9b53", - "reference": "4dc5a3e8df38aea4ca3b1096cee3a038094e9b53", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0.3", - "ext-curl": "*", - "ext-json": "*", - "php": ">=7.2" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpstan/phpstan": "*", - "phpunit/phpunit": "^8.0 || ^9.0", - "squizlabs/php_codesniffer": "3.*" - }, - "time": "2022-03-28T17:43:20+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "MaxMind\\Exception\\": "src/Exception", - "MaxMind\\WebService\\": "src/WebService" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Gregory Oschwald", - "email": "goschwald@maxmind.com" - } - ], - "description": "Internal MaxMind Web Service API", - "homepage": "https://github.com/maxmind/web-service-common-php", - "support": { - "issues": "https://github.com/maxmind/web-service-common-php/issues", - "source": "https://github.com/maxmind/web-service-common-php/tree/v0.9.0" - }, - "install-path": "../maxmind/web-service-common" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fgrosse/PHPASN1/zipball/eef488991d53e58e60c9554b09b1201ca5ba9296", + "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296", + "shasum": "" }, - { - "name": "minishlink/web-push", - "version": "v5.2.5", - "version_normalized": "5.2.5.0", - "source": { - "type": "git", - "url": "https://github.com/web-push-libs/web-push-php.git", - "reference": "0e75af425126435794ed42d7aa92119fd563e503" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-push-libs/web-push-php/zipball/0e75af425126435794ed42d7aa92119fd563e503", - "reference": "0e75af425126435794ed42d7aa92119fd563e503", - "shasum": "" - }, - "require": { - "ext-gmp": "*", - "ext-json": "*", - "guzzlehttp/guzzle": "^6.2", - "lib-openssl": "*", - "php": "^7.1", - "web-token/jwt-key-mgmt": "^1.0", - "web-token/jwt-signature": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpstan/phpstan": "0.11.2", - "phpunit/phpunit": "^7.0" - }, - "time": "2020-08-02T08:58:01+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Minishlink\\WebPush\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Louis Lagrange", - "email": "lagrange.louis@gmail.com", - "homepage": "https://github.com/Minishlink" - } - ], - "description": "Web Push library for PHP", - "homepage": "https://github.com/web-push-libs/web-push-php", - "keywords": [ - "Push API", - "WebPush", - "notifications", - "push", - "web" - ], - "install-path": "../minishlink/web-push" + "require": { + "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0" }, - { - "name": "paragonie/random_compat", - "version": "v9.99.100", - "version_normalized": "9.99.100.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", - "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", - "shasum": "" - }, - "require": { - "php": ">= 7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "time": "2020-10-15T08:29:30+00:00", - "type": "library", - "installation-source": "dist", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "install-path": "../paragonie/random_compat" + "require-dev": { + "php-coveralls/php-coveralls": "~2.0", + "phpunit/phpunit": "^6.3 || ^7.0 || ^8.0" }, - { - "name": "paragonie/sodium_compat", - "version": "v1.17.1", - "version_normalized": "1.17.1.0", - "source": { - "type": "git", - "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "ac994053faac18d386328c91c7900f930acadf1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/ac994053faac18d386328c91c7900f930acadf1e", - "reference": "ac994053faac18d386328c91c7900f930acadf1e", - "shasum": "" - }, - "require": { - "paragonie/random_compat": ">=1", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" - }, - "require-dev": { - "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9" - }, - "suggest": { - "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", - "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." - }, - "time": "2022-03-23T19:32:04+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "autoload.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com" - }, - { - "name": "Frank Denis", - "email": "jedisct1@pureftpd.org" - } - ], - "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", - "keywords": [ - "Authentication", - "BLAKE2b", - "ChaCha20", - "ChaCha20-Poly1305", - "Chapoly", - "Curve25519", - "Ed25519", - "EdDSA", - "Edwards-curve Digital Signature Algorithm", - "Elliptic Curve Diffie-Hellman", - "Poly1305", - "Pure-PHP cryptography", - "RFC 7748", - "RFC 8032", - "Salpoly", - "Salsa20", - "X25519", - "XChaCha20-Poly1305", - "XSalsa20-Poly1305", - "Xchacha20", - "Xsalsa20", - "aead", - "cryptography", - "ecdh", - "elliptic curve", - "elliptic curve cryptography", - "encryption", - "libsodium", - "php", - "public-key cryptography", - "secret-key cryptography", - "side-channel resistant" - ], - "support": { - "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.17.1" - }, - "install-path": "../paragonie/sodium_compat" + "suggest": { + "ext-bcmath": "BCmath is the fallback extension for big integer calculations", + "ext-curl": "For loading OID information from the web if they have not bee defined statically", + "ext-gmp": "GMP is the preferred extension for big integer calculations", + "phpseclib/bcmath_compat": "BCmath polyfill for servers where neither GMP nor BCmath is available" }, - { - "name": "paypal/paypal-checkout-sdk", - "version": "1.0.2", - "version_normalized": "1.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/paypal/Checkout-PHP-SDK.git", - "reference": "19992ce7051ff9e47e643f28abb8cc1b3e5f1812" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paypal/Checkout-PHP-SDK/zipball/19992ce7051ff9e47e643f28abb8cc1b3e5f1812", - "reference": "19992ce7051ff9e47e643f28abb8cc1b3e5f1812", - "shasum": "" - }, - "require": { - "paypal/paypalhttp": "1.0.1" - }, - "require-dev": { - "phpunit/phpunit": "^5.7" - }, - "time": "2021-09-21T20:57:38+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PayPalCheckoutSdk\\": "lib/PayPalCheckoutSdk", - "Sample\\": "samples/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "https://github.com/paypal/Checkout-PHP-SDK/blob/master/LICENSE" - ], - "authors": [ - { - "name": "PayPal", - "homepage": "https://github.com/paypal/Checkout-PHP-SDK/contributors" - } - ], - "description": "PayPal's PHP SDK for Checkout REST APIs", - "homepage": "http://github.com/paypal/Checkout-PHP-SDK/", - "keywords": [ - "checkout", - "orders", - "payments", - "paypal", - "rest", - "sdk" - ], - "support": { - "source": "https://github.com/paypal/Checkout-PHP-SDK/tree/1.0.2" - }, - "install-path": "../paypal/paypal-checkout-sdk" + "time": "2021-12-11T12:41:06+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } }, - { - "name": "paypal/paypalhttp", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/paypal/paypalhttp_php.git", - "reference": "7b09c89c80828e842c79230e7f156b61fbb68d25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paypal/paypalhttp_php/zipball/7b09c89c80828e842c79230e7f156b61fbb68d25", - "reference": "7b09c89c80828e842c79230e7f156b61fbb68d25", - "shasum": "" - }, - "require": { - "ext-curl": "*" - }, - "require-dev": { - "phpunit/phpunit": "^5.7", - "wiremock-php/wiremock-php": "1.43.2" - }, - "time": "2021-09-14T21:35:26+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PayPalHttp\\": "lib/PayPalHttp" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PayPal", - "homepage": "https://github.com/paypal/paypalhttp_php/contributors" - } - ], - "support": { - "issues": "https://github.com/paypal/paypalhttp_php/issues", - "source": "https://github.com/paypal/paypalhttp_php/tree/1.0.1" - }, - "install-path": "../paypal/paypalhttp" + "installation-source": "dist", + "autoload": { + "psr-4": { + "FG\\": "lib/" + } }, - { - "name": "phpmailer/phpmailer", - "version": "v6.6.3", - "version_normalized": "6.6.3.0", - "source": { - "type": "git", - "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "9400f305a898f194caff5521f64e5dfa926626f3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9400f305a898f194caff5521f64e5dfa926626f3", - "reference": "9400f305a898f194caff5521f64e5dfa926626f3", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-filter": "*", - "ext-hash": "*", - "php": ">=5.5.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "doctrine/annotations": "^1.2", - "php-parallel-lint/php-console-highlighter": "^1.0.0", - "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpcompatibility/php-compatibility": "^9.3.5", - "roave/security-advisories": "dev-latest", - "squizlabs/php_codesniffer": "^3.6.2", - "yoast/phpunit-polyfills": "^1.0.0" - }, - "suggest": { - "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", - "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", - "league/oauth2-google": "Needed for Google XOAUTH2 authentication", - "psr/log": "For optional PSR-3 debug logging", - "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", - "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" - }, - "time": "2022-06-20T09:21:02+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "PHPMailer\\PHPMailer\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-only" - ], - "authors": [ - { - "name": "Marcus Bointon", - "email": "phpmailer@synchromedia.co.uk" - }, - { - "name": "Jim Jagielski", - "email": "jimjag@gmail.com" - }, - { - "name": "Andy Prevost", - "email": "codeworxtech@users.sourceforge.net" - }, - { - "name": "Brent R. Matzelle" - } - ], - "description": "PHPMailer is a full-featured email creation and transfer class for PHP", - "support": { - "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.3" - }, - "funding": [ - { - "url": "https://github.com/Synchro", - "type": "github" - } - ], - "install-path": "../phpmailer/phpmailer" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2016-08-06T14:39:51+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "install-path": "../psr/http-message" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "time": "2019-03-08T08:55:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "install-path": "../ralouphie/getallheaders" - }, - { - "name": "sonata-project/google-authenticator", - "version": "2.3.1", - "version_normalized": "2.3.1.0", - "source": { - "type": "git", - "url": "https://github.com/sonata-project/GoogleAuthenticator.git", - "reference": "71a4189228f93a9662574dc8c65e77ef55061b59" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sonata-project/GoogleAuthenticator/zipball/71a4189228f93a9662574dc8c65e77ef55061b59", - "reference": "71a4189228f93a9662574dc8c65e77ef55061b59", - "shasum": "" - }, - "require": { - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^5.1.8" - }, - "time": "2021-02-15T19:23:18+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Google\\Authenticator\\": "src/", - "Sonata\\GoogleAuthenticator\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Thomas Rabaix", - "email": "thomas.rabaix@gmail.com" - }, - { - "name": "Christian Stocker", - "email": "me@chregu.tv" - }, - { - "name": "Andre DeMarre", - "homepage": "http://www.devnetwork.net/viewtopic.php?f=50&t=94989" - } - ], - "description": "Library to integrate Google Authenticator into a PHP project", - "homepage": "https://github.com/sonata-project/GoogleAuthenticator", - "keywords": [ - "google authenticator" - ], - "support": { - "issues": "https://github.com/sonata-project/GoogleAuthenticator/issues", - "source": "https://github.com/sonata-project/GoogleAuthenticator/tree/2.3.1" - }, - "funding": [ - { - "url": "https://github.com/OskarStark", - "type": "github" - }, - { - "url": "https://github.com/VincentLanglet", - "type": "github" - }, - { - "url": "https://github.com/core23", - "type": "github" - }, - { - "url": "https://github.com/wbloszyk", - "type": "github" - } - ], - "install-path": "../sonata-project/google-authenticator" - }, - { - "name": "spomky-labs/base64url", - "version": "v2.0.4", - "version_normalized": "2.0.4.0", - "source": { - "type": "git", - "url": "https://github.com/Spomky-Labs/base64url.git", - "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/base64url/zipball/7752ce931ec285da4ed1f4c5aa27e45e097be61d", - "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.11|^0.12", - "phpstan/phpstan-beberlei-assert": "^0.11|^0.12", - "phpstan/phpstan-deprecation-rules": "^0.11|^0.12", - "phpstan/phpstan-phpunit": "^0.11|^0.12", - "phpstan/phpstan-strict-rules": "^0.11|^0.12" - }, - "time": "2020-11-03T09:10:25+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Base64Url\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky-Labs/base64url/contributors" - } - ], - "description": "Base 64 URL Safe Encoding/Decoding PHP Library", - "homepage": "https://github.com/Spomky-Labs/base64url", - "keywords": [ - "base64", - "rfc4648", - "safe", - "url" - ], - "install-path": "../spomky-labs/base64url" - }, - { - "name": "stripe/stripe-php", - "version": "v7.128.0", - "version_normalized": "7.128.0.0", - "source": { - "type": "git", - "url": "https://github.com/stripe/stripe-php.git", - "reference": "c704949c49b72985c76cc61063aa26fefbd2724e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/c704949c49b72985c76cc61063aa26fefbd2724e", - "reference": "c704949c49b72985c76cc61063aa26fefbd2724e", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=5.6.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "3.5.0", - "phpstan/phpstan": "^1.2", - "phpunit/phpunit": "^5.7 || ^9.0", - "squizlabs/php_codesniffer": "^3.3" - }, - "time": "2022-05-05T17:18:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Stripe\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Stripe and contributors", - "homepage": "https://github.com/stripe/stripe-php/contributors" - } - ], - "description": "Stripe PHP Library", - "homepage": "https://stripe.com/", - "keywords": [ - "api", - "payment processing", - "stripe" - ], - "support": { - "issues": "https://github.com/stripe/stripe-php/issues", - "source": "https://github.com/stripe/stripe-php/tree/v7.128.0" - }, - "install-path": "../stripe/stripe-php" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", - "version_normalized": "1.26.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2022-05-24T11:49:31+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-idn" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", - "version_normalized": "1.26.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2022-05-24T11:49:31+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-intl-normalizer" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.26.0", - "version_normalized": "1.26.0.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "time": "2022-05-24T11:49:31+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "install-path": "../symfony/polyfill-php72" - }, - { - "name": "web-token/jwt-core", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-core.git", - "reference": "30e9df9e040d933043b16237f9dba7a3be746566" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-core/zipball/30e9df9e040d933043b16237f9dba7a3be746566", - "reference": "30e9df9e040d933043b16237f9dba7a3be746566", - "shasum": "" - }, - "require": { - "ext-gmp": "*", - "ext-mbstring": "*", - "fgrosse/phpasn1": "^2.0", - "php": "^7.1", - "spomky-labs/base64url": "^1.0|^2.0", - "web-token/jwt-util-ecc": "^1.3" - }, - "conflict": { - "spomky-labs/jose": "*" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Core\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "Core component of the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-core" - }, - { - "name": "web-token/jwt-key-mgmt", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-key-mgmt.git", - "reference": "65b1e908e50b0e5be6b28135085d3c1097b81801" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-key-mgmt/zipball/65b1e908e50b0e5be6b28135085d3c1097b81801", - "reference": "65b1e908e50b0e5be6b28135085d3c1097b81801", - "shasum": "" - }, - "require": { - "lib-openssl": "*", - "paragonie/sodium_compat": "^1.2", - "web-token/jwt-core": "^1.3", - "web-token/jwt-util-ecc": "^1.3" - }, - "require-dev": { - "php-http/httplug": "^1.1", - "php-http/message-factory": "^1.0", - "php-http/mock-client": "^1.0", - "phpunit/phpunit": "^6.0|^7.0" - }, - "suggest": { - "php-http/httplug": "To enable JKU/X5U support.", - "php-http/message-factory": "To enable JKU/X5U support." - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\KeyManagement\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-key-mgmt/contributors" - } - ], - "description": "Key Management component of the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-key-mgmt" - }, - { - "name": "web-token/jwt-signature", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature.git", - "reference": "00f23e997c9032536444f819bc3338ab475d69f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature/zipball/00f23e997c9032536444f819bc3338ab475d69f9", - "reference": "00f23e997c9032536444f819bc3338ab475d69f9", - "shasum": "" - }, - "require": { - "web-token/jwt-core": "^1.3", - "web-token/jwt-signature-algorithm-ecdsa": "^1.3", - "web-token/jwt-signature-algorithm-eddsa": "^1.3", - "web-token/jwt-signature-algorithm-hmac": "^1.3", - "web-token/jwt-signature-algorithm-none": "^1.3", - "web-token/jwt-signature-algorithm-rsa": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "suggest": { - "web-token/jwt-signature-algorithm-ecdsa": "ECDSA Based Signature Algorithms", - "web-token/jwt-signature-algorithm-eddsa": "EdDSA Based Signature Algorithms", - "web-token/jwt-signature-algorithm-experimental": "Experimental Signature Algorithms", - "web-token/jwt-signature-algorithm-hmac": "HMAC Based Signature Algorithms", - "web-token/jwt-signature-algorithm-none": "None Signature Algorithm", - "web-token/jwt-signature-algorithm-rsa": "RSA Based Signature Algorithms" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-signature/contributors" - } - ], - "description": "Signature component of the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature" - }, - { - "name": "web-token/jwt-signature-algorithm-ecdsa", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature-algorithm-ecdsa.git", - "reference": "a3babd3b82c29c739d426271ccb9dc1a56222e36" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-ecdsa/zipball/a3babd3b82c29c739d426271ccb9dc1a56222e36", - "reference": "a3babd3b82c29c739d426271ccb9dc1a56222e36", - "shasum": "" - }, - "require": { - "web-token/jwt-signature": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\Algorithm\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "ECDSA Based Signature Algorithms the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature-algorithm-ecdsa" - }, - { - "name": "web-token/jwt-signature-algorithm-eddsa", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature-algorithm-eddsa.git", - "reference": "b0dad134313b14b3ba077b63a7afcc2b38e5f793" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-eddsa/zipball/b0dad134313b14b3ba077b63a7afcc2b38e5f793", - "reference": "b0dad134313b14b3ba077b63a7afcc2b38e5f793", - "shasum": "" - }, - "require": { - "web-token/jwt-signature": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\Algorithm\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "EdDSA Signature Algorithm the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature-algorithm-eddsa" - }, - { - "name": "web-token/jwt-signature-algorithm-hmac", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature-algorithm-hmac.git", - "reference": "3bc85e1d13804902a8d81a11f58c28c9a471b5e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-hmac/zipball/3bc85e1d13804902a8d81a11f58c28c9a471b5e2", - "reference": "3bc85e1d13804902a8d81a11f58c28c9a471b5e2", - "shasum": "" - }, - "require": { - "web-token/jwt-signature": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\Algorithm\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "HMAC Based Signature Algorithms the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature-algorithm-hmac" - }, - { - "name": "web-token/jwt-signature-algorithm-none", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature-algorithm-none.git", - "reference": "0391e160367e85846736e63ea6026e2dab667b6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-none/zipball/0391e160367e85846736e63ea6026e2dab667b6e", - "reference": "0391e160367e85846736e63ea6026e2dab667b6e", - "shasum": "" - }, - "require": { - "web-token/jwt-signature": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\Algorithm\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "None Signature Algorithm the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature-algorithm-none" - }, - { - "name": "web-token/jwt-signature-algorithm-rsa", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-signature-algorithm-rsa.git", - "reference": "344181ef6cdd3aca77f7ff7defc9fb502eb33ec0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-rsa/zipball/344181ef6cdd3aca77f7ff7defc9fb502eb33ec0", - "reference": "344181ef6cdd3aca77f7ff7defc9fb502eb33ec0", - "shasum": "" - }, - "require": { - "web-token/jwt-signature": "^1.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Signature\\Algorithm\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "RSA Based Signature Algorithms the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-signature-algorithm-rsa" - }, - { - "name": "web-token/jwt-util-ecc", - "version": "v1.3.10", - "version_normalized": "1.3.10.0", - "source": { - "type": "git", - "url": "https://github.com/web-token/jwt-util-ecc.git", - "reference": "2011af8454561ebce06a77fcd681c29a252e0068" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-token/jwt-util-ecc/zipball/2011af8454561ebce06a77fcd681c29a252e0068", - "reference": "2011af8454561ebce06a77fcd681c29a252e0068", - "shasum": "" - }, - "require": { - "ext-gmp": "*", - "ext-mbstring": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0|^7.0" - }, - "time": "2020-03-20T13:29:04+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Jose\\Component\\Core\\Util\\Ecc\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-token/jwt-core/contributors" - } - ], - "description": "ECC Tools for the JWT Framework.", - "homepage": "https://github.com/web-token", - "keywords": [ - "JOSE", - "JWE", - "JWK", - "JWKSet", - "JWS", - "Jot", - "RFC7515", - "RFC7516", - "RFC7517", - "RFC7518", - "RFC7519", - "RFC7520", - "bundle", - "jwa", - "jwt", - "symfony" - ], - "install-path": "../web-token/jwt-util-ecc" + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Friedrich Große", + "email": "friedrich.grosse@gmail.com", + "homepage": "https://github.com/FGrosse", + "role": "Author" + }, + { + "name": "All contributors", + "homepage": "https://github.com/FGrosse/PHPASN1/contributors" + } + ], + "description": "A PHP Framework that allows you to encode and decode arbitrary ASN.1 structures using the ITU-T X.690 Encoding Rules.", + "homepage": "https://github.com/FGrosse/PHPASN1", + "keywords": [ + "DER", + "asn.1", + "asn1", + "ber", + "binary", + "decoding", + "encoding", + "x.509", + "x.690", + "x509", + "x690" + ], + "support": { + "issues": "https://github.com/fgrosse/PHPASN1/issues", + "source": "https://github.com/fgrosse/PHPASN1/tree/v2.4.0" } - ], - "dev": false, - "dev-package-names": [] -} + }, + { + "name": "geoip2/geoip2", + "version": "v2.10.0", + "version_normalized": "2.10.0.0", + "source": { + "type": "git", + "url": "https://github.com/maxmind/GeoIP2-php.git", + "reference": "419557cd21d9fe039721a83490701a58c8ce784a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/419557cd21d9fe039721a83490701a58c8ce784a", + "reference": "419557cd21d9fe039721a83490701a58c8ce784a", + "shasum": "" + }, + "require": { + "ext-json": "*", + "maxmind-db/reader": "~1.5", + "maxmind/web-service-common": "~0.6", + "php": ">=5.6" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "5.*", + "squizlabs/php_codesniffer": "3.*" + }, + "time": "2019-12-12T18:48:39+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "GeoIp2\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Gregory J. Oschwald", + "email": "goschwald@maxmind.com", + "homepage": "https://www.maxmind.com/" + } + ], + "description": "MaxMind GeoIP2 PHP API", + "homepage": "https://github.com/maxmind/GeoIP2-php", + "keywords": [ + "IP", + "geoip", + "geoip2", + "geolocation", + "maxmind" + ] + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "version_normalized": "6.5.8.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "time": "2022-06-20T22:16:07+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ] + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.1", + "version_normalized": "1.5.1.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "time": "2021-10-22T20:56:57+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ] + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "version_normalized": "1.9.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "time": "2022-06-20T21:43:03+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ] + }, + { + "name": "maxmind-db/reader", + "version": "v1.6.0", + "version_normalized": "1.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/maxmind/MaxMind-DB-Reader-php.git", + "reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maxmind/MaxMind-DB-Reader-php/zipball/febd4920bf17c1da84cef58e56a8227dfb37fbe4", + "reference": "febd4920bf17c1da84cef58e56a8227dfb37fbe4", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "conflict": { + "ext-maxminddb": "<1.6.0,>=2.0.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "2.*", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpcov": "^3.0", + "phpunit/phpunit": "5.*", + "squizlabs/php_codesniffer": "3.*" + }, + "suggest": { + "ext-bcmath": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder", + "ext-gmp": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder", + "ext-maxminddb": "A C-based database decoder that provides significantly faster lookups" + }, + "time": "2019-12-19T22:59:03+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "MaxMind\\Db\\": "src/MaxMind/Db" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Gregory J. Oschwald", + "email": "goschwald@maxmind.com", + "homepage": "https://www.maxmind.com/" + } + ], + "description": "MaxMind DB Reader API", + "homepage": "https://github.com/maxmind/MaxMind-DB-Reader-php", + "keywords": [ + "database", + "geoip", + "geoip2", + "geolocation", + "maxmind" + ] + }, + { + "name": "maxmind/web-service-common", + "version": "v0.7.0", + "version_normalized": "0.7.0.0", + "source": { + "type": "git", + "url": "https://github.com/maxmind/web-service-common-php.git", + "reference": "74c996c218ada5c639c8c2f076756e059f5552fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/74c996c218ada5c639c8c2f076756e059f5552fc", + "reference": "74c996c218ada5c639c8c2f076756e059f5552fc", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0.3", + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.6" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0", + "squizlabs/php_codesniffer": "3.*" + }, + "time": "2020-05-06T14:07:26+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "MaxMind\\Exception\\": "src/Exception", + "MaxMind\\WebService\\": "src/WebService" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Gregory Oschwald", + "email": "goschwald@maxmind.com" + } + ], + "description": "Internal MaxMind Web Service API", + "homepage": "https://github.com/maxmind/web-service-common-php" + }, + { + "name": "minishlink/web-push", + "version": "v5.2.5", + "version_normalized": "5.2.5.0", + "source": { + "type": "git", + "url": "https://github.com/web-push-libs/web-push-php.git", + "reference": "0e75af425126435794ed42d7aa92119fd563e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-push-libs/web-push-php/zipball/0e75af425126435794ed42d7aa92119fd563e503", + "reference": "0e75af425126435794ed42d7aa92119fd563e503", + "shasum": "" + }, + "require": { + "ext-gmp": "*", + "ext-json": "*", + "guzzlehttp/guzzle": "^6.2", + "lib-openssl": "*", + "php": "^7.1", + "web-token/jwt-key-mgmt": "^1.0", + "web-token/jwt-signature": "^1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpstan/phpstan": "0.11.2", + "phpunit/phpunit": "^7.0" + }, + "time": "2020-08-02T08:58:01+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Minishlink\\WebPush\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Louis Lagrange", + "email": "lagrange.louis@gmail.com", + "homepage": "https://github.com/Minishlink" + } + ], + "description": "Web Push library for PHP", + "homepage": "https://github.com/web-push-libs/web-push-php", + "keywords": [ + "Push API", + "WebPush", + "notifications", + "push", + "web" + ] + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "version_normalized": "9.99.100.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "time": "2020-10-15T08:29:30+00:00", + "type": "library", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ] + }, + { + "name": "paragonie/sodium_compat", + "version": "v1.17.1", + "version_normalized": "1.17.1.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "ac994053faac18d386328c91c7900f930acadf1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/ac994053faac18d386328c91c7900f930acadf1e", + "reference": "ac994053faac18d386328c91c7900f930acadf1e", + "shasum": "" + }, + "require": { + "paragonie/random_compat": ">=1", + "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9" + }, + "suggest": { + "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", + "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + }, + "time": "2022-03-23T19:32:04+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "autoload.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + }, + { + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" + } + ], + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "keywords": [ + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" + ], + "support": { + "issues": "https://github.com/paragonie/sodium_compat/issues", + "source": "https://github.com/paragonie/sodium_compat/tree/v1.17.1" + } + }, + { + "name": "paypal/paypal-checkout-sdk", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/paypal/Checkout-PHP-SDK.git", + "reference": "19992ce7051ff9e47e643f28abb8cc1b3e5f1812" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paypal/Checkout-PHP-SDK/zipball/19992ce7051ff9e47e643f28abb8cc1b3e5f1812", + "reference": "19992ce7051ff9e47e643f28abb8cc1b3e5f1812", + "shasum": "" + }, + "require": { + "paypal/paypalhttp": "1.0.1" + }, + "require-dev": { + "phpunit/phpunit": "^5.7" + }, + "time": "2021-09-21T20:57:38+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PayPalCheckoutSdk\\": "lib/PayPalCheckoutSdk", + "Sample\\": "samples/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "https://github.com/paypal/Checkout-PHP-SDK/blob/master/LICENSE" + ], + "authors": [ + { + "name": "PayPal", + "homepage": "https://github.com/paypal/Checkout-PHP-SDK/contributors" + } + ], + "description": "PayPal's PHP SDK for Checkout REST APIs", + "homepage": "http://github.com/paypal/Checkout-PHP-SDK/", + "keywords": [ + "checkout", + "orders", + "payments", + "paypal", + "rest", + "sdk" + ], + "support": { + "source": "https://github.com/paypal/Checkout-PHP-SDK/tree/1.0.2" + } + }, + { + "name": "paypal/paypalhttp", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/paypal/paypalhttp_php.git", + "reference": "7b09c89c80828e842c79230e7f156b61fbb68d25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paypal/paypalhttp_php/zipball/7b09c89c80828e842c79230e7f156b61fbb68d25", + "reference": "7b09c89c80828e842c79230e7f156b61fbb68d25", + "shasum": "" + }, + "require": { + "ext-curl": "*" + }, + "require-dev": { + "phpunit/phpunit": "^5.7", + "wiremock-php/wiremock-php": "1.43.2" + }, + "time": "2021-09-14T21:35:26+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PayPalHttp\\": "lib/PayPalHttp" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PayPal", + "homepage": "https://github.com/paypal/paypalhttp_php/contributors" + } + ], + "support": { + "issues": "https://github.com/paypal/paypalhttp_php/issues", + "source": "https://github.com/paypal/paypalhttp_php/tree/1.0.1" + } + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.6.3", + "version_normalized": "6.6.3.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "9400f305a898f194caff5521f64e5dfa926626f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9400f305a898f194caff5521f64e5dfa926626f3", + "reference": "9400f305a898f194caff5521f64e5dfa926626f3", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.2", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.6.2", + "yoast/phpunit-polyfills": "^1.0.0" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "time": "2022-06-20T09:21:02+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.3" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ] + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-08-06T14:39:51+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ] + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "version_normalized": "3.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "time": "2019-03-08T08:55:37+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders." + }, + { + "name": "sonata-project/google-authenticator", + "version": "2.2.0", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sonata-project/GoogleAuthenticator.git", + "reference": "feda53899b26af24e3db2fe7a3e5f053ca483762" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sonata-project/GoogleAuthenticator/zipball/feda53899b26af24e3db2fe7a3e5f053ca483762", + "reference": "feda53899b26af24e3db2fe7a3e5f053ca483762", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.0" + }, + "time": "2018-07-18T22:08:02+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Authenticator\\": "src/", + "Sonata\\GoogleAuthenticator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Stocker", + "email": "me@chregu.tv" + }, + { + "name": "Andre DeMarre", + "homepage": "http://www.devnetwork.net/viewtopic.php?f=50&t=94989" + }, + { + "name": "Thomas Rabaix", + "email": "thomas.rabaix@gmail.com" + } + ], + "description": "Library to integrate Google Authenticator into a PHP project", + "homepage": "https://github.com/sonata-project/GoogleAuthenticator", + "keywords": [ + "google authenticator" + ], + "abandoned": true + }, + { + "name": "spomky-labs/base64url", + "version": "v2.0.4", + "version_normalized": "2.0.4.0", + "source": { + "type": "git", + "url": "https://github.com/Spomky-Labs/base64url.git", + "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Spomky-Labs/base64url/zipball/7752ce931ec285da4ed1f4c5aa27e45e097be61d", + "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.11|^0.12", + "phpstan/phpstan-beberlei-assert": "^0.11|^0.12", + "phpstan/phpstan-deprecation-rules": "^0.11|^0.12", + "phpstan/phpstan-phpunit": "^0.11|^0.12", + "phpstan/phpstan-strict-rules": "^0.11|^0.12" + }, + "time": "2020-11-03T09:10:25+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Base64Url\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky-Labs/base64url/contributors" + } + ], + "description": "Base 64 URL Safe Encoding/Decoding PHP Library", + "homepage": "https://github.com/Spomky-Labs/base64url", + "keywords": [ + "base64", + "rfc4648", + "safe", + "url" + ] + }, + { + "name": "stripe/stripe-php", + "version": "v7.128.0", + "version_normalized": "7.128.0.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "c704949c49b72985c76cc61063aa26fefbd2724e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/c704949c49b72985c76cc61063aa26fefbd2724e", + "reference": "c704949c49b72985c76cc61063aa26fefbd2724e", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.5.0", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0", + "squizlabs/php_codesniffer": "^3.3" + }, + "time": "2022-05-05T17:18:02+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "support": { + "issues": "https://github.com/stripe/stripe-php/issues", + "source": "https://github.com/stripe/stripe-php/tree/v7.128.0" + } + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "time": "2022-05-24T11:49:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ] + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "time": "2022-05-24T11:49:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ] + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "version_normalized": "1.26.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2022-05-24T11:49:31+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ] + }, + { + "name": "web-token/jwt-core", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-core.git", + "reference": "30e9df9e040d933043b16237f9dba7a3be746566" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-core/zipball/30e9df9e040d933043b16237f9dba7a3be746566", + "reference": "30e9df9e040d933043b16237f9dba7a3be746566", + "shasum": "" + }, + "require": { + "ext-gmp": "*", + "ext-mbstring": "*", + "fgrosse/phpasn1": "^2.0", + "php": "^7.1", + "spomky-labs/base64url": "^1.0|^2.0", + "web-token/jwt-util-ecc": "^1.3" + }, + "conflict": { + "spomky-labs/jose": "*" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Core\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "Core component of the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-key-mgmt", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-key-mgmt.git", + "reference": "65b1e908e50b0e5be6b28135085d3c1097b81801" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-key-mgmt/zipball/65b1e908e50b0e5be6b28135085d3c1097b81801", + "reference": "65b1e908e50b0e5be6b28135085d3c1097b81801", + "shasum": "" + }, + "require": { + "lib-openssl": "*", + "paragonie/sodium_compat": "^1.2", + "web-token/jwt-core": "^1.3", + "web-token/jwt-util-ecc": "^1.3" + }, + "require-dev": { + "php-http/httplug": "^1.1", + "php-http/message-factory": "^1.0", + "php-http/mock-client": "^1.0", + "phpunit/phpunit": "^6.0|^7.0" + }, + "suggest": { + "php-http/httplug": "To enable JKU/X5U support.", + "php-http/message-factory": "To enable JKU/X5U support." + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\KeyManagement\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-key-mgmt/contributors" + } + ], + "description": "Key Management component of the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature.git", + "reference": "00f23e997c9032536444f819bc3338ab475d69f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature/zipball/00f23e997c9032536444f819bc3338ab475d69f9", + "reference": "00f23e997c9032536444f819bc3338ab475d69f9", + "shasum": "" + }, + "require": { + "web-token/jwt-core": "^1.3", + "web-token/jwt-signature-algorithm-ecdsa": "^1.3", + "web-token/jwt-signature-algorithm-eddsa": "^1.3", + "web-token/jwt-signature-algorithm-hmac": "^1.3", + "web-token/jwt-signature-algorithm-none": "^1.3", + "web-token/jwt-signature-algorithm-rsa": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "suggest": { + "web-token/jwt-signature-algorithm-ecdsa": "ECDSA Based Signature Algorithms", + "web-token/jwt-signature-algorithm-eddsa": "EdDSA Based Signature Algorithms", + "web-token/jwt-signature-algorithm-experimental": "Experimental Signature Algorithms", + "web-token/jwt-signature-algorithm-hmac": "HMAC Based Signature Algorithms", + "web-token/jwt-signature-algorithm-none": "None Signature Algorithm", + "web-token/jwt-signature-algorithm-rsa": "RSA Based Signature Algorithms" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-signature/contributors" + } + ], + "description": "Signature component of the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature-algorithm-ecdsa", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature-algorithm-ecdsa.git", + "reference": "a3babd3b82c29c739d426271ccb9dc1a56222e36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-ecdsa/zipball/a3babd3b82c29c739d426271ccb9dc1a56222e36", + "reference": "a3babd3b82c29c739d426271ccb9dc1a56222e36", + "shasum": "" + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "ECDSA Based Signature Algorithms the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature-algorithm-eddsa", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature-algorithm-eddsa.git", + "reference": "b0dad134313b14b3ba077b63a7afcc2b38e5f793" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-eddsa/zipball/b0dad134313b14b3ba077b63a7afcc2b38e5f793", + "reference": "b0dad134313b14b3ba077b63a7afcc2b38e5f793", + "shasum": "" + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "EdDSA Signature Algorithm the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature-algorithm-hmac", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature-algorithm-hmac.git", + "reference": "3bc85e1d13804902a8d81a11f58c28c9a471b5e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-hmac/zipball/3bc85e1d13804902a8d81a11f58c28c9a471b5e2", + "reference": "3bc85e1d13804902a8d81a11f58c28c9a471b5e2", + "shasum": "" + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "HMAC Based Signature Algorithms the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature-algorithm-none", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature-algorithm-none.git", + "reference": "0391e160367e85846736e63ea6026e2dab667b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-none/zipball/0391e160367e85846736e63ea6026e2dab667b6e", + "reference": "0391e160367e85846736e63ea6026e2dab667b6e", + "shasum": "" + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "None Signature Algorithm the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-signature-algorithm-rsa", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-signature-algorithm-rsa.git", + "reference": "344181ef6cdd3aca77f7ff7defc9fb502eb33ec0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-signature-algorithm-rsa/zipball/344181ef6cdd3aca77f7ff7defc9fb502eb33ec0", + "reference": "344181ef6cdd3aca77f7ff7defc9fb502eb33ec0", + "shasum": "" + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "RSA Based Signature Algorithms the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + }, + { + "name": "web-token/jwt-util-ecc", + "version": "v1.3.10", + "version_normalized": "1.3.10.0", + "source": { + "type": "git", + "url": "https://github.com/web-token/jwt-util-ecc.git", + "reference": "2011af8454561ebce06a77fcd681c29a252e0068" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/web-token/jwt-util-ecc/zipball/2011af8454561ebce06a77fcd681c29a252e0068", + "reference": "2011af8454561ebce06a77fcd681c29a252e0068", + "shasum": "" + }, + "require": { + "ext-gmp": "*", + "ext-mbstring": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "time": "2020-03-20T13:29:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Jose\\Component\\Core\\Util\\Ecc\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "description": "ECC Tools for the JWT Framework.", + "homepage": "https://github.com/web-token", + "keywords": [ + "JOSE", + "JWE", + "JWK", + "JWKSet", + "JWS", + "Jot", + "RFC7515", + "RFC7516", + "RFC7517", + "RFC7518", + "RFC7519", + "RFC7520", + "bundle", + "jwa", + "jwt", + "symfony" + ] + } +] diff --git a/vendor/geoip2/geoip2/.github/dependabot.yml b/vendor/geoip2/geoip2/.github/dependabot.yml deleted file mode 100644 index c630ffa6b..000000000 --- a/vendor/geoip2/geoip2/.github/dependabot.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 -updates: -- package-ecosystem: composer - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 diff --git a/vendor/geoip2/geoip2/.github/workflows/lint.yml b/vendor/geoip2/geoip2/.github/workflows/lint.yml deleted file mode 100644 index 61dcb5631..000000000 --- a/vendor/geoip2/geoip2/.github/workflows/lint.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: PHP Lints - -on: - push: - pull_request: - schedule: - - cron: '55 3 * * SUN' - -jobs: - run: - runs-on: ubuntu-latest - name: "PHP Lints" - steps: - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 7.4 - - - name: Checkout - uses: actions/checkout@v2 - - - name: Install dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: Lint with php-cs-fixer - run: vendor/bin/php-cs-fixer fix --verbose --diff --dry-run - - - name: Lint with phpcs - run: vendor/bin/phpcs --standard=PSR2 src/ - - - name: Lint with phpstan - run: vendor/bin/phpstan analyze diff --git a/vendor/geoip2/geoip2/.github/workflows/test.yml b/vendor/geoip2/geoip2/.github/workflows/test.yml deleted file mode 100644 index eba727d02..000000000 --- a/vendor/geoip2/geoip2/.github/workflows/test.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: PHPUnit - -on: - push: - pull_request: - schedule: - - cron: '55 3 * * SUN' - -jobs: - run: - runs-on: ${{ matrix.operating-system }} - strategy: - matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest] - php-versions: ['7.2', '7.3', '7.4', '8.0'] - name: "PHP ${{ matrix.php-versions }} test on ${{ matrix.operating-system }}" - steps: - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - tools: composer - - - name: Setup problem matchers for PHPUnit - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - - - name: Checkout - uses: actions/checkout@v2 - with: - submodules: true - - - name: Install dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: Test with phpunit - run: vendor/bin/phpunit --coverage-text diff --git a/vendor/geoip2/geoip2/.php-cs-fixer.php b/vendor/geoip2/geoip2/.php-cs-fixer.php deleted file mode 100644 index b95081077..000000000 --- a/vendor/geoip2/geoip2/.php-cs-fixer.php +++ /dev/null @@ -1,45 +0,0 @@ -setRiskyAllowed(true) - ->setRules([ - '@Symfony' => true, - '@Symfony:risky' => true, - '@PhpCsFixer' => true, - '@PSR1' => true, - '@PSR2' => true, - '@PSR12' => true, - '@PSR12:risky' => true, - 'array_syntax' => ['syntax' => 'short'], - 'combine_consecutive_unsets' => true, - 'concat_space' => [ 'spacing' => 'one'], - 'explicit_string_variable' => false, - 'fopen_flags' => ['b_mode' => true], - 'heredoc_to_nowdoc' => true, - 'increment_style' => false, - 'list_syntax' => ['syntax' => 'short'], - 'multiline_whitespace_before_semicolons' => false, - 'no_unreachable_default_argument_value' => true, - 'no_useless_else' => true, - 'no_useless_return' => true, - 'ordered_imports' => true, - 'php_unit_strict' => true, - 'php_unit_test_class_requires_covers' => true, - 'phpdoc_add_missing_param_annotation' => true, - 'phpdoc_no_alias_tag' => false, - 'phpdoc_order' => true, - 'phpdoc_types_order' => ['sort_algorithm' => 'alpha', 'null_adjustment' => 'always_last'], - 'semicolon_after_instruction' => true, - 'single_line_throw' => false, - 'strict_comparison' => true, - 'strict_param' => true, - 'yoda_style' => false, - ]) - ->setFinder( - PhpCsFixer\Finder::create() - ->exclude('ext') - ->in(__DIR__) - ) -; diff --git a/vendor/geoip2/geoip2/CHANGELOG.md b/vendor/geoip2/geoip2/CHANGELOG.md index c88fa216f..5af399874 100644 --- a/vendor/geoip2/geoip2/CHANGELOG.md +++ b/vendor/geoip2/geoip2/CHANGELOG.md @@ -1,39 +1,6 @@ CHANGELOG ========= -2.12.2 (2021-11-30) -------------------- - -* The `geoip2.phar` now works when included from another directory. - Reported by Eduardo Ruiz. GitHub #179. - -2.12.1 (2021-11-23) -------------------- - -* The `geoip2.phar` included in 2.12.0 would only work in CLI applications. - This was due to a change in Box 3.x. The Phar should now work in all - applications. This release only affects users of the Phar file. - -2.12.0 (2021-11-18) -------------------- - -* Support for mobile country code (MCC) and mobile network codes (MNC) was - added for the GeoIP2 ISP and Enterprise databases as well as the GeoIP2 - City and Insights web services. `$mobileCountryCode` and - `$mobileNetworkCode` properties were added to `GeoIp2\Model\Isp` - for the GeoIP2 ISP database and `GeoIp2\Record\Traits` for the Enterprise - database and the GeoIP2 City and Insights web services. We expect this data - to be available by late January, 2022. -* `geoip2.phar` is now generated with Box 3.x. - -2.11.0 (2020-10-01) -------------------- - -* IMPORTANT: PHP 7.2 or greater is now required. -* Added the `isResidentialProxy` property to `GeoIp2\Model\AnonymousIP` and - `GeoIp2\Record\Traits`. -* Additional type hints have been added. - 2.10.0 (2019-12-12) ------------------- diff --git a/vendor/geoip2/geoip2/README.md b/vendor/geoip2/geoip2/README.md index 9d92e6f49..e4a74dc10 100644 --- a/vendor/geoip2/geoip2/README.md +++ b/vendor/geoip2/geoip2/README.md @@ -2,9 +2,11 @@ ## Description ## -This package provides an API for the GeoIP2 and GeoLite2 -[web services](https://dev.maxmind.com/geoip/docs/web-services?lang=en) and -[databases](https://dev.maxmind.com/geoip/docs/databases?lang=en). +This package provides an API for the GeoIP2 +[web services](https://dev.maxmind.com/geoip/geoip2/web-services) and +[databases](https://dev.maxmind.com/geoip/geoip2/downloadable). The API also +works with the free +[GeoLite2 databases](https://dev.maxmind.com/geoip/geoip2/geolite2/). ## Install via Composer ## @@ -24,7 +26,7 @@ You should now have the file `composer.phar` in your project directory. Run in your project root: -```sh +``` php composer.phar require geoip2/geoip2:~2.0 ``` @@ -263,33 +265,13 @@ print($record->network . "\n"); // '128.101.101.101/32' ### Usage ### To use this API, you must create a new `\GeoIp2\WebService\Client` -object with your `$accountId` and `$licenseKey`: +object with your `$accountId` and `$licenseKey`, then you call the method +corresponding to a specific end point, passing it the IP address you want to +look up. -```php -$client = new Client(42, 'abcdef123456'); -``` - -You may also call the constructor with additional arguments. The third argument -specifies the language preferences when using the `->name` method on the model -classes that this client creates. The fourth argument is additional options -such as `host` and `timeout`. - -For instance, to call the GeoLite2 web service instead of GeoIP2 Precision: - -```php -$client = new Client(42, 'abcdef123456', ['en'], ['host' => 'geolite.info']); -``` - -After creating the client, you may now call the method corresponding to a -specific endpoint with the IP address to look up, e.g.: - -```php -$record = $client->city('128.101.101.101'); -``` - -If the request succeeds, the method call will return a model class for the -endpoint you called. This model in turn contains multiple record classes, each -of which represents part of the data returned by the web service. +If the request succeeds, the method call will return a model class for the end +point you called. This model in turn contains multiple record classes, each of +which represents part of the data returned by the web service. If there is an error, a structured exception is thrown. @@ -304,8 +286,7 @@ use GeoIp2\WebService\Client; // This creates a Client object that can be reused across requests. // Replace "42" with your account ID and "license_key" with your license -// key. Set the "host" to "geolite.info" in the fourth argument options -// array to use the GeoLite2 web service instead of GeoIP2 Precision. +// key. $client = new Client(42, 'abcdef123456'); // Replace "city" with the method corresponding to the web service that @@ -355,7 +336,7 @@ Because of these factors, it is possible for any end point to return a record where some or all of the attributes are unpopulated. See the -[GeoIP2 Precision web service docs](https://dev.maxmind.com/geoip/docs/web-services?lang=en) +[GeoIP2 Precision web service docs](https://dev.maxmind.com/geoip/geoip2/web-services) for details on what data each end point may return. The only piece of data which is always returned is the `ipAddress` @@ -405,7 +386,7 @@ to the client API, please see ## Requirements ## -This library requires PHP 7.2 or greater. +This library requires PHP 5.6 or greater. This library also relies on the [MaxMind DB Reader](https://github.com/maxmind/MaxMind-DB-Reader-php). @@ -423,6 +404,6 @@ The GeoIP2 PHP API uses [Semantic Versioning](https://semver.org/). ## Copyright and License ## -This software is Copyright (c) 2013-2020 by MaxMind, Inc. +This software is Copyright (c) 2013-2019 by MaxMind, Inc. This is free software, licensed under the Apache License, Version 2.0. diff --git a/vendor/geoip2/geoip2/composer.json b/vendor/geoip2/geoip2/composer.json index e29513b69..a945d1ab8 100644 --- a/vendor/geoip2/geoip2/composer.json +++ b/vendor/geoip2/geoip2/composer.json @@ -13,16 +13,15 @@ } ], "require": { - "maxmind-db/reader": "~1.8", - "maxmind/web-service-common": "~0.8", - "php": ">=7.2", + "maxmind-db/reader": "~1.5", + "maxmind/web-service-common": "~0.6", + "php": ">=5.6", "ext-json": "*" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpunit/phpunit": "^8.0 || ^9.0", - "squizlabs/php_codesniffer": "3.*", - "phpstan/phpstan": "*" + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "5.*", + "squizlabs/php_codesniffer": "3.*" }, "autoload": { "psr-4": { diff --git a/vendor/geoip2/geoip2/examples/benchmark.php b/vendor/geoip2/geoip2/examples/benchmark.php index a735a78ba..7af2a5db1 100644 --- a/vendor/geoip2/geoip2/examples/benchmark.php +++ b/vendor/geoip2/geoip2/examples/benchmark.php @@ -10,8 +10,7 @@ $reader = new Reader('GeoIP2-City.mmdb'); $count = 500000; $startTime = microtime(true); for ($i = 0; $i < $count; ++$i) { - $ip = long2ip(rand(0, 2 ** 32 - 1)); - + $ip = long2ip(rand(0, pow(2, 32) - 1)); try { $t = $reader->city($ip); } catch (\GeoIp2\Exception\AddressNotFoundException $e) { diff --git a/vendor/geoip2/geoip2/phpstan.neon b/vendor/geoip2/geoip2/phpstan.neon deleted file mode 100644 index ee1616dbe..000000000 --- a/vendor/geoip2/geoip2/phpstan.neon +++ /dev/null @@ -1,7 +0,0 @@ -parameters: - level: 6 - paths: - - src - - tests - checkMissingIterableValueType: false - diff --git a/vendor/geoip2/geoip2/src/Database/Reader.php b/vendor/geoip2/geoip2/src/Database/Reader.php index 266f7ed50..813654753 100644 --- a/vendor/geoip2/geoip2/src/Database/Reader.php +++ b/vendor/geoip2/geoip2/src/Database/Reader.php @@ -1,11 +1,8 @@ - */ private $locales; /** @@ -60,8 +48,8 @@ class Reader implements ProviderInterface * is corrupt or invalid */ public function __construct( - string $filename, - array $locales = ['en'] + $filename, + $locales = ['en'] ) { $this->dbReader = new DbReader($filename); $this->dbType = $this->dbReader->metadata()->databaseType; @@ -77,10 +65,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\City */ - public function city(string $ipAddress): \GeoIp2\Model\City + public function city($ipAddress) { - // @phpstan-ignore-next-line return $this->modelFor('City', 'City', $ipAddress); } @@ -93,10 +82,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\Country */ - public function country(string $ipAddress): \GeoIp2\Model\Country + public function country($ipAddress) { - // @phpstan-ignore-next-line return $this->modelFor('Country', 'Country', $ipAddress); } @@ -109,10 +99,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\AnonymousIp */ - public function anonymousIp(string $ipAddress): \GeoIp2\Model\AnonymousIp + public function anonymousIp($ipAddress) { - // @phpstan-ignore-next-line return $this->flatModelFor( 'AnonymousIp', 'GeoIP2-Anonymous-IP', @@ -129,10 +120,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\Asn */ - public function asn(string $ipAddress): \GeoIp2\Model\Asn + public function asn($ipAddress) { - // @phpstan-ignore-next-line return $this->flatModelFor( 'Asn', 'GeoLite2-ASN', @@ -149,10 +141,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\ConnectionType */ - public function connectionType(string $ipAddress): \GeoIp2\Model\ConnectionType + public function connectionType($ipAddress) { - // @phpstan-ignore-next-line return $this->flatModelFor( 'ConnectionType', 'GeoIP2-Connection-Type', @@ -169,10 +162,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\Domain */ - public function domain(string $ipAddress): \GeoIp2\Model\Domain + public function domain($ipAddress) { - // @phpstan-ignore-next-line return $this->flatModelFor( 'Domain', 'GeoIP2-Domain', @@ -189,10 +183,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\Enterprise */ - public function enterprise(string $ipAddress): \GeoIp2\Model\Enterprise + public function enterprise($ipAddress) { - // @phpstan-ignore-next-line return $this->modelFor('Enterprise', 'Enterprise', $ipAddress); } @@ -205,10 +200,11 @@ class Reader implements ProviderInterface * not in the database * @throws \MaxMind\Db\Reader\InvalidDatabaseException if the database * is corrupt or invalid + * + * @return \GeoIp2\Model\Isp */ - public function isp(string $ipAddress): \GeoIp2\Model\Isp + public function isp($ipAddress) { - // @phpstan-ignore-next-line return $this->flatModelFor( 'Isp', 'GeoIP2-ISP', @@ -216,9 +212,9 @@ class Reader implements ProviderInterface ); } - private function modelFor(string $class, string $type, string $ipAddress): AbstractModel + private function modelFor($class, $type, $ipAddress) { - [$record, $prefixLen] = $this->getRecord($class, $type, $ipAddress); + list($record, $prefixLen) = $this->getRecord($class, $type, $ipAddress); $record['traits']['ip_address'] = $ipAddress; $record['traits']['prefix_len'] = $prefixLen; @@ -228,9 +224,9 @@ class Reader implements ProviderInterface return new $class($record, $this->locales); } - private function flatModelFor(string $class, string $type, string $ipAddress): AbstractModel + private function flatModelFor($class, $type, $ipAddress) { - [$record, $prefixLen] = $this->getRecord($class, $type, $ipAddress); + list($record, $prefixLen) = $this->getRecord($class, $type, $ipAddress); $record['ip_address'] = $ipAddress; $record['prefix_len'] = $prefixLen; @@ -239,16 +235,15 @@ class Reader implements ProviderInterface return new $class($record); } - private function getRecord(string $class, string $type, string $ipAddress): array + private function getRecord($class, $type, $ipAddress) { if (strpos($this->dbType, $type) === false) { $method = lcfirst($class); - throw new \BadMethodCallException( "The $method method cannot be used to open a {$this->dbType} database" ); } - [$record, $prefixLen] = $this->dbReader->getWithPrefixLen($ipAddress); + list($record, $prefixLen) = $this->dbReader->getWithPrefixLen($ipAddress); if ($record === null) { throw new AddressNotFoundException( "The address $ipAddress is not in the database." @@ -277,7 +272,7 @@ class Reader implements ProviderInterface * * @return \MaxMind\Db\Reader\Metadata object for the database */ - public function metadata(): DbReader\Metadata + public function metadata() { return $this->dbReader->metadata(); } @@ -285,7 +280,7 @@ class Reader implements ProviderInterface /** * Closes the GeoIP2 database and returns the resources to the system. */ - public function close(): void + public function close() { $this->dbReader->close(); } diff --git a/vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php b/vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php index 628fb0672..d5483388b 100644 --- a/vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php +++ b/vendor/geoip2/geoip2/src/Exception/AddressNotFoundException.php @@ -1,7 +1,5 @@ uri = $uri; diff --git a/vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php b/vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php index 925b68df0..6464bcbb1 100644 --- a/vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php +++ b/vendor/geoip2/geoip2/src/Exception/InvalidRequestException.php @@ -1,7 +1,5 @@ error = $error; diff --git a/vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php b/vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php index 9734c8ce4..87a6ade41 100644 --- a/vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php +++ b/vendor/geoip2/geoip2/src/Exception/OutOfQueriesException.php @@ -1,7 +1,5 @@ - */ protected $raw; /** * @ignore + * + * @param mixed $raw */ - public function __construct(array $raw) + public function __construct($raw) { $this->raw = $raw; } @@ -25,9 +22,9 @@ abstract class AbstractModel implements \JsonSerializable /** * @ignore * - * @return mixed + * @param mixed $field */ - protected function get(string $field) + protected function get($field) { if (isset($this->raw[$field])) { return $this->raw[$field]; @@ -42,12 +39,12 @@ abstract class AbstractModel implements \JsonSerializable /** * @ignore * - * @return mixed + * @param mixed $attr */ - public function __get(string $attr) + public function __get($attr) { if ($attr !== 'instance' && property_exists($this, $attr)) { - return $this->{$attr}; + return $this->$attr; } throw new \RuntimeException("Unknown attribute: $attr"); @@ -55,13 +52,15 @@ abstract class AbstractModel implements \JsonSerializable /** * @ignore + * + * @param mixed $attr */ - public function __isset(string $attr): bool + public function __isset($attr) { - return $attr !== 'instance' && isset($this->{$attr}); + return $attr !== 'instance' && isset($this->$attr); } - public function jsonSerialize(): array + public function jsonSerialize() { return $this->raw; } diff --git a/vendor/geoip2/geoip2/src/Model/AnonymousIp.php b/vendor/geoip2/geoip2/src/Model/AnonymousIp.php index 9cb616b05..a8f946ee8 100644 --- a/vendor/geoip2/geoip2/src/Model/AnonymousIp.php +++ b/vendor/geoip2/geoip2/src/Model/AnonymousIp.php @@ -1,7 +1,5 @@ isAnonymousVpn = $this->get('is_anonymous_vpn'); $this->isHostingProvider = $this->get('is_hosting_provider'); $this->isPublicProxy = $this->get('is_public_proxy'); - $this->isResidentialProxy = $this->get('is_residential_proxy'); $this->isTorExitNode = $this->get('is_tor_exit_node'); $ipAddress = $this->get('ip_address'); $this->ipAddress = $ipAddress; diff --git a/vendor/geoip2/geoip2/src/Model/Asn.php b/vendor/geoip2/geoip2/src/Model/Asn.php index 8b75830f5..8e7c802ee 100644 --- a/vendor/geoip2/geoip2/src/Model/Asn.php +++ b/vendor/geoip2/geoip2/src/Model/Asn.php @@ -1,7 +1,5 @@ autonomousSystemNumber = $this->get('autonomous_system_number'); diff --git a/vendor/geoip2/geoip2/src/Model/City.php b/vendor/geoip2/geoip2/src/Model/City.php index 016c1959f..3e78c4f14 100644 --- a/vendor/geoip2/geoip2/src/Model/City.php +++ b/vendor/geoip2/geoip2/src/Model/City.php @@ -1,7 +1,5 @@ */ protected $subdivisions = []; /** * @ignore + * + * @param mixed $raw + * @param mixed $locales */ - public function __construct(array $raw, array $locales = ['en']) + public function __construct($raw, $locales = ['en']) { parent::__construct($raw, $locales); @@ -70,28 +63,29 @@ class City extends Country $this->createSubdivisions($raw, $locales); } - private function createSubdivisions(array $raw, array $locales): void + private function createSubdivisions($raw, $locales) { if (!isset($raw['subdivisions'])) { return; } foreach ($raw['subdivisions'] as $sub) { - $this->subdivisions[] = + array_push( + $this->subdivisions, new \GeoIp2\Record\Subdivision($sub, $locales) - ; + ); } } /** * @ignore * - * @return mixed + * @param mixed $attr */ - public function __get(string $attr) + public function __get($attr) { if ($attr === 'mostSpecificSubdivision') { - return $this->{$attr}(); + return $this->$attr(); } return parent::__get($attr); @@ -99,8 +93,10 @@ class City extends Country /** * @ignore + * + * @param mixed $attr */ - public function __isset(string $attr): bool + public function __isset($attr) { if ($attr === 'mostSpecificSubdivision') { // We always return a mostSpecificSubdivision, even if it is the @@ -111,7 +107,7 @@ class City extends Country return parent::__isset($attr); } - private function mostSpecificSubdivision(): \GeoIp2\Record\Subdivision + private function mostSpecificSubdivision() { return empty($this->subdivisions) ? new \GeoIp2\Record\Subdivision([], $this->locales) : diff --git a/vendor/geoip2/geoip2/src/Model/ConnectionType.php b/vendor/geoip2/geoip2/src/Model/ConnectionType.php index 4f948d847..8091e26ce 100644 --- a/vendor/geoip2/geoip2/src/Model/ConnectionType.php +++ b/vendor/geoip2/geoip2/src/Model/ConnectionType.php @@ -1,7 +1,5 @@ - */ protected $locales; - /** - * @var \GeoIp2\Record\MaxMind - */ protected $maxmind; - /** - * @var \GeoIp2\Record\Country - */ protected $registeredCountry; - /** - * @var \GeoIp2\Record\RepresentedCountry - */ protected $representedCountry; - /** - * @var \GeoIp2\Record\Traits - */ protected $traits; /** * @ignore + * + * @param mixed $raw + * @param mixed $locales */ - public function __construct(array $raw, array $locales = ['en']) + public function __construct($raw, $locales = ['en']) { parent::__construct($raw); diff --git a/vendor/geoip2/geoip2/src/Model/Domain.php b/vendor/geoip2/geoip2/src/Model/Domain.php index dad71ff0a..5e2cf346d 100644 --- a/vendor/geoip2/geoip2/src/Model/Domain.php +++ b/vendor/geoip2/geoip2/src/Model/Domain.php @@ -1,7 +1,5 @@ autonomousSystemNumber = $this->get('autonomous_system_number'); $this->autonomousSystemOrganization = $this->get('autonomous_system_organization'); $this->isp = $this->get('isp'); - $this->mobileCountryCode = $this->get('mobile_country_code'); - $this->mobileNetworkCode = $this->get('mobile_network_code'); $this->organization = $this->get('organization'); $ipAddress = $this->get('ip_address'); diff --git a/vendor/geoip2/geoip2/src/ProviderInterface.php b/vendor/geoip2/geoip2/src/ProviderInterface.php index 7d1489126..44851b07e 100644 --- a/vendor/geoip2/geoip2/src/ProviderInterface.php +++ b/vendor/geoip2/geoip2/src/ProviderInterface.php @@ -1,7 +1,5 @@ - */ private $locales; /** * @ignore + * + * @param mixed $record + * @param mixed $locales */ - public function __construct(?array $record, array $locales = ['en']) + public function __construct($record, $locales = ['en']) { $this->locales = $locales; parent::__construct($record); @@ -23,9 +21,9 @@ abstract class AbstractPlaceRecord extends AbstractRecord /** * @ignore * - * @return mixed + * @param mixed $attr */ - public function __get(string $attr) + public function __get($attr) { if ($attr === 'name') { return $this->name(); @@ -36,28 +34,28 @@ abstract class AbstractPlaceRecord extends AbstractRecord /** * @ignore + * + * @param mixed $attr */ - public function __isset(string $attr): bool + public function __isset($attr) { if ($attr === 'name') { - return $this->firstSetNameLocale() !== null; + return $this->firstSetNameLocale() === null ? false : true; } return parent::__isset($attr); } - private function name(): ?string + private function name() { $locale = $this->firstSetNameLocale(); - // @phpstan-ignore-next-line return $locale === null ? null : $this->names[$locale]; } - private function firstSetNameLocale(): ?string + private function firstSetNameLocale() { foreach ($this->locales as $locale) { - // @phpstan-ignore-next-line if (isset($this->names[$locale])) { return $locale; } diff --git a/vendor/geoip2/geoip2/src/Record/AbstractRecord.php b/vendor/geoip2/geoip2/src/Record/AbstractRecord.php index 5ddb3c679..dad2fd3f3 100644 --- a/vendor/geoip2/geoip2/src/Record/AbstractRecord.php +++ b/vendor/geoip2/geoip2/src/Record/AbstractRecord.php @@ -1,20 +1,17 @@ - */ private $record; /** * @ignore + * + * @param mixed $record */ - public function __construct(?array $record) + public function __construct($record) { $this->record = isset($record) ? $record : []; } @@ -22,45 +19,42 @@ abstract class AbstractRecord implements \JsonSerializable /** * @ignore * - * @return mixed + * @param mixed $attr */ - public function __get(string $attr) + public function __get($attr) { // XXX - kind of ugly but greatly reduces boilerplate code $key = $this->attributeToKey($attr); if ($this->__isset($attr)) { return $this->record[$key]; - } - if ($this->validAttribute($attr)) { + } elseif ($this->validAttribute($attr)) { if (preg_match('/^is_/', $key)) { return false; } return null; } - throw new \RuntimeException("Unknown attribute: $attr"); } - public function __isset(string $attr): bool + public function __isset($attr) { - return $this->validAttribute($attr) - && isset($this->record[$this->attributeToKey($attr)]); + return $this->validAttribute($attr) && + isset($this->record[$this->attributeToKey($attr)]); } - private function attributeToKey(string $attr): string + private function attributeToKey($attr) { return strtolower(preg_replace('/([A-Z])/', '_\1', $attr)); } - private function validAttribute(string $attr): bool + private function validAttribute($attr) { - // @phpstan-ignore-next-line return \in_array($attr, $this->validAttributes, true); } - public function jsonSerialize(): ?array + public function jsonSerialize() { return $this->record; } diff --git a/vendor/geoip2/geoip2/src/Record/City.php b/vendor/geoip2/geoip2/src/Record/City.php index 68b3166c0..7f495ad7c 100644 --- a/vendor/geoip2/geoip2/src/Record/City.php +++ b/vendor/geoip2/geoip2/src/Record/City.php @@ -1,7 +1,5 @@ */ protected $validAttributes = ['confidence', 'geonameId', 'names']; } diff --git a/vendor/geoip2/geoip2/src/Record/Continent.php b/vendor/geoip2/geoip2/src/Record/Continent.php index 103e2e3d8..c6b17056e 100644 --- a/vendor/geoip2/geoip2/src/Record/Continent.php +++ b/vendor/geoip2/geoip2/src/Record/Continent.php @@ -1,7 +1,5 @@ */ protected $validAttributes = [ 'code', diff --git a/vendor/geoip2/geoip2/src/Record/Country.php b/vendor/geoip2/geoip2/src/Record/Country.php index 3009ebc62..ff9ecc7cd 100644 --- a/vendor/geoip2/geoip2/src/Record/Country.php +++ b/vendor/geoip2/geoip2/src/Record/Country.php @@ -1,7 +1,5 @@ */ protected $validAttributes = [ 'confidence', diff --git a/vendor/geoip2/geoip2/src/Record/Location.php b/vendor/geoip2/geoip2/src/Record/Location.php index cb6111c2c..b59b3ee70 100644 --- a/vendor/geoip2/geoip2/src/Record/Location.php +++ b/vendor/geoip2/geoip2/src/Record/Location.php @@ -1,7 +1,5 @@ */ protected $validAttributes = [ 'averageIncome', diff --git a/vendor/geoip2/geoip2/src/Record/MaxMind.php b/vendor/geoip2/geoip2/src/Record/MaxMind.php index e972506e5..2e2cc0024 100644 --- a/vendor/geoip2/geoip2/src/Record/MaxMind.php +++ b/vendor/geoip2/geoip2/src/Record/MaxMind.php @@ -1,7 +1,5 @@ */ protected $validAttributes = ['queriesRemaining']; } diff --git a/vendor/geoip2/geoip2/src/Record/Postal.php b/vendor/geoip2/geoip2/src/Record/Postal.php index 3e9c2377b..69508c782 100644 --- a/vendor/geoip2/geoip2/src/Record/Postal.php +++ b/vendor/geoip2/geoip2/src/Record/Postal.php @@ -1,7 +1,5 @@ */ protected $validAttributes = ['code', 'confidence']; } diff --git a/vendor/geoip2/geoip2/src/Record/RepresentedCountry.php b/vendor/geoip2/geoip2/src/Record/RepresentedCountry.php index 727c034af..bc79ee157 100644 --- a/vendor/geoip2/geoip2/src/Record/RepresentedCountry.php +++ b/vendor/geoip2/geoip2/src/Record/RepresentedCountry.php @@ -1,7 +1,5 @@ - */ protected $validAttributes = [ 'confidence', 'geonameId', diff --git a/vendor/geoip2/geoip2/src/Record/Subdivision.php b/vendor/geoip2/geoip2/src/Record/Subdivision.php index 0e8354938..74ae3e2ca 100644 --- a/vendor/geoip2/geoip2/src/Record/Subdivision.php +++ b/vendor/geoip2/geoip2/src/Record/Subdivision.php @@ -1,7 +1,5 @@ */ protected $validAttributes = [ 'confidence', diff --git a/vendor/geoip2/geoip2/src/Record/Traits.php b/vendor/geoip2/geoip2/src/Record/Traits.php index cbe6b597e..e6b798f41 100644 --- a/vendor/geoip2/geoip2/src/Record/Traits.php +++ b/vendor/geoip2/geoip2/src/Record/Traits.php @@ -1,7 +1,5 @@ */ protected $validAttributes = [ 'autonomousSystemNumber', @@ -135,11 +120,8 @@ class Traits extends AbstractRecord 'isLegitimateProxy', 'isp', 'isPublicProxy', - 'isResidentialProxy', 'isSatelliteProvider', 'isTorExitNode', - 'mobileCountryCode', - 'mobileNetworkCode', 'network', 'organization', 'staticIpScore', @@ -147,9 +129,9 @@ class Traits extends AbstractRecord 'userType', ]; - public function __construct(?array $record) + public function __construct($record) { - if (!isset($record['network']) && isset($record['ip_address'], $record['prefix_len'])) { + if (!isset($record['network']) && isset($record['ip_address']) && isset($record['prefix_len'])) { $record['network'] = Util::cidr($record['ip_address'], $record['prefix_len']); } diff --git a/vendor/geoip2/geoip2/src/Util.php b/vendor/geoip2/geoip2/src/Util.php index e0a03be8c..c158fb551 100644 --- a/vendor/geoip2/geoip2/src/Util.php +++ b/vendor/geoip2/geoip2/src/Util.php @@ -1,7 +1,5 @@ - */ private $locales; - /** - * @var WsClient - */ private $client; - /** - * @var string - */ private static $basePath = '/geoip/v2.1'; - public const VERSION = 'v2.12.2'; + const VERSION = 'v2.10.0'; /** * Constructor. @@ -71,9 +57,7 @@ class Client implements ProviderInterface * @param array $locales list of locale codes to use in name property * from most preferred to least preferred * @param array $options array of options. Valid options include: - * * `host` - The host to use when querying the web service. To - * query the GeoLite2 web service instead of GeoIP2 Precision, - * set the host to `geolite.info`. + * * `host` - The host to use when querying the web service. * * `timeout` - Timeout in seconds. * * `connectTimeout` - Initial connection timeout in seconds. * * `proxy` - The HTTP proxy to use. May include a schema, port, @@ -81,16 +65,15 @@ class Client implements ProviderInterface * `http://username:password@127.0.0.1:10`. */ public function __construct( - int $accountId, - string $licenseKey, - array $locales = ['en'], - array $options = [] + $accountId, + $licenseKey, + $locales = ['en'], + $options = [] ) { $this->locales = $locales; // This is for backwards compatibility. Do not remove except for a // major version bump. - // @phpstan-ignore-next-line if (\is_string($options)) { $options = ['host' => $options]; } @@ -104,13 +87,13 @@ class Client implements ProviderInterface $this->client = new WsClient($accountId, $licenseKey, $options); } - private function userAgent(): string + private function userAgent() { return 'GeoIP2-API/' . self::VERSION; } /** - * This method calls the City service. + * This method calls the GeoIP2 Precision: City service. * * @param string $ipAddress IPv4 or IPv6 address as a string. If no * address is provided, the address that the web service is called @@ -125,22 +108,23 @@ class Client implements ProviderInterface * @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is * invalid for some other reason. This may indicate an issue * with this API. Please report the error to MaxMind. - * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned. - * This could indicate a problem with the connection between - * your server and the web service or that the web service - * returned an invalid document or 500 error code - * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent - * class to the above exceptions. It will be thrown directly - * if a 200 status code is returned but the body is invalid. + * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned. + * This could indicate a problem with the connection between + * your server and the web service or that the web service + * returned an invalid document or 500 error code + * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent + * class to the above exceptions. It will be thrown directly + * if a 200 status code is returned but the body is invalid. + * + * @return \GeoIp2\Model\City */ - public function city(string $ipAddress = 'me'): City + public function city($ipAddress = 'me') { - // @phpstan-ignore-next-line return $this->responseFor('city', 'City', $ipAddress); } /** - * This method calls the Country service. + * This method calls the GeoIP2 Precision: Country service. * * @param string $ipAddress IPv4 or IPv6 address as a string. If no * address is provided, the address that the web service is called @@ -154,23 +138,24 @@ class Client implements ProviderInterface * @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is * invalid for some other reason. This may indicate an * issue with this API. Please report the error to MaxMind. - * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error - * code or message was returned. This could indicate a problem - * with the connection between your server and the web service - * or that the web service returned an invalid document or 500 - * error code. - * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent class to the above exceptions. It - * will be thrown directly if a 200 status code is returned but - * the body is invalid. + * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error + * code or message was returned. This could indicate a problem + * with the connection between your server and the web service + * or that the web service returned an invalid document or 500 + * error code. + * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent class to the above exceptions. It + * will be thrown directly if a 200 status code is returned but + * the body is invalid. + * + * @return \GeoIp2\Model\Country */ - public function country(string $ipAddress = 'me'): Country + public function country($ipAddress = 'me') { return $this->responseFor('country', 'Country', $ipAddress); } /** - * This method calls the Insights service. Insights is only supported by GeoIP2 - * Precision. The GeoLite2 web service does not support it. + * This method calls the GeoIP2 Precision: Insights service. * * @param string $ipAddress IPv4 or IPv6 address as a string. If no * address is provided, the address that the web service is called @@ -185,21 +170,22 @@ class Client implements ProviderInterface * @throws \GeoIp2\Exception\InvalidRequestException} if your request was received by the web service but is * invalid for some other reason. This may indicate an * issue with this API. Please report the error to MaxMind. - * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned. - * This could indicate a problem with the connection between - * your server and the web service or that the web service - * returned an invalid document or 500 error code - * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent - * class to the above exceptions. It will be thrown directly - * if a 200 status code is returned but the body is invalid. + * @throws \GeoIp2\Exception\HttpException if an unexpected HTTP error code or message was returned. + * This could indicate a problem with the connection between + * your server and the web service or that the web service + * returned an invalid document or 500 error code + * @throws \GeoIp2\Exception\GeoIp2Exception This serves as the parent + * class to the above exceptions. It will be thrown directly + * if a 200 status code is returned but the body is invalid. + * + * @return \GeoIp2\Model\Insights */ - public function insights(string $ipAddress = 'me'): Insights + public function insights($ipAddress = 'me') { - // @phpstan-ignore-next-line return $this->responseFor('insights', 'Insights', $ipAddress); } - private function responseFor(string $endpoint, string $class, string $ipAddress): Country + private function responseFor($endpoint, $class, $ipAddress) { $path = implode('/', [self::$basePath, $endpoint, $ipAddress]); diff --git a/vendor/maxmind-db/reader/CHANGELOG.md b/vendor/maxmind-db/reader/CHANGELOG.md index 4c89f0cc9..aae708761 100644 --- a/vendor/maxmind-db/reader/CHANGELOG.md +++ b/vendor/maxmind-db/reader/CHANGELOG.md @@ -1,56 +1,6 @@ CHANGELOG ========= -1.11.0 -------------------- - -* Replace runtime define of a constant to facilitate opcache preloading. - Reported by vedadkajtaz. GitHub #134. -* Resolve minor issue found by the Clang static analyzer in the C - extension. - -1.10.1 (2021-04-14) -------------------- - -* Fix a `TypeError` exception in the pure PHP reader when using large - databases on 32-bit PHP builds with the `bcmath` extension. Reported - by dodo1708. GitHub #124. - -1.10.0 (2021-02-09) -------------------- - -* When using the pure PHP reader, unsigned integers up to PHP_MAX_INT - will now be integers in PHP rather than strings. Previously integers - greater than 2^24 on 32-bit platforms and 2^56 on 64-bit platforms - would be strings due to the use of `gmp` or `bcmath` to decode them. - Reported by Alejandro Celaya. GitHub #119. - -1.9.0 (2021-01-07) ------------------- - -* The `maxminddb` extension is now buildable on Windows. Pull request - by Jan Ehrhardt. GitHub #115. - -1.8.0 (2020-10-01) ------------------- - -* Fixes for PHP 8.0. Pull Request by Remi Collet. GitHub #108. - -1.7.0 (2020-08-07) ------------------- - -* IMPORTANT: PHP 7.2 or greater is now required. -* The extension no longer depends on the pure PHP classes in - `maxmind-db/reader`. You can use it independently. -* Type hints have been added to both the pure PHP implementation - and the extension. -* The `metadata` method on the reader now returns a new copy of the - metadata object rather than the actual object used by the reader. -* Work around PHP `is_readable()` bug. Reported by Ben Roberts. GitHub - #92. -* This is the first release of the extension as a PECL package. - GitHub #34. - 1.6.0 (2019-12-19) ------------------ diff --git a/vendor/maxmind-db/reader/README.md b/vendor/maxmind-db/reader/README.md index 49fa28001..d0600e871 100644 --- a/vendor/maxmind-db/reader/README.md +++ b/vendor/maxmind-db/reader/README.md @@ -112,16 +112,9 @@ you are using an autoloader, no changes to your code should be necessary. First install [libmaxminddb](https://github.com/maxmind/libmaxminddb) as described in its [README.md -file](https://github.com/maxmind/libmaxminddb/blob/main/README.md#installing-from-a-tarball). -After successfully installing libmaxmindb, you may install the extension -from [pecl](https://pecl.php.net/package/maxminddb): - -``` -pecl install maxminddb -``` - -Alternatively, you may install it from the source. To do so, run the following -commands from the top-level directory of this distribution: +file](https://github.com/maxmind/libmaxminddb/blob/master/README.md#installing-from-a-tarball). +After successfully installing libmaxmindb, run the following commands from the +top-level directory of this distribution: ``` cd ext @@ -164,7 +157,7 @@ client API, please see [our support page](https://www.maxmind.com/en/support). ## Requirements ## -This library requires PHP 7.2 or greater. +This library requires PHP 5.6 or greater. The GMP or BCMath extension may be required to read some databases using the pure PHP API. @@ -180,6 +173,6 @@ The MaxMind DB Reader PHP API uses [Semantic Versioning](https://semver.org/). ## Copyright and License ## -This software is Copyright (c) 2014-2020 by MaxMind, Inc. +This software is Copyright (c) 2014-2019 by MaxMind, Inc. This is free software, licensed under the Apache License, Version 2.0. diff --git a/vendor/maxmind-db/reader/autoload.php b/vendor/maxmind-db/reader/autoload.php index a1119e7f8..1314b698e 100644 --- a/vendor/maxmind-db/reader/autoload.php +++ b/vendor/maxmind-db/reader/autoload.php @@ -1,7 +1,5 @@ __DIR__ . '/src/MaxMind/Db/']; foreach ($namespace_map as $prefix => $dir) { - // First swap out the namespace prefix with a directory... + /* First swap out the namespace prefix with a directory... */ $path = str_replace($prefix, $dir, $class); - // replace the namespace separator with a directory separator... + /* replace the namespace separator with a directory separator... */ $path = str_replace('\\', '/', $path); - // and finally, add the PHP file extension to the result. + /* and finally, add the PHP file extension to the result. */ $path = $path . '.php'; - // $path should now contain the path to a PHP file defining $class + /* $path should now contain the path to a PHP file defining $class */ if (file_exists($path)) { include $path; } diff --git a/vendor/maxmind-db/reader/composer.json b/vendor/maxmind-db/reader/composer.json index 26d487301..39cdfe251 100644 --- a/vendor/maxmind-db/reader/composer.json +++ b/vendor/maxmind-db/reader/composer.json @@ -13,7 +13,7 @@ } ], "require": { - "php": ">=7.2" + "php": ">=5.6" }, "suggest": { "ext-bcmath": "bcmath or gmp is required for decoding larger integers with the pure PHP decoder", @@ -21,15 +21,14 @@ "ext-maxminddb": "A C-based database decoder that provides significantly faster lookups" }, "conflict": { - "ext-maxminddb": "<1.10.1,>=2.0.0" + "ext-maxminddb": "<1.6.0,>=2.0.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpunit/phpunit": ">=8.0.0,<10.0.0", + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "5.*", "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpcov": ">=6.0.0", - "squizlabs/php_codesniffer": "3.*", - "phpstan/phpstan": "*" + "phpunit/phpcov": "^3.0", + "squizlabs/php_codesniffer": "3.*" }, "autoload": { "psr-4": { diff --git a/vendor/maxmind-db/reader/ext/config.w32 b/vendor/maxmind-db/reader/ext/config.w32 deleted file mode 100644 index 4eb18f849..000000000 --- a/vendor/maxmind-db/reader/ext/config.w32 +++ /dev/null @@ -1,10 +0,0 @@ -ARG_WITH("maxminddb", "Enable MaxMind DB Reader extension support", "no"); - -if (PHP_MAXMINDDB == "yes") { - if (CHECK_HEADER_ADD_INCLUDE("maxminddb.h", "CFLAGS_MAXMINDDB", PHP_MAXMINDDB + ";" + PHP_PHP_BUILD + "\\include\\maxminddb") && - CHECK_LIB("libmaxminddb.lib", "maxminddb", PHP_MAXMINDDB)) { - EXTENSION("maxminddb", "maxminddb.c"); - } else { - WARNING('Could not find maxminddb.h or libmaxminddb.lib; skipping'); - } -} diff --git a/vendor/maxmind-db/reader/ext/maxminddb.c b/vendor/maxmind-db/reader/ext/maxminddb.c index b00b2fa3d..a97a3d9e4 100644 --- a/vendor/maxmind-db/reader/ext/maxminddb.c +++ b/vendor/maxmind-db/reader/ext/maxminddb.c @@ -21,8 +21,6 @@ #include #include "Zend/zend_exceptions.h" -#include "Zend/zend_types.h" -#include "ext/spl/spl_exceptions.h" #include "ext/standard/info.h" #include @@ -35,49 +33,49 @@ #define PHP_MAXMINDDB_NS ZEND_NS_NAME("MaxMind", "Db") #define PHP_MAXMINDDB_READER_NS ZEND_NS_NAME(PHP_MAXMINDDB_NS, "Reader") -#define PHP_MAXMINDDB_METADATA_NS \ - ZEND_NS_NAME(PHP_MAXMINDDB_READER_NS, "Metadata") #define PHP_MAXMINDDB_READER_EX_NS \ ZEND_NS_NAME(PHP_MAXMINDDB_READER_NS, "InvalidDatabaseException") +#ifdef ZEND_ENGINE_3 #define Z_MAXMINDDB_P(zv) php_maxminddb_fetch_object(Z_OBJ_P(zv)) +#define _ZVAL_STRING ZVAL_STRING +#define _ZVAL_STRINGL ZVAL_STRINGL typedef size_t strsize_t; typedef zend_object free_obj_t; - -/* For PHP 8 compatibility */ -#if PHP_VERSION_ID < 80000 - -#define PROP_OBJ(zv) (zv) - #else - -#define PROP_OBJ(zv) Z_OBJ_P(zv) - -#define TSRMLS_C -#define TSRMLS_CC -#define TSRMLS_DC - -/* End PHP 8 compatibility */ +#define Z_MAXMINDDB_P(zv) \ + (maxminddb_obj *)zend_object_store_get_object(zv TSRMLS_CC) +#define _ZVAL_STRING(a, b) ZVAL_STRING(a, b, 1) +#define _ZVAL_STRINGL(a, b, c) ZVAL_STRINGL(a, b, c, 1) +typedef int strsize_t; +typedef void free_obj_t; #endif +/* For PHP 8 compatibility */ +#ifndef TSRMLS_C +#define TSRMLS_C +#endif +#ifndef TSRMLS_CC +#define TSRMLS_CC +#endif +#ifndef TSRMLS_DC +#define TSRMLS_DC +#endif #ifndef ZEND_ACC_CTOR #define ZEND_ACC_CTOR 0 #endif -/* IS_MIXED was added in 2020 */ -#ifndef IS_MIXED -#define IS_MIXED IS_UNDEF -#endif - -/* ZEND_THIS was added in 7.4 */ -#ifndef ZEND_THIS -#define ZEND_THIS (&EX(This)) -#endif - +#ifdef ZEND_ENGINE_3 typedef struct _maxminddb_obj { MMDB_s *mmdb; zend_object std; } maxminddb_obj; +#else +typedef struct _maxminddb_obj { + zend_object std; + MMDB_s *mmdb; +} maxminddb_obj; +#endif PHP_FUNCTION(maxminddb); @@ -98,6 +96,7 @@ static void handle_uint64(const MMDB_entry_data_list_s *entry_data_list, zval *z_value TSRMLS_DC); static void handle_uint32(const MMDB_entry_data_list_s *entry_data_list, zval *z_value TSRMLS_DC); +static zend_class_entry *lookup_class(const char *name TSRMLS_DC); #define CHECK_ALLOCATED(val) \ if (!val) { \ @@ -105,16 +104,38 @@ static void handle_uint32(const MMDB_entry_data_list_s *entry_data_list, return; \ } +#define THROW_EXCEPTION(name, ...) \ + { \ + zend_class_entry *exception_ce = lookup_class(name TSRMLS_CC); \ + zend_throw_exception_ex(exception_ce, 0 TSRMLS_CC, __VA_ARGS__); \ + } + +#if PHP_VERSION_ID < 50399 +#define object_properties_init(zo, class_type) \ + { \ + zval *tmp; \ + zend_hash_copy((*zo).properties, \ + &class_type->default_properties, \ + (copy_ctor_func_t)zval_add_ref, \ + (void *)&tmp, \ + sizeof(zval *)); \ + } +#endif + static zend_object_handlers maxminddb_obj_handlers; -static zend_class_entry *maxminddb_ce, *maxminddb_exception_ce, *metadata_ce; +static zend_class_entry *maxminddb_ce; static inline maxminddb_obj * php_maxminddb_fetch_object(zend_object *obj TSRMLS_DC) { +#ifdef ZEND_ENGINE_3 return (maxminddb_obj *)((char *)(obj)-XtOffsetOf(maxminddb_obj, std)); +#else + return (maxminddb_obj *)obj; +#endif } -ZEND_BEGIN_ARG_INFO_EX(arginfo_maxminddbreader_construct, 0, 0, 1) -ZEND_ARG_TYPE_INFO(0, db_file, IS_STRING, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_maxmindbreader_construct, 0, 0, 1) +ZEND_ARG_INFO(0, db_file) ZEND_END_ARG_INFO() PHP_METHOD(MaxMind_Db_Reader, __construct) { @@ -129,16 +150,16 @@ PHP_METHOD(MaxMind_Db_Reader, __construct) { maxminddb_ce, &db_file, &name_len) == FAILURE) { + THROW_EXCEPTION("InvalidArgumentException", + "The constructor takes exactly one argument."); return; } if (0 != php_check_open_basedir(db_file TSRMLS_CC) || 0 != access(db_file, R_OK)) { - zend_throw_exception_ex( - spl_ce_InvalidArgumentException, - 0 TSRMLS_CC, - "The file \"%s\" does not exist or is not readable.", - db_file); + THROW_EXCEPTION("InvalidArgumentException", + "The file \"%s\" does not exist or is not readable.", + db_file); return; } @@ -146,23 +167,20 @@ PHP_METHOD(MaxMind_Db_Reader, __construct) { uint16_t status = MMDB_open(db_file, MMDB_MODE_MMAP, mmdb); if (MMDB_SUCCESS != status) { - zend_throw_exception_ex( - maxminddb_exception_ce, - 0 TSRMLS_CC, - "Error opening database file (%s). Is this a valid " - "MaxMind DB file?", - db_file); + THROW_EXCEPTION(PHP_MAXMINDDB_READER_EX_NS, + "Error opening database file (%s). Is this a valid " + "MaxMind DB file?", + db_file); efree(mmdb); return; } - maxminddb_obj *mmdb_obj = Z_MAXMINDDB_P(ZEND_THIS); + maxminddb_obj *mmdb_obj = Z_MAXMINDDB_P(getThis()); mmdb_obj->mmdb = mmdb; } -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX( - arginfo_maxminddbreader_get, 0, 1, IS_MIXED, 1) -ZEND_ARG_TYPE_INFO(0, ip_address, IS_STRING, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_maxmindbreader_get, 0, 0, 1) +ZEND_ARG_INFO(0, ip_address) ZEND_END_ARG_INFO() PHP_METHOD(MaxMind_Db_Reader, get) { @@ -170,75 +188,76 @@ PHP_METHOD(MaxMind_Db_Reader, get) { get_record(INTERNAL_FUNCTION_PARAM_PASSTHRU, return_value, &prefix_len); } -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX( - arginfo_maxminddbreader_getWithPrefixLen, 0, 1, IS_ARRAY, 1) -ZEND_ARG_TYPE_INFO(0, ip_address, IS_STRING, 0) -ZEND_END_ARG_INFO() - PHP_METHOD(MaxMind_Db_Reader, getWithPrefixLen) { - zval record, z_prefix_len; + zval *record, *z_prefix_len; +#ifdef ZEND_ENGINE_3 + zval _record, _z_prefix_len; + record = &_record; + z_prefix_len = &_z_prefix_len; +#else + ALLOC_INIT_ZVAL(record); + ALLOC_INIT_ZVAL(z_prefix_len); +#endif int prefix_len = 0; - if (get_record(INTERNAL_FUNCTION_PARAM_PASSTHRU, &record, &prefix_len) == - FAILURE) { + if (get_record(INTERNAL_FUNCTION_PARAM_PASSTHRU, record, &prefix_len)) { return; } array_init(return_value); - add_next_index_zval(return_value, &record); + add_next_index_zval(return_value, record); - ZVAL_LONG(&z_prefix_len, prefix_len); - add_next_index_zval(return_value, &z_prefix_len); + ZVAL_LONG(z_prefix_len, prefix_len); + add_next_index_zval(return_value, z_prefix_len); } static int get_record(INTERNAL_FUNCTION_PARAMETERS, zval *record, int *prefix_len) { char *ip_address = NULL; strsize_t name_len; - zval *this_zval = NULL; + zval *_this_zval = NULL; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", - &this_zval, + &_this_zval, maxminddb_ce, &ip_address, &name_len) == FAILURE) { - return FAILURE; + THROW_EXCEPTION("InvalidArgumentException", + "Method takes exactly one argument."); + return 1; } - const maxminddb_obj *mmdb_obj = (maxminddb_obj *)Z_MAXMINDDB_P(ZEND_THIS); + const maxminddb_obj *mmdb_obj = (maxminddb_obj *)Z_MAXMINDDB_P(getThis()); MMDB_s *mmdb = mmdb_obj->mmdb; if (NULL == mmdb) { - zend_throw_exception_ex(spl_ce_BadMethodCallException, - 0 TSRMLS_CC, - "Attempt to read from a closed MaxMind DB."); - return FAILURE; + THROW_EXCEPTION("BadMethodCallException", + "Attempt to read from a closed MaxMind DB."); + return 1; } struct addrinfo hints = { .ai_family = AF_UNSPEC, .ai_flags = AI_NUMERICHOST, - /* We set ai_socktype so that we only get one result back */ + // We set ai_socktype so that we only get one result back .ai_socktype = SOCK_STREAM}; struct addrinfo *addresses = NULL; int gai_status = getaddrinfo(ip_address, NULL, &hints, &addresses); if (gai_status) { - zend_throw_exception_ex(spl_ce_InvalidArgumentException, - 0 TSRMLS_CC, - "The value \"%s\" is not a valid IP address.", - ip_address); - return FAILURE; + THROW_EXCEPTION("InvalidArgumentException", + "The value \"%s\" is not a valid IP address.", + ip_address); + return 1; } if (!addresses || !addresses->ai_addr) { - zend_throw_exception_ex( - spl_ce_InvalidArgumentException, - 0 TSRMLS_CC, + THROW_EXCEPTION( + "InvalidArgumentException", "getaddrinfo was successful but failed to set the addrinfo"); - return FAILURE; + return 1; } int sa_family = addresses->ai_addr->sa_family; @@ -250,127 +269,132 @@ get_record(INTERNAL_FUNCTION_PARAMETERS, zval *record, int *prefix_len) { freeaddrinfo(addresses); if (MMDB_SUCCESS != mmdb_error) { - zend_class_entry *ex; + char *exception_name; if (MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR == mmdb_error) { - ex = spl_ce_InvalidArgumentException; + exception_name = "InvalidArgumentException"; } else { - ex = maxminddb_exception_ce; + exception_name = PHP_MAXMINDDB_READER_EX_NS; } - zend_throw_exception_ex(ex, - 0 TSRMLS_CC, - "Error looking up %s. %s", - ip_address, - MMDB_strerror(mmdb_error)); - return FAILURE; + THROW_EXCEPTION(exception_name, + "Error looking up %s. %s", + ip_address, + MMDB_strerror(mmdb_error)); + return 1; } *prefix_len = result.netmask; if (sa_family == AF_INET && mmdb->metadata.ip_version == 6) { - /* We return the prefix length given the IPv4 address. If there is - no IPv4 subtree, we return a prefix length of 0. */ + // We return the prefix length given the IPv4 address. If there is + // no IPv4 subtree, we return a prefix length of 0. *prefix_len = *prefix_len >= 96 ? *prefix_len - 96 : 0; } if (!result.found_entry) { ZVAL_NULL(record); - return SUCCESS; + return 0; } MMDB_entry_data_list_s *entry_data_list = NULL; int status = MMDB_get_entry_data_list(&result.entry, &entry_data_list); if (MMDB_SUCCESS != status) { - zend_throw_exception_ex(maxminddb_exception_ce, - 0 TSRMLS_CC, - "Error while looking up data for %s. %s", - ip_address, - MMDB_strerror(status)); + THROW_EXCEPTION(PHP_MAXMINDDB_READER_EX_NS, + "Error while looking up data for %s. %s", + ip_address, + MMDB_strerror(status)); MMDB_free_entry_data_list(entry_data_list); - return FAILURE; + return 1; } else if (NULL == entry_data_list) { - zend_throw_exception_ex( - maxminddb_exception_ce, - 0 TSRMLS_CC, - "Error while looking up data for %s. Your database may " - "be corrupt or you have found a bug in libmaxminddb.", - ip_address); - return FAILURE; + THROW_EXCEPTION(PHP_MAXMINDDB_READER_EX_NS, + "Error while looking up data for %s. Your database may " + "be corrupt or you have found a bug in libmaxminddb.", + ip_address); + return 1; } - const MMDB_entry_data_list_s *rv = - handle_entry_data_list(entry_data_list, record TSRMLS_CC); - if (rv == NULL) { - /* We should have already thrown the exception in handle_entry_data_list - */ - return FAILURE; - } + handle_entry_data_list(entry_data_list, record TSRMLS_CC); MMDB_free_entry_data_list(entry_data_list); - return SUCCESS; + return 0; } -ZEND_BEGIN_ARG_INFO_EX(arginfo_maxminddbreader_void, 0, 0, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_maxmindbreader_void, 0, 0, 0) ZEND_END_ARG_INFO() PHP_METHOD(MaxMind_Db_Reader, metadata) { - zval *this_zval = NULL; - - if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - getThis(), - "O", - &this_zval, - maxminddb_ce) == FAILURE) { + if (ZEND_NUM_ARGS() != 0) { + THROW_EXCEPTION("InvalidArgumentException", + "Method takes no arguments."); return; } const maxminddb_obj *const mmdb_obj = - (maxminddb_obj *)Z_MAXMINDDB_P(this_zval); + (maxminddb_obj *)Z_MAXMINDDB_P(getThis()); if (NULL == mmdb_obj->mmdb) { - zend_throw_exception_ex(spl_ce_BadMethodCallException, - 0 TSRMLS_CC, - "Attempt to read from a closed MaxMind DB."); + THROW_EXCEPTION("BadMethodCallException", + "Attempt to read from a closed MaxMind DB."); return; } + const char *const name = ZEND_NS_NAME(PHP_MAXMINDDB_READER_NS, "Metadata"); + zend_class_entry *metadata_ce = lookup_class(name TSRMLS_CC); + object_init_ex(return_value, metadata_ce); +#ifdef ZEND_ENGINE_3 + zval _metadata_array; + zval *metadata_array = &_metadata_array; + ZVAL_NULL(metadata_array); +#else + zval *metadata_array; + ALLOC_INIT_ZVAL(metadata_array); +#endif + MMDB_entry_data_list_s *entry_data_list; MMDB_get_metadata_as_entry_data_list(mmdb_obj->mmdb, &entry_data_list); - zval metadata_array; - const MMDB_entry_data_list_s *rv = - handle_entry_data_list(entry_data_list, &metadata_array TSRMLS_CC); - if (rv == NULL) { - return; - } + handle_entry_data_list(entry_data_list, metadata_array TSRMLS_CC); MMDB_free_entry_data_list(entry_data_list); - zend_call_method_with_1_params(PROP_OBJ(return_value), +#if PHP_VERSION_ID >= 80000 + zend_call_method_with_1_params(Z_OBJ_P(return_value), metadata_ce, &metadata_ce->constructor, ZEND_CONSTRUCTOR_FUNC_NAME, NULL, - &metadata_array); + metadata_array); + zval_ptr_dtor(metadata_array); +#elif defined(ZEND_ENGINE_3) + zend_call_method_with_1_params(return_value, + metadata_ce, + &metadata_ce->constructor, + ZEND_CONSTRUCTOR_FUNC_NAME, + NULL, + metadata_array); + zval_ptr_dtor(metadata_array); +#else + zend_call_method_with_1_params(&return_value, + metadata_ce, + &metadata_ce->constructor, + ZEND_CONSTRUCTOR_FUNC_NAME, + NULL, + metadata_array); zval_ptr_dtor(&metadata_array); +#endif } PHP_METHOD(MaxMind_Db_Reader, close) { - zval *this_zval = NULL; - - if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - getThis(), - "O", - &this_zval, - maxminddb_ce) == FAILURE) { + if (ZEND_NUM_ARGS() != 0) { + THROW_EXCEPTION("InvalidArgumentException", + "Method takes no arguments."); return; } - maxminddb_obj *mmdb_obj = (maxminddb_obj *)Z_MAXMINDDB_P(this_zval); + maxminddb_obj *mmdb_obj = (maxminddb_obj *)Z_MAXMINDDB_P(getThis()); if (NULL == mmdb_obj->mmdb) { - zend_throw_exception_ex(spl_ce_BadMethodCallException, - 0 TSRMLS_CC, - "Attempt to close a closed MaxMind DB."); + THROW_EXCEPTION("BadMethodCallException", + "Attempt to close a closed MaxMind DB."); return; } MMDB_close(mmdb_obj->mmdb); @@ -387,14 +411,14 @@ handle_entry_data_list(const MMDB_entry_data_list_s *entry_data_list, case MMDB_DATA_TYPE_ARRAY: return handle_array(entry_data_list, z_value TSRMLS_CC); case MMDB_DATA_TYPE_UTF8_STRING: - ZVAL_STRINGL(z_value, - (char *)entry_data_list->entry_data.utf8_string, - entry_data_list->entry_data.data_size); + _ZVAL_STRINGL(z_value, + (char *)entry_data_list->entry_data.utf8_string, + entry_data_list->entry_data.data_size); break; case MMDB_DATA_TYPE_BYTES: - ZVAL_STRINGL(z_value, - (char *)entry_data_list->entry_data.bytes, - entry_data_list->entry_data.data_size); + _ZVAL_STRINGL(z_value, + (char *)entry_data_list->entry_data.bytes, + entry_data_list->entry_data.data_size); break; case MMDB_DATA_TYPE_DOUBLE: ZVAL_DOUBLE(z_value, entry_data_list->entry_data.double_value); @@ -421,10 +445,9 @@ handle_entry_data_list(const MMDB_entry_data_list_s *entry_data_list, ZVAL_LONG(z_value, entry_data_list->entry_data.int32); break; default: - zend_throw_exception_ex(maxminddb_exception_ce, - 0 TSRMLS_CC, - "Invalid data type arguments: %d", - entry_data_list->entry_data.type); + THROW_EXCEPTION(PHP_MAXMINDDB_READER_EX_NS, + "Invalid data type arguments: %d", + entry_data_list->entry_data.type); return NULL; } return entry_data_list; @@ -436,26 +459,30 @@ handle_map(const MMDB_entry_data_list_s *entry_data_list, array_init(z_value); const uint32_t map_size = entry_data_list->entry_data.data_size; - uint32_t i; + uint i; for (i = 0; i < map_size && entry_data_list; i++) { entry_data_list = entry_data_list->next; char *key = estrndup((char *)entry_data_list->entry_data.utf8_string, entry_data_list->entry_data.data_size); if (NULL == key) { - zend_throw_exception_ex(maxminddb_exception_ce, - 0 TSRMLS_CC, - "Invalid data type arguments"); + THROW_EXCEPTION(PHP_MAXMINDDB_READER_EX_NS, + "Invalid data type arguments"); return NULL; } entry_data_list = entry_data_list->next; - zval new_value; +#ifdef ZEND_ENGINE_3 + zval _new_value; + zval *new_value = &_new_value; + ZVAL_NULL(new_value); +#else + zval *new_value; + ALLOC_INIT_ZVAL(new_value); +#endif entry_data_list = - handle_entry_data_list(entry_data_list, &new_value TSRMLS_CC); - if (entry_data_list != NULL) { - add_assoc_zval(z_value, key, &new_value); - } + handle_entry_data_list(entry_data_list, new_value TSRMLS_CC); + add_assoc_zval(z_value, key, new_value); efree(key); } return entry_data_list; @@ -468,15 +495,20 @@ handle_array(const MMDB_entry_data_list_s *entry_data_list, array_init(z_value); - uint32_t i; + uint i; for (i = 0; i < size && entry_data_list; i++) { entry_data_list = entry_data_list->next; - zval new_value; +#ifdef ZEND_ENGINE_3 + zval _new_value; + zval *new_value = &_new_value; + ZVAL_NULL(new_value); +#else + zval *new_value; + ALLOC_INIT_ZVAL(new_value); +#endif entry_data_list = - handle_entry_data_list(entry_data_list, &new_value TSRMLS_CC); - if (entry_data_list != NULL) { - add_next_index_zval(z_value, &new_value); - } + handle_entry_data_list(entry_data_list, new_value TSRMLS_CC); + add_next_index_zval(z_value, new_value); } return entry_data_list; } @@ -503,7 +535,7 @@ static void handle_uint128(const MMDB_entry_data_list_s *entry_data_list, spprintf(&num_str, 0, "0x%016" PRIX64 "%016" PRIX64, high, low); CHECK_ALLOCATED(num_str); - ZVAL_STRING(z_value, num_str); + _ZVAL_STRING(z_value, num_str); efree(num_str); } @@ -524,7 +556,7 @@ static void handle_uint32(const MMDB_entry_data_list_s *entry_data_list, spprintf(&int_str, 0, "%" PRIu32, val); CHECK_ALLOCATED(int_str); - ZVAL_STRING(z_value, int_str); + _ZVAL_STRING(z_value, int_str); efree(int_str); #endif } @@ -546,11 +578,29 @@ static void handle_uint64(const MMDB_entry_data_list_s *entry_data_list, spprintf(&int_str, 0, "%" PRIu64, val); CHECK_ALLOCATED(int_str); - ZVAL_STRING(z_value, int_str); + _ZVAL_STRING(z_value, int_str); efree(int_str); #endif } +static zend_class_entry *lookup_class(const char *name TSRMLS_DC) { +#ifdef ZEND_ENGINE_3 + zend_string *n = zend_string_init(name, strlen(name), 0); + zend_class_entry *ce = zend_lookup_class(n); + zend_string_release(n); + if (NULL == ce) { + zend_error(E_ERROR, "Class %s not found", name); + } + return ce; +#else + zend_class_entry **ce; + if (FAILURE == zend_lookup_class(name, strlen(name), &ce TSRMLS_CC)) { + zend_error(E_ERROR, "Class %s not found", name); + } + return *ce; +#endif +} + static void maxminddb_free_storage(free_obj_t *object TSRMLS_DC) { maxminddb_obj *obj = php_maxminddb_fetch_object((zend_object *)object TSRMLS_CC); @@ -560,8 +610,12 @@ static void maxminddb_free_storage(free_obj_t *object TSRMLS_DC) { } zend_object_std_dtor(&obj->std TSRMLS_CC); +#ifndef ZEND_ENGINE_3 + efree(object); +#endif } +#ifdef ZEND_ENGINE_3 static zend_object *maxminddb_create_handler(zend_class_entry *type TSRMLS_DC) { maxminddb_obj *obj = (maxminddb_obj *)ecalloc(1, sizeof(maxminddb_obj)); zend_object_std_init(&obj->std, type TSRMLS_CC); @@ -571,210 +625,49 @@ static zend_object *maxminddb_create_handler(zend_class_entry *type TSRMLS_DC) { return &obj->std; } +#else +static zend_object_value +maxminddb_create_handler(zend_class_entry *type TSRMLS_DC) { + zend_object_value retval; -/* clang-format off */ -static zend_function_entry maxminddb_methods[] = { - PHP_ME(MaxMind_Db_Reader, __construct, arginfo_maxminddbreader_construct, - ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(MaxMind_Db_Reader, close, arginfo_maxminddbreader_void, ZEND_ACC_PUBLIC) - PHP_ME(MaxMind_Db_Reader, get, arginfo_maxminddbreader_get, ZEND_ACC_PUBLIC) - PHP_ME(MaxMind_Db_Reader, getWithPrefixLen, arginfo_maxminddbreader_getWithPrefixLen, ZEND_ACC_PUBLIC) - PHP_ME(MaxMind_Db_Reader, metadata, arginfo_maxminddbreader_void, ZEND_ACC_PUBLIC) - { NULL, NULL, NULL } -}; -/* clang-format on */ + maxminddb_obj *obj = (maxminddb_obj *)ecalloc(1, sizeof(maxminddb_obj)); + zend_object_std_init(&obj->std, type TSRMLS_CC); + object_properties_init(&(obj->std), type); -ZEND_BEGIN_ARG_INFO_EX(arginfo_metadata_construct, 0, 0, 1) -ZEND_ARG_TYPE_INFO(0, metadata, IS_ARRAY, 0) -ZEND_END_ARG_INFO() + retval.handle = zend_objects_store_put( + obj, NULL, maxminddb_free_storage, NULL TSRMLS_CC); + retval.handlers = &maxminddb_obj_handlers; -PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) { - zval *object = NULL; - zval *metadata_array = NULL; - zend_long node_count = 0; - zend_long record_size = 0; - - if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - getThis(), - "Oa", - &object, - metadata_ce, - &metadata_array) == FAILURE) { - return; - } - - zval *tmp = NULL; - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "binary_format_major_version", - sizeof("binary_format_major_version") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "binaryFormatMajorVersion", - sizeof("binaryFormatMajorVersion") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "binary_format_minor_version", - sizeof("binary_format_minor_version") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "binaryFormatMinorVersion", - sizeof("binaryFormatMinorVersion") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "build_epoch", - sizeof("build_epoch") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "buildEpoch", - sizeof("buildEpoch") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "database_type", - sizeof("database_type") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "databaseType", - sizeof("databaseType") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "description", - sizeof("description") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "description", - sizeof("description") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "ip_version", - sizeof("ip_version") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "ipVersion", - sizeof("ipVersion") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find( - HASH_OF(metadata_array), "languages", sizeof("languages") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "languages", - sizeof("languages") - 1, - tmp); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "record_size", - sizeof("record_size") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "recordSize", - sizeof("recordSize") - 1, - tmp); - if (Z_TYPE_P(tmp) == IS_LONG) { - record_size = Z_LVAL_P(tmp); - } - } - - if (record_size != 0) { - zend_update_property_long(metadata_ce, - PROP_OBJ(object), - "nodeByteSize", - sizeof("nodeByteSize") - 1, - record_size / 4); - } - - if ((tmp = zend_hash_str_find(HASH_OF(metadata_array), - "node_count", - sizeof("node_count") - 1))) { - zend_update_property(metadata_ce, - PROP_OBJ(object), - "nodeCount", - sizeof("nodeCount") - 1, - tmp); - if (Z_TYPE_P(tmp) == IS_LONG) { - node_count = Z_LVAL_P(tmp); - } - } - - if (record_size != 0) { - zend_update_property_long(metadata_ce, - PROP_OBJ(object), - "searchTreeSize", - sizeof("searchTreeSize") - 1, - record_size * node_count / 4); - } + return retval; } +#endif // clang-format off -static zend_function_entry metadata_methods[] = { - PHP_ME(MaxMind_Db_Reader_Metadata, __construct, arginfo_metadata_construct, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - {NULL, NULL, NULL} +static zend_function_entry maxminddb_methods[] = { + PHP_ME(MaxMind_Db_Reader, __construct, arginfo_maxmindbreader_construct, + ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) + PHP_ME(MaxMind_Db_Reader, close, arginfo_maxmindbreader_void, ZEND_ACC_PUBLIC) + PHP_ME(MaxMind_Db_Reader, get, arginfo_maxmindbreader_get, ZEND_ACC_PUBLIC) + PHP_ME(MaxMind_Db_Reader, getWithPrefixLen, arginfo_maxmindbreader_get, ZEND_ACC_PUBLIC) + PHP_ME(MaxMind_Db_Reader, metadata, arginfo_maxmindbreader_void, ZEND_ACC_PUBLIC) + { NULL, NULL, NULL } }; // clang-format on PHP_MINIT_FUNCTION(maxminddb) { zend_class_entry ce; - INIT_CLASS_ENTRY(ce, PHP_MAXMINDDB_READER_EX_NS, NULL); - maxminddb_exception_ce = - zend_register_internal_class_ex(&ce, zend_ce_exception); - INIT_CLASS_ENTRY(ce, PHP_MAXMINDDB_READER_NS, maxminddb_methods); maxminddb_ce = zend_register_internal_class(&ce TSRMLS_CC); maxminddb_ce->create_object = maxminddb_create_handler; - - INIT_CLASS_ENTRY(ce, PHP_MAXMINDDB_METADATA_NS, metadata_methods); - metadata_ce = zend_register_internal_class(&ce TSRMLS_CC); - zend_declare_property_null(metadata_ce, - "binaryFormatMajorVersion", - sizeof("binaryFormatMajorVersion") - 1, - ZEND_ACC_PUBLIC); - zend_declare_property_null(metadata_ce, - "binaryFormatMinorVersion", - sizeof("binaryFormatMinorVersion") - 1, - ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "buildEpoch", sizeof("buildEpoch") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null(metadata_ce, - "databaseType", - sizeof("databaseType") - 1, - ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "description", sizeof("description") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "ipVersion", sizeof("ipVersion") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "languages", sizeof("languages") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null(metadata_ce, - "nodeByteSize", - sizeof("nodeByteSize") - 1, - ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "nodeCount", sizeof("nodeCount") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null( - metadata_ce, "recordSize", sizeof("recordSize") - 1, ZEND_ACC_PUBLIC); - zend_declare_property_null(metadata_ce, - "searchTreeSize", - sizeof("searchTreeSize") - 1, - ZEND_ACC_PUBLIC); - memcpy(&maxminddb_obj_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); maxminddb_obj_handlers.clone_obj = NULL; +#ifdef ZEND_ENGINE_3 maxminddb_obj_handlers.offset = XtOffsetOf(maxminddb_obj, std); maxminddb_obj_handlers.free_obj = maxminddb_free_storage; +#endif zend_declare_class_constant_string(maxminddb_ce, "MMDB_LIB_VERSION", sizeof("MMDB_LIB_VERSION") - 1, diff --git a/vendor/maxmind-db/reader/ext/php_maxminddb.h b/vendor/maxmind-db/reader/ext/php_maxminddb.h index cba9ed50b..75c647bfc 100644 --- a/vendor/maxmind-db/reader/ext/php_maxminddb.h +++ b/vendor/maxmind-db/reader/ext/php_maxminddb.h @@ -15,7 +15,7 @@ #ifndef PHP_MAXMINDDB_H #define PHP_MAXMINDDB_H 1 -#define PHP_MAXMINDDB_VERSION "1.10.1" +#define PHP_MAXMINDDB_VERSION "1.6.0" #define PHP_MAXMINDDB_EXTNAME "maxminddb" extern zend_module_entry maxminddb_module_entry; diff --git a/vendor/maxmind-db/reader/package.xml b/vendor/maxmind-db/reader/package.xml deleted file mode 100644 index b687468f4..000000000 --- a/vendor/maxmind-db/reader/package.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - maxminddb - pecl.php.net - Reader for the MaxMind DB file format - This is the PHP extension for reading MaxMind DB files. MaxMind DB is a binary file format that stores data indexed by IP address subnets (IPv4 or IPv6). - - Greg Oschwald - oschwald - goschwald@maxmind.com - yes - - 2021-04-14 - - 1.10.1 - 1.10.1 - - - stable - stable - - Apache License 2.0 - * Fix a `TypeError` exception in the pure PHP reader when using large - databases on 32-bit PHP builds with the `bcmath` extension. Reported - by dodo1708. GitHub #124. - - - - - - - - - - - - - - - - - - - - - - - - - 7.2.0 - - - 1.10.0 - - - - maxminddb - - diff --git a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php index 4dfaef442..3d5a8291d 100644 --- a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php +++ b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader.php @@ -1,10 +1,7 @@ fileHandle = $fileHandle; - - $fileSize = @filesize($database); - if ($fileSize === false) { + $this->fileHandle = @fopen($database, 'rb'); + if ($this->fileHandle === false) { + throw new InvalidArgumentException( + "Error opening \"$database\"." + ); + } + $this->fileSize = @filesize($database); + if ($this->fileSize === false) { throw new UnexpectedValueException( "Error determining the size of \"$database\"." ); } - $this->fileSize = $fileSize; $start = $this->findMetadataStart($database); $metadataDecoder = new Decoder($this->fileHandle, $start); - [$metadataArray] = $metadataDecoder->decode($start); + list($metadataArray) = $metadataDecoder->decode($start); $this->metadata = new Metadata($metadataArray); $this->decoder = new Decoder( $this->fileHandle, @@ -119,14 +91,14 @@ class Reader * * @return mixed the record for the IP address */ - public function get(string $ipAddress) + public function get($ipAddress) { if (\func_num_args() !== 1) { - throw new ArgumentCountError( - sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args()) + throw new InvalidArgumentException( + 'Method takes exactly one argument.' ); } - [$record] = $this->getWithPrefixLen($ipAddress); + list($record) = $this->getWithPrefixLen($ipAddress); return $record; } @@ -146,11 +118,11 @@ class Reader * @return array an array where the first element is the record and the * second the network prefix length for the record */ - public function getWithPrefixLen(string $ipAddress): array + public function getWithPrefixLen($ipAddress) { if (\func_num_args() !== 1) { - throw new ArgumentCountError( - sprintf('%s() expects exactly 1 parameter, %d given', __METHOD__, \func_num_args()) + throw new InvalidArgumentException( + 'Method takes exactly one argument.' ); } @@ -160,7 +132,13 @@ class Reader ); } - [$pointer, $prefixLen] = $this->findAddressInTree($ipAddress); + if (!filter_var($ipAddress, FILTER_VALIDATE_IP)) { + throw new InvalidArgumentException( + "The value \"$ipAddress\" is not a valid IP address." + ); + } + + list($pointer, $prefixLen) = $this->findAddressInTree($ipAddress); if ($pointer === 0) { return [null, $prefixLen]; } @@ -168,16 +146,9 @@ class Reader return [$this->resolveDataPointer($pointer), $prefixLen]; } - private function findAddressInTree(string $ipAddress): array + private function findAddressInTree($ipAddress) { - $packedAddr = @inet_pton($ipAddress); - if ($packedAddr === false) { - throw new InvalidArgumentException( - "The value \"$ipAddress\" is not a valid IP address." - ); - } - - $rawAddress = unpack('C*', $packedAddr); + $rawAddress = unpack('C*', inet_pton($ipAddress)); $bitCount = \count($rawAddress) * 8; @@ -211,18 +182,14 @@ class Reader if ($node === $nodeCount) { // Record is empty return [0, $i]; - } - if ($node > $nodeCount) { + } elseif ($node > $nodeCount) { // Record is a data pointer return [$node, $i]; } - - throw new InvalidDatabaseException( - 'Invalid or corrupt database. Maximum search depth reached without finding a leaf node' - ); + throw new InvalidDatabaseException('Something bad happened'); } - private function ipV4StartNode(): int + private function ipV4StartNode() { // If we have an IPv4 database, the start node is the first node if ($this->metadata->ipVersion === 4) { @@ -238,17 +205,16 @@ class Reader return $node; } - private function readNode(int $nodeNumber, int $index): int + private function readNode($nodeNumber, $index) { $baseOffset = $nodeNumber * $this->metadata->nodeByteSize; switch ($this->metadata->recordSize) { case 24: $bytes = Util::read($this->fileHandle, $baseOffset + $index * 3, 3); - [, $node] = unpack('N', "\x00" . $bytes); + list(, $node) = unpack('N', "\x00" . $bytes); return $node; - case 28: $bytes = Util::read($this->fileHandle, $baseOffset + 3 * $index, 4); if ($index === 0) { @@ -256,16 +222,14 @@ class Reader } else { $middle = 0x0F & \ord($bytes[0]); } - [, $node] = unpack('N', \chr($middle) . substr($bytes, $index, 3)); + list(, $node) = unpack('N', \chr($middle) . substr($bytes, $index, 3)); return $node; - case 32: $bytes = Util::read($this->fileHandle, $baseOffset + $index * 4, 4); - [, $node] = unpack('N', $bytes); + list(, $node) = unpack('N', $bytes); return $node; - default: throw new InvalidDatabaseException( 'Unknown record size: ' @@ -274,10 +238,7 @@ class Reader } } - /** - * @return mixed - */ - private function resolveDataPointer(int $pointer) + private function resolveDataPointer($pointer) { $resolved = $pointer - $this->metadata->nodeCount + $this->metadata->searchTreeSize; @@ -287,7 +248,7 @@ class Reader ); } - [$data] = $this->decoder->decode($resolved); + list($data) = $this->decoder->decode($resolved); return $data; } @@ -297,7 +258,7 @@ class Reader * are much faster algorithms (e.g., Boyer-Moore) for this if speed is ever * an issue, but I suspect it won't be. */ - private function findMetadataStart(string $filename): int + private function findMetadataStart($filename) { $handle = $this->fileHandle; $fstat = fstat($handle); @@ -317,7 +278,6 @@ class Reader return $offset + $markerLength; } } - throw new InvalidDatabaseException( "Error opening database file ($filename). " . 'Is this a valid MaxMind DB file?' @@ -330,11 +290,11 @@ class Reader * * @return Metadata object for the database */ - public function metadata(): Metadata + public function metadata() { if (\func_num_args()) { - throw new ArgumentCountError( - sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args()) + throw new InvalidArgumentException( + 'Method takes no arguments.' ); } @@ -346,7 +306,7 @@ class Reader ); } - return clone $this->metadata; + return $this->metadata; } /** @@ -355,14 +315,8 @@ class Reader * @throws Exception * if an I/O error occurs */ - public function close(): void + public function close() { - if (\func_num_args()) { - throw new ArgumentCountError( - sprintf('%s() expects exactly 0 parameters, %d given', __METHOD__, \func_num_args()) - ); - } - if (!\is_resource($this->fileHandle)) { throw new BadMethodCallException( 'Attempt to close a closed MaxMind DB.' diff --git a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php index babaed878..132dae82c 100644 --- a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php +++ b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Decoder.php @@ -1,61 +1,63 @@ fileStream = $fileStream; $this->pointerBase = $pointerBase; @@ -66,7 +68,7 @@ class Decoder $this->switchByteOrder = $this->isPlatformLittleEndian(); } - public function decode(int $offset): array + public function decode($offset) { $ctrlByte = \ord(Util::read($this->fileStream, $offset, 1)); ++$offset; @@ -77,14 +79,14 @@ class Decoder // use the size to determine the length of the pointer and then follow // it. if ($type === self::_POINTER) { - [$pointer, $offset] = $this->decodePointer($ctrlByte, $offset); + list($pointer, $offset) = $this->decodePointer($ctrlByte, $offset); // for unit testing if ($this->pointerTestHack) { return [$pointer]; } - [$result] = $this->decode($pointer); + list($result) = $this->decode($pointer); return [$result, $offset]; } @@ -106,51 +108,43 @@ class Decoder ++$offset; } - [$size, $offset] = $this->sizeFromCtrlByte($ctrlByte, $offset); + list($size, $offset) = $this->sizeFromCtrlByte($ctrlByte, $offset); return $this->decodeByType($type, $offset, $size); } - private function decodeByType(int $type, int $offset, int $size): array + private function decodeByType($type, $offset, $size) { switch ($type) { case self::_MAP: return $this->decodeMap($size, $offset); - case self::_ARRAY: return $this->decodeArray($size, $offset); - case self::_BOOLEAN: return [$this->decodeBoolean($size), $offset]; } $newOffset = $offset + $size; $bytes = Util::read($this->fileStream, $offset, $size); - switch ($type) { case self::_BYTES: case self::_UTF8_STRING: return [$bytes, $newOffset]; - case self::_DOUBLE: $this->verifySize(8, $size); return [$this->decodeDouble($bytes), $newOffset]; - case self::_FLOAT: $this->verifySize(4, $size); return [$this->decodeFloat($bytes), $newOffset]; - case self::_INT32: return [$this->decodeInt32($bytes, $size), $newOffset]; - case self::_UINT16: case self::_UINT32: case self::_UINT64: case self::_UINT128: return [$this->decodeUint($bytes, $size), $newOffset]; - default: throw new InvalidDatabaseException( 'Unknown or unexpected type: ' . $type @@ -158,7 +152,7 @@ class Decoder } } - private function verifySize(int $expected, int $actual): void + private function verifySize($expected, $actual) { if ($expected !== $actual) { throw new InvalidDatabaseException( @@ -167,82 +161,86 @@ class Decoder } } - private function decodeArray(int $size, int $offset): array + private function decodeArray($size, $offset) { $array = []; for ($i = 0; $i < $size; ++$i) { - [$value, $offset] = $this->decode($offset); - $array[] = $value; + list($value, $offset) = $this->decode($offset); + array_push($array, $value); } return [$array, $offset]; } - private function decodeBoolean(int $size): bool + private function decodeBoolean($size) { - return $size !== 0; + return $size === 0 ? false : true; } - private function decodeDouble(string $bytes): float + private function decodeDouble($bits) { // This assumes IEEE 754 doubles, but most (all?) modern platforms // use them. - [, $double] = unpack('E', $bytes); + // + // We are not using the "E" format as that was only added in + // 7.0.15 and 7.1.1. As such, we must switch byte order on + // little endian machines. + list(, $double) = unpack('d', $this->maybeSwitchByteOrder($bits)); return $double; } - private function decodeFloat(string $bytes): float + private function decodeFloat($bits) { // This assumes IEEE 754 floats, but most (all?) modern platforms // use them. - [, $float] = unpack('G', $bytes); + // + // We are not using the "G" format as that was only added in + // 7.0.15 and 7.1.1. As such, we must switch byte order on + // little endian machines. + list(, $float) = unpack('f', $this->maybeSwitchByteOrder($bits)); return $float; } - private function decodeInt32(string $bytes, int $size): int + private function decodeInt32($bytes, $size) { switch ($size) { case 0: return 0; - case 1: case 2: case 3: - $bytes = str_pad($bytes, 4, "\x00", \STR_PAD_LEFT); - + $bytes = str_pad($bytes, 4, "\x00", STR_PAD_LEFT); break; - case 4: break; - default: throw new InvalidDatabaseException( "The MaxMind DB file's data section contains bad data (unknown data type or corrupt data)" ); } - [, $int] = unpack('l', $this->maybeSwitchByteOrder($bytes)); + list(, $int) = unpack('l', $this->maybeSwitchByteOrder($bytes)); return $int; } - private function decodeMap(int $size, int $offset): array + private function decodeMap($size, $offset) { $map = []; for ($i = 0; $i < $size; ++$i) { - [$key, $offset] = $this->decode($offset); - [$value, $offset] = $this->decode($offset); + list($key, $offset) = $this->decode($offset); + list($value, $offset) = $this->decode($offset); $map[$key] = $value; } return [$map, $offset]; } - private function decodePointer(int $ctrlByte, int $offset): array + private function decodePointer($ctrlByte, $offset) { $pointerSize = (($ctrlByte >> 3) & 0x3) + 1; @@ -252,56 +250,46 @@ class Decoder switch ($pointerSize) { case 1: $packed = \chr($ctrlByte & 0x7) . $buffer; - [, $pointer] = unpack('n', $packed); + list(, $pointer) = unpack('n', $packed); $pointer += $this->pointerBase; - break; - case 2: $packed = "\x00" . \chr($ctrlByte & 0x7) . $buffer; - [, $pointer] = unpack('N', $packed); + list(, $pointer) = unpack('N', $packed); $pointer += $this->pointerBase + 2048; - break; - case 3: $packed = \chr($ctrlByte & 0x7) . $buffer; // It is safe to use 'N' here, even on 32 bit machines as the // first bit is 0. - [, $pointer] = unpack('N', $packed); + list(, $pointer) = unpack('N', $packed); $pointer += $this->pointerBase + 526336; - break; - case 4: // We cannot use unpack here as we might overflow on 32 bit // machines $pointerOffset = $this->decodeUint($buffer, $pointerSize); - $pointerBase = $this->pointerBase; + $byteLength = $pointerSize + $this->pointerBaseByteSize; - if (\PHP_INT_MAX - $pointerBase >= $pointerOffset) { - $pointer = $pointerOffset + $pointerBase; + if ($byteLength <= _MM_MAX_INT_BYTES) { + $pointer = $pointerOffset + $this->pointerBase; + } elseif (\extension_loaded('gmp')) { + $pointer = gmp_strval(gmp_add($pointerOffset, $this->pointerBase)); + } elseif (\extension_loaded('bcmath')) { + $pointer = bcadd($pointerOffset, $this->pointerBase); } else { throw new RuntimeException( - 'The database offset is too large to be represented on your platform.' + 'The gmp or bcmath extension must be installed to read this database.' ); } - - break; - - default: - throw new InvalidDatabaseException( - 'Unexpected pointer size ' . $pointerSize - ); } return [$pointer, $offset]; } - // @phpstan-ignore-next-line - private function decodeUint(string $bytes, int $byteLength) + private function decodeUint($bytes, $byteLength) { if ($byteLength === 0) { return 0; @@ -309,22 +297,16 @@ class Decoder $integer = 0; - // PHP integers are signed. PHP_INT_SIZE - 1 is the number of - // complete bytes that can be converted to an integer. However, - // we can convert another byte if the leading bit is zero. - $useRealInts = $byteLength <= \PHP_INT_SIZE - 1 - || ($byteLength === \PHP_INT_SIZE && (\ord($bytes[0]) & 0x80) === 0); - for ($i = 0; $i < $byteLength; ++$i) { $part = \ord($bytes[$i]); // We only use gmp or bcmath if the final value is too big - if ($useRealInts) { + if ($byteLength <= _MM_MAX_INT_BYTES) { $integer = ($integer << 8) + $part; } elseif (\extension_loaded('gmp')) { - $integer = gmp_strval(gmp_add(gmp_mul((string) $integer, '256'), $part)); + $integer = gmp_strval(gmp_add(gmp_mul($integer, 256), $part)); } elseif (\extension_loaded('bcmath')) { - $integer = bcadd(bcmul((string) $integer, '256'), (string) $part); + $integer = bcadd(bcmul($integer, 256), $part); } else { throw new RuntimeException( 'The gmp or bcmath extension must be installed to read this database.' @@ -335,9 +317,9 @@ class Decoder return $integer; } - private function sizeFromCtrlByte(int $ctrlByte, int $offset): array + private function sizeFromCtrlByte($ctrlByte, $offset) { - $size = $ctrlByte & 0x1F; + $size = $ctrlByte & 0x1f; if ($size < 29) { return [$size, $offset]; @@ -349,22 +331,22 @@ class Decoder if ($size === 29) { $size = 29 + \ord($bytes); } elseif ($size === 30) { - [, $adjust] = unpack('n', $bytes); + list(, $adjust) = unpack('n', $bytes); $size = 285 + $adjust; - } else { - [, $adjust] = unpack('N', "\x00" . $bytes); + } elseif ($size > 30) { + list(, $adjust) = unpack('N', "\x00" . $bytes); $size = $adjust + 65821; } return [$size, $offset + $bytesToRead]; } - private function maybeSwitchByteOrder(string $bytes): string + private function maybeSwitchByteOrder($bytes) { return $this->switchByteOrder ? strrev($bytes) : $bytes; } - private function isPlatformLittleEndian(): bool + private function isPlatformLittleEndian() { $testint = 0x00FF; $packed = pack('S', $testint); diff --git a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php index 532310703..478a22c55 100644 --- a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php +++ b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/InvalidDatabaseException.php @@ -1,7 +1,5 @@ binaryFormatMajorVersion = $metadata['binary_format_major_version']; $this->binaryFormatMinorVersion = @@ -109,4 +80,9 @@ class Metadata $this->nodeByteSize = $this->recordSize / 4; $this->searchTreeSize = $this->nodeCount * $this->nodeByteSize; } + + public function __get($var) + { + return $this->$var; + } } diff --git a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php index 89db715e3..87ebbf133 100644 --- a/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php +++ b/vendor/maxmind-db/reader/src/MaxMind/Db/Reader/Util.php @@ -1,15 +1,10 @@ =7.2", + "php": ">=5.6", "composer/ca-bundle": "^1.0.3", "ext-curl": "*", "ext-json": "*" }, "require-dev": { - "friendsofphp/php-cs-fixer": "3.*", - "phpunit/phpunit": "^8.0 || ^9.0", - "squizlabs/php_codesniffer": "3.*", - "phpstan/phpstan": "*" + "friendsofphp/php-cs-fixer": "2.*", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0", + "squizlabs/php_codesniffer": "3.*" }, "autoload": { "psr-4": { diff --git a/vendor/maxmind/web-service-common/dev-bin/release.sh b/vendor/maxmind/web-service-common/dev-bin/release.sh index 96c41607d..a5de03027 100644 --- a/vendor/maxmind/web-service-common/dev-bin/release.sh +++ b/vendor/maxmind/web-service-common/dev-bin/release.sh @@ -51,6 +51,10 @@ fi git push -gh release create --target "$(git branch --show-current)" -t "$version" -n "$notes" "$tag" +message="$version + +$notes" + +hub release create -m "$message" "$tag" git push --tags diff --git a/vendor/maxmind/web-service-common/phpstan.neon b/vendor/maxmind/web-service-common/phpstan.neon deleted file mode 100644 index ee1616dbe..000000000 --- a/vendor/maxmind/web-service-common/phpstan.neon +++ /dev/null @@ -1,7 +0,0 @@ -parameters: - level: 6 - paths: - - src - - tests - checkMissingIterableValueType: false - diff --git a/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php b/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php index 5b016ce51..ba423627b 100644 --- a/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php +++ b/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php @@ -1,7 +1,5 @@ uri = $uri; parent::__construct($message, $httpStatus, $previous); } - public function getUri(): string + public function getUri() { return $this->uri; } - public function getStatusCode(): int + public function getStatusCode() { return $this->getCode(); } diff --git a/vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php b/vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php index 283145650..fe159a2a5 100644 --- a/vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php +++ b/vendor/maxmind/web-service-common/src/Exception/InsufficientFundsException.php @@ -1,7 +1,5 @@ error = $error; parent::__construct($message, $httpStatus, $uri, $previous); } - public function getErrorCode(): string + public function getErrorCode() { return $this->error; } diff --git a/vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php b/vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php index 581db488b..31608f718 100644 --- a/vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php +++ b/vendor/maxmind/web-service-common/src/Exception/IpAddressNotFoundException.php @@ -1,7 +1,5 @@ accountId = $accountId; $this->licenseKey = $licenseKey; @@ -104,9 +61,6 @@ class Client if (isset($options['host'])) { $this->host = $options['host']; } - if (isset($options['useHttps'])) { - $this->useHttps = $options['useHttps']; - } if (isset($options['userAgent'])) { $this->userAgentPrefix = $options['userAgent'] . ' '; } @@ -142,9 +96,9 @@ class Client * @throws WebServiceException when some other error occurs. This also * serves as the base class for the above exceptions. * - * @return array|null The decoded content of a successful response + * @return array The decoded content of a successful response */ - public function post(string $service, string $path, array $input): ?array + public function post($service, $path, $input) { $requestBody = json_encode($input); if ($requestBody === false) { @@ -159,7 +113,7 @@ class Client ['Content-Type: application/json'] ); - [$statusCode, $contentType, $responseBody] = $request->post($requestBody); + list($statusCode, $contentType, $responseBody) = $request->post($requestBody); return $this->handleResponse( $statusCode, @@ -170,13 +124,11 @@ class Client ); } - public function get(string $service, string $path): ?array + public function get($service, $path) { - $request = $this->createRequest( - $path - ); + $request = $this->createRequest($path); - [$statusCode, $contentType, $responseBody] = $request->get(); + list($statusCode, $contentType, $responseBody) = $request->get(); return $this->handleResponse( $statusCode, @@ -187,15 +139,15 @@ class Client ); } - private function userAgent(): string + private function userAgent() { $curlVersion = curl_version(); - return $this->userAgentPrefix . 'MaxMind-WS-API/' . self::VERSION . ' PHP/' . \PHP_VERSION . + return $this->userAgentPrefix . 'MaxMind-WS-API/' . self::VERSION . ' PHP/' . PHP_VERSION . ' curl/' . $curlVersion['version']; } - private function createRequest(string $path, array $headers = []): Http\Request + private function createRequest($path, $headers = []) { array_push( $headers, @@ -218,11 +170,11 @@ class Client } /** - * @param int $statusCode the HTTP status code of the response - * @param string|null $contentType the Content-Type of the response - * @param string|null $responseBody the response body - * @param string $service the name of the service - * @param string $path the path used in the request + * @param int $statusCode the HTTP status code of the response + * @param string $contentType the Content-Type of the response + * @param string $responseBody the response body + * @param string $service the name of the service + * @param string $path the path used in the request * * @throws AuthenticationException when there is an issue authenticating the * request @@ -233,15 +185,15 @@ class Client * @throws WebServiceException when some other error occurs. This also * serves as the base class for the above exceptions * - * @return array|null The decoded content of a successful response + * @return array The decoded content of a successful response */ private function handleResponse( - int $statusCode, - ?string $contentType, - ?string $responseBody, - string $service, - string $path - ): ?array { + $statusCode, + $contentType, + $responseBody, + $service, + $path + ) { if ($statusCode >= 400 && $statusCode <= 499) { $this->handle4xx($statusCode, $contentType, $responseBody, $service, $path); } elseif ($statusCode >= 500) { @@ -256,26 +208,20 @@ class Client /** * @return string describing the JSON error */ - private function jsonErrorDescription(): string + private function jsonErrorDescription() { $errno = json_last_error(); - switch ($errno) { - case \JSON_ERROR_DEPTH: + case JSON_ERROR_DEPTH: return 'The maximum stack depth has been exceeded.'; - - case \JSON_ERROR_STATE_MISMATCH: + case JSON_ERROR_STATE_MISMATCH: return 'Invalid or malformed JSON.'; - - case \JSON_ERROR_CTRL_CHAR: + case JSON_ERROR_CTRL_CHAR: return 'Control character error.'; - - case \JSON_ERROR_SYNTAX: + case JSON_ERROR_SYNTAX: return 'Syntax error.'; - - case \JSON_ERROR_UTF8: + case JSON_ERROR_UTF8: return 'Malformed UTF-8 characters.'; - default: return "Other JSON error ($errno)."; } @@ -286,17 +232,17 @@ class Client * * @return string the constructed URL */ - private function urlFor(string $path): string + private function urlFor($path) { - return ($this->useHttps ? 'https://' : 'http://') . $this->host . $path; + return 'https://' . $this->host . $path; } /** - * @param int $statusCode the HTTP status code - * @param string|null $contentType the response content-type - * @param string|null $body the response body - * @param string $service the service name - * @param string $path the path used in the request + * @param int $statusCode the HTTP status code + * @param string $contentType the response content-type + * @param string $body the response body + * @param string $service the service name + * @param string $path the path used in the request * * @throws AuthenticationException * @throws HttpException @@ -304,20 +250,20 @@ class Client * @throws InvalidRequestException */ private function handle4xx( - int $statusCode, - ?string $contentType, - ?string $body, - string $service, - string $path - ): void { - if ($body === null || $body === '') { + $statusCode, + $contentType, + $body, + $service, + $path + ) { + if (\strlen($body) === 0) { throw new HttpException( "Received a $statusCode error for $service with no body", $statusCode, $this->urlFor($path) ); } - if ($contentType === null || !strstr($contentType, 'json')) { + if (!strstr($contentType, 'json')) { throw new HttpException( "Received a $statusCode error for $service with " . 'the following body: ' . $body, @@ -365,11 +311,11 @@ class Client * @throws InsufficientFundsException */ private function handleWebServiceError( - string $message, - string $code, - int $statusCode, - string $path - ): void { + $message, + $code, + $statusCode, + $path + ) { switch ($code) { case 'IP_ADDRESS_NOT_FOUND': case 'IP_ADDRESS_RESERVED': @@ -379,7 +325,6 @@ class Client $statusCode, $this->urlFor($path) ); - case 'ACCOUNT_ID_REQUIRED': case 'ACCOUNT_ID_UNKNOWN': case 'AUTHORIZATION_INVALID': @@ -392,7 +337,6 @@ class Client $statusCode, $this->urlFor($path) ); - case 'OUT_OF_QUERIES': case 'INSUFFICIENT_FUNDS': throw new InsufficientFundsException( @@ -401,7 +345,6 @@ class Client $statusCode, $this->urlFor($path) ); - case 'PERMISSION_REQUIRED': throw new PermissionRequiredException( $message, @@ -409,7 +352,6 @@ class Client $statusCode, $this->urlFor($path) ); - default: throw new InvalidRequestException( $message, @@ -427,7 +369,7 @@ class Client * * @throws HttpException */ - private function handle5xx(int $statusCode, string $service, string $path): void + private function handle5xx($statusCode, $service, $path) { throw new HttpException( "Received a server error ($statusCode) for $service", @@ -443,7 +385,7 @@ class Client * * @throws HttpException */ - private function handleUnexpectedStatus(int $statusCode, string $service, string $path): void + private function handleUnexpectedStatus($statusCode, $service, $path) { throw new HttpException( 'Received an unexpected HTTP status ' . @@ -454,22 +396,22 @@ class Client } /** - * @param int $statusCode the HTTP status code - * @param string|null $body the successful request body - * @param string $service the service name + * @param int $statusCode the HTTP status code + * @param string $body the successful request body + * @param string $service the service name * * @throws WebServiceException if a response body is included but not * expected, or is not expected but not * included, or is expected and included * but cannot be decoded as JSON * - * @return array|null the decoded request body + * @return array the decoded request body */ - private function handleSuccess(int $statusCode, ?string $body, string $service): ?array + private function handleSuccess($statusCode, $body, $service) { // A 204 should have no response body if ($statusCode === 204) { - if ($body !== null && $body !== '') { + if (\strlen($body) !== 0) { throw new WebServiceException( "Received a 204 response for $service along with an " . "unexpected HTTP body: $body" @@ -480,7 +422,7 @@ class Client } // A 200 should have a valid JSON body - if ($body === null || $body === '') { + if (\strlen($body) === 0) { throw new WebServiceException( "Received a 200 response for $service but did not " . 'receive a HTTP body.' @@ -499,7 +441,7 @@ class Client return $decodedContent; } - private function getCaBundle(): ?string + private function getCaBundle() { $curlVersion = curl_version(); diff --git a/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php b/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php index 64db29f63..ce1cf73ad 100644 --- a/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php +++ b/vendor/maxmind/web-service-common/src/WebService/Http/CurlRequest.php @@ -1,7 +1,5 @@ url = $url; $this->options = $options; @@ -36,65 +38,69 @@ class CurlRequest implements Request } /** + * @param string $body + * * @throws HttpException + * + * @return array */ - public function post(string $body): array + public function post($body) { $curl = $this->createCurl(); - curl_setopt($curl, \CURLOPT_POST, true); - curl_setopt($curl, \CURLOPT_POSTFIELDS, $body); + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $body); return $this->execute($curl); } - public function get(): array + public function get() { $curl = $this->createCurl(); - curl_setopt($curl, \CURLOPT_HTTPGET, true); + curl_setopt($curl, CURLOPT_HTTPGET, true); return $this->execute($curl); } /** - * @return \CurlHandle + * @return resource */ private function createCurl() { curl_reset($this->ch); $opts = []; - $opts[\CURLOPT_URL] = $this->url; + $opts[CURLOPT_URL] = $this->url; if (!empty($this->options['caBundle'])) { - $opts[\CURLOPT_CAINFO] = $this->options['caBundle']; + $opts[CURLOPT_CAINFO] = $this->options['caBundle']; } - $opts[\CURLOPT_ENCODING] = ''; - $opts[\CURLOPT_SSL_VERIFYHOST] = 2; - $opts[\CURLOPT_FOLLOWLOCATION] = false; - $opts[\CURLOPT_SSL_VERIFYPEER] = true; - $opts[\CURLOPT_RETURNTRANSFER] = true; + $opts[CURLOPT_ENCODING] = ''; + $opts[CURLOPT_SSL_VERIFYHOST] = 2; + $opts[CURLOPT_FOLLOWLOCATION] = false; + $opts[CURLOPT_SSL_VERIFYPEER] = true; + $opts[CURLOPT_RETURNTRANSFER] = true; - $opts[\CURLOPT_HTTPHEADER] = $this->options['headers']; - $opts[\CURLOPT_USERAGENT] = $this->options['userAgent']; - $opts[\CURLOPT_PROXY] = $this->options['proxy']; + $opts[CURLOPT_HTTPHEADER] = $this->options['headers']; + $opts[CURLOPT_USERAGENT] = $this->options['userAgent']; + $opts[CURLOPT_PROXY] = $this->options['proxy']; // The defined()s are here as the *_MS opts are not available on older // cURL versions $connectTimeout = $this->options['connectTimeout']; if (\defined('CURLOPT_CONNECTTIMEOUT_MS')) { - $opts[\CURLOPT_CONNECTTIMEOUT_MS] = ceil($connectTimeout * 1000); + $opts[CURLOPT_CONNECTTIMEOUT_MS] = ceil($connectTimeout * 1000); } else { - $opts[\CURLOPT_CONNECTTIMEOUT] = ceil($connectTimeout); + $opts[CURLOPT_CONNECTTIMEOUT] = ceil($connectTimeout); } $timeout = $this->options['timeout']; if (\defined('CURLOPT_TIMEOUT_MS')) { - $opts[\CURLOPT_TIMEOUT_MS] = ceil($timeout * 1000); + $opts[CURLOPT_TIMEOUT_MS] = ceil($timeout * 1000); } else { - $opts[\CURLOPT_TIMEOUT] = ceil($timeout); + $opts[CURLOPT_TIMEOUT] = ceil($timeout); } curl_setopt_array($this->ch, $opts); @@ -103,11 +109,13 @@ class CurlRequest implements Request } /** - * @param \CurlHandle $curl + * @param resource $curl * * @throws HttpException + * + * @return array */ - private function execute($curl): array + private function execute($curl) { $body = curl_exec($curl); if ($errno = curl_errno($curl)) { @@ -120,17 +128,9 @@ class CurlRequest implements Request ); } - $statusCode = curl_getinfo($curl, \CURLINFO_HTTP_CODE); - $contentType = curl_getinfo($curl, \CURLINFO_CONTENT_TYPE); + $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); - return [ - $statusCode, - // The PHP docs say "Content-Type: of the requested document. NULL - // indicates server did not send valid Content-Type: header" for - // CURLINFO_CONTENT_TYPE. However, it will return FALSE if no header - // is set. To keep our types simple, we return null in this case. - ($contentType === false ? null : $contentType), - $body, - ]; + return [$statusCode, $contentType, $body]; } } diff --git a/vendor/maxmind/web-service-common/src/WebService/Http/Request.php b/vendor/maxmind/web-service-common/src/WebService/Http/Request.php index 994c46964..641c1ffcc 100644 --- a/vendor/maxmind/web-service-common/src/WebService/Http/Request.php +++ b/vendor/maxmind/web-service-common/src/WebService/Http/Request.php @@ -1,7 +1,5 @@ ch)) { @@ -39,7 +34,13 @@ class RequestFactory return $this->ch; } - public function request(string $url, array $options): Request + /** + * @param string $url + * @param array $options + * + * @return Request + */ + public function request($url, $options) { $options['curlHandle'] = $this->getCurlHandle(); diff --git a/vendor/sonata-project/google-authenticator/Makefile b/vendor/sonata-project/google-authenticator/Makefile new file mode 100644 index 000000000..4ae0c63d8 --- /dev/null +++ b/vendor/sonata-project/google-authenticator/Makefile @@ -0,0 +1,60 @@ +# DO NOT EDIT THIS FILE! +# +# It's auto-generated by sonata-project/dev-kit package. + +all: + @echo "Please choose a task." +.PHONY: all + +lint: lint-composer lint-yaml lint-composer lint-xml lint-php +.PHONY: lint + +lint-composer: + composer validate +.PHONY: lint-composer + +lint-yaml: + yaml-lint --ignore-non-yaml-files --quiet --exclude vendor . + +.PHONY: lint-yaml + +lint-xml: + find . \( -name '*.xml' -or -name '*.xliff' \) \ + -not -path './vendor/*' \ + -not -path './src/Resources/public/vendor/*' \ + | while read xmlFile; \ + do \ + XMLLINT_INDENT=' ' xmllint --encode UTF-8 --format "$$xmlFile"|diff - "$$xmlFile"; \ + if [ $$? -ne 0 ] ;then exit 1; fi; \ + done + +.PHONY: lint-xml + +lint-php: + php-cs-fixer fix --ansi --verbose --diff --dry-run +.PHONY: lint-php + +cs-fix: cs-fix-php cs-fix-xml +.PHONY: cs-fix + +cs-fix-php: + php-cs-fixer fix --verbose +.PHONY: cs-fix-php + +cs-fix-xml: + find . \( -name '*.xml' -or -name '*.xliff' \) \ + -not -path './vendor/*' \ + -not -path './src/Resources/public/vendor/*' \ + | while read xmlFile; \ + do \ + XMLLINT_INDENT=' ' xmllint --encode UTF-8 --format "$$xmlFile" --output "$$xmlFile"; \ + done +.PHONY: cs-fix-xml + +test: + phpunit -c phpunit.xml.dist --coverage-clover build/logs/clover.xml +.PHONY: test + +docs: + cd docs && sphinx-build -W -b html -d _build/doctrees . _build/html +.PHONY: docs diff --git a/vendor/sonata-project/google-authenticator/composer.json b/vendor/sonata-project/google-authenticator/composer.json index 39f98eabe..4fbb160ac 100644 --- a/vendor/sonata-project/google-authenticator/composer.json +++ b/vendor/sonata-project/google-authenticator/composer.json @@ -22,10 +22,10 @@ } ], "require": { - "php": "^7.3 || ^8.0" + "php": "^7.1" }, "require-dev": { - "symfony/phpunit-bridge": "^5.1.8" + "symfony/phpunit-bridge": "^4.0" }, "config": { "sort-packages": true diff --git a/vendor/sonata-project/google-authenticator/phpunit.xml.dist b/vendor/sonata-project/google-authenticator/phpunit.xml.dist new file mode 100644 index 000000000..492b036db --- /dev/null +++ b/vendor/sonata-project/google-authenticator/phpunit.xml.dist @@ -0,0 +1,40 @@ + + + + + + + + ./tests/ + + + + + + + + + + ./src/ + + + + + + + + diff --git a/vendor/sonata-project/google-authenticator/sample/web/Users.php b/vendor/sonata-project/google-authenticator/sample/web/Users.php index f6c3d56f3..fb169def9 100644 --- a/vendor/sonata-project/google-authenticator/sample/web/Users.php +++ b/vendor/sonata-project/google-authenticator/sample/web/Users.php @@ -82,7 +82,7 @@ class User public function isOTP() { - if (isset($_SESSION['OTP']) && true === $_SESSION['OTP']) { + if (isset($_SESSION['OTP']) && true == $_SESSION['OTP']) { return true; } @@ -91,8 +91,8 @@ class User public function isLoggedIn() { - if (isset($_SESSION['loggedin']) && true === $_SESSION['loggedin'] && - isset($_SESSION['ua']) && $_SESSION['ua'] === $_SERVER['HTTP_USER_AGENT'] + if (isset($_SESSION['loggedin']) && true == $_SESSION['loggedin'] && + isset($_SESSION['ua']) && $_SESSION['ua'] == $_SERVER['HTTP_USER_AGENT'] ) { return $_SESSION['username']; } @@ -143,9 +143,9 @@ class User $daysUntilInvalid = 0; $time = (string) floor((time() / (3600 * 24))); // get day number if (isset($_COOKIE['otp'])) { - [$otpday, $hash] = explode(':', $_COOKIE['otp']); + list($otpday, $hash) = explode(':', $_COOKIE['otp']); - if ($otpday >= $time - $daysUntilInvalid && $hash === hash_hmac('sha1', $this->getUsername().':'.$otpday.':'.$_SERVER['HTTP_USER_AGENT'], $this->getSecret())) { + if ($otpday >= $time - $daysUntilInvalid && $hash == hash_hmac('sha1', $this->getUsername().':'.$otpday.':'.$_SERVER['HTTP_USER_AGENT'], $this->getSecret())) { return true; } } diff --git a/vendor/sonata-project/google-authenticator/sample/web/index.php b/vendor/sonata-project/google-authenticator/sample/web/index.php index dc0bb3ef3..c039674c5 100644 --- a/vendor/sonata-project/google-authenticator/sample/web/index.php +++ b/vendor/sonata-project/google-authenticator/sample/web/index.php @@ -65,7 +65,7 @@ if ($username = $users->hasSession()) { include __DIR__.'/../tmpl/login.php'; } } - exit(); + die(); } //if the username is set in _POST, then we assume the user filled in the login form. @@ -101,14 +101,14 @@ if ($username = $users->hasSession()) { } } - exit(); + die(); } } // if we're here, something went wrong, destroy the session and show a login error session_destroy(); include __DIR__.'/../tmpl/login-error.php'; - exit(); + die(); } // if neither a session nor tried to submit the login credentials -> login screen diff --git a/vendor/sonata-project/google-authenticator/src/FixedBitNotation.php b/vendor/sonata-project/google-authenticator/src/FixedBitNotation.php index c248ec0d4..3f5ff558b 100644 --- a/vendor/sonata-project/google-authenticator/src/FixedBitNotation.php +++ b/vendor/sonata-project/google-authenticator/src/FixedBitNotation.php @@ -66,10 +66,10 @@ final class FixedBitNotation * @param bool $padFinalGroup Add padding to end of encoded output * @param string $padCharacter Character to use for padding */ - public function __construct(int $bitsPerCharacter, ?string $chars = null, bool $rightPadFinalBits = false, bool $padFinalGroup = false, string $padCharacter = '=') + public function __construct(int $bitsPerCharacter, string $chars = null, bool $rightPadFinalBits = false, bool $padFinalGroup = false, string $padCharacter = '=') { // Ensure validity of $chars - if (!\is_string($chars) || ($charLength = \strlen($chars)) < 2) { + if (!is_string($chars) || ($charLength = strlen($chars)) < 2) { $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-,'; $charLength = 64; @@ -111,12 +111,14 @@ final class FixedBitNotation * Encode a string. * * @param string $rawString Binary data to encode + * + * @return string */ public function encode($rawString): string { // Unpack string into an array of bytes $bytes = unpack('C*', $rawString); - $byteCount = \count($bytes); + $byteCount = count($bytes); $encodedString = ''; $byte = array_shift($bytes); @@ -152,9 +154,9 @@ final class FixedBitNotation // $bitsPerCharacter and 8, divided by 8 $lcmMap = [1 => 1, 2 => 1, 3 => 3, 4 => 1, 5 => 5, 6 => 3, 7 => 7, 8 => 1]; $bytesPerGroup = $lcmMap[$bitsPerCharacter]; - $pads = (int) ($bytesPerGroup * 8 / $bitsPerCharacter - - ceil((\strlen($rawString) % $bytesPerGroup) - * 8 / $bitsPerCharacter)); + $pads = $bytesPerGroup * 8 / $bitsPerCharacter + - ceil((strlen($rawString) % $bytesPerGroup) + * 8 / $bitsPerCharacter); $encodedString .= str_repeat($padCharacter[0], $pads); } @@ -192,10 +194,12 @@ final class FixedBitNotation * @param bool $caseSensitive * @param bool $strict Returns null if $encodedString contains * an undecodable character + * + * @return string */ public function decode($encodedString, $caseSensitive = true, $strict = false): string { - if (!$encodedString || !\is_string($encodedString)) { + if (!$encodedString || !is_string($encodedString)) { // Empty string, nothing to decode return ''; } @@ -220,10 +224,10 @@ final class FixedBitNotation } // The last encoded character is $encodedString[$lastNotatedIndex] - $lastNotatedIndex = \strlen($encodedString) - 1; + $lastNotatedIndex = strlen($encodedString) - 1; // Remove trailing padding characters - while ($encodedString[$lastNotatedIndex] === $padCharacter[0]) { + while ($encodedString[$lastNotatedIndex] == $padCharacter[0]) { $encodedString = substr($encodedString, 0, $lastNotatedIndex); --$lastNotatedIndex; } @@ -254,7 +258,7 @@ final class FixedBitNotation $newBits = $charmap[$encodedString[$c]] << $bitsNeeded - $bitsPerCharacter; $bitsWritten += $bitsPerCharacter; - } elseif ($c !== $lastNotatedIndex || $rightPadFinalBits) { + } elseif ($c != $lastNotatedIndex || $rightPadFinalBits) { // Zero or more too many bits to complete a byte; // shift right $newBits = $charmap[$encodedString[$c]] >> $unusedBitCount; @@ -267,11 +271,11 @@ final class FixedBitNotation $byte |= $newBits; - if (8 === $bitsWritten || $c === $lastNotatedIndex) { + if (8 == $bitsWritten || $c == $lastNotatedIndex) { // Byte is ready to be written $rawString .= pack('C', $byte); - if ($c !== $lastNotatedIndex) { + if ($c != $lastNotatedIndex) { // Start the next byte $bitsWritten = $unusedBitCount; $byte = ($charmap[$encodedString[$c]] diff --git a/vendor/sonata-project/google-authenticator/src/GoogleAuthenticator.php b/vendor/sonata-project/google-authenticator/src/GoogleAuthenticator.php index d3fc52fb8..145739c54 100644 --- a/vendor/sonata-project/google-authenticator/src/GoogleAuthenticator.php +++ b/vendor/sonata-project/google-authenticator/src/GoogleAuthenticator.php @@ -36,61 +36,52 @@ final class GoogleAuthenticator implements GoogleAuthenticatorInterface /** * @var \DateTimeInterface */ - private $instanceTime; + private $now; /** * @var int */ - private $codePeriod; + private $codePeriod = 30; /** - * @var int + * @param int $passCodeLength + * @param int $secretLength + * @param \DateTimeInterface|null $now */ - private $periodSize = 30; - - public function __construct(int $passCodeLength = 6, int $secretLength = 10, ?\DateTimeInterface $instanceTime = null, int $codePeriod = 30) + public function __construct(int $passCodeLength = 6, int $secretLength = 10, \DateTimeInterface $now = null) { - /* - * codePeriod is the duration in seconds that the code is valid. - * periodSize is the length of a period to calculate periods since Unix epoch. - * periodSize cannot be larger than the codePeriod. - */ - $this->passCodeLength = $passCodeLength; $this->secretLength = $secretLength; - $this->codePeriod = $codePeriod; - $this->periodSize = $codePeriod < $this->periodSize ? $codePeriod : $this->periodSize; $this->pinModulo = 10 ** $passCodeLength; - $this->instanceTime = $instanceTime ?? new \DateTimeImmutable(); + $this->now = $now ?? new \DateTimeImmutable(); } /** * @param string $secret * @param string $code - * @param int $discrepancy */ - public function checkCode($secret, $code, $discrepancy = 1): bool + public function checkCode($secret, $code): bool { /** - * Discrepancy is the factor of periodSize ($discrepancy * $periodSize) allowed on either side of the - * given codePeriod. For example, if a code with codePeriod = 60 is generated at 10:00:00, a discrepancy - * of 1 will allow a periodSize of 30 seconds on either side of the codePeriod resulting in a valid code - * from 09:59:30 to 10:00:29. - * - * The result of each comparison is stored as a timestamp here instead of using a guard clause + * The result of each comparison is accumulated here instead of using a guard clause * (https://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html). This is to implement * constant time comparison to make side-channel attacks harder. See * https://cryptocoding.net/index.php/Coding_rules#Compare_secret_strings_in_constant_time for details. * Each comparison uses hash_equals() instead of an operator to implement constant time equality comparison * for each code. */ - $periods = floor($this->codePeriod / $this->periodSize); - $result = 0; - for ($i = -$discrepancy; $i < $periods + $discrepancy; ++$i) { - $dateTime = new \DateTimeImmutable('@'.($this->instanceTime->getTimestamp() - ($i * $this->periodSize))); - $result = hash_equals($this->getCode($secret, $dateTime), $code) ? $dateTime->getTimestamp() : $result; - } + + // current period + $result += hash_equals($this->getCode($secret, $this->now), $code); + + // previous period, happens if the user was slow to enter or it just crossed over + $dateTime = new \DateTimeImmutable('@'.($this->now->getTimestamp() - $this->codePeriod)); + $result += hash_equals($this->getCode($secret, $dateTime), $code); + + // next period, happens if the user is not completely synced and possibly a few seconds ahead + $dateTime = new \DateTimeImmutable('@'.($this->now->getTimestamp() + $this->codePeriod)); + $result += hash_equals($this->getCode($secret, $dateTime), $code); return $result > 0; } @@ -99,21 +90,21 @@ final class GoogleAuthenticator implements GoogleAuthenticatorInterface * NEXT_MAJOR: add the interface typehint to $time and remove deprecation. * * @param string $secret - * @param float|string|int|\DateTimeInterface|null $time + * @param float|string|int|null|\DateTimeInterface $time */ - public function getCode($secret, /* \DateTimeInterface */ $time = null): string + public function getCode($secret, /* \DateTimeInterface */$time = null): string { if (null === $time) { - $time = $this->instanceTime; + $time = $this->now; } if ($time instanceof \DateTimeInterface) { - $timeForCode = floor($time->getTimestamp() / $this->periodSize); + $timeForCode = floor($time->getTimestamp() / $this->codePeriod); } else { @trigger_error( 'Passing anything other than null or a DateTimeInterface to $time is deprecated as of 2.0 '. 'and will not be possible as of 3.0.', - \E_USER_DEPRECATED + E_USER_DEPRECATED ); $timeForCode = $time; } @@ -121,15 +112,15 @@ final class GoogleAuthenticator implements GoogleAuthenticatorInterface $base32 = new FixedBitNotation(5, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', true, true); $secret = $base32->decode($secret); - $timeForCode = str_pad(pack('N', $timeForCode), 8, \chr(0), \STR_PAD_LEFT); + $timeForCode = str_pad(pack('N', $timeForCode), 8, chr(0), STR_PAD_LEFT); $hash = hash_hmac('sha1', $timeForCode, $secret, true); - $offset = \ord(substr($hash, -1)); + $offset = ord(substr($hash, -1)); $offset &= 0xF; $truncatedHash = $this->hashToInt($hash, $offset) & 0x7FFFFFFF; - return str_pad((string) ($truncatedHash % $this->pinModulo), $this->passCodeLength, '0', \STR_PAD_LEFT); + return str_pad((string) ($truncatedHash % $this->pinModulo), $this->passCodeLength, '0', STR_PAD_LEFT); } /** @@ -147,9 +138,9 @@ final class GoogleAuthenticator implements GoogleAuthenticatorInterface 'Using %s() is deprecated as of 2.1 and will be removed in 3.0. '. 'Use Sonata\GoogleAuthenticator\GoogleQrUrl::generate() instead.', __METHOD__ - ), \E_USER_DEPRECATED); + ), E_USER_DEPRECATED); - $issuer = \func_get_args()[3] ?? null; + $issuer = func_get_args()[3] ?? null; $accountName = sprintf('%s@%s', $user, $hostname); // manually concat the issuer to avoid a change in URL @@ -168,6 +159,10 @@ final class GoogleAuthenticator implements GoogleAuthenticatorInterface ->encode(random_bytes($this->secretLength)); } + /** + * @param string $bytes + * @param int $start + */ private function hashToInt(string $bytes, int $start): int { return unpack('N', substr(substr($bytes, $start), 0, 4))[1]; diff --git a/vendor/sonata-project/google-authenticator/src/GoogleAuthenticatorInterface.php b/vendor/sonata-project/google-authenticator/src/GoogleAuthenticatorInterface.php index 4dbe60130..70219f209 100644 --- a/vendor/sonata-project/google-authenticator/src/GoogleAuthenticatorInterface.php +++ b/vendor/sonata-project/google-authenticator/src/GoogleAuthenticatorInterface.php @@ -19,15 +19,15 @@ interface GoogleAuthenticatorInterface * @param string $secret * @param string $code */ - public function checkCode($secret, $code, $discrepancy = 1): bool; + public function checkCode($secret, $code): bool; /** * NEXT_MAJOR: add the interface typehint to $time and remove deprecation. * * @param string $secret - * @param float|string|int|\DateTimeInterface|null $time + * @param float|string|int|null|\DateTimeInterface $time */ - public function getCode($secret, /* \DateTimeInterface */ $time = null): string; + public function getCode($secret, /* \DateTimeInterface */$time = null): string; /** * NEXT_MAJOR: Remove this method. diff --git a/vendor/sonata-project/google-authenticator/src/GoogleQrUrl.php b/vendor/sonata-project/google-authenticator/src/GoogleQrUrl.php index e0f6e60d9..7e9a537a4 100644 --- a/vendor/sonata-project/google-authenticator/src/GoogleQrUrl.php +++ b/vendor/sonata-project/google-authenticator/src/GoogleQrUrl.php @@ -16,8 +16,7 @@ namespace Sonata\GoogleAuthenticator; /** * Responsible for QR image url generation. * - * @see http://goqr.me/api/ - * @see http://goqr.me/api/doc/ + * @see https://developers.google.com/chart/infographics/docs/qr_codes * @see https://github.com/google/google-authenticator/wiki/Key-Uri-Format * * @author Iltar van der Berg @@ -55,8 +54,10 @@ final class GoogleQrUrl * @param string $secret The secret is the generated secret unique to that user * @param string|null $issuer Where you log in to * @param int $size Image size in pixels, 200 will make it 200x200 + * + * @return string */ - public static function generate(string $accountName, string $secret, ?string $issuer = null, int $size = 200): string + public static function generate(string $accountName, string $secret, string $issuer = null, int $size = 200): string { if ('' === $accountName || false !== strpos($accountName, ':')) { throw RuntimeException::InvalidAccountName($accountName); @@ -82,7 +83,7 @@ final class GoogleQrUrl $otpauthString = rawurlencode(sprintf($otpauthString, $label, $secret, $issuer)); return sprintf( - 'https://api.qrserver.com/v1/create-qr-code/?size=%1$dx%1$d&data=%2$s&ecc=M', + 'https://chart.googleapis.com/chart?chs=%1$dx%1$d&chld=M|0&cht=qr&chl=%2$s', $size, $otpauthString );