diff options
author | Mario <mario@mariovavti.com> | 2024-03-14 10:18:51 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2024-03-14 10:18:51 +0000 |
commit | 81ce67df942d4bf378814677268fe03a29ecc028 (patch) | |
tree | 70cb1eccd45e580aec9bd685d8bdbaaf81ae6ce9 /vendor/mmccook/php-json-canonicalization-scheme | |
parent | 55097c47c5534d4453f7494f8a1542f7beb4d588 (diff) | |
download | volse-hubzilla-81ce67df942d4bf378814677268fe03a29ecc028.tar.gz volse-hubzilla-81ce67df942d4bf378814677268fe03a29ecc028.tar.bz2 volse-hubzilla-81ce67df942d4bf378814677268fe03a29ecc028.zip |
use the streams php-jcs library until the floats issue will be fixed upstream. see here for reference https://codeberg.org/streams/streams/issues/151
Diffstat (limited to 'vendor/mmccook/php-json-canonicalization-scheme')
8 files changed, 0 insertions, 272 deletions
diff --git a/vendor/mmccook/php-json-canonicalization-scheme/CHANGELOG.md b/vendor/mmccook/php-json-canonicalization-scheme/CHANGELOG.md deleted file mode 100644 index a9bd9a22b..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/CHANGELOG.md +++ /dev/null @@ -1,4 +0,0 @@ -# Changelog - -All notable changes to `php-json-canonicalization-scheme` will be documented in this file. - diff --git a/vendor/mmccook/php-json-canonicalization-scheme/LICENSE.md b/vendor/mmccook/php-json-canonicalization-scheme/LICENSE.md deleted file mode 100644 index bbd0c5b62..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) mmccook <mark.mccook@gmail.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/mmccook/php-json-canonicalization-scheme/README.md b/vendor/mmccook/php-json-canonicalization-scheme/README.md deleted file mode 100644 index 780c431b3..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# JSON Canonicalization for PHP 8.1+ - -[![Latest Version on Packagist](https://img.shields.io/packagist/v/mmccook/php-json-canonicalization-scheme.svg?style=flat-square)](https://packagist.org/packages/mmccook/php-json-canonicalization-scheme) -[![Tests](https://img.shields.io/github/actions/workflow/status/mmccook/php-json-canonicalization-scheme/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/mmccook/php-json-canonicalization-scheme/actions/workflows/run-tests.yml) -[![Total Downloads](https://img.shields.io/packagist/dt/mmccook/php-json-canonicalization-scheme.svg?style=flat-square)](https://packagist.org/packages/mmccook/php-json-canonicalization-scheme) - -Needed a way to canonicalize JSON to validate webhooks from [The Campaign Registry](https://csp-api.campaignregistry.com/v2/restAPI) -couldn't find an actively maintained package that all passed the JCS tests, so I used the one listed on the JCS Github and updated/refactored it. - -## Installation - -You can install the package via composer: - -```bash -composer require mmccook/php-json-canonicalization-scheme -``` - -## Usage - -```php -$canonicalization = JsonCanonicalizatorFactory::getInstance(); -$canonicalizedJsonString = $canonicalization->canonicalize($input); -``` - -## Testing - -```bash -composer test -``` - -## Changelog - -Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. - -## Contributing - -Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. - -## Credits -- [Mark M. McCook](https://github.com/mmccook) - -## License -The MIT License (MIT). Please see [License File](LICENSE.md) for more information. diff --git a/vendor/mmccook/php-json-canonicalization-scheme/composer.json b/vendor/mmccook/php-json-canonicalization-scheme/composer.json deleted file mode 100644 index 62f712dcc..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/composer.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "mmccook/php-json-canonicalization-scheme", - "description": "This is my package php-json-canonicalization-scheme", - "keywords": [ - "mmccook", - "php-json-canonicalization-scheme" - ], - "homepage": "https://github.com/mmccook/php-json-canonicalization-scheme", - "license": "MIT", - "authors": [ - { - "name": "Mark M. McCook", - "email": "mark.mccook@gmail.com", - "role": "Developer" - } - ], - "require": { - "php": "^8.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.13", - "pestphp/pest": "^1.20", - "phpstan/phpstan": "^1.10", - "spatie/ray": "^1.28" - }, - "autoload": { - "psr-4": { - "Mmccook\\JsonCanonicalizator\\": "src" - } - }, - "autoload-dev": { - "psr-4": { - "Mmccook\\JsonCanonicalizator\\Tests\\": "tests" - } - }, - "scripts": { - "test": "vendor/bin/pest", - "test-coverage": "vendor/bin/pest --coverage", - "format": "vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --allow-risky=yes" - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "pestphp/pest-plugin": true, - "phpstan/extension-installer": true - } - }, - "minimum-stability": "stable", - "prefer-stable": true -} diff --git a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizator.php b/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizator.php deleted file mode 100644 index 6a3c82959..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizator.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -namespace Mmccook\JsonCanonicalizator; - -class JsonCanonicalizator implements JsonCanonicalizatorInterface -{ - public const JSON_FLAGS = \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES; - - /** - * @param $data - * @param bool $asHex - * @return string - */ - public function canonicalize($data, bool $asHex = false): string - { - ob_start(); - - $this->serialize($data); - - $result = ob_get_clean(); - - return $asHex ? Utils::asHex($result) : $result; - } - - private function serialize($item) - { - if (is_float($item)) { - echo Utils::es6NumberFormat($item); - - return; - } - - if (null === $item || is_scalar($item)) { - echo json_encode($item, self::JSON_FLAGS); - - return; - } - - if (is_array($item) && ! Utils::isAssoc($item)) { - echo '['; - $next = false; - foreach ($item as $element) { - if ($next) { - echo ','; - } - $next = true; - $this->serialize($element); - } - echo ']'; - - return; - } - - if (is_object($item)) { - $item = (array)$item; - } - - uksort($item, function (string $a, string $b) { - $a = mb_convert_encoding($a, 'UTF-16BE'); - $b = mb_convert_encoding($b, 'UTF-16BE'); - - return strcmp($a, $b); - }); - - echo '{'; - $next = false; - foreach ($item as $key => $value) { - //var_dump($key, $value); - if ($next) { - echo ','; - } - $next = true; - $outKey = json_encode((string)$key, self::JSON_FLAGS); - echo $outKey, ':', $this->serialize($value); - } - echo '}'; - - } -} diff --git a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorFactory.php b/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorFactory.php deleted file mode 100644 index 68b1c50c9..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorFactory.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php - -declare(strict_types=1); - -namespace Mmccook\JsonCanonicalizator; - -class JsonCanonicalizatorFactory -{ - public static function getInstance(): JsonCanonicalizator - { - return new JsonCanonicalizator(); - } -} diff --git a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorInterface.php b/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorInterface.php deleted file mode 100644 index 73b25c086..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/src/JsonCanonicalizatorInterface.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -declare(strict_types=1); - -namespace Mmccook\JsonCanonicalizator; - -interface JsonCanonicalizatorInterface -{ - public function canonicalize($data, bool $asHex): string; -} diff --git a/vendor/mmccook/php-json-canonicalization-scheme/src/Utils.php b/vendor/mmccook/php-json-canonicalization-scheme/src/Utils.php deleted file mode 100644 index 57079df3b..000000000 --- a/vendor/mmccook/php-json-canonicalization-scheme/src/Utils.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -namespace Mmccook\JsonCanonicalizator; - -class Utils -{ - /** - * @param array $array - * @return bool - */ - public static function isAssoc(array $array): bool - { - $keys = array_keys($array); - - return array_keys($keys) !== $keys; - } - - public static function asHex(string $data): string - { - return rtrim(chunk_split(bin2hex($data), 2, ' ')); - } - - public static function es6NumberFormat(float $number): string - { - - if (is_nan($number) || is_infinite($number)) { - throw new \RuntimeException("can't use Nan or Infinity in json"); - } - - if (0.0 === $number) { - return '0'; - } - - $sign = ''; - if ($number < 0) { - $sign = '-'; - $number = -$number; - } - - if ($number < 1e+21 && $number >= 1e-6) { - $formatted = number_format($number, 7, '.', ''); - $formatted = rtrim($formatted, '.0'); - } else { - $formatted = sprintf('%e', $number); - $parts = explode('e', $formatted); - $parts[0] = rtrim($parts[0], '.0'); - $formatted = implode('e', $parts); - } - - return $sign . $formatted; - } -} |