UNPKG

eslint-plugin-sonarjs

Version:
716 lines (715 loc) 27.6 kB
"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 };