diff --git a/qodana.sarif.json b/qodana.sarif.json index 7e515b223..80d770fcc 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -326,10 +326,6 @@ "id": "HTML", "name": "HTML" }, - { - "id": "Cucumber", - "name": "Cucumber" - }, { "id": "JavaScript and TypeScript/Unused symbols", "name": "Unused symbols", @@ -348,6 +344,10 @@ } ] }, + { + "id": "Cucumber", + "name": "Cucumber" + }, { "id": "JavaScript and TypeScript/Flow type checker", "name": "Flow type checker", @@ -367,13 +367,13 @@ ] }, { - "id": "JavaScript and TypeScript/Data flow", - "name": "Data flow", + "id": "PHP/Php Inspections (EA Extended)/Code Style", + "name": "Code Style", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "PHP/Php Inspections (EA Extended)", + "index": 1, "toolComponent": { "name": "QDPHP" } @@ -385,13 +385,13 @@ ] }, { - "id": "PHP/Php Inspections (EA Extended)/Code Style", - "name": "Code Style", + "id": "JavaScript and TypeScript/Data flow", + "name": "Data flow", "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)", - "index": 1, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -991,13 +991,13 @@ ] }, { - "id": "CSS/Probable bugs", - "name": "Probable bugs", + "id": "JavaScript and TypeScript/TypeScript", + "name": "TypeScript", "relationships": [ { "target": { - "id": "CSS", - "index": 44, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -1009,13 +1009,13 @@ ] }, { - "id": "JavaScript and TypeScript/TypeScript", - "name": "TypeScript", + "id": "CSS/Probable bugs", + "name": "Probable bugs", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "CSS", + "index": 44, "toolComponent": { "name": "QDPHP" } @@ -1664,7 +1664,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -1697,7 +1697,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -1763,7 +1763,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -1961,7 +1961,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2225,7 +2225,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2258,7 +2258,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2291,7 +2291,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2456,7 +2456,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2522,7 +2522,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2588,7 +2588,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -2753,7 +2753,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -3314,7 +3314,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -3908,7 +3908,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -3974,7 +3974,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4106,7 +4106,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4238,7 +4238,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4568,7 +4568,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4733,7 +4733,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4766,7 +4766,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4832,7 +4832,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -4865,7 +4865,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -5030,7 +5030,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -5063,7 +5063,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -5240,19 +5240,19 @@ ] }, { - "id": "StrEndsWithCanBeUsedInspection", + "id": "UnqualifiedReferenceInspection", "shortDescription": { - "text": "'str_ends_with(...)' can be used" + "text": "Unqualified function/constant reference" }, "fullDescription": { - "text": "The inspection reports cases when 'str_ends_with(...)' can be used.", - "markdown": "The inspection reports cases when 'str_ends_with(...)' can be used." + "text": "Using fully-qualified function calls is faster, details and benchmarks are here.", + "markdown": "Using fully-qualified function calls is faster, details and benchmarks [are here](https://github.com/Roave/FunctionFQNReplacer)." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "StrEndsWithCanBeUsedInspection", + "suppressToolId": "UnqualifiedReferenceInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -5260,8 +5260,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Language level migration", - "index": 47, + "id": "PHP/Php Inspections (EA Extended)/Performance", + "index": 42, "toolComponent": { "name": "QDPHP" } @@ -5273,19 +5273,19 @@ ] }, { - "id": "UnqualifiedReferenceInspection", + "id": "StrEndsWithCanBeUsedInspection", "shortDescription": { - "text": "Unqualified function/constant reference" + "text": "'str_ends_with(...)' can be used" }, "fullDescription": { - "text": "Using fully-qualified function calls is faster, details and benchmarks are here.", - "markdown": "Using fully-qualified function calls is faster, details and benchmarks [are here](https://github.com/Roave/FunctionFQNReplacer)." + "text": "The inspection reports cases when 'str_ends_with(...)' can be used.", + "markdown": "The inspection reports cases when 'str_ends_with(...)' can be used." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "UnqualifiedReferenceInspection", + "suppressToolId": "StrEndsWithCanBeUsedInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -5293,8 +5293,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Performance", - "index": 42, + "id": "PHP/Php Inspections (EA Extended)/Language level migration", + "index": 47, "toolComponent": { "name": "QDPHP" } @@ -5393,7 +5393,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -5591,7 +5591,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -5888,7 +5888,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -6713,7 +6713,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -6845,7 +6845,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -7043,7 +7043,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -7208,7 +7208,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 27, + "index": 26, "toolComponent": { "name": "QDPHP" } @@ -9377,28 +9377,28 @@ ] }, { - "id": "PhpDefineConstantNameStartsWithLeadingSlashInspection", + "id": "PhpUnitAssertCountInspection", "shortDescription": { - "text": "Constant name defined with a leading slash" + "text": "Usage 'assertCount/assertSameSize' methods instead of assertEquals" }, "fullDescription": { - "text": "Reports the 'define' constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP.", - "markdown": "Reports the `define` constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP." + "text": "Reports alternative usage of the 'assertEquals' and 'assertNotEquals' methods with 'count' function as a parameter See Usage of the assertCount for details. See Usage of the assertSameSize for details.", + "markdown": "Reports alternative usage of the `assertEquals` and `assertNotEquals` methods with `count` function as a parameter\n\n\nSee [Usage of the assertCount](https://phpunit.readthedocs.io/en/stable/assertions.html#assertcount) for details.\n\n\nSee [Usage of the assertSameSize](https://hotexamples.com/examples/-/PHPUnit_Framework_Assert/assertSameSize/php-phpunit_framework_assert-assertsamesize-method-examples.html) for details." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PhpDefineConstantNameStartsWithLeadingSlashInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpUnitAssertCountInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/PHPUnit", + "index": 29, "toolComponent": { "name": "QDPHP" } @@ -9410,28 +9410,28 @@ ] }, { - "id": "PhpUnitAssertCountInspection", + "id": "PhpDefineConstantNameStartsWithLeadingSlashInspection", "shortDescription": { - "text": "Usage 'assertCount/assertSameSize' methods instead of assertEquals" + "text": "Constant name defined with a leading slash" }, "fullDescription": { - "text": "Reports alternative usage of the 'assertEquals' and 'assertNotEquals' methods with 'count' function as a parameter See Usage of the assertCount for details. See Usage of the assertSameSize for details.", - "markdown": "Reports alternative usage of the `assertEquals` and `assertNotEquals` methods with `count` function as a parameter\n\n\nSee [Usage of the assertCount](https://phpunit.readthedocs.io/en/stable/assertions.html#assertcount) for details.\n\n\nSee [Usage of the assertSameSize](https://hotexamples.com/examples/-/PHPUnit_Framework_Assert/assertSameSize/php-phpunit_framework_assert-assertsamesize-method-examples.html) for details." + "text": "Reports the 'define' constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP.", + "markdown": "Reports the `define` constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "PhpUnitAssertCountInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpDefineConstantNameStartsWithLeadingSlashInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/PHPUnit", - "index": 29, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -11258,28 +11258,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" } @@ -11291,28 +11291,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" } @@ -11588,28 +11588,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" } @@ -11621,28 +11621,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": 93, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11719,39 +11719,6 @@ } ] }, - { - "id": "PhpUnitUndefinedDataProviderInspection", - "shortDescription": { - "text": "Undefined PHPUnit data provider" - }, - "fullDescription": { - "text": "Reports the references to functions/methods in the '@dataProvider' PHPDoc tag that are not resolved. Note that when resolving 'dataProvider', PHPUnit doesn't take 'use' statements into account.", - "markdown": "Reports the references to functions/methods in the `@dataProvider` PHPDoc tag that are not resolved.\n\nNote that when resolving `dataProvider`, PHPUnit doesn't take `use` statements into account." - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "PhpUnitUndefinedDataProviderInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "PHP/PHPUnit", - "index": 29, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "PhpIncludeInspection", "shortDescription": { @@ -11785,6 +11752,39 @@ } ] }, + { + "id": "PhpUnitUndefinedDataProviderInspection", + "shortDescription": { + "text": "Undefined PHPUnit data provider" + }, + "fullDescription": { + "text": "Reports the references to functions/methods in the '@dataProvider' PHPDoc tag that are not resolved. Note that when resolving 'dataProvider', PHPUnit doesn't take 'use' statements into account.", + "markdown": "Reports the references to functions/methods in the `@dataProvider` PHPDoc tag that are not resolved.\n\nNote that when resolving `dataProvider`, PHPUnit doesn't take `use` statements into account." + }, + "defaultConfiguration": { + "enabled": true, + "level": "warning", + "parameters": { + "suppressToolId": "PhpUnitUndefinedDataProviderInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "PHP/PHPUnit", + "index": 29, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "PhpFieldAssignmentTypeMismatchInspection", "shortDescription": { @@ -13205,19 +13205,19 @@ ] }, { - "id": "PhpDisabledQualityToolComposerInspection", + "id": "PhpConcatenationWithEmptyStringCanBeInlinedInspection", "shortDescription": { - "text": "Quality tool inspection is disabled" + "text": "Concatenation to empty string can be merged with assignment" }, "fullDescription": { - "text": "Highlights the quality tools' entries in composer.json in case the corresponding code inspections are disabled.", - "markdown": "Highlights the quality tools' entries in *composer.json* in case the corresponding code inspections are disabled." + "text": "Reports the '.=' concatenation assignments performed right after assignment to an empty string literal. Such assignments can be merged together.", + "markdown": "Reports the `.=` concatenation assignments performed right after assignment to an empty string literal. Such assignments can be merged together." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpDisabledQualityToolComposerInspection", + "suppressToolId": "PhpConcatenationWithEmptyStringCanBeInlinedInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13225,8 +13225,8 @@ "relationships": [ { "target": { - "id": "PHP/Composer", - "index": 52, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -13238,19 +13238,19 @@ ] }, { - "id": "PhpConcatenationWithEmptyStringCanBeInlinedInspection", + "id": "PhpDisabledQualityToolComposerInspection", "shortDescription": { - "text": "Concatenation to empty string can be merged with assignment" + "text": "Quality tool inspection is disabled" }, "fullDescription": { - "text": "Reports the '.=' concatenation assignments performed right after assignment to an empty string literal. Such assignments can be merged together.", - "markdown": "Reports the `.=` concatenation assignments performed right after assignment to an empty string literal. Such assignments can be merged together." + "text": "Highlights the quality tools' entries in composer.json in case the corresponding code inspections are disabled.", + "markdown": "Highlights the quality tools' entries in *composer.json* in case the corresponding code inspections are disabled." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpConcatenationWithEmptyStringCanBeInlinedInspection", + "suppressToolId": "PhpDisabledQualityToolComposerInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13258,8 +13258,8 @@ "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Composer", + "index": 52, "toolComponent": { "name": "QDPHP" } @@ -13667,19 +13667,19 @@ ] }, { - "id": "PhpClassCantBeUsedAsAttributeInspection", + "id": "PhpReturnValueOfMethodIsNeverUsedInspection", "shortDescription": { - "text": "Class cannot be used as attribute" + "text": "Method's return value is never used" }, "fullDescription": { - "text": "Reports the attributes that are resolved to a class not annotated with '#[Attribute]'. See Attributes (php.net) for details.", - "markdown": "Reports the attributes that are resolved to a class not annotated with `#[Attribute]`.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." + "text": "Reports the private methods returning the values that are not used.", + "markdown": "Reports the private methods returning the values that are not used." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpClassCantBeUsedAsAttributeInspection", + "suppressToolId": "PhpReturnValueOfMethodIsNeverUsedInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13687,8 +13687,8 @@ "relationships": [ { "target": { - "id": "PHP/Attributes", - "index": 61, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -13700,19 +13700,19 @@ ] }, { - "id": "PhpReturnValueOfMethodIsNeverUsedInspection", + "id": "PhpClassCantBeUsedAsAttributeInspection", "shortDescription": { - "text": "Method's return value is never used" + "text": "Class cannot be used as attribute" }, "fullDescription": { - "text": "Reports the private methods returning the values that are not used.", - "markdown": "Reports the private methods returning the values that are not used." + "text": "Reports the attributes that are resolved to a class not annotated with '#[Attribute]'. See Attributes (php.net) for details.", + "markdown": "Reports the attributes that are resolved to a class not annotated with `#[Attribute]`.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpReturnValueOfMethodIsNeverUsedInspection", + "suppressToolId": "PhpClassCantBeUsedAsAttributeInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13720,8 +13720,8 @@ "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Attributes", + "index": 61, "toolComponent": { "name": "QDPHP" } @@ -15152,28 +15152,28 @@ ] }, { - "id": "PhpStatementWithoutBracesInspection", + "id": "PhpPregMatchRedundantClosureInspection", "shortDescription": { - "text": "Control statement body without braces" + "text": "Redundant closure '.*'" }, "fullDescription": { - "text": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces. See Control structures (php.net) for details.", - "markdown": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces.\n\n\nSee [Control structures (php.net)](https://www.php.net/manual/en/language.control-structures.php) for details." + "text": "Reports redundant leading and trailing '.*' in pattern for `preg_match` function.", + "markdown": "Reports redundant leading and trailing '.\\*' in pattern for \\`preg_match\\` function." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpStatementWithoutBracesInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpPregMatchRedundantClosureInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -15185,28 +15185,28 @@ ] }, { - "id": "PhpPregMatchRedundantClosureInspection", + "id": "PhpStatementWithoutBracesInspection", "shortDescription": { - "text": "Redundant closure '.*'" + "text": "Control statement body without braces" }, "fullDescription": { - "text": "Reports redundant leading and trailing '.*' in pattern for `preg_match` function.", - "markdown": "Reports redundant leading and trailing '.\\*' in pattern for \\`preg_match\\` function." + "text": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces. See Control structures (php.net) for details.", + "markdown": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces.\n\n\nSee [Control structures (php.net)](https://www.php.net/manual/en/language.control-structures.php) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpPregMatchRedundantClosureInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpStatementWithoutBracesInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -18815,28 +18815,28 @@ ] }, { - "id": "PhpInvalidStringOffsetUsageInspection", + "id": "PhpWrongForeachArgumentTypeInspection", "shortDescription": { - "text": "Invalid string offset usage" + "text": "Invalid argument supplied for 'foreach()'" }, "fullDescription": { - "text": "Reports invalid string offset usages that will result in a runtime error. The following usages are reported: Using string offsets as objects or arrays Unsetting string offsets via 'unset' Passing string offsets by reference Creating references to or from string offsets Incrementing or decrementing string offsets Using combined operator assignments such as '+=' or '.=' on string offsets Assigning string offsets with empty strings or strings with length >1", - "markdown": "Reports invalid string offset usages that will result in a runtime error.\n\n\nThe following usages are reported:\n\n* Using string offsets as objects or arrays\n* Unsetting string offsets via `unset`\n* Passing string offsets by reference\n* Creating references to or from string offsets\n* Incrementing or decrementing string offsets\n* Using combined operator assignments such as `+=` or `.=` on string offsets\n* Assigning string offsets with empty strings or strings with length \\>1" + "text": "Reports the 'foreach' constructs used on variables of the 'string', 'float', 'int', or 'boolean' type. See foreach (php.net) for details.", + "markdown": "Reports the `foreach` constructs used on variables of the `string`, `float`, `int`, or `boolean` type.\n\n\nSee [foreach (php.net)](http://www.php.net/manual/en/control-structures.foreach.php) for details." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "PhpInvalidStringOffsetUsageInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "PhpWrongForeachArgumentTypeInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/Probable bugs", - "index": 12, + "id": "PHP/Type compatibility", + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -18848,28 +18848,28 @@ ] }, { - "id": "PhpWrongForeachArgumentTypeInspection", + "id": "PhpInvalidStringOffsetUsageInspection", "shortDescription": { - "text": "Invalid argument supplied for 'foreach()'" + "text": "Invalid string offset usage" }, "fullDescription": { - "text": "Reports the 'foreach' constructs used on variables of the 'string', 'float', 'int', or 'boolean' type. See foreach (php.net) for details.", - "markdown": "Reports the `foreach` constructs used on variables of the `string`, `float`, `int`, or `boolean` type.\n\n\nSee [foreach (php.net)](http://www.php.net/manual/en/control-structures.foreach.php) for details." + "text": "Reports invalid string offset usages that will result in a runtime error. The following usages are reported: Using string offsets as objects or arrays Unsetting string offsets via 'unset' Passing string offsets by reference Creating references to or from string offsets Incrementing or decrementing string offsets Using combined operator assignments such as '+=' or '.=' on string offsets Assigning string offsets with empty strings or strings with length >1", + "markdown": "Reports invalid string offset usages that will result in a runtime error.\n\n\nThe following usages are reported:\n\n* Using string offsets as objects or arrays\n* Unsetting string offsets via `unset`\n* Passing string offsets by reference\n* Creating references to or from string offsets\n* Incrementing or decrementing string offsets\n* Using combined operator assignments such as `+=` or `.=` on string offsets\n* Assigning string offsets with empty strings or strings with length \\>1" }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "PhpWrongForeachArgumentTypeInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpInvalidStringOffsetUsageInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "PHP/Type compatibility", - "index": 33, + "id": "PHP/Probable bugs", + "index": 12, "toolComponent": { "name": "QDPHP" } @@ -19544,28 +19544,28 @@ ] }, { - "id": "SqlCallNotationInspection", + "id": "MysqlParsingInspection", "shortDescription": { - "text": "Using of named and positional arguments" + "text": "Unsupported syntax in pre-8.0 versions" }, "fullDescription": { - "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", - "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" + "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", + "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" }, "defaultConfiguration": { "enabled": false, - "level": "error", + "level": "warning", "parameters": { - "suppressToolId": "SqlCallNotation", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "MysqlParsing", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "SQL", - "index": 46, + "id": "MySQL", + "index": 13, "toolComponent": { "name": "QDPHP" } @@ -19577,28 +19577,28 @@ ] }, { - "id": "MysqlParsingInspection", + "id": "SqlCallNotationInspection", "shortDescription": { - "text": "Unsupported syntax in pre-8.0 versions" + "text": "Using of named and positional arguments" }, "fullDescription": { - "text": "Reports invalid usages of UNION in queries. The inspection works in MySQL versions that are earlier than 8.0. Example (MySQL): 'SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;'", - "markdown": "Reports invalid usages of UNION in queries.\n\nThe inspection works in MySQL versions that are earlier than 8.0.\n\nExample (MySQL):\n\n\n SELECT * FROM (SELECT 1 UNION (SELECT 1 UNION SELECT 2)) a;\n" + "text": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2. Example (In PostgreSQL): 'CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n$$\nBEGIN\n RETURN a + b + c;\nEND\n$$;\nSELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\nSELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\nSELECT foo(b => 2, 1, 3);'", + "markdown": "Reports calls in which positional arguments go after the named ones. Works in PostgreSQL, Oracle, and Db2.\n\nExample (In PostgreSQL):\n\n CREATE FUNCTION foo(a int, b int, c int) RETURNS int\n LANGUAGE plpgsql AS\n $$\n BEGIN\n RETURN a + b + c;\n END\n $$;\n SELECT foo(a => 1, b => 2, c => 3);\n -- `3` goes after the named argument\n SELECT foo(1, b => 2, 3);\n -- `1` and `3` go after the named argument\n SELECT foo(b => 2, 1, 3);\n" }, "defaultConfiguration": { "enabled": false, - "level": "warning", + "level": "error", "parameters": { - "suppressToolId": "MysqlParsing", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "SqlCallNotation", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "MySQL", - "index": 13, + "id": "SQL", + "index": 46, "toolComponent": { "name": "QDPHP" } @@ -21434,7 +21434,7 @@ }, { "name": "fr.adrienbrault.idea.symfony2plugin", - "version": "2024.1.272", + "version": "2024.1.273", "rules": [ { "id": "TwigExtensionDeprecatedInspection", @@ -22327,39 +22327,6 @@ } ] }, - { - "id": "FormViewTemplate", - "shortDescription": { - "text": "Symfony: Create a form view for passing to template" - }, - "fullDescription": { - "text": "", - "markdown": "" - }, - "defaultConfiguration": { - "enabled": true, - "level": "warning", - "parameters": { - "suppressToolId": "FormViewTemplate", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "Symfony", - "index": 14, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "TemplateExistsAnnotationPhpAttributeLocalInspection", "shortDescription": { @@ -25981,39 +25948,6 @@ } ] }, - { - "id": "RegExpRepeatedSpace", - "shortDescription": { - "text": "Consecutive spaces" - }, - "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" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "RegExpRepeatedSpace", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "RegExp", - "index": 65, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "RegExpDuplicateAlternationBranch", "shortDescription": { @@ -26048,97 +25982,19 @@ ] }, { - "id": "CheckEmptyScriptTag", - "shortDescription": { - "text": "Empty tag" - }, - "fullDescription": { - "text": "Reports empty tags that do not work in some browsers. Example: '\n \n '", - "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "CheckEmptyScriptTag", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "HTML", - "index": 22, - "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": 23, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, - { - "id": "CucumberTableInspection", + "id": "RegExpRepeatedSpace", "shortDescription": { - "text": "Unused or missing columns in Cucumber tables" + "text": "Consecutive spaces" }, "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." + "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": "CucumberTableInspection", + "suppressToolId": "RegExpRepeatedSpace", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -26146,107 +26002,8 @@ "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, + "id": "RegExp", + "index": 65, "toolComponent": { "name": "QDPHP" } @@ -26258,19 +26015,19 @@ ] }, { - "id": "CucumberUndefinedStep", + "id": "CheckEmptyScriptTag", "shortDescription": { - "text": "Undefined step" + "text": "Empty tag" }, "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." + "text": "Reports empty tags that do not work in some browsers. Example: '\n \n '", + "markdown": "Reports empty tags that do not work in some browsers.\n\n**Example:**\n\n\n \n \n \n" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "CucumberUndefinedStep", + "suppressToolId": "CheckEmptyScriptTag", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -26278,41 +26035,8 @@ "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, + "id": "HTML", + "index": 22, "toolComponent": { "name": "QDPHP" } @@ -26357,7 +26081,7 @@ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 24, + "index": 23, "toolComponent": { "name": "QDPHP" } @@ -26423,7 +26147,7 @@ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 26, + "index": 27, "toolComponent": { "name": "QDPHP" } @@ -26687,7 +26411,7 @@ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 26, + "index": 27, "toolComponent": { "name": "QDPHP" } @@ -27050,7 +26774,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -27182,7 +26906,7 @@ { "target": { "id": "JavaScript and TypeScript/Unused symbols", - "index": 24, + "index": 23, "toolComponent": { "name": "QDPHP" } @@ -27391,6 +27115,39 @@ } ] }, + { + "id": "TextLabelInSwitchStatementJS", + "shortDescription": { + "text": "Text label in 'switch' statement" + }, + "fullDescription": { + "text": "Reports a labeled statement inside a 'switch' statement, which often results from a typo. Example: 'switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }'", + "markdown": "Reports a labeled statement inside a `switch` statement, which often results from a typo.\n\nExample:\n\n\n switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }\n" + }, + "defaultConfiguration": { + "enabled": false, + "level": "warning", + "parameters": { + "suppressToolId": "TextLabelInSwitchStatementJS", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" + } + }, + "relationships": [ + { + "target": { + "id": "JavaScript and TypeScript/Switch statement issues", + "index": 73, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "ES6PossiblyAsyncFunction", "shortDescription": { @@ -27424,39 +27181,6 @@ } ] }, - { - "id": "TextLabelInSwitchStatementJS", - "shortDescription": { - "text": "Text label in 'switch' statement" - }, - "fullDescription": { - "text": "Reports a labeled statement inside a 'switch' statement, which often results from a typo. Example: 'switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }'", - "markdown": "Reports a labeled statement inside a `switch` statement, which often results from a typo.\n\nExample:\n\n\n switch(x)\n {\n case 1:\n case2: //typo!\n case 3:\n break;\n }\n" - }, - "defaultConfiguration": { - "enabled": false, - "level": "warning", - "parameters": { - "suppressToolId": "TextLabelInSwitchStatementJS", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" - } - }, - "relationships": [ - { - "target": { - "id": "JavaScript and TypeScript/Switch statement issues", - "index": 73, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "FlowJSFlagCommentPlacement", "shortDescription": { @@ -27578,7 +27302,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -27887,19 +27611,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" } @@ -27907,8 +27631,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Try statement issues", + "index": 48, "toolComponent": { "name": "QDPHP" } @@ -27920,19 +27644,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" } @@ -27940,8 +27664,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 48, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -28205,7 +27929,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -28238,7 +27962,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -28634,7 +28358,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -28700,7 +28424,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -29240,19 +28964,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" } @@ -29260,8 +28984,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/DOM issues", + "index": 74, "toolComponent": { "name": "QDPHP" } @@ -29273,19 +28997,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" } @@ -29293,8 +29017,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 74, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29372,19 +29096,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" } @@ -29392,8 +29116,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29405,19 +29129,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" } @@ -29425,8 +29149,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/TypeScript", + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -29768,19 +29492,19 @@ ] }, { - "id": "JSValidateJSDoc", + "id": "NonBlockStatementBodyJS", "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" + "text": "Statement body without braces" }, "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." + "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", + "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JSValidateJSDoc", + "suppressToolId": "NonBlockStatementBodyJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29788,8 +29512,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 34, + "id": "JavaScript and TypeScript/Code style issues", + "index": 66, "toolComponent": { "name": "QDPHP" } @@ -29801,19 +29525,19 @@ ] }, { - "id": "NonBlockStatementBodyJS", + "id": "IfStatementWithTooManyBranchesJS", "shortDescription": { - "text": "Statement body without braces" + "text": "'if' statement with too many branches" }, "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." + "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": "NonBlockStatementBodyJS", + "suppressToolId": "IfStatementWithTooManyBranchesJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29821,8 +29545,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 66, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 54, "toolComponent": { "name": "QDPHP" } @@ -29834,19 +29558,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" } @@ -29854,8 +29578,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 54, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -30053,7 +29777,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -30218,7 +29942,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -30482,7 +30206,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31142,7 +30866,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31175,7 +30899,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31406,7 +31130,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31769,7 +31493,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31802,7 +31526,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -31880,28 +31604,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" } @@ -31913,21 +31637,21 @@ ] }, { - "id": "JSUnfilteredForInLoop", + "id": "JSAnnotator", "shortDescription": { - "text": "Unfiltered for..in loop" + "text": "ECMAScript specification is not followed" }, "fullDescription": { - "text": "Reports unfiltered 'for-in' loops. The use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when 'Object''s prototype may be incorrectly modified. For example, the following code will print 42 and myMethod: 'Object.prototype.myMethod = function myMethod() {};\nlet a = { foo: 42 };\nfor (let i in a) {\n console.log(a[i]);\n}' Suggests replacing the whole loop with a 'Object.keys()' method or adding a 'hasOwnProperty()' check. After applying the quick-fix the code looks as follows: 'for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n}'", - "markdown": "Reports unfiltered `for-in` loops. \n\nThe use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when `Object`'s prototype may be incorrectly modified. For example, the following code will print **42** and **myMethod** : \n\n\n Object.prototype.myMethod = function myMethod() {};\n let a = { foo: 42 };\n for (let i in a) {\n console.log(a[i]);\n }\n\nSuggests replacing the whole loop with a `Object.keys()` method or adding a `hasOwnProperty()` check. After applying the quick-fix the code looks as follows:\n\n\n for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n }\n" + "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": "warning", + "level": "error", "parameters": { - "suppressToolId": "JSUnfilteredForInLoop", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "JSAnnotator", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ @@ -31946,28 +31670,28 @@ ] }, { - "id": "JSIncompatibleTypesComparison", + "id": "JSUnfilteredForInLoop", "shortDescription": { - "text": "Comparison of expressions having incompatible types" + "text": "Unfiltered for..in loop" }, "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 unfiltered 'for-in' loops. The use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when 'Object''s prototype may be incorrectly modified. For example, the following code will print 42 and myMethod: 'Object.prototype.myMethod = function myMethod() {};\nlet a = { foo: 42 };\nfor (let i in a) {\n console.log(a[i]);\n}' Suggests replacing the whole loop with a 'Object.keys()' method or adding a 'hasOwnProperty()' check. After applying the quick-fix the code looks as follows: 'for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n}'", + "markdown": "Reports unfiltered `for-in` loops. \n\nThe use of this construct results in processing not only own properties of an object but properties from its prototype as well. It may be unexpected in some specific cases, for example, in utility methods that copy or modify all properties or when `Object`'s prototype may be incorrectly modified. For example, the following code will print **42** and **myMethod** : \n\n\n Object.prototype.myMethod = function myMethod() {};\n let a = { foo: 42 };\n for (let i in a) {\n console.log(a[i]);\n }\n\nSuggests replacing the whole loop with a `Object.keys()` method or adding a `hasOwnProperty()` check. After applying the quick-fix the code looks as follows:\n\n\n for (let i in a) {\n if (a.hasOwnProperty(i)) {\n console.log(a[i]);\n }\n }\n" }, "defaultConfiguration": { "enabled": false, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "JSIncompatibleTypesComparison", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "JSUnfilteredForInLoop", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Probable bugs", - "index": 60, + "id": "JavaScript and TypeScript/General", + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -32462,7 +32186,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -32759,7 +32483,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -32990,7 +32714,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 71, + "index": 70, "toolComponent": { "name": "QDPHP" } @@ -33254,6 +32978,249 @@ { "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" @@ -34919,7 +34886,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 70, + "index": 71, "toolComponent": { "name": "QDPHP" } @@ -35183,7 +35150,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 70, + "index": 71, "toolComponent": { "name": "QDPHP" } @@ -35546,7 +35513,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 70, + "index": 71, "toolComponent": { "name": "QDPHP" } @@ -38482,9 +38449,9 @@ }, "invocations": [ { - "startTimeUtc": "2024-05-17T09:20:35.046647408Z", + "startTimeUtc": "2024-05-21T08:03:01.374990903Z", "exitCode": 255, - "exitCodeDescription": "Failure condition triggered:\n- Detected 36 problems across all severities, fail threshold: 0", + "exitCodeDescription": "Failure condition triggered:\n- Detected 2 problems across all severities, fail threshold: 0", "executionSuccessful": true } ], @@ -38492,8 +38459,8 @@ "versionControlProvenance": [ { "repositoryUri": "https://github.com/pimcore/studio-backend-bundle.git", - "revisionId": "76bbe2cd00f5140de01ae95c4d9acf6fcf77459f", - "branch": "156-dependencies", + "revisionId": "9377f75460145da5c814d9f3dd868d640bdd96ab", + "branch": "versions-introduce-events", "properties": { "repoUrl": "https://github.com/pimcore/studio-backend-bundle.git", "lastAuthorName": "mattamon", @@ -38721,7 +38688,7 @@ "equalIndicator/v2": "1a48abf43e131b3c", "equalIndicator/v1": "d332e327ffffb913d03b5c1b123366ccfb39379be3645fdac1a4e16298cddeb5" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -38835,7 +38802,7 @@ "equalIndicator/v2": "af124e8aa2be2d8b", "equalIndicator/v1": "31c95f4bfa8bf741b071ffed051cc58534a0d8fa41131ab271c2271332f08bcd" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -38892,7 +38859,7 @@ "equalIndicator/v2": "cc30109889285c34", "equalIndicator/v1": "341f72b7a05cc112d36ecbeb0620f8e1323e502c1a8e0d94186d9a2f29accb0f" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -38949,64 +38916,7 @@ "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", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39063,7 +38973,7 @@ "equalIndicator/v2": "4fb327c4151fd0ef", "equalIndicator/v1": "5c00a4f43cabb4c6181f0353ac0fcab81fe0f6be307800d7899ad041c4d5a7a5" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39120,7 +39030,7 @@ "equalIndicator/v2": "f1f19cd3c9b7872f", "equalIndicator/v1": "660d5ca670ab0fd528593863c3c5e76b1e99d5b8dd9e7b0ee4de4bfe5db68e6e" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39177,64 +39087,7 @@ "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", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39291,7 +39144,7 @@ "equalIndicator/v2": "45874f215741c0d2", "equalIndicator/v1": "91ceea34e0aca77ee9e75d42d1674c9203a8a95adedb9a1117b879f8f845df42" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39348,7 +39201,7 @@ "equalIndicator/v2": "7ba46194b23c4715", "equalIndicator/v1": "c3a1fb37b40e52d1c38c4c51dc39402aa72d2557cd4c06356d0b1747ada4bf85" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39405,7 +39258,7 @@ "equalIndicator/v2": "f9fdd280a426dd86", "equalIndicator/v1": "58343a1402a6002f342abc2ad8066c0acb9b6d8a123b3cfbf36d4a4a627ba2c5" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39462,7 +39315,7 @@ "equalIndicator/v2": "0f6c1858595af6ed", "equalIndicator/v1": "9a2e03681f116de615f949dba300e280938521cbee12263ad61337d3fc735818" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39519,7 +39372,7 @@ "equalIndicator/v2": "74c1f86ba7becaa1", "equalIndicator/v1": "eb8afedc856125616bbe9e28a3944af903e27992059858edebf5f19cf42dac85" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39576,7 +39429,7 @@ "equalIndicator/v2": "952cdaedba577771", "equalIndicator/v1": "efa881f809aa9b51baa0f9649613db3e73246ba0a4f74904195d8a6c6a1dfe48" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39633,7 +39486,7 @@ "equalIndicator/v2": "c8e54b4ae449ef08", "equalIndicator/v1": "08a9dc4e9b115719de1aeaed732b08c3844bfa0d83ec7ce65f3d70a6998a7355" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39690,64 +39543,7 @@ "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", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39804,64 +39600,7 @@ "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", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39918,7 +39657,7 @@ "equalIndicator/v2": "7bcbe5e0ca1111b0", "equalIndicator/v1": "56ec89239bdfba357459724f1bb84609cec99734a3a9fbc3a0a1cce71f74f674" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -39975,7 +39714,7 @@ "equalIndicator/v2": "77d6ecc501de5c0c", "equalIndicator/v1": "64afe4fba632fd3636d6943e45b1124b60c35b33bcbcbb3be68e9ad0e99134a3" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40032,7 +39771,7 @@ "equalIndicator/v2": "ccd5d96bc68b7e1a", "equalIndicator/v1": "70cb41f7fe78e21c7d9dc60728b83fd4fe5e2d7eece4ba89f9a57f4d07018b1c" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40089,7 +39828,7 @@ "equalIndicator/v2": "b4c6aa1929d1bf97", "equalIndicator/v1": "7e7fad67b721599df9b4a59f1faf5ae55576773c810fe1f0b11211a03ffdc9fb" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40146,7 +39885,7 @@ "equalIndicator/v2": "dd3f5ea7a9dff674", "equalIndicator/v1": "8126ddc2ba426ea7c6af291056e76b92f38870ecf0967860a9a3bb0fa7933858" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40203,7 +39942,7 @@ "equalIndicator/v2": "0b4f2b468ad5fa55", "equalIndicator/v1": "8589169c7dc68ddd3a3ff4ca9c715b43f668e1a9f3d177dae4138d9370b0e4a8" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40260,7 +39999,7 @@ "equalIndicator/v2": "80bfcd5e195caddf", "equalIndicator/v1": "a202732b45abe1c94d18ae6ea5f71ddbbfd1fb71649fbfcec1ec249f16766178" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40317,7 +40056,7 @@ "equalIndicator/v2": "2fec47e9fbf8e257", "equalIndicator/v1": "b8d74bf3622ae06c9cab86005a1ab064dc1fea4c53635f2556e00d81b9cddd88" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40374,7 +40113,7 @@ "equalIndicator/v2": "63721e6ae2ff09e4", "equalIndicator/v1": "cc182978cf2b938bd3cf51d25b8852bdcaefc64d83197c7c517a569e1bed1d79" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40431,7 +40170,7 @@ "equalIndicator/v2": "9c7851323aec72ad", "equalIndicator/v1": "d23051cfd5b754ac82c3b6a0393e6667205ad4a75d4f5eefbeab50b23606d799" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40488,7 +40227,7 @@ "equalIndicator/v2": "01e6b1622c1ac541", "equalIndicator/v1": "e1278b582ec78526441db2e368254195614e887186a2c3c98383915ca5fa35fe" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40545,7 +40284,7 @@ "equalIndicator/v2": "4265bd53264b2b0c", "equalIndicator/v1": "e6cc6503ffca3f6dd7dce4f92789ac1a3e122d9a7ab44c799f8b7aebf6f514e1" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40602,7 +40341,7 @@ "equalIndicator/v2": "b924270e17c10f07", "equalIndicator/v1": "f2c0dc13e7e15ff2d40ef3f389848e6f1605257cc3a55e118392df3632ecdabf" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40659,7 +40398,7 @@ "equalIndicator/v2": "54e2faa7120fdfad", "equalIndicator/v1": "faa3722f6b90434e54f632922c9803f6e391e29984d1a9464086c270b3a0ed41" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40716,7 +40455,7 @@ "equalIndicator/v2": "0d648721bc039127", "equalIndicator/v1": "fe6fc561100aa403c25a9624309cc14e7f1cc862740c652d71d7cc91df967beb" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -40773,6 +40512,234 @@ "equalIndicator/v2": "bfd52ccc33bdf9f8", "equalIndicator/v1": "295728d99e3a5dcb0efd0d158f8b5f684869670bb2bddd29968e10e6e47ffe22" }, + "baselineState": "unchanged", + "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": 2039, + "charLength": 17, + "snippet": { + "text": "CleanupController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 40, + "startColumn": 1, + "charOffset": 2010, + "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": "6ab5b12e2de87683", + "equalIndicator/v1": "a859ed8e532942d2f92cd885d0faf3d59be83b977e550aaa13f9dc5cea9e295c" + }, + "baselineState": "unchanged", + "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": 2361, + "charLength": 20, + "snippet": { + "text": "CollectionController" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 2332, + "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": "1b090210f8b186e5", + "equalIndicator/v1": "b08c053d814d7be0235851af5ffdbb7dd9476e1e29ed4190213f7e284ff8b3e6" + }, + "baselineState": "unchanged", + "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/Version/Attributes/Response/Property/VersionCollection.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 13, + "charOffset": 702, + "charLength": 17, + "snippet": { + "text": "VersionCollection" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 673, + "charLength": 99, + "snippet": { + "text": " * @internal\n */\nfinal class VersionCollection extends Property\n{\n public function __construct()" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "1ce363398dcdcc34", + "equalIndicator/v1": "521ef8ee86099e2b8852f1ec3be1d35d3d84c999162f9b15ed71ec2068949826" + }, + "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/Version/Attributes/Response/Content/OneOfVersionJson.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 26, + "startColumn": 13, + "charOffset": 699, + "charLength": 16, + "snippet": { + "text": "OneOfVersionJson" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 24, + "startColumn": 1, + "charOffset": 670, + "charLength": 101, + "snippet": { + "text": " * @internal\n */\nfinal class OneOfVersionJson extends JsonContent\n{\n public function __construct()" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v2": "81f512c456998868", + "equalIndicator/v1": "6d516097629e8876b8d8315132728391f14eae9088e6b759e7dc1b148829f5bf" + }, "baselineState": "new", "properties": { "ideaSeverity": "WEAK WARNING", @@ -40784,10 +40751,10 @@ } ], "automationDetails": { - "id": "project/qodana/2024-05-17", - "guid": "cddb935a-e8fa-4119-872b-9d693e2a2a6c", + "id": "project/qodana/2024-05-21", + "guid": "bbc33cb5-45cc-4219-b08f-0a9355b7dc8e", "properties": { - "jobUrl": "https://github.com/pimcore/studio-backend-bundle/actions/runs/9125922627" + "jobUrl": "https://github.com/pimcore/studio-backend-bundle/actions/runs/9171041440" } }, "newlineSequences": [ @@ -40803,8 +40770,8 @@ "configProfile": "path", "deviceId": "200820300000000-7c33-767c-9695-477d79c87e1c", "qodanaNewResultSummary": { - "moderate": 36, - "total": 36 + "moderate": 2, + "total": 2 } } }