eslint-plugin-sonarjs 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +269 -268
- package/cjs/S100/rule.js +7 -5
- package/cjs/S101/rule.js +2 -2
- package/cjs/S104/rule.js +2 -2
- package/cjs/S105/rule.js +2 -2
- package/cjs/S1066/rule.js +5 -4
- package/cjs/S1067/rule.js +8 -6
- package/cjs/S1110/rule.js +7 -5
- package/cjs/S1119/rule.js +85 -7
- package/cjs/S1121/rule.js +4 -3
- package/cjs/S1125/rule.js +9 -8
- package/cjs/S1126/rule.js +2 -2
- package/cjs/S1128/rule.js +8 -5
- package/cjs/S1134/rule.js +2 -2
- package/cjs/S1135/rule.js +2 -2
- package/cjs/S1154/rule.js +6 -4
- package/cjs/S117/rule.js +6 -5
- package/cjs/S1172/rule.js +2 -2
- package/cjs/S1192/rule.js +5 -4
- package/cjs/S1219/rule.js +4 -3
- package/cjs/S1226/rule.js +6 -4
- package/cjs/S124/rule.js +2 -2
- package/cjs/S125/rule.js +9 -7
- package/cjs/S126/rule.js +2 -2
- package/cjs/S1264/rule.js +2 -2
- package/cjs/S128/rule.js +4 -3
- package/cjs/S1291/rule.js +2 -2
- package/cjs/S1301/rule.js +2 -2
- package/cjs/S1313/rule.js +2 -2
- package/cjs/S134/rule.js +7 -5
- package/cjs/S135/rule.js +5 -4
- package/cjs/S138/rule.js +9 -6
- package/cjs/S1439/rule.js +2 -2
- package/cjs/S1444/rule.js +2 -2
- package/cjs/S1451/rule.js +2 -2
- package/cjs/S1472/rule.js +2 -2
- package/cjs/S1479/rule.js +2 -2
- package/cjs/S1481/rule.js +2 -2
- package/cjs/S1488/generated-meta.js +1 -1
- package/cjs/S1488/rule.js +11 -7
- package/cjs/S1515/rule.js +10 -8
- package/cjs/{helpers/aws/index.js → S1523/generated-meta.js} +34 -18
- package/cjs/S1523/index.js +21 -0
- package/cjs/S1523/meta.js +21 -0
- package/cjs/S1523/rule.js +143 -0
- package/cjs/S1526/rule.js +5 -4
- package/cjs/S1527/rule.js +2 -2
- package/cjs/S1528/rule.js +2 -2
- package/cjs/S1529/generated-meta.js +1 -1
- package/cjs/S1529/rule.js +4 -3
- package/cjs/S1530/rule.js +5 -3
- package/cjs/S1533/rule.js +2 -2
- package/cjs/S1535/rule.js +2 -2
- package/cjs/S1541/rule.js +10 -7
- package/cjs/S1607/rule.js +22 -20
- package/cjs/S1764/rule.js +10 -7
- package/cjs/S1821/rule.js +2 -2
- package/cjs/S1848/rule.js +10 -7
- package/cjs/S1854/rule.js +18 -14
- package/cjs/S1862/rule.js +10 -8
- package/cjs/S1871/rule.js +21 -16
- package/cjs/S1874/rule.js +4 -3
- package/cjs/S1940/rule.js +2 -2
- package/cjs/S1994/rule.js +10 -7
- package/cjs/S2004/rule.js +9 -7
- package/cjs/S2068/rule.js +75 -12
- package/cjs/S2077/generated-meta.js +1 -1
- package/cjs/S2077/rule.js +10 -6
- package/cjs/S2092/rule.js +2 -2
- package/cjs/S2123/rule.js +2 -2
- package/cjs/S2137/rule.js +2 -2
- package/cjs/S2138/rule.js +4 -3
- package/cjs/S2187/rule.js +2 -2
- package/cjs/S2201/rule.js +47 -5
- package/cjs/S2208/rule.js +2 -2
- package/cjs/S2234/rule.js +58 -11
- package/cjs/S2245/rule.js +4 -3
- package/cjs/S2251/rule.js +5 -4
- package/cjs/S2255/rule.js +6 -5
- package/cjs/S2259/rule.js +14 -9
- package/cjs/S2301/rule.js +14 -9
- package/cjs/S2310/rule.js +80 -9
- package/cjs/S2392/rule.js +7 -5
- package/cjs/S2424/rule.js +2 -2
- package/cjs/S2428/rule.js +8 -6
- package/cjs/S2486/rule.js +4 -3
- package/cjs/S2589/rule.js +12 -10
- package/cjs/S2598/rule.js +17 -14
- package/cjs/S2612/generated-meta.js +1 -1
- package/cjs/S2612/rule.js +8 -6
- package/cjs/S2639/rule.js +2 -2
- package/cjs/S2681/rule.js +2 -2
- package/cjs/S2692/rule.js +6 -4
- package/cjs/S2699/generated-meta.js +1 -1
- package/cjs/S2699/rule.js +40 -31
- package/cjs/S2703/rule.js +2 -2
- package/cjs/S2737/rule.js +6 -4
- package/cjs/S2755/rule.js +9 -6
- package/cjs/S2757/rule.js +2 -2
- package/cjs/S2817/rule.js +10 -7
- package/cjs/S2819/rule.js +16 -12
- package/cjs/S2870/rule.js +8 -5
- package/cjs/S2871/rule.js +12 -9
- package/cjs/S2970/rule.js +9 -8
- package/cjs/S2990/rule.js +2 -2
- package/cjs/S2999/rule.js +10 -7
- package/cjs/S3001/rule.js +2 -2
- package/cjs/S3003/rule.js +10 -7
- package/cjs/S3317/rule.js +4 -3
- package/cjs/S3330/rule.js +2 -2
- package/cjs/S3358/rule.js +2 -2
- package/cjs/S3402/rule.js +14 -10
- package/cjs/S3403/rule.js +10 -7
- package/cjs/S3415/rule.js +16 -13
- package/cjs/S3499/rule.js +5 -4
- package/cjs/S3500/rule.js +5 -4
- package/cjs/S3513/rule.js +5 -4
- package/cjs/S3514/rule.js +10 -7
- package/cjs/S3516/rule.js +10 -7
- package/cjs/S3524/rule.js +2 -2
- package/cjs/S3525/rule.js +6 -4
- package/cjs/S3531/rule.js +5 -3
- package/cjs/S3533/rule.js +8 -7
- package/cjs/S3579/rule.js +6 -4
- package/cjs/S3616/rule.js +6 -4
- package/cjs/S3626/rule.js +4 -3
- package/cjs/S3686/rule.js +7 -5
- package/cjs/S3699/rule.js +4 -3
- package/cjs/S3735/rule.js +8 -5
- package/cjs/S3757/rule.js +8 -6
- package/cjs/S3758/rule.js +9 -7
- package/cjs/S3760/rule.js +24 -21
- package/cjs/S3776/rule.js +26 -22
- package/cjs/S3782/rule.js +6 -4
- package/cjs/S3785/rule.js +9 -6
- package/cjs/S3796/rule.js +12 -8
- package/cjs/S3798/rule.js +4 -3
- package/cjs/S3800/rule.js +22 -11
- package/cjs/S3801/generated-meta.js +1 -1
- package/cjs/S3801/rule.js +15 -11
- package/cjs/S3827/rule.js +9 -6
- package/cjs/S3923/rule.js +9 -6
- package/cjs/S3972/rule.js +5 -4
- package/cjs/S3973/rule.js +7 -5
- package/cjs/S3981/rule.js +4 -3
- package/cjs/S3984/rule.js +4 -3
- package/cjs/S4030/rule.js +10 -7
- package/cjs/S4036/rule.js +7 -5
- package/cjs/S4043/rule.js +12 -8
- package/cjs/S4139/rule.js +7 -5
- package/cjs/S4143/rule.js +12 -9
- package/cjs/S4144/rule.js +12 -9
- package/cjs/S4158/rule.js +11 -8
- package/cjs/S4165/rule.js +14 -12
- package/cjs/S4322/rule.js +8 -5
- package/cjs/S4323/rule.js +4 -3
- package/cjs/S4324/rule.js +7 -5
- package/cjs/S4328/rule.js +2 -2
- package/cjs/S4335/rule.js +6 -4
- package/cjs/S4423/rule.js +4 -3
- package/cjs/S4423/rule.lib.js +8 -7
- package/cjs/S4426/rule.js +11 -10
- package/cjs/S4502/rule.js +16 -13
- package/cjs/S4507/rule.js +8 -6
- package/cjs/S4524/rule.js +2 -2
- package/cjs/S4619/rule.js +6 -4
- package/cjs/S4621/rule.js +5 -4
- package/cjs/S4622/rule.js +5 -3
- package/cjs/S4623/rule.js +8 -5
- package/cjs/S4624/rule.js +6 -4
- package/cjs/S4634/rule.js +4 -3
- package/cjs/S4721/rule.js +7 -5
- package/cjs/S4782/rule.js +7 -5
- package/cjs/S4784/rule.js +5 -4
- package/cjs/S4787/rule.js +9 -7
- package/cjs/S4790/rule.js +7 -5
- package/cjs/S4798/rule.js +2 -2
- package/cjs/S4817/rule.js +10 -8
- package/cjs/S4818/rule.js +4 -3
- package/cjs/S4822/rule.js +13 -9
- package/cjs/S4823/rule.js +4 -3
- package/cjs/S4829/rule.js +4 -3
- package/cjs/S4830/rule.js +11 -8
- package/cjs/S5042/rule.js +9 -7
- package/cjs/S5122/rule.js +40 -36
- package/cjs/S5148/rule.js +9 -8
- package/cjs/S5247/rule.js +22 -18
- package/cjs/S5256/rule.js +5 -4
- package/cjs/S5257/rule.js +4 -3
- package/cjs/S5260/rule.js +4 -3
- package/cjs/S5264/rule.js +4 -3
- package/cjs/S5332/rule.js +4 -3
- package/cjs/S5332/rule.lib.js +19 -17
- package/cjs/S5443/rule.js +2 -2
- package/cjs/S5527/rule.js +18 -14
- package/cjs/S5542/rule.js +6 -4
- package/cjs/S5547/rule.js +6 -4
- package/cjs/S5604/rule.js +15 -14
- package/cjs/S5659/rule.js +15 -12
- package/cjs/S5689/rule.js +11 -8
- package/cjs/S5691/rule.js +7 -5
- package/cjs/S5693/rule.js +14 -12
- package/cjs/S5725/rule.js +9 -6
- package/cjs/S5728/rule.js +7 -4
- package/cjs/S5730/rule.js +9 -6
- package/cjs/S5732/rule.js +8 -5
- package/cjs/S5734/rule.js +7 -4
- package/cjs/S5736/rule.js +8 -5
- package/cjs/S5739/rule.js +11 -8
- package/cjs/S5742/rule.js +7 -4
- package/cjs/S5743/rule.js +8 -6
- package/cjs/S5757/rule.js +13 -10
- package/cjs/S5759/rule.js +10 -7
- package/cjs/S5842/rule.js +2 -2
- package/cjs/S5843/rule.js +22 -19
- package/cjs/S5850/rule.js +4 -3
- package/cjs/S5852/rule.js +2 -2
- package/cjs/S5856/rule.js +10 -7
- package/cjs/S5860/rule.js +30 -26
- package/cjs/S5863/rule.js +15 -11
- package/cjs/S5867/rule.js +8 -7
- package/cjs/S5868/rule.js +7 -5
- package/cjs/S5869/rule.js +6 -5
- package/cjs/S5876/rule.js +12 -8
- package/cjs/S5958/rule.js +12 -9
- package/cjs/S5973/rule.js +10 -7
- package/cjs/S6019/rule.js +4 -3
- package/cjs/S6035/rule.js +2 -2
- package/cjs/S6079/rule.js +9 -6
- package/cjs/S6080/rule.js +13 -10
- package/cjs/S6092/rule.js +9 -7
- package/cjs/S6245/rule.js +14 -9
- package/cjs/S6249/rule.js +7 -5
- package/cjs/S6252/rule.js +12 -8
- package/cjs/S6265/rule.js +27 -20
- package/cjs/S6268/rule.js +5 -4
- package/cjs/S6270/rule.js +12 -9
- package/cjs/S6275/rule.js +2 -2
- package/cjs/S6281/rule.js +22 -17
- package/cjs/S6299/rule.js +2 -2
- package/cjs/S6302/rule.js +6 -5
- package/cjs/S6303/rule.js +12 -10
- package/cjs/S6304/rule.js +6 -5
- package/cjs/S6308/rule.js +7 -5
- package/cjs/S6317/rule.js +5 -4
- package/cjs/S6319/rule.js +2 -2
- package/cjs/S6321/rule.js +25 -23
- package/cjs/S6323/rule.js +4 -3
- package/cjs/S6324/rule.js +2 -2
- package/cjs/S6326/rule.js +2 -2
- package/cjs/S6327/rule.js +2 -2
- package/cjs/S6328/rule.js +4 -3
- package/cjs/S6329/rule.js +7 -5
- package/cjs/S6330/rule.js +2 -2
- package/cjs/S6332/rule.js +2 -2
- package/cjs/S6333/rule.js +8 -6
- package/cjs/S6351/rule.js +22 -19
- package/cjs/S6353/rule.js +2 -2
- package/cjs/S6397/rule.js +2 -2
- package/cjs/S6418/config.js +1 -1
- package/cjs/S6418/rule.js +9 -24
- package/cjs/S6426/rule.js +5 -4
- package/cjs/S6437/rule.js +10 -7
- package/cjs/S6439/rule.js +9 -7
- package/cjs/S6442/rule.js +11 -8
- package/cjs/S6443/rule.js +9 -7
- package/cjs/S6486/rule.js +5 -4
- package/cjs/S6564/rule.js +4 -3
- package/cjs/S6594/rule.js +12 -8
- package/cjs/S6627/rule.js +6 -4
- package/cjs/S6759/rule.js +10 -6
- package/cjs/S6958/rule.js +2 -2
- package/cjs/S6959/rule.js +9 -6
- package/cjs/S7059/generated-meta.js +1 -1
- package/cjs/S7059/rule.js +8 -5
- package/cjs/S7639/generated-meta.js +1 -1
- package/cjs/S7639/rule.js +5 -4
- package/cjs/S7790/generated-meta.js +1 -1
- package/cjs/S7790/rule.js +7 -5
- package/cjs/S8441/generated-meta.js +1 -1
- package/cjs/S8441/rule.js +13 -9
- package/cjs/S881/rule.js +2 -2
- package/cjs/S888/rule.js +4 -3
- package/cjs/S930/rule.js +14 -12
- package/cjs/helpers/ast.js +11 -8
- package/cjs/helpers/aws/s3.js +9 -6
- package/cjs/helpers/chai.js +41 -43
- package/cjs/helpers/configs.js +92 -0
- package/cjs/helpers/cookie-flag-check.js +19 -17
- package/cjs/helpers/{decorators/index.js → entropy.js} +16 -17
- package/cjs/helpers/express.js +127 -128
- package/cjs/helpers/find-up/all-in-parent-dirs.js +0 -16
- package/cjs/helpers/mocha.js +50 -54
- package/cjs/helpers/regex/ast.js +7 -6
- package/cjs/helpers/regex/extract.js +11 -11
- package/cjs/helpers/regex/group.js +2 -2
- package/cjs/helpers/regex/location.js +2 -2
- package/cjs/helpers/regex/range.js +5 -4
- package/cjs/helpers/regex/rule-template.js +4 -3
- package/cjs/helpers/sinon.js +33 -36
- package/cjs/helpers/supertest.js +34 -37
- package/cjs/helpers/vitest.js +29 -32
- package/cjs/plugin-rules.js +452 -450
- package/docs/assertions-in-tests.md +2 -0
- package/docs/bitwise-operators.md +2 -0
- package/docs/code-eval.md +7 -0
- package/docs/file-permissions.md +1 -1
- package/docs/no-async-constructor.md +2 -0
- package/docs/no-inconsistent-returns.md +2 -0
- package/docs/prefer-immediate-return.md +2 -0
- package/docs/sql-queries.md +2 -0
- package/package.json +39 -1
- package/types/S1067/rule.d.ts +1 -1
- package/types/S1110/rule.d.ts +1 -1
- package/types/S1128/rule.d.ts +1 -1
- package/types/S1172/rule.d.ts +1 -1
- package/types/S1226/rule.d.ts +1 -1
- package/types/S134/rule.d.ts +1 -1
- package/types/S1472/rule.d.ts +1 -1
- package/types/S1481/rule.d.ts +1 -1
- package/types/S1488/generated-meta.d.ts +1 -1
- package/types/S1515/rule.d.ts +1 -1
- package/types/S1523/generated-meta.d.ts +17 -0
- package/types/S1523/index.d.ts +1 -0
- package/types/S1523/meta.d.ts +2 -0
- package/types/S1523/rule.d.ts +2 -0
- package/types/S1527/rule.d.ts +1 -1
- package/types/S1529/generated-meta.d.ts +1 -1
- package/types/S1541/rule.d.ts +1 -1
- package/types/S1862/rule.d.ts +1 -1
- package/types/S2077/generated-meta.d.ts +1 -1
- package/types/S2123/rule.d.ts +1 -1
- package/types/S2259/rule.d.ts +1 -1
- package/types/S2428/rule.d.ts +1 -1
- package/types/S2589/rule.d.ts +1 -1
- package/types/S2598/rule.d.ts +1 -1
- package/types/S2699/generated-meta.d.ts +1 -1
- package/types/S2699/rule.d.ts +1 -1
- package/types/S2737/rule.d.ts +1 -1
- package/types/S2757/rule.d.ts +1 -1
- package/types/S2819/rule.d.ts +1 -1
- package/types/S3001/rule.d.ts +1 -1
- package/types/S3317/rule.d.ts +1 -1
- package/types/S3500/rule.d.ts +1 -1
- package/types/S3513/rule.d.ts +1 -1
- package/types/S3686/rule.d.ts +1 -1
- package/types/S3801/generated-meta.d.ts +1 -1
- package/types/S3972/rule.d.ts +1 -1
- package/types/S3973/rule.d.ts +1 -1
- package/types/S4030/rule.d.ts +1 -1
- package/types/S4143/rule.d.ts +1 -1
- package/types/S4158/rule.d.ts +1 -1
- package/types/S4621/rule.d.ts +1 -1
- package/types/S4782/rule.d.ts +1 -1
- package/types/S5693/rule.d.ts +1 -1
- package/types/S5725/rule.d.ts +1 -1
- package/types/S5860/rule.d.ts +1 -1
- package/types/S5868/rule.d.ts +1 -1
- package/types/S5869/rule.d.ts +1 -1
- package/types/S6079/rule.d.ts +1 -1
- package/types/S6326/rule.d.ts +1 -1
- package/types/S6351/rule.d.ts +1 -1
- package/types/S6418/config.d.ts +1 -1
- package/types/S6443/rule.d.ts +1 -1
- package/types/S7059/generated-meta.d.ts +1 -1
- package/types/S7639/generated-meta.d.ts +1 -1
- package/types/S7790/generated-meta.d.ts +1 -1
- package/types/S8441/generated-meta.d.ts +1 -1
- package/types/S930/rule.d.ts +1 -1
- package/types/helpers/ancestor.d.ts +3 -3
- package/types/helpers/ast.d.ts +1 -1
- package/types/helpers/aws/iam.d.ts +2 -2
- package/types/helpers/aws/s3.d.ts +1 -1
- package/types/helpers/chai.d.ts +3 -5
- package/types/helpers/configs.d.ts +39 -1
- package/types/helpers/entropy.d.ts +1 -0
- package/types/helpers/equivalence.d.ts +1 -1
- package/types/helpers/express.d.ts +38 -43
- package/types/helpers/find-up/all-in-parent-dirs.d.ts +1 -1
- package/types/helpers/find-up/closest.d.ts +1 -1
- package/types/helpers/find-up/find-minimatch.d.ts +1 -1
- package/types/helpers/generate-meta.d.ts +1 -1
- package/types/helpers/mocha.d.ts +19 -21
- package/types/helpers/module.d.ts +1 -1
- package/types/helpers/package-jsons/all-in-parent-dirs.d.ts +1 -1
- package/types/helpers/package-jsons/dependencies.d.ts +1 -1
- package/types/helpers/recognizers/CodeRecognizer.d.ts +1 -1
- package/types/helpers/recognizers/JavaScriptFootPrint.d.ts +2 -2
- package/types/helpers/recognizers/LanguageFootprint.d.ts +1 -1
- package/types/helpers/regex/alternation.d.ts +1 -1
- package/types/helpers/regex/ast.d.ts +1 -1
- package/types/helpers/regex/location.d.ts +2 -2
- package/types/helpers/regex/range.d.ts +2 -2
- package/types/helpers/regex/rule-template.d.ts +1 -1
- package/types/helpers/result.d.ts +1 -1
- package/types/helpers/sinon.d.ts +4 -6
- package/types/helpers/sonar-runtime.d.ts +1 -1
- package/types/helpers/supertest.d.ts +4 -6
- package/types/helpers/type.d.ts +1 -1
- package/types/helpers/vitest.d.ts +4 -6
- package/types/plugin-rules.d.ts +1 -0
- package/cjs/helpers/decorators/interceptor.js +0 -88
- package/cjs/helpers/index.js +0 -60
- package/cjs/helpers/recognizers/index.js +0 -37
- package/cjs/helpers/rule-detect-react.js +0 -29
- package/cjs/helpers/validate-version.js +0 -94
- package/types/helpers/aws/index.d.ts +0 -3
- package/types/helpers/decorators/index.d.ts +0 -2
- package/types/helpers/decorators/interceptor.d.ts +0 -16
- package/types/helpers/index.d.ts +0 -28
- package/types/helpers/recognizers/index.d.ts +0 -2
- package/types/helpers/rule-detect-react.d.ts +0 -2
- package/types/helpers/validate-version.d.ts +0 -13
package/cjs/S2737/rule.js
CHANGED
|
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const equivalence_js_1 = require("../helpers/equivalence.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
57
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
58
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
59
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
60
|
messages: {
|
|
59
61
|
uselessCatch: 'Add logic to this catch clause or eliminate it and rethrow the exception automatically.',
|
|
60
62
|
},
|
|
@@ -78,8 +80,8 @@ function visitCatchClause(catchClause, context) {
|
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
function onlyRethrows(statement, catchParam, sourceCode) {
|
|
81
|
-
return ((0,
|
|
83
|
+
return ((0, ast_js_1.isThrowStatement)(statement) &&
|
|
82
84
|
catchParam !== null &&
|
|
83
85
|
statement.argument !== null &&
|
|
84
|
-
(0,
|
|
86
|
+
(0, equivalence_js_1.areEquivalent)(catchParam, statement.argument, sourceCode));
|
|
85
87
|
}
|
package/cjs/S2755/rule.js
CHANGED
|
@@ -51,7 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const module_js_1 = require("../helpers/module.js");
|
|
56
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
57
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const TARGET_XML_FQNS = new Set([
|
|
57
60
|
'libxmljs.parseXml',
|
|
@@ -60,22 +63,22 @@ const TARGET_XML_FQNS = new Set([
|
|
|
60
63
|
'libxmljs2.parseXmlString',
|
|
61
64
|
]);
|
|
62
65
|
exports.rule = {
|
|
63
|
-
meta: (0,
|
|
66
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
64
67
|
create(context) {
|
|
65
68
|
function isXmlParserCall(call) {
|
|
66
|
-
const fqn = (0,
|
|
69
|
+
const fqn = (0, module_js_1.getFullyQualifiedName)(context, call) || '';
|
|
67
70
|
return TARGET_XML_FQNS.has(fqn);
|
|
68
71
|
}
|
|
69
72
|
return {
|
|
70
73
|
CallExpression: (node) => {
|
|
71
74
|
const call = node;
|
|
72
75
|
if (isXmlParserCall(call)) {
|
|
73
|
-
const noent = (0,
|
|
76
|
+
const noent = (0, ast_js_1.getProperty)(call.arguments[1], 'noent', context);
|
|
74
77
|
if (noent && isNoEntSet(noent)) {
|
|
75
|
-
(0,
|
|
78
|
+
(0, location_js_1.report)(context, {
|
|
76
79
|
message: 'Disable access to external entities in XML parsing.',
|
|
77
80
|
node: noent,
|
|
78
|
-
}, [(0,
|
|
81
|
+
}, [(0, location_js_1.toSecondaryLocation)(call.callee)]);
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
},
|
package/cjs/S2757/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
58
|
messages: {
|
|
59
59
|
useExistingOperator: 'Was "{{operator}}=" meant instead?',
|
|
60
60
|
suggestExistingOperator: 'Replace with "{{operator}}" operator',
|
package/cjs/S2817/rule.js
CHANGED
|
@@ -51,35 +51,38 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const type_js_1 = require("../helpers/type.js");
|
|
56
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
57
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const OPEN_DATABASE = 'openDatabase';
|
|
57
60
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
61
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
62
|
messages: {
|
|
60
63
|
convertWebSQLUse: 'Convert this use of a Web SQL database to another technology.',
|
|
61
64
|
},
|
|
62
65
|
}),
|
|
63
66
|
create(context) {
|
|
64
67
|
const services = context.sourceCode.parserServices;
|
|
65
|
-
if (!(0,
|
|
68
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
66
69
|
return {};
|
|
67
70
|
}
|
|
68
71
|
return {
|
|
69
72
|
CallExpression: (node) => {
|
|
70
73
|
const callExpression = node;
|
|
71
74
|
const { callee } = callExpression;
|
|
72
|
-
const symbol = (0,
|
|
75
|
+
const symbol = (0, type_js_1.getSymbolAtLocation)(callee, services);
|
|
73
76
|
if (!!symbol) {
|
|
74
77
|
return;
|
|
75
78
|
}
|
|
76
|
-
if ((0,
|
|
79
|
+
if ((0, ast_js_1.isIdentifier)(callee, OPEN_DATABASE)) {
|
|
77
80
|
context.report({ node: callee, messageId: 'convertWebSQLUse' });
|
|
78
81
|
}
|
|
79
|
-
if (callee.type !== 'MemberExpression' || !(0,
|
|
82
|
+
if (callee.type !== 'MemberExpression' || !(0, ast_js_1.isIdentifier)(callee.property, OPEN_DATABASE)) {
|
|
80
83
|
return;
|
|
81
84
|
}
|
|
82
|
-
const typeName = (0,
|
|
85
|
+
const typeName = (0, type_js_1.getTypeAsString)(callee.object, services);
|
|
83
86
|
if (/window/i.test(typeName) || /globalThis/i.test(typeName)) {
|
|
84
87
|
context.report({ node: callee, messageId: 'convertWebSQLUse' });
|
|
85
88
|
}
|
package/cjs/S2819/rule.js
CHANGED
|
@@ -51,12 +51,16 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.js");
|
|
57
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
58
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
55
59
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
60
|
const POST_MESSAGE = 'postMessage';
|
|
57
61
|
const ADD_EVENT_LISTENER = 'addEventListener';
|
|
58
62
|
exports.rule = {
|
|
59
|
-
meta: (0,
|
|
63
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
60
64
|
messages: {
|
|
61
65
|
specifyTarget: `Specify a target origin for this message.`,
|
|
62
66
|
verifyOrigin: `Verify the origin of the received message.`,
|
|
@@ -64,7 +68,7 @@ exports.rule = {
|
|
|
64
68
|
}),
|
|
65
69
|
create(context) {
|
|
66
70
|
const services = context.sourceCode.parserServices;
|
|
67
|
-
if (!(0,
|
|
71
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
68
72
|
return {};
|
|
69
73
|
}
|
|
70
74
|
return {
|
|
@@ -78,7 +82,7 @@ exports.rule = {
|
|
|
78
82
|
},
|
|
79
83
|
};
|
|
80
84
|
function isWindowObject(node, context) {
|
|
81
|
-
const type = (0,
|
|
85
|
+
const type = (0, type_js_1.getTypeAsString)(node, context.sourceCode.parserServices);
|
|
82
86
|
const hasWindowName = WindowNameVisitor.containsWindowName(node, context);
|
|
83
87
|
return type.match(/window/i) || type.match(/globalThis/i) || hasWindowName;
|
|
84
88
|
}
|
|
@@ -86,7 +90,7 @@ function checkPostMessageCall(callExpr, context) {
|
|
|
86
90
|
const { callee } = callExpr;
|
|
87
91
|
// Window.postMessage() can take 2 or 3 arguments
|
|
88
92
|
if (![2, 3].includes(callExpr.arguments.length) ||
|
|
89
|
-
(0,
|
|
93
|
+
(0, ast_js_1.getValueOfExpression)(context, callExpr.arguments[1], 'Literal')?.value !== '*') {
|
|
90
94
|
return;
|
|
91
95
|
}
|
|
92
96
|
if (callee.type === 'Identifier') {
|
|
@@ -112,9 +116,9 @@ function checkAddEventListenerCall(callExpr, context) {
|
|
|
112
116
|
!isMessageTypeEvent(args[0], context)) {
|
|
113
117
|
return;
|
|
114
118
|
}
|
|
115
|
-
let listener = (0,
|
|
119
|
+
let listener = (0, ast_js_1.resolveFunction)(context, args[1]);
|
|
116
120
|
if (listener?.body.type === 'CallExpression') {
|
|
117
|
-
listener = (0,
|
|
121
|
+
listener = (0, ast_js_1.resolveFunction)(context, listener.body);
|
|
118
122
|
}
|
|
119
123
|
if (!listener || listener.params.length === 0) {
|
|
120
124
|
return;
|
|
@@ -295,7 +299,7 @@ function findEventOrigin(event) {
|
|
|
295
299
|
* Checks if node has a property 'origin'
|
|
296
300
|
*/
|
|
297
301
|
function isPropertyOrigin(node) {
|
|
298
|
-
return (0,
|
|
302
|
+
return (0, ast_js_1.isIdentifier)(node.property, 'origin');
|
|
299
303
|
}
|
|
300
304
|
/**
|
|
301
305
|
* Returns event.originalEvent MemberExpression, if exists
|
|
@@ -307,7 +311,7 @@ function findEventOriginalEvent(event) {
|
|
|
307
311
|
}
|
|
308
312
|
const { object: eventCandidate, property: originalEventIdentifierCandidate } = memberExpr;
|
|
309
313
|
if (eventCandidate === event &&
|
|
310
|
-
(0,
|
|
314
|
+
(0, ast_js_1.isIdentifier)(originalEventIdentifierCandidate, 'originalEvent')) {
|
|
311
315
|
return memberExpr;
|
|
312
316
|
}
|
|
313
317
|
return null;
|
|
@@ -320,10 +324,10 @@ function isInIfStatement(node) {
|
|
|
320
324
|
if (node == null) {
|
|
321
325
|
return false;
|
|
322
326
|
}
|
|
323
|
-
return (0,
|
|
327
|
+
return (0, ancestor_js_1.findFirstMatchingLocalAncestor)(node, ast_js_1.isIfStatement) != null;
|
|
324
328
|
}
|
|
325
329
|
function isMessageTypeEvent(eventNode, context) {
|
|
326
|
-
const eventValue = (0,
|
|
330
|
+
const eventValue = (0, ast_js_1.getValueOfExpression)(context, eventNode, 'Literal');
|
|
327
331
|
return typeof eventValue?.value === 'string' && eventValue.value.toLowerCase() === 'message';
|
|
328
332
|
}
|
|
329
333
|
class WindowNameVisitor {
|
|
@@ -340,7 +344,7 @@ class WindowNameVisitor {
|
|
|
340
344
|
if (node.type === 'Identifier' && /window/i.test(node.name)) {
|
|
341
345
|
this.hasWindowName = true;
|
|
342
346
|
}
|
|
343
|
-
for (const childNode of (0,
|
|
347
|
+
for (const childNode of (0, ancestor_js_1.childrenOf)(node, context.sourceCode.visitorKeys)) {
|
|
344
348
|
visitNode(childNode);
|
|
345
349
|
}
|
|
346
350
|
};
|
package/cjs/S2870/rule.js
CHANGED
|
@@ -51,23 +51,26 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.js");
|
|
57
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const ArrayDeleteExpression = "UnaryExpression[operator='delete'] > MemberExpression[computed=true]";
|
|
57
60
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
61
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
62
|
messages: {
|
|
60
63
|
removeDelete: 'Remove this use of "delete".',
|
|
61
64
|
},
|
|
62
65
|
}),
|
|
63
66
|
create(context) {
|
|
64
67
|
const services = context.sourceCode.parserServices;
|
|
65
|
-
if ((0,
|
|
68
|
+
if ((0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
66
69
|
return {
|
|
67
70
|
[ArrayDeleteExpression]: (node) => {
|
|
68
71
|
const member = node;
|
|
69
72
|
const object = member.object;
|
|
70
|
-
if ((0,
|
|
73
|
+
if ((0, type_js_1.isArray)(object, services)) {
|
|
71
74
|
raiseIssue(context, node);
|
|
72
75
|
}
|
|
73
76
|
},
|
|
@@ -77,7 +80,7 @@ exports.rule = {
|
|
|
77
80
|
},
|
|
78
81
|
};
|
|
79
82
|
function raiseIssue(context, node) {
|
|
80
|
-
const deleteKeyword = context.sourceCode.getFirstToken((0,
|
|
83
|
+
const deleteKeyword = context.sourceCode.getFirstToken((0, ancestor_js_1.getParent)(context, node));
|
|
81
84
|
context.report({
|
|
82
85
|
messageId: 'removeDelete',
|
|
83
86
|
loc: deleteKeyword.loc,
|
package/cjs/S2871/rule.js
CHANGED
|
@@ -51,7 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const collection_js_1 = require("../helpers/collection.js");
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.js");
|
|
57
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
const compareNumberFunctionPlaceholder = '(a, b) => (a - b)';
|
|
57
60
|
const compareBigIntFunctionPlaceholder = [
|
|
@@ -67,7 +70,7 @@ const compareBigIntFunctionPlaceholder = [
|
|
|
67
70
|
];
|
|
68
71
|
const languageSensitiveOrderPlaceholder = '(a, b) => a.localeCompare(b)';
|
|
69
72
|
exports.rule = {
|
|
70
|
-
meta: (0,
|
|
73
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
71
74
|
hasSuggestions: true,
|
|
72
75
|
messages: {
|
|
73
76
|
provideCompareFunction: 'Provide a compare function to avoid sorting elements alphabetically.',
|
|
@@ -79,15 +82,15 @@ exports.rule = {
|
|
|
79
82
|
create(context) {
|
|
80
83
|
const sourceCode = context.sourceCode;
|
|
81
84
|
const services = context.sourceCode.parserServices;
|
|
82
|
-
if (!(0,
|
|
85
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
83
86
|
return {};
|
|
84
87
|
}
|
|
85
88
|
return {
|
|
86
89
|
'CallExpression[arguments.length=0][callee.type="MemberExpression"]': (call) => {
|
|
87
90
|
const { object, property: node } = call.callee;
|
|
88
91
|
const text = sourceCode.getText(node);
|
|
89
|
-
const type = (0,
|
|
90
|
-
if ([...
|
|
92
|
+
const type = (0, type_js_1.getTypeFromTreeNode)(object, services);
|
|
93
|
+
if ([...collection_js_1.sortLike, ...collection_js_1.copyingSortLike].includes(text) && (0, type_js_1.isArrayLikeType)(type, services)) {
|
|
91
94
|
const suggest = getSuggestions(call, type);
|
|
92
95
|
const messageId = getMessageId(type);
|
|
93
96
|
context.report({ node, suggest, messageId });
|
|
@@ -96,19 +99,19 @@ exports.rule = {
|
|
|
96
99
|
};
|
|
97
100
|
function getSuggestions(call, type) {
|
|
98
101
|
const suggestions = [];
|
|
99
|
-
if ((0,
|
|
102
|
+
if ((0, type_js_1.isNumberArray)(type, services)) {
|
|
100
103
|
suggestions.push({
|
|
101
104
|
messageId: 'suggestNumericOrder',
|
|
102
105
|
fix: fixer(call, compareNumberFunctionPlaceholder),
|
|
103
106
|
});
|
|
104
107
|
}
|
|
105
|
-
else if ((0,
|
|
108
|
+
else if ((0, type_js_1.isBigIntArray)(type, services)) {
|
|
106
109
|
suggestions.push({
|
|
107
110
|
messageId: 'suggestNumericOrder',
|
|
108
111
|
fix: fixer(call, ...compareBigIntFunctionPlaceholder),
|
|
109
112
|
});
|
|
110
113
|
}
|
|
111
|
-
else if ((0,
|
|
114
|
+
else if ((0, type_js_1.isStringArray)(type, services)) {
|
|
112
115
|
suggestions.push({
|
|
113
116
|
messageId: 'suggestLanguageSensitiveOrder',
|
|
114
117
|
fix: fixer(call, languageSensitiveOrderPlaceholder),
|
|
@@ -117,7 +120,7 @@ exports.rule = {
|
|
|
117
120
|
return suggestions;
|
|
118
121
|
}
|
|
119
122
|
function getMessageId(type) {
|
|
120
|
-
if ((0,
|
|
123
|
+
if ((0, type_js_1.isStringArray)(type, services)) {
|
|
121
124
|
return 'provideCompareFunctionForArrayOfStrings';
|
|
122
125
|
}
|
|
123
126
|
return 'provideCompareFunction';
|
package/cjs/S2970/rule.js
CHANGED
|
@@ -51,7 +51,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
55
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
57
|
const assertionFunctions = [
|
|
57
58
|
'a',
|
|
@@ -137,7 +138,7 @@ const gettersOrModifiers = [
|
|
|
137
138
|
'should',
|
|
138
139
|
];
|
|
139
140
|
exports.rule = {
|
|
140
|
-
meta: (0,
|
|
141
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
141
142
|
create(context) {
|
|
142
143
|
return {
|
|
143
144
|
ExpressionStatement(node) {
|
|
@@ -145,13 +146,13 @@ exports.rule = {
|
|
|
145
146
|
if (exprStatement.expression.type === 'MemberExpression') {
|
|
146
147
|
const { property } = exprStatement.expression;
|
|
147
148
|
if (isTestAssertion(exprStatement.expression)) {
|
|
148
|
-
if ((0,
|
|
149
|
+
if ((0, ast_js_1.isIdentifier)(property, ...assertionFunctions)) {
|
|
149
150
|
context.report({
|
|
150
151
|
node: property,
|
|
151
152
|
message: `Call this '${property.name}' assertion.`,
|
|
152
153
|
});
|
|
153
154
|
}
|
|
154
|
-
if ((0,
|
|
155
|
+
if ((0, ast_js_1.isIdentifier)(property, ...gettersOrModifiers)) {
|
|
155
156
|
context.report({
|
|
156
157
|
node: property,
|
|
157
158
|
message: `Complete this assertion; '${property.name}' doesn't assert anything by itself.`,
|
|
@@ -173,10 +174,10 @@ exports.rule = {
|
|
|
173
174
|
function isTestAssertion(node) {
|
|
174
175
|
const { object, property } = node;
|
|
175
176
|
// Chai's BDD style where 'should' extends Object.prototype https://www.chaijs.com/guide/styles/
|
|
176
|
-
if ((0,
|
|
177
|
+
if ((0, ast_js_1.isIdentifier)(object) && (0, ast_js_1.isIdentifier)(property, 'should')) {
|
|
177
178
|
return true;
|
|
178
179
|
}
|
|
179
|
-
if (isExpectCall(object) || (0,
|
|
180
|
+
if (isExpectCall(object) || (0, ast_js_1.isIdentifier)(object, 'assert', 'expect', 'should')) {
|
|
180
181
|
return true;
|
|
181
182
|
}
|
|
182
183
|
else if (object.type === 'MemberExpression') {
|
|
@@ -189,6 +190,6 @@ function isTestAssertion(node) {
|
|
|
189
190
|
}
|
|
190
191
|
function isExpectCall(node) {
|
|
191
192
|
return (node.type === 'CallExpression' &&
|
|
192
|
-
(0,
|
|
193
|
-
!(0,
|
|
193
|
+
(0, ast_js_1.isIdentifier)(node.callee, 'expect') &&
|
|
194
|
+
!(0, ast_js_1.isNumberLiteral)(node.arguments[0]));
|
|
194
195
|
}
|
package/cjs/S2990/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
58
|
hasSuggestions: true,
|
|
59
59
|
messages: {
|
|
60
60
|
removeThis: `Remove the use of "this".`,
|
package/cjs/S2999/rule.js
CHANGED
|
@@ -55,30 +55,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.rule = void 0;
|
|
57
57
|
const typescript_1 = __importDefault(require("typescript"));
|
|
58
|
-
const
|
|
58
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
59
|
+
const type_js_1 = require("../helpers/type.js");
|
|
60
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
61
|
+
const location_js_1 = require("../helpers/location.js");
|
|
59
62
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
63
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
64
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
62
65
|
create(context) {
|
|
63
66
|
const considerJSDoc = !!context.options[0]?.considerJSDoc;
|
|
64
67
|
const services = context.sourceCode.parserServices;
|
|
65
|
-
if (!(0,
|
|
68
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
66
69
|
return {};
|
|
67
70
|
}
|
|
68
71
|
return {
|
|
69
72
|
'NewExpression[callee.type!="ThisExpression"]': (node) => {
|
|
70
73
|
const { callee } = node;
|
|
71
|
-
const type = (0,
|
|
72
|
-
const signature = (0,
|
|
74
|
+
const type = (0, type_js_1.getTypeFromTreeNode)(callee, services);
|
|
75
|
+
const signature = (0, type_js_1.getSignatureFromCallee)(node, services);
|
|
73
76
|
if (!isInstantiable(type, signature, considerJSDoc) && !isAny(type)) {
|
|
74
77
|
const functionToken = context.sourceCode.getFirstToken(node, token => token.type === 'Keyword' && token.value === 'function');
|
|
75
78
|
const newToken = context.sourceCode.getFirstToken(node, token => token.type === 'Keyword' && token.value === 'new');
|
|
76
79
|
const text = isFunction(type) ? 'this function' : context.sourceCode.getText(callee);
|
|
77
80
|
const loc = callee.type === 'FunctionExpression' ? functionToken.loc : callee.loc;
|
|
78
|
-
(0,
|
|
81
|
+
(0, location_js_1.report)(context, {
|
|
79
82
|
message: `Replace ${text} with a constructor function.`,
|
|
80
83
|
loc,
|
|
81
|
-
}, [(0,
|
|
84
|
+
}, [(0, location_js_1.toSecondaryLocation)(newToken)]);
|
|
82
85
|
}
|
|
83
86
|
},
|
|
84
87
|
};
|
package/cjs/S3001/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
58
|
messages: {
|
|
59
59
|
removeDelete: 'Remove this "delete" operator or pass an object property to it.',
|
|
60
60
|
},
|
package/cjs/S3003/rule.js
CHANGED
|
@@ -51,30 +51,33 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
56
|
+
const type_js_1 = require("../helpers/type.js");
|
|
57
|
+
const location_js_1 = require("../helpers/location.js");
|
|
55
58
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
59
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
60
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
58
61
|
create(context) {
|
|
59
62
|
const services = context.sourceCode.parserServices;
|
|
60
|
-
if (!(0,
|
|
63
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
61
64
|
return {};
|
|
62
65
|
}
|
|
63
66
|
return {
|
|
64
67
|
BinaryExpression: (node) => {
|
|
65
68
|
const { operator, left, right } = node;
|
|
66
69
|
if (['<', '<=', '>', '>='].includes(operator) &&
|
|
67
|
-
(0,
|
|
68
|
-
(0,
|
|
70
|
+
(0, type_js_1.isString)(left, services) &&
|
|
71
|
+
(0, type_js_1.isString)(right, services) &&
|
|
69
72
|
!isLiteralException(left) &&
|
|
70
73
|
!isLiteralException(right) &&
|
|
71
74
|
!isWithinSortCallback(context, node)) {
|
|
72
|
-
(0,
|
|
75
|
+
(0, location_js_1.report)(context, {
|
|
73
76
|
message: `Convert operands of this use of "${operator}" to number type.`,
|
|
74
77
|
loc: context.sourceCode
|
|
75
78
|
.getTokensBetween(left, right)
|
|
76
79
|
.find(token => token.type === 'Punctuator' && token.value === operator).loc,
|
|
77
|
-
}, [left, right].map(node => (0,
|
|
80
|
+
}, [left, right].map(node => (0, location_js_1.toSecondaryLocation)(node)));
|
|
78
81
|
}
|
|
79
82
|
},
|
|
80
83
|
};
|
package/cjs/S3317/rule.js
CHANGED
|
@@ -55,10 +55,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.rule = void 0;
|
|
57
57
|
const node_path_1 = __importDefault(require("node:path"));
|
|
58
|
-
const
|
|
58
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
59
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
59
60
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
61
|
exports.rule = {
|
|
61
|
-
meta: (0,
|
|
62
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
62
63
|
messages: {
|
|
63
64
|
renameFile: 'Rename this file to "{{exported}}"',
|
|
64
65
|
},
|
|
@@ -70,7 +71,7 @@ exports.rule = {
|
|
|
70
71
|
ExportDefaultDeclaration: (node) => {
|
|
71
72
|
const declaration = node.declaration;
|
|
72
73
|
if (declaration.type === 'Identifier') {
|
|
73
|
-
const variable = (0,
|
|
74
|
+
const variable = (0, ast_js_1.getVariableFromName)(context, declaration.name, node);
|
|
74
75
|
if (variable?.defs.length === 1) {
|
|
75
76
|
const def = variable.defs[0];
|
|
76
77
|
if (def.type === 'ClassName' || def.type === 'FunctionName' || isConst(def)) {
|
package/cjs/S3330/rule.js
CHANGED
|
@@ -52,10 +52,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
54
|
const cookie_flag_check_js_1 = require("../helpers/cookie-flag-check.js");
|
|
55
|
-
const
|
|
55
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
56
|
const meta = __importStar(require("./generated-meta.js"));
|
|
57
57
|
exports.rule = {
|
|
58
|
-
meta: (0,
|
|
58
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
59
59
|
create(context) {
|
|
60
60
|
return {
|
|
61
61
|
CallExpression: (node) => new cookie_flag_check_js_1.CookieFlagCheck(context, 'httpOnly').checkCookiesFromCallExpression(node),
|
package/cjs/S3358/rule.js
CHANGED
|
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
-
const
|
|
54
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
55
|
const meta = __importStar(require("./generated-meta.js"));
|
|
56
56
|
exports.rule = {
|
|
57
|
-
meta: (0,
|
|
57
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
58
58
|
messages: {
|
|
59
59
|
extractTernary: 'Extract this nested ternary operation into an independent statement.',
|
|
60
60
|
},
|
package/cjs/S3402/rule.js
CHANGED
|
@@ -55,15 +55,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.rule = void 0;
|
|
57
57
|
const typescript_1 = __importDefault(require("typescript"));
|
|
58
|
-
const
|
|
58
|
+
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
59
|
+
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
60
|
+
const type_js_1 = require("../helpers/type.js");
|
|
61
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
62
|
+
const location_js_1 = require("../helpers/location.js");
|
|
59
63
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
64
|
const message = `Review this expression to be sure that the concatenation was intended.`;
|
|
61
65
|
const objectLikeTypes = new Set(['object', 'Object']);
|
|
62
66
|
exports.rule = {
|
|
63
|
-
meta: (0,
|
|
67
|
+
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
64
68
|
create(context) {
|
|
65
69
|
const services = context.sourceCode.parserServices;
|
|
66
|
-
if (!(0,
|
|
70
|
+
if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
|
|
67
71
|
return {};
|
|
68
72
|
}
|
|
69
73
|
const checker = services.program.getTypeChecker();
|
|
@@ -81,22 +85,22 @@ exports.rule = {
|
|
|
81
85
|
.find(token => token.value === '+' || token.value === '+=').loc;
|
|
82
86
|
}
|
|
83
87
|
function checkConcatenation(left, right) {
|
|
84
|
-
if ((0,
|
|
85
|
-
(0,
|
|
88
|
+
if ((0, ast_js_1.isStringLiteral)(left) ||
|
|
89
|
+
(0, ast_js_1.isStringLiteral)(right) ||
|
|
86
90
|
isConcatenation(left) ||
|
|
87
91
|
isConcatenation(right)) {
|
|
88
92
|
return;
|
|
89
93
|
}
|
|
90
|
-
const leftType = (0,
|
|
91
|
-
const rightType = (0,
|
|
94
|
+
const leftType = (0, type_js_1.getTypeFromTreeNode)(left, services);
|
|
95
|
+
const rightType = (0, type_js_1.getTypeFromTreeNode)(right, services);
|
|
92
96
|
if (isStringPlusNonString(leftType, rightType) ||
|
|
93
97
|
isStringPlusNonString(rightType, leftType)) {
|
|
94
|
-
(0,
|
|
98
|
+
(0, location_js_1.report)(context, {
|
|
95
99
|
message,
|
|
96
100
|
loc: getOperatorLocation(left, right),
|
|
97
101
|
}, [
|
|
98
|
-
(0,
|
|
99
|
-
(0,
|
|
102
|
+
(0, location_js_1.toSecondaryLocation)(left, `left operand has type ${checker.typeToString(leftType)}.`),
|
|
103
|
+
(0, location_js_1.toSecondaryLocation)(right, `right operand has type ${checker.typeToString(rightType)}.`),
|
|
100
104
|
]);
|
|
101
105
|
}
|
|
102
106
|
}
|