diff --git a/qodana.sarif.json b/qodana.sarif.json index d798eebe8..7e515b223 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -326,6 +326,10 @@ "id": "HTML", "name": "HTML" }, + { + "id": "Cucumber", + "name": "Cucumber" + }, { "id": "JavaScript and TypeScript/Unused symbols", "name": "Unused symbols", @@ -344,10 +348,6 @@ } ] }, - { - "id": "Cucumber", - "name": "Cucumber" - }, { "id": "JavaScript and TypeScript/Flow type checker", "name": "Flow type checker", @@ -714,10 +714,6 @@ "id": "YAML", "name": "YAML" }, - { - "id": "HTTP Client", - "name": "HTTP Client" - }, { "id": "PHP/Unused symbols", "name": "Unused symbols", @@ -736,6 +732,10 @@ } ] }, + { + "id": "HTTP Client", + "name": "HTTP Client" + }, { "id": "PHP/Composer", "name": "Composer", @@ -1331,13 +1331,13 @@ ] }, { - "id": "PHP/Quality tools", - "name": "Quality tools", + "id": "JavaScript and TypeScript/Function metrics", + "name": "Function metrics", "relationships": [ { "target": { - "id": "PHP", - "index": 0, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -1349,13 +1349,13 @@ ] }, { - "id": "JavaScript and TypeScript/Function metrics", - "name": "Function metrics", + "id": "PHP/Quality tools", + "name": "Quality tools", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "PHP", + "index": 0, "toolComponent": { "name": "QDPHP" } @@ -5438,19 +5438,19 @@ ] }, { - "id": "NullPointerExceptionInspection", + "id": "ObGetCleanCanBeUsedInspection", "shortDescription": { - "text": "Null reference" + "text": "'ob_get_clean()' can be used" }, "fullDescription": { "text": "Documentation can be found here", - "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/probable-bugs.md#null-pointer-exceptions-prevention)" + "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/control-flow.md#ob_get_clean-can-be-used)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "NullPointerExceptionInspection", + "suppressToolId": "ObGetCleanCanBeUsedInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -5458,8 +5458,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Probable bugs", - "index": 2, + "id": "PHP/Php Inspections (EA Extended)/Control Flow", + "index": 17, "toolComponent": { "name": "QDPHP" } @@ -5471,19 +5471,19 @@ ] }, { - "id": "ObGetCleanCanBeUsedInspection", + "id": "NullPointerExceptionInspection", "shortDescription": { - "text": "'ob_get_clean()' can be used" + "text": "Null reference" }, "fullDescription": { "text": "Documentation can be found here", - "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/control-flow.md#ob_get_clean-can-be-used)" + "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/probable-bugs.md#null-pointer-exceptions-prevention)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "ObGetCleanCanBeUsedInspection", + "suppressToolId": "NullPointerExceptionInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -5491,8 +5491,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Control Flow", - "index": 17, + "id": "PHP/Php Inspections (EA Extended)/Probable bugs", + "index": 2, "toolComponent": { "name": "QDPHP" } @@ -6857,28 +6857,28 @@ ] }, { - "id": "TypeUnsafeArraySearchInspection", + "id": "StaticLambdaBindingInspection", "shortDescription": { - "text": "'in_array(...)', 'array_search(...)' type unsafe usage" + "text": "Static lambdas binding" }, "fullDescription": { - "text": "Analyzes usages of 'array_search(..)' and 'in_array(...)'. If the 'strict' (third) parameter is missing, refactoring will be proposed for security's sake. Refactoring this might present a significant cost in terms of additional development and legacy code reverse engineering, so the cost-benefit should be weighed carefully. Documentation can be found here", - "markdown": "Analyzes usages of 'array_search(..)' and 'in_array(...)'. If the 'strict' (third) parameter is missing, refactoring will be proposed for security's sake. \n\nRefactoring this might present a significant cost in terms of additional development and legacy code reverse engineering, so the cost-benefit should be weighed carefully. \nDocumentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/types-compatibility.md#strict-type-search-in-arrays)" + "text": "Reports static closures, referencing '$this' (provokes a fatal error).", + "markdown": "Reports static closures, referencing '$this' (provokes a fatal error)." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "TypeUnsafeArraySearchInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "StaticLambdaBindingInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Type compatibility", - "index": 83, + "id": "PHP/Php Inspections (EA Extended)/Probable bugs", + "index": 2, "toolComponent": { "name": "QDPHP" } @@ -6890,28 +6890,28 @@ ] }, { - "id": "StaticLambdaBindingInspection", + "id": "TypeUnsafeArraySearchInspection", "shortDescription": { - "text": "Static lambdas binding" + "text": "'in_array(...)', 'array_search(...)' type unsafe usage" }, "fullDescription": { - "text": "Reports static closures, referencing '$this' (provokes a fatal error).", - "markdown": "Reports static closures, referencing '$this' (provokes a fatal error)." + "text": "Analyzes usages of 'array_search(..)' and 'in_array(...)'. If the 'strict' (third) parameter is missing, refactoring will be proposed for security's sake. Refactoring this might present a significant cost in terms of additional development and legacy code reverse engineering, so the cost-benefit should be weighed carefully. Documentation can be found here", + "markdown": "Analyzes usages of 'array_search(..)' and 'in_array(...)'. If the 'strict' (third) parameter is missing, refactoring will be proposed for security's sake. \n\nRefactoring this might present a significant cost in terms of additional development and legacy code reverse engineering, so the cost-benefit should be weighed carefully. \nDocumentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/types-compatibility.md#strict-type-search-in-arrays)" }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "StaticLambdaBindingInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "TypeUnsafeArraySearchInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Probable bugs", - "index": 2, + "id": "PHP/Php Inspections (EA Extended)/Type compatibility", + "index": 83, "toolComponent": { "name": "QDPHP" } @@ -8573,7 +8573,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -9101,7 +9101,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -10433,19 +10433,19 @@ ] }, { - "id": "PhpToStringMayProduceExceptionInspection", + "id": "PhpForeachArrayIsUsedAsValueInspection", "shortDescription": { - "text": "'__toString' may throw an exception" + "text": "Foreach array is used as value" }, "fullDescription": { - "text": "Reports the usages of '__toString' that may throw an exception, which is not allowed for PHP language level lower than 7.4.", - "markdown": "Reports the usages of `__toString` that may throw an exception, which is not allowed for PHP language level lower than 7.4." + "text": "Reports the variables that are used in a 'foreach' loop as both an array expression and an array's key or value (for example, 'foreach ($items as $items) {}'). Commonly, this is the result of a typing error.", + "markdown": "Reports the variables that are used in a `foreach` loop as both an array expression and an array's key or value (for example, `foreach ($items as $items) {}`).\n\n\nCommonly, this is the result of a typing error." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PhpToStringMayProduceExceptionInspection", + "suppressToolId": "PhpForeachArrayIsUsedAsValueInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -10453,8 +10453,8 @@ "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Probable bugs", + "index": 12, "toolComponent": { "name": "QDPHP" } @@ -10466,19 +10466,19 @@ ] }, { - "id": "PhpForeachArrayIsUsedAsValueInspection", + "id": "PhpToStringMayProduceExceptionInspection", "shortDescription": { - "text": "Foreach array is used as value" + "text": "'__toString' may throw an exception" }, "fullDescription": { - "text": "Reports the variables that are used in a 'foreach' loop as both an array expression and an array's key or value (for example, 'foreach ($items as $items) {}'). Commonly, this is the result of a typing error.", - "markdown": "Reports the variables that are used in a `foreach` loop as both an array expression and an array's key or value (for example, `foreach ($items as $items) {}`).\n\n\nCommonly, this is the result of a typing error." + "text": "Reports the usages of '__toString' that may throw an exception, which is not allowed for PHP language level lower than 7.4.", + "markdown": "Reports the usages of `__toString` that may throw an exception, which is not allowed for PHP language level lower than 7.4." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PhpForeachArrayIsUsedAsValueInspection", + "suppressToolId": "PhpToStringMayProduceExceptionInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -10486,8 +10486,8 @@ "relationships": [ { "target": { - "id": "PHP/Probable bugs", - "index": 12, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -11258,28 +11258,28 @@ ] }, { - "id": "PhpDeprecatedImplodeUsageInspection", + "id": "PhpDangerousArrayInitializationInspection", "shortDescription": { - "text": "Deprecated 'implode/join' usage" + "text": "Dangerous array initialization" }, "fullDescription": { - "text": "Reports deprecated usage of the 'implode' and 'join' functions. Starting from PHP 7.4, using 'implode' and 'join' with an array as the first argument and a string as the second argument is deprecated. See Deprecations for PHP 7.4 (php.net) for details.", - "markdown": "Reports deprecated usage of the `implode` and `join` functions.\n\nStarting from PHP 7.4, using `implode` and `join` with an array as the first argument and a string as the second argument is deprecated.\n\n\nSee [Deprecations for PHP 7.4 (php.net)](https://wiki.php.net/rfc/deprecations_php_7_4#implode_parameter_order_mix) for details." + "text": "Reports dangerous array initializations (such as '$arr[] = value'). This practice is discouraged because if '$arr' already contains some value (for example, a string from a request variable), then this value will stay in place and '[]' may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment. See Creating/modifying with square bracket syntax (php.net) for details.", + "markdown": "Reports dangerous array initializations (such as `$arr[] = value`).\n\n\nThis practice is discouraged because if `$arr` already contains some value (for example, a string from a request variable), then this value will stay in place and `[]` may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment.\n\nSee [Creating/modifying with square bracket syntax (php.net)](https://www.php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying) for details." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PhpDeprecatedImplodeUsageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpDangerousArrayInitializationInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/General", - "index": 8, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11291,28 +11291,28 @@ ] }, { - "id": "PhpDangerousArrayInitializationInspection", + "id": "PhpDeprecatedImplodeUsageInspection", "shortDescription": { - "text": "Dangerous array initialization" + "text": "Deprecated 'implode/join' usage" }, "fullDescription": { - "text": "Reports dangerous array initializations (such as '$arr[] = value'). This practice is discouraged because if '$arr' already contains some value (for example, a string from a request variable), then this value will stay in place and '[]' may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment. See Creating/modifying with square bracket syntax (php.net) for details.", - "markdown": "Reports dangerous array initializations (such as `$arr[] = value`).\n\n\nThis practice is discouraged because if `$arr` already contains some value (for example, a string from a request variable), then this value will stay in place and `[]` may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment.\n\nSee [Creating/modifying with square bracket syntax (php.net)](https://www.php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying) for details." + "text": "Reports deprecated usage of the 'implode' and 'join' functions. Starting from PHP 7.4, using 'implode' and 'join' with an array as the first argument and a string as the second argument is deprecated. See Deprecations for PHP 7.4 (php.net) for details.", + "markdown": "Reports deprecated usage of the `implode` and `join` functions.\n\nStarting from PHP 7.4, using `implode` and `join` with an array as the first argument and a string as the second argument is deprecated.\n\n\nSee [Deprecations for PHP 7.4 (php.net)](https://wiki.php.net/rfc/deprecations_php_7_4#implode_parameter_order_mix) for details." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "PhpDangerousArrayInitializationInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpDeprecatedImplodeUsageInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/General", + "index": 8, "toolComponent": { "name": "QDPHP" } @@ -11588,28 +11588,28 @@ ] }, { - "id": "PhpCSFixerValidationInspection", + "id": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", "shortDescription": { - "text": "PHP CS Fixer validation" + "text": "Closure can be converted to arrow function" }, "fullDescription": { - "text": "Reports coding style problems detected by PHP CS Fixer. The inspection requires PHP CS Fixer to be properly installed and set up in the IDE under Settings | PHP | Quality Tools | PHP CS Fixer. To learn more about installing PHP CS Fixer, see PHP-CS-Fixer installation (GitHub).", - "markdown": "Reports coding style problems detected by PHP CS Fixer.\n\n\nThe inspection requires PHP CS Fixer to be properly installed and set up in the IDE under\n[Settings \\| PHP \\| Quality Tools \\| PHP CS Fixer](settings://settings.php.quality.tools.php.cs.fixer).\n\n\nTo learn more about installing PHP CS Fixer, see [PHP-CS-Fixer installation (GitHub)](https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation)." + "text": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4. See PHP RFC: Arrow Functions 2.0 (php.net) for details.", + "markdown": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4.\n\n\nSee [PHP RFC: Arrow Functions 2.0 (php.net)](https://wiki.php.net/rfc/arrow_functions_v2) for details." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpCSFixerValidationInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Quality tools", - "index": 92, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11621,28 +11621,28 @@ ] }, { - "id": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", + "id": "PhpCSFixerValidationInspection", "shortDescription": { - "text": "Closure can be converted to arrow function" + "text": "PHP CS Fixer validation" }, "fullDescription": { - "text": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4. See PHP RFC: Arrow Functions 2.0 (php.net) for details.", - "markdown": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4.\n\n\nSee [PHP RFC: Arrow Functions 2.0 (php.net)](https://wiki.php.net/rfc/arrow_functions_v2) for details." + "text": "Reports coding style problems detected by PHP CS Fixer. The inspection requires PHP CS Fixer to be properly installed and set up in the IDE under Settings | PHP | Quality Tools | PHP CS Fixer. To learn more about installing PHP CS Fixer, see PHP-CS-Fixer installation (GitHub).", + "markdown": "Reports coding style problems detected by PHP CS Fixer.\n\n\nThe inspection requires PHP CS Fixer to be properly installed and set up in the IDE under\n[Settings \\| PHP \\| Quality Tools \\| PHP CS Fixer](settings://settings.php.quality.tools.php.cs.fixer).\n\n\nTo learn more about installing PHP CS Fixer, see [PHP-CS-Fixer installation (GitHub)](https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation)." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpCSFixerValidationInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Quality tools", + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -12863,7 +12863,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 92, + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -13292,7 +13292,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -13304,28 +13304,28 @@ ] }, { - "id": "PhpArrayIndexResetIsUnnecessaryInspection", + "id": "PhpNamedArgumentUsageInspection", "shortDescription": { - "text": "Array internal pointer reset is unnecessary" + "text": "Argument with name identifier" }, "fullDescription": { - "text": "Reports the 'reset($array)' calls on arrays whose internal pointer is already set on the first element. Such calls are redundant and can be safely removed. See reset (php.net) for details.", - "markdown": "Reports the `reset($array)` calls on arrays whose internal pointer is already set on the first element. Such calls are redundant and can be safely removed.\n\n\nSee [reset (php.net)](https://www.php.net/manual/en/function.reset.php) for details." + "text": "Reports arguments with name identifiers.", + "markdown": "Reports arguments with name identifiers." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpArrayIndexResetIsUnnecessaryInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpNamedArgumentUsageInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/General", + "index": 8, "toolComponent": { "name": "QDPHP" } @@ -13337,28 +13337,28 @@ ] }, { - "id": "PhpNamedArgumentUsageInspection", + "id": "PhpArrayIndexResetIsUnnecessaryInspection", "shortDescription": { - "text": "Argument with name identifier" + "text": "Array internal pointer reset is unnecessary" }, "fullDescription": { - "text": "Reports arguments with name identifiers.", - "markdown": "Reports arguments with name identifiers." + "text": "Reports the 'reset($array)' calls on arrays whose internal pointer is already set on the first element. Such calls are redundant and can be safely removed. See reset (php.net) for details.", + "markdown": "Reports the `reset($array)` calls on arrays whose internal pointer is already set on the first element. Such calls are redundant and can be safely removed.\n\n\nSee [reset (php.net)](https://www.php.net/manual/en/function.reset.php) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpNamedArgumentUsageInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpArrayIndexResetIsUnnecessaryInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/General", - "index": 8, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -13931,19 +13931,19 @@ ] }, { - "id": "PhpDocRedundantThrowsInspection", + "id": "PhpStrFunctionsInspection", "shortDescription": { - "text": "Redundant @throws tag(s)" + "text": "'str*()' calls can be replaced with PHP 8 'str_*()' calls" }, "fullDescription": { - "text": "Reports '@throws' tags for exceptions that are not thrown by the function or method. The exception classes added to the Unchecked Exceptions list under Settings | PHP | Analysis are excluded from the inspection scope.", - "markdown": "Reports `@throws` tags for exceptions that are not thrown by the function or method.\n\nThe exception classes added to the **Unchecked Exceptions** list under\n[Settings \\| PHP \\| Analysis](settings://reference.webide.settings.project.settings.php?Unchecked%20Exceptions)\nare excluded from the inspection scope." + "text": "Reports the 'strpos' and 'substr' functions calls that can be replaced with the 'str_*' functions calls (introduced in PHP 8.0). See str_contains (php.net) and str_starts_with and str_ends_with functions (php.net) for details.", + "markdown": "Reports the `strpos` and `substr` functions calls that can be replaced with the `str_*` functions calls (introduced in PHP 8.0).\n\n\nSee [str_contains (php.net)](https://wiki.php.net/rfc/str_contains) and [str_starts_with and str_ends_with functions (php.net)](https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpDocRedundantThrowsInspection", + "suppressToolId": "PhpStrFunctionsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13951,8 +13951,8 @@ "relationships": [ { "target": { - "id": "PHP/PHPDoc", - "index": 4, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -13964,19 +13964,19 @@ ] }, { - "id": "PhpStrFunctionsInspection", + "id": "PhpDocRedundantThrowsInspection", "shortDescription": { - "text": "'str*()' calls can be replaced with PHP 8 'str_*()' calls" + "text": "Redundant @throws tag(s)" }, "fullDescription": { - "text": "Reports the 'strpos' and 'substr' functions calls that can be replaced with the 'str_*' functions calls (introduced in PHP 8.0). See str_contains (php.net) and str_starts_with and str_ends_with functions (php.net) for details.", - "markdown": "Reports the `strpos` and `substr` functions calls that can be replaced with the `str_*` functions calls (introduced in PHP 8.0).\n\n\nSee [str_contains (php.net)](https://wiki.php.net/rfc/str_contains) and [str_starts_with and str_ends_with functions (php.net)](https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions) for details." + "text": "Reports '@throws' tags for exceptions that are not thrown by the function or method. The exception classes added to the Unchecked Exceptions list under Settings | PHP | Analysis are excluded from the inspection scope.", + "markdown": "Reports `@throws` tags for exceptions that are not thrown by the function or method.\n\nThe exception classes added to the **Unchecked Exceptions** list under\n[Settings \\| PHP \\| Analysis](settings://reference.webide.settings.project.settings.php?Unchecked%20Exceptions)\nare excluded from the inspection scope." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpStrFunctionsInspection", + "suppressToolId": "PhpDocRedundantThrowsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13984,8 +13984,8 @@ "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/PHPDoc", + "index": 4, "toolComponent": { "name": "QDPHP" } @@ -14117,7 +14117,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 92, + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -14612,7 +14612,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -15449,19 +15449,19 @@ ] }, { - "id": "PhpUnitMisorderedAssertEqualsArgumentsInspection", + "id": "PhpUnused", "shortDescription": { - "text": "Misordered PHPUnit equality assertion method arguments" + "text": "Unused declaration" }, "fullDescription": { - "text": "Reports the calls to PHPUnit equality assertion methods (such as 'assertEquals()', 'assertNotEquals()', 'assertSame()', and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ. See assertEquals for details.", - "markdown": "Reports the calls to PHPUnit equality assertion methods (such as `assertEquals()`, `assertNotEquals()`, `assertSame()`, and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ.\n\n\nSee [assertEquals](https://phpunit.readthedocs.io/en/stable/assertions.html#assertequals) for details." + "text": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders. Some unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only when its name rarely occurs in the project. To see all results, run the inspection in batch mode by using Code | Inspect Code... or Code | Run Inspection by Name....", + "markdown": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders.\n\nSome unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only\nwhen its name rarely occurs in the project.\n\nTo see all results, run the inspection in batch mode by using **Code \\| Inspect Code...** or **Code \\| Run Inspection by\nName...**." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "PhpUnitMisorderedAssertEqualsArgumentsInspection", + "suppressToolId": "PhpUnused", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -15469,8 +15469,8 @@ "relationships": [ { "target": { - "id": "PHP/PHPUnit", - "index": 29, + "id": "PHP/Unused symbols", + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -15482,19 +15482,19 @@ ] }, { - "id": "PhpUnused", + "id": "PhpUnitMisorderedAssertEqualsArgumentsInspection", "shortDescription": { - "text": "Unused declaration" + "text": "Misordered PHPUnit equality assertion method arguments" }, "fullDescription": { - "text": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders. Some unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only when its name rarely occurs in the project. To see all results, run the inspection in batch mode by using Code | Inspect Code... or Code | Run Inspection by Name....", - "markdown": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders.\n\nSome unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only\nwhen its name rarely occurs in the project.\n\nTo see all results, run the inspection in batch mode by using **Code \\| Inspect Code...** or **Code \\| Run Inspection by\nName...**." + "text": "Reports the calls to PHPUnit equality assertion methods (such as 'assertEquals()', 'assertNotEquals()', 'assertSame()', and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ. See assertEquals for details.", + "markdown": "Reports the calls to PHPUnit equality assertion methods (such as `assertEquals()`, `assertNotEquals()`, `assertSame()`, and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ.\n\n\nSee [assertEquals](https://phpunit.readthedocs.io/en/stable/assertions.html#assertequals) for details." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpUnused", + "suppressToolId": "PhpUnitMisorderedAssertEqualsArgumentsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -15502,8 +15502,8 @@ "relationships": [ { "target": { - "id": "PHP/Unused symbols", - "index": 51, + "id": "PHP/PHPUnit", + "index": 29, "toolComponent": { "name": "QDPHP" } @@ -16109,28 +16109,28 @@ ] }, { - "id": "PhpContinueTargetingSwitchInspection", + "id": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", "shortDescription": { - "text": "'continue' is targeting 'switch' statement" + "text": "'get_class()' call can be replaced with '::class'" }, "fullDescription": { - "text": "Reports the 'continue' statements that are targeting 'switch' statements. In PHP 7.3 and later, such usages are deprecated and will emit an 'E_WARNING', since they are most likely the result of a programming mistake. In PHP, such 'continue' statements are equivalent to 'break', that is, they end the execution of the current 'switch' structure. In other languages, such 'continue' statements behave as 'continue 2' in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop). See continue (php.net), break (php.net), and switch (php.net) for details.", - "markdown": "Reports the `continue` statements that are targeting `switch` statements. In PHP 7.3 and later, such usages are deprecated and will emit an `E_WARNING`, since they are most likely the result of a programming mistake.\n\n* In PHP, such `continue` statements are equivalent to `break`, that is, they end the execution of the current `switch` structure.\n* In other languages, such `continue` statements behave as `continue 2` in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop).\n\n\nSee [continue (php.net)](https://www.php.net/manual/en/control-structures.continue.php), [break (php.net)](https://www.php.net/manual/en/control-structures.break.php), and [switch (php.net)](https://www.php.net/manual/en/control-structures.switch.php) for details." + "text": "Reports the 'get_class()' calls and suggests replacing them with '::class' when PHP Language level is set to 8.0 or later. See Allow ::class on objects (php.net) for details.", + "markdown": "Reports the `get_class()` calls and suggests replacing them with `::class` when PHP Language level is set to 8.0 or later.\n\n\nSee [Allow ::class on objects (php.net)](https://wiki.php.net/rfc/class_name_literal_on_object) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpContinueTargetingSwitchInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -16142,28 +16142,28 @@ ] }, { - "id": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", + "id": "PhpContinueTargetingSwitchInspection", "shortDescription": { - "text": "'get_class()' call can be replaced with '::class'" + "text": "'continue' is targeting 'switch' statement" }, "fullDescription": { - "text": "Reports the 'get_class()' calls and suggests replacing them with '::class' when PHP Language level is set to 8.0 or later. See Allow ::class on objects (php.net) for details.", - "markdown": "Reports the `get_class()` calls and suggests replacing them with `::class` when PHP Language level is set to 8.0 or later.\n\n\nSee [Allow ::class on objects (php.net)](https://wiki.php.net/rfc/class_name_literal_on_object) for details." + "text": "Reports the 'continue' statements that are targeting 'switch' statements. In PHP 7.3 and later, such usages are deprecated and will emit an 'E_WARNING', since they are most likely the result of a programming mistake. In PHP, such 'continue' statements are equivalent to 'break', that is, they end the execution of the current 'switch' structure. In other languages, such 'continue' statements behave as 'continue 2' in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop). See continue (php.net), break (php.net), and switch (php.net) for details.", + "markdown": "Reports the `continue` statements that are targeting `switch` statements. In PHP 7.3 and later, such usages are deprecated and will emit an `E_WARNING`, since they are most likely the result of a programming mistake.\n\n* In PHP, such `continue` statements are equivalent to `break`, that is, they end the execution of the current `switch` structure.\n* In other languages, such `continue` statements behave as `continue 2` in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop).\n\n\nSee [continue (php.net)](https://www.php.net/manual/en/control-structures.continue.php), [break (php.net)](https://www.php.net/manual/en/control-structures.break.php), and [switch (php.net)](https://www.php.net/manual/en/control-structures.switch.php) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpContinueTargetingSwitchInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -16439,28 +16439,28 @@ ] }, { - "id": "PhpMissingStrictTypesDeclarationInspection", + "id": "PhpConvertToJsonValidateInspection", "shortDescription": { - "text": "Missing strict types declaration" + "text": "'json_decode()' and 'json_last_error()' can be converted to 'json_validate()'" }, "fullDescription": { - "text": "Detects the missing 'declare(strict_types=1)' directive in the file. See Strict typing (php.net) to learn more about why you may need use this directive.", - "markdown": "Detects the missing `declare(strict_types=1)` directive in the file.\n\n\nSee [Strict typing (php.net)](https://www.php.net/manual/en/language.types.declarations.php#language.types.declarations.strict) to learn more about why you may need use this directive." + "text": "In PHP 8.3 and later, suggests converting `json_decode()` and `json_last_error() === JSON_ERROR_NONE` to `json_validate()`. See PHP RFC: json_validate for details.", + "markdown": "In PHP 8.3 and later, suggests converting \\`json_decode()\\` and \\`json_last_error() === JSON_ERROR_NONE\\` to \\`json_validate()\\`.\n\n\nSee [PHP RFC: json_validate](https://wiki.php.net/rfc/json_validate) for details." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PhpMissingStrictTypesDeclarationInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "PhpConvertToJsonValidateInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Type compatibility", - "index": 33, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -16472,28 +16472,28 @@ ] }, { - "id": "PhpConvertToJsonValidateInspection", + "id": "PhpMissingStrictTypesDeclarationInspection", "shortDescription": { - "text": "'json_decode()' and 'json_last_error()' can be converted to 'json_validate()'" + "text": "Missing strict types declaration" }, "fullDescription": { - "text": "In PHP 8.3 and later, suggests converting `json_decode()` and `json_last_error() === JSON_ERROR_NONE` to `json_validate()`. See PHP RFC: json_validate for details.", - "markdown": "In PHP 8.3 and later, suggests converting \\`json_decode()\\` and \\`json_last_error() === JSON_ERROR_NONE\\` to \\`json_validate()\\`.\n\n\nSee [PHP RFC: json_validate](https://wiki.php.net/rfc/json_validate) for details." + "text": "Detects the missing 'declare(strict_types=1)' directive in the file. See Strict typing (php.net) to learn more about why you may need use this directive.", + "markdown": "Detects the missing `declare(strict_types=1)` directive in the file.\n\n\nSee [Strict typing (php.net)](https://www.php.net/manual/en/language.types.declarations.php#language.types.declarations.strict) to learn more about why you may need use this directive." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "PhpConvertToJsonValidateInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpMissingStrictTypesDeclarationInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Type compatibility", + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -17429,19 +17429,19 @@ ] }, { - "id": "PhpRegExpRedundantModifierInspection", + "id": "PhpAttributeCanBeAddedToOverriddenMemberInspection", "shortDescription": { - "text": "Redundant modifier" + "text": "Attribute can be added to overriding member " }, "fullDescription": { - "text": "Reports the 'i' (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed.", - "markdown": "Reports the `i` (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed." + "text": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters. See Attributes (php.net) for details.", + "markdown": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpRegExpRedundantModifierInspection", + "suppressToolId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -17449,8 +17449,8 @@ "relationships": [ { "target": { - "id": "PHP/Regular expressions", - "index": 91, + "id": "PHP/Attributes", + "index": 61, "toolComponent": { "name": "QDPHP" } @@ -17462,19 +17462,19 @@ ] }, { - "id": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "id": "PhpRegExpRedundantModifierInspection", "shortDescription": { - "text": "Attribute can be added to overriding member " + "text": "Redundant modifier" }, "fullDescription": { - "text": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters. See Attributes (php.net) for details.", - "markdown": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." + "text": "Reports the 'i' (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed.", + "markdown": "Reports the `i` (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "suppressToolId": "PhpRegExpRedundantModifierInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -17482,8 +17482,8 @@ "relationships": [ { "target": { - "id": "PHP/Attributes", - "index": 61, + "id": "PHP/Regular expressions", + "index": 91, "toolComponent": { "name": "QDPHP" } @@ -17549,7 +17549,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -18188,21 +18188,21 @@ ] }, { - "id": "PhpUnitInvalidMockingEntityInspection", + "id": "PhpUnitAssertCanBeReplacedWithEmptyInspection", "shortDescription": { - "text": "Invalid PHPUnit mocking target" + "text": "Assertion can be replaced with 'assertEmpty/assertNotEmpty'" }, "fullDescription": { - "text": "Reports the methods and classes that are incorrectly mocked in PHPUnit tests. The following entities are reported: Enums and 'final' classes 'private', 'static', or 'final' methods Duplicate methods provided in the mocked methods lists via 'addMethods()', 'onlyMethods()', 'setMethods()', and so on.", - "markdown": "Reports the methods and classes that are incorrectly mocked in PHPUnit tests.\n\n\nThe following entities are reported:\n\n* Enums and `final` classes\n* `private`, `static`, or `final` methods\n* Duplicate methods provided in the mocked methods lists via `addMethods()`, `onlyMethods()`, `setMethods()`, and so on." + "text": "Reports the 'assertTrue'/'assertFalse' usages that can be replaced with 'assertEmpty'/'assertNotEmpty' in PHPUnit tests. See assertEmpty (phpunit.readthedocs.io) for details.", + "markdown": "Reports the `assertTrue`/`assertFalse` usages that can be replaced with `assertEmpty`/`assertNotEmpty` in PHPUnit tests.\n\n\nSee [assertEmpty (phpunit.readthedocs.io)](https://phpunit.readthedocs.io/en/stable/assertions.html#assertempty) for details." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PhpUnitInvalidMockingEntityInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "PhpUnitAssertCanBeReplacedWithEmptyInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ @@ -18221,21 +18221,21 @@ ] }, { - "id": "PhpUnitAssertCanBeReplacedWithEmptyInspection", + "id": "PhpUnitInvalidMockingEntityInspection", "shortDescription": { - "text": "Assertion can be replaced with 'assertEmpty/assertNotEmpty'" + "text": "Invalid PHPUnit mocking target" }, "fullDescription": { - "text": "Reports the 'assertTrue'/'assertFalse' usages that can be replaced with 'assertEmpty'/'assertNotEmpty' in PHPUnit tests. See assertEmpty (phpunit.readthedocs.io) for details.", - "markdown": "Reports the `assertTrue`/`assertFalse` usages that can be replaced with `assertEmpty`/`assertNotEmpty` in PHPUnit tests.\n\n\nSee [assertEmpty (phpunit.readthedocs.io)](https://phpunit.readthedocs.io/en/stable/assertions.html#assertempty) for details." + "text": "Reports the methods and classes that are incorrectly mocked in PHPUnit tests. The following entities are reported: Enums and 'final' classes 'private', 'static', or 'final' methods Duplicate methods provided in the mocked methods lists via 'addMethods()', 'onlyMethods()', 'setMethods()', and so on.", + "markdown": "Reports the methods and classes that are incorrectly mocked in PHPUnit tests.\n\n\nThe following entities are reported:\n\n* Enums and `final` classes\n* `private`, `static`, or `final` methods\n* Duplicate methods provided in the mocked methods lists via `addMethods()`, `onlyMethods()`, `setMethods()`, and so on." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "PhpUnitAssertCanBeReplacedWithEmptyInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpUnitInvalidMockingEntityInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ @@ -18275,7 +18275,7 @@ { "target": { "id": "PHP/Unused symbols", - "index": 51, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -18704,7 +18704,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 92, + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -25784,19 +25784,19 @@ ] }, { - "id": "XmlDeprecatedElement", + "id": "RegExpRedundantNestedCharacterClass", "shortDescription": { - "text": "Deprecated symbol" + "text": "Redundant nested character class" }, "fullDescription": { - "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'.", - "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'." + "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2", + "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "XmlDeprecatedElement", + "suppressToolId": "RegExpRedundantNestedCharacterClass", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -25804,8 +25804,8 @@ "relationships": [ { "target": { - "id": "XML", - "index": 53, + "id": "RegExp", + "index": 65, "toolComponent": { "name": "QDPHP" } @@ -25817,19 +25817,19 @@ ] }, { - "id": "RegExpRedundantNestedCharacterClass", + "id": "XmlDeprecatedElement", "shortDescription": { - "text": "Redundant nested character class" + "text": "Deprecated symbol" }, "fullDescription": { - "text": "Reports unnecessary nested character classes. Example: '[a-c[x-z]]' After the quick-fix is applied: '[a-cx-z]' New in 2020.2", - "markdown": "Reports unnecessary nested character classes.\n\n**Example:**\n\n\n [a-c[x-z]]\n\nAfter the quick-fix is applied:\n\n\n [a-cx-z]\n\nNew in 2020.2" + "text": "Reports a deprecated XML element or attribute. Symbols can be marked by XML comment or documentation tag with text 'deprecated'.", + "markdown": "Reports a deprecated XML element or attribute.\n\nSymbols can be marked by XML comment or documentation tag with text 'deprecated'." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "RegExpRedundantNestedCharacterClass", + "suppressToolId": "XmlDeprecatedElement", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -25837,8 +25837,8 @@ "relationships": [ { "target": { - "id": "RegExp", - "index": 65, + "id": "XML", + "index": 53, "toolComponent": { "name": "QDPHP" } @@ -25982,19 +25982,19 @@ ] }, { - "id": "RegExpDuplicateAlternationBranch", + "id": "RegExpRepeatedSpace", "shortDescription": { - "text": "Duplicate branch in alternation" + "text": "Consecutive spaces" }, "fullDescription": { - "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1", - "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1" + "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1", + "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "RegExpDuplicateAlternationBranch", + "suppressToolId": "RegExpRepeatedSpace", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -26015,19 +26015,19 @@ ] }, { - "id": "RegExpRepeatedSpace", + "id": "RegExpDuplicateAlternationBranch", "shortDescription": { - "text": "Consecutive spaces" + "text": "Duplicate branch in alternation" }, "fullDescription": { - "text": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier. Example: '( )' After the quick-fix is applied: '( {5})' New in 2017.1", - "markdown": "Reports multiple consecutive spaces in a RegExp. Because spaces are not visible by default, it can be hard to see how many spaces are required. The RegExp can be made more clear by replacing the consecutive spaces with a single space and a counted quantifier.\n\n**Example:**\n\n\n ( )\n\nAfter the quick-fix is applied:\n\n\n ( {5})\n\n\nNew in 2017.1" + "text": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression. Example: '(alpha|bravo|charlie|alpha)' After the quick-fix is applied: '(alpha|bravo|charlie)' New in 2017.1", + "markdown": "Reports duplicate branches in a RegExp alternation. Duplicate branches slow down matching and obscure the intent of the expression.\n\n**Example:**\n\n\n (alpha|bravo|charlie|alpha)\n\nAfter the quick-fix is applied:\n\n\n (alpha|bravo|charlie)\n\nNew in 2017.1" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "RegExpRepeatedSpace", + "suppressToolId": "RegExpDuplicateAlternationBranch", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -26088,6 +26088,249 @@ ], "isComprehensive": false }, + { + "name": "gherkin", + "version": "241.16902", + "rules": [ + { + "id": "GherkinScenarioToScenarioOutline", + "shortDescription": { + "text": "Scenario with Examples section" + }, + "fullDescription": { + "text": "Reports Gherkin scenarios that contain an 'Examples' section. Use the quick-fix to convert 'Scenario' to 'Scenario Outline'.", + "markdown": "Reports Gherkin scenarios that contain an `Examples` section.\n\nUse the quick-fix to convert `Scenario` to `Scenario Outline`." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "GherkinScenarioToScenarioOutline", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CucumberTableInspection", + "shortDescription": { + "text": "Unused or missing columns in Cucumber tables" + }, + "fullDescription": { + "text": "Reports tables in 'Examples' sections in Cucumber .feature files with unused or missing columns.", + "markdown": "Reports tables in `Examples` sections in Cucumber .feature files with unused or missing columns." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CucumberTableInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "GherkinBrokenTableInspection", + "shortDescription": { + "text": "Gherkin table is broken" + }, + "fullDescription": { + "text": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header.", + "markdown": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "GherkinBrokenTableInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "GherkinMisplacedBackground", + "shortDescription": { + "text": "Misplaced background section" + }, + "fullDescription": { + "text": "Reports 'Background' sections that are located incorrectly. The 'Background' section must be located before the 'Scenario' section.", + "markdown": "Reports `Background` sections that are located incorrectly. The `Background` section must be located before the `Scenario` section." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "GherkinMisplacedBackground", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CucumberMissedExamples", + "shortDescription": { + "text": "Missing examples section" + }, + "fullDescription": { + "text": "Reports scenario outlines in Cucumber .feature files that do not have the 'Examples' section. Use the quick-fix to automatically create the 'Examples' section with a pre-filled table header.", + "markdown": "Reports scenario outlines in Cucumber .feature files that do not have the `Examples` section.\n\nUse the quick-fix to automatically create the `Examples` section with a pre-filled table header." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "CucumberMissedExamples", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CucumberUndefinedStep", + "shortDescription": { + "text": "Undefined step" + }, + "fullDescription": { + "text": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions. Use the quick-fix to automatically create a new step definition.", + "markdown": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions.\n\nUse the quick-fix to automatically create a new step definition." + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "CucumberUndefinedStep", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, + { + "id": "CucumberExamplesColon", + "shortDescription": { + "text": "Missing ':' after examples keyword" + }, + "fullDescription": { + "text": "Reports 'Examples' sections in Cucumber .feature files if they do not have ':' after the 'Examples' keyword.", + "markdown": "Reports `Examples` sections in Cucumber .feature files if they do not have ':' after the `Examples` keyword." + }, + "defaultConfiguration": { + "enabled": false, + "level": "error", + "parameters": { + "suppressToolId": "CucumberExamplesColon", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "Cucumber", + "index": 23, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + } + ], + "language": "en-US", + "contents": [ + "localizedData", + "nonLocalizedData" + ], + "isComprehensive": false + }, { "name": "JavaScript", "version": "241.16902", @@ -26114,7 +26357,7 @@ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 23, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -26939,7 +27182,7 @@ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 23, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -27644,19 +27887,19 @@ ] }, { - "id": "EmptyTryBlockJS", + "id": "ES6ClassMemberInitializationOrder", "shortDescription": { - "text": "Empty 'try' block" + "text": "Use of possibly unassigned property in a static initializer" }, "fullDescription": { - "text": "Reports an empty 'try' block, which usually indicates an error.", - "markdown": "Reports an empty `try` block, which usually indicates an error." + "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", + "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "EmptyTryBlockJS", + "suppressToolId": "ES6ClassMemberInitializationOrder", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -27664,8 +27907,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 48, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -27677,19 +27920,19 @@ ] }, { - "id": "ES6ClassMemberInitializationOrder", + "id": "EmptyTryBlockJS", "shortDescription": { - "text": "Use of possibly unassigned property in a static initializer" + "text": "Empty 'try' block" }, "fullDescription": { - "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", - "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." + "text": "Reports an empty 'try' block, which usually indicates an error.", + "markdown": "Reports an empty `try` block, which usually indicates an error." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "ES6ClassMemberInitializationOrder", + "suppressToolId": "EmptyTryBlockJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -27697,8 +27940,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Try statement issues", + "index": 48, "toolComponent": { "name": "QDPHP" } @@ -28490,7 +28733,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -28556,7 +28799,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -28997,19 +29240,19 @@ ] }, { - "id": "PlatformDetectionJS", + "id": "IfStatementWithIdenticalBranchesJS", "shortDescription": { - "text": "Inaccurate platform detection" + "text": "'if' statement with identical branches" }, "fullDescription": { - "text": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform. Patterns detected include: 'document.all' 'document.layers' 'navigator.userAgent' 'navigator.oscpu' 'navigator.appName' 'navigator.appCodeName' 'navigator.platform'", - "markdown": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform.\n\nPatterns detected include:\n\n* `document.all`\n* `document.layers`\n* `navigator.userAgent`\n* `navigator.oscpu`\n* `navigator.appName`\n* `navigator.appCodeName`\n* `navigator.platform`" + "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", + "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "PlatformDetectionJS", + "suppressToolId": "IfStatementWithIdenticalBranchesJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29017,8 +29260,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 74, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29030,19 +29273,19 @@ ] }, { - "id": "IfStatementWithIdenticalBranchesJS", + "id": "PlatformDetectionJS", "shortDescription": { - "text": "'if' statement with identical branches" + "text": "Inaccurate platform detection" }, "fullDescription": { - "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", - "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." + "text": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform. Patterns detected include: 'document.all' 'document.layers' 'navigator.userAgent' 'navigator.oscpu' 'navigator.appName' 'navigator.appCodeName' 'navigator.platform'", + "markdown": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform.\n\nPatterns detected include:\n\n* `document.all`\n* `document.layers`\n* `navigator.userAgent`\n* `navigator.oscpu`\n* `navigator.appName`\n* `navigator.appCodeName`\n* `navigator.platform`" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "IfStatementWithIdenticalBranchesJS", + "suppressToolId": "PlatformDetectionJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29050,8 +29293,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/DOM issues", + "index": 74, "toolComponent": { "name": "QDPHP" } @@ -29129,19 +29372,19 @@ ] }, { - "id": "TrivialConditionalJS", + "id": "TypeScriptDuplicateUnionOrIntersectionType", "shortDescription": { - "text": "Redundant conditional expression" + "text": "Duplicate union or intersection type component" }, "fullDescription": { - "text": "Reports a conditional expression of the form 'condition ? true : false\ncondition ? false : true' These expressions may be safely converted to 'condition\n!condition'", - "markdown": "Reports a conditional expression of the form\n\n\n condition ? true : false\n condition ? false : true\n\n\nThese expressions may be safely converted to\n\n\n condition\n !condition\n" + "text": "Reports a duplicate type inside a union or intersection.", + "markdown": "Reports a duplicate type inside a union or intersection." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "RedundantConditionalExpressionJS", + "suppressToolId": "TypeScriptDuplicateUnionOrIntersectionType", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29149,8 +29392,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/TypeScript", + "index": 71, "toolComponent": { "name": "QDPHP" } @@ -29162,19 +29405,19 @@ ] }, { - "id": "TypeScriptDuplicateUnionOrIntersectionType", + "id": "TrivialConditionalJS", "shortDescription": { - "text": "Duplicate union or intersection type component" + "text": "Redundant conditional expression" }, "fullDescription": { - "text": "Reports a duplicate type inside a union or intersection.", - "markdown": "Reports a duplicate type inside a union or intersection." + "text": "Reports a conditional expression of the form 'condition ? true : false\ncondition ? false : true' These expressions may be safely converted to 'condition\n!condition'", + "markdown": "Reports a conditional expression of the form\n\n\n condition ? true : false\n condition ? false : true\n\n\nThese expressions may be safely converted to\n\n\n condition\n !condition\n" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "TypeScriptDuplicateUnionOrIntersectionType", + "suppressToolId": "RedundantConditionalExpressionJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29182,8 +29425,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29195,19 +29438,19 @@ ] }, { - "id": "InnerHTMLJS", + "id": "ES6UnusedImports", "shortDescription": { - "text": "Use of 'innerHTML' property" + "text": "Unused import" }, "fullDescription": { - "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", - "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." + "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", + "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "InnerHTMLJS", + "suppressToolId": "ES6UnusedImports", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29215,8 +29458,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 74, + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 80, "toolComponent": { "name": "QDPHP" } @@ -29228,19 +29471,19 @@ ] }, { - "id": "ES6UnusedImports", + "id": "InnerHTMLJS", "shortDescription": { - "text": "Unused import" + "text": "Use of 'innerHTML' property" }, "fullDescription": { - "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", - "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." + "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", + "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "ES6UnusedImports", + "suppressToolId": "InnerHTMLJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29248,8 +29491,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 80, + "id": "JavaScript and TypeScript/DOM issues", + "index": 74, "toolComponent": { "name": "QDPHP" } @@ -29525,19 +29768,19 @@ ] }, { - "id": "IfStatementWithTooManyBranchesJS", + "id": "JSValidateJSDoc", "shortDescription": { - "text": "'if' statement with too many branches" + "text": "Syntax errors and unresolved references in JSDoc" }, "fullDescription": { - "text": "Reports an 'if' statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction. Use the field below to specify the maximum number of branches expected.", - "markdown": "Reports an `if` statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction.\n\n\nUse the field below to specify the maximum number of branches expected." + "text": "Reports a syntax discrepancy in a documentation comment.", + "markdown": "Reports a syntax discrepancy in a documentation comment." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "IfStatementWithTooManyBranchesJS", + "suppressToolId": "JSValidateJSDoc", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29545,8 +29788,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -29591,19 +29834,19 @@ ] }, { - "id": "JSValidateJSDoc", + "id": "IfStatementWithTooManyBranchesJS", "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" + "text": "'if' statement with too many branches" }, "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." + "text": "Reports an 'if' statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction. Use the field below to specify the maximum number of branches expected.", + "markdown": "Reports an `if` statement with too many branches. Such statements may be confusing, and often indicate inadequate levels of design abstraction.\n\n\nUse the field below to specify the maximum number of branches expected." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JSValidateJSDoc", + "suppressToolId": "IfStatementWithTooManyBranchesJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29611,8 +29854,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29876,7 +30119,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -30635,7 +30878,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -31262,7 +31505,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -31637,28 +31880,28 @@ ] }, { - "id": "JSIncompatibleTypesComparison", + "id": "JSAnnotator", "shortDescription": { - "text": "Comparison of expressions having incompatible types" + "text": "ECMAScript specification is not followed" }, "fullDescription": { - "text": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values.", - "markdown": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values." + "text": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. Generally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors.", + "markdown": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. \nGenerally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "JSIncompatibleTypesComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "JSAnnotator", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 60, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -31703,28 +31946,28 @@ ] }, { - "id": "JSAnnotator", + "id": "JSIncompatibleTypesComparison", "shortDescription": { - "text": "ECMAScript specification is not followed" + "text": "Comparison of expressions having incompatible types" }, "fullDescription": { - "text": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. Generally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors.", - "markdown": "Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. \nGenerally, such errors must always be reported and shouldn't be disabled. But in some cases, such as issues due to the dynamic nature of JavaScript, the use of not yet supported language features, or bugs in IDE's checker, it may be handy to disable reporting these very basic errors." + "text": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values.", + "markdown": "Reports a comparison with operands of incompatible types or an operand with a type without possible common values." }, "defaultConfiguration": { "enabled": false, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "JSAnnotator", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "JSIncompatibleTypesComparison", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Probable bugs", + "index": 60, "toolComponent": { "name": "QDPHP" } @@ -31922,7 +32165,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -32186,7 +32429,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 93, + "index": 92, "toolComponent": { "name": "QDPHP" } @@ -32330,28 +32573,28 @@ ] }, { - "id": "JSCheckFunctionSignatures", + "id": "ConstantOnLHSOfComparisonJS", "shortDescription": { - "text": "Signature mismatch" + "text": "Constant on left side of comparison" }, "fullDescription": { - "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", - "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." + "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", + "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "JSCheckFunctionSignatures", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "ConstantOnLefSideOfComparisonJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Code style issues", + "index": 66, "toolComponent": { "name": "QDPHP" } @@ -32363,28 +32606,28 @@ ] }, { - "id": "ConstantOnLHSOfComparisonJS", + "id": "JSCheckFunctionSignatures", "shortDescription": { - "text": "Constant on left side of comparison" + "text": "Signature mismatch" }, "fullDescription": { - "text": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons.", - "markdown": "Reports a comparison operation with a constant value in the left-hand side. According to coding conventions, constants should be in the right-hand side of comparisons." + "text": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types. TypeScript code is ignored.", + "markdown": "Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. Also, reports if the overloading function doesn't match the overloaded one in terms of parameters and return types.\n\nTypeScript code is ignored." }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "ConstantOnLefSideOfComparisonJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "JSCheckFunctionSignatures", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 66, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -33011,249 +33254,6 @@ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 23, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - } - ], - "language": "en-US", - "contents": [ - "localizedData", - "nonLocalizedData" - ], - "isComprehensive": false - }, - { - "name": "gherkin", - "version": "241.16902", - "rules": [ - { - "id": "GherkinScenarioToScenarioOutline", - "shortDescription": { - "text": "Scenario with Examples section" - }, - "fullDescription": { - "text": "Reports Gherkin scenarios that contain an 'Examples' section. Use the quick-fix to convert 'Scenario' to 'Scenario Outline'.", - "markdown": "Reports Gherkin scenarios that contain an `Examples` section.\n\nUse the quick-fix to convert `Scenario` to `Scenario Outline`." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "GherkinScenarioToScenarioOutline", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CucumberTableInspection", - "shortDescription": { - "text": "Unused or missing columns in Cucumber tables" - }, - "fullDescription": { - "text": "Reports tables in 'Examples' sections in Cucumber .feature files with unused or missing columns.", - "markdown": "Reports tables in `Examples` sections in Cucumber .feature files with unused or missing columns." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CucumberTableInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GherkinBrokenTableInspection", - "shortDescription": { - "text": "Gherkin table is broken" - }, - "fullDescription": { - "text": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header.", - "markdown": "Reports a table if there is at least one row with the number of cells different from the number of cells in the table header." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "GherkinBrokenTableInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "GherkinMisplacedBackground", - "shortDescription": { - "text": "Misplaced background section" - }, - "fullDescription": { - "text": "Reports 'Background' sections that are located incorrectly. The 'Background' section must be located before the 'Scenario' section.", - "markdown": "Reports `Background` sections that are located incorrectly. The `Background` section must be located before the `Scenario` section." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "GherkinMisplacedBackground", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CucumberMissedExamples", - "shortDescription": { - "text": "Missing examples section" - }, - "fullDescription": { - "text": "Reports scenario outlines in Cucumber .feature files that do not have the 'Examples' section. Use the quick-fix to automatically create the 'Examples' section with a pre-filled table header.", - "markdown": "Reports scenario outlines in Cucumber .feature files that do not have the `Examples` section.\n\nUse the quick-fix to automatically create the `Examples` section with a pre-filled table header." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CucumberMissedExamples", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CucumberUndefinedStep", - "shortDescription": { - "text": "Undefined step" - }, - "fullDescription": { - "text": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions. Use the quick-fix to automatically create a new step definition.", - "markdown": "Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions.\n\nUse the quick-fix to automatically create a new step definition." - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CucumberUndefinedStep", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", - "index": 24, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CucumberExamplesColon", - "shortDescription": { - "text": "Missing ':' after examples keyword" - }, - "fullDescription": { - "text": "Reports 'Examples' sections in Cucumber .feature files if they do not have ':' after the 'Examples' keyword.", - "markdown": "Reports `Examples` sections in Cucumber .feature files if they do not have ':' after the `Examples` keyword." - }, - "defaultConfiguration": { - "enabled": false, - "level": "error", - "parameters": { - "suppressToolId": "CucumberExamplesColon", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "Cucumber", "index": 24, "toolComponent": { "name": "QDPHP" @@ -36065,7 +36065,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36098,7 +36098,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36131,7 +36131,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36164,7 +36164,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36230,7 +36230,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36263,7 +36263,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36296,7 +36296,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36329,7 +36329,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36362,7 +36362,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36395,7 +36395,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -36428,7 +36428,7 @@ { "target": { "id": "HTTP Client", - "index": 50, + "index": 51, "toolComponent": { "name": "QDPHP" } @@ -37724,7 +37724,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 92, + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -38414,7 +38414,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 92, + "index": 93, "toolComponent": { "name": "QDPHP" } @@ -38482,9 +38482,9 @@ }, "invocations": [ { - "startTimeUtc": "2024-05-14T07:21:49.379400518Z", + "startTimeUtc": "2024-05-17T09:20:35.046647408Z", "exitCode": 255, - "exitCodeDescription": "Failure condition triggered:\n- Detected 1 problem across all severities, fail threshold: 0", + "exitCodeDescription": "Failure condition triggered:\n- Detected 36 problems across all severities, fail threshold: 0", "executionSuccessful": true } ], @@ -38492,7 +38492,7 @@ "versionControlProvenance": [ { "repositoryUri": "https://github.com/pimcore/studio-backend-bundle.git", - "revisionId": "ce66ae4335960310ee8dc41aceb619acf647aec2", + "revisionId": "76bbe2cd00f5140de01ae95c4d9acf6fcf77459f", "branch": "156-dependencies", "properties": { "repoUrl": "https://github.com/pimcore/studio-backend-bundle.git", @@ -38503,6 +38503,233 @@ } ], "results": [ + { + "ruleId": "DuplicatedCode", + "kind": "fail", + "level": "note", + "message": { + "text": "Duplicated code", + "markdown": "Duplicated code" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/Asset/ArchiveHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1277, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1265, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/Asset/AudioHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1261, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1249, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/Asset/FolderHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1269, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1257, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/Asset/TextHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1253, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1241, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/Asset/UnknownHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1277, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1265, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataIndex/Hydrator/AssetHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1251, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1239, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1a48abf43e131b3c", + "equalIndicator/v1": "d332e327ffffb913d03b5c1b123366ccfb39379be3645fdac1a4e16298cddeb5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, { "ruleId": "EfferentObjectCouplingInspection", "kind": "fail", @@ -38521,7 +38748,7 @@ "region": { "startLine": 47, "startColumn": 13, - "charOffset": 2487, + "charOffset": 2485, "charLength": 20, "snippet": { "text": "CollectionController" @@ -38531,7 +38758,292 @@ "contextRegion": { "startLine": 45, "startColumn": 1, - "charOffset": 2458, + "charOffset": 2456, + "charLength": 113, + "snippet": { + "text": " * @internal\n */\nfinal class CollectionController extends AbstractApiController\n{\n use PaginatedResponseTrait;" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "576763bd4bcb2c7c", + "equalIndicator/v1": "2697ac122041ac59d9eddfc3209cd27515ff25f85a22b32964cada2b16c80ede" + }, + "baselineState": "unchanged", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (21).", + "markdown": "\\[EA\\] High efferent coupling (21)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Authorization/Controller/AuthorizationController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 13, + "charOffset": 2183, + "charLength": 23, + "snippet": { + "text": "AuthorizationController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 2154, + "charLength": 117, + "snippet": { + "text": " * @internal\n */\nfinal class AuthorizationController extends AbstractApiController\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "af124e8aa2be2d8b", + "equalIndicator/v1": "31c95f4bfa8bf741b071ffed051cc58534a0d8fa41131ab271c2271332f08bcd" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (22).", + "markdown": "\\[EA\\] High efferent coupling (22)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Controller/UpdateController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 13, + "charOffset": 2077, + "charLength": 16, + "snippet": { + "text": "UpdateController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 2048, + "charLength": 110, + "snippet": { + "text": " * @internal\n */\nfinal class UpdateController extends AbstractApiController\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "cc30109889285c34", + "equalIndicator/v1": "341f72b7a05cc112d36ecbeb0620f8e1323e502c1a8e0d94186d9a2f29accb0f" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (30).", + "markdown": "\\[EA\\] High efferent coupling (30)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/DataObject/Controller/CollectionController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 50, + "startColumn": 13, + "charOffset": 3025, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 48, + "startColumn": 1, + "charOffset": 2958, + "charLength": 151, + "snippet": { + "text": "use Symfony\\Component\\Serializer\\SerializerInterface;\n\nfinal class CollectionController extends AbstractApiController\n{\n use PaginatedResponseTrait;" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2628b827dadbc43e", + "equalIndicator/v1": "4eff5b6887106f38106f3d5e26c162bd2a02157f1c71659dc533c9ec4a13c41c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (20).", + "markdown": "\\[EA\\] High efferent coupling (20)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Version/Controller/CleanupController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 13, + "charOffset": 2021, + "charLength": 17, + "snippet": { + "text": "CleanupController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1992, + "charLength": 111, + "snippet": { + "text": " * @internal\n */\nfinal class CleanupController extends AbstractApiController\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ef77395305986867", + "equalIndicator/v1": "56fa5cb989107bf6a2500e4f7e4590ecd2a76c4b9c3266968efd6977f85df779" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (30).", + "markdown": "\\[EA\\] High efferent coupling (30)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Controller/CollectionController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 53, + "startColumn": 13, + "charOffset": 2996, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 51, + "startColumn": 1, + "charOffset": 2967, "charLength": 113, "snippet": { "text": " * @internal\n */\nfinal class CollectionController extends AbstractApiController\n{\n use PaginatedResponseTrait;" @@ -38548,8 +39060,1718 @@ } ], "partialFingerprints": { - "equalIndicator/v2": "f54edb7d9c3c153c", - "equalIndicator/v1": "52b9b3d89e0c0fb0a94ee06d8c10a4c92828b25d923c5f8cfd096f182e084deb" + "equalIndicator/v2": "4fb327c4151fd0ef", + "equalIndicator/v1": "5c00a4f43cabb4c6181f0353ac0fcab81fe0f6be307800d7899ad041c4d5a7a5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (20).", + "markdown": "\\[EA\\] High efferent coupling (20)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Controller/Element/CollectionController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 13, + "charOffset": 1869, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1840, + "charLength": 114, + "snippet": { + "text": " * @internal\n */\nfinal class CollectionController extends AbstractApiController\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f1f19cd3c9b7872f", + "equalIndicator/v1": "660d5ca670ab0fd528593863c3c5e76b1e99d5b8dd9e7b0ee4de4bfe5db68e6e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (21).", + "markdown": "\\[EA\\] High efferent coupling (21)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Controller/CollectionController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 13, + "charOffset": 2160, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 2131, + "charLength": 113, + "snippet": { + "text": " * @internal\n */\nfinal class CollectionController extends AbstractApiController\n{\n use PaginatedResponseTrait;" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "a1162108b11fced8", + "equalIndicator/v1": "686a6533fb7f3eb66b60047a900ff083c4787bd4bd4b32ace419a622a369936d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (24).", + "markdown": "\\[EA\\] High efferent coupling (24)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Version/Controller/CollectionController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 13, + "charOffset": 2370, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 2341, + "charLength": 113, + "snippet": { + "text": " * @internal\n */\nfinal class CollectionController extends AbstractApiController\n{\n use PaginatedResponseTrait;" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "92b68947b9449ee1", + "equalIndicator/v1": "83f4848e12782b2d396312d0d5597edc0a820ff23ebf26d04fa71f2c2699290d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (23).", + "markdown": "\\[EA\\] High efferent coupling (23)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Controller/Element/UpdateController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 13, + "charOffset": 2107, + "charLength": 16, + "snippet": { + "text": "UpdateController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 2078, + "charLength": 110, + "snippet": { + "text": " * @internal\n */\nfinal class UpdateController extends AbstractApiController\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "45874f215741c0d2", + "equalIndicator/v1": "91ceea34e0aca77ee9e75d42d1674c9203a8a95adedb9a1117b879f8f845df42" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (22).", + "markdown": "\\[EA\\] High efferent coupling (22)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Controller/CustomSettingsController.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 13, + "charOffset": 2116, + "charLength": 24, + "snippet": { + "text": "CustomSettingsController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 2087, + "charLength": 115, + "snippet": { + "text": " * @internal\n */\nfinal class CustomSettingsController extends AbstractApiController\n{\n use ElementProviderTrait;" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7ba46194b23c4715", + "equalIndicator/v1": "c3a1fb37b40e52d1c38c4c51dc39402aa72d2557cd4c06356d0b1747ada4bf85" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "LongInheritanceChainInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] Class has 4 parent classes, consider using appropriate design patterns.", + "markdown": "\\[EA\\] Class has 4 parent classes, consider using appropriate design patterns." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Dependency/Attributes/Parameters/Query/DependencyModeParameter.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 13, + "charOffset": 755, + "charLength": 23, + "snippet": { + "text": "DependencyModeParameter" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 703, + "charLength": 133, + "snippet": { + "text": "\n#[Attribute(Attribute::TARGET_METHOD)]\nfinal class DependencyModeParameter extends QueryParameter\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "f9fdd280a426dd86", + "equalIndicator/v1": "58343a1402a6002f342abc2ad8066c0acb9b6d8a123b3cfbf36d4a4a627ba2c5" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "LongInheritanceChainInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] Class has 3 parent classes, consider using appropriate design patterns.", + "markdown": "\\[EA\\] Class has 3 parent classes, consider using appropriate design patterns." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Attributes/Request/PredefinedPropertyRequestBody.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 13, + "charOffset": 753, + "charLength": 29, + "snippet": { + "text": "PredefinedPropertyRequestBody" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 701, + "charLength": 137, + "snippet": { + "text": "\n#[Attribute(Attribute::TARGET_METHOD)]\nfinal class PredefinedPropertyRequestBody extends RequestBody\n{\n public function __construct()" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0f6c1858595af6ed", + "equalIndicator/v1": "9a2e03681f116de615f949dba300e280938521cbee12263ad61337d3fc735818" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "LongInheritanceChainInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] Class has 4 parent classes, consider using appropriate design patterns.", + "markdown": "\\[EA\\] Class has 4 parent classes, consider using appropriate design patterns." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Dependency/Attributes/Response/Property/DependencyCollection.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 27, + "startColumn": 13, + "charOffset": 742, + "charLength": 20, + "snippet": { + "text": "DependencyCollection" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 25, + "startColumn": 1, + "charOffset": 713, + "charLength": 102, + "snippet": { + "text": " * @internal\n */\nfinal class DependencyCollection extends Property\n{\n public function __construct()" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "74c1f86ba7becaa1", + "equalIndicator/v1": "eb8afedc856125616bbe9e28a3944af903e27992059858edebf5f19cf42dac85" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "LongInheritanceChainInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] Class has 3 parent classes, consider using appropriate design patterns.", + "markdown": "\\[EA\\] Class has 3 parent classes, consider using appropriate design patterns." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Property/Attributes/Request/ElementPropertyRequestBody.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 25, + "startColumn": 13, + "charOffset": 791, + "charLength": 26, + "snippet": { + "text": "ElementPropertyRequestBody" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 23, + "startColumn": 1, + "charOffset": 739, + "charLength": 134, + "snippet": { + "text": "\n#[Attribute(Attribute::TARGET_METHOD)]\nfinal class ElementPropertyRequestBody extends RequestBody\n{\n public function __construct()" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "952cdaedba577771", + "equalIndicator/v1": "efa881f809aa9b51baa0f9649613db3e73246ba0a4f74904195d8a6c6a1dfe48" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 52, + "startColumn": 11, + "charOffset": 1762, + "charLength": 75, + "snippet": { + "text": "Property(description: 'Workflow permissions', type: 'bool', example: false)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 50, + "startColumn": 1, + "charOffset": 1699, + "charLength": 291, + "snippet": { + "text": " )]\n private readonly array $metaData,\n #[Property(description: 'Workflow permissions', type: 'bool', example: false)]\n private readonly bool $hasWorkflowWithPermissions,\n #[Property(description: 'Full path', type: 'string', example: '/path/to/asset.jpg')]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "c8e54b4ae449ef08", + "equalIndicator/v1": "08a9dc4e9b115719de1aeaed732b08c3844bfa0d83ec7ce65f3d70a6998a7355" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 48, + "startColumn": 11, + "charOffset": 1882, + "charLength": 33, + "snippet": { + "text": "Property(ref: Permissions::class)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 46, + "startColumn": 1, + "charOffset": 1732, + "charLength": 242, + "snippet": { + "text": " #[Property(description: 'Modification date', type: 'integer', example: 327417600)]\n private readonly ?int $modificationDate,\n #[Property(ref: Permissions::class)]\n private readonly Permissions $permissions\n ) {" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "14ab2cf63d196a8d", + "equalIndicator/v1": "1519aa442e4b7420e0c7976d0355262e40ecff315029ceb0f77558914cdc8c7e" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Version/Schema/AssetVersion.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 11, + "charOffset": 738, + "charLength": 78, + "snippet": { + "text": "Property(description: 'file name', type: 'string', example: 'myImageFile.png')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 693, + "charLength": 264, + "snippet": { + "text": "{\n public function __construct(\n #[Property(description: 'file name', type: 'string', example: 'myImageFile.png')]\n private string $fileName,\n #[Property(description: 'temporary file', type: 'string', example: 'path/to/temporary/file.png')]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "84178e08c07824ca", + "equalIndicator/v1": "40378ee9c96fbd740fa85b6951c8a29bdf4466e8f7534633fd0f233505230f64" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 39, + "startColumn": 11, + "charOffset": 1142, + "charLength": 63, + "snippet": { + "text": "Property(description: 'Type', type: 'string', example: 'image')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 37, + "startColumn": 1, + "charOffset": 1009, + "charLength": 318, + "snippet": { + "text": " #[Property(description: 'Has children', type: 'bool', example: false)]\n private readonly bool $hasChildren,\n #[Property(description: 'Type', type: 'string', example: 'image')]\n private readonly string $type,\n #[Property(description: 'Filename', type: 'string', example: 'cool.jpg')]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "669bc6ac0069bd19", + "equalIndicator/v1": "43a80b488985c32dafac3a484c67f89e44977e35238a60da91129ee894458006" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Version/Schema/AssetVersion.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 11, + "charOffset": 862, + "charLength": 94, + "snippet": { + "text": "Property(description: 'temporary file', type: 'string', example: 'path/to/temporary/file.png')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 728, + "charLength": 277, + "snippet": { + "text": " #[Property(description: 'file name', type: 'string', example: 'myImageFile.png')]\n private string $fileName,\n #[Property(description: 'temporary file', type: 'string', example: 'path/to/temporary/file.png')]\n private ?string $temporaryFile,\n ) {" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "402d16b5748c1803", + "equalIndicator/v1": "4d0f4b8b25bda5952fb05a5f1ae26ef53b28dc776cb6c9b419e6ea833fdcdf52" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 11, + "charOffset": 1742, + "charLength": 79, + "snippet": { + "text": "Property(description: 'Modification date', type: 'integer', example: 327417600)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 1600, + "charLength": 316, + "snippet": { + "text": " #[Property(description: 'Creation date', type: 'integer', example: 221846400)]\n private readonly ?int $creationDate,\n #[Property(description: 'Modification date', type: 'integer', example: 327417600)]\n private readonly ?int $modificationDate,\n #[Property(ref: Permissions::class)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "7bcbe5e0ca1111b0", + "equalIndicator/v1": "56ec89239bdfba357459724f1bb84609cec99734a3a9fbc3a0a1cce71f74f674" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Request/CollectionParameters.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 33, + "startColumn": 11, + "charOffset": 905, + "charLength": 8, + "snippet": { + "text": "Positive" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 31, + "startColumn": 1, + "charOffset": 844, + "charLength": 114, + "snippet": { + "text": " private int $page = 1,\n #[NotBlank]\n #[Positive]\n private int $pageSize = 10,\n ) {" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "77d6ecc501de5c0c", + "equalIndicator/v1": "64afe4fba632fd3636d6943e45b1124b60c35b33bcbcbb3be68e9ad0e99134a3" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Request/CollectionParameters.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 32, + "startColumn": 11, + "charOffset": 885, + "charLength": 8, + "snippet": { + "text": "NotBlank" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 30, + "startColumn": 1, + "charOffset": 824, + "charLength": 126, + "snippet": { + "text": " #[Positive]\n private int $page = 1,\n #[NotBlank]\n #[Positive]\n private int $pageSize = 10," + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "ccd5d96bc68b7e1a", + "equalIndicator/v1": "70cb41f7fe78e21c7d9dc60728b83fd4fe5e2d7eece4ba89f9a57f4d07018b1c" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 45, + "startColumn": 11, + "charOffset": 1509, + "charLength": 199, + "snippet": { + "text": "Property(\n description: 'Metadata',\n type: 'array',\n items: new Items(type: 'string', example: 'meta_data_example'),\n example: 'pimcore_icon_pdf'\n )" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 43, + "startColumn": 1, + "charOffset": 1371, + "charLength": 467, + "snippet": { + "text": " #[Property(description: 'Mimetype', type: 'string', example: 'image/jpeg')]\n private readonly ?string $mimeType,\n #[Property(\n description: 'Metadata',\n type: 'array',\n items: new Items(type: 'string', example: 'meta_data_example'),\n example: 'pimcore_icon_pdf'\n )]\n private readonly array $metaData,\n #[Property(description: 'Workflow permissions', type: 'bool', example: false)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b4c6aa1929d1bf97", + "equalIndicator/v1": "7e7fad67b721599df9b4a59f1faf5ae55576773c810fe1f0b11211a03ffdc9fb" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 34, + "startColumn": 11, + "charOffset": 983, + "charLength": 74, + "snippet": { + "text": "Property(description: 'path', type: 'string', example: '/path/to/element')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 32, + "startColumn": 1, + "charOffset": 855, + "charLength": 319, + "snippet": { + "text": " #[Property(description: 'ID of parent', type: 'integer', example: 1)]\n private readonly int $parentId,\n #[Property(description: 'path', type: 'string', example: '/path/to/element')]\n private readonly string $path,\n #[Property(description: 'ID of owner', type: 'integer', example: 1)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "dd3f5ea7a9dff674", + "equalIndicator/v1": "8126ddc2ba426ea7c6af291056e76b92f38870ecf0967860a9a3bb0fa7933858" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 54, + "startColumn": 11, + "charOffset": 1908, + "charLength": 81, + "snippet": { + "text": "Property(description: 'Full path', type: 'string', example: '/path/to/asset.jpg')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 52, + "startColumn": 1, + "charOffset": 1752, + "charLength": 298, + "snippet": { + "text": " #[Property(description: 'Workflow permissions', type: 'bool', example: false)]\n private readonly bool $hasWorkflowWithPermissions,\n #[Property(description: 'Full path', type: 'string', example: '/path/to/asset.jpg')]\n private readonly string $fullPath,\n int $id," + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0b4f2b468ad5fa55", + "equalIndicator/v1": "8589169c7dc68ddd3a3ff4ca9c715b43f668e1a9f3d177dae4138d9370b0e4a8" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 44, + "startColumn": 11, + "charOffset": 1610, + "charLength": 75, + "snippet": { + "text": "Property(description: 'Creation date', type: 'integer', example: 221846400)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 42, + "startColumn": 1, + "charOffset": 1480, + "charLength": 342, + "snippet": { + "text": " #[Property(description: 'Is locked', type: 'boolean', example: false)]\n private readonly bool $isLocked,\n #[Property(description: 'Creation date', type: 'integer', example: 221846400)]\n private readonly ?int $creationDate,\n #[Property(description: 'Modification date', type: 'integer', example: 327417600)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "80bfcd5e195caddf", + "equalIndicator/v1": "a202732b45abe1c94d18ae6ea5f71ddbbfd1fb71649fbfcec1ec249f16766178" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 42, + "startColumn": 11, + "charOffset": 1490, + "charLength": 67, + "snippet": { + "text": "Property(description: 'Is locked', type: 'boolean', example: false)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 1360, + "charLength": 326, + "snippet": { + "text": " #[Property(description: 'Locked', type: 'string', example: 'locked')]\n private readonly ?string $locked,\n #[Property(description: 'Is locked', type: 'boolean', example: false)]\n private readonly bool $isLocked,\n #[Property(description: 'Creation date', type: 'integer', example: 221846400)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "2fec47e9fbf8e257", + "equalIndicator/v1": "b8d74bf3622ae06c9cab86005a1ab064dc1fea4c53635f2556e00d81b9cddd88" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Request/CollectionParameters.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 30, + "startColumn": 11, + "charOffset": 834, + "charLength": 8, + "snippet": { + "text": "Positive" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 28, + "startColumn": 1, + "charOffset": 771, + "charLength": 123, + "snippet": { + "text": " public function __construct(\n #[NotBlank]\n #[Positive]\n private int $page = 1,\n #[NotBlank]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "63721e6ae2ff09e4", + "equalIndicator/v1": "cc182978cf2b938bd3cf51d25b8852bdcaefc64d83197c7c517a569e1bed1d79" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 11, + "charOffset": 1108, + "charLength": 65, + "snippet": { + "text": "Property(description: 'ID of owner', type: 'integer', example: 1)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 34, + "startColumn": 1, + "charOffset": 973, + "charLength": 338, + "snippet": { + "text": " #[Property(description: 'path', type: 'string', example: '/path/to/element')]\n private readonly string $path,\n #[Property(description: 'ID of owner', type: 'integer', example: 1)]\n private readonly int $userOwner,\n #[Property(description: 'User that modified the element', type: 'integer', example: 1)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "9c7851323aec72ad", + "equalIndicator/v1": "d23051cfd5b754ac82c3b6a0393e6667205ad4a75d4f5eefbeab50b23606d799" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 43, + "startColumn": 11, + "charOffset": 1381, + "charLength": 72, + "snippet": { + "text": "Property(description: 'Mimetype', type: 'string', example: 'image/jpeg')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 41, + "startColumn": 1, + "charOffset": 1246, + "charLength": 272, + "snippet": { + "text": " #[Property(description: 'Filename', type: 'string', example: 'cool.jpg')]\n private readonly string $filename,\n #[Property(description: 'Mimetype', type: 'string', example: 'image/jpeg')]\n private readonly ?string $mimeType,\n #[Property(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "01e6b1622c1ac541", + "equalIndicator/v1": "e1278b582ec78526441db2e368254195614e887186a2c3c98383915ca5fa35fe" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Asset/Schema/Asset.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 41, + "startColumn": 11, + "charOffset": 1256, + "charLength": 70, + "snippet": { + "text": "Property(description: 'Filename', type: 'string', example: 'cool.jpg')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 39, + "startColumn": 1, + "charOffset": 1132, + "charLength": 322, + "snippet": { + "text": " #[Property(description: 'Type', type: 'string', example: 'image')]\n private readonly string $type,\n #[Property(description: 'Filename', type: 'string', example: 'cool.jpg')]\n private readonly string $filename,\n #[Property(description: 'Mimetype', type: 'string', example: 'image/jpeg')]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "4265bd53264b2b0c", + "equalIndicator/v1": "e6cc6503ffca3f6dd7dce4f92789ac1a3e122d9a7ab44c799f8b7aebf6f514e1" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Request/CollectionParameters.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 29, + "startColumn": 11, + "charOffset": 814, + "charLength": 8, + "snippet": { + "text": "NotBlank" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 27, + "startColumn": 1, + "charOffset": 769, + "charLength": 105, + "snippet": { + "text": "{\n public function __construct(\n #[NotBlank]\n #[Positive]\n private int $page = 1," + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "b924270e17c10f07", + "equalIndicator/v1": "f2c0dc13e7e15ff2d40ef3f389848e6f1605257cc3a55e118392df3632ecdabf" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 40, + "startColumn": 11, + "charOffset": 1370, + "charLength": 66, + "snippet": { + "text": "Property(description: 'Locked', type: 'string', example: 'locked')" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 38, + "startColumn": 1, + "charOffset": 1216, + "charLength": 342, + "snippet": { + "text": " #[Property(description: 'User that modified the element', type: 'integer', example: 1)]\n private readonly int $userModification,\n #[Property(description: 'Locked', type: 'string', example: 'locked')]\n private readonly ?string $locked,\n #[Property(description: 'Is locked', type: 'boolean', example: false)]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "54e2faa7120fdfad", + "equalIndicator/v1": "faa3722f6b90434e54f632922c9803f6e391e29984d1a9464086c270b3a0ed41" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Attribute can be added to overriding parameter", + "markdown": "Attribute can be added to overriding parameter" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Response/Element.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 38, + "startColumn": 11, + "charOffset": 1226, + "charLength": 84, + "snippet": { + "text": "Property(description: 'User that modified the element', type: 'integer', example: 1)" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1098, + "charLength": 339, + "snippet": { + "text": " #[Property(description: 'ID of owner', type: 'integer', example: 1)]\n private readonly int $userOwner,\n #[Property(description: 'User that modified the element', type: 'integer', example: 1)]\n private readonly int $userModification,\n #[Property(description: 'Locked', type: 'string', example: 'locked')]" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "0d648721bc039127", + "equalIndicator/v1": "fe6fc561100aa403c25a9624309cc14e7f1cc862740c652d71d7cc91df967beb" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "PhpUnusedPrivateMethodInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "Unused private method 'getLatestVersionForUser'", + "markdown": "Unused private method 'getLatestVersionForUser'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Util/Traits/ElementProviderTrait.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 51, + "startColumn": 22, + "charOffset": 1450, + "charLength": 23, + "snippet": { + "text": "getLatestVersionForUser" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 49, + "startColumn": 1, + "charOffset": 1422, + "charLength": 135, + "snippet": { + "text": " }\n\n private function getLatestVersionForUser(\n Asset|Document\\PageSnippet|Concrete $element,\n ?UserInterface $user" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "bfd52ccc33bdf9f8", + "equalIndicator/v1": "295728d99e3a5dcb0efd0d158f8b5f684869670bb2bddd29968e10e6e47ffe22" }, "baselineState": "new", "properties": { @@ -38562,10 +40784,10 @@ } ], "automationDetails": { - "id": "project/qodana/2024-05-14", - "guid": "18f5511a-9086-408f-84ed-2d0f45f280be", + "id": "project/qodana/2024-05-17", + "guid": "cddb935a-e8fa-4119-872b-9d693e2a2a6c", "properties": { - "jobUrl": "https://github.com/pimcore/studio-backend-bundle/actions/runs/9075349479" + "jobUrl": "https://github.com/pimcore/studio-backend-bundle/actions/runs/9125922627" } }, "newlineSequences": [ @@ -38581,8 +40803,8 @@ "configProfile": "path", "deviceId": "200820300000000-7c33-767c-9695-477d79c87e1c", "qodanaNewResultSummary": { - "moderate": 1, - "total": 1 + "moderate": 36, + "total": 36 } } }