eslint-plugin-sonarjs
Version:
SonarJS rules for ESLint
716 lines (715 loc) • 27.6 kB
JavaScript
"use strict";
/*
* SonarQube JavaScript Plugin
* Copyright (C) 2011-2024 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.meta = exports.configs = exports.rules = void 0;
/**
* This is the entry point of the ESLint Plugin.
* Said differently, this is the public API of the ESLint Plugin.
*/
const fs_1 = __importDefault(require("fs"));
const helpers_1 = require("./helpers");
const S2376_1 = require("./S2376");
const S1077_1 = require("./S1077");
const S6827_1 = require("./S6827");
const S6844_1 = require("./S6844");
const S5850_1 = require("./S5850");
const S3782_1 = require("./S3782");
const S2234_1 = require("./S2234");
const S3513_1 = require("./S3513");
const S3796_1 = require("./S3796");
const S1528_1 = require("./S1528");
const S3524_1 = require("./S3524");
const S2699_1 = require("./S2699");
const S6333_1 = require("./S6333");
const S6329_1 = require("./S6329");
const S6275_1 = require("./S6275");
const S6332_1 = require("./S6332");
const S6302_1 = require("./S6302");
const S6304_1 = require("./S6304");
const S6317_1 = require("./S6317");
const S6270_1 = require("./S6270");
const S6308_1 = require("./S6308");
const S6303_1 = require("./S6303");
const S6321_1 = require("./S6321");
const S6265_1 = require("./S6265");
const S6249_1 = require("./S6249");
const S6281_1 = require("./S6281");
const S6245_1 = require("./S6245");
const S6252_1 = require("./S6252");
const S6319_1 = require("./S6319");
const S6327_1 = require("./S6327");
const S6330_1 = require("./S6330");
const S1529_1 = require("./S1529");
const S4798_1 = require("./S4798");
const S1105_1 = require("./S1105");
const S1472_1 = require("./S1472");
const S5742_1 = require("./S5742");
const S6092_1 = require("./S6092");
const S101_1 = require("./S101");
const S3525_1 = require("./S3525");
const S1523_1 = require("./S1523");
const S3776_1 = require("./S3776");
const S3616_1 = require("./S3616");
const S124_1 = require("./S124");
const S6353_1 = require("./S6353");
const S3973_1 = require("./S3973");
const S5757_1 = require("./S5757");
const S1848_1 = require("./S1848");
const S5693_1 = require("./S5693");
const S5728_1 = require("./S5728");
const S3330_1 = require("./S3330");
const S2255_1 = require("./S2255");
const S5122_1 = require("./S5122");
const S4502_1 = require("./S4502");
const S1541_1 = require("./S1541");
const S3798_1 = require("./S3798");
const S1788_1 = require("./S1788");
const S1874_1 = require("./S1874");
const S3514_1 = require("./S3514");
const S3403_1 = require("./S3403");
const S5247_1 = require("./S5247");
const S5725_1 = require("./S5725");
const S6080_1 = require("./S6080");
const S5743_1 = require("./S5743");
const S5869_1 = require("./S5869");
const S126_1 = require("./S126");
const S5842_1 = require("./S5842");
const S4787_1 = require("./S4787");
const S5542_1 = require("./S5542");
const S3723_1 = require("./S3723");
const S6328_1 = require("./S6328");
const S1067_1 = require("./S1067");
const S1451_1 = require("./S1451");
const S3317_1 = require("./S3317");
const S2612_1 = require("./S2612");
const S2598_1 = require("./S2598");
const S1134_1 = require("./S1134");
const S1535_1 = require("./S1535");
const S2251_1 = require("./S2251");
const S5732_1 = require("./S5732");
const S1515_1 = require("./S1515");
const S100_1 = require("./S100");
const S3800_1 = require("./S3800");
const S1527_1 = require("./S1527");
const S3531_1 = require("./S3531");
const S4790_1 = require("./S4790");
const S5691_1 = require("./S5691");
const S6754_1 = require("./S6754");
const S5254_1 = require("./S5254");
const S3785_1 = require("./S3785");
const S3686_1 = require("./S3686");
const S2692_1 = require("./S2692");
const S2092_1 = require("./S2092");
const S5659_1 = require("./S5659");
const S3415_1 = require("./S3415");
const S6477_1 = require("./S6477");
const S6481_1 = require("./S6481");
const S6749_1 = require("./S6749");
const S6853_1 = require("./S6853");
const S1439_1 = require("./S1439");
const S5148_1 = require("./S5148");
const S1479_1 = require("./S1479");
const S4622_1 = require("./S4622");
const S4084_1 = require("./S4084");
const S1994_1 = require("./S1994");
const S1082_1 = require("./S1082");
const S134_1 = require("./S134");
const S2430_1 = require("./S2430");
const S2999_1 = require("./S2999");
const S4275_1 = require("./S4275");
const S3923_1 = require("./S3923");
const S2871_1 = require("./S2871");
const S6268_1 = require("./S6268");
const S2870_1 = require("./S2870");
const S6479_1 = require("./S6479");
const S3579_1 = require("./S3579");
const S6551_1 = require("./S6551");
const S2424_1 = require("./S2424");
const S1219_1 = require("./S1219");
const S5332_1 = require("./S5332");
const S6079_1 = require("./S6079");
const S1066_1 = require("./S1066");
const S3981_1 = require("./S3981");
const S125_1 = require("./S125");
const S1854_1 = require("./S1854");
const S3001_1 = require("./S3001");
const S6957_1 = require("./S6957");
const S4621_1 = require("./S4621");
const S1192_1 = require("./S1192");
const S1871_1 = require("./S1871");
const S4143_1 = require("./S4143");
const S6019_1 = require("./S6019");
const S6323_1 = require("./S6323");
const S4158_1 = require("./S4158");
const S1186_1 = require("./S1186");
const S6331_1 = require("./S6331");
const S4023_1 = require("./S4023");
const S2187_1 = require("./S2187");
const S888_1 = require("./S888");
const S6426_1 = require("./S6426");
const S6643_1 = require("./S6643");
const S930_1 = require("./S930");
const S1116_1 = require("./S1116");
const S6788_1 = require("./S6788");
const S4139_1 = require("./S4139");
const S1530_1 = require("./S1530");
const S2990_1 = require("./S2990");
const S2137_1 = require("./S2137");
const S2589_1 = require("./S2589");
const S2068_1 = require("./S2068");
const S1313_1 = require("./S1313");
const S6442_1 = require("./S6442");
const S1862_1 = require("./S1862");
const S1764_1 = require("./S1764");
const S4144_1 = require("./S4144");
const S2486_1 = require("./S2486");
const S2201_1 = require("./S2201");
const S4328_1 = require("./S4328");
const S2703_1 = require("./S2703");
const S4619_1 = require("./S4619");
const S2970_1 = require("./S2970");
const S3801_1 = require("./S3801");
const S3402_1 = require("./S3402");
const S2189_1 = require("./S2189");
const S5604_1 = require("./S5604");
const S4123_1 = require("./S4123");
const S3516_1 = require("./S3516");
const S1940_1 = require("./S1940");
const S5759_1 = require("./S5759");
const S1119_1 = require("./S1119");
const S6958_1 = require("./S6958");
const S6660_1 = require("./S6660");
const S5734_1 = require("./S5734");
const S4043_1 = require("./S4043");
const S6544_1 = require("./S6544");
const S5730_1 = require("./S5730");
const S1121_1 = require("./S1121");
const S3358_1 = require("./S3358");
const S2004_1 = require("./S2004");
const S881_1 = require("./S881");
const S1821_1 = require("./S1821");
const S4624_1 = require("./S4624");
const S1751_1 = require("./S1751");
const S4036_1 = require("./S4036");
const S1226_1 = require("./S1226");
const S1533_1 = require("./S1533");
const S2814_1 = require("./S2814");
const S4165_1 = require("./S4165");
const S1125_1 = require("./S1125");
const S3626_1 = require("./S3626");
const S4782_1 = require("./S4782");
const S1110_1 = require("./S1110");
const S6571_1 = require("./S6571");
const S3827_1 = require("./S3827");
const S5736_1 = require("./S5736");
const S3533_1 = require("./S3533");
const S4324_1 = require("./S4324");
const S5863_1 = require("./S5863");
const S3972_1 = require("./S3972");
const S6679_1 = require("./S6679");
const S1301_1 = require("./S1301");
const S105_1 = require("./S105");
const S5257_1 = require("./S5257");
const S4327_1 = require("./S4327");
const S3696_1 = require("./S3696");
const S4822_1 = require("./S4822");
const S4623_1 = require("./S4623");
const S2138_1 = require("./S2138");
const S2681_1 = require("./S2681");
const S6486_1 = require("./S6486");
const S6747_1 = require("./S6747");
const S1763_1 = require("./S1763");
const S6791_1 = require("./S6791");
const S5042_1 = require("./S5042");
const S6478_1 = require("./S6478");
const S3984_1 = require("./S3984");
const S4030_1 = require("./S4030");
const S905_1 = require("./S905");
const S1172_1 = require("./S1172");
const S1068_1 = require("./S1068");
const S3699_1 = require("./S3699");
const S6676_1 = require("./S6676");
const S2737_1 = require("./S2737");
const S6647_1 = require("./S6647");
const S2123_1 = require("./S2123");
const S4335_1 = require("./S4335");
const S6443_1 = require("./S6443");
const S3504_1 = require("./S3504");
const S1526_1 = require("./S1526");
const S6299_1 = require("./S6299");
const S5547_1 = require("./S5547");
const S4426_1 = require("./S4426");
const S2208_1 = require("./S2208");
const S2757_1 = require("./S2757");
const S3760_1 = require("./S3760");
const S2259_1 = require("./S2259");
const S5264_1 = require("./S5264");
const S3498_1 = require("./S3498");
const S3757_1 = require("./S3757");
const S4721_1 = require("./S4721");
const S2819_1 = require("./S2819");
const S4524_1 = require("./S4524");
const S6572_1 = require("./S6572");
const S4138_1 = require("./S4138");
const S6598_1 = require("./S6598");
const S1488_1 = require("./S1488");
const S4156_1 = require("./S4156");
const S6606_1 = require("./S6606");
const S2428_1 = require("./S2428");
const S6661_1 = require("./S6661");
const S4634_1 = require("./S4634");
const S1126_1 = require("./S1126");
const S6666_1 = require("./S6666");
const S6557_1 = require("./S6557");
const S3512_1 = require("./S3512");
const S4322_1 = require("./S4322");
const S1264_1 = require("./S1264");
const S4823_1 = require("./S4823");
const S4507_1 = require("./S4507");
const S2245_1 = require("./S2245");
const S1444_1 = require("./S1444");
const S5443_1 = require("./S5443");
const S6959_1 = require("./S6959");
const S6564_1 = require("./S6564");
const S5843_1 = require("./S5843");
const S4784_1 = require("./S4784");
const S6440_1 = require("./S6440");
const S1438_1 = require("./S1438");
const S5876_1 = require("./S5876");
const S3499_1 = require("./S3499");
const S6397_1 = require("./S6397");
const S6035_1 = require("./S6035");
const S5852_1 = require("./S5852");
const S4818_1 = require("./S4818");
const S2392_1 = require("./S2392");
const S6439_1 = require("./S6439");
const S104_1 = require("./S104");
const S138_1 = require("./S138");
const S107_1 = require("./S107");
const S6324_1 = require("./S6324");
const S1534_1 = require("./S1534");
const S2639_1 = require("./S2639");
const S128_1 = require("./S128");
const S5856_1 = require("./S5856");
const S109_1 = require("./S109");
const S5868_1 = require("./S5868");
const S6326_1 = require("./S6326");
const S6441_1 = require("./S6441");
const S1481_1 = require("./S1481");
const S6582_1 = require("./S6582");
const S6759_1 = require("./S6759");
const S6594_1 = require("./S6594");
const S2077_1 = require("./S2077");
const S5973_1 = require("./S5973");
const S4829_1 = require("./S4829");
const S6351_1 = require("./S6351");
const S5739_1 = require("./S5739");
const S3003_1 = require("./S3003");
const S3854_1 = require("./S3854");
const S131_1 = require("./S131");
const S5256_1 = require("./S5256");
const S5260_1 = require("./S5260");
const S5958_1 = require("./S5958");
const S1135_1 = require("./S1135");
const S135_1 = require("./S135");
const S5867_1 = require("./S5867");
const S6535_1 = require("./S6535");
const S1128_1 = require("./S1128");
const S5860_1 = require("./S5860");
const S4830_1 = require("./S4830");
const S5527_1 = require("./S5527");
const S3500_1 = require("./S3500");
const S2310_1 = require("./S2310");
const S2688_1 = require("./S2688");
const S4323_1 = require("./S4323");
const S1154_1 = require("./S1154");
const S3758_1 = require("./S3758");
const S117_1 = require("./S117");
const S3735_1 = require("./S3735");
const S4423_1 = require("./S4423");
const S2817_1 = require("./S2817");
const S5689_1 = require("./S5689");
const S2755_1 = require("./S2755");
const S4817_1 = require("./S4817");
exports.rules = {
'accessor-pairs': S2376_1.rule,
'alt-text': S1077_1.rule,
'anchor-has-content': S6827_1.rule,
'anchor-is-valid': S6844_1.rule,
'anchor-precedence': S5850_1.rule,
'argument-type': S3782_1.rule,
'arguments-order': S2234_1.rule,
'arguments-usage': S3513_1.rule,
'array-callback-without-return': S3796_1.rule,
'array-constructor': S1528_1.rule,
'arrow-function-convention': S3524_1.rule,
'assertions-in-tests': S2699_1.rule,
'aws-apigateway-public-api': S6333_1.rule,
'aws-ec2-rds-dms-public': S6329_1.rule,
'aws-ec2-unencrypted-ebs-volume': S6275_1.rule,
'aws-efs-unencrypted': S6332_1.rule,
'aws-iam-all-privileges': S6302_1.rule,
'aws-iam-all-resources-accessible': S6304_1.rule,
'aws-iam-privilege-escalation': S6317_1.rule,
'aws-iam-public-access': S6270_1.rule,
'aws-opensearchservice-domain': S6308_1.rule,
'aws-rds-unencrypted-databases': S6303_1.rule,
'aws-restricted-ip-admin-access': S6321_1.rule,
'aws-s3-bucket-granted-access': S6265_1.rule,
'aws-s3-bucket-insecure-http': S6249_1.rule,
'aws-s3-bucket-public-access': S6281_1.rule,
'aws-s3-bucket-server-encryption': S6245_1.rule,
'aws-s3-bucket-versioning': S6252_1.rule,
'aws-sagemaker-unencrypted-notebook': S6319_1.rule,
'aws-sns-unencrypted-topics': S6327_1.rule,
'aws-sqs-unencrypted-queue': S6330_1.rule,
'bitwise-operators': S1529_1.rule,
'bool-param-default': S4798_1.rule,
'brace-style': S1105_1.rule,
'call-argument-line': S1472_1.rule,
'certificate-transparency': S5742_1.rule,
'chai-determinate-assertion': S6092_1.rule,
'class-name': S101_1.rule,
'class-prototype': S3525_1.rule,
'code-eval': S1523_1.rule,
'cognitive-complexity': S3776_1.rule,
'comma-or-logical-or-case': S3616_1.rule,
'comment-regex': S124_1.rule,
'concise-regex': S6353_1.rule,
'conditional-indentation': S3973_1.rule,
'confidential-information-logging': S5757_1.rule,
'constructor-for-side-effects': S1848_1.rule,
'content-length': S5693_1.rule,
'content-security-policy': S5728_1.rule,
'cookie-no-httponly': S3330_1.rule,
cookies: S2255_1.rule,
cors: S5122_1.rule,
csrf: S4502_1.rule,
'cyclomatic-complexity': S1541_1.rule,
'declarations-in-global-scope': S3798_1.rule,
'default-param-last': S1788_1.rule,
deprecation: S1874_1.rule,
'destructuring-assignment-syntax': S3514_1.rule,
'different-types-comparison': S3403_1.rule,
'disabled-auto-escaping': S5247_1.rule,
'disabled-resource-integrity': S5725_1.rule,
'disabled-timeout': S6080_1.rule,
'dns-prefetching': S5743_1.rule,
'duplicates-in-character-class': S5869_1.rule,
'elseif-without-else': S126_1.rule,
'empty-string-repetition': S5842_1.rule,
encryption: S4787_1.rule,
'encryption-secure-mode': S5542_1.rule,
'enforce-trailing-comma': S3723_1.rule,
'existing-groups': S6328_1.rule,
'expression-complexity': S1067_1.rule,
'file-header': S1451_1.rule,
'file-name-differ-from-class': S3317_1.rule,
'file-permissions': S2612_1.rule,
'file-uploads': S2598_1.rule,
'fixme-tag': S1134_1.rule,
'for-in': S1535_1.rule,
'for-loop-increment-sign': S2251_1.rule,
'frame-ancestors': S5732_1.rule,
'function-inside-loop': S1515_1.rule,
'function-name': S100_1.rule,
'function-return-type': S3800_1.rule,
'future-reserved-words': S1527_1.rule,
'generator-without-yield': S3531_1.rule,
hashing: S4790_1.rule,
'hidden-files': S5691_1.rule,
'hook-use-state': S6754_1.rule,
'html-has-lang': S5254_1.rule,
'in-operator-type-error': S3785_1.rule,
'inconsistent-function-call': S3686_1.rule,
'index-of-compare-to-positive-number': S2692_1.rule,
'insecure-cookie': S2092_1.rule,
'insecure-jwt-token': S5659_1.rule,
'inverted-assertion-arguments': S3415_1.rule,
'jsx-key': S6477_1.rule,
'jsx-no-constructed-context-values': S6481_1.rule,
'jsx-no-useless-fragment': S6749_1.rule,
'label-has-associated-control': S6853_1.rule,
'label-position': S1439_1.rule,
'link-with-target-blank': S5148_1.rule,
'max-switch-cases': S1479_1.rule,
'max-union-size': S4622_1.rule,
'media-has-caption': S4084_1.rule,
'misplaced-loop-counter': S1994_1.rule,
'mouse-events-a11y': S1082_1.rule,
'nested-control-flow': S134_1.rule,
'new-cap': S2430_1.rule,
'new-operator-misuse': S2999_1.rule,
'no-accessor-field-mismatch': S4275_1.rule,
'no-all-duplicated-branches': S3923_1.rule,
'no-alphabetical-sort': S2871_1.rule,
'no-angular-bypass-sanitization': S6268_1.rule,
'no-array-delete': S2870_1.rule,
'no-array-index-key': S6479_1.rule,
'no-associative-arrays': S3579_1.rule,
'no-base-to-string': S6551_1.rule,
'no-built-in-override': S2424_1.rule,
'no-case-label-in-switch': S1219_1.rule,
'no-clear-text-protocols': S5332_1.rule,
'no-code-after-done': S6079_1.rule,
'no-collapsible-if': S1066_1.rule,
'no-collection-size-mischeck': S3981_1.rule,
'no-commented-code': S125_1.rule,
'no-dead-store': S1854_1.rule,
'no-delete-var': S3001_1.rule,
'no-deprecated-react': S6957_1.rule,
'no-duplicate-in-composite': S4621_1.rule,
'no-duplicate-string': S1192_1.rule,
'no-duplicated-branches': S1871_1.rule,
'no-element-overwrite': S4143_1.rule,
'no-empty-after-reluctant': S6019_1.rule,
'no-empty-alternatives': S6323_1.rule,
'no-empty-collection': S4158_1.rule,
'no-empty-function': S1186_1.rule,
'no-empty-group': S6331_1.rule,
'no-empty-interface': S4023_1.rule,
'no-empty-test-file': S2187_1.rule,
'no-equals-in-for-termination': S888_1.rule,
'no-exclusive-tests': S6426_1.rule,
'no-extend-native': S6643_1.rule,
'no-extra-arguments': S930_1.rule,
'no-extra-semi': S1116_1.rule,
'no-find-dom-node': S6788_1.rule,
'no-for-in-iterable': S4139_1.rule,
'no-function-declaration-in-block': S1530_1.rule,
'no-global-this': S2990_1.rule,
'no-globals-shadowing': S2137_1.rule,
'no-gratuitous-expressions': S2589_1.rule,
'no-hardcoded-credentials': S2068_1.rule,
'no-hardcoded-ip': S1313_1.rule,
'no-hook-setter-in-body': S6442_1.rule,
'no-identical-conditions': S1862_1.rule,
'no-identical-expressions': S1764_1.rule,
'no-identical-functions': S4144_1.rule,
'no-ignored-exceptions': S2486_1.rule,
'no-ignored-return': S2201_1.rule,
'no-implicit-dependencies': S4328_1.rule,
'no-implicit-global': S2703_1.rule,
'no-in-misuse': S4619_1.rule,
'no-incomplete-assertions': S2970_1.rule,
'no-inconsistent-returns': S3801_1.rule,
'no-incorrect-string-concat': S3402_1.rule,
'no-infinite-loop': S2189_1.rule,
'no-intrusive-permissions': S5604_1.rule,
'no-invalid-await': S4123_1.rule,
'no-invariant-returns': S3516_1.rule,
'no-inverted-boolean-check': S1940_1.rule,
'no-ip-forward': S5759_1.rule,
'no-labels': S1119_1.rule,
'no-literal-call': S6958_1.rule,
'no-lonely-if': S6660_1.rule,
'no-mime-sniff': S5734_1.rule,
'no-misleading-array-reverse': S4043_1.rule,
'no-misused-promises': S6544_1.rule,
'no-mixed-content': S5730_1.rule,
'no-nested-assignment': S1121_1.rule,
'no-nested-conditional': S3358_1.rule,
'no-nested-functions': S2004_1.rule,
'no-nested-incdec': S881_1.rule,
'no-nested-switch': S1821_1.rule,
'no-nested-template-literals': S4624_1.rule,
'no-one-iteration-loop': S1751_1.rule,
'no-os-command-from-path': S4036_1.rule,
'no-parameter-reassignment': S1226_1.rule,
'no-primitive-wrappers': S1533_1.rule,
'no-redeclare': S2814_1.rule,
'no-redundant-assignments': S4165_1.rule,
'no-redundant-boolean': S1125_1.rule,
'no-redundant-jump': S3626_1.rule,
'no-redundant-optional': S4782_1.rule,
'no-redundant-parentheses': S1110_1.rule,
'no-redundant-type-constituents': S6571_1.rule,
'no-reference-error': S3827_1.rule,
'no-referrer-policy': S5736_1.rule,
'no-require-or-define': S3533_1.rule,
'no-return-type-any': S4324_1.rule,
'no-same-argument-assert': S5863_1.rule,
'no-same-line-conditional': S3972_1.rule,
'no-self-compare': S6679_1.rule,
'no-small-switch': S1301_1.rule,
'no-tab': S105_1.rule,
'no-table-as-layout': S5257_1.rule,
'no-this-alias': S4327_1.rule,
'no-throw-literal': S3696_1.rule,
'no-try-promise': S4822_1.rule,
'no-undefined-argument': S4623_1.rule,
'no-undefined-assignment': S2138_1.rule,
'no-unenclosed-multiline-block': S2681_1.rule,
'no-uniq-key': S6486_1.rule,
'no-unknown-property': S6747_1.rule,
'no-unreachable': S1763_1.rule,
'no-unsafe': S6791_1.rule,
'no-unsafe-unzip': S5042_1.rule,
'no-unstable-nested-components': S6478_1.rule,
'no-unthrown-error': S3984_1.rule,
'no-unused-collection': S4030_1.rule,
'no-unused-expressions': S905_1.rule,
'no-unused-function-argument': S1172_1.rule,
'no-unused-private-class-members': S1068_1.rule,
'no-use-of-empty-return-value': S3699_1.rule,
'no-useless-call': S6676_1.rule,
'no-useless-catch': S2737_1.rule,
'no-useless-constructor': S6647_1.rule,
'no-useless-increment': S2123_1.rule,
'no-useless-intersection': S4335_1.rule,
'no-useless-react-setstate': S6443_1.rule,
'no-var': S3504_1.rule,
'no-variable-usage-before-declaration': S1526_1.rule,
'no-vue-bypass-sanitization': S6299_1.rule,
'no-weak-cipher': S5547_1.rule,
'no-weak-keys': S4426_1.rule,
'no-wildcard-import': S2208_1.rule,
'non-existent-operator': S2757_1.rule,
'non-number-in-arithmetic-expression': S3760_1.rule,
'null-dereference': S2259_1.rule,
'object-alt-content': S5264_1.rule,
'object-shorthand': S3498_1.rule,
'operation-returning-nan': S3757_1.rule,
'os-command': S4721_1.rule,
'post-message': S2819_1.rule,
'prefer-default-last': S4524_1.rule,
'prefer-enum-initializers': S6572_1.rule,
'prefer-for-of': S4138_1.rule,
'prefer-function-type': S6598_1.rule,
'prefer-immediate-return': S1488_1.rule,
'prefer-namespace-keyword': S4156_1.rule,
'prefer-nullish-coalescing': S6606_1.rule,
'prefer-object-literal': S2428_1.rule,
'prefer-object-spread': S6661_1.rule,
'prefer-promise-shorthand': S4634_1.rule,
'prefer-single-boolean-return': S1126_1.rule,
'prefer-spread': S6666_1.rule,
'prefer-string-starts-ends-with': S6557_1.rule,
'prefer-template': S3512_1.rule,
'prefer-type-guard': S4322_1.rule,
'prefer-while': S1264_1.rule,
'process-argv': S4823_1.rule,
'production-debug': S4507_1.rule,
'pseudo-random': S2245_1.rule,
'public-static-readonly': S1444_1.rule,
'publicly-writable-directories': S5443_1.rule,
'reduce-initial-value': S6959_1.rule,
'redundant-type-aliases': S6564_1.rule,
'regex-complexity': S5843_1.rule,
'regular-expr': S4784_1.rule,
'pluginRules-of-hooks': S6440_1.rule,
semi: S1438_1.rule,
'session-regeneration': S5876_1.rule,
'shorthand-property-grouping': S3499_1.rule,
'single-char-in-character-classes': S6397_1.rule,
'single-character-alternation': S6035_1.rule,
'slow-regex': S5852_1.rule,
sockets: S4818_1.rule,
'sonar-block-scoped-var': S2392_1.rule,
'sonar-jsx-no-leaked-render': S6439_1.rule,
'sonar-max-lines': S104_1.rule,
'sonar-max-lines-per-function': S138_1.rule,
'sonar-max-params': S107_1.rule,
'sonar-no-control-regex': S6324_1.rule,
'sonar-no-dupe-keys': S1534_1.rule,
'sonar-no-empty-character-class': S2639_1.rule,
'sonar-no-fallthrough': S128_1.rule,
'sonar-no-invalid-regexp': S5856_1.rule,
'sonar-no-magic-numbers': S109_1.rule,
'sonar-no-misleading-character-class': S5868_1.rule,
'sonar-no-regex-spaces': S6326_1.rule,
'sonar-no-unused-class-component-methods': S6441_1.rule,
'sonar-no-unused-vars': S1481_1.rule,
'sonar-prefer-optional-chain': S6582_1.rule,
'sonar-prefer-read-only-props': S6759_1.rule,
'sonar-prefer-regexp-exec': S6594_1.rule,
'sql-queries': S2077_1.rule,
'stable-tests': S5973_1.rule,
'standard-input': S4829_1.rule,
'stateful-regex': S6351_1.rule,
'strict-transport-security': S5739_1.rule,
'strings-comparison': S3003_1.rule,
'super-invocation': S3854_1.rule,
'switch-without-default': S131_1.rule,
'table-header': S5256_1.rule,
'table-header-reference': S5260_1.rule,
'test-check-exception': S5958_1.rule,
'todo-tag': S1135_1.rule,
'too-many-break-or-continue-in-loop': S135_1.rule,
'unicode-aware-regex': S5867_1.rule,
'unnecessary-character-escapes': S6535_1.rule,
'unused-import': S1128_1.rule,
'unused-named-groups': S5860_1.rule,
'unverified-certificate': S4830_1.rule,
'unverified-hostname': S5527_1.rule,
'updated-const-var': S3500_1.rule,
'updated-loop-counter': S2310_1.rule,
'use-isnan': S2688_1.rule,
'use-type-alias': S4323_1.rule,
'useless-string-operation': S1154_1.rule,
'values-not-convertible-to-numbers': S3758_1.rule,
'variable-name': S117_1.rule,
'void-use': S3735_1.rule,
'weak-ssl': S4423_1.rule,
'web-sql-database': S2817_1.rule,
'x-powered-by': S5689_1.rule,
'xml-parser-xxe': S2755_1.rule,
xpath: S4817_1.rule,
};
const recommendedLegacyConfig = { plugins: ['sonarjs'], rules: {} };
const recommendedConfig = {
name: 'sonarjs/recommended',
plugins: {
sonarjs: {
rules: exports.rules,
},
},
rules: {},
settings: {
react: {
version: '999.999.999',
},
},
};
for (const [key, rule] of Object.entries(exports.rules)) {
const recommended = rule.meta?.docs?.recommended || false;
recommendedConfig.rules[`sonarjs/${key}`] = recommended ? 'error' : 'off';
}
recommendedLegacyConfig.rules = recommendedConfig.rules;
recommendedLegacyConfig.settings = recommendedConfig.settings;
exports.configs = {
recommended: recommendedConfig,
'recommended-legacy': recommendedLegacyConfig,
};
/*
package.json may be in current or parent dir depending on running with ts-jest or built js files
we need to find it in both cases
*/
const packageJsonPath = (0, helpers_1.findParent)(__dirname, 'package.json');
const { name, version } = (packageJsonPath ? JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf-8')) : {});
exports.meta = {
name,
version,
};
exports.default = { rules: exports.rules, configs: exports.configs, meta: exports.meta };