updated composer

This commit is contained in:
2021-05-18 13:47:03 +00:00
parent e248cd036c
commit ba92152daa
1187 changed files with 20804 additions and 22320 deletions

18
.env
View File

@@ -2,7 +2,7 @@ APP_NAME='W4RP Services'
APP_ENV=local
APP_KEY=base64:PBOxrGFJAtwj9SDF4F0DZ1J+6MjrJmRiPZJQwRdy3XQ=
APP_DEBUG=true
APP_URL=http://services.w4rp.space
APP_URL=https://services.w4rp.space
LOG_CHANNEL=daily
@@ -14,23 +14,21 @@ DB_USERNAME=minerva
DB_PASSWORD=FuckingShit12
BROADCAST_DRIVER=log
CACHE_DRIVER=file
CACHE_PREFIX=services
CACHE_DRIVER=redis
CACHE_PREFIX=w4rpservices_cache
QUEUE_DRIVER=redis
QUEUE_CONNECTION=redis
QUEUE_PREFIX=w4rpservices_queue
SESSION_DRIVER=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_DB=8
REDIS_CACHE_DB=9
REDIS_SESSION_DB=10
REDIS_QUEUE_DB=11
REDIS_CLIENT=predis
REDIS_DATABASE=0
REDIS_CACHE_DB=1
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
@@ -46,4 +44,4 @@ ESI_CALLBACK_URI=https://services.w4rp.space/callback/
ESI_PRIMARY_CHAR=93738489
ESI_ALLIANCE=99004116
HORIZON_PREFIX=services
HORIZON_PREFIX=w4rpservices_horizon

View File

@@ -6,6 +6,7 @@
"type": "project",
"require": {
"php": "^7.1.3",
"ext-redis": "^5.3",
"eveseat/eseye": "^2.3",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
@@ -16,7 +17,6 @@
"laravel/socialite": "^5.1",
"laravel/ui": "^2.0",
"laravelcollective/html": "^6.0",
"predis/predis": "^1.1",
"socialiteproviders/manager": "^4.0",
"spatie/laravel-rate-limited-job-middleware": "^1.5",
"spatie/laravel-schedule-monitor": "2.0.1",

939
composer.lock generated

File diff suppressed because it is too large Load Diff

403
vendor/brick/math/CHANGELOG.md vendored Normal file
View File

@@ -0,0 +1,403 @@
# Changelog
All notable changes to this project will be documented in this file.
## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19
✨ New features
- `BigInteger::not()` returns the bitwise `NOT` value
🐛 **Bug fixes**
- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers
- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available
## [0.9.0](https://github.com/brick/math/releases/tag/0.9.0) - 2020-08-18
👌 **Improvements**
- `BigNumber::of()` now accepts `.123` and `123.` formats, both of which return a `BigDecimal`
💥 **Breaking changes**
- Deprecated method `BigInteger::powerMod()` has been removed - use `modPow()` instead
- Deprecated method `BigInteger::parse()` has been removed - use `fromBase()` instead
## [0.8.9](https://github.com/brick/math/releases/tag/0.8.9) - 2020-01-08
⚡️ **Performance improvements**
A few additional optimizations in `BigInteger` and `BigDecimal` when one of the operands can be returned as is. Thanks to @tomtomsen in #24.
## [0.8.8](https://github.com/brick/math/releases/tag/0.8.8) - 2019-04-25
🐛 **Bug fixes**
- `BigInteger::toBase()` could return an empty string for zero values (BCMath & Native calculators only, GMP calculator unaffected)
**New features**
- `BigInteger::toArbitraryBase()` converts a number to an arbitrary base, using a custom alphabet
- `BigInteger::fromArbitraryBase()` converts a string in an arbitrary base, using a custom alphabet, back to a number
These methods can be used as the foundation to convert strings between different bases/alphabets, using BigInteger as an intermediate representation.
💩 **Deprecations**
- `BigInteger::parse()` is now deprecated in favour of `fromBase()`
`BigInteger::fromBase()` works the same way as `parse()`, with 2 minor differences:
- the `$base` parameter is required, it does not default to `10`
- it throws a `NumberFormatException` instead of an `InvalidArgumentException` when the number is malformed
## [0.8.7](https://github.com/brick/math/releases/tag/0.8.7) - 2019-04-20
**Improvements**
- Safer conversion from `float` when using custom locales
- **Much faster** `NativeCalculator` implementation 🚀
You can expect **at least a 3x performance improvement** for common arithmetic operations when using the library on systems without GMP or BCMath; it gets exponentially faster on multiplications with a high number of digits. This is due to calculations now being performed on whole blocks of digits (the block size depending on the platform, 32-bit or 64-bit) instead of digit-by-digit as before.
## [0.8.6](https://github.com/brick/math/releases/tag/0.8.6) - 2019-04-11
**New method**
`BigNumber::sum()` returns the sum of one or more numbers.
## [0.8.5](https://github.com/brick/math/releases/tag/0.8.5) - 2019-02-12
**Bug fix**: `of()` factory methods could fail when passing a `float` in environments using a `LC_NUMERIC` locale with a decimal separator other than `'.'` (#20).
Thanks @manowark 👍
## [0.8.4](https://github.com/brick/math/releases/tag/0.8.4) - 2018-12-07
**New method**
`BigDecimal::sqrt()` calculates the square root of a decimal number, to a given scale.
## [0.8.3](https://github.com/brick/math/releases/tag/0.8.3) - 2018-12-06
**New method**
`BigInteger::sqrt()` calculates the square root of a number (thanks @peter279k).
**New exception**
`NegativeNumberException` is thrown when calling `sqrt()` on a negative number.
## [0.8.2](https://github.com/brick/math/releases/tag/0.8.2) - 2018-11-08
**Performance update**
- Further improvement of `toInt()` performance
- `NativeCalculator` can now perform some multiplications more efficiently
## [0.8.17](https://github.com/brick/math/releases/tag/0.8.17) - 2020-08-19
🐛 **Bug fix**
- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers
- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available
## [0.8.16](https://github.com/brick/math/releases/tag/0.8.16) - 2020-08-18
🚑 **Critical fix**
- This version reintroduces the deprecated `BigInteger::parse()` method, that has been removed by mistake in version `0.8.9` and should have lasted for the whole `0.8` release cycle.
**New features**
- `BigInteger::modInverse()` calculates a modular multiplicative inverse
- `BigInteger::fromBytes()` creates a `BigInteger` from a byte string
- `BigInteger::toBytes()` converts a `BigInteger` to a byte string
- `BigInteger::randomBits()` creates a pseudo-random `BigInteger` of a given bit length
- `BigInteger::randomRange()` creates a pseudo-random `BigInteger` between two bounds
💩 **Deprecations**
- `BigInteger::powerMod()` is now deprecated in favour of `modPow()`
## [0.8.15](https://github.com/brick/math/releases/tag/0.8.15) - 2020-04-15
🐛 **Fixes**
- added missing `ext-json` requirement, due to `BigNumber` implementing `JsonSerializable`
⚡️ **Optimizations**
- additional optimization in `BigInteger::remainder()`
## [0.8.14](https://github.com/brick/math/releases/tag/0.8.14) - 2020-02-18
**New features**
- `BigInteger::getLowestSetBit()` returns the index of the rightmost one bit
## [0.8.13](https://github.com/brick/math/releases/tag/0.8.13) - 2020-02-16
**New features**
- `BigInteger::isEven()` tests whether the number is even
- `BigInteger::isOdd()` tests whether the number is odd
- `BigInteger::testBit()` tests if a bit is set
- `BigInteger::getBitLength()` returns the number of bits in the minimal representation of the number
## [0.8.12](https://github.com/brick/math/releases/tag/0.8.12) - 2020-02-03
🛠️ **Maintenance release**
Classes are now annotated for better static analysis with [psalm](https://psalm.dev/).
This is a maintenance release: no bug fixes, no new features, no breaking changes.
## [0.8.11](https://github.com/brick/math/releases/tag/0.8.11) - 2020-01-23
**New feature**
`BigInteger::powerMod()` performs a power-with-modulo operation. Useful for crypto.
## [0.8.10](https://github.com/brick/math/releases/tag/0.8.10) - 2020-01-21
**New feature**
`BigInteger::mod()` returns the **modulo** of two numbers. The *modulo* differs from the *remainder* when the signs of the operands are different.
## [0.8.1](https://github.com/brick/math/releases/tag/0.8.1) - 2018-11-07
Performance optimization of `toInt()` methods.
## [0.8.0](https://github.com/brick/math/releases/tag/0.8.0) - 2018-10-13
**Breaking changes**
The following deprecated methods have been removed. Use the new method name instead:
| Method removed | Replacement method |
| --- | --- |
| `BigDecimal::getIntegral()` | `BigDecimal::getIntegralPart()` |
| `BigDecimal::getFraction()` | `BigDecimal::getFractionalPart()` |
---
**New features**
`BigInteger` has been augmented with 5 new methods for bitwise operations:
| New method | Description |
| --- | --- |
| `and()` | performs a bitwise `AND` operation on two numbers |
| `or()` | performs a bitwise `OR` operation on two numbers |
| `xor()` | performs a bitwise `XOR` operation on two numbers |
| `shiftedLeft()` | returns the number shifted left by a number of bits |
| `shiftedRight()` | returns the number shifted right by a number of bits |
Thanks to @DASPRiD 👍
## [0.7.3](https://github.com/brick/math/releases/tag/0.7.3) - 2018-08-20
**New method:** `BigDecimal::hasNonZeroFractionalPart()`
**Renamed/deprecated methods:**
- `BigDecimal::getIntegral()` has been renamed to `getIntegralPart()` and is now deprecated
- `BigDecimal::getFraction()` has been renamed to `getFractionalPart()` and is now deprecated
## [0.7.2](https://github.com/brick/math/releases/tag/0.7.2) - 2018-07-21
**Performance update**
`BigInteger::parse()` and `toBase()` now use GMP's built-in base conversion features when available.
## [0.7.1](https://github.com/brick/math/releases/tag/0.7.1) - 2018-03-01
This is a maintenance release, no code has been changed.
- When installed with `--no-dev`, the autoloader does not autoload tests anymore
- Tests and other files unnecessary for production are excluded from the dist package
This will help make installations more compact.
## [0.7.0](https://github.com/brick/math/releases/tag/0.7.0) - 2017-10-02
Methods renamed:
- `BigNumber:sign()` has been renamed to `getSign()`
- `BigDecimal::unscaledValue()` has been renamed to `getUnscaledValue()`
- `BigDecimal::scale()` has been renamed to `getScale()`
- `BigDecimal::integral()` has been renamed to `getIntegral()`
- `BigDecimal::fraction()` has been renamed to `getFraction()`
- `BigRational::numerator()` has been renamed to `getNumerator()`
- `BigRational::denominator()` has been renamed to `getDenominator()`
Classes renamed:
- `ArithmeticException` has been renamed to `MathException`
## [0.6.2](https://github.com/brick/math/releases/tag/0.6.2) - 2017-10-02
The base class for all exceptions is now `MathException`.
`ArithmeticException` has been deprecated, and will be removed in 0.7.0.
## [0.6.1](https://github.com/brick/math/releases/tag/0.6.1) - 2017-10-02
A number of methods have been renamed:
- `BigNumber:sign()` is deprecated; use `getSign()` instead
- `BigDecimal::unscaledValue()` is deprecated; use `getUnscaledValue()` instead
- `BigDecimal::scale()` is deprecated; use `getScale()` instead
- `BigDecimal::integral()` is deprecated; use `getIntegral()` instead
- `BigDecimal::fraction()` is deprecated; use `getFraction()` instead
- `BigRational::numerator()` is deprecated; use `getNumerator()` instead
- `BigRational::denominator()` is deprecated; use `getDenominator()` instead
The old methods will be removed in version 0.7.0.
## [0.6.0](https://github.com/brick/math/releases/tag/0.6.0) - 2017-08-25
- Minimum PHP version is now [7.1](https://gophp71.org/); for PHP 5.6 and PHP 7.0 support, use version `0.5`
- Deprecated method `BigDecimal::withScale()` has been removed; use `toScale()` instead
- Method `BigNumber::toInteger()` has been renamed to `toInt()`
## [0.5.4](https://github.com/brick/math/releases/tag/0.5.4) - 2016-10-17
`BigNumber` classes now implement [JsonSerializable](http://php.net/manual/en/class.jsonserializable.php).
The JSON output is always a string.
## [0.5.3](https://github.com/brick/math/releases/tag/0.5.3) - 2016-03-31
This is a bugfix release. Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
## [0.5.2](https://github.com/brick/math/releases/tag/0.5.2) - 2015-08-06
The `$scale` parameter of `BigDecimal::dividedBy()` is now optional again.
## [0.5.1](https://github.com/brick/math/releases/tag/0.5.1) - 2015-07-05
**New method: `BigNumber::toScale()`**
This allows to convert any `BigNumber` to a `BigDecimal` with a given scale, using rounding if necessary.
## [0.5.0](https://github.com/brick/math/releases/tag/0.5.0) - 2015-07-04
**New features**
- Common `BigNumber` interface for all classes, with the following methods:
- `sign()` and derived methods (`isZero()`, `isPositive()`, ...)
- `compareTo()` and derived methods (`isEqualTo()`, `isGreaterThan()`, ...) that work across different `BigNumber` types
- `toBigInteger()`, `toBigDecimal()`, `toBigRational`() conversion methods
- `toInteger()` and `toFloat()` conversion methods to native types
- Unified `of()` behaviour: every class now accepts any type of number, provided that it can be safely converted to the current type
- New method: `BigDecimal::exactlyDividedBy()`; this method automatically computes the scale of the result, provided that the division yields a finite number of digits
- New methods: `BigRational::quotient()` and `remainder()`
- Fine-grained exceptions: `DivisionByZeroException`, `RoundingNecessaryException`, `NumberFormatException`
- Factory methods `zero()`, `one()` and `ten()` available in all classes
- Rounding mode reintroduced in `BigInteger::dividedBy()`
This release also comes with many performance improvements.
---
**Breaking changes**
- `BigInteger`:
- `getSign()` is renamed to `sign()`
- `toString()` is renamed to `toBase()`
- `BigInteger::dividedBy()` now throws an exception by default if the remainder is not zero; use `quotient()` to get the previous behaviour
- `BigDecimal`:
- `getSign()` is renamed to `sign()`
- `getUnscaledValue()` is renamed to `unscaledValue()`
- `getScale()` is renamed to `scale()`
- `getIntegral()` is renamed to `integral()`
- `getFraction()` is renamed to `fraction()`
- `divideAndRemainder()` is renamed to `quotientAndRemainder()`
- `dividedBy()` now takes a **mandatory** `$scale` parameter **before** the rounding mode
- `toBigInteger()` does not accept a `$roundingMode` parameter any more
- `toBigRational()` does not simplify the fraction any more; explicitly add `->simplified()` to get the previous behaviour
- `BigRational`:
- `getSign()` is renamed to `sign()`
- `getNumerator()` is renamed to `numerator()`
- `getDenominator()` is renamed to `denominator()`
- `of()` is renamed to `nd()`, while `parse()` is renamed to `of()`
- Miscellaneous:
- `ArithmeticException` is moved to an `Exception\` sub-namespace
- `of()` factory methods now throw `NumberFormatException` instead of `InvalidArgumentException`
## [0.4.3](https://github.com/brick/math/releases/tag/0.4.3) - 2016-03-31
Backport of two bug fixes from the 0.5 branch:
- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected
- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
## [0.4.2](https://github.com/brick/math/releases/tag/0.4.2) - 2015-06-16
New method: `BigDecimal::stripTrailingZeros()`
## [0.4.1](https://github.com/brick/math/releases/tag/0.4.1) - 2015-06-12
Introducing a `BigRational` class, to perform calculations on fractions of any size.
## [0.4.0](https://github.com/brick/math/releases/tag/0.4.0) - 2015-06-12
Rounding modes have been removed from `BigInteger`, and are now a concept specific to `BigDecimal`.
`BigInteger::dividedBy()` now always returns the quotient of the division.
## [0.3.5](https://github.com/brick/math/releases/tag/0.3.5) - 2016-03-31
Backport of two bug fixes from the 0.5 branch:
- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected
- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6.
## [0.3.4](https://github.com/brick/math/releases/tag/0.3.4) - 2015-06-11
New methods:
- `BigInteger::remainder()` returns the remainder of a division only
- `BigInteger::gcd()` returns the greatest common divisor of two numbers
## [0.3.3](https://github.com/brick/math/releases/tag/0.3.3) - 2015-06-07
Fix `toString()` not handling negative numbers.
## [0.3.2](https://github.com/brick/math/releases/tag/0.3.2) - 2015-06-07
`BigInteger` and `BigDecimal` now have a `getSign()` method that returns:
- `-1` if the number is negative
- `0` if the number is zero
- `1` if the number is positive
## [0.3.1](https://github.com/brick/math/releases/tag/0.3.1) - 2015-06-05
Minor performance improvements
## [0.3.0](https://github.com/brick/math/releases/tag/0.3.0) - 2015-06-04
The `$roundingMode` and `$scale` parameters have been swapped in `BigDecimal::dividedBy()`.
## [0.2.2](https://github.com/brick/math/releases/tag/0.2.2) - 2015-06-04
Stronger immutability guarantee for `BigInteger` and `BigDecimal`.
So far, it would have been possible to break immutability of these classes by calling the `unserialize()` internal function. This release fixes that.
## [0.2.1](https://github.com/brick/math/releases/tag/0.2.1) - 2015-06-02
Added `BigDecimal::divideAndRemainder()`
## [0.2.0](https://github.com/brick/math/releases/tag/0.2.0) - 2015-05-22
- `min()` and `max()` do not accept an `array` any more, but a variable number of parameters
- **minimum PHP version is now 5.6**
- continuous integration with PHP 7
## [0.1.1](https://github.com/brick/math/releases/tag/0.1.1) - 2014-09-01
- Added `BigInteger::power()`
- Added HHVM support
## [0.1.0](https://github.com/brick/math/releases/tag/0.1.0) - 2014-08-31
First beta release.

View File

@@ -2,10 +2,11 @@
## Supported Versions
Only the latest release stream is supported.
Only the last two release streams are supported.
| Version | Supported |
| ------- | ------------------ |
| 0.9.x | :white_check_mark: |
| 0.8.x | :white_check_mark: |
| < 0.8 | :x: |

View File

@@ -14,13 +14,13 @@
],
"license": "MIT",
"require": {
"php": "^7.1|^8.0",
"php": "^7.1 || ^8.0",
"ext-json": "*"
},
"require-dev": {
"phpunit/phpunit": "^7.5.15|^8.5",
"phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
"php-coveralls/php-coveralls": "^2.2",
"vimeo/psalm": "^3.5"
"vimeo/psalm": "4.3.2"
},
"autoload": {
"psr-4": {

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="3.8.5@e6ec5fa22a7b9e61670a24d07b3119aff80dcd89">
<file src="src/Internal/Calculator/BcMathCalculator.php">
<InvalidNullableReturnType occurrences="3">
<code>string</code>
<code>string</code>
<code>string</code>
</InvalidNullableReturnType>
<InvalidReturnStatement occurrences="1">
<code>[$q, $r]</code>
</InvalidReturnStatement>
<InvalidReturnType occurrences="1">
<code>array</code>
</InvalidReturnType>
<NullableReturnStatement occurrences="3">
<code>\bcdiv($a, $b, 0)</code>
<code>\bcmod($a, $b)</code>
<code>\bcpowmod($base, $exp, $mod, 0)</code>
</NullableReturnStatement>
</file>
<file src="src/Internal/Calculator/NativeCalculator.php">
<InvalidOperand occurrences="6">
<code>$a</code>
<code>$a</code>
<code>$a</code>
<code>$b</code>
<code>$blockA</code>
<code>$blockA</code>
</InvalidOperand>
<LoopInvalidation occurrences="4">
<code>$i</code>
<code>$i</code>
<code>$i</code>
<code>$j</code>
</LoopInvalidation>
<PossiblyInvalidArgument occurrences="1">
<code>$e / 2</code>
</PossiblyInvalidArgument>
</file>
</files>

View File

@@ -1,56 +0,0 @@
<?xml version="1.0"?>
<psalm
totallyTyped="false"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
errorBaseline="psalm-baseline.xml"
>
<projectFiles>
<directory name="src" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
<issueHandlers>
<LessSpecificReturnType errorLevel="info" />
<!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->
<DeprecatedMethod errorLevel="info" />
<DeprecatedProperty errorLevel="info" />
<DeprecatedClass errorLevel="info" />
<DeprecatedConstant errorLevel="info" />
<DeprecatedFunction errorLevel="info" />
<DeprecatedInterface errorLevel="info" />
<DeprecatedTrait errorLevel="info" />
<InternalMethod errorLevel="info" />
<InternalProperty errorLevel="info" />
<InternalClass errorLevel="info" />
<MissingClosureReturnType errorLevel="info" />
<MissingReturnType errorLevel="info" />
<MissingPropertyType errorLevel="info" />
<InvalidDocblock errorLevel="info" />
<MisplacedRequiredParam errorLevel="info" />
<PropertyNotSetInConstructor errorLevel="info" />
<MissingConstructor errorLevel="info" />
<MissingClosureParamType errorLevel="info" />
<MissingParamType errorLevel="info" />
<RedundantCondition errorLevel="info" />
<DocblockTypeContradiction errorLevel="info" />
<RedundantConditionGivenDocblockType errorLevel="info" />
<UnresolvableInclude errorLevel="info" />
<RawObjectIteration errorLevel="info" />
<InvalidStringClass errorLevel="info" />
</issueHandlers>
</psalm>

View File

@@ -64,7 +64,7 @@ use Brick\Math\Internal\Calculator;
* @param string $a The left operand.
* @param string $b The right operand.
*/
function runTests(string $a, string $b) : void
private function runTests(string $a, string $b) : void
{
$this->test("$a + $b", function(Calculator $c) use($a, $b) {
return $c->add($a, $b);
@@ -123,8 +123,11 @@ use Brick\Math\Internal\Calculator;
*/
private function test(string $test, Closure $callback) : void
{
static $counter = 0;
static $lastOutputTime = null;
static $testCounter = 0;
static $lastOutputTime = 0.0;
static $currentSecond = 0;
static $currentSecondTestCounter = 0;
static $testsPerSecond = 0;
$gmpResult = $callback($this->gmp);
$bcmathResult = $callback($this->bcmath);
@@ -138,13 +141,20 @@ use Brick\Math\Internal\Calculator;
self::failure('GMP', 'Native', $test);
}
$counter++;
$time = microtime(true);
$testCounter++;
$currentSecondTestCounter++;
if ($lastOutputTime === null) {
$lastOutputTime = $time;
} elseif ($time - $lastOutputTime >= 0.1) {
echo "\r", number_format($counter);
$time = microtime(true);
$second = (int) $time;
if ($second !== $currentSecond) {
$currentSecond = $second;
$testsPerSecond = $currentSecondTestCounter;
$currentSecondTestCounter = 0;
}
if ($time - $lastOutputTime >= 0.1) {
echo "\r", number_format($testCounter), ' (', number_format($testsPerSecond) . ' / s)';
$lastOutputTime = $time;
}
}

View File

@@ -96,7 +96,10 @@ final class BigDecimal extends BigNumber
*/
public static function zero() : BigDecimal
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigDecimal|null $zero
*/
static $zero;
if ($zero === null) {
@@ -115,7 +118,10 @@ final class BigDecimal extends BigNumber
*/
public static function one() : BigDecimal
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigDecimal|null $one
*/
static $one;
if ($one === null) {
@@ -134,7 +140,10 @@ final class BigDecimal extends BigNumber
*/
public static function ten() : BigDecimal
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigDecimal|null $ten
*/
static $ten;
if ($ten === null) {
@@ -677,11 +686,7 @@ final class BigDecimal extends BigNumber
*/
public function toBigInteger() : BigInteger
{
if ($this->scale === 0) {
$zeroScaleDecimal = $this;
} else {
$zeroScaleDecimal = $this->dividedBy(1, 0);
}
$zeroScaleDecimal = $this->scale === 0 ? $this : $this->dividedBy(1, 0);
return BigInteger::create($zeroScaleDecimal->value);
}
@@ -763,6 +768,7 @@ final class BigDecimal extends BigNumber
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @param string $value
*

View File

@@ -217,6 +217,8 @@ final class BigInteger extends BigNumber
*
* Using the default random bytes generator, this method is suitable for cryptographic use.
*
* @psalm-param callable(int): string $randomBytesGenerator
*
* @param int $numBits The number of bits.
* @param callable|null $randomBytesGenerator A function that accepts a number of bytes as an integer, and returns a
* string of random bytes of the given length. Defaults to the
@@ -256,6 +258,8 @@ final class BigInteger extends BigNumber
*
* Using the default random bytes generator, this method is suitable for cryptographic use.
*
* @psalm-param (callable(int): string)|null $randomBytesGenerator
*
* @param BigNumber|int|float|string $min The lower bound. Must be convertible to a BigInteger.
* @param BigNumber|int|float|string $max The upper bound. Must be convertible to a BigInteger.
* @param callable|null $randomBytesGenerator A function that accepts a number of bytes as an integer,
@@ -300,7 +304,10 @@ final class BigInteger extends BigNumber
*/
public static function zero() : BigInteger
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigInteger|null $zero
*/
static $zero;
if ($zero === null) {
@@ -319,7 +326,10 @@ final class BigInteger extends BigNumber
*/
public static function one() : BigInteger
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigInteger|null $one
*/
static $one;
if ($one === null) {
@@ -338,7 +348,10 @@ final class BigInteger extends BigNumber
*/
public static function ten() : BigInteger
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigInteger|null $ten
*/
static $ten;
if ($ten === null) {
@@ -1070,7 +1083,10 @@ final class BigInteger extends BigNumber
if ($signed) {
if ($this->isNegative()) {
$hex = \bin2hex(~\hex2bin($hex));
$bin = \hex2bin($hex);
assert($bin !== false);
$hex = \bin2hex(~$bin);
$hex = self::fromBase($hex, 16)->plus(1)->toBase(16);
$hexLength = \strlen($hex);
@@ -1116,6 +1132,7 @@ final class BigInteger extends BigNumber
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @param string $value
*

View File

@@ -67,13 +67,10 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
return new BigInteger((string) $value);
}
if (\is_float($value)) {
$value = self::floatToString($value);
} else {
$value = (string) $value;
}
/** @psalm-suppress RedundantCastGivenDocblockType We cannot trust the untyped $value here! */
$value = \is_float($value) ? self::floatToString($value) : (string) $value;
$throw = function() use ($value) : void {
$throw = static function() use ($value) : void {
throw new NumberFormatException(\sprintf(
'The given value "%s" does not represent a valid number.',
$value
@@ -84,7 +81,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
$throw();
}
$getMatch = function(string $value) use ($matches) : ?string {
$getMatch = static function(string $value) use ($matches) : ?string {
return isset($matches[$value]) && $matches[$value] !== '' ? $matches[$value] : null;
};
@@ -93,7 +90,13 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
$denominator = $getMatch('denominator');
if ($numerator !== null) {
$numerator = self::cleanUp($sign . $numerator);
assert($denominator !== null);
if ($sign !== null) {
$numerator = $sign . $numerator;
}
$numerator = self::cleanUp($numerator);
$denominator = self::cleanUp($denominator);
if ($denominator === '0') {
@@ -121,14 +124,14 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
}
if ($point !== null || $exponent !== null) {
$fractional = $fractional ?? '';
$exponent = $exponent !== null ? (int) $exponent : 0;
$fractional = ($fractional ?? '');
$exponent = ($exponent !== null) ? (int) $exponent : 0;
if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) {
throw new NumberFormatException('Exponent too large.');
}
$unscaledValue = self::cleanUp($sign . $integral . $fractional);
$unscaledValue = self::cleanUp(($sign ?? ''). $integral . $fractional);
$scale = \strlen($fractional) - $exponent;
@@ -142,7 +145,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
return new BigDecimal($unscaledValue, $scale);
}
$integral = self::cleanUp($sign . $integral);
$integral = self::cleanUp(($sign ?? '') . $integral);
return new BigInteger($integral);
}
@@ -181,10 +184,11 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @return static
*
* @psalm-pure
* @psalm-suppress TooManyArguments
* @psalm-suppress UnsafeInstantiation
*/
protected static function create(... $args) : BigNumber
{
/** @psalm-suppress TooManyArguments */
return new static(... $args);
}
@@ -199,6 +203,8 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
* @psalm-suppress LessSpecificReturnStatement
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
public static function min(...$values) : BigNumber
@@ -231,6 +237,8 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
* @psalm-suppress LessSpecificReturnStatement
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
public static function max(...$values) : BigNumber
@@ -263,6 +271,8 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
* @throws \InvalidArgumentException If no values are given.
* @throws MathException If an argument is not valid.
*
* @psalm-suppress LessSpecificReturnStatement
* @psalm-suppress MoreSpecificReturnType
* @psalm-pure
*/
public static function sum(...$values) : BigNumber
@@ -273,11 +283,7 @@ abstract class BigNumber implements \Serializable, \JsonSerializable
foreach ($values as $value) {
$value = static::of($value);
if ($sum === null) {
$sum = $value;
} else {
$sum = self::add($sum, $value);
}
$sum = $sum === null ? $value : self::add($sum, $value);
}
if ($sum === null) {

View File

@@ -108,7 +108,10 @@ final class BigRational extends BigNumber
*/
public static function zero() : BigRational
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigRational|null $zero
*/
static $zero;
if ($zero === null) {
@@ -127,7 +130,10 @@ final class BigRational extends BigNumber
*/
public static function one() : BigRational
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigRational|null $one
*/
static $one;
if ($one === null) {
@@ -146,7 +152,10 @@ final class BigRational extends BigNumber
*/
public static function ten() : BigRational
{
/** @psalm-suppress ImpureStaticVariable */
/**
* @psalm-suppress ImpureStaticVariable
* @var BigRational|null $ten
*/
static $ten;
if ($ten === null) {
@@ -458,6 +467,7 @@ final class BigRational extends BigNumber
* This method is only here to implement interface Serializable and cannot be accessed directly.
*
* @internal
* @psalm-suppress RedundantPropertyInitializationCheck
*
* @param string $value
*

View File

@@ -677,6 +677,9 @@ abstract class Calculator
}
/**
* @psalm-suppress InvalidOperand
* @see https://github.com/vimeo/psalm/issues/4456
*
* @param string $number A positive, binary number.
*
* @return string
@@ -685,7 +688,7 @@ abstract class Calculator
{
$xor = \str_repeat("\xff", \strlen($number));
$number = $number ^ $xor;
$number ^= $xor;
for ($i = \strlen($number) - 1; $i >= 0; $i--) {
$byte = \ord($number[$i]);

View File

@@ -41,6 +41,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritdoc}
*
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function divQ(string $a, string $b) : string
{
@@ -49,9 +52,16 @@ class BcMathCalculator extends Calculator
/**
* {@inheritdoc}
*
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function divR(string $a, string $b) : string
{
if (version_compare(PHP_VERSION, '7.2') >= 0) {
return \bcmod($a, $b, 0);
}
return \bcmod($a, $b);
}
@@ -61,7 +71,15 @@ class BcMathCalculator extends Calculator
public function divQR(string $a, string $b) : array
{
$q = \bcdiv($a, $b, 0);
if (version_compare(PHP_VERSION, '7.2') >= 0) {
$r = \bcmod($a, $b, 0);
} else {
$r = \bcmod($a, $b);
}
assert($q !== null);
assert($r !== null);
return [$q, $r];
}
@@ -76,6 +94,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritdoc}
*
* @psalm-suppress InvalidNullableReturnType
* @psalm-suppress NullableReturnStatement
*/
public function modPow(string $base, string $exp, string $mod) : string
{
@@ -84,6 +105,9 @@ class BcMathCalculator extends Calculator
/**
* {@inheritDoc}
*
* @psalm-suppress NullableReturnStatement
* @psalm-suppress InvalidNullableReturnType
*/
public function sqrt(string $n) : string
{

View File

@@ -53,6 +53,10 @@ class NativeCalculator extends Calculator
*/
public function add(string $a, string $b) : string
{
/**
* @psalm-var numeric-string $a
* @psalm-var numeric-string $b
*/
$result = $a + $b;
if (is_int($result)) {
@@ -69,11 +73,7 @@ class NativeCalculator extends Calculator
[$aNeg, $bNeg, $aDig, $bDig] = $this->init($a, $b);
if ($aNeg === $bNeg) {
$result = $this->doAdd($aDig, $bDig);
} else {
$result = $this->doSub($aDig, $bDig);
}
$result = $aNeg === $bNeg ? $this->doAdd($aDig, $bDig) : $this->doSub($aDig, $bDig);
if ($aNeg) {
$result = $this->neg($result);
@@ -95,6 +95,10 @@ class NativeCalculator extends Calculator
*/
public function mul(string $a, string $b) : string
{
/**
* @psalm-var numeric-string $a
* @psalm-var numeric-string $b
*/
$result = $a * $b;
if (is_int($result)) {
@@ -169,9 +173,11 @@ class NativeCalculator extends Calculator
return [$this->neg($a), '0'];
}
/** @psalm-var numeric-string $a */
$na = $a * 1; // cast to number
if (is_int($na)) {
/** @psalm-var numeric-string $b */
$nb = $b * 1;
if (is_int($nb)) {
@@ -221,6 +227,8 @@ class NativeCalculator extends Calculator
$e -= $odd;
$aa = $this->mul($a, $a);
/** @psalm-suppress PossiblyInvalidArgument We're sure that $e / 2 is an int now */
$result = $this->pow($aa, $e / 2);
if ($odd === 1) {
@@ -316,10 +324,14 @@ class NativeCalculator extends Calculator
if ($i < 0) {
$blockLength += $i;
/** @psalm-suppress LoopInvalidation */
$i = 0;
}
/** @psalm-var numeric-string $blockA */
$blockA = \substr($a, $i, $blockLength);
/** @psalm-var numeric-string $blockB */
$blockB = \substr($b, $i, $blockLength);
$sum = (string) ($blockA + $blockB + $carry);
@@ -386,10 +398,14 @@ class NativeCalculator extends Calculator
if ($i < 0) {
$blockLength += $i;
/** @psalm-suppress LoopInvalidation */
$i = 0;
}
/** @psalm-var numeric-string $blockA */
$blockA = \substr($a, $i, $blockLength);
/** @psalm-var numeric-string $blockB */
$blockB = \substr($b, $i, $blockLength);
$sum = $blockA - $blockB - $carry;
@@ -450,6 +466,7 @@ class NativeCalculator extends Calculator
if ($i < 0) {
$blockALength += $i;
/** @psalm-suppress LoopInvalidation */
$i = 0;
}
@@ -463,6 +480,7 @@ class NativeCalculator extends Calculator
if ($j < 0) {
$blockBLength += $j;
/** @psalm-suppress LoopInvalidation */
$j = 0;
}

View File

@@ -1,37 +0,0 @@
build: false
shallow_clone: false
platform: 'x86'
clone_folder: c:\projects\chronos
branches:
only:
- master
- 1.x
- 2.next
environment:
global:
PHP: "C:/PHP"
init:
- SET PATH=C:\php\;%PATH%
install:
- cd c:\
- curl -fsS https://windows.php.net/downloads/releases/latest/php-7.2-nts-Win32-VC15-x86-latest.zip -o php.zip
- 7z x php.zip -oc:\php
- cd c:\php
- copy php.ini-production php.ini
- echo date.timezone="UTC" >> php.ini
- echo extension_dir=ext >> php.ini
- echo extension=php_openssl.dll >> php.ini
- echo extension=mbstring >> php.ini
- echo extension=intl >> php.ini
- echo extension=fileinfo >> php.ini
- cd C:\projects\chronos
- appveyor DownloadFile https://getcomposer.org/composer.phar
- php composer.phar install --prefer-dist --no-interaction --ansi --no-progress
test_script:
- cd C:\projects\chronos
- vendor\bin\phpunit.bat

View File

@@ -1,2 +0,0 @@
coverage_clover: clover.xml
json_path: coveralls-upload.json

View File

@@ -29,9 +29,8 @@
"php": ">=7.2"
},
"require-dev": {
"phpunit/phpunit": "^8.0",
"cakephp/cakephp-codesniffer": "^4.0",
"phpbench/phpbench": "^1.0@dev"
"phpunit/phpunit": "^8.0 || ^9.0",
"cakephp/cakephp-codesniffer": "^4.0"
},
"autoload": {
"psr-4": {
@@ -52,11 +51,13 @@
"@cs-check",
"@phpstan"
],
"test": "phpunit",
"cs-check": "phpcs",
"cs-fix": "phpcbf",
"benchmark": "phpbench run --report=chronos",
"phpstan": "phpstan analyze -c phpstan.neon src/",
"phpstan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:^0.12 && mv composer.backup composer.json"
"cs-check": "phpcs --colors --parallel=16 -p src/ tests/",
"cs-fix": "phpcbf --colors --parallel=16 -p src/ tests/",
"phpstan": "phpstan.phar analyse",
"stan": [
"@phpstan"
],
"stan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:^0.12.54 && mv composer.backup composer.json",
"test": "phpunit"
}
}

View File

@@ -84,11 +84,17 @@ class Chronos extends DateTimeImmutable implements ChronosInterface
* Please see the testing aids section (specifically static::setTestNow())
* for more on the possibility of this constructor returning a test instance.
*
* @param \DateTime|\DateTimeImmutable|string|int|null $time Fixed or relative time
* @param \DateTimeInterface|string|int|null $time Fixed or relative time
* @param \DateTimeZone|string|null $tz The timezone for the instance
*/
public function __construct($time = 'now', $tz = null)
{
if (is_int($time)) {
parent::__construct('@' . $time);
return;
}
if ($tz !== null) {
$tz = $tz instanceof DateTimeZone ? $tz : new DateTimeZone($tz);
}

View File

@@ -86,7 +86,7 @@ class Date extends DateTimeImmutable implements ChronosInterface
* timezone will always be the server local time. Normalizing the timezone allows for
* subtraction/addition to have deterministic results.
*
* @param \DateTime|\DateTimeImmutable|string|int|null $time Fixed or relative time
* @param \DateTimeInterface|string|int|null $time Fixed or relative time
* @param \DateTimeZone|string|null $tz The timezone in which the date is taken
*/
public function __construct($time = 'now', $tz = null)

View File

@@ -85,7 +85,7 @@ class MutableDate extends DateTime implements ChronosInterface
* timezone will always be server local timezone. Normalizing the timezone allows for
* subtraction/addition to have deterministic results.
*
* @param \DateTime|\DateTimeImmutable|string|int|null $time Fixed or relative time
* @param \DateTimeInterface|string|int|null $time Fixed or relative time
* @param \DateTimeZone|string|null $tz The timezone in which the date is taken
*/
public function __construct($time = 'now', $tz = null)

View File

@@ -76,11 +76,17 @@ class MutableDateTime extends DateTime implements ChronosInterface
* Please see the testing aids section (specifically static::setTestNow())
* for more on the possibility of this constructor returning a test instance.
*
* @param \DateTime|\DateTimeImmutable|string|int|null $time Fixed or relative time
* @param \DateTimeInterface|string|int|null $time Fixed or relative time
* @param \DateTimeZone|string|null $tz The timezone for the instance
*/
public function __construct($time = 'now', $tz = null)
{
if (is_int($time)) {
parent::__construct('@' . $time);
return;
}
if ($tz !== null) {
$tz = $tz instanceof DateTimeZone ? $tz : new DateTimeZone($tz);
}

View File

@@ -20,6 +20,7 @@ use Cake\Chronos\DifferenceFormatter;
use Cake\Chronos\DifferenceFormatterInterface;
use DatePeriod;
use DateTimeInterface;
use DateTimeZone;
/**
* Provides methods for getting differences between datetime objects.
@@ -68,6 +69,29 @@ trait DifferenceTrait
return $diff->invert ? -$months : $months;
}
/**
* Get the difference in months ignoring the timezone. This means the months are calculated
* in the specified timezone without converting to UTC first. This prevents the day from changing
* which can change the month.
*
* For example, if comparing `2019-06-01 Asia/Tokyo` and `2019-10-01 Asia/Tokyo`,
* the result would be 4 months instead of 3 when using normal `DateTime::diff()`.
*
* @param \Cake\Chronos\ChronosInterface|null $dt The instance to difference from.
* @param bool $abs Get the absolute of the difference
* @return int
*/
public function diffInMonthsIgnoreTimezone(?ChronosInterface $dt = null, bool $abs = true): int
{
$utcTz = new DateTimeZone('UTC');
$source = new static($this->format('Y-m-d H:i:s.u'), $utcTz);
$dt = $dt ?? static::now($this->tz);
$dt = new static($dt->format('Y-m-d H:i:s.u'), $utcTz);
return $source->diffInMonths($dt, $abs);
}
/**
* Get the difference in weeks
*

View File

@@ -324,7 +324,7 @@ trait FactoryTrait
*/
public static function createFromTimestampUTC(int $timestamp): ChronosInterface
{
return new static('@' . $timestamp);
return new static($timestamp);
}
/**

View File

@@ -139,6 +139,7 @@ trait FormattingTrait
* Format the instance as RFC822
*
* @return string
* @link https://tools.ietf.org/html/rfc822
*/
public function toRfc822String(): string
{
@@ -149,6 +150,7 @@ trait FormattingTrait
* Format the instance as RFC850
*
* @return string
* @link https://tools.ietf.org/html/rfc850
*/
public function toRfc850String(): string
{
@@ -159,6 +161,7 @@ trait FormattingTrait
* Format the instance as RFC1036
*
* @return string
* @link https://tools.ietf.org/html/rfc1036
*/
public function toRfc1036String(): string
{
@@ -169,6 +172,7 @@ trait FormattingTrait
* Format the instance as RFC1123
*
* @return string
* @link https://tools.ietf.org/html/rfc1123
*/
public function toRfc1123String(): string
{
@@ -179,6 +183,7 @@ trait FormattingTrait
* Format the instance as RFC2822
*
* @return string
* @link https://tools.ietf.org/html/rfc2822
*/
public function toRfc2822String(): string
{
@@ -189,6 +194,7 @@ trait FormattingTrait
* Format the instance as RFC3339
*
* @return string
* @link https://tools.ietf.org/html/rfc3339
*/
public function toRfc3339String(): string
{

View File

@@ -42,6 +42,8 @@ namespace Composer\Autoload;
*/
class ClassLoader
{
private $vendorDir;
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
@@ -57,6 +59,13 @@ class ClassLoader
private $missingClasses = array();
private $apcuPrefix;
private static $registeredLoaders = array();
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
}
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@@ -300,6 +309,17 @@ class ClassLoader
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
return;
}
if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
self::$registeredLoaders[$this->vendorDir] = $this;
}
}
/**
@@ -308,6 +328,10 @@ class ClassLoader
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
if (null !== $this->vendorDir) {
unset(self::$registeredLoaders[$this->vendorDir]);
}
}
/**
@@ -367,6 +391,16 @@ class ClassLoader
return $file;
}
/**
* Returns the currently registered loaders indexed by their corresponding vendor directories.
*
* @return self[]
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup

File diff suppressed because it is too large Load Diff

View File

@@ -20,6 +20,8 @@ return array(
'App\\Console\\Commands\\MiningTaxes\\ExecuteMiningTaxesObserversCommand' => $baseDir . '/app/Console/Commands/MiningTaxes/ExecuteMiningTaxesObserversCommand.php',
'App\\Console\\Commands\\MiningTaxes\\ExecuteProcesssMiningTaxesPaymentsCommand' => $baseDir . '/app/Console/Commands/MiningTaxes/ExecuteProcesssMiningTaxesPaymentsCommand.php',
'App\\Console\\Commands\\MiningTaxes\\ExecuteSendMiningTaxesInvoiceCommand' => $baseDir . '/app/Console/Commands/MiningTaxes/ExecuteSendMiningTaxesInvoiceCommand.php',
'App\\Console\\Commands\\Structures\\ExecuteFetchAllianceAssetsCommand' => $baseDir . '/app/Console/Commands/Structures/ExecuteFetchAllianceAssetsCommand.php',
'App\\Console\\Commands\\Structures\\ExecuteFetchAllianceStructuresCommand' => $baseDir . '/app/Console/Commands/Structures/ExecuteFetchAllianceStructuresCommand.php',
'App\\Console\\Commands\\SupplyChain\\EndSupplyChainContractCommand' => $baseDir . '/app/Console/Commands/SupplyChain/EndSupplyChainContractCommand.php',
'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php',
@@ -51,6 +53,9 @@ return array(
'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Http\\Requests\\Request' => $baseDir . '/app/Http/Requests/Request.php',
'App\\Jobs\\Commands\\Assets\\FetchAllianceAssets' => $baseDir . '/app/Jobs/Commands/Assets/FetchAllianceAssets.php',
'App\\Jobs\\Commands\\Assets\\ProcessAllianceAssets' => $baseDir . '/app/Jobs/Commands/Assets/ProcessAllianceAssets.php',
'App\\Jobs\\Commands\\Assets\\PurgeAllianceAssets' => $baseDir . '/app/Jobs/Commands/Assets/PurgeAllianceAssets.php',
'App\\Jobs\\Commands\\Data\\PurgeUsers' => $baseDir . '/app/Jobs/Commands/Data/PurgeUsers.php',
'App\\Jobs\\Commands\\Eve\\ItemPricesUpdate' => $baseDir . '/app/Jobs/Commands/Eve/ItemPricesUpdate.php',
'App\\Jobs\\Commands\\Eve\\SendEveMail' => $baseDir . '/app/Jobs/Commands/Eve/SendEveMail.php',
@@ -67,6 +72,9 @@ return array(
'App\\Jobs\\Commands\\MiningTaxes\\SendMiningTaxesInvoicesOld' => $baseDir . '/app/Jobs/Commands/MiningTaxes/SendMiningTaxesInvoicesOld.php',
'App\\Jobs\\Commands\\MiningTaxes\\UpdateMiningTaxesLateInvoices15th' => $baseDir . '/app/Jobs/Commands/MiningTaxes/UpdateMiningTaxesLateInvoices15th.php',
'App\\Jobs\\Commands\\MiningTaxes\\UpdateMiningTaxesLateInvoices1st' => $baseDir . '/app/Jobs/Commands/MiningTaxes/UpdateMiningTaxesLateInvoices1st.php',
'App\\Jobs\\Commands\\Structures\\FetchAllianceStructures' => $baseDir . '/app/Jobs/Commands/Structures/FetchAllianceStructures.php',
'App\\Jobs\\Commands\\Structures\\ProcessAllianceStructures' => $baseDir . '/app/Jobs/Commands/Structures/ProcessAllianceStructures.php',
'App\\Jobs\\Commands\\Structures\\PurgeAllianceStructures' => $baseDir . '/app/Jobs/Commands/Structures/PurgeAllianceStructures.php',
'App\\Jobs\\Commands\\SupplyChain\\EndSupplyChainContractJob' => $baseDir . '/app/Jobs/Commands/SupplyChain/EndSupplyChainContractJob.php',
'App\\Library\\Esi\\Esi' => $baseDir . '/app/Library/Esi/Esi.php',
'App\\Library\\Helpers\\AssetHelper' => $baseDir . '/app/Library/Helpers/AssetHelper.php',
@@ -106,6 +114,9 @@ return array(
'App\\Models\\SRP\\SrpPayout' => $baseDir . '/app/Models/SRP/SrpPayout.php',
'App\\Models\\SRP\\SrpShipType' => $baseDir . '/app/Models/SRP/SrpShipType.php',
'App\\Models\\ScheduledTask\\ScheduleJob' => $baseDir . '/app/Models/ScheduledTask/ScheduleJob.php',
'App\\Models\\Structure\\Asset' => $baseDir . '/app/Models/Structure/Asset.php',
'App\\Models\\Structure\\Service' => $baseDir . '/app/Models/Structure/Service.php',
'App\\Models\\Structure\\Structure' => $baseDir . '/app/Models/Structure/Structure.php',
'App\\Models\\User\\AvailableUserPermission' => $baseDir . '/app/Models/User/AvailableUserPermission.php',
'App\\Models\\User\\AvailableUserRole' => $baseDir . '/app/Models/User/AvailableUserRole.php',
'App\\Models\\User\\User' => $baseDir . '/app/Models/User/User.php',
@@ -364,6 +375,7 @@ return array(
'Dotenv\\Store\\File\\Reader' => $vendorDir . '/vlucas/phpdotenv/src/Store/File/Reader.php',
'Dotenv\\Store\\StoreBuilder' => $vendorDir . '/vlucas/phpdotenv/src/Store/StoreBuilder.php',
'Dotenv\\Store\\StoreInterface' => $vendorDir . '/vlucas/phpdotenv/src/Store/StoreInterface.php',
'Dotenv\\Store\\StringStore' => $vendorDir . '/vlucas/phpdotenv/src/Store/StringStore.php',
'Dotenv\\Validator' => $vendorDir . '/vlucas/phpdotenv/src/Validator.php',
'Egulias\\EmailValidator\\EmailLexer' => $vendorDir . '/egulias/email-validator/src/EmailLexer.php',
'Egulias\\EmailValidator\\EmailParser' => $vendorDir . '/egulias/email-validator/src/EmailParser.php',
@@ -1987,19 +1999,6 @@ return array(
'Jose\\Component\\Checker\\MissingMandatoryClaimException' => $vendorDir . '/web-token/jwt-checker/MissingMandatoryClaimException.php',
'Jose\\Component\\Checker\\MissingMandatoryHeaderParameterException' => $vendorDir . '/web-token/jwt-checker/MissingMandatoryHeaderParameterException.php',
'Jose\\Component\\Checker\\NotBeforeChecker' => $vendorDir . '/web-token/jwt-checker/NotBeforeChecker.php',
'Jose\\Component\\Checker\\Tests\\AlgorithmHeaderCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/AlgorithmHeaderCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\AudienceClaimCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/AudienceClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\AudienceHeaderCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/AudienceHeaderCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\ClaimCheckerManagerFactoryTest' => $vendorDir . '/web-token/jwt-checker/Tests/ClaimCheckerManagerFactoryTest.php',
'Jose\\Component\\Checker\\Tests\\ClaimCheckerManagerTest' => $vendorDir . '/web-token/jwt-checker/Tests/ClaimCheckerManagerTest.php',
'Jose\\Component\\Checker\\Tests\\ExpirationTimeClaimCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/ExpirationTimeClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\HeaderCheckerManagerFactoryTest' => $vendorDir . '/web-token/jwt-checker/Tests/HeaderCheckerManagerFactoryTest.php',
'Jose\\Component\\Checker\\Tests\\IssuedAtClaimCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/IssuedAtClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\NotBeforeClaimCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/NotBeforeClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\Stub\\OtherToken' => $vendorDir . '/web-token/jwt-checker/Tests/Stub/OtherToken.php',
'Jose\\Component\\Checker\\Tests\\Stub\\Token' => $vendorDir . '/web-token/jwt-checker/Tests/Stub/Token.php',
'Jose\\Component\\Checker\\Tests\\Stub\\TokenSupport' => $vendorDir . '/web-token/jwt-checker/Tests/Stub/TokenSupport.php',
'Jose\\Component\\Checker\\Tests\\UnencodedPayloadHeaderCheckerTest' => $vendorDir . '/web-token/jwt-checker/Tests/UnencodedPayloadHeaderCheckerTest.php',
'Jose\\Component\\Checker\\TokenTypeSupport' => $vendorDir . '/web-token/jwt-checker/TokenTypeSupport.php',
'Jose\\Component\\Checker\\UnencodedPayloadChecker' => $vendorDir . '/web-token/jwt-checker/UnencodedPayloadChecker.php',
'Jose\\Component\\Core\\Algorithm' => $vendorDir . '/web-token/jwt-core/Algorithm.php',
@@ -2008,11 +2007,6 @@ return array(
'Jose\\Component\\Core\\JWK' => $vendorDir . '/web-token/jwt-core/JWK.php',
'Jose\\Component\\Core\\JWKSet' => $vendorDir . '/web-token/jwt-core/JWKSet.php',
'Jose\\Component\\Core\\JWT' => $vendorDir . '/web-token/jwt-core/JWT.php',
'Jose\\Component\\Core\\Tests\\AlgorithmManagerFactoryTest' => $vendorDir . '/web-token/jwt-core/Tests/AlgorithmManagerFactoryTest.php',
'Jose\\Component\\Core\\Tests\\FooAlgorithm' => $vendorDir . '/web-token/jwt-core/Tests/FooAlgorithm.php',
'Jose\\Component\\Core\\Tests\\JWKSetTest' => $vendorDir . '/web-token/jwt-core/Tests/JWKSetTest.php',
'Jose\\Component\\Core\\Tests\\JWKTest' => $vendorDir . '/web-token/jwt-core/Tests/JWKTest.php',
'Jose\\Component\\Core\\Tests\\JsonConverterTest' => $vendorDir . '/web-token/jwt-core/Tests/JsonConverterTest.php',
'Jose\\Component\\Core\\Util\\BigInteger' => $vendorDir . '/web-token/jwt-core/Util/BigInteger.php',
'Jose\\Component\\Core\\Util\\ECKey' => $vendorDir . '/web-token/jwt-core/Util/ECKey.php',
'Jose\\Component\\Core\\Util\\ECSignature' => $vendorDir . '/web-token/jwt-core/Util/ECSignature.php',
@@ -2046,30 +2040,6 @@ return array(
'Jose\\Component\\Encryption\\Serializer\\JWESerializer' => $vendorDir . '/web-token/jwt-encryption/Serializer/JWESerializer.php',
'Jose\\Component\\Encryption\\Serializer\\JWESerializerManager' => $vendorDir . '/web-token/jwt-encryption/Serializer/JWESerializerManager.php',
'Jose\\Component\\Encryption\\Serializer\\JWESerializerManagerFactory' => $vendorDir . '/web-token/jwt-encryption/Serializer/JWESerializerManagerFactory.php',
'Jose\\Component\\Encryption\\Tests\\CompressionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/CompressionTest.php',
'Jose\\Component\\Encryption\\Tests\\ECDHESWithX25519EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/ECDHESWithX25519EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\EncrypterTest' => $vendorDir . '/web-token/jwt-encryption/Tests/EncrypterTest.php',
'Jose\\Component\\Encryption\\Tests\\EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\InvalidCurveAttackTest' => $vendorDir . '/web-token/jwt-encryption/Tests/InvalidCurveAttackTest.php',
'Jose\\Component\\Encryption\\Tests\\JWEFlattenedTest' => $vendorDir . '/web-token/jwt-encryption/Tests/JWEFlattenedTest.php',
'Jose\\Component\\Encryption\\Tests\\JWELoaderTest' => $vendorDir . '/web-token/jwt-encryption/Tests/JWELoaderTest.php',
'Jose\\Component\\Encryption\\Tests\\JWESplitTest' => $vendorDir . '/web-token/jwt-encryption/Tests/JWESplitTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionProtectedContentOnlyTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithCompressionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A256GCMKWAndA128CBC_HS256EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\DirAndA128GCMEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/DirAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\ECDH_ES_A128KWAndA128GCMEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\ECDH_ES_AndA128CBC_HS256EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\MultipleRecipientEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/MultipleRecipientEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\RSA1_5AndA128CBC_HS256EncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\RSA_OAEPAndA256GCMEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RSAEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAKeyEncryptionTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RSAKeyEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAKeyWithoutAllPrimesTest' => $vendorDir . '/web-token/jwt-encryption/Tests/RSAKeyWithoutAllPrimesTest.php',
'Jose\\Component\\Signature\\Algorithm\\ECDSA' => $vendorDir . '/web-token/jwt-signature-algorithm-ecdsa/ECDSA.php',
'Jose\\Component\\Signature\\Algorithm\\ES256' => $vendorDir . '/web-token/jwt-signature-algorithm-ecdsa/ES256.php',
'Jose\\Component\\Signature\\Algorithm\\ES384' => $vendorDir . '/web-token/jwt-signature-algorithm-ecdsa/ES384.php',
@@ -2106,15 +2076,6 @@ return array(
'Jose\\Component\\Signature\\Serializer\\JWSSerializerManagerFactory' => $vendorDir . '/web-token/jwt-signature/Serializer/JWSSerializerManagerFactory.php',
'Jose\\Component\\Signature\\Serializer\\Serializer' => $vendorDir . '/web-token/jwt-signature/Serializer/Serializer.php',
'Jose\\Component\\Signature\\Signature' => $vendorDir . '/web-token/jwt-signature/Signature.php',
'Jose\\Component\\Signature\\Tests\\ForeignJWTTest' => $vendorDir . '/web-token/jwt-signature/Tests/ForeignJWTTest.php',
'Jose\\Component\\Signature\\Tests\\JWSFlattenedTest' => $vendorDir . '/web-token/jwt-signature/Tests/JWSFlattenedTest.php',
'Jose\\Component\\Signature\\Tests\\JWSLoaderTest' => $vendorDir . '/web-token/jwt-signature/Tests/JWSLoaderTest.php',
'Jose\\Component\\Signature\\Tests\\JWSSplitTest' => $vendorDir . '/web-token/jwt-signature/Tests/JWSSplitTest.php',
'Jose\\Component\\Signature\\Tests\\JWSTest' => $vendorDir . '/web-token/jwt-signature/Tests/JWSTest.php',
'Jose\\Component\\Signature\\Tests\\RFC7520\\MultipleSignaturesTest' => $vendorDir . '/web-token/jwt-signature/Tests/RFC7520/MultipleSignaturesTest.php',
'Jose\\Component\\Signature\\Tests\\RFC7520\\NestingTest' => $vendorDir . '/web-token/jwt-signature/Tests/RFC7520/NestingTest.php',
'Jose\\Component\\Signature\\Tests\\SignatureTest' => $vendorDir . '/web-token/jwt-signature/Tests/SignatureTest.php',
'Jose\\Component\\Signature\\Tests\\SignerTest' => $vendorDir . '/web-token/jwt-signature/Tests/SignerTest.php',
'Jose\\Easy\\AbstractBuilder' => $vendorDir . '/web-token/jwt-easy/AbstractBuilder.php',
'Jose\\Easy\\AbstractLoader' => $vendorDir . '/web-token/jwt-easy/AbstractLoader.php',
'Jose\\Easy\\AlgorithmProvider' => $vendorDir . '/web-token/jwt-easy/AlgorithmProvider.php',
@@ -2607,6 +2568,7 @@ return array(
'League\\CommonMark\\Inline\\Renderer\\TextRenderer' => $vendorDir . '/league/commonmark/src/Inline/Renderer/TextRenderer.php',
'League\\CommonMark\\Input\\MarkdownInput' => $vendorDir . '/league/commonmark/src/Input/MarkdownInput.php',
'League\\CommonMark\\Input\\MarkdownInputInterface' => $vendorDir . '/league/commonmark/src/Input/MarkdownInputInterface.php',
'League\\CommonMark\\MarkdownConverter' => $vendorDir . '/league/commonmark/src/MarkdownConverter.php',
'League\\CommonMark\\MarkdownConverterInterface' => $vendorDir . '/league/commonmark/src/MarkdownConverterInterface.php',
'League\\CommonMark\\Node\\Node' => $vendorDir . '/league/commonmark/src/Node/Node.php',
'League\\CommonMark\\Node\\NodeWalker' => $vendorDir . '/league/commonmark/src/Node/NodeWalker.php',
@@ -3411,6 +3373,7 @@ return array(
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',
'PharIo\\Version\\NoPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
@@ -4327,6 +4290,7 @@ return array(
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
@@ -4901,6 +4865,7 @@ return array(
'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php',
'Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php',
'Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php',
'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php',
'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php',

View File

@@ -25,7 +25,7 @@ class ComposerAutoloaderInitc3f953f8a7291d41a76e1664339777c9
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInitc3f953f8a7291d41a76e1664339777c9', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitc3f953f8a7291d41a76e1664339777c9', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());

View File

@@ -570,6 +570,8 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Console\\Commands\\MiningTaxes\\ExecuteMiningTaxesObserversCommand' => __DIR__ . '/../..' . '/app/Console/Commands/MiningTaxes/ExecuteMiningTaxesObserversCommand.php',
'App\\Console\\Commands\\MiningTaxes\\ExecuteProcesssMiningTaxesPaymentsCommand' => __DIR__ . '/../..' . '/app/Console/Commands/MiningTaxes/ExecuteProcesssMiningTaxesPaymentsCommand.php',
'App\\Console\\Commands\\MiningTaxes\\ExecuteSendMiningTaxesInvoiceCommand' => __DIR__ . '/../..' . '/app/Console/Commands/MiningTaxes/ExecuteSendMiningTaxesInvoiceCommand.php',
'App\\Console\\Commands\\Structures\\ExecuteFetchAllianceAssetsCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Structures/ExecuteFetchAllianceAssetsCommand.php',
'App\\Console\\Commands\\Structures\\ExecuteFetchAllianceStructuresCommand' => __DIR__ . '/../..' . '/app/Console/Commands/Structures/ExecuteFetchAllianceStructuresCommand.php',
'App\\Console\\Commands\\SupplyChain\\EndSupplyChainContractCommand' => __DIR__ . '/../..' . '/app/Console/Commands/SupplyChain/EndSupplyChainContractCommand.php',
'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',
'App\\Exceptions\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php',
@@ -601,6 +603,9 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php',
'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php',
'App\\Http\\Requests\\Request' => __DIR__ . '/../..' . '/app/Http/Requests/Request.php',
'App\\Jobs\\Commands\\Assets\\FetchAllianceAssets' => __DIR__ . '/../..' . '/app/Jobs/Commands/Assets/FetchAllianceAssets.php',
'App\\Jobs\\Commands\\Assets\\ProcessAllianceAssets' => __DIR__ . '/../..' . '/app/Jobs/Commands/Assets/ProcessAllianceAssets.php',
'App\\Jobs\\Commands\\Assets\\PurgeAllianceAssets' => __DIR__ . '/../..' . '/app/Jobs/Commands/Assets/PurgeAllianceAssets.php',
'App\\Jobs\\Commands\\Data\\PurgeUsers' => __DIR__ . '/../..' . '/app/Jobs/Commands/Data/PurgeUsers.php',
'App\\Jobs\\Commands\\Eve\\ItemPricesUpdate' => __DIR__ . '/../..' . '/app/Jobs/Commands/Eve/ItemPricesUpdate.php',
'App\\Jobs\\Commands\\Eve\\SendEveMail' => __DIR__ . '/../..' . '/app/Jobs/Commands/Eve/SendEveMail.php',
@@ -617,6 +622,9 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Jobs\\Commands\\MiningTaxes\\SendMiningTaxesInvoicesOld' => __DIR__ . '/../..' . '/app/Jobs/Commands/MiningTaxes/SendMiningTaxesInvoicesOld.php',
'App\\Jobs\\Commands\\MiningTaxes\\UpdateMiningTaxesLateInvoices15th' => __DIR__ . '/../..' . '/app/Jobs/Commands/MiningTaxes/UpdateMiningTaxesLateInvoices15th.php',
'App\\Jobs\\Commands\\MiningTaxes\\UpdateMiningTaxesLateInvoices1st' => __DIR__ . '/../..' . '/app/Jobs/Commands/MiningTaxes/UpdateMiningTaxesLateInvoices1st.php',
'App\\Jobs\\Commands\\Structures\\FetchAllianceStructures' => __DIR__ . '/../..' . '/app/Jobs/Commands/Structures/FetchAllianceStructures.php',
'App\\Jobs\\Commands\\Structures\\ProcessAllianceStructures' => __DIR__ . '/../..' . '/app/Jobs/Commands/Structures/ProcessAllianceStructures.php',
'App\\Jobs\\Commands\\Structures\\PurgeAllianceStructures' => __DIR__ . '/../..' . '/app/Jobs/Commands/Structures/PurgeAllianceStructures.php',
'App\\Jobs\\Commands\\SupplyChain\\EndSupplyChainContractJob' => __DIR__ . '/../..' . '/app/Jobs/Commands/SupplyChain/EndSupplyChainContractJob.php',
'App\\Library\\Esi\\Esi' => __DIR__ . '/../..' . '/app/Library/Esi/Esi.php',
'App\\Library\\Helpers\\AssetHelper' => __DIR__ . '/../..' . '/app/Library/Helpers/AssetHelper.php',
@@ -656,6 +664,9 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Models\\SRP\\SrpPayout' => __DIR__ . '/../..' . '/app/Models/SRP/SrpPayout.php',
'App\\Models\\SRP\\SrpShipType' => __DIR__ . '/../..' . '/app/Models/SRP/SrpShipType.php',
'App\\Models\\ScheduledTask\\ScheduleJob' => __DIR__ . '/../..' . '/app/Models/ScheduledTask/ScheduleJob.php',
'App\\Models\\Structure\\Asset' => __DIR__ . '/../..' . '/app/Models/Structure/Asset.php',
'App\\Models\\Structure\\Service' => __DIR__ . '/../..' . '/app/Models/Structure/Service.php',
'App\\Models\\Structure\\Structure' => __DIR__ . '/../..' . '/app/Models/Structure/Structure.php',
'App\\Models\\User\\AvailableUserPermission' => __DIR__ . '/../..' . '/app/Models/User/AvailableUserPermission.php',
'App\\Models\\User\\AvailableUserRole' => __DIR__ . '/../..' . '/app/Models/User/AvailableUserRole.php',
'App\\Models\\User\\User' => __DIR__ . '/../..' . '/app/Models/User/User.php',
@@ -914,6 +925,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Dotenv\\Store\\File\\Reader' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Store/File/Reader.php',
'Dotenv\\Store\\StoreBuilder' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Store/StoreBuilder.php',
'Dotenv\\Store\\StoreInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Store/StoreInterface.php',
'Dotenv\\Store\\StringStore' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Store/StringStore.php',
'Dotenv\\Validator' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Validator.php',
'Egulias\\EmailValidator\\EmailLexer' => __DIR__ . '/..' . '/egulias/email-validator/src/EmailLexer.php',
'Egulias\\EmailValidator\\EmailParser' => __DIR__ . '/..' . '/egulias/email-validator/src/EmailParser.php',
@@ -2537,19 +2549,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Jose\\Component\\Checker\\MissingMandatoryClaimException' => __DIR__ . '/..' . '/web-token/jwt-checker/MissingMandatoryClaimException.php',
'Jose\\Component\\Checker\\MissingMandatoryHeaderParameterException' => __DIR__ . '/..' . '/web-token/jwt-checker/MissingMandatoryHeaderParameterException.php',
'Jose\\Component\\Checker\\NotBeforeChecker' => __DIR__ . '/..' . '/web-token/jwt-checker/NotBeforeChecker.php',
'Jose\\Component\\Checker\\Tests\\AlgorithmHeaderCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/AlgorithmHeaderCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\AudienceClaimCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/AudienceClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\AudienceHeaderCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/AudienceHeaderCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\ClaimCheckerManagerFactoryTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/ClaimCheckerManagerFactoryTest.php',
'Jose\\Component\\Checker\\Tests\\ClaimCheckerManagerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/ClaimCheckerManagerTest.php',
'Jose\\Component\\Checker\\Tests\\ExpirationTimeClaimCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/ExpirationTimeClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\HeaderCheckerManagerFactoryTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/HeaderCheckerManagerFactoryTest.php',
'Jose\\Component\\Checker\\Tests\\IssuedAtClaimCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/IssuedAtClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\NotBeforeClaimCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/NotBeforeClaimCheckerTest.php',
'Jose\\Component\\Checker\\Tests\\Stub\\OtherToken' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/Stub/OtherToken.php',
'Jose\\Component\\Checker\\Tests\\Stub\\Token' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/Stub/Token.php',
'Jose\\Component\\Checker\\Tests\\Stub\\TokenSupport' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/Stub/TokenSupport.php',
'Jose\\Component\\Checker\\Tests\\UnencodedPayloadHeaderCheckerTest' => __DIR__ . '/..' . '/web-token/jwt-checker/Tests/UnencodedPayloadHeaderCheckerTest.php',
'Jose\\Component\\Checker\\TokenTypeSupport' => __DIR__ . '/..' . '/web-token/jwt-checker/TokenTypeSupport.php',
'Jose\\Component\\Checker\\UnencodedPayloadChecker' => __DIR__ . '/..' . '/web-token/jwt-checker/UnencodedPayloadChecker.php',
'Jose\\Component\\Core\\Algorithm' => __DIR__ . '/..' . '/web-token/jwt-core/Algorithm.php',
@@ -2558,11 +2557,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Jose\\Component\\Core\\JWK' => __DIR__ . '/..' . '/web-token/jwt-core/JWK.php',
'Jose\\Component\\Core\\JWKSet' => __DIR__ . '/..' . '/web-token/jwt-core/JWKSet.php',
'Jose\\Component\\Core\\JWT' => __DIR__ . '/..' . '/web-token/jwt-core/JWT.php',
'Jose\\Component\\Core\\Tests\\AlgorithmManagerFactoryTest' => __DIR__ . '/..' . '/web-token/jwt-core/Tests/AlgorithmManagerFactoryTest.php',
'Jose\\Component\\Core\\Tests\\FooAlgorithm' => __DIR__ . '/..' . '/web-token/jwt-core/Tests/FooAlgorithm.php',
'Jose\\Component\\Core\\Tests\\JWKSetTest' => __DIR__ . '/..' . '/web-token/jwt-core/Tests/JWKSetTest.php',
'Jose\\Component\\Core\\Tests\\JWKTest' => __DIR__ . '/..' . '/web-token/jwt-core/Tests/JWKTest.php',
'Jose\\Component\\Core\\Tests\\JsonConverterTest' => __DIR__ . '/..' . '/web-token/jwt-core/Tests/JsonConverterTest.php',
'Jose\\Component\\Core\\Util\\BigInteger' => __DIR__ . '/..' . '/web-token/jwt-core/Util/BigInteger.php',
'Jose\\Component\\Core\\Util\\ECKey' => __DIR__ . '/..' . '/web-token/jwt-core/Util/ECKey.php',
'Jose\\Component\\Core\\Util\\ECSignature' => __DIR__ . '/..' . '/web-token/jwt-core/Util/ECSignature.php',
@@ -2596,30 +2590,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Jose\\Component\\Encryption\\Serializer\\JWESerializer' => __DIR__ . '/..' . '/web-token/jwt-encryption/Serializer/JWESerializer.php',
'Jose\\Component\\Encryption\\Serializer\\JWESerializerManager' => __DIR__ . '/..' . '/web-token/jwt-encryption/Serializer/JWESerializerManager.php',
'Jose\\Component\\Encryption\\Serializer\\JWESerializerManagerFactory' => __DIR__ . '/..' . '/web-token/jwt-encryption/Serializer/JWESerializerManagerFactory.php',
'Jose\\Component\\Encryption\\Tests\\CompressionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/CompressionTest.php',
'Jose\\Component\\Encryption\\Tests\\ECDHESWithX25519EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/ECDHESWithX25519EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\EncrypterTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/EncrypterTest.php',
'Jose\\Component\\Encryption\\Tests\\EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\InvalidCurveAttackTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/InvalidCurveAttackTest.php',
'Jose\\Component\\Encryption\\Tests\\JWEFlattenedTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/JWEFlattenedTest.php',
'Jose\\Component\\Encryption\\Tests\\JWELoaderTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/JWELoaderTest.php',
'Jose\\Component\\Encryption\\Tests\\JWESplitTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/JWESplitTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionProtectedContentOnlyTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithCompressionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\A256GCMKWAndA128CBC_HS256EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\DirAndA128GCMEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/DirAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\ECDH_ES_A128KWAndA128GCMEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\ECDH_ES_AndA128CBC_HS256EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\MultipleRecipientEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/MultipleRecipientEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\RSA1_5AndA128CBC_HS256EncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RFC7520\\RSA_OAEPAndA256GCMEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RSAEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAKeyEncryptionTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RSAKeyEncryptionTest.php',
'Jose\\Component\\Encryption\\Tests\\RSAKeyWithoutAllPrimesTest' => __DIR__ . '/..' . '/web-token/jwt-encryption/Tests/RSAKeyWithoutAllPrimesTest.php',
'Jose\\Component\\Signature\\Algorithm\\ECDSA' => __DIR__ . '/..' . '/web-token/jwt-signature-algorithm-ecdsa/ECDSA.php',
'Jose\\Component\\Signature\\Algorithm\\ES256' => __DIR__ . '/..' . '/web-token/jwt-signature-algorithm-ecdsa/ES256.php',
'Jose\\Component\\Signature\\Algorithm\\ES384' => __DIR__ . '/..' . '/web-token/jwt-signature-algorithm-ecdsa/ES384.php',
@@ -2656,15 +2626,6 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Jose\\Component\\Signature\\Serializer\\JWSSerializerManagerFactory' => __DIR__ . '/..' . '/web-token/jwt-signature/Serializer/JWSSerializerManagerFactory.php',
'Jose\\Component\\Signature\\Serializer\\Serializer' => __DIR__ . '/..' . '/web-token/jwt-signature/Serializer/Serializer.php',
'Jose\\Component\\Signature\\Signature' => __DIR__ . '/..' . '/web-token/jwt-signature/Signature.php',
'Jose\\Component\\Signature\\Tests\\ForeignJWTTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/ForeignJWTTest.php',
'Jose\\Component\\Signature\\Tests\\JWSFlattenedTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/JWSFlattenedTest.php',
'Jose\\Component\\Signature\\Tests\\JWSLoaderTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/JWSLoaderTest.php',
'Jose\\Component\\Signature\\Tests\\JWSSplitTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/JWSSplitTest.php',
'Jose\\Component\\Signature\\Tests\\JWSTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/JWSTest.php',
'Jose\\Component\\Signature\\Tests\\RFC7520\\MultipleSignaturesTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/RFC7520/MultipleSignaturesTest.php',
'Jose\\Component\\Signature\\Tests\\RFC7520\\NestingTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/RFC7520/NestingTest.php',
'Jose\\Component\\Signature\\Tests\\SignatureTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/SignatureTest.php',
'Jose\\Component\\Signature\\Tests\\SignerTest' => __DIR__ . '/..' . '/web-token/jwt-signature/Tests/SignerTest.php',
'Jose\\Easy\\AbstractBuilder' => __DIR__ . '/..' . '/web-token/jwt-easy/AbstractBuilder.php',
'Jose\\Easy\\AbstractLoader' => __DIR__ . '/..' . '/web-token/jwt-easy/AbstractLoader.php',
'Jose\\Easy\\AlgorithmProvider' => __DIR__ . '/..' . '/web-token/jwt-easy/AlgorithmProvider.php',
@@ -3157,6 +3118,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'League\\CommonMark\\Inline\\Renderer\\TextRenderer' => __DIR__ . '/..' . '/league/commonmark/src/Inline/Renderer/TextRenderer.php',
'League\\CommonMark\\Input\\MarkdownInput' => __DIR__ . '/..' . '/league/commonmark/src/Input/MarkdownInput.php',
'League\\CommonMark\\Input\\MarkdownInputInterface' => __DIR__ . '/..' . '/league/commonmark/src/Input/MarkdownInputInterface.php',
'League\\CommonMark\\MarkdownConverter' => __DIR__ . '/..' . '/league/commonmark/src/MarkdownConverter.php',
'League\\CommonMark\\MarkdownConverterInterface' => __DIR__ . '/..' . '/league/commonmark/src/MarkdownConverterInterface.php',
'League\\CommonMark\\Node\\Node' => __DIR__ . '/..' . '/league/commonmark/src/Node/Node.php',
'League\\CommonMark\\Node\\NodeWalker' => __DIR__ . '/..' . '/league/commonmark/src/Node/NodeWalker.php',
@@ -3961,6 +3923,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php',
'PharIo\\Version\\NoPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',
'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',
@@ -4877,6 +4840,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php',
'Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php',
'Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',
@@ -5451,6 +5415,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php',
'Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php',
'Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php',
'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php',
'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php',

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -35,6 +35,7 @@ use Egulias\EmailValidator\Warning\TLD;
class DomainPart extends Parser
{
const DOMAIN_MAX_LENGTH = 254;
const LABEL_MAX_LENGTH = 63;
/**
* @var string
@@ -160,6 +161,7 @@ class DomainPart extends Parser
protected function doParseDomainPart()
{
$domain = '';
$label = '';
$openedParenthesis = 0;
do {
$prev = $this->lexer->getPrevious();
@@ -190,7 +192,12 @@ class DomainPart extends Parser
$this->parseDomainLiteral();
}
$this->checkLabelLength($prev);
if ($this->lexer->token['type'] === EmailLexer::S_DOT) {
$this->checkLabelLength($label);
$label = '';
} else {
$label .= $this->lexer->token['value'];
}
if ($this->isFWS()) {
$this->parseFWS();
@@ -203,6 +210,8 @@ class DomainPart extends Parser
}
} while (null !== $this->lexer->token['type']);
$this->checkLabelLength($label);
return $domain;
}
@@ -386,16 +395,31 @@ class DomainPart extends Parser
return true;
}
protected function checkLabelLength(array $prev)
/**
* @param string $label
*/
protected function checkLabelLength($label)
{
if ($this->lexer->token['type'] === EmailLexer::S_DOT &&
$prev['type'] === EmailLexer::GENERIC &&
strlen($prev['value']) > 63
) {
if ($this->isLabelTooLong($label)) {
$this->warnings[LabelTooLong::CODE] = new LabelTooLong();
}
}
/**
* @param string $label
* @return bool
*/
private function isLabelTooLong($label)
{
if (preg_match('/[^\x00-\x7F]/', $label)) {
idn_to_ascii($label, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46, $idnaInfo);
return (bool) ($idnaInfo['errors'] & IDNA_ERROR_LABEL_TOO_LONG);
}
return strlen($label) > self::LABEL_MAX_LENGTH;
}
protected function parseDomainComments()
{
$this->isUnclosedComment();

View File

@@ -29,7 +29,7 @@ abstract class Warning
*/
public function code()
{
return self::CODE;
return static::CODE;
}
/**

View File

@@ -1,5 +1,9 @@
language: php
env:
global:
- XDEBUG_MODE=coverage
php:
- 7.2
- 7.3

View File

@@ -77,6 +77,7 @@ class CheckAccess implements AccessInterface
'/alliances/{alliance_id}/contacts/' => 'esi-alliances.read_contacts.v1',
'/characters/{character_id}/contacts/labels/' => 'esi-characters.read_contacts.v1',
'/corporations/{corporation_id}/contacts/labels/' => 'esi-corporations.read_contacts.v1',
'/alliances/{alliance_id}/contacts/labels/' => 'esi-alliances.read_contacts.v1',
'/characters/{character_id}/contracts/' => 'esi-contracts.read_character_contracts.v1',
'/characters/{character_id}/contracts/{contract_id}/items/' => 'esi-contracts.read_character_contracts.v1',
'/characters/{character_id}/contracts/{contract_id}/bids/' => 'esi-contracts.read_character_contracts.v1',
@@ -152,8 +153,10 @@ class CheckAccess implements AccessInterface
'/markets/groups/' => 'public',
'/markets/groups/{market_group_id}/' => 'public',
'/characters/{character_id}/orders/' => 'esi-markets.read_character_orders.v1',
'/characters/{character_id}/orders/history/' => 'esi-markets.read_character_orders.v1',
'/markets/{region_id}/types/' => 'public',
'/corporations/{corporation_id}/orders/' => 'esi-markets.read_corporation_orders.v1',
'/corporations/{corporation_id}/orders/history/' => 'esi-markets.read_corporation_orders.v1',
'/opportunities/groups/' => 'public',
'/opportunities/groups/{group_id}/' => 'public',
'/opportunities/tasks/' => 'public',

View File

@@ -45,7 +45,7 @@ class Eseye
/**
* The Eseye Version.
*/
const VERSION = '2.3.0';
const VERSION = '2.3.2';
/**
* @var \Seat\Eseye\Containers\EsiAuthentication

View File

@@ -1,3 +1,7 @@
#### v2.3.0 (2021-04)
* Allow creating an unsigned CSR and adding the signature later
https://github.com/fgrosse/PHPASN1/pull/82
#### v2.2.0 (2020-08)
* support polyfills for bcmath and gmp, and add a composer.json
suggestion for the `phpseclib/bcmath_polyfill` for servers unable

View File

@@ -15,6 +15,7 @@ class OID
const RSA_ENCRYPTION = '1.2.840.113549.1.1.1';
const MD5_WITH_RSA_ENCRYPTION = '1.2.840.113549.1.1.4';
const SHA1_WITH_RSA_SIGNATURE = '1.2.840.113549.1.1.5';
const SHA256_WITH_RSA_SIGNATURE = '1.2.840.113549.1.1.11';
const PKCS9_EMAIL = '1.2.840.113549.1.9.1';
const PKCS9_UNSTRUCTURED_NAME = '1.2.840.113549.1.9.2';
const PKCS9_CONTENT_TYPE = '1.2.840.113549.1.9.3';

View File

@@ -41,7 +41,7 @@ class CSR extends Sequence
* @param string $signature
* @param string $signatureAlgorithm
*/
public function __construct($commonName, $email, $organization, $locality, $state, $country, $organizationalUnit, $publicKey, $signature, $signatureAlgorithm = OID::SHA1_WITH_RSA_SIGNATURE)
public function __construct($commonName, $email, $organization, $locality, $state, $country, $organizationalUnit, $publicKey, $signature = null, $signatureAlgorithm = OID::SHA1_WITH_RSA_SIGNATURE)
{
$this->subject = new CertificateSubject(
$commonName,
@@ -56,8 +56,10 @@ class CSR extends Sequence
$this->signature = $signature;
$this->signatureAlgorithm = $signatureAlgorithm;
if (isset($signature)) {
$this->createCSRSequence();
}
}
protected function createCSRSequence()
{
@@ -68,11 +70,31 @@ class CSR extends Sequence
$certRequestInfo = new Sequence($versionNr, $this->subject, $publicKey);
// Clear the underlying Construct
$this->rewind();
$this->children = [];
$this->addChild($certRequestInfo);
$this->addChild($signatureAlgorithm);
$this->addChild($signature);
}
public function getSignatureSubject()
{
$versionNr = new Integer(self::CSR_VERSION_NR);
$publicKey = new PublicKey($this->publicKey);
$certRequestInfo = new Sequence($versionNr, $this->subject, $publicKey);
return $certRequestInfo->getBinary();
}
public function setSignature($signature, $signatureAlgorithm = OID::SHA1_WITH_RSA_SIGNATURE)
{
$this->signature = $signature;
$this->signatureAlgorithm = $signatureAlgorithm;
$this->createCSRSequence();
}
public function __toString()
{
$tmp = base64_encode($this->getBinary());

View File

@@ -0,0 +1 @@
github: denis-sokolov

2
vendor/filp/whoops/.mailmap vendored Normal file
View File

@@ -0,0 +1,2 @@
Denis Sokolov <denis@sokolov.cc>
Filipe Dobreira <dobreira@gmail.com>

View File

@@ -1,3 +1,23 @@
# 2.12.1
* Avoid redirecting away from an error.
# 2.12.0
* Hide non-string values in super globals when requested.
# 2.11.0
* Customize exit code
# 2.10.0
* Better chaining on handler classes
# 2.9.2
* Fix copy button styles
# 2.9.1
* Fix xdebug function crash on PHP 8

View File

@@ -11,6 +11,9 @@
"role": "Developer"
}
],
"scripts": {
"test": "phpunit --testdox tests"
},
"require": {
"php": "^5.5.9 || ^7.0 || ^8.0",
"psr/log": "^1.0.1"

View File

@@ -28,7 +28,7 @@ class JsonResponseHandler extends Handler
/**
* Returns errors[[]] instead of error[] to be in compliance with the json:api spec
* @param bool $jsonApi Default is false
* @return $this
* @return static
*/
public function setJsonApi($jsonApi = false)
{
@@ -38,7 +38,7 @@ class JsonResponseHandler extends Handler
/**
* @param bool|null $returnFrames
* @return bool|$this
* @return bool|static
*/
public function addTraceToOutput($returnFrames = null)
{

View File

@@ -97,17 +97,18 @@ class PlainTextHandler extends Handler
* Set var dumper callback function.
*
* @param callable $dumper
* @return void
* @return static
*/
public function setDumper(callable $dumper)
{
$this->dumper = $dumper;
return $this;
}
/**
* Add error trace to output.
* @param bool|null $addTraceToOutput
* @return bool|$this
* @return bool|static
*/
public function addTraceToOutput($addTraceToOutput = null)
{
@@ -122,7 +123,7 @@ class PlainTextHandler extends Handler
/**
* Add previous exceptions to output.
* @param bool|null $addPreviousToOutput
* @return bool|$this
* @return bool|static
*/
public function addPreviousToOutput($addPreviousToOutput = null)
{
@@ -138,7 +139,7 @@ class PlainTextHandler extends Handler
* Add error trace function arguments to output.
* Set to True for all frame args, or integer for the n first frame args.
* @param bool|integer|null $addTraceFunctionArgsToOutput
* @return null|bool|integer
* @return static|bool|integer
*/
public function addTraceFunctionArgsToOutput($addTraceFunctionArgsToOutput = null)
{
@@ -151,6 +152,7 @@ class PlainTextHandler extends Handler
} else {
$this->addTraceFunctionArgsToOutput = $addTraceFunctionArgsToOutput;
}
return $this;
}
/**
@@ -158,10 +160,12 @@ class PlainTextHandler extends Handler
* If the limit is reached, the var_dump output is discarded.
* Prevent memory limit errors.
* @var integer
* @return static
*/
public function setTraceFunctionArgsOutputLimit($traceFunctionArgsOutputLimit)
{
$this->traceFunctionArgsOutputLimit = (integer) $traceFunctionArgsOutputLimit;
return $this;
}
/**
@@ -199,7 +203,7 @@ class PlainTextHandler extends Handler
/**
* Only output to logger.
* @param bool|null $loggerOnly
* @return null|bool
* @return static|bool
*/
public function loggerOnly($loggerOnly = null)
{
@@ -208,6 +212,7 @@ class PlainTextHandler extends Handler
}
$this->loggerOnly = (bool) $loggerOnly;
return $this;
}
/**

View File

@@ -175,6 +175,8 @@ class PrettyPageHandler extends Handler
/**
* @return int|null
*
* @throws \Exception
*/
public function handle()
{
@@ -349,11 +351,12 @@ class PrettyPageHandler extends Handler
* @param string $label
* @param array $data
*
* @return void
* @return static
*/
public function addDataTable($label, array $data)
{
$this->extraTables[$label] = $data;
return $this;
}
/**
@@ -368,7 +371,7 @@ class PrettyPageHandler extends Handler
*
* @throws InvalidArgumentException If $callback is not callable
*
* @return void
* @return static
*/
public function addDataTableCallback($label, /* callable */ $callback)
{
@@ -387,6 +390,8 @@ class PrettyPageHandler extends Handler
return [];
}
};
return $this;
}
/**
@@ -418,7 +423,7 @@ class PrettyPageHandler extends Handler
*
* @param bool|null $value
*
* @return bool|null
* @return bool|static
*/
public function handleUnconditionally($value = null)
{
@@ -427,6 +432,7 @@ class PrettyPageHandler extends Handler
}
$this->handleUnconditionally = (bool) $value;
return $this;
}
/**
@@ -447,11 +453,12 @@ class PrettyPageHandler extends Handler
* @param string $identifier
* @param string|callable $resolver
*
* @return void
* @return static
*/
public function addEditor($identifier, $resolver)
{
$this->editors[$identifier] = $resolver;
return $this;
}
/**
@@ -469,7 +476,7 @@ class PrettyPageHandler extends Handler
*
* @throws InvalidArgumentException If invalid argument identifier provided
*
* @return void
* @return static
*/
public function setEditor($editor)
{
@@ -481,6 +488,7 @@ class PrettyPageHandler extends Handler
}
$this->editor = $editor;
return $this;
}
/**
@@ -591,11 +599,12 @@ class PrettyPageHandler extends Handler
*
* @param string $title
*
* @return void
* @return static
*/
public function setPageTitle($title)
{
$this->pageTitle = (string) $title;
return $this;
}
/**
@@ -615,7 +624,7 @@ class PrettyPageHandler extends Handler
*
* @throws InvalidArgumentException If $path is not a valid directory
*
* @return void
* @return static
*/
public function addResourcePath($path)
{
@@ -626,6 +635,7 @@ class PrettyPageHandler extends Handler
}
array_unshift($this->searchPaths, $path);
return $this;
}
/**
@@ -633,11 +643,12 @@ class PrettyPageHandler extends Handler
*
* @param string|null $name
*
* @return void
* @return static
*/
public function addCustomCss($name)
{
$this->customCss = $name;
return $this;
}
/**
@@ -645,11 +656,12 @@ class PrettyPageHandler extends Handler
*
* @param string|null $name
*
* @return void
* @return static
*/
public function addCustomJs($name)
{
$this->customJs = $name;
return $this;
}
/**
@@ -718,11 +730,12 @@ class PrettyPageHandler extends Handler
*
* @param string $resourcesPath
*
* @return void
* @return static
*/
public function setResourcesPath($resourcesPath)
{
$this->addResourcePath($resourcesPath);
return $this;
}
/**
@@ -767,11 +780,12 @@ class PrettyPageHandler extends Handler
* @param string $key The key within the superglobal
* @see hideSuperglobalKey
*
* @return void
* @return static
*/
public function blacklist($superGlobalName, $key)
{
$this->blacklist[$superGlobalName][] = $key;
return $this;
}
/**
@@ -779,7 +793,7 @@ class PrettyPageHandler extends Handler
*
* @param string $superGlobalName The name of the superglobal array, e.g. '_GET'
* @param string $key The key within the superglobal
* @return void
* @return static
*/
public function hideSuperglobalKey($superGlobalName, $key)
{
@@ -789,9 +803,10 @@ class PrettyPageHandler extends Handler
/**
* Checks all values within the given superGlobal array.
*
* Blacklisted values will be replaced by a equal length string cointaining
* only '*' characters. We intentionally dont rely on $GLOBALS as it
* depends on the 'auto_globals_jit' php.ini setting.
* Blacklisted values will be replaced by a equal length string containing
* only '*' characters for string values.
* Non-string values will be replaced with a fixed asterisk count.
* We intentionally dont rely on $GLOBALS as it depends on the 'auto_globals_jit' php.ini setting.
*
* @param array $superGlobal One of the superglobal arrays
* @param string $superGlobalName The name of the superglobal array, e.g. '_GET'
@@ -805,8 +820,8 @@ class PrettyPageHandler extends Handler
$values = $superGlobal;
foreach ($blacklisted as $key) {
if (isset($superGlobal[$key]) && is_string($superGlobal[$key])) {
$values[$key] = str_repeat('*', strlen($superGlobal[$key]));
if (isset($superGlobal[$key])) {
$values[$key] = str_repeat('*', is_string($superGlobal[$key]) ? strlen($superGlobal[$key]) : 3);
}
}

View File

@@ -23,7 +23,7 @@ class XmlResponseHandler extends Handler
/**
* @param bool|null $returnFrames
* @return bool|$this
* @return bool|static
*/
public function addTraceToOutput($returnFrames = null)
{

View File

@@ -100,7 +100,7 @@ Zepto(function($) {
var clipboard = new Clipboard('.clipboard');
var showTooltip = function(elem, msg) {
elem.setAttribute('class', 'clipboard tooltipped tooltipped-s');
elem.classList.add('tooltipped', 'tooltipped-s');
elem.setAttribute('aria-label', msg);
};
@@ -117,7 +117,7 @@ Zepto(function($) {
var btn = document.querySelector('.clipboard');
btn.addEventListener('mouseleave', function(e) {
e.currentTarget.setAttribute('class', 'clipboard');
e.currentTarget.classList.remove('tooltipped', 'tooltipped-s');
e.currentTarget.removeAttribute('aria-label');
});

View File

@@ -38,6 +38,11 @@ final class Run implements RunInterface
*/
private $sendHttpCode = 500;
/**
* @var integer|false
*/
private $sendExitCode = 1;
/**
* @var HandlerInterface[]
*/
@@ -288,6 +293,31 @@ final class Run implements RunInterface
return $this->sendHttpCode = $code;
}
/**
* Should Whoops exit with a specific code on the CLI if possible?
* Whoops will exit with 1 by default, but you can specify something else.
*
* @param int $code
*
* @return int
*
* @throws InvalidArgumentException
*/
public function sendExitCode($code = null)
{
if (func_num_args() == 0) {
return $this->sendExitCode;
}
if ($code < 0 || 255 <= $code) {
throw new InvalidArgumentException(
"Invalid status code '$code', must be between 0 and 254"
);
}
return $this->sendExitCode = (int) $code;
}
/**
* Should Whoops push output directly to the client?
* If this is false, output will be returned by handleException.
@@ -380,7 +410,9 @@ final class Run implements RunInterface
// HHVM fix for https://github.com/facebook/hhvm/issues/4055
$this->system->flushOutputBuffer();
$this->system->stopExecution(1);
$this->system->stopExecution(
$this->sendExitCode()
);
}
return $output;

View File

@@ -90,6 +90,15 @@ interface RunInterface
*/
public function sendHttpCode($code = null);
/**
* Should Whoops exit with a specific code on the CLI if possible?
* Whoops will exit with 1 by default, but you can specify something else.
*
* @param int $code
* @return int
*/
public function sendExitCode($code = null);
/**
* Should Whoops push output directly to the client?
* If this is false, output will be returned by handleException

View File

@@ -124,6 +124,13 @@ class SystemFacade
*/
public function setHttpResponseCode($httpCode)
{
if (!headers_sent()) {
// Ensure that no 'location' header is present as otherwise this
// will override the HTTP code being set here, and mask the
// expected error page.
header_remove('location');
}
return http_response_code($httpCode);
}

View File

@@ -1,5 +1,8 @@
# CHANGELOG
## 1.4.1 - 2021-02-18
- Fixed `each_limit` skipping promises and failing
## 1.4.0 - 2020-09-30

View File

@@ -1,7 +0,0 @@
parameters:
ignoreErrors:
-
message: "#^Parameter \\#1 \\$function of function register_shutdown_function expects callable\\(\\)\\: void, Closure\\(\\)\\: mixed given\\.$#"
count: 1
path: src/TaskQueue.php

View File

@@ -1,10 +0,0 @@
includes:
- phpstan-baseline.neon
parameters:
level: 5
paths:
- src
ignoreErrors:
- "#^Dead catch - Exception is already caught by Throwable above\\.$#"

View File

@@ -1,15 +0,0 @@
<?xml version="1.0"?>
<psalm
errorLevel="4"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
<projectFiles>
<directory name="src" />
<ignoreFiles>
<directory name="vendor" />
</ignoreFiles>
</projectFiles>
</psalm>

View File

@@ -10,6 +10,8 @@ class EachPromise implements PromisorInterface
{
private $pending = [];
private $nextPendingIndex = 0;
/** @var \Iterator|null */
private $iterable;
@@ -121,6 +123,7 @@ class EachPromise implements PromisorInterface
$clearFn = function () {
$this->iterable = $this->concurrency = $this->pending = null;
$this->onFulfilled = $this->onRejected = null;
$this->nextPendingIndex = 0;
};
$this->aggregate->then($clearFn, $clearFn);
@@ -163,11 +166,9 @@ class EachPromise implements PromisorInterface
$promise = Create::promiseFor($this->iterable->current());
$key = $this->iterable->key();
// Iterable keys may not be unique, so we add the promises at the end
// of the pending array and retrieve the array index being used
$this->pending[] = null;
end($this->pending);
$idx = key($this->pending);
// Iterable keys may not be unique, so we use a counter to
// guarantee uniqueness
$idx = $this->nextPendingIndex++;
$this->pending[$idx] = $promise->then(
function ($value) use ($idx, $key) {

View File

@@ -0,0 +1,16 @@
name: BC Check
on:
pull_request:
jobs:
roave-bc-check:
name: Roave BC Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Roave BC Check
uses: docker://nyholm/roave-bc-check-ga

View File

@@ -0,0 +1,30 @@
name: CI
on:
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-latest
strategy:
max-parallel: 10
matrix:
php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
steps:
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: 'none'
extensions: mbstring
- name: Checkout code
uses: actions/checkout@v2
- name: Install dependencies
run: composer update --no-interaction --no-progress --prefer-dist
- name: Run tests
run: make test

View File

@@ -0,0 +1,37 @@
name: Integration
on:
pull_request:
jobs:
build:
name: Test
runs-on: ubuntu-latest
strategy:
max-parallel: 10
matrix:
php: ['7.2', '7.3', '7.4', '8.0']
steps:
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: Checkout code
uses: actions/checkout@v2
- name: Download dependencies
uses: ramsey/composer-install@v1
with:
composer-options: --no-interaction --prefer-dist --optimize-autoloader
- name: Start server
run: php -S 127.0.0.1:10002 tests/Integration/server.php &
- name: Run tests
env:
TEST_SERVER: 127.0.0.1:10002
run: ./vendor/bin/phpunit --testsuite Integration

View File

@@ -0,0 +1,29 @@
name: Static analysis
on:
pull_request:
jobs:
php-cs-fixer:
name: PHP-CS-Fixer
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
coverage: none
extensions: mbstring
- name: Download dependencies
run: composer update --no-interaction --no-progress
- name: Download PHP CS Fixer
run: composer require "friendsofphp/php-cs-fixer:2.18.4"
- name: Execute PHP CS Fixer
run: vendor/bin/php-cs-fixer fix --diff-format udiff --dry-run

View File

@@ -5,57 +5,34 @@ $config = PhpCsFixer\Config::create()
->setRules([
'@PSR2' => true,
'array_syntax' => ['syntax' => 'short'],
'binary_operator_spaces' => ['operators' => ['=>' => null]],
'blank_line_after_opening_tag' => true,
'class_attributes_separation' => ['elements' => ['method']],
'compact_nullable_typehint' => true,
'concat_space' => ['spacing' => 'one'],
'declare_equal_normalize' => ['space' => 'none'],
'declare_strict_types' => false,
'dir_constant' => true,
'final_static_access' => true,
'fully_qualified_strict_types' => true,
'function_to_constant' => true,
'function_typehint_space' => true,
'header_comment' => false,
'is_null' => ['use_yoda_style' => false],
'list_syntax' => ['syntax' => 'short'],
'is_null' => ['use_yoda_style' => true],
'list_syntax' => ['syntax' => 'long'],
'lowercase_cast' => true,
'magic_method_casing' => true,
'modernize_types_casting' => true,
'multiline_comment_opening_closing' => true,
//'native_constant_invocation' => true,
'no_alias_functions' => true,
'no_alternative_syntax' => true,
'no_blank_lines_after_phpdoc' => true,
'no_empty_comment' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_extra_blank_lines' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_spaces_around_offset' => true,
'no_superfluous_phpdoc_tags' => ['allow_mixed' => true],
'no_trailing_comma_in_singleline_array' => true,
'no_unneeded_control_parentheses' => true,
'no_unset_cast' => true,
'no_unused_imports' => true,
'no_useless_else' => true,
'no_useless_return' => true,
'no_whitespace_in_blank_line' => true,
'normalize_index_brace' => true,
'ordered_imports' => true,
'php_unit_construct' => true,
'php_unit_dedicate_assert' => ['target' => 'newest'],
'php_unit_dedicate_assert_internal_type' => ['target' => 'newest'],
'php_unit_expectation' => ['target' => 'newest'],
'php_unit_mock' => ['target' => 'newest'],
'php_unit_mock_short_will_return' => true,
'php_unit_no_expectation_annotation' => ['target' => 'newest'],
'php_unit_ordered_covers' => true,
'php_unit_test_annotation' => ['style' => 'prefix'],
//'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'],
'phpdoc_align' => ['align' => 'vertical'],
//'phpdoc_line_span' => ['method' => 'multi', 'property' => 'multi'],
'phpdoc_no_package' => true,
'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_scalar' => true,
'phpdoc_separation' => true,
@@ -65,17 +42,8 @@ $config = PhpCsFixer\Config::create()
'phpdoc_types' => true,
'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'],
'phpdoc_var_without_name' => true,
'return_assignment' => true,
'short_scalar_cast' => true,
'single_trait_insert_per_statement' => true,
'standardize_not_equals' => true,
//'static_lambda' => true,
'ternary_to_null_coalescing' => true,
'trim_array_spaces' => true,
'visibility_required' => true,
'yoda_style' => false,
// 'native_function_invocation' => true,
'braces' => ['allow_single_line_closure'=>true],
])
->setFinder(
PhpCsFixer\Finder::create()

View File

@@ -7,9 +7,34 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
## Unreleased
## [1.7.0] - 2020-09-30
## 1.8.2 - 2021-04-26
### Fixed
- Handle possibly unset `url` in `stream_get_meta_data`
## 1.8.1 - 2021-03-21
### Fixed
- Issue parsing IPv6 URLs
- Issue modifying ServerRequest lost all its attributes
## 1.8.0 - 2021-03-21
### Added
- Locale independent URL parsing
- Most classes got a `@final` annotation to prepare for 2.0
### Fixed
- Issue when creating stream from `php://input` and curl-ext is not installed
- Broken `Utils::tryFopen()` on PHP 8
## 1.7.0 - 2020-09-30
### Added
@@ -253,7 +278,6 @@ Currently unsupported:
[Unreleased]: https://github.com/guzzle/psr7/compare/1.6.0...HEAD
[1.6.0]: https://github.com/guzzle/psr7/compare/1.5.2...1.6.0
[1.5.2]: https://github.com/guzzle/psr7/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/guzzle/psr7/compare/1.5.0...1.5.1

View File

@@ -8,6 +8,8 @@ use Psr\Http\Message\StreamInterface;
* Reads from multiple streams, one after the other.
*
* This is a read-only stream decorator.
*
* @final
*/
class AppendStream implements StreamInterface
{

View File

@@ -11,6 +11,8 @@ use Psr\Http\Message\StreamInterface;
* This stream returns a "hwm" metadata value that tells upstream consumers
* what the configured high water mark of the stream is, or the maximum
* preferred size of the buffer.
*
* @final
*/
class BufferStream implements StreamInterface
{

View File

@@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface;
/**
* Stream decorator that can cache previously read bytes from a sequentially
* read stream.
*
* @final
*/
class CachingStream implements StreamInterface
{
@@ -21,7 +23,7 @@ class CachingStream implements StreamInterface
/**
* We will treat the buffer object as the body of the stream
*
* @param StreamInterface $stream Stream to cache
* @param StreamInterface $stream Stream to cache. The cursor is assumed to be at the beginning of the stream.
* @param StreamInterface $target Optionally specify where data is cached
*/
public function __construct(
@@ -29,7 +31,7 @@ class CachingStream implements StreamInterface
StreamInterface $target = null
) {
$this->remoteStream = $stream;
$this->stream = $target ?: new Stream(fopen('php://temp', 'r+'));
$this->stream = $target ?: new Stream(Utils::tryFopen('php://temp', 'r+'));
}
public function getSize()

View File

@@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface;
/**
* Stream decorator that begins dropping data once the size of the underlying
* stream becomes too full.
*
* @final
*/
class DroppingStream implements StreamInterface
{

View File

@@ -9,6 +9,8 @@ use Psr\Http\Message\StreamInterface;
*
* Allows for easy testing and extension of a provided stream without needing
* to create a concrete class for a simple extension point.
*
* @final
*/
class FnStream implements StreamInterface
{
@@ -56,6 +58,7 @@ class FnStream implements StreamInterface
/**
* An unserialize would allow the __destruct to run when the unserialized value goes out of scope.
*
* @throws \LogicException
*/
public function __wakeup()

View File

@@ -14,6 +14,8 @@ use Psr\Http\Message\StreamInterface;
*
* @link http://tools.ietf.org/html/rfc1952
* @link http://php.net/manual/en/filters.compression.php
*
* @final
*/
class InflateStream implements StreamInterface
{
@@ -34,6 +36,7 @@ class InflateStream implements StreamInterface
/**
* @param StreamInterface $stream
* @param $header
*
* @return int
*/
private function getLengthOfPossibleFilenameHeader(StreamInterface $stream, $header)

View File

@@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface;
/**
* Lazily reads or writes to a file that is opened only after an IO operation
* take place on the stream.
*
* @final
*/
class LazyOpenStream implements StreamInterface
{
@@ -15,7 +17,7 @@ class LazyOpenStream implements StreamInterface
/** @var string File to open */
private $filename;
/** @var string $mode */
/** @var string */
private $mode;
/**

View File

@@ -4,9 +4,10 @@ namespace GuzzleHttp\Psr7;
use Psr\Http\Message\StreamInterface;
/**
* Decorator used to return only a subset of a stream
* Decorator used to return only a subset of a stream.
*
* @final
*/
class LimitStream implements StreamInterface
{

View File

@@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface;
/**
* Stream that when read returns bytes for a streaming multipart or
* multipart/form-data stream.
*
* @final
*/
class MultipartStream implements StreamInterface
{
@@ -115,9 +117,11 @@ class MultipartStream implements StreamInterface
$disposition = $this->getHeader($headers, 'content-disposition');
if (!$disposition) {
$headers['Content-Disposition'] = ($filename === '0' || $filename)
? sprintf('form-data; name="%s"; filename="%s"',
? sprintf(
'form-data; name="%s"; filename="%s"',
$name,
basename($filename))
basename($filename)
)
: "form-data; name=\"{$name}\"";
}

View File

@@ -5,7 +5,9 @@ namespace GuzzleHttp\Psr7;
use Psr\Http\Message\StreamInterface;
/**
* Stream decorator that prevents a stream from being seeked
* Stream decorator that prevents a stream from being seeked.
*
* @final
*/
class NoSeekStream implements StreamInterface
{

View File

@@ -13,6 +13,8 @@ use Psr\Http\Message\StreamInterface;
* returned by the provided callable is buffered internally until drained using
* the read() function of the PumpStream. The provided callable MUST return
* false when there is no more data to read.
*
* @final
*/
class PumpStream implements StreamInterface
{

View File

@@ -34,7 +34,9 @@ final class Query
} elseif ($urlEncoding === PHP_QUERY_RFC1738) {
$decoder = 'urldecode';
} else {
$decoder = function ($str) { return $str; };
$decoder = function ($str) {
return $str;
};
}
foreach (explode('&', $str) as $kvp) {
@@ -65,6 +67,7 @@ final class Query
* @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986
* to encode using RFC3986, or PHP_QUERY_RFC1738
* to encode using RFC1738.
*
* @return string
*/
public static function build(array $params, $encoding = PHP_QUERY_RFC3986)
@@ -74,7 +77,9 @@ final class Query
}
if ($encoding === false) {
$encoder = function ($str) { return $str; };
$encoder = function ($str) {
return $str;
};
} elseif ($encoding === PHP_QUERY_RFC3986) {
$encoder = 'rawurlencode';
} elseif ($encoding === PHP_QUERY_RFC1738) {

View File

@@ -17,7 +17,7 @@ class Request implements RequestInterface
/** @var string */
private $method;
/** @var null|string */
/** @var string|null */
private $requestTarget;
/** @var UriInterface */
@@ -27,7 +27,7 @@ class Request implements RequestInterface
* @param string $method HTTP method
* @param string|UriInterface $uri URI
* @param array $headers Request headers
* @param string|null|resource|StreamInterface $body Request body
* @param string|resource|StreamInterface|null $body Request body
* @param string $version Protocol version
*/
public function __construct(

View File

@@ -83,7 +83,7 @@ class Response implements ResponseInterface
/**
* @param int $status Status code
* @param array $headers Response headers
* @param string|null|resource|StreamInterface $body Response body
* @param string|resource|StreamInterface|null $body Response body
* @param string $version Protocol version
* @param string|null $reason Reason phrase (when empty a default will be used based on the status code)
*/

View File

@@ -11,6 +11,7 @@ final class Rfc7230
* Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons.
*
* @link https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15
*
* @license https://github.com/amphp/http/blob/v1.0.1/LICENSE
*/
const HEADER_REGEX = "(^([^()<>@,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m";

View File

@@ -4,9 +4,9 @@ namespace GuzzleHttp\Psr7;
use InvalidArgumentException;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\UriInterface;
use Psr\Http\Message\StreamInterface;
use Psr\Http\Message\UploadedFileInterface;
use Psr\Http\Message\UriInterface;
/**
* Server-side HTTP request
@@ -35,7 +35,7 @@ class ServerRequest extends Request implements ServerRequestInterface
private $cookieParams = [];
/**
* @var null|array|object
* @var array|object|null
*/
private $parsedBody;
@@ -58,7 +58,7 @@ class ServerRequest extends Request implements ServerRequestInterface
* @param string $method HTTP method
* @param string|UriInterface $uri URI
* @param array $headers Request headers
* @param string|null|resource|StreamInterface $body Request body
* @param string|resource|StreamInterface|null $body Request body
* @param string $version Protocol version
* @param array $serverParams Typically the $_SERVER superglobal
*/
@@ -111,6 +111,7 @@ class ServerRequest extends Request implements ServerRequestInterface
* delegate to normalizeNestedFileSpec() and return that return value.
*
* @param array $value $_FILES struct
*
* @return array|UploadedFileInterface
*/
private static function createUploadedFileFromSpec(array $value)
@@ -135,6 +136,7 @@ class ServerRequest extends Request implements ServerRequestInterface
* UploadedFileInterface instances.
*
* @param array $files
*
* @return UploadedFileInterface[]
*/
private static function normalizeNestedFileSpec(array $files = [])
@@ -184,7 +186,7 @@ class ServerRequest extends Request implements ServerRequestInterface
private static function extractHostAndPortFromAuthority($authority)
{
$uri = 'http://'.$authority;
$uri = 'http://' . $authority;
$parts = parse_url($uri);
if (false === $parts) {
return [null, null];
@@ -245,7 +247,6 @@ class ServerRequest extends Request implements ServerRequestInterface
return $uri;
}
/**
* {@inheritdoc}
*/

View File

@@ -6,6 +6,7 @@ use Psr\Http\Message\StreamInterface;
/**
* Stream decorator trait
*
* @property StreamInterface stream
*/
trait StreamDecoratorTrait

View File

@@ -6,6 +6,8 @@ use Psr\Http\Message\StreamInterface;
/**
* Converts Guzzle streams into PHP stream resources.
*
* @final
*/
class StreamWrapper
{

View File

@@ -39,7 +39,7 @@ class UploadedFile implements UploadedFileInterface
private $error;
/**
* @var null|string
* @var string|null
*/
private $file;
@@ -144,7 +144,8 @@ class UploadedFile implements UploadedFileInterface
/**
* @param mixed $param
* @return boolean
*
* @return bool
*/
private function isStringOrNull($param)
{
@@ -153,7 +154,8 @@ class UploadedFile implements UploadedFileInterface
/**
* @param mixed $param
* @return boolean
*
* @return bool
*/
private function isStringNotEmpty($param)
{
@@ -195,7 +197,7 @@ class UploadedFile implements UploadedFileInterface
/**
* Return true if there is no upload error
*
* @return boolean
* @return bool
*/
private function isOk()
{
@@ -203,7 +205,7 @@ class UploadedFile implements UploadedFileInterface
}
/**
* @return boolean
* @return bool
*/
public function isMoved()
{
@@ -297,6 +299,7 @@ class UploadedFile implements UploadedFileInterface
* {@inheritdoc}
*
* @see http://php.net/manual/en/features.file-upload.errors.php
*
* @return int One of PHP's UPLOAD_ERR_XXX constants.
*/
public function getError()

View File

@@ -67,7 +67,7 @@ class Uri implements UriInterface
{
// weak type check to also accept null until we can add scalar type hints
if ($uri != '') {
$parts = parse_url($uri);
$parts = self::parse($uri);
if ($parts === false) {
throw new \InvalidArgumentException("Unable to parse URI: $uri");
}
@@ -75,6 +75,49 @@ class Uri implements UriInterface
}
}
/**
* UTF-8 aware \parse_url() replacement.
*
* The internal function produces broken output for non ASCII domain names
* (IDN) when used with locales other than "C".
*
* On the other hand, cURL understands IDN correctly only when UTF-8 locale
* is configured ("C.UTF-8", "en_US.UTF-8", etc.).
*
* @see https://bugs.php.net/bug.php?id=52923
* @see https://www.php.net/manual/en/function.parse-url.php#114817
* @see https://curl.haxx.se/libcurl/c/CURLOPT_URL.html#ENCODING
*
* @param string $url
*
* @return array|false
*/
private static function parse($url)
{
// If IPv6
$prefix = '';
if (preg_match('%^(.*://\[[0-9:a-f]+\])(.*?)$%', $url, $matches)) {
$prefix = $matches[1];
$url = $matches[2];
}
$encodedUrl = preg_replace_callback(
'%[^:/@?&=#]+%usD',
static function ($matches) {
return urlencode($matches[0]);
},
$url
);
$result = parse_url($prefix . $encodedUrl);
if ($result === false) {
return false;
}
return array_map('urldecode', $result);
}
public function __toString()
{
return self::composeComponents(
@@ -167,6 +210,7 @@ class Uri implements UriInterface
* @param UriInterface $uri
*
* @return bool
*
* @see Uri::isNetworkPathReference
* @see Uri::isAbsolutePathReference
* @see Uri::isRelativePathReference
@@ -185,6 +229,7 @@ class Uri implements UriInterface
* @param UriInterface $uri
*
* @return bool
*
* @link https://tools.ietf.org/html/rfc3986#section-4.2
*/
public static function isNetworkPathReference(UriInterface $uri)
@@ -200,6 +245,7 @@ class Uri implements UriInterface
* @param UriInterface $uri
*
* @return bool
*
* @link https://tools.ietf.org/html/rfc3986#section-4.2
*/
public static function isAbsolutePathReference(UriInterface $uri)
@@ -218,6 +264,7 @@ class Uri implements UriInterface
* @param UriInterface $uri
*
* @return bool
*
* @link https://tools.ietf.org/html/rfc3986#section-4.2
*/
public static function isRelativePathReference(UriInterface $uri)
@@ -238,6 +285,7 @@ class Uri implements UriInterface
* @param UriInterface|null $base An optional base URI to compare against
*
* @return bool
*
* @link https://tools.ietf.org/html/rfc3986#section-4.4
*/
public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null)
@@ -358,6 +406,7 @@ class Uri implements UriInterface
* @param array $parts
*
* @return UriInterface
*
* @link http://php.net/manual/en/function.parse-url.php
*
* @throws \InvalidArgumentException If the components do not form a valid URI.
@@ -576,7 +625,7 @@ class Uri implements UriInterface
throw new \InvalidArgumentException('Scheme must be a string');
}
return strtolower($scheme);
return \strtr($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz');
}
/**
@@ -612,7 +661,7 @@ class Uri implements UriInterface
throw new \InvalidArgumentException('Host must be a string');
}
return strtolower($host);
return \strtr($host, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz');
}
/**
@@ -754,7 +803,7 @@ class Uri implements UriInterface
'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.',
E_USER_DEPRECATED
);
$this->path = '/'. $this->path;
$this->path = '/' . $this->path;
//throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty');
}
}

View File

@@ -115,6 +115,7 @@ final class UriNormalizer
* @param int $flags A bitmask of normalizations to apply, see constants
*
* @return UriInterface The normalized URI
*
* @link https://tools.ietf.org/html/rfc3986#section-6.2
*/
public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS)
@@ -171,6 +172,7 @@ final class UriNormalizer
* @param int $normalizations A bitmask of normalizations to apply, see constants
*
* @return bool
*
* @link https://tools.ietf.org/html/rfc3986#section-6.1
*/
public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS)

View File

@@ -19,6 +19,7 @@ final class UriResolver
* @param string $path
*
* @return string
*
* @link http://tools.ietf.org/html/rfc3986#section-5.2.4
*/
public static function removeDotSegments($path)
@@ -58,6 +59,7 @@ final class UriResolver
* @param UriInterface $rel Relative URI
*
* @return UriInterface
*
* @link http://tools.ietf.org/html/rfc3986#section-5.2
*/
public static function resolve(UriInterface $base, UriInterface $rel)

View File

@@ -75,6 +75,7 @@ final class Utils
* @param StreamInterface $stream Stream to read
* @param int $maxLen Maximum number of bytes to read. Pass -1
* to read the entire stream.
*
* @return string
*
* @throws \RuntimeException on error.
@@ -181,7 +182,7 @@ final class Utils
$standardPorts = ['http' => 80, 'https' => 443];
$scheme = $changes['uri']->getScheme();
if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) {
$changes['set_headers']['Host'] .= ':'.$port;
$changes['set_headers']['Host'] .= ':' . $port;
}
}
}
@@ -202,7 +203,7 @@ final class Utils
}
if ($request instanceof ServerRequestInterface) {
return (new ServerRequest(
$new = (new ServerRequest(
isset($changes['method']) ? $changes['method'] : $request->getMethod(),
$uri,
$headers,
@@ -216,6 +217,12 @@ final class Utils
->withQueryParams($request->getQueryParams())
->withCookieParams($request->getCookieParams())
->withUploadedFiles($request->getUploadedFiles());
foreach ($request->getAttributes() as $key => $value) {
$new = $new->withAttribute($key, $value);
}
return $new;
}
return new Request(
@@ -286,7 +293,7 @@ final class Utils
* number of requested bytes are available. Any additional bytes will be
* buffered and used in subsequent reads.
*
* @param resource|string|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data
* @param resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data
* @param array $options Additional options
*
* @return StreamInterface
@@ -296,7 +303,7 @@ final class Utils
public static function streamFor($resource = '', array $options = [])
{
if (is_scalar($resource)) {
$stream = fopen('php://temp', 'r+');
$stream = self::tryFopen('php://temp', 'r+');
if ($resource !== '') {
fwrite($stream, $resource);
fseek($stream, 0);
@@ -306,6 +313,17 @@ final class Utils
switch (gettype($resource)) {
case 'resource':
/*
* The 'php://input' is a special stream with quirks and inconsistencies.
* We avoid using that stream by reading it into php://temp
*/
$metaData = \stream_get_meta_data($resource);
if (isset($metaData['uri']) && $metaData['uri'] === 'php://input') {
$stream = self::tryFopen('php://temp', 'w+');
fwrite($stream, stream_get_contents($resource));
fseek($stream, 0);
$resource = $stream;
}
return new Stream($resource, $options);
case 'object':
if ($resource instanceof StreamInterface) {
@@ -324,7 +342,7 @@ final class Utils
}
break;
case 'NULL':
return new Stream(fopen('php://temp', 'r+'), $options);
return new Stream(self::tryFopen('php://temp', 'r+'), $options);
}
if (is_callable($resource)) {
@@ -352,14 +370,26 @@ final class Utils
$ex = null;
set_error_handler(function () use ($filename, $mode, &$ex) {
$ex = new \RuntimeException(sprintf(
'Unable to open %s using mode %s: %s',
'Unable to open "%s" using mode "%s": %s',
$filename,
$mode,
func_get_args()[1]
));
return true;
});
try {
$handle = fopen($filename, $mode);
} catch (\Throwable $e) {
$ex = new \RuntimeException(sprintf(
'Unable to open "%s" using mode "%s": %s',
$filename,
$mode,
$e->getMessage()
), 0, $e);
}
restore_error_handler();
if ($ex) {

View File

@@ -70,7 +70,7 @@ function uri_for($uri)
* number of requested bytes are available. Any additional bytes will be
* buffered and used in subsequent reads.
*
* @param resource|string|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data
* @param resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data
* @param array $options Additional options
*
* @return StreamInterface
@@ -187,6 +187,7 @@ function try_fopen($filename, $mode)
* @param StreamInterface $stream Stream to read
* @param int $maxLen Maximum number of bytes to read. Pass -1
* to read the entire stream.
*
* @return string
*
* @throws \RuntimeException on error.
@@ -311,6 +312,7 @@ function parse_query($str, $urlEncoding = true)
* @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986
* to encode using RFC3986, or PHP_QUERY_RFC1738
* to encode using RFC1738.
*
* @return string
*
* @deprecated build_query will be removed in guzzlehttp/psr7:2.0. Use Query::build instead.
@@ -361,6 +363,7 @@ function mimetype_from_extension($extension)
* @return array
*
* @internal
*
* @deprecated _parse_message will be removed in guzzlehttp/psr7:2.0. Use Message::parseMessage instead.
*/
function _parse_message($message)
@@ -377,6 +380,7 @@ function _parse_message($message)
* @return string
*
* @internal
*
* @deprecated _parse_request_uri will be removed in guzzlehttp/psr7:2.0. Use Message::parseRequestUri instead.
*/
function _parse_request_uri($path, array $headers)
@@ -409,6 +413,7 @@ function get_message_body_summary(MessageInterface $message, $truncateAt = 120)
* @return array
*
* @internal
*
* @deprecated _caseless_remove will be removed in guzzlehttp/psr7:2.0. Use Utils::caselessRemove instead.
*/
function _caseless_remove($keys, array $data)

View File

@@ -44,7 +44,11 @@ trait DetectsLostConnections
'running with the --read-only option so it cannot execute this statement',
'The connection is broken and recovery is not possible. The connection is marked by the client driver as unrecoverable. No attempt was made to restore the connection.',
'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Try again',
'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known',
'SQLSTATE[HY000]: General error: 7 SSL SYSCALL error: EOF detected',
'SQLSTATE[HY000] [2002] Connection timed out',
'SSL: Connection timed out',
'SQLSTATE[HY000]: General error: 1105 The last transaction was aborted due to Seamless Scaling. Please retry.',
]);
}
}

View File

@@ -709,7 +709,7 @@ class Builder
);
if (! $value instanceof Expression) {
$this->addBinding($value, 'where');
$this->addBinding($this->flattenValue($value), 'where');
}
return $this;
@@ -1078,7 +1078,7 @@ class Builder
$this->wheres[] = compact('type', 'column', 'values', 'boolean', 'not');
$this->addBinding($this->cleanBindings($values), 'where');
$this->addBinding(array_slice($this->cleanBindings(Arr::flatten($values)), 0, 2), 'where');
return $this;
}
@@ -1201,6 +1201,8 @@ class Builder
$value, $operator, func_num_args() === 2
);
$value = $this->flattenValue($value);
if ($value instanceof DateTimeInterface) {
$value = $value->format('Y-m-d');
}
@@ -1240,6 +1242,8 @@ class Builder
$value, $operator, func_num_args() === 2
);
$value = $this->flattenValue($value);
if ($value instanceof DateTimeInterface) {
$value = $value->format('H:i:s');
}
@@ -1279,6 +1283,8 @@ class Builder
$value, $operator, func_num_args() === 2
);
$value = $this->flattenValue($value);
if ($value instanceof DateTimeInterface) {
$value = $value->format('d');
}
@@ -1322,6 +1328,8 @@ class Builder
$value, $operator, func_num_args() === 2
);
$value = $this->flattenValue($value);
if ($value instanceof DateTimeInterface) {
$value = $value->format('m');
}
@@ -1365,6 +1373,8 @@ class Builder
$value, $operator, func_num_args() === 2
);
$value = $this->flattenValue($value);
if ($value instanceof DateTimeInterface) {
$value = $value->format('Y');
}
@@ -1673,7 +1683,7 @@ class Builder
$this->wheres[] = compact('type', 'column', 'operator', 'value', 'boolean');
if (! $value instanceof Expression) {
$this->addBinding($value);
$this->addBinding((int) $this->flattenValue($value));
}
return $this;
@@ -1822,7 +1832,7 @@ class Builder
$this->havings[] = compact('type', 'column', 'operator', 'value', 'boolean');
if (! $value instanceof Expression) {
$this->addBinding($value, 'having');
$this->addBinding($this->flattenValue($value), 'having');
}
return $this;
@@ -1860,7 +1870,7 @@ class Builder
$this->havings[] = compact('type', 'column', 'values', 'boolean', 'not');
$this->addBinding($this->cleanBindings($values), 'having');
$this->addBinding(array_slice($this->cleanBindings(Arr::flatten($values)), 0, 2), 'having');
return $this;
}
@@ -3082,6 +3092,17 @@ class Builder
}));
}
/**
* Get a scalar type value from an unknown type of input.
*
* @param mixed $value
* @return mixed
*/
protected function flattenValue($value)
{
return is_array($value) ? head(Arr::flatten($value)) : $value;
}
/**
* Get the default key name of the table.
*

View File

@@ -33,7 +33,7 @@ class Application extends Container implements ApplicationContract, CachesConfig
*
* @var string
*/
const VERSION = '7.30.1';
const VERSION = '7.30.4';
/**
* The base path for the Laravel installation.

View File

@@ -31,7 +31,7 @@ trait InteractsWithContentTypes
*/
public function isJson()
{
return Str::contains($this->header('CONTENT_TYPE'), ['/json', '+json']);
return Str::contains($this->header('CONTENT_TYPE') ?? '', ['/json', '+json']);
}
/**

View File

@@ -352,7 +352,7 @@ class Mailer implements MailerContract, MailQueueContract
protected function addContent($message, $view, $plain, $raw, $data)
{
if (isset($view)) {
$message->setBody($this->renderView($view, $data), 'text/html');
$message->setBody($this->renderView($view, $data) ?: ' ', 'text/html');
}
if (isset($plain)) {

View File

@@ -1174,7 +1174,7 @@ trait ValidatesAttributes
return false;
}
if (! is_scalar($value) && ! method_exists($value, '__toString')) {
if (! is_scalar($value) && ! is_null($value) && ! method_exists($value, '__toString')) {
return false;
}

View File

@@ -199,7 +199,7 @@ if (! function_exists('array_prepend')) {
*/
function array_prepend($array, $value, $key = null)
{
return Arr::prepend($array, $value, $key);
return Arr::prepend(...func_get_args());
}
}

View File

@@ -109,7 +109,7 @@ class SocialiteManager extends Manager implements Contracts\Factory
return $this->buildProvider(
GitlabProvider::class, $config
);
)->setHost($config['host'] ?? null);
}
/**
@@ -172,6 +172,32 @@ class SocialiteManager extends Manager implements Contracts\Factory
: $redirect;
}
/**
* Forget all of the resolved driver instances.
*
* @return $this
*/
public function forgetDrivers()
{
$this->drivers = [];
return $this;
}
/**
* Set the container instance used by the manager.
*
* @param \Illuminate\Contracts\Container\Container $container
* @return $this
*/
public function setContainer($container)
{
$this->app = $container;
$this->container = $container;
return $this;
}
/**
* Get the default driver name.
*

View File

@@ -2,10 +2,11 @@
namespace Laravel\Socialite;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Support\ServiceProvider;
use Laravel\Socialite\Contracts\Factory;
class SocialiteServiceProvider extends ServiceProvider
class SocialiteServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
* Register the service provider.
@@ -28,14 +29,4 @@ class SocialiteServiceProvider extends ServiceProvider
{
return [Factory::class];
}
/**
* Determine if the provider is deferred.
*
* @return bool
*/
public function isDeferred()
{
return true;
}
}

View File

@@ -81,6 +81,13 @@ abstract class AbstractProvider implements ProviderContract
*/
protected $stateless = false;
/**
* Indicates if PKCE should be used.
*
* @var bool
*/
protected $usesPKCE = false;
/**
* The custom Guzzle configuration options.
*
@@ -158,6 +165,10 @@ abstract class AbstractProvider implements ProviderContract
$this->request->session()->put('state', $state = $this->getState());
}
if ($this->usesPKCE()) {
$this->request->session()->put('code_verifier', $codeVerifier = $this->getCodeVerifier());
}
return new RedirectResponse($this->getAuthUrl($state));
}
@@ -192,6 +203,11 @@ abstract class AbstractProvider implements ProviderContract
$fields['state'] = $state;
}
if ($this->usesPKCE()) {
$fields['code_challenge'] = $this->getCodeChallenge();
$fields['code_challenge_method'] = $this->getCodeChallengeMethod();
}
return array_merge($fields, $this->parameters);
}
@@ -284,13 +300,19 @@ abstract class AbstractProvider implements ProviderContract
*/
protected function getTokenFields($code)
{
return [
$fields = [
'grant_type' => 'authorization_code',
'client_id' => $this->clientId,
'client_secret' => $this->clientSecret,
'code' => $code,
'redirect_uri' => $this->redirectUrl,
];
if ($this->usesPKCE()) {
$fields['code_verifier'] = $this->request->session()->pull('code_verifier');
}
return $fields;
}
/**
@@ -434,6 +456,60 @@ abstract class AbstractProvider implements ProviderContract
return Str::random(40);
}
/**
* Determine if the provider uses PKCE.
*
* @return bool
*/
protected function usesPKCE()
{
return $this->usesPKCE;
}
/**
* Enables PKCE for the provider.
*
* @return $this
*/
protected function enablePKCE()
{
$this->usesPKCE = true;
return $this;
}
/**
* Generates a random string of the right length for the PKCE code verifier.
*
* @return string
*/
protected function getCodeVerifier()
{
return Str::random(96);
}
/**
* Generates the PKCE code challenge based on the PKCE code verifier in the session.
*
* @return string
*/
protected function getCodeChallenge()
{
$hashed = hash('sha256', $this->request->session()->get('code_verifier'), true);
return rtrim(strtr(base64_encode($hashed), '+/', '-_'), '=');
}
/**
* Returns the hash method used to calculate the PKCE code challenge.
*
* @return string
*/
protected function getCodeChallengeMethod()
{
return 'S256';
}
/**
* Set the custom parameters of the request.
*

View File

@@ -11,12 +11,41 @@ class GitlabProvider extends AbstractProvider implements ProviderInterface
*/
protected $scopes = ['read_user'];
/**
* The separating character for the requested scopes.
*
* @var string
*/
protected $scopeSeparator = ' ';
/**
* The Gitlab instance host.
*
* @var string
*/
protected $host = 'https://gitlab.com';
/**
* Set the Gitlab instance host.
*
* @param string|null $host
* @return $this
*/
public function setHost($host)
{
if (! empty($host)) {
$this->host = rtrim($host, '/');
}
return $this;
}
/**
* {@inheritdoc}
*/
protected function getAuthUrl($state)
{
return $this->buildAuthUrlFromBase('https://gitlab.com/oauth/authorize', $state);
return $this->buildAuthUrlFromBase($this->host.'/oauth/authorize', $state);
}
/**
@@ -24,7 +53,7 @@ class GitlabProvider extends AbstractProvider implements ProviderInterface
*/
protected function getTokenUrl()
{
return 'https://gitlab.com/oauth/token';
return $this->host.'/oauth/token';
}
/**
@@ -32,7 +61,7 @@ class GitlabProvider extends AbstractProvider implements ProviderInterface
*/
protected function getUserByToken($token)
{
$userUrl = 'https://gitlab.com/api/v3/user?access_token='.$token;
$userUrl = $this->host.'/api/v3/user?access_token='.$token;
$response = $this->getHttpClient()->get($userUrl);

View File

@@ -27,7 +27,7 @@ namespace PHPSTORM_META
expectedArguments(\League\CommonMark\Inline\Element\Newline::__construct(), 0, argumentsSet('league_commonmark_newline_types'));
expectedReturnValues(\League\CommonMark\Inline\Element\Newline::getType(), argumentsSet('league_commonmark_newline_types'));
registerArgumentsSet('league_commonmark_options', 'renderer', 'enable_em', 'enable_strong', 'use_asterisk', 'use_underscore', 'unordered_list_markers', 'html_input', 'allow_unsafe_links', 'max_nesting_level', 'external_link', 'external_link/nofollow', 'external_link/noopener', 'external_link/noreferrer', 'footnote', 'footnote/backref_class', 'footnote/container_add_hr', 'footnote/container_class', 'footnote/ref_class', 'footnote/ref_id_prefix', 'footnote/footnote_class', 'footnote/footnote_id_prefix', 'heading_permalink', 'heading_permalink/html_class', 'heading_permalink/id_prefix', 'heading_permalink/inner_contents', 'heading_permalink/insert', 'heading_permalink/slug_normalizer', 'heading_permalink/symbol', 'heading_permalink/title', 'table_of_contents', 'table_of_contents/style', 'table_of_contents/normalize', 'table_of_contents/position', 'table_of_contents/html_class', 'table_of_contents/min_heading_level', 'table_of_contents/max_heading_level', 'table_of_contents/placeholder');
registerArgumentsSet('league_commonmark_options', 'renderer', 'commonmark', 'commonmark/enable_em', 'commonmark/enable_strong', 'commonmark/use_asterisk', 'commonmark/use_underscore', 'commonmark/unordered_list_markers', 'html_input', 'allow_unsafe_links', 'max_nesting_level', 'external_link', 'external_link/nofollow', 'external_link/noopener', 'external_link/noreferrer', 'footnote', 'footnote/backref_class', 'footnote/container_add_hr', 'footnote/container_class', 'footnote/ref_class', 'footnote/ref_id_prefix', 'footnote/footnote_class', 'footnote/footnote_id_prefix', 'heading_permalink', 'heading_permalink/html_class', 'heading_permalink/id_prefix', 'heading_permalink/inner_contents', 'heading_permalink/insert', 'heading_permalink/slug_normalizer', 'heading_permalink/symbol', 'heading_permalink/title', 'table_of_contents', 'table_of_contents/style', 'table_of_contents/normalize', 'table_of_contents/position', 'table_of_contents/html_class', 'table_of_contents/min_heading_level', 'table_of_contents/max_heading_level', 'table_of_contents/placeholder');
expectedArguments(\League\CommonMark\EnvironmentInterface::getConfig(), 0, argumentsSet('league_commonmark_options'));
expectedArguments(\League\CommonMark\Util\ConfigurationInterface::get(), 0, argumentsSet('league_commonmark_options'));
expectedArguments(\League\CommonMark\Util\ConfigurationInterface::set(), 0, argumentsSet('league_commonmark_options'));

Some files were not shown because too many files have changed in this diff Show More