eslint-plugin-sonarjs 4.0.3 → 4.1.0
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 +52 -56
- package/cjs/S100/generated-meta.js +2 -1
- package/cjs/S101/generated-meta.js +2 -1
- package/cjs/S104/generated-meta.js +2 -1
- package/cjs/S105/generated-meta.js +2 -1
- package/cjs/S1066/generated-meta.js +2 -1
- package/cjs/S1067/generated-meta.js +2 -1
- package/cjs/S1110/generated-meta.js +2 -1
- package/cjs/S1119/generated-meta.js +2 -1
- package/cjs/S1121/generated-meta.js +2 -1
- package/cjs/S1125/generated-meta.js +2 -1
- package/cjs/S1126/generated-meta.js +2 -1
- package/cjs/S1128/generated-meta.js +2 -1
- package/cjs/S1134/generated-meta.js +2 -1
- package/cjs/S1135/generated-meta.js +2 -1
- package/cjs/S1154/generated-meta.js +2 -1
- package/cjs/S1154/rule.js +21 -2
- package/cjs/S117/generated-meta.js +2 -1
- package/cjs/S1172/generated-meta.js +2 -1
- package/cjs/S1192/generated-meta.js +2 -1
- package/cjs/S1219/generated-meta.js +2 -1
- package/cjs/S1226/generated-meta.js +2 -1
- package/cjs/S124/generated-meta.js +2 -1
- package/cjs/{S2255 → S1244}/generated-meta.js +8 -7
- package/cjs/S1244/meta.js +21 -0
- package/cjs/S1244/rule.js +265 -0
- package/cjs/S125/generated-meta.js +3 -2
- package/cjs/S126/generated-meta.js +2 -1
- package/cjs/S1264/generated-meta.js +2 -1
- package/cjs/S128/generated-meta.js +2 -1
- package/cjs/S1291/generated-meta.js +2 -1
- package/cjs/S1301/generated-meta.js +3 -2
- package/cjs/S1313/generated-meta.js +2 -1
- package/cjs/S134/generated-meta.js +2 -1
- package/cjs/S135/generated-meta.js +2 -1
- package/cjs/S138/generated-meta.js +2 -1
- package/cjs/S1439/generated-meta.js +2 -1
- package/cjs/S1444/generated-meta.js +2 -1
- package/cjs/S1451/generated-meta.js +2 -1
- package/cjs/S1472/generated-meta.js +2 -1
- package/cjs/S1479/generated-meta.js +2 -1
- package/cjs/S1481/generated-meta.js +2 -1
- package/cjs/S1488/generated-meta.js +2 -1
- package/cjs/S1515/generated-meta.js +2 -1
- package/cjs/S1523/generated-meta.js +3 -2
- package/cjs/S1526/generated-meta.js +2 -1
- package/cjs/S1527/generated-meta.js +2 -1
- package/cjs/S1528/generated-meta.js +2 -1
- package/cjs/S1529/generated-meta.js +2 -1
- package/cjs/S1530/generated-meta.js +2 -1
- package/cjs/S1533/generated-meta.js +2 -1
- package/cjs/S1535/generated-meta.js +2 -1
- package/cjs/S1541/generated-meta.js +2 -1
- package/cjs/S1607/generated-meta.js +2 -1
- package/cjs/S1607/rule.js +72 -7
- package/cjs/S1764/generated-meta.js +2 -1
- package/cjs/S1821/generated-meta.js +2 -1
- package/cjs/S1848/generated-meta.js +2 -1
- package/cjs/S1854/generated-meta.js +2 -1
- package/cjs/S1862/generated-meta.js +2 -1
- package/cjs/S1871/generated-meta.js +2 -1
- package/cjs/S1874/generated-meta.js +2 -1
- package/cjs/S1940/generated-meta.js +2 -1
- package/cjs/S1994/generated-meta.js +2 -1
- package/cjs/S2004/generated-meta.js +2 -1
- package/cjs/S2068/generated-meta.js +2 -1
- package/cjs/S2068/rule.js +0 -14
- package/cjs/S2077/generated-meta.js +3 -2
- package/cjs/S2092/generated-meta.js +2 -1
- package/cjs/S2123/generated-meta.js +2 -1
- package/cjs/S2137/generated-meta.js +2 -1
- package/cjs/S2138/generated-meta.js +2 -1
- package/cjs/S2187/generated-meta.js +2 -1
- package/cjs/S2187/rule.js +50 -13
- package/cjs/S2201/generated-meta.js +2 -1
- package/cjs/S2208/generated-meta.js +2 -1
- package/cjs/S2234/generated-meta.js +2 -1
- package/cjs/S2245/generated-meta.js +3 -2
- package/cjs/S2251/generated-meta.js +2 -1
- package/cjs/S2259/generated-meta.js +2 -1
- package/cjs/S2301/generated-meta.js +2 -1
- package/cjs/S2310/generated-meta.js +2 -1
- package/cjs/S2392/generated-meta.js +2 -1
- package/cjs/S2424/generated-meta.js +2 -1
- package/cjs/S2428/generated-meta.js +2 -1
- package/cjs/S2486/generated-meta.js +2 -1
- package/cjs/S2589/generated-meta.js +2 -1
- package/cjs/S2598/generated-meta.js +2 -1
- package/cjs/S2612/generated-meta.js +2 -1
- package/cjs/S2639/generated-meta.js +2 -1
- package/cjs/S2681/generated-meta.js +2 -1
- package/cjs/S2692/generated-meta.js +2 -1
- package/cjs/S2699/generated-meta.js +2 -1
- package/cjs/S2699/rule.js +19 -5
- package/cjs/S2703/generated-meta.js +2 -1
- package/cjs/S2737/generated-meta.js +2 -1
- package/cjs/S2755/generated-meta.js +2 -1
- package/cjs/S2757/generated-meta.js +2 -1
- package/cjs/S2817/generated-meta.js +2 -1
- package/cjs/S2819/generated-meta.js +2 -1
- package/cjs/S2870/generated-meta.js +2 -1
- package/cjs/S2871/generated-meta.js +2 -1
- package/cjs/S2871/rule.js +85 -1
- package/cjs/S2970/generated-meta.js +2 -1
- package/cjs/S2990/generated-meta.js +2 -1
- package/cjs/S2999/generated-meta.js +2 -1
- package/cjs/S3001/generated-meta.js +2 -1
- package/cjs/S3003/generated-meta.js +2 -1
- package/cjs/S3317/generated-meta.js +2 -1
- package/cjs/S3330/generated-meta.js +3 -2
- package/cjs/S3358/generated-meta.js +2 -1
- package/cjs/S3402/generated-meta.js +2 -1
- package/cjs/S3403/generated-meta.js +2 -1
- package/cjs/S3403/rule.js +21 -1
- package/cjs/S3415/generated-meta.js +2 -1
- package/cjs/S3499/generated-meta.js +2 -1
- package/cjs/S3500/generated-meta.js +2 -1
- package/cjs/S3513/generated-meta.js +2 -1
- package/cjs/S3514/generated-meta.js +2 -1
- package/cjs/S3516/generated-meta.js +2 -1
- package/cjs/S3524/generated-meta.js +2 -1
- package/cjs/S3525/generated-meta.js +2 -1
- package/cjs/S3531/generated-meta.js +2 -1
- package/cjs/S3533/generated-meta.js +2 -1
- package/cjs/S3579/generated-meta.js +2 -1
- package/cjs/S3616/generated-meta.js +2 -1
- package/cjs/S3626/generated-meta.js +2 -1
- package/cjs/S3626/rule.js +1 -1
- package/cjs/S3686/generated-meta.js +2 -1
- package/cjs/S3699/generated-meta.js +2 -1
- package/cjs/S3735/generated-meta.js +2 -1
- package/cjs/S3757/generated-meta.js +2 -1
- package/cjs/S3757/rule.js +3 -1
- package/cjs/S3758/generated-meta.js +2 -1
- package/cjs/S3760/generated-meta.js +2 -1
- package/cjs/S3776/generated-meta.js +2 -1
- package/cjs/S3782/generated-meta.js +2 -1
- package/cjs/S3785/generated-meta.js +2 -1
- package/cjs/S3796/generated-meta.js +2 -1
- package/cjs/S3798/generated-meta.js +2 -1
- package/cjs/S3798/rule.js +57 -17
- package/cjs/S3800/generated-meta.js +2 -1
- package/cjs/S3801/generated-meta.js +2 -1
- package/cjs/S3827/generated-meta.js +2 -1
- package/cjs/S3923/generated-meta.js +2 -1
- package/cjs/S3972/generated-meta.js +2 -1
- package/cjs/S3973/generated-meta.js +2 -1
- package/cjs/S3981/generated-meta.js +2 -1
- package/cjs/S3984/generated-meta.js +2 -1
- package/cjs/S4030/generated-meta.js +2 -1
- package/cjs/S4036/generated-meta.js +3 -2
- package/cjs/S4043/generated-meta.js +2 -1
- package/cjs/S4139/generated-meta.js +2 -1
- package/cjs/S4143/generated-meta.js +2 -1
- package/cjs/S4144/generated-meta.js +2 -1
- package/cjs/S4158/generated-meta.js +2 -1
- package/cjs/S4165/generated-meta.js +2 -1
- package/cjs/S4322/generated-meta.js +2 -1
- package/cjs/S4323/generated-meta.js +2 -1
- package/cjs/S4324/generated-meta.js +2 -1
- package/cjs/S4328/generated-meta.js +2 -1
- package/cjs/S4328/rule.js +7 -2
- package/cjs/S4335/generated-meta.js +2 -1
- package/cjs/S4423/generated-meta.js +2 -1
- package/cjs/S4426/generated-meta.js +2 -1
- package/cjs/S4502/generated-meta.js +3 -2
- package/cjs/S4507/generated-meta.js +3 -2
- package/cjs/S4524/generated-meta.js +2 -1
- package/cjs/S4619/generated-meta.js +2 -1
- package/cjs/S4621/generated-meta.js +2 -1
- package/cjs/S4622/generated-meta.js +2 -1
- package/cjs/S4623/generated-meta.js +2 -1
- package/cjs/S4624/generated-meta.js +2 -1
- package/cjs/S4624/rule.js +2 -7
- package/cjs/S4634/generated-meta.js +2 -1
- package/cjs/S4721/generated-meta.js +5 -4
- package/cjs/S4782/generated-meta.js +2 -1
- package/cjs/S4782/rule.js +96 -14
- package/cjs/S4790/generated-meta.js +3 -2
- package/cjs/S4790/rule.js +217 -2
- package/cjs/S4798/generated-meta.js +2 -1
- package/cjs/S4822/generated-meta.js +2 -1
- package/cjs/S4830/generated-meta.js +2 -1
- package/cjs/S5042/generated-meta.js +2 -1
- package/cjs/S5122/generated-meta.js +2 -1
- package/cjs/S5148/generated-meta.js +2 -1
- package/cjs/S5247/generated-meta.js +3 -2
- package/cjs/S5256/generated-meta.js +2 -1
- package/cjs/S5257/generated-meta.js +2 -1
- package/cjs/S5260/generated-meta.js +2 -1
- package/cjs/S5264/generated-meta.js +2 -1
- package/cjs/S5332/generated-meta.js +3 -2
- package/cjs/S5332/rule.lib.js +54 -46
- package/cjs/S5443/generated-meta.js +2 -1
- package/cjs/S5527/generated-meta.js +2 -1
- package/cjs/S5542/generated-meta.js +2 -1
- package/cjs/S5547/generated-meta.js +2 -1
- package/cjs/S5604/generated-meta.js +5 -4
- package/cjs/S5659/generated-meta.js +2 -1
- package/cjs/S5689/generated-meta.js +2 -1
- package/cjs/S5691/generated-meta.js +5 -4
- package/cjs/S5693/generated-meta.js +2 -1
- package/cjs/S5693/rule.js +45 -1
- package/cjs/S5725/generated-meta.js +3 -2
- package/cjs/S5725/rule.js +75 -12
- package/cjs/S5728/generated-meta.js +3 -2
- package/cjs/S5730/generated-meta.js +5 -4
- package/cjs/S5732/generated-meta.js +5 -4
- package/cjs/S5734/generated-meta.js +3 -2
- package/cjs/S5736/generated-meta.js +3 -2
- package/cjs/S5739/generated-meta.js +3 -2
- package/cjs/S5757/generated-meta.js +5 -4
- package/cjs/S5759/generated-meta.js +5 -4
- package/cjs/S5842/generated-meta.js +2 -1
- package/cjs/S5843/generated-meta.js +2 -1
- package/cjs/S5845/generated-meta.js +52 -0
- package/cjs/S5845/meta.js +21 -0
- package/cjs/S5845/rule.js +296 -0
- package/cjs/S5850/generated-meta.js +2 -1
- package/cjs/S5852/generated-meta.js +3 -2
- package/cjs/S5852/rule.js +11 -3
- package/cjs/S5856/generated-meta.js +2 -1
- package/cjs/S5860/generated-meta.js +2 -1
- package/cjs/S5863/generated-meta.js +2 -1
- package/cjs/S5867/generated-meta.js +2 -1
- package/cjs/S5868/generated-meta.js +2 -1
- package/cjs/S5868/rule.js +54 -25
- package/cjs/S5869/generated-meta.js +2 -1
- package/cjs/S5876/generated-meta.js +2 -1
- package/cjs/S5906/assertion-suggestions.js +279 -0
- package/cjs/S5906/assertion-utils.js +103 -0
- package/cjs/S5906/cypress-suggestions.js +62 -0
- package/cjs/S5906/expect-chain.js +16 -0
- package/cjs/S5906/generated-meta.js +52 -0
- package/cjs/S5906/meta.js +21 -0
- package/cjs/S5906/playwright-suggestions.js +103 -0
- package/cjs/S5906/rule.js +365 -0
- package/cjs/S5914/generated-meta.js +52 -0
- package/cjs/{S4817 → S5914}/meta.js +1 -1
- package/cjs/S5914/rule.js +213 -0
- package/cjs/S5958/generated-meta.js +2 -1
- package/cjs/S5973/generated-meta.js +2 -1
- package/cjs/S5973/rule.js +1 -1
- package/cjs/S6019/generated-meta.js +2 -1
- package/cjs/S6035/generated-meta.js +2 -1
- package/cjs/S6079/generated-meta.js +2 -1
- package/cjs/S6080/generated-meta.js +2 -1
- package/cjs/S6092/generated-meta.js +2 -1
- package/cjs/S6249/generated-meta.js +3 -2
- package/cjs/S6252/generated-meta.js +3 -2
- package/cjs/S6265/generated-meta.js +2 -1
- package/cjs/S6268/generated-meta.js +3 -2
- package/cjs/S6270/generated-meta.js +2 -1
- package/cjs/S6275/generated-meta.js +2 -1
- package/cjs/S6281/generated-meta.js +3 -2
- package/cjs/S6281/rule.js +7 -20
- package/cjs/S6302/generated-meta.js +2 -1
- package/cjs/S6303/generated-meta.js +2 -1
- package/cjs/S6304/generated-meta.js +3 -2
- package/cjs/S6308/generated-meta.js +2 -1
- package/cjs/S6317/generated-meta.js +2 -1
- package/cjs/S6319/generated-meta.js +3 -2
- package/cjs/S6321/generated-meta.js +2 -1
- package/cjs/S6323/generated-meta.js +2 -1
- package/cjs/S6324/generated-meta.js +2 -1
- package/cjs/S6324/rule.js +5 -5
- package/cjs/S6326/generated-meta.js +2 -1
- package/cjs/S6327/generated-meta.js +3 -2
- package/cjs/S6328/generated-meta.js +2 -1
- package/cjs/S6329/generated-meta.js +3 -2
- package/cjs/S6330/generated-meta.js +2 -1
- package/cjs/S6331/generated-meta.js +2 -1
- package/cjs/S6332/generated-meta.js +3 -2
- package/cjs/S6333/generated-meta.js +3 -2
- package/cjs/S6351/generated-meta.js +2 -1
- package/cjs/S6353/generated-meta.js +2 -1
- package/cjs/S6397/generated-meta.js +2 -1
- package/cjs/S6418/generated-meta.js +2 -1
- package/cjs/S6426/generated-meta.js +2 -1
- package/cjs/S6426/rule.js +6 -1
- package/cjs/S6437/generated-meta.js +2 -1
- package/cjs/S6437/rule.js +4 -2
- package/cjs/S6439/generated-meta.js +2 -1
- package/cjs/S6442/generated-meta.js +2 -1
- package/cjs/S6443/generated-meta.js +2 -1
- package/cjs/S6486/generated-meta.js +2 -1
- package/cjs/S6486/rule.js +4 -4
- package/cjs/S6564/generated-meta.js +2 -1
- package/cjs/S6594/generated-meta.js +2 -1
- package/cjs/S6627/generated-meta.js +2 -1
- package/cjs/S6759/generated-meta.js +2 -1
- package/cjs/S6759/rule.js +31 -1
- package/cjs/S6958/generated-meta.js +2 -1
- package/cjs/S6959/generated-meta.js +2 -1
- package/cjs/S7059/generated-meta.js +2 -1
- package/cjs/S7639/generated-meta.js +2 -1
- package/cjs/S7790/generated-meta.js +2 -1
- package/cjs/S8441/generated-meta.js +2 -1
- package/cjs/S8479/generated-meta.js +3 -2
- package/cjs/{S4817 → S8754}/generated-meta.js +10 -9
- package/cjs/{S5743 → S8754}/meta.js +1 -1
- package/cjs/S8754/rule.js +289 -0
- package/cjs/{S4784 → S8780}/generated-meta.js +9 -8
- package/cjs/{S2255 → S8780}/meta.js +1 -1
- package/cjs/S8780/rule.js +321 -0
- package/cjs/S8781/generated-meta.js +52 -0
- package/cjs/{S4787 → S8781}/meta.js +1 -1
- package/cjs/{S4784 → S8781}/rule.js +38 -46
- package/cjs/S8782/generated-meta.js +52 -0
- package/cjs/{S4784 → S8782}/meta.js +1 -1
- package/cjs/S8782/rule.js +148 -0
- package/cjs/S8783/generated-meta.js +52 -0
- package/cjs/S8783/meta.js +21 -0
- package/cjs/S8783/rule.js +167 -0
- package/cjs/{S4787 → S8786}/generated-meta.js +9 -8
- package/cjs/S8786/meta.js +22 -0
- package/cjs/{S4818 → S8786}/rule.js +24 -20
- package/cjs/S881/generated-meta.js +2 -1
- package/cjs/S888/generated-meta.js +2 -1
- package/cjs/S930/generated-meta.js +2 -1
- package/cjs/helpers/assertions-chai-common.js +29 -0
- package/cjs/helpers/assertions-chai.js +331 -0
- package/cjs/helpers/assertions-cypress.js +95 -0
- package/cjs/helpers/assertions.js +285 -0
- package/cjs/helpers/ast.js +30 -0
- package/cjs/helpers/chai.js +1 -1
- package/cjs/helpers/configs.js +37 -1
- package/cjs/helpers/cypress.js +73 -0
- package/cjs/helpers/dependency-manifests/all-in-parent-dirs.js +92 -0
- package/cjs/helpers/{package-jsons → dependency-manifests}/closest.js +17 -9
- package/cjs/helpers/dependency-manifests/dependencies.js +255 -0
- package/cjs/helpers/dependency-manifests/index.js +78 -0
- package/cjs/helpers/dependency-manifests/parse.js +51 -0
- package/cjs/helpers/dependency-manifests/parsed-dependency-files.js +80 -0
- package/cjs/helpers/dependency-manifests/resolvers/deno.js +79 -0
- package/cjs/helpers/dependency-manifests/resolvers/helpers.js +41 -0
- package/cjs/helpers/dependency-manifests/resolvers/package-json.js +167 -0
- package/cjs/helpers/dependency-manifests/resolvers/types.js +4 -0
- package/cjs/helpers/files.js +29 -0
- package/cjs/helpers/find-up/all-in-parent-dirs.js +1 -0
- package/cjs/helpers/find-up/closest.js +1 -0
- package/cjs/helpers/find-up/find-minimatch.js +2 -2
- package/cjs/helpers/generate-meta.js +1 -1
- package/cjs/helpers/mocha-style-test-frameworks.js +132 -0
- package/cjs/helpers/mocha.js +17 -7
- package/cjs/helpers/module.js +116 -23
- package/cjs/helpers/numbers.js +62 -0
- package/cjs/helpers/playwright.js +13 -0
- package/cjs/helpers/regex/extract.js +21 -9
- package/cjs/helpers/regex/flags.js +12 -5
- package/cjs/helpers/sinon.js +0 -4
- package/cjs/helpers/supertest.js +0 -4
- package/cjs/helpers/test-file-pattern.js +63 -0
- package/cjs/helpers/type-origin.js +82 -0
- package/cjs/helpers/type.js +162 -1
- package/cjs/helpers/vitest.js +0 -4
- package/cjs/plugin-rules.js +296 -298
- package/docs/async-test-assertions.md +7 -0
- package/docs/aws-apigateway-public-api.md +1 -1
- package/docs/aws-ec2-rds-dms-public.md +1 -1
- package/docs/aws-efs-unencrypted.md +1 -1
- package/docs/aws-iam-all-resources-accessible.md +1 -1
- package/docs/aws-s3-bucket-insecure-http.md +1 -1
- package/docs/aws-s3-bucket-public-access.md +1 -1
- package/docs/aws-s3-bucket-versioning.md +1 -1
- package/docs/aws-sagemaker-unencrypted-notebook.md +1 -1
- package/docs/aws-sns-unencrypted-topics.md +1 -1
- package/docs/code-eval.md +1 -1
- package/docs/confidential-information-logging.md +4 -2
- package/docs/content-security-policy.md +1 -1
- package/docs/cookie-no-httponly.md +1 -1
- package/docs/csrf.md +1 -1
- package/docs/disabled-auto-escaping.md +1 -1
- package/docs/disabled-resource-integrity.md +1 -1
- package/docs/dompurify-unsafe-config.md +2 -0
- package/docs/frame-ancestors.md +4 -2
- package/docs/hashing.md +1 -1
- package/docs/hidden-files.md +4 -2
- package/docs/hooks-before-test-cases.md +7 -0
- package/docs/no-angular-bypass-sanitization.md +1 -1
- package/docs/no-clear-text-protocols.md +1 -1
- package/docs/no-commented-code.md +1 -1
- package/docs/no-duplicate-test-title.md +7 -0
- package/docs/no-empty-test-title.md +7 -0
- package/docs/no-floating-point-equality.md +7 -0
- package/docs/no-forced-browser-interaction.md +7 -0
- package/docs/no-incompatible-assertion-types.md +9 -0
- package/docs/no-intrusive-permissions.md +4 -2
- package/docs/no-ip-forward.md +4 -2
- package/docs/no-mime-sniff.md +1 -1
- package/docs/no-mixed-content.md +4 -2
- package/docs/no-os-command-from-path.md +1 -1
- package/docs/no-referrer-policy.md +1 -1
- package/docs/no-small-switch.md +2 -0
- package/docs/no-trivial-assertions.md +7 -0
- package/docs/os-command.md +4 -2
- package/docs/prefer-specific-assertions.md +9 -0
- package/docs/production-debug.md +1 -1
- package/docs/pseudo-random.md +1 -1
- package/docs/slow-regex.md +1 -1
- package/docs/sql-queries.md +1 -1
- package/docs/strict-transport-security.md +1 -1
- package/docs/super-linear-regex.md +7 -0
- package/package.json +5 -4
- package/types/S100/generated-meta.d.ts +1 -0
- package/types/S101/generated-meta.d.ts +1 -0
- package/types/S104/generated-meta.d.ts +1 -0
- package/types/S105/generated-meta.d.ts +1 -0
- package/types/S1066/generated-meta.d.ts +1 -0
- package/types/S1067/generated-meta.d.ts +1 -0
- package/types/S1110/generated-meta.d.ts +1 -0
- package/types/S1119/generated-meta.d.ts +1 -0
- package/types/S1121/generated-meta.d.ts +1 -0
- package/types/S1125/generated-meta.d.ts +1 -0
- package/types/S1126/generated-meta.d.ts +1 -0
- package/types/S1128/generated-meta.d.ts +1 -0
- package/types/S1134/generated-meta.d.ts +1 -0
- package/types/S1135/generated-meta.d.ts +1 -0
- package/types/S1154/generated-meta.d.ts +1 -0
- package/types/S117/generated-meta.d.ts +1 -0
- package/types/S1172/generated-meta.d.ts +1 -0
- package/types/S1192/generated-meta.d.ts +1 -0
- package/types/S1219/generated-meta.d.ts +1 -0
- package/types/S1226/generated-meta.d.ts +1 -0
- package/types/S124/generated-meta.d.ts +1 -0
- package/types/{S2255 → S1244}/generated-meta.d.ts +3 -2
- package/types/S1244/meta.d.ts +2 -0
- package/types/S125/generated-meta.d.ts +1 -0
- package/types/S126/generated-meta.d.ts +1 -0
- package/types/S1264/generated-meta.d.ts +1 -0
- package/types/S128/generated-meta.d.ts +1 -0
- package/types/S1291/generated-meta.d.ts +1 -0
- package/types/S1301/generated-meta.d.ts +2 -1
- package/types/S1313/generated-meta.d.ts +1 -0
- package/types/S134/generated-meta.d.ts +1 -0
- package/types/S135/generated-meta.d.ts +1 -0
- package/types/S138/generated-meta.d.ts +1 -0
- package/types/S1439/generated-meta.d.ts +1 -0
- package/types/S1444/generated-meta.d.ts +1 -0
- package/types/S1451/generated-meta.d.ts +1 -0
- package/types/S1472/generated-meta.d.ts +1 -0
- package/types/S1479/generated-meta.d.ts +1 -0
- package/types/S1481/generated-meta.d.ts +1 -0
- package/types/S1488/generated-meta.d.ts +1 -0
- package/types/S1515/generated-meta.d.ts +1 -0
- package/types/S1523/generated-meta.d.ts +1 -0
- package/types/S1526/generated-meta.d.ts +1 -0
- package/types/S1527/generated-meta.d.ts +1 -0
- package/types/S1528/generated-meta.d.ts +1 -0
- package/types/S1529/generated-meta.d.ts +1 -0
- package/types/S1530/generated-meta.d.ts +1 -0
- package/types/S1533/generated-meta.d.ts +1 -0
- package/types/S1535/generated-meta.d.ts +1 -0
- package/types/S1541/generated-meta.d.ts +1 -0
- package/types/S1607/generated-meta.d.ts +1 -0
- package/types/S1764/generated-meta.d.ts +1 -0
- package/types/S1821/generated-meta.d.ts +1 -0
- package/types/S1848/generated-meta.d.ts +1 -0
- package/types/S1854/generated-meta.d.ts +1 -0
- package/types/S1862/generated-meta.d.ts +1 -0
- package/types/S1871/generated-meta.d.ts +1 -0
- package/types/S1874/generated-meta.d.ts +1 -0
- package/types/S1940/generated-meta.d.ts +1 -0
- package/types/S1994/generated-meta.d.ts +1 -0
- package/types/S2004/generated-meta.d.ts +1 -0
- package/types/S2068/generated-meta.d.ts +1 -0
- package/types/S2077/generated-meta.d.ts +1 -0
- package/types/S2092/generated-meta.d.ts +1 -0
- package/types/S2123/generated-meta.d.ts +1 -0
- package/types/S2137/generated-meta.d.ts +1 -0
- package/types/S2138/generated-meta.d.ts +1 -0
- package/types/S2187/generated-meta.d.ts +1 -0
- package/types/S2201/generated-meta.d.ts +1 -0
- package/types/S2208/generated-meta.d.ts +1 -0
- package/types/S2234/generated-meta.d.ts +1 -0
- package/types/S2245/generated-meta.d.ts +1 -0
- package/types/S2251/generated-meta.d.ts +1 -0
- package/types/S2259/generated-meta.d.ts +1 -0
- package/types/S2301/generated-meta.d.ts +1 -0
- package/types/S2310/generated-meta.d.ts +1 -0
- package/types/S2392/generated-meta.d.ts +1 -0
- package/types/S2424/generated-meta.d.ts +1 -0
- package/types/S2428/generated-meta.d.ts +1 -0
- package/types/S2486/generated-meta.d.ts +1 -0
- package/types/S2589/generated-meta.d.ts +1 -0
- package/types/S2598/generated-meta.d.ts +1 -0
- package/types/S2612/generated-meta.d.ts +1 -0
- package/types/S2639/generated-meta.d.ts +1 -0
- package/types/S2681/generated-meta.d.ts +1 -0
- package/types/S2692/generated-meta.d.ts +1 -0
- package/types/S2699/generated-meta.d.ts +1 -0
- package/types/S2703/generated-meta.d.ts +1 -0
- package/types/S2737/generated-meta.d.ts +1 -0
- package/types/S2755/generated-meta.d.ts +1 -0
- package/types/S2757/generated-meta.d.ts +1 -0
- package/types/S2817/generated-meta.d.ts +1 -0
- package/types/S2819/generated-meta.d.ts +1 -0
- package/types/S2870/generated-meta.d.ts +1 -0
- package/types/S2871/generated-meta.d.ts +1 -0
- package/types/S2970/generated-meta.d.ts +1 -0
- package/types/S2990/generated-meta.d.ts +1 -0
- package/types/S2999/generated-meta.d.ts +1 -0
- package/types/S3001/generated-meta.d.ts +1 -0
- package/types/S3003/generated-meta.d.ts +1 -0
- package/types/S3317/generated-meta.d.ts +1 -0
- package/types/S3330/generated-meta.d.ts +1 -0
- package/types/S3358/generated-meta.d.ts +1 -0
- package/types/S3402/generated-meta.d.ts +1 -0
- package/types/S3403/generated-meta.d.ts +1 -0
- package/types/S3415/generated-meta.d.ts +1 -0
- package/types/S3499/generated-meta.d.ts +1 -0
- package/types/S3500/generated-meta.d.ts +1 -0
- package/types/S3513/generated-meta.d.ts +1 -0
- package/types/S3514/generated-meta.d.ts +1 -0
- package/types/S3516/generated-meta.d.ts +1 -0
- package/types/S3524/generated-meta.d.ts +1 -0
- package/types/S3525/generated-meta.d.ts +1 -0
- package/types/S3531/generated-meta.d.ts +1 -0
- package/types/S3533/generated-meta.d.ts +1 -0
- package/types/S3579/generated-meta.d.ts +1 -0
- package/types/S3616/generated-meta.d.ts +1 -0
- package/types/S3626/generated-meta.d.ts +1 -0
- package/types/S3686/generated-meta.d.ts +1 -0
- package/types/S3699/generated-meta.d.ts +1 -0
- package/types/S3735/generated-meta.d.ts +1 -0
- package/types/S3757/generated-meta.d.ts +1 -0
- package/types/S3758/generated-meta.d.ts +1 -0
- package/types/S3760/generated-meta.d.ts +1 -0
- package/types/S3776/generated-meta.d.ts +1 -0
- package/types/S3782/generated-meta.d.ts +1 -0
- package/types/S3785/generated-meta.d.ts +1 -0
- package/types/S3796/generated-meta.d.ts +1 -0
- package/types/S3798/generated-meta.d.ts +1 -0
- package/types/S3800/generated-meta.d.ts +1 -0
- package/types/S3801/generated-meta.d.ts +1 -0
- package/types/S3827/generated-meta.d.ts +1 -0
- package/types/S3923/generated-meta.d.ts +1 -0
- package/types/S3972/generated-meta.d.ts +1 -0
- package/types/S3973/generated-meta.d.ts +1 -0
- package/types/S3981/generated-meta.d.ts +1 -0
- package/types/S3984/generated-meta.d.ts +1 -0
- package/types/S4030/generated-meta.d.ts +1 -0
- package/types/S4036/generated-meta.d.ts +1 -0
- package/types/S4043/generated-meta.d.ts +1 -0
- package/types/S4139/generated-meta.d.ts +1 -0
- package/types/S4143/generated-meta.d.ts +1 -0
- package/types/S4144/generated-meta.d.ts +1 -0
- package/types/S4158/generated-meta.d.ts +1 -0
- package/types/S4165/generated-meta.d.ts +1 -0
- package/types/S4322/generated-meta.d.ts +1 -0
- package/types/S4323/generated-meta.d.ts +1 -0
- package/types/S4324/generated-meta.d.ts +1 -0
- package/types/S4328/generated-meta.d.ts +1 -0
- package/types/S4335/generated-meta.d.ts +1 -0
- package/types/S4423/generated-meta.d.ts +1 -0
- package/types/S4426/generated-meta.d.ts +1 -0
- package/types/S4502/generated-meta.d.ts +1 -0
- package/types/S4507/generated-meta.d.ts +1 -0
- package/types/S4524/generated-meta.d.ts +1 -0
- package/types/S4619/generated-meta.d.ts +1 -0
- package/types/S4621/generated-meta.d.ts +1 -0
- package/types/S4622/generated-meta.d.ts +1 -0
- package/types/S4623/generated-meta.d.ts +1 -0
- package/types/S4624/generated-meta.d.ts +1 -0
- package/types/S4634/generated-meta.d.ts +1 -0
- package/types/S4721/generated-meta.d.ts +2 -1
- package/types/S4782/generated-meta.d.ts +1 -0
- package/types/S4790/generated-meta.d.ts +1 -0
- package/types/S4798/generated-meta.d.ts +1 -0
- package/types/S4822/generated-meta.d.ts +1 -0
- package/types/S4830/generated-meta.d.ts +1 -0
- package/types/S5042/generated-meta.d.ts +1 -0
- package/types/S5122/generated-meta.d.ts +1 -0
- package/types/S5148/generated-meta.d.ts +1 -0
- package/types/S5247/generated-meta.d.ts +1 -0
- package/types/S5256/generated-meta.d.ts +1 -0
- package/types/S5257/generated-meta.d.ts +1 -0
- package/types/S5260/generated-meta.d.ts +1 -0
- package/types/S5264/generated-meta.d.ts +1 -0
- package/types/S5332/generated-meta.d.ts +1 -0
- package/types/S5443/generated-meta.d.ts +1 -0
- package/types/S5527/generated-meta.d.ts +1 -0
- package/types/S5542/generated-meta.d.ts +1 -0
- package/types/S5547/generated-meta.d.ts +1 -0
- package/types/S5604/generated-meta.d.ts +2 -1
- package/types/S5659/generated-meta.d.ts +1 -0
- package/types/S5689/generated-meta.d.ts +1 -0
- package/types/S5691/generated-meta.d.ts +2 -1
- package/types/S5693/generated-meta.d.ts +1 -0
- package/types/S5725/generated-meta.d.ts +1 -0
- package/types/S5728/generated-meta.d.ts +1 -0
- package/types/S5730/generated-meta.d.ts +2 -1
- package/types/S5732/generated-meta.d.ts +2 -1
- package/types/S5734/generated-meta.d.ts +1 -0
- package/types/S5736/generated-meta.d.ts +1 -0
- package/types/S5739/generated-meta.d.ts +1 -0
- package/types/S5757/generated-meta.d.ts +2 -1
- package/types/S5759/generated-meta.d.ts +2 -1
- package/types/S5842/generated-meta.d.ts +1 -0
- package/types/S5843/generated-meta.d.ts +1 -0
- package/types/S5845/generated-meta.d.ts +18 -0
- package/types/S5845/meta.d.ts +2 -0
- package/types/S5850/generated-meta.d.ts +1 -0
- package/types/S5852/generated-meta.d.ts +1 -0
- package/types/S5856/generated-meta.d.ts +1 -0
- package/types/S5860/generated-meta.d.ts +1 -0
- package/types/S5863/generated-meta.d.ts +1 -0
- package/types/S5867/generated-meta.d.ts +1 -0
- package/types/S5868/generated-meta.d.ts +1 -0
- package/types/S5869/generated-meta.d.ts +1 -0
- package/types/S5876/generated-meta.d.ts +1 -0
- package/types/S5906/assertion-suggestions.d.ts +7 -0
- package/types/S5906/assertion-utils.d.ts +14 -0
- package/types/S5906/cypress-suggestions.d.ts +4 -0
- package/types/S5906/expect-chain.d.ts +5 -0
- package/types/S5906/generated-meta.d.ts +18 -0
- package/types/S5906/meta.d.ts +2 -0
- package/types/S5906/playwright-suggestions.d.ts +4 -0
- package/types/{S4817 → S5914}/generated-meta.d.ts +5 -4
- package/types/S5914/meta.d.ts +2 -0
- package/types/S5958/generated-meta.d.ts +1 -0
- package/types/S5973/generated-meta.d.ts +1 -0
- package/types/S6019/generated-meta.d.ts +1 -0
- package/types/S6035/generated-meta.d.ts +1 -0
- package/types/S6079/generated-meta.d.ts +1 -0
- package/types/S6080/generated-meta.d.ts +1 -0
- package/types/S6092/generated-meta.d.ts +1 -0
- package/types/S6249/generated-meta.d.ts +1 -0
- package/types/S6252/generated-meta.d.ts +1 -0
- package/types/S6265/generated-meta.d.ts +1 -0
- package/types/S6268/generated-meta.d.ts +1 -0
- package/types/S6270/generated-meta.d.ts +1 -0
- package/types/S6275/generated-meta.d.ts +1 -0
- package/types/S6281/generated-meta.d.ts +1 -0
- package/types/S6302/generated-meta.d.ts +1 -0
- package/types/S6303/generated-meta.d.ts +1 -0
- package/types/S6304/generated-meta.d.ts +1 -0
- package/types/S6308/generated-meta.d.ts +1 -0
- package/types/S6317/generated-meta.d.ts +1 -0
- package/types/S6319/generated-meta.d.ts +1 -0
- package/types/S6321/generated-meta.d.ts +1 -0
- package/types/S6323/generated-meta.d.ts +1 -0
- package/types/S6324/generated-meta.d.ts +1 -0
- package/types/S6326/generated-meta.d.ts +1 -0
- package/types/S6327/generated-meta.d.ts +1 -0
- package/types/S6328/generated-meta.d.ts +1 -0
- package/types/S6329/generated-meta.d.ts +1 -0
- package/types/S6330/generated-meta.d.ts +1 -0
- package/types/S6331/generated-meta.d.ts +1 -0
- package/types/S6332/generated-meta.d.ts +1 -0
- package/types/S6333/generated-meta.d.ts +1 -0
- package/types/S6351/generated-meta.d.ts +1 -0
- package/types/S6353/generated-meta.d.ts +1 -0
- package/types/S6397/generated-meta.d.ts +1 -0
- package/types/S6418/generated-meta.d.ts +1 -0
- package/types/S6426/generated-meta.d.ts +1 -0
- package/types/S6437/generated-meta.d.ts +1 -0
- package/types/S6439/generated-meta.d.ts +1 -0
- package/types/S6442/generated-meta.d.ts +1 -0
- package/types/S6443/generated-meta.d.ts +1 -0
- package/types/S6486/generated-meta.d.ts +1 -0
- package/types/S6564/generated-meta.d.ts +1 -0
- package/types/S6594/generated-meta.d.ts +1 -0
- package/types/S6627/generated-meta.d.ts +1 -0
- package/types/S6759/generated-meta.d.ts +1 -0
- package/types/S6958/generated-meta.d.ts +1 -0
- package/types/S6959/generated-meta.d.ts +1 -0
- package/types/S7059/generated-meta.d.ts +1 -0
- package/types/S7639/generated-meta.d.ts +1 -0
- package/types/S7790/generated-meta.d.ts +1 -0
- package/types/S8441/generated-meta.d.ts +1 -0
- package/types/S8479/generated-meta.d.ts +2 -1
- package/types/S8754/generated-meta.d.ts +18 -0
- package/types/{S5743 → S8754}/meta.d.ts +1 -1
- package/types/{S4787 → S8780}/generated-meta.d.ts +4 -3
- package/types/S8780/meta.d.ts +2 -0
- package/types/S8781/generated-meta.d.ts +18 -0
- package/types/S8781/meta.d.ts +2 -0
- package/types/S8782/generated-meta.d.ts +18 -0
- package/types/S8782/meta.d.ts +2 -0
- package/types/S8783/generated-meta.d.ts +18 -0
- package/types/S8783/meta.d.ts +2 -0
- package/types/{S4784 → S8786}/generated-meta.d.ts +4 -3
- package/types/S8786/meta.d.ts +2 -0
- package/types/S881/generated-meta.d.ts +1 -0
- package/types/S888/generated-meta.d.ts +1 -0
- package/types/S930/generated-meta.d.ts +1 -0
- package/types/helpers/assertions-chai-common.d.ts +7 -0
- package/types/helpers/assertions-chai.d.ts +4 -0
- package/types/helpers/assertions-cypress.d.ts +7 -0
- package/types/helpers/assertions.d.ts +39 -0
- package/types/helpers/ast.d.ts +10 -0
- package/types/helpers/configs.d.ts +7 -38
- package/types/helpers/cypress.d.ts +11 -0
- package/types/helpers/dependency-manifests/all-in-parent-dirs.d.ts +18 -0
- package/types/helpers/dependency-manifests/closest.d.ts +5 -0
- package/types/helpers/{package-jsons → dependency-manifests}/dependencies.d.ts +22 -17
- package/types/helpers/dependency-manifests/index.d.ts +22 -0
- package/types/helpers/dependency-manifests/parse.d.ts +12 -0
- package/types/helpers/dependency-manifests/parsed-dependency-files.d.ts +8 -0
- package/types/helpers/dependency-manifests/resolvers/deno.d.ts +12 -0
- package/types/helpers/dependency-manifests/resolvers/helpers.d.ts +12 -0
- package/types/helpers/dependency-manifests/resolvers/package-json.d.ts +2 -0
- package/types/helpers/dependency-manifests/resolvers/types.d.ts +46 -0
- package/types/helpers/files.d.ts +10 -2
- package/types/helpers/generate-meta.d.ts +5 -0
- package/types/helpers/mocha-style-test-frameworks.d.ts +19 -0
- package/types/helpers/mocha.d.ts +7 -0
- package/types/helpers/module.d.ts +14 -8
- package/types/helpers/numbers.d.ts +4 -0
- package/types/helpers/playwright.d.ts +2 -0
- package/types/helpers/regex/extract.d.ts +7 -3
- package/types/helpers/sinon.d.ts +0 -1
- package/types/helpers/supertest.d.ts +0 -1
- package/types/helpers/test-file-pattern.d.ts +17 -0
- package/types/helpers/type-origin.d.ts +31 -0
- package/types/helpers/type.d.ts +92 -1
- package/types/helpers/vitest.d.ts +0 -1
- package/types/plugin-rules.d.ts +10 -11
- package/cjs/S2255/rule.js +0 -111
- package/cjs/S4787/rule.js +0 -124
- package/cjs/S4817/rule.js +0 -103
- package/cjs/S4818/generated-meta.js +0 -51
- package/cjs/S4818/meta.js +0 -21
- package/cjs/S4823/generated-meta.js +0 -51
- package/cjs/S4823/meta.js +0 -21
- package/cjs/S4823/rule.js +0 -75
- package/cjs/S4829/generated-meta.js +0 -51
- package/cjs/S4829/meta.js +0 -21
- package/cjs/S4829/rule.js +0 -75
- package/cjs/S5742/generated-meta.js +0 -51
- package/cjs/S5742/meta.js +0 -22
- package/cjs/S5742/rule.js +0 -75
- package/cjs/S5743/generated-meta.js +0 -51
- package/cjs/S5743/rule.js +0 -78
- package/cjs/S6245/generated-meta.js +0 -51
- package/cjs/S6245/meta.js +0 -22
- package/cjs/S6245/rule.js +0 -87
- package/cjs/S6299/generated-meta.js +0 -51
- package/cjs/S6299/index.js +0 -21
- package/cjs/S6299/meta.js +0 -21
- package/cjs/S6299/rule.js +0 -93
- package/cjs/helpers/package-jsons/all-in-parent-dirs.js +0 -31
- package/cjs/helpers/package-jsons/dependencies.js +0 -221
- package/cjs/helpers/package-jsons/index.js +0 -42
- package/cjs/helpers/package-jsons/parse.js +0 -79
- package/docs/aws-s3-bucket-server-encryption.md +0 -9
- package/docs/certificate-transparency.md +0 -9
- package/docs/cookies.md +0 -9
- package/docs/dns-prefetching.md +0 -9
- package/docs/encryption.md +0 -9
- package/docs/no-vue-bypass-sanitization.md +0 -9
- package/docs/process-argv.md +0 -9
- package/docs/regular-expr.md +0 -9
- package/docs/sockets.md +0 -9
- package/docs/standard-input.md +0 -9
- package/docs/xpath.md +0 -9
- package/types/S2255/meta.d.ts +0 -2
- package/types/S4784/meta.d.ts +0 -2
- package/types/S4787/meta.d.ts +0 -2
- package/types/S4817/meta.d.ts +0 -2
- package/types/S4818/generated-meta.d.ts +0 -17
- package/types/S4818/meta.d.ts +0 -2
- package/types/S4823/generated-meta.d.ts +0 -17
- package/types/S4823/meta.d.ts +0 -2
- package/types/S4829/generated-meta.d.ts +0 -17
- package/types/S4829/meta.d.ts +0 -2
- package/types/S5742/generated-meta.d.ts +0 -17
- package/types/S5742/meta.d.ts +0 -3
- package/types/S5743/generated-meta.d.ts +0 -17
- package/types/S6245/generated-meta.d.ts +0 -17
- package/types/S6245/meta.d.ts +0 -3
- package/types/S6299/generated-meta.d.ts +0 -17
- package/types/S6299/index.d.ts +0 -1
- package/types/S6299/meta.d.ts +0 -2
- package/types/S6299/rule.d.ts +0 -2
- package/types/helpers/package-jsons/all-in-parent-dirs.d.ts +0 -10
- package/types/helpers/package-jsons/closest.d.ts +0 -2
- package/types/helpers/package-jsons/index.d.ts +0 -8
- package/types/helpers/package-jsons/parse.d.ts +0 -13
- /package/cjs/{S2255 → S1244}/index.js +0 -0
- /package/cjs/{S4784 → S5845}/index.js +0 -0
- /package/cjs/{S4787 → S5906}/index.js +0 -0
- /package/cjs/{S4817 → S5914}/index.js +0 -0
- /package/cjs/{S4818 → S8754}/index.js +0 -0
- /package/cjs/{S4823 → S8780}/index.js +0 -0
- /package/cjs/{S4829 → S8781}/index.js +0 -0
- /package/cjs/{S5742 → S8782}/index.js +0 -0
- /package/cjs/{S5743 → S8783}/index.js +0 -0
- /package/cjs/{S6245 → S8786}/index.js +0 -0
- /package/types/{S2255 → S1244}/index.d.ts +0 -0
- /package/types/{S2255 → S1244}/rule.d.ts +0 -0
- /package/types/{S4784 → S5845}/index.d.ts +0 -0
- /package/types/{S4784 → S5845}/rule.d.ts +0 -0
- /package/types/{S4787 → S5906}/index.d.ts +0 -0
- /package/types/{S4787 → S5906}/rule.d.ts +0 -0
- /package/types/{S4817 → S5914}/index.d.ts +0 -0
- /package/types/{S4817 → S5914}/rule.d.ts +0 -0
- /package/types/{S4818 → S8754}/index.d.ts +0 -0
- /package/types/{S4818 → S8754}/rule.d.ts +0 -0
- /package/types/{S4823 → S8780}/index.d.ts +0 -0
- /package/types/{S4823 → S8780}/rule.d.ts +0 -0
- /package/types/{S4829 → S8781}/index.d.ts +0 -0
- /package/types/{S4829 → S8781}/rule.d.ts +0 -0
- /package/types/{S5742 → S8782}/index.d.ts +0 -0
- /package/types/{S5742 → S8782}/rule.d.ts +0 -0
- /package/types/{S5743 → S8783}/index.d.ts +0 -0
- /package/types/{S5743 → S8783}/rule.d.ts +0 -0
- /package/types/{S6245 → S8786}/index.d.ts +0 -0
- /package/types/{S6245 → S8786}/rule.d.ts +0 -0
package/cjs/S2699/rule.js
CHANGED
|
@@ -48,8 +48,20 @@ const Mocha = __importStar(require("../helpers/mocha.js"));
|
|
|
48
48
|
const Sinon = __importStar(require("../helpers/sinon.js"));
|
|
49
49
|
const Vitest = __importStar(require("../helpers/vitest.js"));
|
|
50
50
|
const Supertest = __importStar(require("../helpers/supertest.js"));
|
|
51
|
+
const Cypress = __importStar(require("../helpers/cypress.js"));
|
|
51
52
|
const meta = __importStar(require("./generated-meta.js"));
|
|
52
53
|
const typescript_1 = __importDefault(require("typescript"));
|
|
54
|
+
const ASSERTION_LIBRARIES = [
|
|
55
|
+
'chai',
|
|
56
|
+
'sinon',
|
|
57
|
+
'vitest',
|
|
58
|
+
'supertest',
|
|
59
|
+
'@playwright/test',
|
|
60
|
+
'assert',
|
|
61
|
+
'node:assert',
|
|
62
|
+
];
|
|
63
|
+
// runners that expose assertion APIs as globals (no import required).
|
|
64
|
+
const GLOBAL_ASSERTION_DEPENDENCIES = ['jasmine', 'jest', 'cypress', '@playwright/test'];
|
|
53
65
|
/**
|
|
54
66
|
* We assume that the user is using a single assertion library per file,
|
|
55
67
|
* this is why we are not saving if an assertion has been performed for
|
|
@@ -58,10 +70,7 @@ const typescript_1 = __importDefault(require("typescript"));
|
|
|
58
70
|
exports.rule = {
|
|
59
71
|
meta: (0, generate_meta_js_1.generateMeta)(meta),
|
|
60
72
|
create(context) {
|
|
61
|
-
if (!(
|
|
62
|
-
Sinon.isImported(context) ||
|
|
63
|
-
Vitest.isImported(context) ||
|
|
64
|
-
Supertest.isImported(context))) {
|
|
73
|
+
if (!hasSupportedAssertionLibrary(context)) {
|
|
65
74
|
return {};
|
|
66
75
|
}
|
|
67
76
|
const visitedNodes = new Map();
|
|
@@ -76,6 +85,9 @@ exports.rule = {
|
|
|
76
85
|
};
|
|
77
86
|
},
|
|
78
87
|
};
|
|
88
|
+
function hasSupportedAssertionLibrary(context) {
|
|
89
|
+
return (0, module_js_1.importsOrDependsOnModule)(context, ASSERTION_LIBRARIES, GLOBAL_ASSERTION_DEPENDENCIES);
|
|
90
|
+
}
|
|
79
91
|
/**
|
|
80
92
|
* Checks if a test uses the Mocha done callback as an assertion mechanism.
|
|
81
93
|
* Only valid when done is called with an error argument OR passed to an error-handling position.
|
|
@@ -195,7 +207,8 @@ class TestCaseAssertionVisitor {
|
|
|
195
207
|
Chai.isTSAssertion(services, node) ||
|
|
196
208
|
Sinon.isTSAssertion(services, node) ||
|
|
197
209
|
Supertest.isTSAssertion(services, node) ||
|
|
198
|
-
Vitest.isTSAssertion(services, node)
|
|
210
|
+
Vitest.isTSAssertion(services, node) ||
|
|
211
|
+
Cypress.isTSAssertion(node)) {
|
|
199
212
|
visitedTSNodes.set(node, true);
|
|
200
213
|
return true;
|
|
201
214
|
}
|
|
@@ -223,6 +236,7 @@ class TestCaseAssertionVisitor {
|
|
|
223
236
|
Sinon.isAssertion(context, node) ||
|
|
224
237
|
Vitest.isAssertion(context, node) ||
|
|
225
238
|
Supertest.isAssertion(context, node) ||
|
|
239
|
+
Cypress.isAssertion(node) ||
|
|
226
240
|
isGlobalAssertion(context, node)) {
|
|
227
241
|
visitedNodes.set(node, true);
|
|
228
242
|
return true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2703';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2737';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2755';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2757';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2817';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2819';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2870';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2871';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
package/cjs/S2871/rule.js
CHANGED
|
@@ -51,11 +51,34 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
51
51
|
})();
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.rule = void 0;
|
|
54
|
+
const ancestor_js_1 = require("../helpers/ancestor.js");
|
|
54
55
|
const collection_js_1 = require("../helpers/collection.js");
|
|
55
56
|
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
56
57
|
const type_js_1 = require("../helpers/type.js");
|
|
57
58
|
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
58
59
|
const meta = __importStar(require("./generated-meta.js"));
|
|
60
|
+
const allSortLike = new Set([...collection_js_1.sortLike, ...collection_js_1.copyingSortLike]);
|
|
61
|
+
const equalityOperators = new Set(['==', '!=', '===', '!==']);
|
|
62
|
+
// Matches JSON.stringify(<expr>) — exactly one argument, non-computed property access.
|
|
63
|
+
// Does not match: JSON.stringify(x, replacer, space), JSON['stringify'](x), myObj.stringify(x).
|
|
64
|
+
function isJsonStringifyCall(node) {
|
|
65
|
+
if (node.type !== 'CallExpression') {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
const callExpr = node;
|
|
69
|
+
if (callExpr.arguments.length !== 1) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const callee = callExpr.callee;
|
|
73
|
+
if (callee.type !== 'MemberExpression') {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return (!callee.computed &&
|
|
77
|
+
callee.object.type === 'Identifier' &&
|
|
78
|
+
callee.object.name === 'JSON' &&
|
|
79
|
+
callee.property.type === 'Identifier' &&
|
|
80
|
+
callee.property.name === 'stringify');
|
|
81
|
+
}
|
|
59
82
|
const compareNumberFunctionPlaceholder = '(a, b) => (a - b)';
|
|
60
83
|
const compareBigIntFunctionPlaceholder = [
|
|
61
84
|
'(a, b) => {',
|
|
@@ -90,13 +113,74 @@ exports.rule = {
|
|
|
90
113
|
const { object, property: node } = call.callee;
|
|
91
114
|
const text = sourceCode.getText(node);
|
|
92
115
|
const type = (0, type_js_1.getTypeFromTreeNode)(object, services);
|
|
93
|
-
if (
|
|
116
|
+
if (allSortLike.has(text) && (0, type_js_1.isArrayLikeType)(type, services)) {
|
|
117
|
+
if (isJsonStringifySortComparison(call)) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
94
120
|
const suggest = getSuggestions(call, type);
|
|
95
121
|
const messageId = getMessageId(type);
|
|
96
122
|
context.report({ node, suggest, messageId });
|
|
97
123
|
}
|
|
98
124
|
},
|
|
99
125
|
};
|
|
126
|
+
// Matches JSON.stringify(arr.sort()) == JSON.stringify(arr.sort()) or
|
|
127
|
+
// JSON.stringify(arr.toSorted()) == JSON.stringify(arr.toSorted()) when both
|
|
128
|
+
// sides use the same sort family over primitive arrays with known-safe
|
|
129
|
+
// default sort semantics (number, string, boolean, bigint).
|
|
130
|
+
function isJsonStringifySortComparison(call) {
|
|
131
|
+
const parent = (0, ancestor_js_1.getNodeParent)(call);
|
|
132
|
+
if (!isJsonStringifyCall(parent) || parent.arguments[0] !== call) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
const grandparent = (0, ancestor_js_1.getNodeParent)(parent);
|
|
136
|
+
if (grandparent.type !== 'BinaryExpression' || !equalityOperators.has(grandparent.operator)) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
const sibling = grandparent.left === parent ? grandparent.right : grandparent.left;
|
|
140
|
+
if (!isJsonStringifyCall(sibling)) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
const callInfo = getBareSortInfo(call);
|
|
144
|
+
const siblingInfo = getBareSortInfo(sibling.arguments[0]);
|
|
145
|
+
if (callInfo === null || siblingInfo === null) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
return (callInfo.methodName === siblingInfo.methodName &&
|
|
149
|
+
isPrimitiveSortReceiver(callInfo.receiver) &&
|
|
150
|
+
isPrimitiveSortReceiver(siblingInfo.receiver));
|
|
151
|
+
}
|
|
152
|
+
function getBareSortInfo(node) {
|
|
153
|
+
if (node.type !== 'CallExpression') {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
const callExpr = node;
|
|
157
|
+
if (callExpr.arguments.length !== 0) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
if (callExpr.callee.type !== 'MemberExpression') {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
const callee = callExpr.callee;
|
|
164
|
+
const text = sourceCode.getText(callee.property);
|
|
165
|
+
if (!allSortLike.has(text)) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
const receiverType = (0, type_js_1.getTypeFromTreeNode)(callee.object, services);
|
|
169
|
+
if (!(0, type_js_1.isArrayLikeType)(receiverType, services)) {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
methodName: text,
|
|
174
|
+
receiver: callee.object,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function isPrimitiveSortReceiver(receiver) {
|
|
178
|
+
const receiverType = (0, type_js_1.getTypeFromTreeNode)(receiver, services);
|
|
179
|
+
return ((0, type_js_1.isNumberArray)(receiverType, services) ||
|
|
180
|
+
(0, type_js_1.isBigIntArray)(receiverType, services) ||
|
|
181
|
+
(0, type_js_1.isStringArray)(receiverType, services) ||
|
|
182
|
+
(0, type_js_1.isBooleanArray)(receiverType, services));
|
|
183
|
+
}
|
|
100
184
|
function getSuggestions(call, type) {
|
|
101
185
|
const suggestions = [];
|
|
102
186
|
if ((0, type_js_1.isNumberArray)(type, services)) {
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2970';
|
|
|
49
49
|
exports.scope = 'Tests';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S2990';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -53,3 +53,4 @@ exports.sonarKey = 'S2999';
|
|
|
53
53
|
exports.scope = 'Main';
|
|
54
54
|
exports.languages = ['js', 'ts'];
|
|
55
55
|
exports.requiredDependency = [];
|
|
56
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3001';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3003';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3317';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,12 +31,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
38
38
|
docs: {
|
|
39
|
-
description: '
|
|
39
|
+
description: 'Cookies should have the "HttpOnly" flag',
|
|
40
40
|
recommended: true,
|
|
41
41
|
url: 'https://sonarsource.github.io/rspec/#/rspec/S3330/javascript',
|
|
42
42
|
requiresTypeChecking: false,
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3330';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3358';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3402';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3403';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
package/cjs/S3403/rule.js
CHANGED
|
@@ -59,6 +59,7 @@ const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
|
59
59
|
const type_js_1 = require("../helpers/type.js");
|
|
60
60
|
const parser_services_js_1 = require("../helpers/parser-services.js");
|
|
61
61
|
const location_js_1 = require("../helpers/location.js");
|
|
62
|
+
const ast_js_1 = require("../helpers/ast.js");
|
|
62
63
|
const meta = __importStar(require("./generated-meta.js"));
|
|
63
64
|
exports.rule = {
|
|
64
65
|
meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
|
|
@@ -82,7 +83,9 @@ exports.rule = {
|
|
|
82
83
|
return {
|
|
83
84
|
BinaryExpression: (node) => {
|
|
84
85
|
const { left, operator, right } = node;
|
|
85
|
-
if (['===', '!=='].includes(operator) &&
|
|
86
|
+
if (['===', '!=='].includes(operator) &&
|
|
87
|
+
!isDefensiveIndexedNullishCheck(left, right) &&
|
|
88
|
+
!isComparableTo(left, right)) {
|
|
86
89
|
const [actual, expected, outcome] = operator === '===' ? ['===', '==', 'false'] : ['!==', '!=', 'true'];
|
|
87
90
|
const operatorToken = context.sourceCode
|
|
88
91
|
.getTokensBetween(left, right)
|
|
@@ -102,6 +105,23 @@ exports.rule = {
|
|
|
102
105
|
};
|
|
103
106
|
},
|
|
104
107
|
};
|
|
108
|
+
function isDefensiveIndexedNullishCheck(left, right) {
|
|
109
|
+
return ((isNullishLiteral(left) && isIndexedAccess(right)) ||
|
|
110
|
+
(isNullishLiteral(right) && isIndexedAccess(left)));
|
|
111
|
+
}
|
|
112
|
+
function isNullishLiteral(node) {
|
|
113
|
+
return ((0, ast_js_1.isNullLiteral)(node) ||
|
|
114
|
+
(0, ast_js_1.isUndefined)(node) ||
|
|
115
|
+
(node.type === 'UnaryExpression' && node.operator === 'void'));
|
|
116
|
+
}
|
|
117
|
+
function isIndexedAccess(node) {
|
|
118
|
+
if (node.type === 'MemberExpression') {
|
|
119
|
+
return node.computed;
|
|
120
|
+
}
|
|
121
|
+
return (node.type === 'ChainExpression' &&
|
|
122
|
+
node.expression.type === 'MemberExpression' &&
|
|
123
|
+
node.expression.computed);
|
|
124
|
+
}
|
|
105
125
|
/**
|
|
106
126
|
* Checks if a type is indeterminate (its actual value cannot be determined at compile time).
|
|
107
127
|
* - Unknown: can be compared with anything
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3415';
|
|
|
49
49
|
exports.scope = 'Tests';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3499';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3500';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3513';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3514';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,3 +49,4 @@ exports.sonarKey = 'S3516';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = true;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -54,4 +54,5 @@ exports.sonarKey = 'S3524';
|
|
|
54
54
|
exports.scope = 'Main';
|
|
55
55
|
exports.languages = ['js', 'ts'];
|
|
56
56
|
exports.requiredDependency = [];
|
|
57
|
+
exports.skipOnGeneratedSource = false;
|
|
57
58
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'suggestion',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3525';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|
|
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
31
31
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredEcmaVersion = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
34
|
+
exports.requiredEcmaVersion = exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
35
|
__exportStar(require("./meta.js"), exports);
|
|
36
36
|
exports.meta = {
|
|
37
37
|
type: 'problem',
|
|
@@ -49,4 +49,5 @@ exports.sonarKey = 'S3531';
|
|
|
49
49
|
exports.scope = 'Main';
|
|
50
50
|
exports.languages = ['js', 'ts'];
|
|
51
51
|
exports.requiredDependency = [];
|
|
52
|
+
exports.skipOnGeneratedSource = false;
|
|
52
53
|
exports.requiredEcmaVersion = 2015;
|