mirror of
https://github.com/LDAPAccountManager/lam.git
synced 2025-10-03 09:49:16 +02:00
8.8
This commit is contained in:
parent
a37d5fa7c5
commit
aaf27806e7
81 changed files with 1025 additions and 601 deletions
246
lam/composer.lock
generated
246
lam/composer.lock
generated
|
@ -679,26 +679,26 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "firebase/php-jwt",
|
"name": "firebase/php-jwt",
|
||||||
"version": "v6.10.0",
|
"version": "v6.10.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/firebase/php-jwt.git",
|
"url": "https://github.com/firebase/php-jwt.git",
|
||||||
"reference": "a49db6f0a5033aef5143295342f1c95521b075ff"
|
"reference": "500501c2ce893c824c801da135d02661199f60c5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/a49db6f0a5033aef5143295342f1c95521b075ff",
|
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5",
|
||||||
"reference": "a49db6f0a5033aef5143295342f1c95521b075ff",
|
"reference": "500501c2ce893c824c801da135d02661199f60c5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4||^8.0"
|
"php": "^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"guzzlehttp/guzzle": "^6.5||^7.4",
|
"guzzlehttp/guzzle": "^7.4",
|
||||||
"phpspec/prophecy-phpunit": "^2.0",
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"psr/cache": "^1.0||^2.0",
|
"psr/cache": "^2.0||^3.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"psr/http-factory": "^1.0"
|
"psr/http-factory": "^1.0"
|
||||||
},
|
},
|
||||||
|
@ -736,9 +736,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||||
"source": "https://github.com/firebase/php-jwt/tree/v6.10.0"
|
"source": "https://github.com/firebase/php-jwt/tree/v6.10.1"
|
||||||
},
|
},
|
||||||
"time": "2023-12-01T16:26:39+00:00"
|
"time": "2024-05-18T18:05:11+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/psr7",
|
"name": "guzzlehttp/psr7",
|
||||||
|
@ -916,16 +916,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/collections",
|
"name": "illuminate/collections",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/collections.git",
|
"url": "https://github.com/illuminate/collections.git",
|
||||||
"reference": "36651526fa6bb5445ffc6d51899d80291f8e0486"
|
"reference": "f9589f1063a449111dcaa1d68285b507d9483a95"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/36651526fa6bb5445ffc6d51899d80291f8e0486",
|
"url": "https://api.github.com/repos/illuminate/collections/zipball/f9589f1063a449111dcaa1d68285b507d9483a95",
|
||||||
"reference": "36651526fa6bb5445ffc6d51899d80291f8e0486",
|
"reference": "f9589f1063a449111dcaa1d68285b507d9483a95",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -967,11 +967,11 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-03-10T15:34:39+00:00"
|
"time": "2024-03-20T20:09:13+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/conditionable",
|
"name": "illuminate/conditionable",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/conditionable.git",
|
"url": "https://github.com/illuminate/conditionable.git",
|
||||||
|
@ -1017,7 +1017,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/contracts",
|
"name": "illuminate/contracts",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/contracts.git",
|
"url": "https://github.com/illuminate/contracts.git",
|
||||||
|
@ -1065,7 +1065,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/macroable",
|
"name": "illuminate/macroable",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/macroable.git",
|
"url": "https://github.com/illuminate/macroable.git",
|
||||||
|
@ -1111,16 +1111,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/pagination",
|
"name": "illuminate/pagination",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/pagination.git",
|
"url": "https://github.com/illuminate/pagination.git",
|
||||||
"reference": "b42a851e037984e38f8964d1a96d15b0302bebfc"
|
"reference": "616874b9607ff35925347e1710a8b5151858cdf2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/pagination/zipball/b42a851e037984e38f8964d1a96d15b0302bebfc",
|
"url": "https://api.github.com/repos/illuminate/pagination/zipball/616874b9607ff35925347e1710a8b5151858cdf2",
|
||||||
"reference": "b42a851e037984e38f8964d1a96d15b0302bebfc",
|
"reference": "616874b9607ff35925347e1710a8b5151858cdf2",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1157,20 +1157,20 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-01-12T17:17:46+00:00"
|
"time": "2024-04-11T14:31:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/support",
|
"name": "illuminate/support",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/support.git",
|
"url": "https://github.com/illuminate/support.git",
|
||||||
"reference": "980d80017e859c8b1720892d952516e8c0b6708f"
|
"reference": "263f389d81488c237846b69469f91387ca2729f3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/support/zipball/980d80017e859c8b1720892d952516e8c0b6708f",
|
"url": "https://api.github.com/repos/illuminate/support/zipball/263f389d81488c237846b69469f91387ca2729f3",
|
||||||
"reference": "980d80017e859c8b1720892d952516e8c0b6708f",
|
"reference": "263f389d81488c237846b69469f91387ca2729f3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1228,20 +1228,20 @@
|
||||||
"issues": "https://github.com/laravel/framework/issues",
|
"issues": "https://github.com/laravel/framework/issues",
|
||||||
"source": "https://github.com/laravel/framework"
|
"source": "https://github.com/laravel/framework"
|
||||||
},
|
},
|
||||||
"time": "2024-03-11T21:46:45+00:00"
|
"time": "2024-05-16T21:33:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Seldaek/monolog.git",
|
"url": "https://github.com/Seldaek/monolog.git",
|
||||||
"reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
|
"reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
|
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
|
||||||
"reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
|
"reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1264,7 +1264,7 @@
|
||||||
"phpstan/phpstan": "^1.9",
|
"phpstan/phpstan": "^1.9",
|
||||||
"phpstan/phpstan-deprecation-rules": "^1.0",
|
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||||
"phpstan/phpstan-strict-rules": "^1.4",
|
"phpstan/phpstan-strict-rules": "^1.4",
|
||||||
"phpunit/phpunit": "^10.1",
|
"phpunit/phpunit": "^10.5.17",
|
||||||
"predis/predis": "^1.1 || ^2",
|
"predis/predis": "^1.1 || ^2",
|
||||||
"ruflin/elastica": "^7",
|
"ruflin/elastica": "^7",
|
||||||
"symfony/mailer": "^5.4 || ^6",
|
"symfony/mailer": "^5.4 || ^6",
|
||||||
|
@ -1317,7 +1317,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/Seldaek/monolog/issues",
|
"issues": "https://github.com/Seldaek/monolog/issues",
|
||||||
"source": "https://github.com/Seldaek/monolog/tree/3.5.0"
|
"source": "https://github.com/Seldaek/monolog/tree/3.6.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1329,20 +1329,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-10-27T15:32:31+00:00"
|
"time": "2024-04-12T21:02:21+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nesbot/carbon",
|
"name": "nesbot/carbon",
|
||||||
"version": "2.72.3",
|
"version": "2.72.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||||
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
|
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
|
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
|
||||||
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
|
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1376,8 +1376,8 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-3.x": "3.x-dev",
|
"dev-master": "3.x-dev",
|
||||||
"dev-master": "2.x-dev"
|
"dev-2.x": "2.x-dev"
|
||||||
},
|
},
|
||||||
"laravel": {
|
"laravel": {
|
||||||
"providers": [
|
"providers": [
|
||||||
|
@ -1436,20 +1436,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-25T10:35:09+00:00"
|
"time": "2024-06-03T19:18:41+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paragonie/constant_time_encoding",
|
"name": "paragonie/constant_time_encoding",
|
||||||
"version": "v2.6.3",
|
"version": "v2.7.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||||
"reference": "58c3f47f650c94ec05a151692652a868995d2938"
|
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938",
|
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105",
|
||||||
"reference": "58c3f47f650c94ec05a151692652a868995d2938",
|
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1503,7 +1503,7 @@
|
||||||
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
|
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
|
||||||
"source": "https://github.com/paragonie/constant_time_encoding"
|
"source": "https://github.com/paragonie/constant_time_encoding"
|
||||||
},
|
},
|
||||||
"time": "2022-06-14T06:56:20+00:00"
|
"time": "2024-05-08T12:18:48+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paragonie/random_compat",
|
"name": "paragonie/random_compat",
|
||||||
|
@ -1561,16 +1561,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/discovery",
|
"name": "php-http/discovery",
|
||||||
"version": "1.19.2",
|
"version": "1.19.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/discovery.git",
|
"url": "https://github.com/php-http/discovery.git",
|
||||||
"reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb"
|
"reference": "0700efda8d7526335132360167315fdab3aeb599"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/discovery/zipball/61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
|
"url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599",
|
||||||
"reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
|
"reference": "0700efda8d7526335132360167315fdab3aeb599",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1594,7 +1594,8 @@
|
||||||
"php-http/httplug": "^1.0 || ^2.0",
|
"php-http/httplug": "^1.0 || ^2.0",
|
||||||
"php-http/message-factory": "^1.0",
|
"php-http/message-factory": "^1.0",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
||||||
"symfony/phpunit-bridge": "^6.2"
|
"sebastian/comparator": "^3.0.5 || ^4.0.8",
|
||||||
|
"symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
|
||||||
},
|
},
|
||||||
"type": "composer-plugin",
|
"type": "composer-plugin",
|
||||||
"extra": {
|
"extra": {
|
||||||
|
@ -1633,9 +1634,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/discovery/issues",
|
"issues": "https://github.com/php-http/discovery/issues",
|
||||||
"source": "https://github.com/php-http/discovery/tree/1.19.2"
|
"source": "https://github.com/php-http/discovery/tree/1.19.4"
|
||||||
},
|
},
|
||||||
"time": "2023-11-30T16:49:05+00:00"
|
"time": "2024-03-29T13:00:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpmailer/phpmailer",
|
"name": "phpmailer/phpmailer",
|
||||||
|
@ -1983,20 +1984,20 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-factory",
|
"name": "psr/http-factory",
|
||||||
"version": "1.0.2",
|
"version": "1.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-factory.git",
|
"url": "https://github.com/php-fig/http-factory.git",
|
||||||
"reference": "e616d01114759c4c489f93b099585439f795fe35"
|
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
|
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
||||||
"reference": "e616d01114759c4c489f93b099585439f795fe35",
|
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.0.0",
|
"php": ">=7.1",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0 || ^2.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
@ -2020,7 +2021,7 @@
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "https://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"factory",
|
"factory",
|
||||||
"http",
|
"http",
|
||||||
|
@ -2032,9 +2033,9 @@
|
||||||
"response"
|
"response"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
|
"source": "https://github.com/php-fig/http-factory"
|
||||||
},
|
},
|
||||||
"time": "2023-04-10T20:10:41+00:00"
|
"time": "2024-04-15T12:06:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-message",
|
"name": "psr/http-message",
|
||||||
|
@ -2497,16 +2498,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
"version": "v3.4.0",
|
"version": "v3.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||||
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
|
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
|
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||||
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
|
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2515,7 +2516,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -2544,7 +2545,7 @@
|
||||||
"description": "A generic function and convention to trigger deprecation notices",
|
"description": "A generic function and convention to trigger deprecation notices",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
|
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2560,27 +2561,27 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-05-23T14:45:45+00:00"
|
"time": "2024-04-18T09:32:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client",
|
"name": "symfony/http-client",
|
||||||
"version": "v6.4.5",
|
"version": "v6.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client.git",
|
"url": "https://github.com/symfony/http-client.git",
|
||||||
"reference": "f3c86a60a3615f466333a11fd42010d4382a82c7"
|
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/f3c86a60a3615f466333a11fd42010d4382a82c7",
|
"url": "https://api.github.com/repos/symfony/http-client/zipball/61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
|
||||||
"reference": "f3c86a60a3615f466333a11fd42010d4382a82c7",
|
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/log": "^1|^2|^3",
|
"psr/log": "^1|^2|^3",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3",
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
"symfony/http-client-contracts": "^3",
|
"symfony/http-client-contracts": "^3.4.1",
|
||||||
"symfony/service-contracts": "^2.5|^3"
|
"symfony/service-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
|
@ -2598,7 +2599,7 @@
|
||||||
"amphp/http-client": "^4.2.1",
|
"amphp/http-client": "^4.2.1",
|
||||||
"amphp/http-tunnel": "^1.0",
|
"amphp/http-tunnel": "^1.0",
|
||||||
"amphp/socket": "^1.1",
|
"amphp/socket": "^1.1",
|
||||||
"guzzlehttp/promises": "^1.4",
|
"guzzlehttp/promises": "^1.4|^2.0",
|
||||||
"nyholm/psr7": "^1.0",
|
"nyholm/psr7": "^1.0",
|
||||||
"php-http/httplug": "^1.0|^2.0",
|
"php-http/httplug": "^1.0|^2.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
|
@ -2637,7 +2638,7 @@
|
||||||
"http"
|
"http"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client/tree/v6.4.5"
|
"source": "https://github.com/symfony/http-client/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2653,20 +2654,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-03-02T12:45:30+00:00"
|
"time": "2024-05-31T14:49:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client-contracts",
|
"name": "symfony/http-client-contracts",
|
||||||
"version": "v3.4.0",
|
"version": "v3.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client-contracts.git",
|
"url": "https://github.com/symfony/http-client-contracts.git",
|
||||||
"reference": "1ee70e699b41909c209a0c930f11034b93578654"
|
"reference": "20414d96f391677bf80078aa55baece78b82647d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/1ee70e699b41909c209a0c930f11034b93578654",
|
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
|
||||||
"reference": "1ee70e699b41909c209a0c930f11034b93578654",
|
"reference": "20414d96f391677bf80078aa55baece78b82647d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2675,7 +2676,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -2715,7 +2716,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client-contracts/tree/v3.4.0"
|
"source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2731,20 +2732,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-07-30T20:28:31+00:00"
|
"time": "2024-04-18T09:32:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-foundation",
|
"name": "symfony/http-foundation",
|
||||||
"version": "v6.4.4",
|
"version": "v6.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-foundation.git",
|
"url": "https://github.com/symfony/http-foundation.git",
|
||||||
"reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304"
|
"reference": "27de8cc95e11db7a50b027e71caaab9024545947"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304",
|
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947",
|
||||||
"reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304",
|
"reference": "27de8cc95e11db7a50b027e71caaab9024545947",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2792,7 +2793,7 @@
|
||||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-foundation/tree/v6.4.4"
|
"source": "https://github.com/symfony/http-foundation/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2808,7 +2809,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-02-08T15:01:18+00:00"
|
"time": "2024-05-31T14:49:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
|
@ -3128,16 +3129,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/psr-http-message-bridge",
|
"name": "symfony/psr-http-message-bridge",
|
||||||
"version": "v6.4.3",
|
"version": "v6.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
||||||
"reference": "49cfb0223ec64379f7154214dcc1f7c46f3c7a47"
|
"reference": "23a162bd446b93948a2c2f6909d80ad06195be10"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/49cfb0223ec64379f7154214dcc1f7c46f3c7a47",
|
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/23a162bd446b93948a2c2f6909d80ad06195be10",
|
||||||
"reference": "49cfb0223ec64379f7154214dcc1f7c46f3c7a47",
|
"reference": "23a162bd446b93948a2c2f6909d80ad06195be10",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3191,7 +3192,7 @@
|
||||||
"psr-7"
|
"psr-7"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.3"
|
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3207,25 +3208,26 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-23T14:51:35+00:00"
|
"time": "2024-05-31T14:51:39+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
"version": "v3.4.1",
|
"version": "v3.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/service-contracts.git",
|
"url": "https://github.com/symfony/service-contracts.git",
|
||||||
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
|
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
|
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
|
||||||
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
|
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/container": "^1.1|^2.0"
|
"psr/container": "^1.1|^2.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"ext-psr": "<1.1|>=2"
|
"ext-psr": "<1.1|>=2"
|
||||||
|
@ -3233,7 +3235,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -3273,7 +3275,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
|
"source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3289,20 +3291,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-12-26T14:02:43+00:00"
|
"time": "2024-04-18T09:32:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v6.4.4",
|
"version": "v6.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e"
|
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a",
|
||||||
"reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e",
|
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3368,7 +3370,7 @@
|
||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v6.4.4"
|
"source": "https://github.com/symfony/translation/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3384,20 +3386,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-02-20T13:16:58+00:00"
|
"time": "2024-05-31T14:49:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
"version": "v3.4.1",
|
"version": "v3.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation-contracts.git",
|
"url": "https://github.com/symfony/translation-contracts.git",
|
||||||
"reference": "06450585bf65e978026bda220cdebca3f867fde7"
|
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
|
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
|
||||||
"reference": "06450585bf65e978026bda220cdebca3f867fde7",
|
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3406,7 +3408,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -3446,7 +3448,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
|
"source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3462,20 +3464,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2023-12-26T14:02:43+00:00"
|
"time": "2024-04-18T09:32:20+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/uid",
|
"name": "symfony/uid",
|
||||||
"version": "v6.4.3",
|
"version": "v6.4.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/uid.git",
|
"url": "https://github.com/symfony/uid.git",
|
||||||
"reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0"
|
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
|
"url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
|
||||||
"reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
|
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3520,7 +3522,7 @@
|
||||||
"uuid"
|
"uuid"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/uid/tree/v6.4.3"
|
"source": "https://github.com/symfony/uid/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3536,7 +3538,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-01-23T14:51:35+00:00"
|
"time": "2024-05-31T14:49:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "thecodingmachine/safe",
|
"name": "thecodingmachine/safe",
|
||||||
|
|
|
@ -26,7 +26,7 @@ return array(
|
||||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
||||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
|
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
|
||||||
'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'),
|
'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'),
|
||||||
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
|
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
|
||||||
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
||||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
||||||
'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
|
'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
|
||||||
|
@ -40,7 +40,7 @@ return array(
|
||||||
'Jose\\Component\\Encryption\\' => array($vendorDir . '/web-token/jwt-encryption'),
|
'Jose\\Component\\Encryption\\' => array($vendorDir . '/web-token/jwt-encryption'),
|
||||||
'Jose\\Component\\Core\\' => array($vendorDir . '/web-token/jwt-core'),
|
'Jose\\Component\\Core\\' => array($vendorDir . '/web-token/jwt-core'),
|
||||||
'Jose\\Component\\Checker\\' => array($vendorDir . '/web-token/jwt-checker'),
|
'Jose\\Component\\Checker\\' => array($vendorDir . '/web-token/jwt-checker'),
|
||||||
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/support'),
|
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/support'),
|
||||||
'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'),
|
'Illuminate\\Pagination\\' => array($vendorDir . '/illuminate/pagination'),
|
||||||
'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
|
'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
|
||||||
'Http\\Factory\\Guzzle\\' => array($vendorDir . '/http-interop/http-factory-guzzle/src'),
|
'Http\\Factory\\Guzzle\\' => array($vendorDir . '/http-interop/http-factory-guzzle/src'),
|
||||||
|
|
|
@ -305,8 +305,8 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5
|
||||||
),
|
),
|
||||||
'Psr\\Http\\Message\\' =>
|
'Psr\\Http\\Message\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/psr/http-factory/src',
|
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
||||||
1 => __DIR__ . '/..' . '/psr/http-message/src',
|
1 => __DIR__ . '/..' . '/psr/http-factory/src',
|
||||||
),
|
),
|
||||||
'Psr\\Http\\Client\\' =>
|
'Psr\\Http\\Client\\' =>
|
||||||
array (
|
array (
|
||||||
|
@ -362,9 +362,9 @@ class ComposerStaticInited73ceb9c1bdec18b7c6d09764d1bce5
|
||||||
),
|
),
|
||||||
'Illuminate\\Support\\' =>
|
'Illuminate\\Support\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/illuminate/collections',
|
0 => __DIR__ . '/..' . '/illuminate/macroable',
|
||||||
1 => __DIR__ . '/..' . '/illuminate/conditionable',
|
1 => __DIR__ . '/..' . '/illuminate/conditionable',
|
||||||
2 => __DIR__ . '/..' . '/illuminate/macroable',
|
2 => __DIR__ . '/..' . '/illuminate/collections',
|
||||||
3 => __DIR__ . '/..' . '/illuminate/support',
|
3 => __DIR__ . '/..' . '/illuminate/support',
|
||||||
),
|
),
|
||||||
'Illuminate\\Pagination\\' =>
|
'Illuminate\\Pagination\\' =>
|
||||||
|
|
288
lam/lib/3rdParty/composer/composer/installed.json
vendored
288
lam/lib/3rdParty/composer/composer/installed.json
vendored
|
@ -684,27 +684,27 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "firebase/php-jwt",
|
"name": "firebase/php-jwt",
|
||||||
"version": "v6.10.0",
|
"version": "v6.10.1",
|
||||||
"version_normalized": "6.10.0.0",
|
"version_normalized": "6.10.1.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/firebase/php-jwt.git",
|
"url": "https://github.com/firebase/php-jwt.git",
|
||||||
"reference": "a49db6f0a5033aef5143295342f1c95521b075ff"
|
"reference": "500501c2ce893c824c801da135d02661199f60c5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/a49db6f0a5033aef5143295342f1c95521b075ff",
|
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/500501c2ce893c824c801da135d02661199f60c5",
|
||||||
"reference": "a49db6f0a5033aef5143295342f1c95521b075ff",
|
"reference": "500501c2ce893c824c801da135d02661199f60c5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4||^8.0"
|
"php": "^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"guzzlehttp/guzzle": "^6.5||^7.4",
|
"guzzlehttp/guzzle": "^7.4",
|
||||||
"phpspec/prophecy-phpunit": "^2.0",
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"psr/cache": "^1.0||^2.0",
|
"psr/cache": "^2.0||^3.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"psr/http-factory": "^1.0"
|
"psr/http-factory": "^1.0"
|
||||||
},
|
},
|
||||||
|
@ -712,7 +712,7 @@
|
||||||
"ext-sodium": "Support EdDSA (Ed25519) signatures",
|
"ext-sodium": "Support EdDSA (Ed25519) signatures",
|
||||||
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
|
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
|
||||||
},
|
},
|
||||||
"time": "2023-12-01T16:26:39+00:00",
|
"time": "2024-05-18T18:05:11+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -744,7 +744,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||||
"source": "https://github.com/firebase/php-jwt/tree/v6.10.0"
|
"source": "https://github.com/firebase/php-jwt/tree/v6.10.1"
|
||||||
},
|
},
|
||||||
"install-path": "../firebase/php-jwt"
|
"install-path": "../firebase/php-jwt"
|
||||||
},
|
},
|
||||||
|
@ -930,17 +930,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/collections",
|
"name": "illuminate/collections",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/collections.git",
|
"url": "https://github.com/illuminate/collections.git",
|
||||||
"reference": "36651526fa6bb5445ffc6d51899d80291f8e0486"
|
"reference": "f9589f1063a449111dcaa1d68285b507d9483a95"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/collections/zipball/36651526fa6bb5445ffc6d51899d80291f8e0486",
|
"url": "https://api.github.com/repos/illuminate/collections/zipball/f9589f1063a449111dcaa1d68285b507d9483a95",
|
||||||
"reference": "36651526fa6bb5445ffc6d51899d80291f8e0486",
|
"reference": "f9589f1063a449111dcaa1d68285b507d9483a95",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -952,7 +952,7 @@
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"symfony/var-dumper": "Required to use the dump method (^6.2)."
|
"symfony/var-dumper": "Required to use the dump method (^6.2)."
|
||||||
},
|
},
|
||||||
"time": "2024-03-10T15:34:39+00:00",
|
"time": "2024-03-20T20:09:13+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
@ -988,8 +988,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/conditionable",
|
"name": "illuminate/conditionable",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/conditionable.git",
|
"url": "https://github.com/illuminate/conditionable.git",
|
||||||
|
@ -1037,8 +1037,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/contracts",
|
"name": "illuminate/contracts",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/contracts.git",
|
"url": "https://github.com/illuminate/contracts.git",
|
||||||
|
@ -1088,8 +1088,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/macroable",
|
"name": "illuminate/macroable",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/macroable.git",
|
"url": "https://github.com/illuminate/macroable.git",
|
||||||
|
@ -1137,17 +1137,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/pagination",
|
"name": "illuminate/pagination",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/pagination.git",
|
"url": "https://github.com/illuminate/pagination.git",
|
||||||
"reference": "b42a851e037984e38f8964d1a96d15b0302bebfc"
|
"reference": "616874b9607ff35925347e1710a8b5151858cdf2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/pagination/zipball/b42a851e037984e38f8964d1a96d15b0302bebfc",
|
"url": "https://api.github.com/repos/illuminate/pagination/zipball/616874b9607ff35925347e1710a8b5151858cdf2",
|
||||||
"reference": "b42a851e037984e38f8964d1a96d15b0302bebfc",
|
"reference": "616874b9607ff35925347e1710a8b5151858cdf2",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1157,7 +1157,7 @@
|
||||||
"illuminate/support": "^10.0",
|
"illuminate/support": "^10.0",
|
||||||
"php": "^8.1"
|
"php": "^8.1"
|
||||||
},
|
},
|
||||||
"time": "2024-01-12T17:17:46+00:00",
|
"time": "2024-04-11T14:31:05+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
@ -1190,17 +1190,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "illuminate/support",
|
"name": "illuminate/support",
|
||||||
"version": "v10.48.3",
|
"version": "v10.48.12",
|
||||||
"version_normalized": "10.48.3.0",
|
"version_normalized": "10.48.12.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/illuminate/support.git",
|
"url": "https://github.com/illuminate/support.git",
|
||||||
"reference": "980d80017e859c8b1720892d952516e8c0b6708f"
|
"reference": "263f389d81488c237846b69469f91387ca2729f3"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/illuminate/support/zipball/980d80017e859c8b1720892d952516e8c0b6708f",
|
"url": "https://api.github.com/repos/illuminate/support/zipball/263f389d81488c237846b69469f91387ca2729f3",
|
||||||
"reference": "980d80017e859c8b1720892d952516e8c0b6708f",
|
"reference": "263f389d81488c237846b69469f91387ca2729f3",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1228,7 +1228,7 @@
|
||||||
"symfony/var-dumper": "Required to use the dd function (^6.2).",
|
"symfony/var-dumper": "Required to use the dd function (^6.2).",
|
||||||
"vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
|
"vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
|
||||||
},
|
},
|
||||||
"time": "2024-03-11T21:46:45+00:00",
|
"time": "2024-05-16T21:33:51+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
@ -1264,17 +1264,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"version_normalized": "3.5.0.0",
|
"version_normalized": "3.6.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Seldaek/monolog.git",
|
"url": "https://github.com/Seldaek/monolog.git",
|
||||||
"reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
|
"reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
|
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
|
||||||
"reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
|
"reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1297,7 +1297,7 @@
|
||||||
"phpstan/phpstan": "^1.9",
|
"phpstan/phpstan": "^1.9",
|
||||||
"phpstan/phpstan-deprecation-rules": "^1.0",
|
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||||
"phpstan/phpstan-strict-rules": "^1.4",
|
"phpstan/phpstan-strict-rules": "^1.4",
|
||||||
"phpunit/phpunit": "^10.1",
|
"phpunit/phpunit": "^10.5.17",
|
||||||
"predis/predis": "^1.1 || ^2",
|
"predis/predis": "^1.1 || ^2",
|
||||||
"ruflin/elastica": "^7",
|
"ruflin/elastica": "^7",
|
||||||
"symfony/mailer": "^5.4 || ^6",
|
"symfony/mailer": "^5.4 || ^6",
|
||||||
|
@ -1319,7 +1319,7 @@
|
||||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
||||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
|
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
|
||||||
},
|
},
|
||||||
"time": "2023-10-27T15:32:31+00:00",
|
"time": "2024-04-12T21:02:21+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
@ -1352,7 +1352,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/Seldaek/monolog/issues",
|
"issues": "https://github.com/Seldaek/monolog/issues",
|
||||||
"source": "https://github.com/Seldaek/monolog/tree/3.5.0"
|
"source": "https://github.com/Seldaek/monolog/tree/3.6.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -1368,17 +1368,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nesbot/carbon",
|
"name": "nesbot/carbon",
|
||||||
"version": "2.72.3",
|
"version": "2.72.5",
|
||||||
"version_normalized": "2.72.3.0",
|
"version_normalized": "2.72.5.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||||
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
|
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
|
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
|
||||||
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
|
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1406,15 +1406,15 @@
|
||||||
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
|
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
|
||||||
"squizlabs/php_codesniffer": "^3.4"
|
"squizlabs/php_codesniffer": "^3.4"
|
||||||
},
|
},
|
||||||
"time": "2024-01-25T10:35:09+00:00",
|
"time": "2024-06-03T19:18:41+00:00",
|
||||||
"bin": [
|
"bin": [
|
||||||
"bin/carbon"
|
"bin/carbon"
|
||||||
],
|
],
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-3.x": "3.x-dev",
|
"dev-master": "3.x-dev",
|
||||||
"dev-master": "2.x-dev"
|
"dev-2.x": "2.x-dev"
|
||||||
},
|
},
|
||||||
"laravel": {
|
"laravel": {
|
||||||
"providers": [
|
"providers": [
|
||||||
|
@ -1478,17 +1478,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paragonie/constant_time_encoding",
|
"name": "paragonie/constant_time_encoding",
|
||||||
"version": "v2.6.3",
|
"version": "v2.7.0",
|
||||||
"version_normalized": "2.6.3.0",
|
"version_normalized": "2.7.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||||
"reference": "58c3f47f650c94ec05a151692652a868995d2938"
|
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938",
|
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105",
|
||||||
"reference": "58c3f47f650c94ec05a151692652a868995d2938",
|
"reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1498,7 +1498,7 @@
|
||||||
"phpunit/phpunit": "^6|^7|^8|^9",
|
"phpunit/phpunit": "^6|^7|^8|^9",
|
||||||
"vimeo/psalm": "^1|^2|^3|^4"
|
"vimeo/psalm": "^1|^2|^3|^4"
|
||||||
},
|
},
|
||||||
"time": "2022-06-14T06:56:20+00:00",
|
"time": "2024-05-08T12:18:48+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -1605,17 +1605,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-http/discovery",
|
"name": "php-http/discovery",
|
||||||
"version": "1.19.2",
|
"version": "1.19.4",
|
||||||
"version_normalized": "1.19.2.0",
|
"version_normalized": "1.19.4.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-http/discovery.git",
|
"url": "https://github.com/php-http/discovery.git",
|
||||||
"reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb"
|
"reference": "0700efda8d7526335132360167315fdab3aeb599"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-http/discovery/zipball/61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
|
"url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599",
|
||||||
"reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb",
|
"reference": "0700efda8d7526335132360167315fdab3aeb599",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1639,9 +1639,10 @@
|
||||||
"php-http/httplug": "^1.0 || ^2.0",
|
"php-http/httplug": "^1.0 || ^2.0",
|
||||||
"php-http/message-factory": "^1.0",
|
"php-http/message-factory": "^1.0",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
||||||
"symfony/phpunit-bridge": "^6.2"
|
"sebastian/comparator": "^3.0.5 || ^4.0.8",
|
||||||
|
"symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
|
||||||
},
|
},
|
||||||
"time": "2023-11-30T16:49:05+00:00",
|
"time": "2024-03-29T13:00:05+00:00",
|
||||||
"type": "composer-plugin",
|
"type": "composer-plugin",
|
||||||
"extra": {
|
"extra": {
|
||||||
"class": "Http\\Discovery\\Composer\\Plugin",
|
"class": "Http\\Discovery\\Composer\\Plugin",
|
||||||
|
@ -1680,7 +1681,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-http/discovery/issues",
|
"issues": "https://github.com/php-http/discovery/issues",
|
||||||
"source": "https://github.com/php-http/discovery/tree/1.19.2"
|
"source": "https://github.com/php-http/discovery/tree/1.19.4"
|
||||||
},
|
},
|
||||||
"install-path": "../php-http/discovery"
|
"install-path": "../php-http/discovery"
|
||||||
},
|
},
|
||||||
|
@ -2045,24 +2046,24 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/http-factory",
|
"name": "psr/http-factory",
|
||||||
"version": "1.0.2",
|
"version": "1.1.0",
|
||||||
"version_normalized": "1.0.2.0",
|
"version_normalized": "1.1.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/http-factory.git",
|
"url": "https://github.com/php-fig/http-factory.git",
|
||||||
"reference": "e616d01114759c4c489f93b099585439f795fe35"
|
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
|
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
||||||
"reference": "e616d01114759c4c489f93b099585439f795fe35",
|
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.0.0",
|
"php": ">=7.1",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0 || ^2.0"
|
||||||
},
|
},
|
||||||
"time": "2023-04-10T20:10:41+00:00",
|
"time": "2024-04-15T12:06:14+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
|
@ -2085,7 +2086,7 @@
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "https://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"factory",
|
"factory",
|
||||||
"http",
|
"http",
|
||||||
|
@ -2097,7 +2098,7 @@
|
||||||
"response"
|
"response"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
|
"source": "https://github.com/php-fig/http-factory"
|
||||||
},
|
},
|
||||||
"install-path": "../psr/http-factory"
|
"install-path": "../psr/http-factory"
|
||||||
},
|
},
|
||||||
|
@ -2565,27 +2566,27 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
"version": "v3.4.0",
|
"version": "v3.5.0",
|
||||||
"version_normalized": "3.4.0.0",
|
"version_normalized": "3.5.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||||
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
|
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
|
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||||
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
|
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1"
|
"php": ">=8.1"
|
||||||
},
|
},
|
||||||
"time": "2023-05-23T14:45:45+00:00",
|
"time": "2024-04-18T09:32:20+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -2615,7 +2616,7 @@
|
||||||
"description": "A generic function and convention to trigger deprecation notices",
|
"description": "A generic function and convention to trigger deprecation notices",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
|
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2635,24 +2636,24 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client",
|
"name": "symfony/http-client",
|
||||||
"version": "v6.4.5",
|
"version": "v6.4.8",
|
||||||
"version_normalized": "6.4.5.0",
|
"version_normalized": "6.4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client.git",
|
"url": "https://github.com/symfony/http-client.git",
|
||||||
"reference": "f3c86a60a3615f466333a11fd42010d4382a82c7"
|
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client/zipball/f3c86a60a3615f466333a11fd42010d4382a82c7",
|
"url": "https://api.github.com/repos/symfony/http-client/zipball/61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
|
||||||
"reference": "f3c86a60a3615f466333a11fd42010d4382a82c7",
|
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/log": "^1|^2|^3",
|
"psr/log": "^1|^2|^3",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3",
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
"symfony/http-client-contracts": "^3",
|
"symfony/http-client-contracts": "^3.4.1",
|
||||||
"symfony/service-contracts": "^2.5|^3"
|
"symfony/service-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
|
@ -2670,7 +2671,7 @@
|
||||||
"amphp/http-client": "^4.2.1",
|
"amphp/http-client": "^4.2.1",
|
||||||
"amphp/http-tunnel": "^1.0",
|
"amphp/http-tunnel": "^1.0",
|
||||||
"amphp/socket": "^1.1",
|
"amphp/socket": "^1.1",
|
||||||
"guzzlehttp/promises": "^1.4",
|
"guzzlehttp/promises": "^1.4|^2.0",
|
||||||
"nyholm/psr7": "^1.0",
|
"nyholm/psr7": "^1.0",
|
||||||
"php-http/httplug": "^1.0|^2.0",
|
"php-http/httplug": "^1.0|^2.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
|
@ -2680,7 +2681,7 @@
|
||||||
"symfony/process": "^5.4|^6.0|^7.0",
|
"symfony/process": "^5.4|^6.0|^7.0",
|
||||||
"symfony/stopwatch": "^5.4|^6.0|^7.0"
|
"symfony/stopwatch": "^5.4|^6.0|^7.0"
|
||||||
},
|
},
|
||||||
"time": "2024-03-02T12:45:30+00:00",
|
"time": "2024-05-31T14:49:08+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -2711,7 +2712,7 @@
|
||||||
"http"
|
"http"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client/tree/v6.4.5"
|
"source": "https://github.com/symfony/http-client/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2731,27 +2732,27 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-client-contracts",
|
"name": "symfony/http-client-contracts",
|
||||||
"version": "v3.4.0",
|
"version": "v3.5.0",
|
||||||
"version_normalized": "3.4.0.0",
|
"version_normalized": "3.5.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-client-contracts.git",
|
"url": "https://github.com/symfony/http-client-contracts.git",
|
||||||
"reference": "1ee70e699b41909c209a0c930f11034b93578654"
|
"reference": "20414d96f391677bf80078aa55baece78b82647d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/1ee70e699b41909c209a0c930f11034b93578654",
|
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
|
||||||
"reference": "1ee70e699b41909c209a0c930f11034b93578654",
|
"reference": "20414d96f391677bf80078aa55baece78b82647d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1"
|
"php": ">=8.1"
|
||||||
},
|
},
|
||||||
"time": "2023-07-30T20:28:31+00:00",
|
"time": "2024-04-18T09:32:20+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -2792,7 +2793,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-client-contracts/tree/v3.4.0"
|
"source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2812,17 +2813,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/http-foundation",
|
"name": "symfony/http-foundation",
|
||||||
"version": "v6.4.4",
|
"version": "v6.4.8",
|
||||||
"version_normalized": "6.4.4.0",
|
"version_normalized": "6.4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/http-foundation.git",
|
"url": "https://github.com/symfony/http-foundation.git",
|
||||||
"reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304"
|
"reference": "27de8cc95e11db7a50b027e71caaab9024545947"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304",
|
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947",
|
||||||
"reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304",
|
"reference": "27de8cc95e11db7a50b027e71caaab9024545947",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2844,7 +2845,7 @@
|
||||||
"symfony/mime": "^5.4|^6.0|^7.0",
|
"symfony/mime": "^5.4|^6.0|^7.0",
|
||||||
"symfony/rate-limiter": "^5.4|^6.0|^7.0"
|
"symfony/rate-limiter": "^5.4|^6.0|^7.0"
|
||||||
},
|
},
|
||||||
"time": "2024-02-08T15:01:18+00:00",
|
"time": "2024-05-31T14:49:08+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -2872,7 +2873,7 @@
|
||||||
"description": "Defines an object-oriented layer for the HTTP specification",
|
"description": "Defines an object-oriented layer for the HTTP specification",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/http-foundation/tree/v6.4.4"
|
"source": "https://github.com/symfony/http-foundation/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3220,17 +3221,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/psr-http-message-bridge",
|
"name": "symfony/psr-http-message-bridge",
|
||||||
"version": "v6.4.3",
|
"version": "v6.4.8",
|
||||||
"version_normalized": "6.4.3.0",
|
"version_normalized": "6.4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
||||||
"reference": "49cfb0223ec64379f7154214dcc1f7c46f3c7a47"
|
"reference": "23a162bd446b93948a2c2f6909d80ad06195be10"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/49cfb0223ec64379f7154214dcc1f7c46f3c7a47",
|
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/23a162bd446b93948a2c2f6909d80ad06195be10",
|
||||||
"reference": "49cfb0223ec64379f7154214dcc1f7c46f3c7a47",
|
"reference": "23a162bd446b93948a2c2f6909d80ad06195be10",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3252,7 +3253,7 @@
|
||||||
"symfony/framework-bundle": "^6.2|^7.0",
|
"symfony/framework-bundle": "^6.2|^7.0",
|
||||||
"symfony/http-kernel": "^6.2|^7.0"
|
"symfony/http-kernel": "^6.2|^7.0"
|
||||||
},
|
},
|
||||||
"time": "2024-01-23T14:51:35+00:00",
|
"time": "2024-05-31T14:51:39+00:00",
|
||||||
"type": "symfony-bridge",
|
"type": "symfony-bridge",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -3286,7 +3287,7 @@
|
||||||
"psr-7"
|
"psr-7"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.3"
|
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3306,31 +3307,32 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
"version": "v3.4.1",
|
"version": "v3.5.0",
|
||||||
"version_normalized": "3.4.1.0",
|
"version_normalized": "3.5.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/service-contracts.git",
|
"url": "https://github.com/symfony/service-contracts.git",
|
||||||
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
|
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
|
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
|
||||||
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
|
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/container": "^1.1|^2.0"
|
"psr/container": "^1.1|^2.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"ext-psr": "<1.1|>=2"
|
"ext-psr": "<1.1|>=2"
|
||||||
},
|
},
|
||||||
"time": "2023-12-26T14:02:43+00:00",
|
"time": "2024-04-18T09:32:20+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -3371,7 +3373,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
|
"source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3391,17 +3393,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v6.4.4",
|
"version": "v6.4.8",
|
||||||
"version_normalized": "6.4.4.0",
|
"version_normalized": "6.4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e"
|
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a",
|
||||||
"reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e",
|
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3438,7 +3440,7 @@
|
||||||
"symfony/service-contracts": "^2.5|^3",
|
"symfony/service-contracts": "^2.5|^3",
|
||||||
"symfony/yaml": "^5.4|^6.0|^7.0"
|
"symfony/yaml": "^5.4|^6.0|^7.0"
|
||||||
},
|
},
|
||||||
"time": "2024-02-20T13:16:58+00:00",
|
"time": "2024-05-31T14:49:08+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -3469,7 +3471,7 @@
|
||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v6.4.4"
|
"source": "https://github.com/symfony/translation/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3489,27 +3491,27 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
"version": "v3.4.1",
|
"version": "v3.5.0",
|
||||||
"version_normalized": "3.4.1.0",
|
"version_normalized": "3.5.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation-contracts.git",
|
"url": "https://github.com/symfony/translation-contracts.git",
|
||||||
"reference": "06450585bf65e978026bda220cdebca3f867fde7"
|
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
|
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
|
||||||
"reference": "06450585bf65e978026bda220cdebca3f867fde7",
|
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1"
|
"php": ">=8.1"
|
||||||
},
|
},
|
||||||
"time": "2023-12-26T14:02:43+00:00",
|
"time": "2024-04-18T09:32:20+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
@ -3550,7 +3552,7 @@
|
||||||
"standards"
|
"standards"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
|
"source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -3570,17 +3572,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/uid",
|
"name": "symfony/uid",
|
||||||
"version": "v6.4.3",
|
"version": "v6.4.8",
|
||||||
"version_normalized": "6.4.3.0",
|
"version_normalized": "6.4.8.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/uid.git",
|
"url": "https://github.com/symfony/uid.git",
|
||||||
"reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0"
|
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
|
"url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
|
||||||
"reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0",
|
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -3590,7 +3592,7 @@
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"symfony/console": "^5.4|^6.0|^7.0"
|
"symfony/console": "^5.4|^6.0|^7.0"
|
||||||
},
|
},
|
||||||
"time": "2024-01-23T14:51:35+00:00",
|
"time": "2024-05-31T14:49:08+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -3627,7 +3629,7 @@
|
||||||
"uuid"
|
"uuid"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/uid/tree/v6.4.3"
|
"source": "https://github.com/symfony/uid/tree/v6.4.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
120
lam/lib/3rdParty/composer/composer/installed.php
vendored
120
lam/lib/3rdParty/composer/composer/installed.php
vendored
|
@ -92,9 +92,9 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'firebase/php-jwt' => array(
|
'firebase/php-jwt' => array(
|
||||||
'pretty_version' => 'v6.10.0',
|
'pretty_version' => 'v6.10.1',
|
||||||
'version' => '6.10.0.0',
|
'version' => '6.10.1.0',
|
||||||
'reference' => 'a49db6f0a5033aef5143295342f1c95521b075ff',
|
'reference' => '500501c2ce893c824c801da135d02661199f60c5',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../firebase/php-jwt',
|
'install_path' => __DIR__ . '/../firebase/php-jwt',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -119,17 +119,17 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/collections' => array(
|
'illuminate/collections' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => '36651526fa6bb5445ffc6d51899d80291f8e0486',
|
'reference' => 'f9589f1063a449111dcaa1d68285b507d9483a95',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/collections',
|
'install_path' => __DIR__ . '/../illuminate/collections',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/conditionable' => array(
|
'illuminate/conditionable' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => 'd0958e4741fc9d6f516a552060fd1b829a85e009',
|
'reference' => 'd0958e4741fc9d6f516a552060fd1b829a85e009',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/conditionable',
|
'install_path' => __DIR__ . '/../illuminate/conditionable',
|
||||||
|
@ -137,8 +137,8 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/contracts' => array(
|
'illuminate/contracts' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac',
|
'reference' => '8d7152c4a1f5d9cf7da3e8b71f23e4556f6138ac',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/contracts',
|
'install_path' => __DIR__ . '/../illuminate/contracts',
|
||||||
|
@ -146,8 +146,8 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/macroable' => array(
|
'illuminate/macroable' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => 'dff667a46ac37b634dcf68909d9d41e94dc97c27',
|
'reference' => 'dff667a46ac37b634dcf68909d9d41e94dc97c27',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/macroable',
|
'install_path' => __DIR__ . '/../illuminate/macroable',
|
||||||
|
@ -155,18 +155,18 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/pagination' => array(
|
'illuminate/pagination' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => 'b42a851e037984e38f8964d1a96d15b0302bebfc',
|
'reference' => '616874b9607ff35925347e1710a8b5151858cdf2',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/pagination',
|
'install_path' => __DIR__ . '/../illuminate/pagination',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'illuminate/support' => array(
|
'illuminate/support' => array(
|
||||||
'pretty_version' => 'v10.48.3',
|
'pretty_version' => 'v10.48.12',
|
||||||
'version' => '10.48.3.0',
|
'version' => '10.48.12.0',
|
||||||
'reference' => '980d80017e859c8b1720892d952516e8c0b6708f',
|
'reference' => '263f389d81488c237846b69469f91387ca2729f3',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../illuminate/support',
|
'install_path' => __DIR__ . '/../illuminate/support',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -182,27 +182,27 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'monolog/monolog' => array(
|
'monolog/monolog' => array(
|
||||||
'pretty_version' => '3.5.0',
|
'pretty_version' => '3.6.0',
|
||||||
'version' => '3.5.0.0',
|
'version' => '3.6.0.0',
|
||||||
'reference' => 'c915e2634718dbc8a4a15c61b0e62e7a44e14448',
|
'reference' => '4b18b21a5527a3d5ffdac2fd35d3ab25a9597654',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../monolog/monolog',
|
'install_path' => __DIR__ . '/../monolog/monolog',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'nesbot/carbon' => array(
|
'nesbot/carbon' => array(
|
||||||
'pretty_version' => '2.72.3',
|
'pretty_version' => '2.72.5',
|
||||||
'version' => '2.72.3.0',
|
'version' => '2.72.5.0',
|
||||||
'reference' => '0c6fd108360c562f6e4fd1dedb8233b423e91c83',
|
'reference' => 'afd46589c216118ecd48ff2b95d77596af1e57ed',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../nesbot/carbon',
|
'install_path' => __DIR__ . '/../nesbot/carbon',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'paragonie/constant_time_encoding' => array(
|
'paragonie/constant_time_encoding' => array(
|
||||||
'pretty_version' => 'v2.6.3',
|
'pretty_version' => 'v2.7.0',
|
||||||
'version' => '2.6.3.0',
|
'version' => '2.7.0.0',
|
||||||
'reference' => '58c3f47f650c94ec05a151692652a868995d2938',
|
'reference' => '52a0d99e69f56b9ec27ace92ba56897fe6993105',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../paragonie/constant_time_encoding',
|
'install_path' => __DIR__ . '/../paragonie/constant_time_encoding',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -230,9 +230,9 @@
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'php-http/discovery' => array(
|
'php-http/discovery' => array(
|
||||||
'pretty_version' => '1.19.2',
|
'pretty_version' => '1.19.4',
|
||||||
'version' => '1.19.2.0',
|
'version' => '1.19.4.0',
|
||||||
'reference' => '61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb',
|
'reference' => '0700efda8d7526335132360167315fdab3aeb599',
|
||||||
'type' => 'composer-plugin',
|
'type' => 'composer-plugin',
|
||||||
'install_path' => __DIR__ . '/../php-http/discovery',
|
'install_path' => __DIR__ . '/../php-http/discovery',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -297,9 +297,9 @@
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'psr/http-factory' => array(
|
'psr/http-factory' => array(
|
||||||
'pretty_version' => '1.0.2',
|
'pretty_version' => '1.1.0',
|
||||||
'version' => '1.0.2.0',
|
'version' => '1.1.0.0',
|
||||||
'reference' => 'e616d01114759c4c489f93b099585439f795fe35',
|
'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../psr/http-factory',
|
'install_path' => __DIR__ . '/../psr/http-factory',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -399,27 +399,27 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/deprecation-contracts' => array(
|
'symfony/deprecation-contracts' => array(
|
||||||
'pretty_version' => 'v3.4.0',
|
'pretty_version' => 'v3.5.0',
|
||||||
'version' => '3.4.0.0',
|
'version' => '3.5.0.0',
|
||||||
'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf',
|
'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
|
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/http-client' => array(
|
'symfony/http-client' => array(
|
||||||
'pretty_version' => 'v6.4.5',
|
'pretty_version' => 'v6.4.8',
|
||||||
'version' => '6.4.5.0',
|
'version' => '6.4.8.0',
|
||||||
'reference' => 'f3c86a60a3615f466333a11fd42010d4382a82c7',
|
'reference' => '61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/http-client',
|
'install_path' => __DIR__ . '/../symfony/http-client',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/http-client-contracts' => array(
|
'symfony/http-client-contracts' => array(
|
||||||
'pretty_version' => 'v3.4.0',
|
'pretty_version' => 'v3.5.0',
|
||||||
'version' => '3.4.0.0',
|
'version' => '3.5.0.0',
|
||||||
'reference' => '1ee70e699b41909c209a0c930f11034b93578654',
|
'reference' => '20414d96f391677bf80078aa55baece78b82647d',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/http-client-contracts',
|
'install_path' => __DIR__ . '/../symfony/http-client-contracts',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -432,9 +432,9 @@
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'symfony/http-foundation' => array(
|
'symfony/http-foundation' => array(
|
||||||
'pretty_version' => 'v6.4.4',
|
'pretty_version' => 'v6.4.8',
|
||||||
'version' => '6.4.4.0',
|
'version' => '6.4.8.0',
|
||||||
'reference' => 'ebc713bc6e6f4b53f46539fc158be85dfcd77304',
|
'reference' => '27de8cc95e11db7a50b027e71caaab9024545947',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/http-foundation',
|
'install_path' => __DIR__ . '/../symfony/http-foundation',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -477,36 +477,36 @@
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/psr-http-message-bridge' => array(
|
'symfony/psr-http-message-bridge' => array(
|
||||||
'pretty_version' => 'v6.4.3',
|
'pretty_version' => 'v6.4.8',
|
||||||
'version' => '6.4.3.0',
|
'version' => '6.4.8.0',
|
||||||
'reference' => '49cfb0223ec64379f7154214dcc1f7c46f3c7a47',
|
'reference' => '23a162bd446b93948a2c2f6909d80ad06195be10',
|
||||||
'type' => 'symfony-bridge',
|
'type' => 'symfony-bridge',
|
||||||
'install_path' => __DIR__ . '/../symfony/psr-http-message-bridge',
|
'install_path' => __DIR__ . '/../symfony/psr-http-message-bridge',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/service-contracts' => array(
|
'symfony/service-contracts' => array(
|
||||||
'pretty_version' => 'v3.4.1',
|
'pretty_version' => 'v3.5.0',
|
||||||
'version' => '3.4.1.0',
|
'version' => '3.5.0.0',
|
||||||
'reference' => 'fe07cbc8d837f60caf7018068e350cc5163681a0',
|
'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/service-contracts',
|
'install_path' => __DIR__ . '/../symfony/service-contracts',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/translation' => array(
|
'symfony/translation' => array(
|
||||||
'pretty_version' => 'v6.4.4',
|
'pretty_version' => 'v6.4.8',
|
||||||
'version' => '6.4.4.0',
|
'version' => '6.4.8.0',
|
||||||
'reference' => 'bce6a5a78e94566641b2594d17e48b0da3184a8e',
|
'reference' => 'a002933b13989fc4bd0b58e04bf7eec5210e438a',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/translation',
|
'install_path' => __DIR__ . '/../symfony/translation',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
'dev_requirement' => false,
|
'dev_requirement' => false,
|
||||||
),
|
),
|
||||||
'symfony/translation-contracts' => array(
|
'symfony/translation-contracts' => array(
|
||||||
'pretty_version' => 'v3.4.1',
|
'pretty_version' => 'v3.5.0',
|
||||||
'version' => '3.4.1.0',
|
'version' => '3.5.0.0',
|
||||||
'reference' => '06450585bf65e978026bda220cdebca3f867fde7',
|
'reference' => 'b9d2189887bb6b2e0367a9fc7136c5239ab9b05a',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/translation-contracts',
|
'install_path' => __DIR__ . '/../symfony/translation-contracts',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
@ -519,9 +519,9 @@
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'symfony/uid' => array(
|
'symfony/uid' => array(
|
||||||
'pretty_version' => 'v6.4.3',
|
'pretty_version' => 'v6.4.8',
|
||||||
'version' => '6.4.3.0',
|
'version' => '6.4.8.0',
|
||||||
'reference' => '1d31267211cc3a2fff32bcfc7c1818dac41b6fc0',
|
'reference' => '35904eca37a84bb764c560cbfcac9f0ac2bcdbdf',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../symfony/uid',
|
'install_path' => __DIR__ . '/../symfony/uid',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [6.10.1](https://github.com/firebase/php-jwt/compare/v6.10.0...v6.10.1) (2024-05-18)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* ensure ratelimit expiry is set every time ([#556](https://github.com/firebase/php-jwt/issues/556)) ([09cb208](https://github.com/firebase/php-jwt/commit/09cb2081c2c3bc0f61e2f2a5fbea5741f7498648))
|
||||||
|
* ratelimit cache expiration ([#550](https://github.com/firebase/php-jwt/issues/550)) ([dda7250](https://github.com/firebase/php-jwt/commit/dda725033585ece30ff8cae8937320d7e9f18bae))
|
||||||
|
|
||||||
## [6.10.0](https://github.com/firebase/php-jwt/compare/v6.9.0...v6.10.0) (2023-11-28)
|
## [6.10.0](https://github.com/firebase/php-jwt/compare/v6.9.0...v6.10.0) (2023-11-28)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ composer require firebase/php-jwt
|
||||||
```
|
```
|
||||||
|
|
||||||
Optionally, install the `paragonie/sodium_compat` package from composer if your
|
Optionally, install the `paragonie/sodium_compat` package from composer if your
|
||||||
php is < 7.2 or does not have libsodium installed:
|
php env does not have libsodium installed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
composer require paragonie/sodium_compat
|
composer require paragonie/sodium_compat
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
],
|
],
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.4||^8.0"
|
"php": "^8.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present",
|
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present",
|
||||||
|
@ -32,10 +32,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"guzzlehttp/guzzle": "^6.5||^7.4",
|
"guzzlehttp/guzzle": "^7.4",
|
||||||
"phpspec/prophecy-phpunit": "^2.0",
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"psr/cache": "^1.0||^2.0",
|
"psr/cache": "^2.0||^3.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"psr/http-factory": "^1.0"
|
"psr/http-factory": "^1.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,15 +212,21 @@ class CachedKeySet implements ArrayAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
$cacheItem = $this->cache->getItem($this->rateLimitCacheKey);
|
$cacheItem = $this->cache->getItem($this->rateLimitCacheKey);
|
||||||
if (!$cacheItem->isHit()) {
|
|
||||||
$cacheItem->expiresAfter(1); // # of calls are cached each minute
|
$cacheItemData = [];
|
||||||
|
if ($cacheItem->isHit() && \is_array($data = $cacheItem->get())) {
|
||||||
|
$cacheItemData = $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
$callsPerMinute = (int) $cacheItem->get();
|
$callsPerMinute = $cacheItemData['callsPerMinute'] ?? 0;
|
||||||
|
$expiry = $cacheItemData['expiry'] ?? new \DateTime('+60 seconds', new \DateTimeZone('UTC'));
|
||||||
|
|
||||||
if (++$callsPerMinute > $this->maxCallsPerMinute) {
|
if (++$callsPerMinute > $this->maxCallsPerMinute) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$cacheItem->set($callsPerMinute);
|
|
||||||
|
$cacheItem->set(['expiry' => $expiry, 'callsPerMinute' => $callsPerMinute]);
|
||||||
|
$cacheItem->expiresAt($expiry);
|
||||||
$this->cache->save($cacheItem);
|
$this->cache->save($cacheItem);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,6 +251,9 @@ class JWT
|
||||||
return \hash_hmac($algorithm, $msg, $key, true);
|
return \hash_hmac($algorithm, $msg, $key, true);
|
||||||
case 'openssl':
|
case 'openssl':
|
||||||
$signature = '';
|
$signature = '';
|
||||||
|
if (!\is_resource($key) && !openssl_pkey_get_private($key)) {
|
||||||
|
throw new DomainException('OpenSSL unable to validate key');
|
||||||
|
}
|
||||||
$success = \openssl_sign($msg, $signature, $key, $algorithm); // @phpstan-ignore-line
|
$success = \openssl_sign($msg, $signature, $key, $algorithm); // @phpstan-ignore-line
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
throw new DomainException('OpenSSL unable to sign data');
|
throw new DomainException('OpenSSL unable to sign data');
|
||||||
|
|
|
@ -998,8 +998,11 @@ class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerabl
|
||||||
/**
|
/**
|
||||||
* Push all of the given items onto the collection.
|
* Push all of the given items onto the collection.
|
||||||
*
|
*
|
||||||
* @param iterable<array-key, TValue> $source
|
* @template TConcatKey of array-key
|
||||||
* @return static
|
* @template TConcatValue
|
||||||
|
*
|
||||||
|
* @param iterable<TConcatKey, TConcatValue> $source
|
||||||
|
* @return static<TKey|TConcatKey, TValue|TConcatValue>
|
||||||
*/
|
*/
|
||||||
public function concat($source)
|
public function concat($source)
|
||||||
{
|
{
|
||||||
|
|
|
@ -789,8 +789,11 @@ interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable,
|
||||||
/**
|
/**
|
||||||
* Push all of the given items onto the collection.
|
* Push all of the given items onto the collection.
|
||||||
*
|
*
|
||||||
* @param iterable<array-key, TValue> $source
|
* @template TConcatKey of array-key
|
||||||
* @return static
|
* @template TConcatValue
|
||||||
|
*
|
||||||
|
* @param iterable<TConcatKey, TConcatValue> $source
|
||||||
|
* @return static<TKey|TConcatKey, TValue|TConcatValue>
|
||||||
*/
|
*/
|
||||||
public function concat($source);
|
public function concat($source);
|
||||||
|
|
||||||
|
|
|
@ -991,8 +991,11 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable
|
||||||
/**
|
/**
|
||||||
* Push all of the given items onto the collection.
|
* Push all of the given items onto the collection.
|
||||||
*
|
*
|
||||||
* @param iterable<array-key, TValue> $source
|
* @template TConcatKey of array-key
|
||||||
* @return static
|
* @template TConcatValue
|
||||||
|
*
|
||||||
|
* @param iterable<TConcatKey, TConcatValue> $source
|
||||||
|
* @return static<TKey|TConcatKey, TValue|TConcatValue>
|
||||||
*/
|
*/
|
||||||
public function concat($source)
|
public function concat($source)
|
||||||
{
|
{
|
||||||
|
|
|
@ -205,6 +205,7 @@ abstract class AbstractCursorPaginator implements Htmlable
|
||||||
public function getParametersForItem($item)
|
public function getParametersForItem($item)
|
||||||
{
|
{
|
||||||
return collect($this->parameters)
|
return collect($this->parameters)
|
||||||
|
->filter()
|
||||||
->flip()
|
->flip()
|
||||||
->map(function ($_, $parameterName) use ($item) {
|
->map(function ($_, $parameterName) use ($item) {
|
||||||
if ($item instanceof JsonResource) {
|
if ($item instanceof JsonResource) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ use Illuminate\Support\Testing\Fakes\NotificationFake;
|
||||||
* @method static void assertCount(int $expectedCount)
|
* @method static void assertCount(int $expectedCount)
|
||||||
* @method static \Illuminate\Support\Collection sent(mixed $notifiable, string $notification, callable|null $callback = null)
|
* @method static \Illuminate\Support\Collection sent(mixed $notifiable, string $notification, callable|null $callback = null)
|
||||||
* @method static bool hasSent(mixed $notifiable, string $notification)
|
* @method static bool hasSent(mixed $notifiable, string $notification)
|
||||||
|
* @method static \Illuminate\Support\Testing\Fakes\NotificationFake serializeAndRestore(bool $serializeAndRestore = true)
|
||||||
* @method static array sentNotifications()
|
* @method static array sentNotifications()
|
||||||
* @method static void macro(string $name, object|callable $macro)
|
* @method static void macro(string $name, object|callable $macro)
|
||||||
* @method static void mixin(object $mixin, bool $replace = true)
|
* @method static void mixin(object $mixin, bool $replace = true)
|
||||||
|
|
|
@ -1305,14 +1305,13 @@ class Str
|
||||||
$minorWords = [
|
$minorWords = [
|
||||||
'and', 'as', 'but', 'for', 'if', 'nor', 'or', 'so', 'yet', 'a', 'an',
|
'and', 'as', 'but', 'for', 'if', 'nor', 'or', 'so', 'yet', 'a', 'an',
|
||||||
'the', 'at', 'by', 'for', 'in', 'of', 'off', 'on', 'per', 'to', 'up', 'via',
|
'the', 'at', 'by', 'for', 'in', 'of', 'off', 'on', 'per', 'to', 'up', 'via',
|
||||||
|
'et', 'ou', 'un', 'une', 'la', 'le', 'les', 'de', 'du', 'des', 'par', 'à',
|
||||||
];
|
];
|
||||||
|
|
||||||
$endPunctuation = ['.', '!', '?', ':', '—', ','];
|
$endPunctuation = ['.', '!', '?', ':', '—', ','];
|
||||||
|
|
||||||
$words = preg_split('/\s+/', $value, -1, PREG_SPLIT_NO_EMPTY);
|
$words = preg_split('/\s+/', $value, -1, PREG_SPLIT_NO_EMPTY);
|
||||||
|
|
||||||
$words[0] = ucfirst(mb_strtolower($words[0]));
|
|
||||||
|
|
||||||
for ($i = 0; $i < count($words); $i++) {
|
for ($i = 0; $i < count($words); $i++) {
|
||||||
$lowercaseWord = mb_strtolower($words[$i]);
|
$lowercaseWord = mb_strtolower($words[$i]);
|
||||||
|
|
||||||
|
@ -1320,7 +1319,9 @@ class Str
|
||||||
$hyphenatedWords = explode('-', $lowercaseWord);
|
$hyphenatedWords = explode('-', $lowercaseWord);
|
||||||
|
|
||||||
$hyphenatedWords = array_map(function ($part) use ($minorWords) {
|
$hyphenatedWords = array_map(function ($part) use ($minorWords) {
|
||||||
return (in_array($part, $minorWords) && mb_strlen($part) <= 3) ? $part : ucfirst($part);
|
return (in_array($part, $minorWords) && mb_strlen($part) <= 3)
|
||||||
|
? $part
|
||||||
|
: mb_strtoupper(mb_substr($part, 0, 1)).mb_substr($part, 1);
|
||||||
}, $hyphenatedWords);
|
}, $hyphenatedWords);
|
||||||
|
|
||||||
$words[$i] = implode('-', $hyphenatedWords);
|
$words[$i] = implode('-', $hyphenatedWords);
|
||||||
|
@ -1330,7 +1331,7 @@ class Str
|
||||||
! ($i === 0 || in_array(mb_substr($words[$i - 1], -1), $endPunctuation))) {
|
! ($i === 0 || in_array(mb_substr($words[$i - 1], -1), $endPunctuation))) {
|
||||||
$words[$i] = $lowercaseWord;
|
$words[$i] = $lowercaseWord;
|
||||||
} else {
|
} else {
|
||||||
$words[$i] = ucfirst($lowercaseWord);
|
$words[$i] = mb_strtoupper(mb_substr($lowercaseWord, 0, 1)).mb_substr($lowercaseWord, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ use Closure;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Contracts\Notifications\Dispatcher as NotificationDispatcher;
|
use Illuminate\Contracts\Notifications\Dispatcher as NotificationDispatcher;
|
||||||
use Illuminate\Contracts\Notifications\Factory as NotificationFactory;
|
use Illuminate\Contracts\Notifications\Factory as NotificationFactory;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Contracts\Translation\HasLocalePreference;
|
use Illuminate\Contracts\Translation\HasLocalePreference;
|
||||||
use Illuminate\Notifications\AnonymousNotifiable;
|
use Illuminate\Notifications\AnonymousNotifiable;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
@ -32,6 +33,13 @@ class NotificationFake implements Fake, NotificationDispatcher, NotificationFact
|
||||||
*/
|
*/
|
||||||
public $locale;
|
public $locale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates if notifications should be serialized and restored when pushed to the queue.
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $serializeAndRestore = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assert if a notification was sent on-demand based on a truth-test callback.
|
* Assert if a notification was sent on-demand based on a truth-test callback.
|
||||||
*
|
*
|
||||||
|
@ -313,7 +321,9 @@ class NotificationFake implements Fake, NotificationDispatcher, NotificationFact
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [
|
$this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [
|
||||||
'notification' => $notification,
|
'notification' => $this->serializeAndRestore && $notification instanceof ShouldQueue
|
||||||
|
? $this->serializeAndRestoreNotification($notification)
|
||||||
|
: $notification,
|
||||||
'channels' => $notifiableChannels,
|
'channels' => $notifiableChannels,
|
||||||
'notifiable' => $notifiable,
|
'notifiable' => $notifiable,
|
||||||
'locale' => $notification->locale ?? $this->locale ?? value(function () use ($notifiable) {
|
'locale' => $notification->locale ?? $this->locale ?? value(function () use ($notifiable) {
|
||||||
|
@ -349,6 +359,30 @@ class NotificationFake implements Fake, NotificationDispatcher, NotificationFact
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify if notification should be serialized and restored when being "pushed" to the queue.
|
||||||
|
*
|
||||||
|
* @param bool $serializeAndRestore
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function serializeAndRestore(bool $serializeAndRestore = true)
|
||||||
|
{
|
||||||
|
$this->serializeAndRestore = $serializeAndRestore;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serialize and unserialize the notification to simulate the queueing process.
|
||||||
|
*
|
||||||
|
* @param mixed $notification
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
protected function serializeAndRestoreNotification($notification)
|
||||||
|
{
|
||||||
|
return unserialize(serialize($notification));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the notifications that have been sent.
|
* Get the notifications that have been sent.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
### 3.6.0 (2024-04-12)
|
||||||
|
|
||||||
|
* Added `LineFormatter->setBasePath(...)` that allows removing the project's path from the stack trace output (#1873)
|
||||||
|
* Added `$includeExtra` option in `PsrHandler` to also use extra data to replace placeholder values in the message (#1852)
|
||||||
|
* Added ability to customize what is a duplicated message by extending the `DeduplicationHandler` (#1879)
|
||||||
|
* Added handling for using `GelfMessageFormatter` together with the `AmqpHandler` (#1869)
|
||||||
|
* Added ability to extend `GoogleCloudLoggingFormatter` (#1859)
|
||||||
|
* Fixed `__toString` failures in context data crashing the normalization process (#1868)
|
||||||
|
* Fixed PHP 8.4 deprecation warnings (#1874)
|
||||||
|
|
||||||
### 3.5.0 (2023-10-27)
|
### 3.5.0 (2023-10-27)
|
||||||
|
|
||||||
* Added ability to indent stack traces in LineFormatter via e.g. `indentStacktraces(' ')` (#1835)
|
* Added ability to indent stack traces in LineFormatter via e.g. `indentStacktraces(' ')` (#1835)
|
||||||
|
@ -106,6 +116,10 @@ New deprecations:
|
||||||
value equal to what `Logger::WARNING` was giving you.
|
value equal to what `Logger::WARNING` was giving you.
|
||||||
- `Logger::getLevelName()` is now deprecated.
|
- `Logger::getLevelName()` is now deprecated.
|
||||||
|
|
||||||
|
### 2.9.3 (2024-04-12)
|
||||||
|
|
||||||
|
* Fixed PHP 8.4 deprecation warnings (#1874)
|
||||||
|
|
||||||
### 2.9.2 (2023-10-27)
|
### 2.9.2 (2023-10-27)
|
||||||
|
|
||||||
* Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
|
* Fixed display_errors parsing in ErrorHandler which did not support string values (#1804)
|
||||||
|
|
|
@ -19,12 +19,28 @@ make sure you can always use another compatible logger at a later time.
|
||||||
As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels.
|
As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels.
|
||||||
Internally Monolog still uses its own level scheme since it predates PSR-3.
|
Internally Monolog still uses its own level scheme since it predates PSR-3.
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<hr>
|
||||||
|
<sup><b>Sponsored by:</b></sup>
|
||||||
|
<br>
|
||||||
|
<a href="https://betterstack.com">
|
||||||
|
<div>
|
||||||
|
<img src="https://github.com/Seldaek/monolog/assets/183678/7de58ce0-2fa2-45c0-b3e8-e60cebb3c4cf" width="200" alt="Better Stack">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Better Stack lets you centralize, search, and visualize your logs.
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<br>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Install the latest version with
|
Install the latest version with
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ composer require monolog/monolog
|
composer require monolog/monolog
|
||||||
```
|
```
|
||||||
|
|
||||||
## Basic Usage
|
## Basic Usage
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"phpstan/phpstan": "^1.9",
|
"phpstan/phpstan": "^1.9",
|
||||||
"phpstan/phpstan-deprecation-rules": "^1.0",
|
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||||
"phpstan/phpstan-strict-rules": "^1.4",
|
"phpstan/phpstan-strict-rules": "^1.4",
|
||||||
"phpunit/phpunit": "^10.1",
|
"phpunit/phpunit": "^10.5.17",
|
||||||
"predis/predis": "^1.1 || ^2",
|
"predis/predis": "^1.1 || ^2",
|
||||||
"ruflin/elastica": "^7",
|
"ruflin/elastica": "^7",
|
||||||
"symfony/mailer": "^5.4 || ^6",
|
"symfony/mailer": "^5.4 || ^6",
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
BIN
lam/lib/3rdParty/composer/monolog/monolog/logo.jpg
vendored
BIN
lam/lib/3rdParty/composer/monolog/monolog/logo.jpg
vendored
Binary file not shown.
Before Width: | Height: | Size: 691 KiB |
|
@ -27,6 +27,8 @@ class DateTimeImmutable extends \DateTimeImmutable implements \JsonSerializable
|
||||||
{
|
{
|
||||||
$this->useMicroseconds = $useMicroseconds;
|
$this->useMicroseconds = $useMicroseconds;
|
||||||
|
|
||||||
|
// if you like to use a custom time to pass to Logger::addRecord directly,
|
||||||
|
// call modify() or setTimestamp() on this instance to change the date after creating it
|
||||||
parent::__construct('now', $timezone);
|
parent::__construct('now', $timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ use Monolog\LogRecord;
|
||||||
*
|
*
|
||||||
* @author Luís Cobucci <lcobucci@gmail.com>
|
* @author Luís Cobucci <lcobucci@gmail.com>
|
||||||
*/
|
*/
|
||||||
final class GoogleCloudLoggingFormatter extends JsonFormatter
|
class GoogleCloudLoggingFormatter extends JsonFormatter
|
||||||
{
|
{
|
||||||
protected function normalizeRecord(LogRecord $record): array
|
protected function normalizeRecord(LogRecord $record): array
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,6 +34,7 @@ class LineFormatter extends NormalizerFormatter
|
||||||
protected ?int $maxLevelNameLength = null;
|
protected ?int $maxLevelNameLength = null;
|
||||||
protected string $indentStacktraces = '';
|
protected string $indentStacktraces = '';
|
||||||
protected Closure|null $stacktracesParser = null;
|
protected Closure|null $stacktracesParser = null;
|
||||||
|
protected string $basePath = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $format The format of the message
|
* @param string|null $format The format of the message
|
||||||
|
@ -51,6 +52,21 @@ class LineFormatter extends NormalizerFormatter
|
||||||
parent::__construct($dateFormat);
|
parent::__construct($dateFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setting a base path will hide the base path from exception and stack trace file names to shorten them
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setBasePath(string $path = ''): self
|
||||||
|
{
|
||||||
|
if ($path !== '') {
|
||||||
|
$path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->basePath = $path;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
|
@ -258,7 +274,13 @@ class LineFormatter extends NormalizerFormatter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$str .= '): ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine() . ')';
|
|
||||||
|
$file = $e->getFile();
|
||||||
|
if ($this->basePath !== '') {
|
||||||
|
$file = preg_replace('{^'.preg_quote($this->basePath).'}', '', $file);
|
||||||
|
}
|
||||||
|
|
||||||
|
$str .= '): ' . $e->getMessage() . ' at ' . $file . ':' . $e->getLine() . ')';
|
||||||
|
|
||||||
if ($this->includeStacktraces) {
|
if ($this->includeStacktraces) {
|
||||||
$str .= $this->stacktracesParser($e);
|
$str .= $this->stacktracesParser($e);
|
||||||
|
@ -271,6 +293,10 @@ class LineFormatter extends NormalizerFormatter
|
||||||
{
|
{
|
||||||
$trace = $e->getTraceAsString();
|
$trace = $e->getTraceAsString();
|
||||||
|
|
||||||
|
if ($this->basePath !== '') {
|
||||||
|
$trace = preg_replace('{^(#\d+ )' . preg_quote($this->basePath) . '}m', '$1', $trace) ?? $trace;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->stacktracesParser !== null) {
|
if ($this->stacktracesParser !== null) {
|
||||||
$trace = $this->stacktracesParserCustom($trace);
|
$trace = $this->stacktracesParserCustom($trace);
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,8 +210,14 @@ class NormalizerFormatter implements FormatterInterface
|
||||||
$accessor = new \ArrayObject($data);
|
$accessor = new \ArrayObject($data);
|
||||||
$value = (string) $accessor['__PHP_Incomplete_Class_Name'];
|
$value = (string) $accessor['__PHP_Incomplete_Class_Name'];
|
||||||
} elseif (method_exists($data, '__toString')) {
|
} elseif (method_exists($data, '__toString')) {
|
||||||
/** @var string $value */
|
try {
|
||||||
$value = $data->__toString();
|
/** @var string $value */
|
||||||
|
$value = $data->__toString();
|
||||||
|
} catch (\Throwable) {
|
||||||
|
// if the toString method is failing, use the default behavior
|
||||||
|
/** @var null|scalar|array<mixed[]|scalar|null> $value */
|
||||||
|
$value = json_decode($this->toJson($data, true), true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// the rest is normalized by json encoding and decoding it
|
// the rest is normalized by json encoding and decoding it
|
||||||
/** @var null|scalar|array<mixed[]|scalar|null> $value */
|
/** @var null|scalar|array<mixed[]|scalar|null> $value */
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
namespace Monolog\Handler;
|
namespace Monolog\Handler;
|
||||||
|
|
||||||
|
use Gelf\Message as GelfMessage;
|
||||||
use Monolog\Level;
|
use Monolog\Level;
|
||||||
use Monolog\Formatter\FormatterInterface;
|
use Monolog\Formatter\FormatterInterface;
|
||||||
use Monolog\Formatter\JsonFormatter;
|
use Monolog\Formatter\JsonFormatter;
|
||||||
|
@ -75,6 +76,10 @@ class AmqpHandler extends AbstractProcessingHandler
|
||||||
$data = $record->formatted;
|
$data = $record->formatted;
|
||||||
$routingKey = $this->getRoutingKey($record);
|
$routingKey = $this->getRoutingKey($record);
|
||||||
|
|
||||||
|
if($data instanceof GelfMessage) {
|
||||||
|
$data = json_encode($data->toArray());
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->exchange instanceof AMQPExchange) {
|
if ($this->exchange instanceof AMQPExchange) {
|
||||||
$attributes = [
|
$attributes = [
|
||||||
'delivery_mode' => 2,
|
'delivery_mode' => 2,
|
||||||
|
@ -117,6 +122,10 @@ class AmqpHandler extends AbstractProcessingHandler
|
||||||
$record = $this->processRecord($record);
|
$record = $this->processRecord($record);
|
||||||
$data = $this->getFormatter()->format($record);
|
$data = $this->getFormatter()->format($record);
|
||||||
|
|
||||||
|
if($data instanceof GelfMessage) {
|
||||||
|
$data = json_encode($data->toArray());
|
||||||
|
}
|
||||||
|
|
||||||
$this->exchange->batch_basic_publish(
|
$this->exchange->batch_basic_publish(
|
||||||
$this->createAmqpMessage($data),
|
$this->createAmqpMessage($data),
|
||||||
$this->exchangeName,
|
$this->exchangeName,
|
||||||
|
|
|
@ -43,8 +43,7 @@ class DeduplicationHandler extends BufferHandler
|
||||||
protected Level $deduplicationLevel;
|
protected Level $deduplicationLevel;
|
||||||
|
|
||||||
protected int $time;
|
protected int $time;
|
||||||
|
protected bool $gc = false;
|
||||||
private bool $gc = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param HandlerInterface $handler Handler.
|
* @param HandlerInterface $handler Handler.
|
||||||
|
@ -70,13 +69,24 @@ class DeduplicationHandler extends BufferHandler
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$store = null;
|
||||||
|
|
||||||
|
if (file_exists($this->deduplicationStore)) {
|
||||||
|
$store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||||
|
}
|
||||||
|
|
||||||
$passthru = null;
|
$passthru = null;
|
||||||
|
|
||||||
foreach ($this->buffer as $record) {
|
foreach ($this->buffer as $record) {
|
||||||
if ($record->level->value >= $this->deduplicationLevel->value) {
|
if ($record->level->value >= $this->deduplicationLevel->value) {
|
||||||
$passthru = $passthru === true || !$this->isDuplicate($record);
|
$passthru = $passthru === true || !is_array($store) || !$this->isDuplicate($store, $record);
|
||||||
if ($passthru) {
|
if ($passthru) {
|
||||||
$this->appendRecord($record);
|
$line = $this->buildDeduplicationStoreEntry($record);
|
||||||
|
file_put_contents($this->deduplicationStore, $line . "\n", FILE_APPEND);
|
||||||
|
if (!is_array($store)) {
|
||||||
|
$store = [];
|
||||||
|
}
|
||||||
|
$store[] = $line;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,20 +103,15 @@ class DeduplicationHandler extends BufferHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function isDuplicate(LogRecord $record): bool
|
/**
|
||||||
|
* If there is a store entry older than e.g. a day, this method should set `$this->gc` to `true` to trigger garbage collection.
|
||||||
|
* @param string[] $store The deduplication store
|
||||||
|
*/
|
||||||
|
protected function isDuplicate(array $store, LogRecord $record): bool
|
||||||
{
|
{
|
||||||
if (!file_exists($this->deduplicationStore)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
|
||||||
if (!is_array($store)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$yesterday = time() - 86400;
|
|
||||||
$timestampValidity = $record->datetime->getTimestamp() - $this->time;
|
$timestampValidity = $record->datetime->getTimestamp() - $this->time;
|
||||||
$expectedMessage = preg_replace('{[\r\n].*}', '', $record->message);
|
$expectedMessage = preg_replace('{[\r\n].*}', '', $record->message);
|
||||||
|
$yesterday = time() - 86400;
|
||||||
|
|
||||||
for ($i = count($store) - 1; $i >= 0; $i--) {
|
for ($i = count($store) - 1; $i >= 0; $i--) {
|
||||||
list($timestamp, $level, $message) = explode(':', $store[$i], 3);
|
list($timestamp, $level, $message) = explode(':', $store[$i], 3);
|
||||||
|
@ -123,6 +128,14 @@ class DeduplicationHandler extends BufferHandler
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string The given record serialized as a single line of text
|
||||||
|
*/
|
||||||
|
protected function buildDeduplicationStoreEntry(LogRecord $record): string
|
||||||
|
{
|
||||||
|
return $record->datetime->getTimestamp() . ':' . $record->level->getName() . ':' . preg_replace('{[\r\n].*}', '', $record->message);
|
||||||
|
}
|
||||||
|
|
||||||
private function collectLogs(): void
|
private function collectLogs(): void
|
||||||
{
|
{
|
||||||
if (!file_exists($this->deduplicationStore)) {
|
if (!file_exists($this->deduplicationStore)) {
|
||||||
|
@ -158,9 +171,4 @@ class DeduplicationHandler extends BufferHandler
|
||||||
|
|
||||||
$this->gc = false;
|
$this->gc = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function appendRecord(LogRecord $record): void
|
|
||||||
{
|
|
||||||
file_put_contents($this->deduplicationStore, $record->datetime->getTimestamp() . ':' . $record->level->getName() . ':' . preg_replace('{[\r\n].*}', '', $record->message) . "\n", FILE_APPEND);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,7 +150,7 @@ class FilterHandler extends Handler implements ProcessableHandlerInterface, Rese
|
||||||
*
|
*
|
||||||
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
||||||
*/
|
*/
|
||||||
public function getHandler(LogRecord $record = null): HandlerInterface
|
public function getHandler(LogRecord|null $record = null): HandlerInterface
|
||||||
{
|
{
|
||||||
if (!$this->handler instanceof HandlerInterface) {
|
if (!$this->handler instanceof HandlerInterface) {
|
||||||
$handler = ($this->handler)($record, $this);
|
$handler = ($this->handler)($record, $this);
|
||||||
|
|
|
@ -199,7 +199,7 @@ class FingersCrossedHandler extends Handler implements ProcessableHandlerInterfa
|
||||||
*
|
*
|
||||||
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
||||||
*/
|
*/
|
||||||
public function getHandler(LogRecord $record = null): HandlerInterface
|
public function getHandler(LogRecord|null $record = null): HandlerInterface
|
||||||
{
|
{
|
||||||
if (!$this->handler instanceof HandlerInterface) {
|
if (!$this->handler instanceof HandlerInterface) {
|
||||||
$handler = ($this->handler)($record, $this);
|
$handler = ($this->handler)($record, $this);
|
||||||
|
|
|
@ -33,15 +33,17 @@ class PsrHandler extends AbstractHandler implements FormattableHandlerInterface
|
||||||
protected LoggerInterface $logger;
|
protected LoggerInterface $logger;
|
||||||
|
|
||||||
protected FormatterInterface|null $formatter = null;
|
protected FormatterInterface|null $formatter = null;
|
||||||
|
private bool $includeExtra;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied
|
* @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied
|
||||||
*/
|
*/
|
||||||
public function __construct(LoggerInterface $logger, int|string|Level $level = Level::Debug, bool $bubble = true)
|
public function __construct(LoggerInterface $logger, int|string|Level $level = Level::Debug, bool $bubble = true, bool $includeExtra = false)
|
||||||
{
|
{
|
||||||
parent::__construct($level, $bubble);
|
parent::__construct($level, $bubble);
|
||||||
|
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
|
$this->includeExtra = $includeExtra;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,12 +55,15 @@ class PsrHandler extends AbstractHandler implements FormattableHandlerInterface
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->formatter !== null) {
|
$message = $this->formatter !== null
|
||||||
$formatted = $this->formatter->format($record);
|
? (string) $this->formatter->format($record)
|
||||||
$this->logger->log($record->level->toPsrLogLevel(), (string) $formatted, $record->context);
|
: $record->message;
|
||||||
} else {
|
|
||||||
$this->logger->log($record->level->toPsrLogLevel(), $record->message, $record->context);
|
$context = $this->includeExtra
|
||||||
}
|
? [...$record->extra, ...$record->context]
|
||||||
|
: $record->context;
|
||||||
|
|
||||||
|
$this->logger->log($record->level->toPsrLogLevel(), $message, $context);
|
||||||
|
|
||||||
return false === $this->bubble;
|
return false === $this->bubble;
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ class RedisHandler extends AbstractProcessingHandler
|
||||||
$mode = defined('Redis::MULTI') ? Redis::MULTI : 1;
|
$mode = defined('Redis::MULTI') ? Redis::MULTI : 1;
|
||||||
$this->redisClient->multi($mode)
|
$this->redisClient->multi($mode)
|
||||||
->rPush($this->redisKey, $record->formatted)
|
->rPush($this->redisKey, $record->formatted)
|
||||||
->ltrim($this->redisKey, -$this->capSize, -1)
|
->lTrim($this->redisKey, -$this->capSize, -1)
|
||||||
->exec();
|
->exec();
|
||||||
} else {
|
} else {
|
||||||
$redisKey = $this->redisKey;
|
$redisKey = $this->redisKey;
|
||||||
|
|
|
@ -78,7 +78,7 @@ class SamplingHandler extends AbstractHandler implements ProcessableHandlerInter
|
||||||
*
|
*
|
||||||
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
* If the handler was provided as a factory, this will trigger the handler's instantiation.
|
||||||
*/
|
*/
|
||||||
public function getHandler(LogRecord $record = null): HandlerInterface
|
public function getHandler(LogRecord|null $record = null): HandlerInterface
|
||||||
{
|
{
|
||||||
if (!$this->handler instanceof HandlerInterface) {
|
if (!$this->handler instanceof HandlerInterface) {
|
||||||
$handler = ($this->handler)($record, $this);
|
$handler = ($this->handler)($record, $this);
|
||||||
|
|
|
@ -86,7 +86,7 @@ class SlackRecord
|
||||||
bool $useShortAttachment = false,
|
bool $useShortAttachment = false,
|
||||||
bool $includeContextAndExtra = false,
|
bool $includeContextAndExtra = false,
|
||||||
array $excludeFields = [],
|
array $excludeFields = [],
|
||||||
FormatterInterface $formatter = null
|
FormatterInterface|null $formatter = null
|
||||||
) {
|
) {
|
||||||
$this
|
$this
|
||||||
->setChannel($channel)
|
->setChannel($channel)
|
||||||
|
|
|
@ -104,9 +104,6 @@ class SlackWebhookHandler extends AbstractProcessingHandler
|
||||||
CURLOPT_HTTPHEADER => ['Content-type: application/json'],
|
CURLOPT_HTTPHEADER => ['Content-type: application/json'],
|
||||||
CURLOPT_POSTFIELDS => $postString,
|
CURLOPT_POSTFIELDS => $postString,
|
||||||
];
|
];
|
||||||
if (defined('CURLOPT_SAFE_UPLOAD')) {
|
|
||||||
$options[CURLOPT_SAFE_UPLOAD] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
curl_setopt_array($ch, $options);
|
curl_setopt_array($ch, $options);
|
||||||
|
|
||||||
|
|
|
@ -111,9 +111,9 @@ class TelegramBotHandler extends AbstractProcessingHandler
|
||||||
string $channel,
|
string $channel,
|
||||||
$level = Level::Debug,
|
$level = Level::Debug,
|
||||||
bool $bubble = true,
|
bool $bubble = true,
|
||||||
string $parseMode = null,
|
?string $parseMode = null,
|
||||||
bool $disableWebPagePreview = null,
|
?bool $disableWebPagePreview = null,
|
||||||
bool $disableNotification = null,
|
?bool $disableNotification = null,
|
||||||
bool $splitLongMessages = false,
|
bool $splitLongMessages = false,
|
||||||
bool $delayBetweenMessages = false,
|
bool $delayBetweenMessages = false,
|
||||||
int $topic = null
|
int $topic = null
|
||||||
|
@ -137,7 +137,7 @@ class TelegramBotHandler extends AbstractProcessingHandler
|
||||||
/**
|
/**
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setParseMode(string $parseMode = null): self
|
public function setParseMode(string|null $parseMode = null): self
|
||||||
{
|
{
|
||||||
if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES, true)) {
|
if ($parseMode !== null && !in_array($parseMode, self::AVAILABLE_PARSE_MODES, true)) {
|
||||||
throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.');
|
throw new \InvalidArgumentException('Unknown parseMode, use one of these: ' . implode(', ', self::AVAILABLE_PARSE_MODES) . '.');
|
||||||
|
@ -151,7 +151,7 @@ class TelegramBotHandler extends AbstractProcessingHandler
|
||||||
/**
|
/**
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function disableWebPagePreview(bool $disableWebPagePreview = null): self
|
public function disableWebPagePreview(bool|null $disableWebPagePreview = null): self
|
||||||
{
|
{
|
||||||
$this->disableWebPagePreview = $disableWebPagePreview;
|
$this->disableWebPagePreview = $disableWebPagePreview;
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ class TelegramBotHandler extends AbstractProcessingHandler
|
||||||
/**
|
/**
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function disableNotification(bool $disableNotification = null): self
|
public function disableNotification(bool|null $disableNotification = null): self
|
||||||
{
|
{
|
||||||
$this->disableNotification = $disableNotification;
|
$this->disableNotification = $disableNotification;
|
||||||
|
|
||||||
|
|
|
@ -320,15 +320,15 @@ class Logger implements LoggerInterface, ResettableInterface
|
||||||
/**
|
/**
|
||||||
* Adds a log record.
|
* Adds a log record.
|
||||||
*
|
*
|
||||||
* @param int $level The logging level (a Monolog or RFC 5424 level)
|
* @param int $level The logging level (a Monolog or RFC 5424 level)
|
||||||
* @param string $message The log message
|
* @param string $message The log message
|
||||||
* @param mixed[] $context The log context
|
* @param mixed[] $context The log context
|
||||||
* @param DateTimeImmutable $datetime Optional log date to log into the past or future
|
* @param DateTimeImmutable|null $datetime Optional log date to log into the past or future
|
||||||
* @return bool Whether the record has been processed
|
* @return bool Whether the record has been processed
|
||||||
*
|
*
|
||||||
* @phpstan-param value-of<Level::VALUES>|Level $level
|
* @phpstan-param value-of<Level::VALUES>|Level $level
|
||||||
*/
|
*/
|
||||||
public function addRecord(int|Level $level, string $message, array $context = [], DateTimeImmutable $datetime = null): bool
|
public function addRecord(int|Level $level, string $message, array $context = [], DateTimeImmutable|null $datetime = null): bool
|
||||||
{
|
{
|
||||||
if (is_int($level) && isset(self::RFC_5424_LEVELS[$level])) {
|
if (is_int($level) && isset(self::RFC_5424_LEVELS[$level])) {
|
||||||
$level = self::RFC_5424_LEVELS[$level];
|
$level = self::RFC_5424_LEVELS[$level];
|
||||||
|
|
|
@ -92,8 +92,8 @@
|
||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-3.x": "3.x-dev",
|
"dev-master": "3.x-dev",
|
||||||
"dev-master": "2.x-dev"
|
"dev-2.x": "2.x-dev"
|
||||||
},
|
},
|
||||||
"laravel": {
|
"laravel": {
|
||||||
"providers": [
|
"providers": [
|
||||||
|
|
|
@ -123,8 +123,8 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
||||||
<a title="Онлайн казино 777 Україна" href="https://777.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Онлайн казино" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/7e572d50-1ce8-4d69-ae12-86cc80371373/ok-ua-777.png" width="64" height="64"></a>
|
<a title="Онлайн казино 777 Україна" href="https://777.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Онлайн казино" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/7e572d50-1ce8-4d69-ae12-86cc80371373/ok-ua-777.png" width="64" height="64"></a>
|
||||||
<a title="#1 Guide To Online Gambling In Canada" href="https://casinohex.org/canada/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="CasinoHex Canada" src="https://opencollective-production.s3.us-west-1.amazonaws.com/79fdbcc0-a997-11eb-abbc-25e48b63c6dc.jpg" width="85" height="64"></a>
|
<a title="#1 Guide To Online Gambling In Canada" href="https://casinohex.org/canada/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="CasinoHex Canada" src="https://opencollective-production.s3.us-west-1.amazonaws.com/79fdbcc0-a997-11eb-abbc-25e48b63c6dc.jpg" width="85" height="64"></a>
|
||||||
<a title="Znajdź najlepsze zakłady bukmacherskie w Polsce w 2023 roku. Probukmacher.pl to Twoje kompendium wiedzy na temat bukmacherów!" href="https://www.probukmacher.pl?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Probukmacher" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/caf50271-4560-4ffe-a434-ea15239168db/Screenshot_1.png" width="89" height="64"></a>
|
<a title="Znajdź najlepsze zakłady bukmacherskie w Polsce w 2023 roku. Probukmacher.pl to Twoje kompendium wiedzy na temat bukmacherów!" href="https://www.probukmacher.pl?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Probukmacher" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/caf50271-4560-4ffe-a434-ea15239168db/Screenshot_1.png" width="89" height="64"></a>
|
||||||
<a title="Gives a fun for our users" href="https://slotoking.ua/games/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Игровые автоматы" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/94601d07-3205-4c60-9c2d-9b8194dbefb7/skg-blue.png" width="64" height="64"></a>
|
|
||||||
<a title="Casino-portugal.pt" href="https://casino-portugal.pt/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Casino-portugal.pt" src="https://logo.clearbit.com/casino-portugal.pt" width="64" height="64"></a>
|
<a title="Casino-portugal.pt" href="https://casino-portugal.pt/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Casino-portugal.pt" src="https://logo.clearbit.com/casino-portugal.pt" width="64" height="64"></a>
|
||||||
|
<a title="Gives a fun for our users" href="https://slotoking.ua/games/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Игровые автоматы" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/94601d07-3205-4c60-9c2d-9b8194dbefb7/skg-blue.png" width="64" height="64"></a>
|
||||||
<a title="Slots City® ➢ Лучшее лицензионно казино онлайн и оффлайн на гривны в Украине. 【 Более1500 игровых автоматов и слотов】✅ Официально и Безопасно" href="https://slotscity.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Slots City" src="https://opencollective-production.s3.us-west-1.amazonaws.com/d7e298c0-7abe-11ed-8553-230872f5e54d.png" width="90" height="64"></a>
|
<a title="Slots City® ➢ Лучшее лицензионно казино онлайн и оффлайн на гривны в Украине. 【 Более1500 игровых автоматов и слотов】✅ Официально и Безопасно" href="https://slotscity.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Slots City" src="https://opencollective-production.s3.us-west-1.amazonaws.com/d7e298c0-7abe-11ed-8553-230872f5e54d.png" width="90" height="64"></a>
|
||||||
<a title="inkedin" href="https://inkedin.com?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="inkedin" src="https://logo.clearbit.com/inkedin.com" width="64" height="64"></a>
|
<a title="inkedin" href="https://inkedin.com?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="inkedin" src="https://logo.clearbit.com/inkedin.com" width="64" height="64"></a>
|
||||||
<a title="Актуальний та повносправний рейтинг онлайн казино України, ґрунтований на відгуках реальних гравців." href="https://uk.onlinecasino.in.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Онлайн казино України" src="https://opencollective-production.s3.us-west-1.amazonaws.com/c0b4b090-eef8-11ec-9cb7-0527a205b226.png" width="64" height="64"></a>
|
<a title="Актуальний та повносправний рейтинг онлайн казино України, ґрунтований на відгуках реальних гравців." href="https://uk.onlinecasino.in.ua/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Онлайн казино України" src="https://opencollective-production.s3.us-west-1.amazonaws.com/c0b4b090-eef8-11ec-9cb7-0527a205b226.png" width="64" height="64"></a>
|
||||||
|
@ -142,10 +142,11 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
||||||
<a title="Siti Non AAMS" href="https://www.outlookindia.com/outlook-spotlight/migliori-siti-non-aams-siti-scommesse-senza-licenza-sicuri-news-294715?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Migliori Siti Non AAMS" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/392810da-6cb6-4938-a3cb-38bd0e1eb7de/migliori-siti-non-aams.png" width="42" height="42"></a>
|
<a title="Siti Non AAMS" href="https://www.outlookindia.com/outlook-spotlight/migliori-siti-non-aams-siti-scommesse-senza-licenza-sicuri-news-294715?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Migliori Siti Non AAMS" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/392810da-6cb6-4938-a3cb-38bd0e1eb7de/migliori-siti-non-aams.png" width="42" height="42"></a>
|
||||||
<a title="List of trusted non GamStop casino reviews" href="https://nongamstopcasinos.org?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="UK NonGamStopCasinos" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/cbda0ee1-26ea-4252-9580-f1f9b317b1f7/nongamstopcasinos-uk.png" width="42" height="42"></a>
|
<a title="List of trusted non GamStop casino reviews" href="https://nongamstopcasinos.org?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="UK NonGamStopCasinos" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/cbda0ee1-26ea-4252-9580-f1f9b317b1f7/nongamstopcasinos-uk.png" width="42" height="42"></a>
|
||||||
<a title="Online TikTok Video Download Tool" href="https://snaptik.pro?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="SnapTik" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/546bcd53-6615-457d-ab21-1db1c52b3af5/logo.jpg" width="42" height="42"></a>
|
<a title="Online TikTok Video Download Tool" href="https://snaptik.pro?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="SnapTik" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/546bcd53-6615-457d-ab21-1db1c52b3af5/logo.jpg" width="42" height="42"></a>
|
||||||
<a title="IG Downloader is an Instagram Downloader service that offers a variety of tools to download Instagram content for free. Listed below are all the tools" href="https://indownloader.app/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="IG Downloader" src="https://logo.clearbit.com/indownloader.app" width="42" height="42"></a>
|
|
||||||
<a title="Proxidize is a mobile proxy creation and management platform that provides all needed components from hardware to cloud software and SIM cards." href="https://proxidize.com/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Proxidize" src="https://logo.clearbit.com/proxidize.com" width="42" height="42"></a>
|
<a title="Proxidize is a mobile proxy creation and management platform that provides all needed components from hardware to cloud software and SIM cards." href="https://proxidize.com/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Proxidize" src="https://logo.clearbit.com/proxidize.com" width="42" height="42"></a>
|
||||||
<a title="Blastup offers Instagram growth services like buying likes, views, and followers, emphasizing real user engagement and instant delivery." href="https://blastup.com/buy-instagram-likes?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Blastup" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/955a0beb-9fe8-4753-ad92-fae8ef5382fc/favicon--dark.jpg" width="42" height="42"></a>
|
<a title="IG Downloader is an Instagram Downloader service that offers a variety of tools to download Instagram content for free. Listed below are all the tools" href="https://indownloader.app/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="IG Downloader" src="https://logo.clearbit.com/indownloader.app" width="42" height="42"></a>
|
||||||
<a title="A self-hosted web radio management suite, including turnkey installer tools and an easy-to-use web app to manage your stations." href="https://azuracast.com?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="AzuraCast" src="https://opencollective-production.s3.us-west-1.amazonaws.com/3c12ea10-cdfb-11eb-9cf4-3760b386b76d.png" width="42" height="42"></a>
|
<a title="Buy Instagram Likes - Real Likes & Instant Delivery!" href="https://blastup.com/buy-instagram-likes?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Blastup" src="https://opencollective-production.s3.us-west-1.amazonaws.com/account-avatar/955a0beb-9fe8-4753-ad92-fae8ef5382fc/favicon--dark.jpg" width="42" height="42"></a>
|
||||||
|
<a title="We will boost your Social Media Likes, Followers , Comments & Views. 24/7 hour support. Privacy Assured." href="https://organicsocialboost.com/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Organic Social Boost" src="https://logo.clearbit.com/organicsocialboost.com" width="84" height="42"></a>
|
||||||
|
<a title="A self-hosted web radio management suite, including turnkey installer tools and an easy-to-use web app to manage your stations." href="https://azuracast.com/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="AzuraCast" src="https://opencollective-production.s3.us-west-1.amazonaws.com/3c12ea10-cdfb-11eb-9cf4-3760b386b76d.png" width="42" height="42"></a>
|
||||||
<a title="Triplebyte is the first software engineering job platform that is on the developer's side. Take our coding quiz!" href="https://triplebyte.com/os/opencollective?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Triplebyte" src="https://opencollective-production.s3.us-west-1.amazonaws.com/43e4f9d0-30cd-11ea-9c6b-e1142996e8b2.png" width="42" height="42"></a>
|
<a title="Triplebyte is the first software engineering job platform that is on the developer's side. Take our coding quiz!" href="https://triplebyte.com/os/opencollective?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Triplebyte" src="https://opencollective-production.s3.us-west-1.amazonaws.com/43e4f9d0-30cd-11ea-9c6b-e1142996e8b2.png" width="42" height="42"></a>
|
||||||
<a title="Connect your Collective to GitHub Sponsors: https://docs.opencollective.com/help/collectives/github-sponsors" href="https://github.com/sponsors/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="GitHub Sponsors" src="https://opencollective-production.s3.us-west-1.amazonaws.com/87b1d240-f617-11ea-9960-fd7e8ab20fe4.png" width="48" height="42"></a>
|
<a title="Connect your Collective to GitHub Sponsors: https://docs.opencollective.com/help/collectives/github-sponsors" href="https://github.com/sponsors/?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="GitHub Sponsors" src="https://opencollective-production.s3.us-west-1.amazonaws.com/87b1d240-f617-11ea-9960-fd7e8ab20fe4.png" width="48" height="42"></a>
|
||||||
<a title="Salesforce" href="https://engineering.salesforce.com?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Salesforce" src="https://opencollective-production.s3.us-west-1.amazonaws.com/24d34880-df8d-11e9-949c-6bc2037b6bd5.png" width="42" height="42"></a>
|
<a title="Salesforce" href="https://engineering.salesforce.com?utm_source=opencollective&utm_medium=github&utm_campaign=Carbon" target="_blank"><img alt="Salesforce" src="https://opencollective-production.s3.us-west-1.amazonaws.com/24d34880-df8d-11e9-949c-6bc2037b6bd5.png" width="42" height="42"></a>
|
||||||
|
|
|
@ -994,6 +994,10 @@ trait Comparison
|
||||||
return $this->year === (int) $tester;
|
return $this->year === (int) $tester;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^(?:Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)$/i', $tester)) {
|
||||||
|
return $this->isSameMonth(static::parse($tester), false);
|
||||||
|
}
|
||||||
|
|
||||||
if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) {
|
if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) {
|
||||||
return $this->isSameMonth(static::parse($tester));
|
return $this->isSameMonth(static::parse($tester));
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,9 +96,9 @@ trait Options
|
||||||
'v' => '([0-9]{1,3})',
|
'v' => '([0-9]{1,3})',
|
||||||
'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)',
|
'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)',
|
||||||
'I' => '(0|1)',
|
'I' => '(0|1)',
|
||||||
'O' => '([+-](1[012]|0[0-9])[0134][05])',
|
'O' => '([+-](1[0123]|0[0-9])[0134][05])',
|
||||||
'P' => '([+-](1[012]|0[0-9]):[0134][05])',
|
'P' => '([+-](1[0123]|0[0-9]):[0134][05])',
|
||||||
'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])',
|
'p' => '(Z|[+-](1[0123]|0[0-9]):[0134][05])',
|
||||||
'T' => '([a-zA-Z]{1,5})',
|
'T' => '([a-zA-Z]{1,5})',
|
||||||
'Z' => '(-?[1-5]?[0-9]{1,4})',
|
'Z' => '(-?[1-5]?[0-9]{1,4})',
|
||||||
'U' => '([0-9]*)',
|
'U' => '([0-9]*)',
|
||||||
|
|
|
@ -11,7 +11,7 @@ this library aims to offer character encoding functions that do not leak
|
||||||
information about what you are encoding/decoding via processor cache
|
information about what you are encoding/decoding via processor cache
|
||||||
misses. Further reading on [cache-timing attacks](http://blog.ircmaxell.com/2014/11/its-all-about-time.html).
|
misses. Further reading on [cache-timing attacks](http://blog.ircmaxell.com/2014/11/its-all-about-time.html).
|
||||||
|
|
||||||
Our fork offers the following enchancements:
|
Our fork offers the following enhancements:
|
||||||
|
|
||||||
* `mbstring.func_overload` resistance
|
* `mbstring.func_overload` resistance
|
||||||
* Unit tests
|
* Unit tests
|
||||||
|
|
|
@ -44,8 +44,11 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @param bool $strictPadding
|
* @param bool $strictPadding
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decode(string $encodedString, bool $strictPadding = false): string
|
public static function decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $encodedString,
|
||||||
|
bool $strictPadding = false
|
||||||
|
): string {
|
||||||
return static::doDecode($encodedString, false, $strictPadding);
|
return static::doDecode($encodedString, false, $strictPadding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,8 +59,11 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @param bool $strictPadding
|
* @param bool $strictPadding
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decodeUpper(string $src, bool $strictPadding = false): string
|
public static function decodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src,
|
||||||
|
bool $strictPadding = false
|
||||||
|
): string {
|
||||||
return static::doDecode($src, true, $strictPadding);
|
return static::doDecode($src, true, $strictPadding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,10 +74,13 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encode(string $binString): string
|
public static function encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $binString
|
||||||
|
): string {
|
||||||
return static::doEncode($binString, false, true);
|
return static::doEncode($binString, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encode into Base32 (RFC 4648)
|
* Encode into Base32 (RFC 4648)
|
||||||
*
|
*
|
||||||
|
@ -79,8 +88,10 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encodeUnpadded(string $src): string
|
public static function encodeUnpadded(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src
|
||||||
|
): string {
|
||||||
return static::doEncode($src, false, false);
|
return static::doEncode($src, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,8 +102,10 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encodeUpper(string $src): string
|
public static function encodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src
|
||||||
|
): string {
|
||||||
return static::doEncode($src, true, true);
|
return static::doEncode($src, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,8 +116,10 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encodeUpperUnpadded(string $src): string
|
public static function encodeUpperUnpadded(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src
|
||||||
|
): string {
|
||||||
return static::doEncode($src, true, false);
|
return static::doEncode($src, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,8 +206,11 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @param bool $upper
|
* @param bool $upper
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decodeNoPadding(string $encodedString, bool $upper = false): string
|
public static function decodeNoPadding(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $encodedString,
|
||||||
|
bool $upper = false
|
||||||
|
): string {
|
||||||
$srcLen = Binary::safeStrlen($encodedString);
|
$srcLen = Binary::safeStrlen($encodedString);
|
||||||
if ($srcLen === 0) {
|
if ($srcLen === 0) {
|
||||||
return '';
|
return '';
|
||||||
|
@ -222,9 +240,9 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
* @psalm-suppress RedundantCondition
|
|
||||||
*/
|
*/
|
||||||
protected static function doDecode(
|
protected static function doDecode(
|
||||||
|
#[\SensitiveParameter]
|
||||||
string $src,
|
string $src,
|
||||||
bool $upper = false,
|
bool $upper = false,
|
||||||
bool $strictPadding = false
|
bool $strictPadding = false
|
||||||
|
@ -434,8 +452,12 @@ abstract class Base32 implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
protected static function doEncode(string $src, bool $upper = false, $pad = true): string
|
protected static function doEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src,
|
||||||
|
bool $upper = false,
|
||||||
|
$pad = true
|
||||||
|
): string {
|
||||||
// We do this to reduce code duplication:
|
// We do this to reduce code duplication:
|
||||||
$method = $upper
|
$method = $upper
|
||||||
? 'encode5BitsUpper'
|
? 'encode5BitsUpper'
|
||||||
|
|
|
@ -47,8 +47,10 @@ abstract class Base64 implements EncoderInterface
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encode(string $binString): string
|
public static function encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $binString
|
||||||
|
): string {
|
||||||
return static::doEncode($binString, true);
|
return static::doEncode($binString, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,8 +64,10 @@ abstract class Base64 implements EncoderInterface
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encodeUnpadded(string $src): string
|
public static function encodeUnpadded(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src
|
||||||
|
): string {
|
||||||
return static::doEncode($src, false);
|
return static::doEncode($src, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,8 +78,11 @@ abstract class Base64 implements EncoderInterface
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
protected static function doEncode(string $src, bool $pad = true): string
|
protected static function doEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $src,
|
||||||
|
bool $pad = true
|
||||||
|
): string {
|
||||||
$dest = '';
|
$dest = '';
|
||||||
$srcLen = Binary::safeStrlen($src);
|
$srcLen = Binary::safeStrlen($src);
|
||||||
// Main loop (no padding):
|
// Main loop (no padding):
|
||||||
|
@ -129,10 +136,12 @@ abstract class Base64 implements EncoderInterface
|
||||||
*
|
*
|
||||||
* @throws RangeException
|
* @throws RangeException
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
* @psalm-suppress RedundantCondition
|
|
||||||
*/
|
*/
|
||||||
public static function decode(string $encodedString, bool $strictPadding = false): string
|
public static function decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $encodedString,
|
||||||
|
bool $strictPadding = false
|
||||||
|
): string {
|
||||||
// Remove padding
|
// Remove padding
|
||||||
$srcLen = Binary::safeStrlen($encodedString);
|
$srcLen = Binary::safeStrlen($encodedString);
|
||||||
if ($srcLen === 0) {
|
if ($srcLen === 0) {
|
||||||
|
@ -227,25 +236,21 @@ abstract class Base64 implements EncoderInterface
|
||||||
* @param string $encodedString
|
* @param string $encodedString
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decodeNoPadding(string $encodedString): string
|
public static function decodeNoPadding(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $encodedString
|
||||||
|
): string {
|
||||||
$srcLen = Binary::safeStrlen($encodedString);
|
$srcLen = Binary::safeStrlen($encodedString);
|
||||||
if ($srcLen === 0) {
|
if ($srcLen === 0) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
if (($srcLen & 3) === 0) {
|
if (($srcLen & 3) === 0) {
|
||||||
if ($encodedString[$srcLen - 1] === '=') {
|
// If $strLen is not zero, and it is divisible by 4, then it's at least 4.
|
||||||
|
if ($encodedString[$srcLen - 1] === '=' || $encodedString[$srcLen - 2] === '=') {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"decodeNoPadding() doesn't tolerate padding"
|
"decodeNoPadding() doesn't tolerate padding"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (($srcLen & 3) > 1) {
|
|
||||||
if ($encodedString[$srcLen - 2] === '=') {
|
|
||||||
throw new InvalidArgumentException(
|
|
||||||
"decodeNoPadding() doesn't tolerate padding"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return static::decode(
|
return static::decode(
|
||||||
$encodedString,
|
$encodedString,
|
||||||
|
|
|
@ -45,8 +45,10 @@ abstract class Binary
|
||||||
* @param string $str
|
* @param string $str
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function safeStrlen(string $str): int
|
public static function safeStrlen(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): int {
|
||||||
if (\function_exists('mb_strlen')) {
|
if (\function_exists('mb_strlen')) {
|
||||||
// mb_strlen in PHP 7.x can return false.
|
// mb_strlen in PHP 7.x can return false.
|
||||||
/** @psalm-suppress RedundantCast */
|
/** @psalm-suppress RedundantCast */
|
||||||
|
@ -70,6 +72,7 @@ abstract class Binary
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function safeSubstr(
|
public static function safeSubstr(
|
||||||
|
#[\SensitiveParameter]
|
||||||
string $str,
|
string $str,
|
||||||
int $start = 0,
|
int $start = 0,
|
||||||
$length = null
|
$length = null
|
||||||
|
|
|
@ -40,8 +40,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32Encode(string $str): string
|
public static function base32Encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::encode($str);
|
return Base32::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,8 +54,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32EncodeUpper(string $str): string
|
public static function base32EncodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::encodeUpper($str);
|
return Base32::encodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,8 +68,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32Decode(string $str): string
|
public static function base32Decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::decode($str);
|
return Base32::decode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,8 +82,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32DecodeUpper(string $str): string
|
public static function base32DecodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::decodeUpper($str);
|
return Base32::decodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,8 +96,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexEncode(string $str): string
|
public static function base32HexEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32Hex::encode($str);
|
return Base32Hex::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +110,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexEncodeUpper(string $str): string
|
public static function base32HexEncodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32Hex::encodeUpper($str);
|
return Base32Hex::encodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,8 +124,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexDecode(string $str): string
|
public static function base32HexDecode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32Hex::decode($str);
|
return Base32Hex::decode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,8 +138,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexDecodeUpper(string $str): string
|
public static function base32HexDecodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32Hex::decodeUpper($str);
|
return Base32Hex::decodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,8 +152,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64Encode(string $str): string
|
public static function base64Encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64::encode($str);
|
return Base64::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,8 +166,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64Decode(string $str): string
|
public static function base64Decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64::decode($str);
|
return Base64::decode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,8 +181,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64EncodeDotSlash(string $str): string
|
public static function base64EncodeDotSlash(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64DotSlash::encode($str);
|
return Base64DotSlash::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,8 +198,10 @@ abstract class Encoding
|
||||||
* @throws \RangeException
|
* @throws \RangeException
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64DecodeDotSlash(string $str): string
|
public static function base64DecodeDotSlash(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64DotSlash::decode($str);
|
return Base64DotSlash::decode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,8 +213,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64EncodeDotSlashOrdered(string $str): string
|
public static function base64EncodeDotSlashOrdered(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64DotSlashOrdered::encode($str);
|
return Base64DotSlashOrdered::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,8 +230,10 @@ abstract class Encoding
|
||||||
* @throws \RangeException
|
* @throws \RangeException
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64DecodeDotSlashOrdered(string $str): string
|
public static function base64DecodeDotSlashOrdered(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64DotSlashOrdered::decode($str);
|
return Base64DotSlashOrdered::decode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,8 +245,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function hexEncode(string $bin_string): string
|
public static function hexEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $bin_string
|
||||||
|
): string {
|
||||||
return Hex::encode($bin_string);
|
return Hex::encode($bin_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,8 +260,10 @@ abstract class Encoding
|
||||||
* @return string (raw binary)
|
* @return string (raw binary)
|
||||||
* @throws \RangeException
|
* @throws \RangeException
|
||||||
*/
|
*/
|
||||||
public static function hexDecode(string $hex_string): string
|
public static function hexDecode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $hex_string
|
||||||
|
): string {
|
||||||
return Hex::decode($hex_string);
|
return Hex::decode($hex_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,8 +275,10 @@ abstract class Encoding
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function hexEncodeUpper(string $bin_string): string
|
public static function hexEncodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $bin_string
|
||||||
|
): string {
|
||||||
return Hex::encodeUpper($bin_string);
|
return Hex::encodeUpper($bin_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,8 +289,10 @@ abstract class Encoding
|
||||||
* @param string $bin_string (raw binary)
|
* @param string $bin_string (raw binary)
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function hexDecodeUpper(string $bin_string): string
|
public static function hexDecodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $bin_string
|
||||||
|
): string {
|
||||||
return Hex::decode($bin_string);
|
return Hex::decode($bin_string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,10 @@ abstract class Hex implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encode(string $binString): string
|
public static function encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $binString
|
||||||
|
): string {
|
||||||
$hex = '';
|
$hex = '';
|
||||||
$len = Binary::safeStrlen($binString);
|
$len = Binary::safeStrlen($binString);
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
|
@ -69,8 +71,10 @@ abstract class Hex implements EncoderInterface
|
||||||
* @return string
|
* @return string
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function encodeUpper(string $binString): string
|
public static function encodeUpper(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $binString
|
||||||
|
): string {
|
||||||
$hex = '';
|
$hex = '';
|
||||||
$len = Binary::safeStrlen($binString);
|
$len = Binary::safeStrlen($binString);
|
||||||
|
|
||||||
|
@ -99,6 +103,7 @@ abstract class Hex implements EncoderInterface
|
||||||
* @throws RangeException
|
* @throws RangeException
|
||||||
*/
|
*/
|
||||||
public static function decode(
|
public static function decode(
|
||||||
|
#[\SensitiveParameter]
|
||||||
string $encodedString,
|
string $encodedString,
|
||||||
bool $strictPadding = false
|
bool $strictPadding = false
|
||||||
): string {
|
): string {
|
||||||
|
|
|
@ -46,8 +46,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64Encode(string $str): string
|
public static function base64Encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64::encode($str);
|
return Base64::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,8 +63,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64Decode(string $str): string
|
public static function base64Decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64::decode($str, true);
|
return Base64::decode($str, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,8 +80,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64UrlSafeEncode(string $str): string
|
public static function base64UrlSafeEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64UrlSafe::encode($str);
|
return Base64UrlSafe::encode($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,8 +97,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base64UrlSafeDecode(string $str): string
|
public static function base64UrlSafeDecode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base64UrlSafe::decode($str, true);
|
return Base64UrlSafe::decode($str, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,8 +114,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32Encode(string $str): string
|
public static function base32Encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::encodeUpper($str);
|
return Base32::encodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,8 +131,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32Decode(string $str): string
|
public static function base32Decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::decodeUpper($str, true);
|
return Base32::decodeUpper($str, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,8 +148,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexEncode(string $str): string
|
public static function base32HexEncode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::encodeUpper($str);
|
return Base32::encodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,8 +165,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base32HexDecode(string $str): string
|
public static function base32HexDecode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Base32::decodeUpper($str, true);
|
return Base32::decodeUpper($str, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,8 +182,10 @@ abstract class RFC4648
|
||||||
*
|
*
|
||||||
* @throws TypeError
|
* @throws TypeError
|
||||||
*/
|
*/
|
||||||
public static function base16Encode(string $str): string
|
public static function base16Encode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Hex::encodeUpper($str);
|
return Hex::encodeUpper($str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,8 +197,10 @@ abstract class RFC4648
|
||||||
* @param string $str
|
* @param string $str
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function base16Decode(string $str): string
|
public static function base16Decode(
|
||||||
{
|
#[\SensitiveParameter]
|
||||||
|
string $str
|
||||||
|
): string {
|
||||||
return Hex::decode($str, true);
|
return Hex::decode($str, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## 1.19.4 - 2024-03-29
|
||||||
|
|
||||||
|
- [#264](https://github.com/php-http/discovery/pull/264) - Do not report a general conflict with `sebastian/comparator` but make sure we install the correct version for our tests.
|
||||||
|
|
||||||
|
## 1.19.3 - 2024-03-28
|
||||||
|
|
||||||
|
- [#261](https://github.com/php-http/discovery/pull/261) - explicitly mark nullable parameters as nullable (avoid deprecation in PHP 8.4)
|
||||||
|
|
||||||
## 1.19.2 - 2023-11-30
|
## 1.19.2 - 2023-11-30
|
||||||
|
|
||||||
- [#253](https://github.com/php-http/discovery/pull/253) - Symfony 7 dropped the deprecated PHP-HTTP `HttpClient` interface from their HTTP client, do not discover the version 7 client when lookig for the old interface.
|
- [#253](https://github.com/php-http/discovery/pull/253) - Symfony 7 dropped the deprecated PHP-HTTP `HttpClient` interface from their HTTP client, do not discover the version 7 client when looking for the old interface.
|
||||||
|
|
||||||
## 1.19.1 - 2023-07-11
|
## 1.19.1 - 2023-07-11
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,8 @@
|
||||||
"php-http/httplug": "^1.0 || ^2.0",
|
"php-http/httplug": "^1.0 || ^2.0",
|
||||||
"php-http/message-factory": "^1.0",
|
"php-http/message-factory": "^1.0",
|
||||||
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
||||||
"symfony/phpunit-bridge": "^6.2"
|
"symfony/phpunit-bridge": "^6.4.4 || ^7.0.1",
|
||||||
|
"sebastian/comparator": "^3.0.5 || ^4.0.8"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
namespace Http\Discovery;
|
namespace Http\Discovery;
|
||||||
|
|
||||||
|
use Http\Discovery\Exception\NotFoundException as RealNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Thrown when a discovery does not find any matches.
|
* Thrown when a discovery does not find any matches.
|
||||||
*
|
*
|
||||||
|
@ -9,6 +11,6 @@ namespace Http\Discovery;
|
||||||
*
|
*
|
||||||
* @deprecated since since version 1.0, and will be removed in 2.0. Use {@link \Http\Discovery\Exception\NotFoundException} instead.
|
* @deprecated since since version 1.0, and will be removed in 2.0. Use {@link \Http\Discovery\Exception\NotFoundException} instead.
|
||||||
*/
|
*/
|
||||||
final class NotFoundException extends \Http\Discovery\Exception\NotFoundException
|
final class NotFoundException extends RealNotFoundException
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,12 @@ class Psr17Factory implements RequestFactoryInterface, ResponseFactoryInterface,
|
||||||
private $uriFactory;
|
private $uriFactory;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
RequestFactoryInterface $requestFactory = null,
|
?RequestFactoryInterface $requestFactory = null,
|
||||||
ResponseFactoryInterface $responseFactory = null,
|
?ResponseFactoryInterface $responseFactory = null,
|
||||||
ServerRequestFactoryInterface $serverRequestFactory = null,
|
?ServerRequestFactoryInterface $serverRequestFactory = null,
|
||||||
StreamFactoryInterface $streamFactory = null,
|
?StreamFactoryInterface $streamFactory = null,
|
||||||
UploadedFileFactoryInterface $uploadedFileFactory = null,
|
?UploadedFileFactoryInterface $uploadedFileFactory = null,
|
||||||
UriFactoryInterface $uriFactory = null
|
?UriFactoryInterface $uriFactory = null
|
||||||
) {
|
) {
|
||||||
$this->requestFactory = $requestFactory;
|
$this->requestFactory = $requestFactory;
|
||||||
$this->responseFactory = $responseFactory;
|
$this->responseFactory = $responseFactory;
|
||||||
|
@ -98,7 +98,7 @@ class Psr17Factory implements RequestFactoryInterface, ResponseFactoryInterface,
|
||||||
return $factory->createServerRequest(...\func_get_args());
|
return $factory->createServerRequest(...\func_get_args());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createServerRequestFromGlobals(array $server = null, array $get = null, array $post = null, array $cookie = null, array $files = null, StreamInterface $body = null): ServerRequestInterface
|
public function createServerRequestFromGlobals(?array $server = null, ?array $get = null, ?array $post = null, ?array $cookie = null, ?array $files = null, ?StreamInterface $body = null): ServerRequestInterface
|
||||||
{
|
{
|
||||||
$server = $server ?? $_SERVER;
|
$server = $server ?? $_SERVER;
|
||||||
$request = $this->createServerRequest($server['REQUEST_METHOD'] ?? 'GET', $this->createUriFromGlobals($server), $server);
|
$request = $this->createServerRequest($server['REQUEST_METHOD'] ?? 'GET', $this->createUriFromGlobals($server), $server);
|
||||||
|
@ -134,7 +134,7 @@ class Psr17Factory implements RequestFactoryInterface, ResponseFactoryInterface,
|
||||||
return $factory->createStreamFromResource($resource);
|
return $factory->createStreamFromResource($resource);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createUploadedFile(StreamInterface $stream, int $size = null, int $error = \UPLOAD_ERR_OK, string $clientFilename = null, string $clientMediaType = null): UploadedFileInterface
|
public function createUploadedFile(StreamInterface $stream, ?int $size = null, int $error = \UPLOAD_ERR_OK, ?string $clientFilename = null, ?string $clientMediaType = null): UploadedFileInterface
|
||||||
{
|
{
|
||||||
$factory = $this->uploadedFileFactory ?? $this->setFactory(Psr17FactoryDiscovery::findUploadedFileFactory());
|
$factory = $this->uploadedFileFactory ?? $this->setFactory(Psr17FactoryDiscovery::findUploadedFileFactory());
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ class Psr17Factory implements RequestFactoryInterface, ResponseFactoryInterface,
|
||||||
return $factory->createUri(...\func_get_args());
|
return $factory->createUri(...\func_get_args());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createUriFromGlobals(array $server = null): UriInterface
|
public function createUriFromGlobals(?array $server = null): UriInterface
|
||||||
{
|
{
|
||||||
return $this->buildUriFromGlobals($this->createUri(''), $server ?? $_SERVER);
|
return $this->buildUriFromGlobals($this->createUri(''), $server ?? $_SERVER);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace Http\Discovery;
|
namespace Http\Discovery;
|
||||||
|
|
||||||
use Http\Discovery\Exception\DiscoveryFailedException;
|
use Http\Discovery\Exception\DiscoveryFailedException;
|
||||||
|
use Http\Discovery\Exception\NotFoundException as RealNotFoundException;
|
||||||
use Psr\Http\Message\RequestFactoryInterface;
|
use Psr\Http\Message\RequestFactoryInterface;
|
||||||
use Psr\Http\Message\ResponseFactoryInterface;
|
use Psr\Http\Message\ResponseFactoryInterface;
|
||||||
use Psr\Http\Message\ServerRequestFactoryInterface;
|
use Psr\Http\Message\ServerRequestFactoryInterface;
|
||||||
|
@ -19,7 +20,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
{
|
{
|
||||||
private static function createException($type, Exception $e)
|
private static function createException($type, Exception $e)
|
||||||
{
|
{
|
||||||
return new \Http\Discovery\Exception\NotFoundException(
|
return new RealNotFoundException(
|
||||||
'No PSR-17 '.$type.' found. Install a package from this list: https://packagist.org/providers/psr/http-factory-implementation',
|
'No PSR-17 '.$type.' found. Install a package from this list: https://packagist.org/providers/psr/http-factory-implementation',
|
||||||
0,
|
0,
|
||||||
$e
|
$e
|
||||||
|
@ -29,7 +30,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return RequestFactoryInterface
|
* @return RequestFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findRequestFactory()
|
public static function findRequestFactory()
|
||||||
{
|
{
|
||||||
|
@ -45,7 +46,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return ResponseFactoryInterface
|
* @return ResponseFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findResponseFactory()
|
public static function findResponseFactory()
|
||||||
{
|
{
|
||||||
|
@ -61,7 +62,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return ServerRequestFactoryInterface
|
* @return ServerRequestFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findServerRequestFactory()
|
public static function findServerRequestFactory()
|
||||||
{
|
{
|
||||||
|
@ -77,7 +78,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return StreamFactoryInterface
|
* @return StreamFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findStreamFactory()
|
public static function findStreamFactory()
|
||||||
{
|
{
|
||||||
|
@ -93,7 +94,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return UploadedFileFactoryInterface
|
* @return UploadedFileFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findUploadedFileFactory()
|
public static function findUploadedFileFactory()
|
||||||
{
|
{
|
||||||
|
@ -109,7 +110,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return UriFactoryInterface
|
* @return UriFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function findUriFactory()
|
public static function findUriFactory()
|
||||||
{
|
{
|
||||||
|
@ -125,7 +126,7 @@ final class Psr17FactoryDiscovery extends ClassDiscovery
|
||||||
/**
|
/**
|
||||||
* @return UriFactoryInterface
|
* @return UriFactoryInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*
|
*
|
||||||
* @deprecated This will be removed in 2.0. Consider using the findUriFactory() method.
|
* @deprecated This will be removed in 2.0. Consider using the findUriFactory() method.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -25,13 +25,13 @@ class Psr18Client extends Psr17Factory implements ClientInterface
|
||||||
private $client;
|
private $client;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
ClientInterface $client = null,
|
?ClientInterface $client = null,
|
||||||
RequestFactoryInterface $requestFactory = null,
|
?RequestFactoryInterface $requestFactory = null,
|
||||||
ResponseFactoryInterface $responseFactory = null,
|
?ResponseFactoryInterface $responseFactory = null,
|
||||||
ServerRequestFactoryInterface $serverRequestFactory = null,
|
?ServerRequestFactoryInterface $serverRequestFactory = null,
|
||||||
StreamFactoryInterface $streamFactory = null,
|
?StreamFactoryInterface $streamFactory = null,
|
||||||
UploadedFileFactoryInterface $uploadedFileFactory = null,
|
?UploadedFileFactoryInterface $uploadedFileFactory = null,
|
||||||
UriFactoryInterface $uriFactory = null
|
?UriFactoryInterface $uriFactory = null
|
||||||
) {
|
) {
|
||||||
parent::__construct($requestFactory, $responseFactory, $serverRequestFactory, $streamFactory, $uploadedFileFactory, $uriFactory);
|
parent::__construct($requestFactory, $responseFactory, $serverRequestFactory, $streamFactory, $uploadedFileFactory, $uriFactory);
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace Http\Discovery;
|
namespace Http\Discovery;
|
||||||
|
|
||||||
use Http\Discovery\Exception\DiscoveryFailedException;
|
use Http\Discovery\Exception\DiscoveryFailedException;
|
||||||
|
use Http\Discovery\Exception\NotFoundException as RealNotFoundException;
|
||||||
use Psr\Http\Client\ClientInterface;
|
use Psr\Http\Client\ClientInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,14 +18,14 @@ final class Psr18ClientDiscovery extends ClassDiscovery
|
||||||
*
|
*
|
||||||
* @return ClientInterface
|
* @return ClientInterface
|
||||||
*
|
*
|
||||||
* @throws Exception\NotFoundException
|
* @throws RealNotFoundException
|
||||||
*/
|
*/
|
||||||
public static function find()
|
public static function find()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$client = static::findOneByType(ClientInterface::class);
|
$client = static::findOneByType(ClientInterface::class);
|
||||||
} catch (DiscoveryFailedException $e) {
|
} catch (DiscoveryFailedException $e) {
|
||||||
throw new \Http\Discovery\Exception\NotFoundException('No PSR-18 clients found. Make sure to install a package providing "psr/http-client-implementation". Example: "php-http/guzzle7-adapter".', 0, $e);
|
throw new RealNotFoundException('No PSR-18 clients found. Make sure to install a package providing "psr/http-client-implementation". Example: "php-http/guzzle7-adapter".', 0, $e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static::instantiateClass($client);
|
return static::instantiateClass($client);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "psr/http-factory",
|
"name": "psr/http-factory",
|
||||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"psr",
|
"psr",
|
||||||
"psr-7",
|
"psr-7",
|
||||||
|
@ -18,8 +18,11 @@
|
||||||
"homepage": "https://www.php-fig.org/"
|
"homepage": "https://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/php-fig/http-factory"
|
||||||
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=7.0.0",
|
"php": ">=7.1",
|
||||||
"psr/http-message": "^1.0 || ^2.0"
|
"psr/http-message": "^1.0 || ^2.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
|
@ -15,10 +15,10 @@ interface UploadedFileFactoryInterface
|
||||||
*
|
*
|
||||||
* @param StreamInterface $stream Underlying stream representing the
|
* @param StreamInterface $stream Underlying stream representing the
|
||||||
* uploaded file content.
|
* uploaded file content.
|
||||||
* @param int $size in bytes
|
* @param int|null $size in bytes
|
||||||
* @param int $error PHP file upload error
|
* @param int $error PHP file upload error
|
||||||
* @param string $clientFilename Filename as provided by the client, if any.
|
* @param string|null $clientFilename Filename as provided by the client, if any.
|
||||||
* @param string $clientMediaType Media type as provided by the client, if any.
|
* @param string|null $clientMediaType Media type as provided by the client, if any.
|
||||||
*
|
*
|
||||||
* @return UploadedFileInterface
|
* @return UploadedFileInterface
|
||||||
*
|
*
|
||||||
|
@ -26,9 +26,9 @@ interface UploadedFileFactoryInterface
|
||||||
*/
|
*/
|
||||||
public function createUploadedFile(
|
public function createUploadedFile(
|
||||||
StreamInterface $stream,
|
StreamInterface $stream,
|
||||||
int $size = null,
|
?int $size = null,
|
||||||
int $error = \UPLOAD_ERR_OK,
|
int $error = \UPLOAD_ERR_OK,
|
||||||
string $clientFilename = null,
|
?string $clientFilename = null,
|
||||||
string $clientMediaType = null
|
?string $clientMediaType = null
|
||||||
): UploadedFileInterface;
|
): UploadedFileInterface;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
|
|
@ -90,7 +90,7 @@ interface HttpClientInterface
|
||||||
* @param ResponseInterface|iterable<array-key, ResponseInterface> $responses One or more responses created by the current HTTP client
|
* @param ResponseInterface|iterable<array-key, ResponseInterface> $responses One or more responses created by the current HTTP client
|
||||||
* @param float|null $timeout The idle timeout before yielding timeout chunks
|
* @param float|null $timeout The idle timeout before yielding timeout chunks
|
||||||
*/
|
*/
|
||||||
public function stream(ResponseInterface|iterable $responses, float $timeout = null): ResponseStreamInterface;
|
public function stream(ResponseInterface|iterable $responses, ?float $timeout = null): ResponseStreamInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a new instance of the client with new default options.
|
* Returns a new instance of the client with new default options.
|
||||||
|
|
|
@ -105,5 +105,5 @@ interface ResponseInterface
|
||||||
* @return mixed An array of all available info, or one of them when $type is
|
* @return mixed An array of all available info, or one of them when $type is
|
||||||
* provided, or null when an unsupported type is requested
|
* provided, or null when an unsupported type is requested
|
||||||
*/
|
*/
|
||||||
public function getInfo(string $type = null): mixed;
|
public function getInfo(?string $type = null): mixed;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,12 @@ abstract class HttpClientTestCase extends TestCase
|
||||||
TestHttpServer::start();
|
TestHttpServer::start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function tearDownAfterClass(): void
|
||||||
|
{
|
||||||
|
TestHttpServer::stop(8067);
|
||||||
|
TestHttpServer::stop(8077);
|
||||||
|
}
|
||||||
|
|
||||||
abstract protected function getHttpClient(string $testCase): HttpClientInterface;
|
abstract protected function getHttpClient(string $testCase): HttpClientInterface;
|
||||||
|
|
||||||
public function testGetRequest()
|
public function testGetRequest()
|
||||||
|
|
|
@ -45,4 +45,11 @@ class TestHttpServer
|
||||||
|
|
||||||
return $process;
|
return $process;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function stop(int $port = 8057)
|
||||||
|
{
|
||||||
|
if (isset(self::$process[$port])) {
|
||||||
|
self::$process[$port]->stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
|
|
@ -51,6 +51,9 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
|
|
||||||
private ?LoggerInterface $logger = null;
|
private ?LoggerInterface $logger = null;
|
||||||
|
|
||||||
|
private int $maxHostConnections;
|
||||||
|
private int $maxPendingPushes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An internal object to share state between the client and its responses.
|
* An internal object to share state between the client and its responses.
|
||||||
*/
|
*/
|
||||||
|
@ -69,18 +72,22 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\CurlHttpClient" as the "curl" extension is not installed.');
|
throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\CurlHttpClient" as the "curl" extension is not installed.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->maxHostConnections = $maxHostConnections;
|
||||||
|
$this->maxPendingPushes = $maxPendingPushes;
|
||||||
|
|
||||||
$this->defaultOptions['buffer'] ??= self::shouldBuffer(...);
|
$this->defaultOptions['buffer'] ??= self::shouldBuffer(...);
|
||||||
|
|
||||||
if ($defaultOptions) {
|
if ($defaultOptions) {
|
||||||
[, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions);
|
[, $this->defaultOptions] = self::prepareRequest(null, null, $defaultOptions, $this->defaultOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->multi = new CurlClientState($maxHostConnections, $maxPendingPushes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setLogger(LoggerInterface $logger): void
|
public function setLogger(LoggerInterface $logger): void
|
||||||
{
|
{
|
||||||
$this->logger = $this->multi->logger = $logger;
|
$this->logger = $logger;
|
||||||
|
if (isset($this->multi)) {
|
||||||
|
$this->multi->logger = $logger;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,6 +95,8 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
*/
|
*/
|
||||||
public function request(string $method, string $url, array $options = []): ResponseInterface
|
public function request(string $method, string $url, array $options = []): ResponseInterface
|
||||||
{
|
{
|
||||||
|
$multi = $this->ensureState();
|
||||||
|
|
||||||
[$url, $options] = self::prepareRequest($method, $url, $options, $this->defaultOptions);
|
[$url, $options] = self::prepareRequest($method, $url, $options, $this->defaultOptions);
|
||||||
$scheme = $url['scheme'];
|
$scheme = $url['scheme'];
|
||||||
$authority = $url['authority'];
|
$authority = $url['authority'];
|
||||||
|
@ -165,24 +174,24 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
}
|
}
|
||||||
|
|
||||||
// curl's resolve feature varies by host:port but ours varies by host only, let's handle this with our own DNS map
|
// curl's resolve feature varies by host:port but ours varies by host only, let's handle this with our own DNS map
|
||||||
if (isset($this->multi->dnsCache->hostnames[$host])) {
|
if (isset($multi->dnsCache->hostnames[$host])) {
|
||||||
$options['resolve'] += [$host => $this->multi->dnsCache->hostnames[$host]];
|
$options['resolve'] += [$host => $multi->dnsCache->hostnames[$host]];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($options['resolve'] || $this->multi->dnsCache->evictions) {
|
if ($options['resolve'] || $multi->dnsCache->evictions) {
|
||||||
// First reset any old DNS cache entries then add the new ones
|
// First reset any old DNS cache entries then add the new ones
|
||||||
$resolve = $this->multi->dnsCache->evictions;
|
$resolve = $multi->dnsCache->evictions;
|
||||||
$this->multi->dnsCache->evictions = [];
|
$multi->dnsCache->evictions = [];
|
||||||
|
|
||||||
if ($resolve && 0x072A00 > CurlClientState::$curlVersion['version_number']) {
|
if ($resolve && 0x072A00 > CurlClientState::$curlVersion['version_number']) {
|
||||||
// DNS cache removals require curl 7.42 or higher
|
// DNS cache removals require curl 7.42 or higher
|
||||||
$this->multi->reset();
|
$multi->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($options['resolve'] as $host => $ip) {
|
foreach ($options['resolve'] as $host => $ip) {
|
||||||
$resolve[] = null === $ip ? "-$host:$port" : "$host:$port:$ip";
|
$resolve[] = null === $ip ? "-$host:$port" : "$host:$port:$ip";
|
||||||
$this->multi->dnsCache->hostnames[$host] = $ip;
|
$multi->dnsCache->hostnames[$host] = $ip;
|
||||||
$this->multi->dnsCache->removals["-$host:$port"] = "-$host:$port";
|
$multi->dnsCache->removals["-$host:$port"] = "-$host:$port";
|
||||||
}
|
}
|
||||||
|
|
||||||
$curlopts[\CURLOPT_RESOLVE] = $resolve;
|
$curlopts[\CURLOPT_RESOLVE] = $resolve;
|
||||||
|
@ -241,9 +250,8 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
|
|
||||||
if (isset($options['normalized_headers']['content-length'][0])) {
|
if (isset($options['normalized_headers']['content-length'][0])) {
|
||||||
$curlopts[\CURLOPT_INFILESIZE] = (int) substr($options['normalized_headers']['content-length'][0], \strlen('Content-Length: '));
|
$curlopts[\CURLOPT_INFILESIZE] = (int) substr($options['normalized_headers']['content-length'][0], \strlen('Content-Length: '));
|
||||||
}
|
} elseif (!isset($options['normalized_headers']['transfer-encoding'])) {
|
||||||
if (!isset($options['normalized_headers']['transfer-encoding'])) {
|
$curlopts[\CURLOPT_INFILESIZE] = -1;
|
||||||
$curlopts[\CURLOPT_HTTPHEADER][] = 'Transfer-Encoding:'.(isset($curlopts[\CURLOPT_INFILESIZE]) ? '' : ' chunked');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('POST' !== $method) {
|
if ('POST' !== $method) {
|
||||||
|
@ -285,8 +293,8 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
$curlopts += $options['extra']['curl'];
|
$curlopts += $options['extra']['curl'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($pushedResponse = $this->multi->pushedResponses[$url] ?? null) {
|
if ($pushedResponse = $multi->pushedResponses[$url] ?? null) {
|
||||||
unset($this->multi->pushedResponses[$url]);
|
unset($multi->pushedResponses[$url]);
|
||||||
|
|
||||||
if (self::acceptPushForRequest($method, $options, $pushedResponse)) {
|
if (self::acceptPushForRequest($method, $options, $pushedResponse)) {
|
||||||
$this->logger?->debug(sprintf('Accepting pushed response: "%s %s"', $method, $url));
|
$this->logger?->debug(sprintf('Accepting pushed response: "%s %s"', $method, $url));
|
||||||
|
@ -294,7 +302,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
// Reinitialize the pushed response with request's options
|
// Reinitialize the pushed response with request's options
|
||||||
$ch = $pushedResponse->handle;
|
$ch = $pushedResponse->handle;
|
||||||
$pushedResponse = $pushedResponse->response;
|
$pushedResponse = $pushedResponse->response;
|
||||||
$pushedResponse->__construct($this->multi, $url, $options, $this->logger);
|
$pushedResponse->__construct($multi, $url, $options, $this->logger);
|
||||||
} else {
|
} else {
|
||||||
$this->logger?->debug(sprintf('Rejecting pushed response: "%s"', $url));
|
$this->logger?->debug(sprintf('Rejecting pushed response: "%s"', $url));
|
||||||
$pushedResponse = null;
|
$pushedResponse = null;
|
||||||
|
@ -304,7 +312,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
if (!$pushedResponse) {
|
if (!$pushedResponse) {
|
||||||
$ch = curl_init();
|
$ch = curl_init();
|
||||||
$this->logger?->info(sprintf('Request: "%s %s"', $method, $url));
|
$this->logger?->info(sprintf('Request: "%s %s"', $method, $url));
|
||||||
$curlopts += [\CURLOPT_SHARE => $this->multi->share];
|
$curlopts += [\CURLOPT_SHARE => $multi->share];
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($curlopts as $opt => $value) {
|
foreach ($curlopts as $opt => $value) {
|
||||||
|
@ -314,7 +322,7 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $pushedResponse ?? new CurlResponse($this->multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $host, $port), CurlClientState::$curlVersion['version_number'], $url);
|
return $pushedResponse ?? new CurlResponse($multi, $ch, $options, $this->logger, $method, self::createRedirectResolver($options, $host, $port), CurlClientState::$curlVersion['version_number'], $url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stream(ResponseInterface|iterable $responses, ?float $timeout = null): ResponseStreamInterface
|
public function stream(ResponseInterface|iterable $responses, ?float $timeout = null): ResponseStreamInterface
|
||||||
|
@ -323,9 +331,11 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
$responses = [$responses];
|
$responses = [$responses];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->multi->handle instanceof \CurlMultiHandle) {
|
$multi = $this->ensureState();
|
||||||
|
|
||||||
|
if ($multi->handle instanceof \CurlMultiHandle) {
|
||||||
$active = 0;
|
$active = 0;
|
||||||
while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active)) {
|
while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($multi->handle, $active)) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,7 +344,9 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
|
|
||||||
public function reset(): void
|
public function reset(): void
|
||||||
{
|
{
|
||||||
$this->multi->reset();
|
if (isset($this->multi)) {
|
||||||
|
$this->multi->reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -434,6 +446,16 @@ final class CurlHttpClient implements HttpClientInterface, LoggerAwareInterface,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function ensureState(): CurlClientState
|
||||||
|
{
|
||||||
|
if (!isset($this->multi)) {
|
||||||
|
$this->multi = new CurlClientState($this->maxHostConnections, $this->maxPendingPushes);
|
||||||
|
$this->multi->logger = $this->logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->multi;
|
||||||
|
}
|
||||||
|
|
||||||
private function findConstantName(int $opt): ?string
|
private function findConstantName(int $opt): ?string
|
||||||
{
|
{
|
||||||
$constants = array_filter(get_defined_constants(), static fn ($v, $k) => $v === $opt && 'C' === $k[0] && (str_starts_with($k, 'CURLOPT_') || str_starts_with($k, 'CURLINFO_')), \ARRAY_FILTER_USE_BOTH);
|
$constants = array_filter(get_defined_constants(), static fn ($v, $k) => $v === $opt && 'C' === $k[0] && (str_starts_with($k, 'CURLOPT_') || str_starts_with($k, 'CURLINFO_')), \ARRAY_FILTER_USE_BOTH);
|
||||||
|
|
|
@ -121,7 +121,7 @@ final class EventSourceHttpClient implements HttpClientInterface, ResetInterface
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$rx = '/((?:\r\n|[\r\n]){2,})/';
|
$rx = '/((?:\r\n){2,}|\r{2,}|\n{2,})/';
|
||||||
$content = $state->buffer.$chunk->getContent();
|
$content = $state->buffer.$chunk->getContent();
|
||||||
|
|
||||||
if ($chunk->isLast()) {
|
if ($chunk->isLast()) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ class JsonMockResponse extends MockResponse
|
||||||
public function __construct(mixed $body = [], array $info = [])
|
public function __construct(mixed $body = [], array $info = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$json = json_encode($body, \JSON_THROW_ON_ERROR);
|
$json = json_encode($body, \JSON_THROW_ON_ERROR | \JSON_PRESERVE_ZERO_FRACTION);
|
||||||
} catch (\JsonException $e) {
|
} catch (\JsonException $e) {
|
||||||
throw new InvalidArgumentException('JSON encoding failed: '.$e->getMessage(), $e->getCode(), $e);
|
throw new InvalidArgumentException('JSON encoding failed: '.$e->getMessage(), $e->getCode(), $e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/log": "^1|^2|^3",
|
"psr/log": "^1|^2|^3",
|
||||||
"symfony/deprecation-contracts": "^2.5|^3",
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
"symfony/http-client-contracts": "^3",
|
"symfony/http-client-contracts": "^3.4.1",
|
||||||
"symfony/service-contracts": "^2.5|^3"
|
"symfony/service-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
"amphp/http-client": "^4.2.1",
|
"amphp/http-client": "^4.2.1",
|
||||||
"amphp/http-tunnel": "^1.0",
|
"amphp/http-tunnel": "^1.0",
|
||||||
"amphp/socket": "^1.1",
|
"amphp/socket": "^1.1",
|
||||||
"guzzlehttp/promises": "^1.4",
|
"guzzlehttp/promises": "^1.4|^2.0",
|
||||||
"nyholm/psr7": "^1.0",
|
"nyholm/psr7": "^1.0",
|
||||||
"php-http/httplug": "^1.0|^2.0",
|
"php-http/httplug": "^1.0|^2.0",
|
||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
|
|
|
@ -286,7 +286,11 @@ class HeaderUtils
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($partMatches as $matches) {
|
foreach ($partMatches as $matches) {
|
||||||
$parts[] = '' === $separators ? self::unquote($matches[0][0]) : self::groupParts($matches, $separators, false);
|
if ('' === $separators && '' !== $unquoted = self::unquote($matches[0][0])) {
|
||||||
|
$parts[] = $unquoted;
|
||||||
|
} elseif ($groupedParts = self::groupParts($matches, $separators, false)) {
|
||||||
|
$parts[] = $groupedParts;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $parts;
|
return $parts;
|
||||||
|
|
|
@ -85,6 +85,7 @@ class RedirectResponse extends Response
|
||||||
</html>', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8')));
|
</html>', htmlspecialchars($url, \ENT_QUOTES, 'UTF-8')));
|
||||||
|
|
||||||
$this->headers->set('Location', $url);
|
$this->headers->set('Location', $url);
|
||||||
|
$this->headers->set('Content-Type', 'text/html; charset=utf-8');
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,15 +11,15 @@
|
||||||
|
|
||||||
namespace Symfony\Contracts\Service\Attribute;
|
namespace Symfony\Contracts\Service\Attribute;
|
||||||
|
|
||||||
|
use Symfony\Contracts\Service\ServiceMethodsSubscriberTrait;
|
||||||
use Symfony\Contracts\Service\ServiceSubscriberInterface;
|
use Symfony\Contracts\Service\ServiceSubscriberInterface;
|
||||||
use Symfony\Contracts\Service\ServiceSubscriberTrait;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For use as the return value for {@see ServiceSubscriberInterface}.
|
* For use as the return value for {@see ServiceSubscriberInterface}.
|
||||||
*
|
*
|
||||||
* @example new SubscribedService('http_client', HttpClientInterface::class, false, new Target('githubApi'))
|
* @example new SubscribedService('http_client', HttpClientInterface::class, false, new Target('githubApi'))
|
||||||
*
|
*
|
||||||
* Use with {@see ServiceSubscriberTrait} to mark a method's return type
|
* Use with {@see ServiceMethodsSubscriberTrait} to mark a method's return type
|
||||||
* as a subscribed service.
|
* as a subscribed service.
|
||||||
*
|
*
|
||||||
* @author Kevin Bond <kevinbond@gmail.com>
|
* @author Kevin Bond <kevinbond@gmail.com>
|
||||||
|
|
26
lam/lib/3rdParty/composer/symfony/service-contracts/ServiceCollectionInterface.php
vendored
Normal file
26
lam/lib/3rdParty/composer/symfony/service-contracts/ServiceCollectionInterface.php
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Contracts\Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A ServiceProviderInterface that is also countable and iterable.
|
||||||
|
*
|
||||||
|
* @author Kevin Bond <kevinbond@gmail.com>
|
||||||
|
*
|
||||||
|
* @template-covariant T of mixed
|
||||||
|
*
|
||||||
|
* @extends ServiceProviderInterface<T>
|
||||||
|
* @extends \IteratorAggregate<string, T>
|
||||||
|
*/
|
||||||
|
interface ServiceCollectionInterface extends ServiceProviderInterface, \Countable, \IteratorAggregate
|
||||||
|
{
|
||||||
|
}
|
80
lam/lib/3rdParty/composer/symfony/service-contracts/ServiceMethodsSubscriberTrait.php
vendored
Normal file
80
lam/lib/3rdParty/composer/symfony/service-contracts/ServiceMethodsSubscriberTrait.php
vendored
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Contracts\Service;
|
||||||
|
|
||||||
|
use Psr\Container\ContainerInterface;
|
||||||
|
use Symfony\Contracts\Service\Attribute\Required;
|
||||||
|
use Symfony\Contracts\Service\Attribute\SubscribedService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of ServiceSubscriberInterface that determines subscribed services
|
||||||
|
* from methods that have the #[SubscribedService] attribute.
|
||||||
|
*
|
||||||
|
* Service ids are available as "ClassName::methodName" so that the implementation
|
||||||
|
* of subscriber methods can be just `return $this->container->get(__METHOD__);`.
|
||||||
|
*
|
||||||
|
* @author Kevin Bond <kevinbond@gmail.com>
|
||||||
|
*/
|
||||||
|
trait ServiceMethodsSubscriberTrait
|
||||||
|
{
|
||||||
|
protected ContainerInterface $container;
|
||||||
|
|
||||||
|
public static function getSubscribedServices(): array
|
||||||
|
{
|
||||||
|
$services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : [];
|
||||||
|
|
||||||
|
foreach ((new \ReflectionClass(self::class))->getMethods() as $method) {
|
||||||
|
if (self::class !== $method->getDeclaringClass()->name) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$attribute = $method->getAttributes(SubscribedService::class)[0] ?? null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) {
|
||||||
|
throw new \LogicException(sprintf('Cannot use "%s" on method "%s::%s()" (can only be used on non-static, non-abstract methods with no parameters).', SubscribedService::class, self::class, $method->name));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$returnType = $method->getReturnType()) {
|
||||||
|
throw new \LogicException(sprintf('Cannot use "%s" on methods without a return type in "%s::%s()".', SubscribedService::class, $method->name, self::class));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @var SubscribedService $attribute */
|
||||||
|
$attribute = $attribute->newInstance();
|
||||||
|
$attribute->key ??= self::class.'::'.$method->name;
|
||||||
|
$attribute->type ??= $returnType instanceof \ReflectionNamedType ? $returnType->getName() : (string) $returnType;
|
||||||
|
$attribute->nullable = $returnType->allowsNull();
|
||||||
|
|
||||||
|
if ($attribute->attributes) {
|
||||||
|
$services[] = $attribute;
|
||||||
|
} else {
|
||||||
|
$services[$attribute->key] = ($attribute->nullable ? '?' : '').$attribute->type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $services;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Required]
|
||||||
|
public function setContainer(ContainerInterface $container): ?ContainerInterface
|
||||||
|
{
|
||||||
|
$ret = null;
|
||||||
|
if (method_exists(get_parent_class(self::class) ?: '', __FUNCTION__)) {
|
||||||
|
$ret = parent::setContainer($container);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->container = $container;
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,17 +15,23 @@ use Psr\Container\ContainerInterface;
|
||||||
use Symfony\Contracts\Service\Attribute\Required;
|
use Symfony\Contracts\Service\Attribute\Required;
|
||||||
use Symfony\Contracts\Service\Attribute\SubscribedService;
|
use Symfony\Contracts\Service\Attribute\SubscribedService;
|
||||||
|
|
||||||
|
trigger_deprecation('symfony/contracts', 'v3.5', '"%s" is deprecated, use "ServiceMethodsSubscriberTrait" instead.', ServiceSubscriberTrait::class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of ServiceSubscriberInterface that determines subscribed services from
|
* Implementation of ServiceSubscriberInterface that determines subscribed services
|
||||||
* method return types. Service ids are available as "ClassName::methodName".
|
* from methods that have the #[SubscribedService] attribute.
|
||||||
|
*
|
||||||
|
* Service ids are available as "ClassName::methodName" so that the implementation
|
||||||
|
* of subscriber methods can be just `return $this->container->get(__METHOD__);`.
|
||||||
|
*
|
||||||
|
* @property ContainerInterface $container
|
||||||
*
|
*
|
||||||
* @author Kevin Bond <kevinbond@gmail.com>
|
* @author Kevin Bond <kevinbond@gmail.com>
|
||||||
|
*
|
||||||
|
* @deprecated since symfony/contracts v3.5, use ServiceMethodsSubscriberTrait instead
|
||||||
*/
|
*/
|
||||||
trait ServiceSubscriberTrait
|
trait ServiceSubscriberTrait
|
||||||
{
|
{
|
||||||
/** @var ContainerInterface */
|
|
||||||
protected $container;
|
|
||||||
|
|
||||||
public static function getSubscribedServices(): array
|
public static function getSubscribedServices(): array
|
||||||
{
|
{
|
||||||
$services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : [];
|
$services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : [];
|
||||||
|
|
|
@ -17,7 +17,8 @@
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"psr/container": "^1.1|^2.0"
|
"psr/container": "^1.1|^2.0",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"ext-psr": "<1.1|>=2"
|
"ext-psr": "<1.1|>=2"
|
||||||
|
@ -31,7 +32,7 @@
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
|
|
@ -16,5 +16,5 @@ namespace Symfony\Contracts\Translation;
|
||||||
*/
|
*/
|
||||||
interface TranslatableInterface
|
interface TranslatableInterface
|
||||||
{
|
{
|
||||||
public function trans(TranslatorInterface $translator, string $locale = null): string;
|
public function trans(TranslatorInterface $translator, ?string $locale = null): string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ interface TranslatorInterface
|
||||||
*
|
*
|
||||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||||
*/
|
*/
|
||||||
public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null): string;
|
public function trans(string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the default locale.
|
* Returns the default locale.
|
||||||
|
|
|
@ -35,7 +35,7 @@ trait TranslatorTrait
|
||||||
return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en');
|
return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string
|
public function trans(?string $id, array $parameters = [], ?string $domain = null, ?string $locale = null): string
|
||||||
{
|
{
|
||||||
if (null === $id || '' === $id) {
|
if (null === $id || '' === $id) {
|
||||||
return '';
|
return '';
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "3.4-dev"
|
"dev-main": "3.5-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/contracts",
|
"name": "symfony/contracts",
|
||||||
|
|
|
@ -112,16 +112,20 @@ class XliffFileLoader implements LoaderInterface
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($translation->target) && 'needs-translation' === (string) $translation->target->attributes()['state']) {
|
$source = (string) (isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source);
|
||||||
|
|
||||||
|
if (isset($translation->target)
|
||||||
|
&& 'needs-translation' === (string) $translation->target->attributes()['state']
|
||||||
|
&& \in_array((string) $translation->target, [$source, (string) $translation->source], true)
|
||||||
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$source = isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source;
|
|
||||||
// If the xlf file has another encoding specified, try to convert it because
|
// If the xlf file has another encoding specified, try to convert it because
|
||||||
// simple_xml will always return utf-8 encoded values
|
// simple_xml will always return utf-8 encoded values
|
||||||
$target = $this->utf8ToCharset((string) ($translation->target ?? $translation->source), $encoding);
|
$target = $this->utf8ToCharset((string) ($translation->target ?? $translation->source), $encoding);
|
||||||
|
|
||||||
$catalogue->set((string) $source, $target, $domain);
|
$catalogue->set($source, $target, $domain);
|
||||||
|
|
||||||
$metadata = [
|
$metadata = [
|
||||||
'source' => (string) $translation->source,
|
'source' => (string) $translation->source,
|
||||||
|
@ -144,7 +148,7 @@ class XliffFileLoader implements LoaderInterface
|
||||||
$metadata['id'] = (string) $attributes['id'];
|
$metadata['id'] = (string) $attributes['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$catalogue->setMetadata((string) $source, $metadata, $domain);
|
$catalogue->setMetadata($source, $metadata, $domain);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,9 +34,14 @@ class LocaleSwitcher implements LocaleAwareInterface
|
||||||
|
|
||||||
public function setLocale(string $locale): void
|
public function setLocale(string $locale): void
|
||||||
{
|
{
|
||||||
if (class_exists(\Locale::class)) {
|
// Silently ignore if the intl extension is not loaded
|
||||||
\Locale::setDefault($locale);
|
try {
|
||||||
|
if (class_exists(\Locale::class, false)) {
|
||||||
|
\Locale::setDefault($locale);
|
||||||
|
}
|
||||||
|
} catch (\Exception) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->locale = $locale;
|
$this->locale = $locale;
|
||||||
$this->requestContext?->setParameter('_locale', $locale);
|
$this->requestContext?->setParameter('_locale', $locale);
|
||||||
|
|
||||||
|
|
|
@ -162,11 +162,11 @@ function extractLocaleFromFilePath($filePath)
|
||||||
function extractTranslationKeys($filePath): array
|
function extractTranslationKeys($filePath): array
|
||||||
{
|
{
|
||||||
$translationKeys = [];
|
$translationKeys = [];
|
||||||
$contents = new \SimpleXMLElement(file_get_contents($filePath));
|
$contents = new SimpleXMLElement(file_get_contents($filePath));
|
||||||
|
|
||||||
foreach ($contents->file->body->{'trans-unit'} as $translationKey) {
|
foreach ($contents->file->body->{'trans-unit'} as $translationKey) {
|
||||||
$translationId = (string) $translationKey['id'];
|
$translationId = (string) $translationKey['id'];
|
||||||
$translationKey = (string) $translationKey->source;
|
$translationKey = (string) ($translationKey['resname'] ?? $translationKey->source);
|
||||||
|
|
||||||
$translationKeys[$translationId] = $translationKey;
|
$translationKeys[$translationId] = $translationKey;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue