-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphpstan_report.json
More file actions
4 lines (3 loc) · 153 KB
/
phpstan_report.json
File metadata and controls
4 lines (3 loc) · 153 KB
1
2
3
4
Note: Using configuration file /var/www/api.wioex.com/wioex-php-sdk/phpstan.neon.
0/118 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%[1G[2K 118/118 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
{"totals":{"errors":0,"file_errors":920},"files":{"/var/www/api.wioex.com/wioex-php-sdk/src/Async/AsyncClient.php":{"errors":10,"messages":[{"message":"Call to function is_array() with array will always evaluate to true.","line":74,"ignorable":true,"identifier":"function.alreadyNarrowedType"},{"message":"Else branch is unreachable because ternary operator condition is always true.","line":74,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"ternary.elseUnreachable"},{"message":"Call to function is_array() with non-empty-array will always evaluate to true.","line":152,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"function.alreadyNarrowedType"},{"message":"Comparison operation \">\" between int<1, max> and 0 is always true.","line":152,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greater.alwaysTrue"},{"message":"Result of && is always true.","line":152,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"booleanAnd.alwaysTrue"},{"message":"Result of && is always true.","line":152,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"booleanAnd.alwaysTrue"},{"message":"Strict comparison using !== between non-empty-array and null will always evaluate to true.","line":152,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"notIdentical.alwaysTrue"},{"message":"Call to function is_array() with non-empty-array will always evaluate to true.","line":167,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"function.alreadyNarrowedType"},{"message":"Result of && is always true.","line":167,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"booleanAnd.alwaysTrue"},{"message":"Strict comparison using !== between non-empty-array and null will always evaluate to true.","line":167,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"notIdentical.alwaysTrue"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Async/BatchRequest.php":{"errors":1,"messages":[{"message":"Strict comparison using === between float and 0 will always evaluate to false.","line":147,"ignorable":true,"identifier":"identical.alwaysFalse"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Async/BatchRequestManager.php":{"errors":15,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":134,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot call method resolve() on GuzzleHttp\\Promise\\Promise|null.","line":175,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method reject() on GuzzleHttp\\Promise\\Promise|null.","line":177,"ignorable":true,"identifier":"method.nonObject"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":186,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in &&, Wioex\\SDK\\Reliability\\CircuitBreakerManager|null given on the right side.","line":216,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Client::sendAsync().","line":222,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Client::sendAsync().","line":230,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Client::getGuzzleClient().","line":235,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":271,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #4 $body of class GuzzleHttp\\Psr7\\Request constructor expects Psr\\Http\\Message\\StreamInterface|resource|string|null, string|false|null given.","line":281,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Async\\BatchRequestManager::handleSuccessfulResponse() has parameter $response with no type specified.","line":284,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Async\\BatchRequestManager::handleFailedResponse() has parameter $reason with no type specified.","line":294,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Only booleans are allowed in &&, mixed given on the left side.","line":296,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":317,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Parameter #3 $ttl of method Wioex\\SDK\\Cache\\CacheInterface::set() expects int, mixed given.","line":324,"ignorable":true,"identifier":"argument.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/CacheManager.php":{"errors":11,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #1 $name (string) is implicitly nullable via default value null.","line":80,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Cache\\CacheManager::remember() has no return type specified.","line":209,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\CacheManager::rememberForever() has no return type specified.","line":223,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\CacheManager::pull() has no return type specified.","line":228,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\CacheManager::put() has parameter $value with no type specified.","line":235,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Access to an undefined property Wioex\\SDK\\Cache\\CacheManager::$macros.","line":379,"ignorable":true,"tip":"Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property","identifier":"property.notFound"},{"message":"Access to an undefined property Wioex\\SDK\\Cache\\CacheManager::$macros.","line":382,"ignorable":true,"tip":"Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property","identifier":"property.notFound"},{"message":"Method Wioex\\SDK\\Cache\\CacheManager::__call() has no return type specified.","line":385,"ignorable":true,"identifier":"missingType.return"},{"message":"Only booleans are allowed in &&, string|false given on the right side.","line":436,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Only booleans are allowed in &&, string|false given on the right side.","line":481,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Only booleans are allowed in a ternary operator condition, string|false given.","line":515,"ignorable":true,"identifier":"ternary.condNotBoolean"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/Drivers/FileDriver.php":{"errors":9,"messages":[{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":135,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Comparison operation \">\" between (array|float|int) and 0 results in an error.","line":218,"ignorable":true,"identifier":"greater.invalid"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\FileDriver::getTtl() should return int|false but returns float|int<0, max>.","line":292,"ignorable":true,"identifier":"return.type"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":326,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":357,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Only booleans are allowed in an if condition, int|false given.","line":395,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":463,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":481,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Parameter #1 $value of function count expects array|Countable, array<int, string>|false given.","line":496,"ignorable":true,"identifier":"argument.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/Drivers/MemcachedDriver.php":{"errors":33,"messages":[{"message":"Only booleans are allowed in a negated boolean, int<0, max> given.","line":66,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":87,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot call method get() on Memcached|null.","line":102,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getResultCode() on Memcached|null.","line":104,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method set() on Memcached|null.","line":122,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method get() on Memcached|null.","line":141,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getResultCode() on Memcached|null.","line":142,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method delete() on Memcached|null.","line":151,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method flush() on Memcached|null.","line":168,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getMulti() on Memcached|null.","line":178,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getResultCode() on Memcached|null.","line":180,"ignorable":true,"identifier":"method.nonObject"},{"message":"Parameter #1 $value of function count expects array|Countable, array|false given.","line":181,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $value of function count expects array|Countable, array|false given.","line":182,"ignorable":true,"identifier":"argument.type"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":183,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Cannot call method setMulti() on Memcached|null.","line":199,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method deleteMulti() on Memcached|null.","line":218,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method increment() on Memcached|null.","line":233,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method decrement() on Memcached|null.","line":252,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getStats() on Memcached|null.","line":273,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":276,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot call method getVersion() on Memcached|null.","line":317,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getVersion() on Memcached|null.","line":338,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":339,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\MemcachedDriver::getTtl() should return int|false but returns null.","line":349,"ignorable":true,"identifier":"return.type"},{"message":"Cannot call method touch() on Memcached|null.","line":355,"ignorable":true,"identifier":"method.nonObject"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\MemcachedDriver::getSize() never returns false so it can be removed from the return type.","line":368,"ignorable":true,"identifier":"return.unusedType"},{"message":"Comparison operation \">\" between (array|float|int) and 0 results in an error.","line":384,"ignorable":true,"identifier":"greater.invalid"},{"message":"Cannot call method getResultCode() on Memcached|null.","line":389,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getResultMessage() on Memcached|null.","line":394,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getServerList() on Memcached|null.","line":407,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method addServer() on Memcached|null.","line":416,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method resetServerList() on Memcached|null.","line":425,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method quit() on Memcached|null.","line":434,"ignorable":true,"identifier":"method.nonObject"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/Drivers/MemoryDriver.php":{"errors":3,"messages":[{"message":"Comparison operation \">\" between (array|float|int) and 0 results in an error.","line":156,"ignorable":true,"identifier":"greater.invalid"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\MemoryDriver::getTtl() should return int|false but returns float|int<0, max>.","line":201,"ignorable":true,"identifier":"return.type"},{"message":"Parameter #2 $callback of function array_filter expects (callable(int|string): bool)|null, Closure(mixed): (0|1|false) given.","line":231,"ignorable":true,"identifier":"argument.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/Drivers/OpcacheDriver.php":{"errors":20,"messages":[{"message":"Only booleans are allowed in a negated boolean, string|false given.","line":41,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::createCacheFile() has parameter $value with no type specified.","line":68,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::readCacheFile() has no return type specified.","line":102,"ignorable":true,"identifier":"missingType.return"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":192,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::increment() should return int|false but returns float|int.","line":256,"ignorable":true,"identifier":"return.type"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":284,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Parameter #1 $value of function count expects array|Countable, array<int, string>|false given.","line":297,"ignorable":true,"identifier":"argument.type"},{"message":"Only booleans are allowed in &&, string|false given on the right side.","line":332,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() never returns false so it can be removed from the return type.","line":338,"ignorable":true,"identifier":"return.unusedType"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() should return int|false but returns null.","line":343,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() should return int|false but returns null.","line":350,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() should return int|false but returns null.","line":354,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() should return int|false but returns float|int<0, max>.","line":358,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\OpcacheDriver::getTtl() should return int|false but returns null.","line":361,"ignorable":true,"identifier":"return.type"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":381,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":407,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Comparison operation \">\" between (array|float|int) and 0 results in an error.","line":428,"ignorable":true,"identifier":"greater.invalid"},{"message":"Variable $i might not be defined.","line":439,"ignorable":true,"identifier":"variable.undefined"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":445,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":456,"ignorable":true,"identifier":"foreach.nonIterable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/Drivers/RedisDriver.php":{"errors":37,"messages":[{"message":"Cannot call method getOption() on Redis|null.","line":98,"ignorable":true,"identifier":"method.nonObject"},{"message":"Only booleans are allowed in &&, int given on the right side.","line":98,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Cannot call method setOption() on Redis|null.","line":99,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method setOption() on Redis|null.","line":104,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method setOption() on Redis|null.","line":124,"ignorable":true,"identifier":"method.nonObject"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\RedisDriver::executeWithRetry() has no return type specified.","line":127,"ignorable":true,"identifier":"missingType.return"},{"message":"Cannot call method ping() on Redis|null.","line":134,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method close() on Redis|null.","line":156,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method get() on Redis|null.","line":168,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method setex() on Redis|null.","line":184,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method set() on Redis|null.","line":185,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method exists() on Redis|null.","line":198,"ignorable":true,"identifier":"method.nonObject"},{"message":"Comparison operation \">\" between (bool|int|Redis) and 0 results in an error.","line":198,"ignorable":true,"identifier":"greater.invalid"},{"message":"Cannot call method del() on Redis|null.","line":205,"ignorable":true,"identifier":"method.nonObject"},{"message":"Comparison operation \">\" between (int|Redis|false) and 0 results in an error.","line":205,"ignorable":true,"identifier":"greater.invalid"},{"message":"Cannot call method flushDB() on Redis|null.","line":218,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method mGet() on Redis|null.","line":225,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method pipeline() on Redis|null.","line":245,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method mSet() on Redis|null.","line":253,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method del() on Redis|null.","line":265,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method incrBy() on Redis|null.","line":274,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method decrBy() on Redis|null.","line":281,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method info() on Redis|null.","line":290,"ignorable":true,"identifier":"method.nonObject"},{"message":"Only booleans are allowed in &&, Redis|null given on the left side.","line":338,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Cannot call method ttl() on Redis|null.","line":347,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method expire() on Redis|null.","line":355,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method keys() on Redis|null.","line":362,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method get() on Redis|null.","line":369,"ignorable":true,"identifier":"method.nonObject"},{"message":"Comparison operation \">\" between (array|float|int) and 0 results in an error.","line":382,"ignorable":true,"identifier":"greater.invalid"},{"message":"Parameter #1 $redis of class Wioex\\SDK\\Cache\\Drivers\\RedisPipeline constructor expects Redis, Redis|null given.","line":387,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $redis of class Wioex\\SDK\\Cache\\Drivers\\RedisTransaction constructor expects Redis, Redis|null given.","line":392,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $redis of class Wioex\\SDK\\Cache\\Drivers\\RedisPubSub constructor expects Redis, Redis|null given.","line":397,"ignorable":true,"identifier":"argument.type"},{"message":"Only booleans are allowed in &&, Redis|null given on the left side.","line":402,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Property Wioex\\SDK\\Cache\\Drivers\\RedisPipeline::$redis is never read, only written.","line":414,"ignorable":true,"tip":"See: https://phpstan.org/developing-extensions/always-read-written-properties","identifier":"property.onlyWritten"},{"message":"Property Wioex\\SDK\\Cache\\Drivers\\RedisPipeline::$pipeline has no type specified.","line":415,"ignorable":true,"identifier":"missingType.property"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\RedisPipeline::set() has parameter $value with no type specified.","line":423,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Cache\\Drivers\\RedisTransaction::set() has parameter $value with no type specified.","line":461,"ignorable":true,"identifier":"missingType.parameter"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/PrefixedCache.php":{"errors":7,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":147,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Cache\\PrefixedCache::remember() has no return type specified.","line":175,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\PrefixedCache::rememberForever() has no return type specified.","line":189,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\PrefixedCache::pull() has no return type specified.","line":194,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Cache\\PrefixedCache::put() has parameter $value with no type specified.","line":201,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Cache\\BulkPrefixedCache::set() has parameter $value with no type specified.","line":288,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Cache\\AtomicPrefixedCache::withLock() has no return type specified.","line":407,"ignorable":true,"identifier":"missingType.return"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Cache/TaggedCache.php":{"errors":1,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":351,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Configuration/ConfigurationManager.php":{"errors":18,"messages":[{"message":"Property Wioex\\SDK\\Configuration\\ConfigurationManager::$basePath (string) does not accept string|false.","line":26,"ignorable":true,"identifier":"assign.propertyType"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":26,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Call to an undefined static method Wioex\\SDK\\Config::create().","line":44,"ignorable":true,"identifier":"staticMethod.notFound"},{"message":"Deprecated in PHP 8.4: Parameter #3 $priority (int) is implicitly nullable via default value null.","line":59,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":65,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::get() has no return type specified.","line":107,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::get() has parameter $default with no type specified.","line":107,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::set() has parameter $value with no type specified.","line":112,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":188,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Argument of an invalid type array<int, string>|false supplied for foreach, only iterables are supported.","line":282,"ignorable":true,"identifier":"foreach.nonIterable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":285,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #1 $json of function json_decode expects string, string|false given.","line":327,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::loadFromJsonFile() should return array but returns mixed.","line":333,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::loadFromYamlFile() should return array but returns mixed.","line":352,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::getNestedValue() has no return type specified.","line":383,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::setNestedValue() has parameter $value with no type specified.","line":398,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::parseEnvValue() has no return type specified.","line":415,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Configuration\\ConfigurationManager::getLastModified() should return int|null but returns int|false|null.","line":446,"ignorable":true,"identifier":"return.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Connection/Connection.php":{"errors":8,"messages":[{"message":"Property Wioex\\SDK\\Connection\\Connection::$lastConnectedAt is never read, only written.","line":18,"ignorable":true,"tip":"See: https://phpstan.org/developing-extensions/always-read-written-properties","identifier":"property.onlyWritten"},{"message":"Method Wioex\\SDK\\Connection\\Connection::getMetadataValue() has no return type specified.","line":246,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Connection\\Connection::getMetadataValue() has parameter $default with no type specified.","line":246,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Cannot access offset 'base_uri' on mixed.","line":307,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'scheme' on array{scheme?: string, host?: string, port?: int<0, 65535>, user?: string, pass?: string, path?: string, query?: string, fragment?: string}|false.","line":312,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Parameter #1 $object_or_class of function method_exists expects object|string, mixed given.","line":313,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method object::getPort().","line":315,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method object::getScheme().","line":315,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Connection/ConnectionPool.php":{"errors":5,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":26,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #3 $metrics (Wioex\\SDK\\Monitoring\\Metrics) is implicitly nullable via default value null.","line":26,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":133,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":450,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":460,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Connection/ConnectionPoolManager.php":{"errors":7,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":29,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #3 $metrics (Wioex\\SDK\\Monitoring\\Metrics) is implicitly nullable via default value null.","line":29,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Call to an undefined method Wioex\\SDK\\Config::getConnectionPoolConfig().","line":58,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::getLogger().","line":60,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::getMetrics().","line":61,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #1 ...$arrays of function array_merge expects array, mixed given.","line":242,"ignorable":true,"identifier":"argument.type"},{"message":"Cannot access offset 'scheme' on array{scheme?: string, host?: string, port?: int<0, 65535>, user?: string, pass?: string, path?: string, query?: string, fragment?: string}|false.","line":302,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Debug/DebugManager.php":{"errors":32,"messages":[{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":41,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":49,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":65,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":71,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #2 $offset of function array_slice expects int, float|int given.","line":73,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":84,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":102,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":115,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":127,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":166,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #2 $callback of function array_filter expects (callable(mixed): bool)|null, Closure(mixed): (0|1|false) given.","line":298,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":356,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":359,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":422,"ignorable":true,"identifier":"function.strict"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":437,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":441,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":458,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":467,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":501,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":513,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":513,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Cannot access an offset on mixed.","line":519,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":522,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #1 $value of function count expects array|Countable, mixed given.","line":523,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":524,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #2 $offset of function array_slice expects int, float|int given.","line":524,"ignorable":true,"identifier":"argument.type"},{"message":"Cannot access offset 'ru_utime.tv_sec' on array|false.","line":537,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_utime.tv_usec' on array|false.","line":537,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_stime.tv_sec' on array|false.","line":538,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_stime.tv_usec' on array|false.","line":538,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":548,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":562,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Debug/PerformanceProfiler.php":{"errors":27,"messages":[{"message":"Property Wioex\\SDK\\Debug\\PerformanceProfiler::$checkpoints is never read, only written.","line":14,"ignorable":true,"tip":"See: https://phpstan.org/developing-extensions/always-read-written-properties","identifier":"property.onlyWritten"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":31,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a negated boolean, array|null given.","line":167,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, array|null given.","line":167,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":177,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":217,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":232,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":253,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":278,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":284,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":292,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":306,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot access offset 'ru_utime.tv_sec' on array|false.","line":350,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_utime.tv_usec' on array|false.","line":350,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_stime.tv_sec' on array|false.","line":351,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_stime.tv_usec' on array|false.","line":351,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_nivcsw' on array|false.","line":352,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'ru_nvcsw' on array|false.","line":352,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":371,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":381,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":391,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":399,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":417,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":475,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a ternary operator condition, int<0, max> given.","line":495,"ignorable":true,"identifier":"ternary.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":522,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":543,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Enums/ConnectionState.php":{"errors":7,"messages":[{"message":"Call to function in_array() requires parameter #3 to be set.","line":42,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":81,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":82,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":83,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":84,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":85,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":86,"ignorable":true,"identifier":"function.strict"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Enums/MiddlewareType.php":{"errors":2,"messages":[{"message":"Call to function in_array() requires parameter #3 to be set.","line":94,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":99,"ignorable":true,"identifier":"function.strict"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Enums/ValidationResult.php":{"errors":1,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":89,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Enums/ValidationState.php":{"errors":3,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":140,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":142,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":166,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/ErrorReporter.php":{"errors":19,"messages":[{"message":"Parameter #2 $level of method Wioex\\SDK\\ErrorReporter::sanitizeContext() expects string, Wioex\\SDK\\Enums\\ErrorReportingLevel given.","line":113,"ignorable":true,"identifier":"argument.type"},{"message":"Result of || is always false.","line":130,"ignorable":true,"identifier":"booleanOr.alwaysFalse"},{"message":"Strict comparison using === between Wioex\\SDK\\Enums\\ErrorReportingLevel and 'detailed' will always evaluate to false.","line":130,"ignorable":true,"identifier":"identical.alwaysFalse"},{"message":"Strict comparison using === between Wioex\\SDK\\Enums\\ErrorReportingLevel and 'standard' will always evaluate to false.","line":130,"ignorable":true,"identifier":"identical.alwaysFalse"},{"message":"Parameter #2 $level of method Wioex\\SDK\\ErrorReporter::sanitizeContext() expects string, Wioex\\SDK\\Enums\\ErrorReportingLevel given.","line":136,"ignorable":true,"identifier":"argument.type"},{"message":"Strict comparison using === between Wioex\\SDK\\Enums\\ErrorReportingLevel and 'detailed' will always evaluate to false.","line":140,"ignorable":true,"identifier":"identical.alwaysFalse"},{"message":"Parameter #2 $level of method Wioex\\SDK\\ErrorReporter::sanitizePayload() expects string, Wioex\\SDK\\Enums\\ErrorReportingLevel given.","line":142,"ignorable":true,"identifier":"argument.type"},{"message":"Strict comparison using === between Wioex\\SDK\\Enums\\ErrorReportingLevel and 'detailed' will always evaluate to false.","line":147,"ignorable":true,"identifier":"identical.alwaysFalse"},{"message":"Parameter #2 $level of method Wioex\\SDK\\ErrorReporter::sanitizePayload() expects string, Wioex\\SDK\\Enums\\ErrorReportingLevel given.","line":149,"ignorable":true,"identifier":"argument.type"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":400,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot call method postAsync() on GuzzleHttp\\Client|null.","line":554,"ignorable":true,"identifier":"method.nonObject"},{"message":"Expression on left side of ?? is not nullable.","line":582,"ignorable":true,"identifier":"nullCoalesce.expr"},{"message":"Cannot call method post() on GuzzleHttp\\Client|null.","line":586,"ignorable":true,"identifier":"method.nonObject"},{"message":"Parameter #3 $subject of function preg_replace expects array|string, string|null given.","line":708,"ignorable":true,"identifier":"argument.type"},{"message":"Regex pattern is invalid: Compilation failed: range out of order in character class at offset 11 in pattern: /password[_-:]?\\s*[^\\s\\]},]{4,}/i","line":708,"ignorable":true,"identifier":"regexp.pattern"},{"message":"Regex pattern is invalid: Compilation failed: range out of order in character class at offset 14 in pattern: /api[_-]?key[_-:]?\\s*[^\\s\\]},]{10,}/i","line":708,"ignorable":true,"identifier":"regexp.pattern"},{"message":"Regex pattern is invalid: Compilation failed: range out of order in character class at offset 8 in pattern: /token[_-:]?\\s*[^\\s\\]},]{10,}/i","line":708,"ignorable":true,"identifier":"regexp.pattern"},{"message":"Regex pattern is invalid: Compilation failed: range out of order in character class at offset 9 in pattern: /secret[_-:]?\\s*[^\\s\\]},]{10,}/i","line":708,"ignorable":true,"identifier":"regexp.pattern"},{"message":"Method Wioex\\SDK\\ErrorReporter::sanitizeErrorMessage() should return string but returns string|null.","line":711,"ignorable":true,"identifier":"return.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Exceptions/BulkOperationException.php":{"errors":1,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":65,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Exceptions/InvalidArgumentException.php":{"errors":5,"messages":[{"message":"Property Wioex\\SDK\\Exceptions\\InvalidArgumentException::$argumentValue has no type specified.","line":18,"ignorable":true,"identifier":"missingType.property"},{"message":"Method Wioex\\SDK\\Exceptions\\InvalidArgumentException::__construct() has parameter $argumentValue with no type specified.","line":21,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Exceptions\\InvalidArgumentException::invalidRange() has parameter $max with no type specified.","line":130,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Exceptions\\InvalidArgumentException::invalidRange() has parameter $min with no type specified.","line":130,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Exceptions\\InvalidArgumentException::invalidRange() has parameter $value with no type specified.","line":130,"ignorable":true,"identifier":"missingType.parameter"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Exceptions/TransformationException.php":{"errors":1,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $previous (Throwable) is implicitly nullable via default value null.","line":9,"ignorable":true,"identifier":"parameter.implicitlyNullable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Export/AbstractExporter.php":{"errors":10,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #3 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":17,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":128,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":198,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":215,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":265,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Export\\AbstractExporter::valueToString() should return string but returns string|false.","line":312,"ignorable":true,"identifier":"return.type"},{"message":"Cannot cast mixed to string.","line":315,"ignorable":true,"identifier":"cast.string"},{"message":"Deprecated in PHP 8.4: Parameter #6 $filename (string) is implicitly nullable via default value null.","line":360,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":367,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #5 $filename (string) is implicitly nullable via default value null.","line":400,"ignorable":true,"identifier":"parameter.implicitlyNullable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Export/CsvExporter.php":{"errors":12,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":12,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":21,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":42,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Export\\CsvExporter::formatCsvValue() should return string but returns string|false.","line":121,"ignorable":true,"identifier":"return.type"},{"message":"Cannot cast mixed to string.","line":124,"ignorable":true,"identifier":"cast.string"},{"message":"Method Wioex\\SDK\\Export\\CsvExporter::exportToStream() has parameter $data with no type specified.","line":134,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Export\\CsvExporter::exportToStream() has parameter $stream with no type specified.","line":134,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":139,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":154,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":180,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":202,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":254,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Export/ExportManager.php":{"errors":13,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":20,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Parameter #6 $size of method Wioex\\SDK\\Export\\ExportManager::recordExportStatistics() expects int, int<0, max>|false given.","line":78,"ignorable":true,"identifier":"argument.type"},{"message":"Deprecated in PHP 8.4: Parameter #3 $filename (string) is implicitly nullable via default value null.","line":105,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":108,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #3 $filename (string) is implicitly nullable via default value null.","line":119,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":122,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":182,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":201,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Offset 'filename' on array{dirname?: string, basename: string, extension?: string, filename: string} on left side of ?? always exists and is not nullable.","line":347,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Variable $i might not be defined.","line":375,"ignorable":true,"identifier":"variable.undefined"},{"message":"Deprecated in PHP 8.4: Parameter #7 $filename (string) is implicitly nullable via default value null.","line":378,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":419,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #6 $filename (string) is implicitly nullable via default value null.","line":432,"ignorable":true,"identifier":"parameter.implicitlyNullable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Export/JsonExporter.php":{"errors":10,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":12,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Export\\JsonExporter::doExportToString() should return string but returns string|false.","line":29,"ignorable":true,"identifier":"return.type"},{"message":"Parameter #1 $string of function ucwords expects string, string|null given.","line":115,"ignorable":true,"identifier":"argument.type"},{"message":"Only booleans are allowed in an if condition, int|false given.","line":134,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Only booleans are allowed in a ternary operator condition, int|false given.","line":145,"ignorable":true,"identifier":"ternary.condNotBoolean"},{"message":"Method Wioex\\SDK\\Export\\JsonExporter::exportToStream() has parameter $data with no type specified.","line":183,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Export\\JsonExporter::exportToStream() has parameter $stream with no type specified.","line":183,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":200,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #2 $data of function fwrite expects string, string|false given.","line":238,"ignorable":true,"identifier":"argument.type"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":312,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Historical/HistoricalDataHelper.php":{"errors":43,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $endDate (DateTime) is implicitly nullable via default value null.","line":27,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":29,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":51,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":53,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":61,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":63,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":72,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":74,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":88,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":90,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":104,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":106,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":120,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":122,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":136,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":138,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":152,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":154,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #2 $year (int) is implicitly nullable via default value null.","line":172,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":174,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #1 $date (DateTime) is implicitly nullable via default value null.","line":195,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":197,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Comparison operation \">=\" between 1|2|3|4|5|6|7|8|9|10|11|12 and 1 is always true.","line":201,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greaterOrEqual.alwaysTrue"},{"message":"Comparison operation \">=\" between 4|5|6|7|8|9|10|11|12 and 4 is always true.","line":202,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greaterOrEqual.alwaysTrue"},{"message":"Comparison operation \">=\" between 7|8|9|10|11|12 and 7 is always true.","line":203,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greaterOrEqual.alwaysTrue"},{"message":"Comparison operation \"<=\" between 10|11|12 and 12 is always true.","line":204,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"smallerOrEqual.alwaysTrue"},{"message":"Comparison operation \">=\" between 10|11|12 and 10 is always true.","line":204,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greaterOrEqual.alwaysTrue"},{"message":"Deprecated in PHP 8.4: Parameter #2 $format (string) is implicitly nullable via default value null.","line":211,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":213,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #2 $format (string) is implicitly nullable via default value null.","line":217,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #2 $format (string) is implicitly nullable via default value null.","line":228,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":230,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #2 $date (DateTime) is implicitly nullable via default value null.","line":262,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":264,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":267,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":295,"ignorable":true,"identifier":"function.strict"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":322,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":334,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":353,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Historical\\HistoricalDataHelper::extractTimelineData() should return array but returns mixed.","line":443,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Historical\\HistoricalDataHelper::extractTimelineData() should return array but returns mixed.","line":447,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Historical\\HistoricalDataHelper::extractTimelineData() should return array but returns mixed.","line":451,"ignorable":true,"identifier":"return.type"},{"message":"Deprecated in PHP 8.4: Parameter #3 $endDate (DateTime) is implicitly nullable via default value null.","line":469,"ignorable":true,"identifier":"parameter.implicitlyNullable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/BulkRequestManager.php":{"errors":44,"messages":[{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeBulkRequest() has invalid return type Wioex\\SDK\\Response.","line":62,"ignorable":true,"identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeBulkRequest() has invalid return type Wioex\\SDK\\Response.","line":62,"ignorable":true,"identifier":"class.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":76,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #1 $endpoint of method Wioex\\SDK\\Http\\BulkRequestManager::executeSingleRequest() expects string, mixed given.","line":88,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #4 $endpointType of method Wioex\\SDK\\Http\\BulkRequestManager::executeSingleRequest() expects string, mixed given.","line":88,"ignorable":true,"identifier":"argument.type"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Monitoring\\ProgressTracker|null given.","line":91,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Parameter #2 $maxSymbolsPerRequest of method Wioex\\SDK\\Http\\BulkRequestManager::chunkSymbolsForEndpoint() expects int, mixed given.","line":99,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $endpoint of method Wioex\\SDK\\Http\\BulkRequestManager::executeChunkRequest() expects string, mixed given.","line":108,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #5 $endpointType of method Wioex\\SDK\\Http\\BulkRequestManager::executeChunkRequest() expects string, mixed given.","line":108,"ignorable":true,"identifier":"argument.type"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Monitoring\\ProgressTracker|null given.","line":116,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Monitoring\\ProgressTracker|null given.","line":139,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":154,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Monitoring\\ProgressTracker|null given.","line":166,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeSingleRequest() has invalid return type Wioex\\SDK\\Response.","line":177,"ignorable":true,"identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeSingleRequest() should return Wioex\\SDK\\Response but returns Wioex\\SDK\\Http\\Response.","line":181,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeChunkRequest() has invalid return type Wioex\\SDK\\Response.","line":187,"ignorable":true,"identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::executeChunkRequest() should return Wioex\\SDK\\Response but returns Wioex\\SDK\\Http\\Response.","line":196,"ignorable":true,"identifier":"return.type"},{"message":"Strict comparison using !== between bool|float|int|string and null will always evaluate to true.","line":249,"ignorable":true,"identifier":"notIdentical.alwaysTrue"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::chunkSymbols() is unused.","line":263,"ignorable":true,"identifier":"method.unused"},{"message":"Parameter #2 $length of function array_chunk expects int<1, max>, int given.","line":265,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #2 $length of function array_chunk expects int<1, max>, int given.","line":277,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::mergeResponses() has invalid return type Wioex\\SDK\\Response.","line":289,"ignorable":true,"identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::mergeResponses() has invalid return type Wioex\\SDK\\Response.","line":289,"ignorable":true,"identifier":"class.notFound"},{"message":"Parameter $responses of method Wioex\\SDK\\Http\\BulkRequestManager::mergeResponses() has invalid type Wioex\\SDK\\Response.","line":289,"ignorable":true,"identifier":"class.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":291,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to method successful() on an unknown class Wioex\\SDK\\Response.","line":304,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method data() on an unknown class Wioex\\SDK\\Response.","line":305,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":328,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":343,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Instantiated class Wioex\\SDK\\Response not found.","line":348,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method getStatusCode() on an unknown class Wioex\\SDK\\Response.","line":349,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method getHeaders() on an unknown class Wioex\\SDK\\Response.","line":351,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method getHttpStatusCode() on an unknown class Wioex\\SDK\\Response.","line":352,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":365,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to function is_string() with string will always evaluate to true.","line":380,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"function.alreadyNarrowedType"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":380,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Only booleans are allowed in a negated boolean, int|false given.","line":388,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Method Wioex\\SDK\\Http\\BulkRequestManager::addProgressMetadata() has invalid return type Wioex\\SDK\\Response.","line":504,"ignorable":true,"identifier":"class.notFound"},{"message":"Parameter $response of method Wioex\\SDK\\Http\\BulkRequestManager::addProgressMetadata() has invalid type Wioex\\SDK\\Response.","line":504,"ignorable":true,"identifier":"class.notFound"},{"message":"Call to method data() on an unknown class Wioex\\SDK\\Response.","line":506,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Instantiated class Wioex\\SDK\\Response not found.","line":516,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method status() on an unknown class Wioex\\SDK\\Response.","line":517,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method headers() on an unknown class Wioex\\SDK\\Response.","line":519,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method raw() on an unknown class Wioex\\SDK\\Response.","line":520,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/Client.php":{"errors":1,"messages":[{"message":"Call to an undefined static method Wioex\\SDK\\Cache\\CacheManager::create().","line":51,"ignorable":true,"identifier":"staticMethod.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/RateLimitingMiddleware.php":{"errors":10,"messages":[{"message":"Class Wioex\\SDK\\Http\\RateLimitingMiddleware has an uninitialized property $tokens. Give it default value or assign it in the constructor.","line":31,"ignorable":true,"identifier":"property.uninitialized"},{"message":"Class Wioex\\SDK\\Http\\RateLimitingMiddleware has an uninitialized property $lastRefill. Give it default value or assign it in the constructor.","line":32,"ignorable":true,"identifier":"property.uninitialized"},{"message":"Class Wioex\\SDK\\Http\\RateLimitingMiddleware has an uninitialized property $refillRate. Give it default value or assign it in the constructor.","line":33,"ignorable":true,"identifier":"property.uninitialized"},{"message":"Class Wioex\\SDK\\Http\\RateLimitingMiddleware has an uninitialized property $fixedWindowStart. Give it default value or assign it in the constructor.","line":36,"ignorable":true,"identifier":"property.uninitialized"},{"message":"Class Wioex\\SDK\\Http\\RateLimitingMiddleware has an uninitialized property $fixedWindowCount. Give it default value or assign it in the constructor.","line":37,"ignorable":true,"identifier":"property.uninitialized"},{"message":"Casting to int something that's already int.","line":162,"ignorable":true,"identifier":"cast.useless"},{"message":"Cannot call method resolve() on GuzzleHttp\\Promise\\Promise|null.","line":239,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method reject() on GuzzleHttp\\Promise\\Promise|null.","line":242,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method resolve() on GuzzleHttp\\Promise\\Promise|null.","line":246,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":403,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/Response.php":{"errors":149,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #1 $pipeline (Wioex\\SDK\\Transformers\\TransformerPipeline) is implicitly nullable via default value null.","line":138,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Instanceof between Wioex\\SDK\\Transformers\\TransformerInterface and Wioex\\SDK\\Transformers\\TransformerInterface will always evaluate to true.","line":178,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"instanceof.alwaysTrue"},{"message":"Method Wioex\\SDK\\Http\\Response::map() should return array<int, mixed> but returns array<string, mixed>.","line":241,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::get() has no return type specified.","line":282,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Http\\Response::get() has parameter $default with no type specified.","line":282,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Deprecated in PHP 8.4: Parameter #1 $validator (Wioex\\SDK\\Validation\\SchemaValidator) is implicitly nullable via default value null.","line":310,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Http\\Response::getMetadata() should return array<string, mixed> but returns mixed.","line":434,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'wioex' on mixed.","line":444,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getWioexMetadata() should return array<string, mixed>|null but returns mixed.","line":444,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'response' on mixed.","line":452,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getResponseMetadata() should return array|null but returns mixed.","line":452,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_quality' on mixed.","line":462,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getDataQuality() should return array<string, mixed>|null but returns mixed.","line":462,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'performance' on mixed.","line":470,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getPerformance() should return array|null but returns mixed.","line":470,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'credits' on mixed.","line":478,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCredits() should return array|null but returns mixed.","line":478,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'cache' on mixed.","line":486,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCache() should return array|null but returns mixed.","line":486,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'request_id' on mixed.","line":494,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'response' on mixed.","line":494,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getRequestId() should return string|null but returns mixed.","line":494,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'response' on mixed.","line":502,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'response_time_ms' on mixed.","line":502,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getResponseTime() should return float|null but returns mixed.","line":502,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'request' on mixed.","line":513,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getRequestMetadata() should return array<string, mixed>|null but returns mixed.","line":513,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'detailed' on mixed.","line":521,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'request' on mixed.","line":521,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::isDetailedMode() should return bool but returns mixed.","line":521,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'request' on mixed.","line":531,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'symbols' on mixed.","line":531,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getRequestedSymbols() should return array<int, string> but returns mixed.","line":531,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'count' on mixed.","line":539,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'request' on mixed.","line":539,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getSymbolCount() should return int but returns mixed.","line":539,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_level' on mixed.","line":547,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getDataLevel() should return string|null but returns mixed.","line":547,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'provider_used' on mixed.","line":555,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getProviderUsed() should return string|null but returns mixed.","line":555,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_quality' on mixed.","line":556,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'provider_used' on mixed.","line":556,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getMarketTimezone() should return string|null but returns mixed.","line":600,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_quality' on mixed.","line":601,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'market_timezone' on mixed.","line":601,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'data_quality' on mixed.","line":609,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'last_market_close…' on mixed.","line":609,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getLastMarketClose() should return string|null but returns mixed.","line":609,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_quality' on mixed.","line":617,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'next_market_open_utc' on mixed.","line":617,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getNextMarketOpen() should return string|null but returns mixed.","line":617,"ignorable":true,"identifier":"return.type"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":626,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot access offset 'current' on mixed.","line":650,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'amount' on mixed.","line":651,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'percent' on mixed.","line":652,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'current' on mixed.","line":653,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'current' on mixed.","line":674,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'session' on mixed.","line":677,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'data_quality' on mixed.","line":690,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'provider_used' on mixed.","line":690,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getDataProvider() should return string|null but returns mixed.","line":690,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_provider' on mixed.","line":691,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCoreData() should return array<string, mixed> but returns mixed.","line":705,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'instruments' on mixed.","line":723,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getInstruments() should return array<int, array<string, mixed>> but returns mixed.","line":724,"ignorable":true,"identifier":"return.type"},{"message":"Parameter #1 $tickers of method Wioex\\SDK\\Http\\Response::adaptLegacyTickersToInstruments() expects array<int, array<string, mixed>>, mixed given.","line":729,"ignorable":true,"identifier":"argument.type"},{"message":"Cannot access offset 'exchange_rates' on mixed.","line":743,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCurrencyRates() should return array<string, mixed> but returns mixed.","line":743,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'conversion' on mixed.","line":751,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCurrencyConversion() should return array|null but returns mixed.","line":751,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'chart_data' on mixed.","line":761,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCurrencyChartData() should return array<int, array<string, mixed>> but returns mixed.","line":761,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'articles' on mixed.","line":771,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getNewsArticles() should return array<int, array<string, mixed>> but returns mixed.","line":771,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'news' on mixed.","line":772,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'analysis' on mixed.","line":780,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getCompanyAnalysis() should return array|null but returns mixed.","line":780,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'company_analysis' on mixed.","line":781,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'timeline' on mixed.","line":791,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getTimelineData() should return array<int, array<string, mixed>> but returns mixed.","line":791,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'chart' on mixed.","line":792,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'historical_data' on mixed.","line":793,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":805,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot access offset non-falsy-string on mixed.","line":840,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot cast mixed to float.","line":841,"ignorable":true,"identifier":"cast.double"},{"message":"Cannot access offset string on mixed.","line":846,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot cast mixed to float.","line":847,"ignorable":true,"identifier":"cast.double"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":867,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":885,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot cast mixed to float.","line":890,"ignorable":true,"identifier":"cast.double"},{"message":"Call to function is_array() with array<string, mixed> will always evaluate to true.","line":955,"ignorable":true,"identifier":"function.alreadyNarrowedType"},{"message":"Else branch is unreachable because ternary operator condition is always true.","line":955,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"ternary.elseUnreachable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":960,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot access offset 'price' on mixed.","line":1006,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'open' on mixed.","line":1007,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'high' on mixed.","line":1008,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'low' on mixed.","line":1009,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'previousClose' on mixed.","line":1010,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'change' on mixed.","line":1013,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'changePercent' on mixed.","line":1014,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'volume' on mixed.","line":1017,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'service' on mixed.","line":1040,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'wioex' on mixed.","line":1040,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getLegacyService() should return string|null but returns mixed.","line":1041,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'service' on mixed.","line":1045,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getLegacyService() should return string|null but returns mixed.","line":1045,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'data_quality' on mixed.","line":1056,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'market_timezone' on mixed.","line":1056,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getLegacyTimezone() should return string|null but returns mixed.","line":1057,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'timezone' on mixed.","line":1061,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getLegacyTimezone() should return string|null but returns mixed.","line":1061,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 0 on mixed.","line":1072,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Method Wioex\\SDK\\Http\\Response::getTickerAnalysis() should return array<string, mixed>|null but returns mixed.","line":1072,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getAnalystRatings() should return array<string, mixed>|null but returns mixed.","line":1083,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getEarningsInsights() should return array<string, mixed>|null but returns mixed.","line":1094,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getInsiderActivity() should return array<string, mixed>|null but returns mixed.","line":1105,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getNewsAnalysis() should return array<string, mixed>|null but returns mixed.","line":1116,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getOptionsAnalysis() should return array<string, mixed>|null but returns mixed.","line":1127,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getPriceMovement() should return array<string, mixed>|null but returns mixed.","line":1138,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getFinancialMetrics() should return array<string, mixed>|null but returns mixed.","line":1149,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getAnalysisOverview() should return array<string, mixed>|null but returns mixed.","line":1160,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getAnalysisSymbol() should return string|null but returns mixed.","line":1181,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getAnalysisTimestamp() should return string|null but returns mixed.","line":1192,"ignorable":true,"identifier":"return.type"},{"message":"Only booleans are allowed in a negated boolean, array<string, mixed>|null given.","line":1215,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Cannot access offset 'price_target' on mixed.","line":1221,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Parameter #1 $text of method Wioex\\SDK\\Http\\Response::extractPriceFromText() expects string, mixed given.","line":1221,"ignorable":true,"identifier":"argument.type"},{"message":"Cannot access offset 'price_target' on mixed.","line":1222,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'viewpoint' on mixed.","line":1223,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'tldr' on mixed.","line":1224,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Only booleans are allowed in a negated boolean, array<string, mixed>|null given.","line":1238,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Cannot access offset 'tldr' on mixed.","line":1244,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'Outlook' on mixed.","line":1245,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'key_insights' on mixed.","line":1245,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'Performance…' on mixed.","line":1246,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'key_insights' on mixed.","line":1246,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Only booleans are allowed in a negated boolean, array<string, mixed>|null given.","line":1263,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, array<string, mixed>|null given.","line":1263,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Cannot access offset 'tldr' on mixed.","line":1270,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'pcr_volume' on mixed.","line":1271,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Only booleans are allowed in an if condition, int|false given.","line":1284,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchQuery() should return string|null but returns mixed.","line":1299,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchResultsCount() should return int but returns mixed.","line":1307,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchResults() should return array<int, array<string, mixed>> but returns mixed.","line":1317,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchProvider() should return string|null but returns mixed.","line":1325,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchCountry() should return string|null but returns mixed.","line":1333,"ignorable":true,"identifier":"return.type"},{"message":"Method Wioex\\SDK\\Http\\Response::getSearchSymbols() should return array<int, string> but returns array<int<0, max>, mixed>.","line":1385,"ignorable":true,"identifier":"return.type"},{"message":"Cannot access offset 'wioex' on mixed.","line":1431,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'api_version' on mixed.","line":1435,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Cannot access offset 'wioex' on mixed.","line":1435,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/ResponseCollection.php":{"errors":40,"messages":[{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::first() has no return type specified.","line":31,"ignorable":true,"identifier":"missingType.return"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":33,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::last() has no return type specified.","line":36,"ignorable":true,"identifier":"missingType.return"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":38,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::get() has no return type specified.","line":41,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::get() has parameter $default with no type specified.","line":41,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::get() has parameter $key with no type specified.","line":41,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::has() has parameter $key with no type specified.","line":46,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::put() has parameter $key with no type specified.","line":51,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::put() has parameter $value with no type specified.","line":51,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::push() has parameter $value with no type specified.","line":57,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::pull() has no return type specified.","line":63,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::pull() has parameter $default with no type specified.","line":63,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::pull() has parameter $key with no type specified.","line":63,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::forget() has parameter $key with no type specified.","line":70,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Deprecated in PHP 8.4: Parameter #1 $callback (callable) is implicitly nullable via default value null.","line":86,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::reduce() has no return type specified.","line":106,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::reduce() has parameter $initial with no type specified.","line":106,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Variable property access on object.","line":119,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::where() has parameter $operator with no type specified.","line":126,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::where() has parameter $value with no type specified.","line":126,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Variable property access on object.","line":135,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Variable property access on object.","line":181,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Variable property access on object.","line":182,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Variable property access on object.","line":201,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Deprecated in PHP 8.4: Parameter #1 $key (string) is implicitly nullable via default value null.","line":213,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Variable property access on object.","line":223,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Deprecated in PHP 8.4: Parameter #2 $length (int) is implicitly nullable via default value null.","line":234,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Parameter #2 $length of function array_chunk expects int<1, max>, int given.","line":251,"ignorable":true,"identifier":"argument.type"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":311,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #2 $key (string) is implicitly nullable via default value null.","line":319,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::contains() has parameter $value with no type specified.","line":319,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Variable property access on object.","line":326,"ignorable":true,"identifier":"property.dynamicName"},{"message":"Deprecated in PHP 8.4: Parameter #1 $key (string) is implicitly nullable via default value null.","line":335,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #1 $key (string) is implicitly nullable via default value null.","line":344,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #1 $key (string) is implicitly nullable via default value null.","line":350,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::min() has no return type specified.","line":350,"ignorable":true,"identifier":"missingType.return"},{"message":"Deprecated in PHP 8.4: Parameter #1 $key (string) is implicitly nullable via default value null.","line":359,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::max() has no return type specified.","line":359,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Http\\ResponseCollection::key() should return int|string but returns int|string|null.","line":407,"ignorable":true,"identifier":"return.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Http/RetryHandler.php":{"errors":3,"messages":[{"message":"Casting to int something that's already int.","line":134,"ignorable":true,"identifier":"cast.useless"},{"message":"Casting to int something that's already int.","line":149,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"cast.useless"},{"message":"Method Wioex\\SDK\\Http\\RetryHandler::sleep() is unused.","line":201,"ignorable":true,"identifier":"method.unused"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Logging/Logger.php":{"errors":12,"messages":[{"message":"Instantiated class Monolog\\Handler\\StreamHandler not found.","line":194,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Instantiated class Monolog\\Handler\\RotatingFileHandler not found.","line":200,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Instantiated class Monolog\\Handler\\SyslogHandler not found.","line":205,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Instantiated class Monolog\\Formatter\\LineFormatter not found.","line":212,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method setFormatter() on an unknown class Monolog\\Handler\\RotatingFileHandler.","line":216,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method setFormatter() on an unknown class Monolog\\Handler\\StreamHandler.","line":216,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Call to method setFormatter() on an unknown class Monolog\\Handler\\SyslogHandler.","line":216,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Cannot call method pushHandler() on object|null.","line":218,"ignorable":true,"identifier":"method.nonObject"},{"message":"Only booleans are allowed in an if condition, object|null given.","line":237,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Call to an undefined method object::log().","line":238,"ignorable":true,"identifier":"method.notFound"},{"message":"Match expression does not handle remaining value: mixed","line":299,"ignorable":true,"identifier":"match.unhandled"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":326,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Middleware/AbstractMiddleware.php":{"errors":4,"messages":[{"message":"Call to function in_array() requires parameter #3 to be set.","line":70,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":79,"ignorable":true,"identifier":"function.strict"},{"message":"Method Wioex\\SDK\\Middleware\\AbstractMiddleware::getConfigValue() has no return type specified.","line":213,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Middleware\\AbstractMiddleware::getConfigValue() has parameter $default with no type specified.","line":213,"ignorable":true,"identifier":"missingType.parameter"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Middleware/LoggingMiddleware.php":{"errors":6,"messages":[{"message":"Method Wioex\\SDK\\Middleware\\LoggingMiddleware::handleErrorCustom() never returns null so it can be removed from the return type.","line":57,"ignorable":true,"identifier":"return.unusedType"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":79,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":113,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":158,"ignorable":true,"identifier":"function.strict"},{"message":"Method Wioex\\SDK\\Middleware\\LoggingMiddleware::sanitizeBody() should return string but returns string|false.","line":183,"ignorable":true,"identifier":"return.type"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":196,"ignorable":true,"identifier":"function.strict"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Middleware/MiddlewarePipeline.php":{"errors":4,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":21,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":426,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":446,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":456,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Middleware/MonitoringMiddleware.php":{"errors":4,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":60,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Middleware\\MonitoringMiddleware::handleErrorCustom() never returns null so it can be removed from the return type.","line":108,"ignorable":true,"identifier":"return.unusedType"},{"message":"Call to an undefined method Wioex\\SDK\\Monitoring\\PerformanceMonitor::recordError().","line":132,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, int|false given.","line":155,"ignorable":true,"identifier":"if.condNotBoolean"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Middleware/ValidationMiddleware.php":{"errors":2,"messages":[{"message":"Parameter #1 $string of function base64_encode expects string, string|false given.","line":192,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Middleware\\ValidationMiddleware::shouldSkipValidation() is unused.","line":202,"ignorable":true,"identifier":"method.unused"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Monitoring/Metrics.php":{"errors":9,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":223,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":266,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":272,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Cannot call method getTimestamp() on object|null.","line":297,"ignorable":true,"identifier":"method.nonObject"},{"message":"Deprecated in PHP 8.4: Parameter #1 $type (Wioex\\SDK\\Enums\\MetricType) is implicitly nullable via default value null.","line":320,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Cannot call method getTimestamp() on object|null.","line":357,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":366,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Cannot call method getTimestamp() on object|null.","line":427,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":438,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Monitoring/PerformanceMonitor.php":{"errors":8,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #1 $metrics (Wioex\\SDK\\Monitoring\\Metrics) is implicitly nullable via default value null.","line":22,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":23,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":27,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":28,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Deprecated in PHP 8.4: Parameter #4 $duration (float) is implicitly nullable via default value null.","line":133,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Call to private method getPerformanceSummary() of class Wioex\\SDK\\Monitoring\\Metrics.","line":252,"ignorable":true,"identifier":"method.private"},{"message":"Call to private method getPerformanceSummary() of class Wioex\\SDK\\Monitoring\\Metrics.","line":290,"ignorable":true,"identifier":"method.private"},{"message":"Call to private method getPerformanceSummary() of class Wioex\\SDK\\Monitoring\\Metrics.","line":508,"ignorable":true,"identifier":"method.private"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Monitoring/ProgressTracker.php":{"errors":12,"messages":[{"message":"Property Wioex\\SDK\\Monitoring\\ProgressTracker::$progressCallbacks is never read, only written.","line":20,"ignorable":true,"tip":"See: https://phpstan.org/developing-extensions/always-read-written-properties","identifier":"property.onlyWritten"},{"message":"Property Wioex\\SDK\\Monitoring\\ProgressTracker::$progressCallback has no type specified.","line":21,"ignorable":true,"identifier":"missingType.property"},{"message":"Method Wioex\\SDK\\Monitoring\\ProgressTracker::__construct() has parameter $progressCallback with no type specified.","line":27,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":112,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":154,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":175,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":176,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":177,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Comparison operation \">\" between int<1, max> and 0 is always true.","line":178,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"greater.alwaysTrue"},{"message":"Else branch is unreachable because ternary operator condition is always true.","line":178,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"ternary.elseUnreachable"},{"message":"Method Wioex\\SDK\\Monitoring\\ProgressTracker::setProgressCallback() has parameter $callback with no type specified.","line":270,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Deprecated in PHP 8.4: Parameter #1 $newTotalItems (int) is implicitly nullable via default value null.","line":286,"ignorable":true,"identifier":"parameter.implicitlyNullable"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Monitoring/TelemetryManager.php":{"errors":10,"messages":[{"message":"Offset 'enabled' on array{enabled: bool, auto_report_errors: bool, performance_tracking: bool, privacy_mode: string, sampling_rate: float, endpoint: string, flush_interval: int, max_queue_size: int, ...} on left side of ?? always exists and is not nullable.","line":47,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Offset 'sampling_rate' on array{enabled: bool, auto_report_errors: bool, performance_tracking: bool, privacy_mode: string, sampling_rate: float, endpoint: string, flush_interval: int, max_queue_size: int, ...} on left side of ?? always exists and is not nullable.","line":48,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Offset 'privacy_mode' on array{enabled: bool, auto_report_errors: bool, performance_tracking: bool, privacy_mode: string, sampling_rate: float, endpoint: string, flush_interval: int, max_queue_size: int, ...} on left side of ?? always exists and is not nullable.","line":49,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Offset 'flush_interval' on array{enabled: bool, auto_report_errors: bool, performance_tracking: bool, privacy_mode: string, sampling_rate: float, endpoint: string, flush_interval: int, max_queue_size: int, ...} on left side of ?? always exists and is not nullable.","line":50,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Offset 'max_queue_size' on array{enabled: bool, auto_report_errors: bool, performance_tracking: bool, privacy_mode: string, sampling_rate: float, endpoint: string, flush_interval: int, max_queue_size: int, ...} on left side of ?? always exists and is not nullable.","line":51,"ignorable":true,"identifier":"nullCoalesce.offset"},{"message":"Cannot cast mixed to int.","line":125,"ignorable":true,"identifier":"cast.int"},{"message":"Only booleans are allowed in an if condition, string|null given.","line":183,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":195,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #3 $subject of function preg_replace expects array|string, string|null given.","line":352,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Monitoring\\TelemetryManager::sanitizeMessage() should return string but returns string|null.","line":355,"ignorable":true,"identifier":"return.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Monitoring/Timer.php":{"errors":1,"messages":[{"message":"Method Wioex\\SDK\\Monitoring\\Timer::measure() has no return type specified.","line":50,"ignorable":true,"identifier":"missingType.return"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/RateLimit/RateLimitManager.php":{"errors":10,"messages":[{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":81,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":155,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #1 $category of method Wioex\\SDK\\RateLimit\\RateLimitManager::getLimiter() expects string, int|string given.","line":160,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #2 $category of method Wioex\\SDK\\RateLimit\\RateLimiter::getStatus() expects string, int|string given.","line":161,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":188,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":234,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":281,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":432,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":448,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":462,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/RateLimit/RateLimiter.php":{"errors":17,"messages":[{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":36,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":80,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":137,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Method Wioex\\SDK\\RateLimit\\RateLimiter::getTokenBucket() should return array but returns mixed.","line":140,"ignorable":true,"identifier":"return.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":150,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":174,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":175,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":213,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":218,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #2 $category of method Wioex\\SDK\\RateLimit\\RateLimiter::clearLimits() expects string|null, int|string given.","line":223,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":234,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":297,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":304,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":345,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":352,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":361,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":374,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Reliability/CircuitBreaker.php":{"errors":15,"messages":[{"message":"Method Wioex\\SDK\\Reliability\\CircuitBreaker::call() has no return type specified.","line":65,"ignorable":true,"identifier":"missingType.return"},{"message":"Instantiated class Wioex\\SDK\\Exceptions\\CircuitBreakerException not found.","line":70,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Throwing object of an unknown class Wioex\\SDK\\Exceptions\\CircuitBreakerException.","line":70,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Reliability\\CircuitBreaker::callWithFallback() has no return type specified.","line":91,"ignorable":true,"identifier":"missingType.return"},{"message":"Caught class Wioex\\SDK\\Exceptions\\CircuitBreakerException not found.","line":95,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Method Wioex\\SDK\\Reliability\\CircuitBreaker::execute() has no return type specified.","line":107,"ignorable":true,"identifier":"missingType.return"},{"message":"Only booleans are allowed in an if condition, (callable)|null given.","line":118,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Invalid type Throwable|null to throw.","line":134,"ignorable":true,"identifier":"throw.notThrowable"},{"message":"Class Wioex\\SDK\\Exceptions\\CircuitBreakerException not found.","line":241,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":392,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in &&, mixed given on the left side.","line":399,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheInterface|null given.","line":412,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":476,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":477,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":477,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Reliability/CircuitBreakerManager.php":{"errors":8,"messages":[{"message":"Method Wioex\\SDK\\Reliability\\CircuitBreakerManager::call() has no return type specified.","line":64,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Reliability\\CircuitBreakerManager::callWithFallback() has no return type specified.","line":80,"ignorable":true,"identifier":"missingType.return"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":129,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Instantiated class Wioex\\SDK\\Exceptions\\CircuitBreakerException not found.","line":137,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Throwing object of an unknown class Wioex\\SDK\\Exceptions\\CircuitBreakerException.","line":137,"ignorable":true,"tip":"Learn more at https://phpstan.org/user-guide/discovering-symbols","identifier":"class.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":356,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":357,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":357,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Resources/Logos.php":{"errors":9,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":50,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Response::getData().","line":66,"ignorable":true,"identifier":"method.notFound"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":71,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Client::getRawResponse().","line":100,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Response::getData().","line":156,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":203,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Http\\Response::getData().","line":271,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":293,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Only booleans are allowed in a negated boolean, int|false given.","line":301,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Resources/News.php":{"errors":4,"messages":[{"message":"Right side of && is always true.","line":86,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"booleanAnd.rightAlwaysTrue"},{"message":"Right side of && is always true.","line":91,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"booleanAnd.rightAlwaysTrue"},{"message":"Casting to int something that's already int.","line":97,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"cast.useless"},{"message":"Casting to int something that's already int.","line":101,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"cast.useless"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Resources/Screens.php":{"errors":14,"messages":[{"message":"Only booleans are allowed in &&, mixed given on the left side.","line":458,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Only booleans are allowed in &&, mixed given on the right side.","line":458,"ignorable":true,"identifier":"booleanAnd.rightNotBoolean"},{"message":"Parameter #1 $value of function count expects array|Countable, mixed given.","line":467,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $value of function count expects array|Countable, mixed given.","line":468,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #3 $body of class GuzzleHttp\\Psr7\\Response constructor expects Psr\\Http\\Message\\StreamInterface|resource|string|null, string|false given.","line":474,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $value of function count expects array|Countable, mixed given.","line":497,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $value of function count expects array|Countable, mixed given.","line":498,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":526,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":527,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #3 $body of class GuzzleHttp\\Psr7\\Response constructor expects Psr\\Http\\Message\\StreamInterface|resource|string|null, string|false given.","line":532,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":561,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":562,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $array of function array_slice expects array, mixed given.","line":563,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #3 $body of class GuzzleHttp\\Psr7\\Response constructor expects Psr\\Http\\Message\\StreamInterface|resource|string|null, string|false given.","line":572,"ignorable":true,"identifier":"argument.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Resources/Stocks.php":{"errors":5,"messages":[{"message":"PHPDoc tag @throws with type Wioex\\SDK\\Exceptions\\ValidationException|Wioex\\SDK\\Resources\\AuthenticationException|Wioex\\SDK\\Resources\\RateLimitException|Wioex\\SDK\\Resources\\RequestException|Wioex\\SDK\\Resources\\WioexException is not subtype of Throwable","line":573,"ignorable":true,"identifier":"throws.notThrowable"},{"message":"Casting to string something that's already string.","line":731,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"cast.useless"},{"message":"Cannot cast mixed to int.","line":813,"ignorable":true,"identifier":"cast.int"},{"message":"Cannot cast mixed to float.","line":814,"ignorable":true,"identifier":"cast.double"},{"message":"Method Wioex\\SDK\\Resources\\Stocks::executeBulkOperation() should return Wioex\\SDK\\Http\\Response but returns Wioex\\SDK\\Response.","line":830,"ignorable":true,"identifier":"return.type"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Resources/Streaming.php":{"errors":3,"messages":[{"message":"Only booleans are allowed in an if condition, Psr\\Http\\Message\\ResponseInterface|null given.","line":66,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Only booleans are allowed in &&, array|null given on the left side.","line":231,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Only booleans are allowed in &&, array|null given on the left side.","line":271,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Retry/RetryManager.php":{"errors":14,"messages":[{"message":"Only booleans are allowed in an if condition, Throwable|null given.","line":84,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Cannot access offset 'error' on array{attempt: int<1, max>, success: false, result: null, error: Throwable}|false.","line":150,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"},{"message":"Call to function method_exists() with Throwable and 'getCode' will always evaluate to true.","line":294,"ignorable":true,"identifier":"function.alreadyNarrowedType"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":299,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":303,"ignorable":true,"identifier":"function.strict"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":386,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a ternary operator condition, Throwable|null given.","line":426,"ignorable":true,"identifier":"ternary.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":436,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #2 $offset of function array_slice expects int, float|int given.","line":438,"ignorable":true,"identifier":"argument.type"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":516,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":548,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":593,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to function array_keys() requires parameter #3 to be set.","line":594,"ignorable":true,"identifier":"function.strict"},{"message":"Cannot access offset 'would_succeed' on array{attempt: int<1, max>, would_succeed: bool, delay: 0|float, would_retry: bool}|false.","line":662,"ignorable":true,"identifier":"offsetAccess.nonOffsetAccessible"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Security/EncryptionManager.php":{"errors":16,"messages":[{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":27,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":40,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":47,"ignorable":true,"identifier":"function.strict"},{"message":"Only booleans are allowed in a ternary operator condition, string|null given.","line":62,"ignorable":true,"identifier":"ternary.condNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":73,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to function base64_decode() requires parameter #2 to be set.","line":81,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function base64_decode() requires parameter #2 to be set.","line":82,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function base64_decode() requires parameter #2 to be set.","line":83,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":85,"ignorable":true,"identifier":"function.strict"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":111,"ignorable":true,"identifier":"function.strict"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":150,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Parameter #1 $length of function random_bytes expects int<1, max>, int given.","line":164,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":174,"ignorable":true,"identifier":"method.notFound"},{"message":"Parameter #1 $length of function random_bytes expects int<1, max>, int given.","line":188,"ignorable":true,"identifier":"argument.type"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":198,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":210,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Security/RequestSigner.php":{"errors":6,"messages":[{"message":"Property Wioex\\SDK\\Security\\RequestSigner::$algorithms is never read, only written.","line":13,"ignorable":true,"tip":"See: https://phpstan.org/developing-extensions/always-read-written-properties","identifier":"property.onlyWritten"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":26,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":59,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a negated boolean, OpenSSLAsymmetricKey|false given.","line":134,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":153,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":174,"ignorable":true,"identifier":"method.notFound"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Security/SecurityManager.php":{"errors":20,"messages":[{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":30,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in &&, string|null given on the left side.","line":47,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":93,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":106,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Left side of && is always false.","line":106,"ignorable":true,"identifier":"booleanAnd.leftAlwaysFalse"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":124,"ignorable":true,"identifier":"function.strict"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":129,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":171,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":182,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":206,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":224,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":230,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":230,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":263,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in an if condition, int|false given.","line":273,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Only booleans are allowed in &&, string|null given on the left side.","line":291,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":331,"ignorable":true,"identifier":"method.notFound"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":340,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":341,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":342,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/AbstractTransformer.php":{"errors":5,"messages":[{"message":"Method Wioex\\SDK\\Transformers\\AbstractTransformer::getOption() has no return type specified.","line":33,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Transformers\\AbstractTransformer::getOption() has parameter $default with no type specified.","line":33,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\AbstractTransformer::setOption() has parameter $value with no type specified.","line":38,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\AbstractTransformer::filterByPath() has no return type specified.","line":74,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Transformers\\AbstractTransformer::setByPath() has parameter $value with no type specified.","line":89,"ignorable":true,"identifier":"missingType.parameter"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/BuiltIn/FilterTransformer.php":{"errors":4,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":46,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":57,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":121,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":130,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/BuiltIn/MapTransformer.php":{"errors":2,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":117,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\MapTransformer::addValueMapping() has parameter $mapping with no type specified.","line":129,"ignorable":true,"identifier":"missingType.parameter"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/BuiltIn/NormalizationTransformer.php":{"errors":11,"messages":[{"message":"Parameter #1 $string of function strtolower expects string, string|null given.","line":93,"ignorable":true,"identifier":"argument.type"},{"message":"Parameter #1 $string of function strtolower expects string, string|null given.","line":111,"ignorable":true,"identifier":"argument.type"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeValue() has no return type specified.","line":129,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeValue() has parameter $value with no type specified.","line":129,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeBooleanValue() has no return type specified.","line":154,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeBooleanValue() has parameter $value with no type specified.","line":154,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeDateValue() has no return type specified.","line":169,"ignorable":true,"identifier":"missingType.return"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\NormalizationTransformer::normalizeDateValue() has parameter $value with no type specified.","line":169,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":201,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":251,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":256,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/BuiltIn/ValidationTransformer.php":{"errors":12,"messages":[{"message":"Strict comparison using === between mixed and null will always evaluate to false.","line":89,"ignorable":true,"tip":"Type null has already been eliminated from mixed.","identifier":"identical.alwaysFalse"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":116,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\ValidationTransformer::validateField() has parameter $value with no type specified.","line":121,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\ValidationTransformer::validateRule() has parameter $parameter with no type specified.","line":135,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\ValidationTransformer::validateRule() has parameter $value with no type specified.","line":135,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Only booleans are allowed in a negated boolean, int|false given.","line":169,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, string|false given.","line":189,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, string|false given.","line":195,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\ValidationTransformer::validateType() has parameter $value with no type specified.","line":210,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Method Wioex\\SDK\\Transformers\\BuiltIn\\ValidationTransformer::validateDate() has parameter $value with no type specified.","line":224,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Only booleans are allowed in &&, DateTime|false given on the left side.","line":231,"ignorable":true,"identifier":"booleanAnd.leftNotBoolean"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":241,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Transformers/TransformerPipeline.php":{"errors":1,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":315,"ignorable":true,"identifier":"empty.notAllowed"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Validation/SchemaValidator.php":{"errors":5,"messages":[{"message":"Deprecated in PHP 8.4: Parameter #2 $logger (Wioex\\SDK\\Logging\\Logger) is implicitly nullable via default value null.","line":28,"ignorable":true,"identifier":"parameter.implicitlyNullable"},{"message":"Instanceof between Wioex\\SDK\\Validation\\ValidationRule and Wioex\\SDK\\Validation\\ValidationRule will always evaluate to true.","line":76,"ignorable":true,"tip":"Because the type is coming from a PHPDoc, you can turn off this check by setting treatPhpDocTypesAsCertain: false in your %configurationFile%.","identifier":"instanceof.alwaysTrue"},{"message":"Call to an undefined method Wioex\\SDK\\Validation\\SchemaValidator::optional().","line":529,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Validation\\SchemaValidator::optional().","line":542,"ignorable":true,"identifier":"method.notFound"},{"message":"Only booleans are allowed in a negated boolean, mixed given.","line":564,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Validation/ValidationReport.php":{"errors":6,"messages":[{"message":"Construct empty() is not allowed. Use more strict comparison.","line":49,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":54,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":134,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":147,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":287,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Call to function in_array() requires parameter #3 to be set.","line":314,"ignorable":true,"identifier":"function.strict"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/Validation/ValidationRule.php":{"errors":8,"messages":[{"message":"Short ternary operator is not allowed. Use null coalesce operator if applicable or consider using long ternary.","line":32,"ignorable":true,"identifier":"ternary.shortNotAllowed"},{"message":"Cannot cast mixed to string.","line":222,"ignorable":true,"identifier":"cast.string"},{"message":"Cannot cast mixed to string.","line":264,"ignorable":true,"identifier":"cast.string"},{"message":"Cannot cast mixed to string.","line":292,"ignorable":true,"identifier":"cast.string"},{"message":"Parameter #2 $expectedType of method Wioex\\SDK\\Validation\\ValidationRule::validateFieldType() expects string, mixed given.","line":318,"ignorable":true,"identifier":"argument.type"},{"message":"Trying to invoke mixed but it's not a callable.","line":340,"ignorable":true,"identifier":"callable.nonCallable"},{"message":"Part $this->rule (mixed) of encapsed string cannot be cast to string.","line":367,"ignorable":true,"identifier":"encapsedStringPart.nonString"},{"message":"Part $this->rule (mixed) of encapsed string cannot be cast to string.","line":373,"ignorable":true,"identifier":"encapsedStringPart.nonString"}]},"/var/www/api.wioex.com/wioex-php-sdk/src/WioexClient.php":{"errors":35,"messages":[{"message":"Cannot call method isHealthy() on Wioex\\SDK\\Cache\\CacheInterface|null.","line":701,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":769,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Method Wioex\\SDK\\WioexClient::cacheSet() has parameter $value with no type specified.","line":835,"ignorable":true,"identifier":"missingType.parameter"},{"message":"Cannot call method set() on Wioex\\SDK\\Cache\\CacheManager|null.","line":844,"ignorable":true,"identifier":"method.nonObject"},{"message":"Method Wioex\\SDK\\WioexClient::cacheGet() has no return type specified.","line":850,"ignorable":true,"identifier":"missingType.return"},{"message":"Cannot call method get() on Wioex\\SDK\\Cache\\CacheManager|null.","line":856,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method has() on Wioex\\SDK\\Cache\\CacheManager|null.","line":868,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method delete() on Wioex\\SDK\\Cache\\CacheManager|null.","line":880,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method clear() on Wioex\\SDK\\Cache\\CacheManager|null.","line":892,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method getStatistics() on Wioex\\SDK\\Cache\\CacheManager|null.","line":906,"ignorable":true,"identifier":"method.nonObject"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheManager|null given.","line":915,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Method Wioex\\SDK\\WioexClient::remember() has no return type specified.","line":926,"ignorable":true,"identifier":"missingType.return"},{"message":"Cannot call method remember() on Wioex\\SDK\\Cache\\CacheManager|null.","line":935,"ignorable":true,"identifier":"method.nonObject"},{"message":"Method Wioex\\SDK\\WioexClient::rememberForever() has no return type specified.","line":941,"ignorable":true,"identifier":"missingType.return"},{"message":"Cannot call method rememberForever() on Wioex\\SDK\\Cache\\CacheManager|null.","line":947,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method namespace() on Wioex\\SDK\\Cache\\CacheManager|null.","line":959,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method tags() on Wioex\\SDK\\Cache\\CacheManager|null.","line":971,"ignorable":true,"identifier":"method.nonObject"},{"message":"Cannot call method flushExpired() on Wioex\\SDK\\Cache\\CacheManager|null.","line":983,"ignorable":true,"identifier":"method.nonObject"},{"message":"Construct empty() is not allowed. Use more strict comparison.","line":991,"ignorable":true,"identifier":"empty.notAllowed"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Cache\\CacheManager|null given.","line":1017,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Cannot redeclare method Wioex\\SDK\\WioexClient::async().","line":1033,"ignorable":false,"identifier":"class.duplicateMethod"},{"message":"Method Wioex\\SDK\\WioexClient::withCircuitBreaker() has no return type specified.","line":1163,"ignorable":true,"identifier":"missingType.return"},{"message":"Only booleans are allowed in an if condition, (callable)|null given.","line":1167,"ignorable":true,"identifier":"if.condNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Async\\BatchRequestManager|null given.","line":1188,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Only booleans are allowed in a negated boolean, Wioex\\SDK\\Reliability\\CircuitBreakerManager|null given.","line":1203,"ignorable":true,"identifier":"booleanNot.exprNotBoolean"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":1348,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":1350,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":1367,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":1371,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":1388,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":1394,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":1611,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":1617,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::get().","line":1930,"ignorable":true,"identifier":"method.notFound"},{"message":"Call to an undefined method Wioex\\SDK\\Config::set().","line":1939,"ignorable":true,"identifier":"method.notFound"}]}},"errors":[]}