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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { TSESTree } from '@typescript-eslint/utils';
|
|
2
|
+
import type { RequiredParserServices } from './parser-services.js';
|
|
3
|
+
export type TypeOrigin = {
|
|
4
|
+
internal: TSESTree.TypeNode[];
|
|
5
|
+
external: TSESTree.TypeNode[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Partitions the syntactic members of a type annotation into "internal"
|
|
9
|
+
* (user-writable in this project) and "external" (declared in node_modules
|
|
10
|
+
* or in the TypeScript default lib).
|
|
11
|
+
*
|
|
12
|
+
* Operates on the syntactic AST node, not on a resolved `ts.Type`. Returning
|
|
13
|
+
* the original AST nodes lets callers produce locations, suggestions, or
|
|
14
|
+
* fixes targeting exactly what the user wrote.
|
|
15
|
+
*
|
|
16
|
+
* Classification rules per top-level member:
|
|
17
|
+
* - Keyword / literal types -> internal (the user wrote them directly).
|
|
18
|
+
* - TSTypeReference -> resolves the type name to a symbol and inspects its
|
|
19
|
+
* declarations. A reference is external only when ALL declarations live in
|
|
20
|
+
* files that satisfy `isSourceFileFromExternalLibrary` or
|
|
21
|
+
* `isSourceFileDefaultLibrary`. Any local declaration (declaration-merging
|
|
22
|
+
* escape hatch) makes the reference internal.
|
|
23
|
+
* - Any other composite constructor (TSIntersectionType, TSArrayType,
|
|
24
|
+
* TSTypeLiteral, TSConditionalType, ...) -> internal at the top level. We
|
|
25
|
+
* do not recurse; callers can if they need to.
|
|
26
|
+
*
|
|
27
|
+
* Known limitation: alias chains are not followed. If the user re-aliases an
|
|
28
|
+
* external type locally (e.g. `type Inner = ReactNode`), the local alias is
|
|
29
|
+
* internal because the user has a place to edit.
|
|
30
|
+
*/
|
|
31
|
+
export declare function classifyTypesByOrigin(typeNode: TSESTree.TypeNode, services: RequiredParserServices): TypeOrigin;
|
package/types/helpers/type.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
|
|
|
4
4
|
import type { RequiredParserServices } from './parser-services.js';
|
|
5
5
|
import type { Rule } from 'eslint';
|
|
6
6
|
export type RuleContext = TSESLint.RuleContext<string, string[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Returns true when `node` resolves to the built-in `Array` type.
|
|
9
|
+
*/
|
|
7
10
|
export declare function isArray(node: estree.Node, services: RequiredParserServices): boolean;
|
|
8
11
|
/**
|
|
9
12
|
* TypeScript provides a set of utility types to facilitate type transformations.
|
|
@@ -18,14 +21,41 @@ export declare const UTILITY_TYPES: Set<string>;
|
|
|
18
21
|
* @returns
|
|
19
22
|
*/
|
|
20
23
|
export declare function isTypedArray(node: estree.Node, services: RequiredParserServices): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Returns true when `node` resolves to a string-like type.
|
|
26
|
+
*/
|
|
21
27
|
export declare function isString(node: estree.Node, services: RequiredParserServices): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Returns true when `node` resolves to a number-like type.
|
|
30
|
+
*/
|
|
22
31
|
export declare function isNumber(node: estree.Node, services: RequiredParserServices): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Returns true when `type` is bigint-like.
|
|
34
|
+
*/
|
|
23
35
|
export declare function isBigIntType(type: ts.Type): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Returns true when `type` is number-like.
|
|
38
|
+
*/
|
|
24
39
|
export declare function isNumberType(type: ts.Type): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Returns true when `type` is string-like.
|
|
42
|
+
*/
|
|
25
43
|
export declare function isStringType(type: ts.Type): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Returns true when `node` resolves to a function type.
|
|
46
|
+
*/
|
|
26
47
|
export declare function isFunction(node: estree.Node, services: RequiredParserServices): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Returns true when `node` resolves to a union type.
|
|
50
|
+
*/
|
|
27
51
|
export declare function isUnion(node: estree.Node, services: RequiredParserServices): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Returns true when `node` resolves to `undefined`, `null`, or a union containing either.
|
|
54
|
+
*/
|
|
28
55
|
export declare function isUndefinedOrNull(node: estree.Node, services: RequiredParserServices): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Returns true when `node` resolves to a thenable type.
|
|
58
|
+
*/
|
|
29
59
|
export declare function isThenable(node: estree.Node, services: RequiredParserServices): boolean;
|
|
30
60
|
/**
|
|
31
61
|
* Checks if a node's type is either:
|
|
@@ -37,7 +67,35 @@ export declare function isThenable(node: estree.Node, services: RequiredParserSe
|
|
|
37
67
|
* optional async callbacks (() => void | Promise<void>).
|
|
38
68
|
*/
|
|
39
69
|
export declare function isThenableOrVoidUnion(node: estree.Node, services: RequiredParserServices): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Returns true when `type` is exactly `any`.
|
|
72
|
+
*/
|
|
40
73
|
export declare function isAny(type: ts.Type): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Returns true when both types are specific enough to compare (neither `any`
|
|
76
|
+
* nor `unknown`) and are mutually assignable.
|
|
77
|
+
*
|
|
78
|
+
* Mutual assignability is stricter than symbol equality for generic aliases:
|
|
79
|
+
* `Props<User>` and `Props<Product>` share the same alias symbol, but they are
|
|
80
|
+
* not mutually assignable and therefore do not represent the same effective type.
|
|
81
|
+
*/
|
|
82
|
+
export declare function areMutuallyAssignableTypes(checker: ts.TypeChecker, left: ts.Type | undefined, right: ts.Type | undefined): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Returns true when both types come from the same named declaration and, for
|
|
85
|
+
* generic declarations, are instantiated with the same type arguments.
|
|
86
|
+
*
|
|
87
|
+
* The comparison has two steps:
|
|
88
|
+
* 1. the declarations must resolve to the same symbol
|
|
89
|
+
* 2. each type argument must match through `areSameTypeArguments(...)`
|
|
90
|
+
*
|
|
91
|
+
* That helper can call back into this function for named type arguments, so
|
|
92
|
+
* generic comparisons recurse through nested declarations.
|
|
93
|
+
*
|
|
94
|
+
* This is intentionally stricter than structural equality: `Props<User>` and
|
|
95
|
+
* `Props<Product>` are different, and `Props<User>` also stays different from
|
|
96
|
+
* `Props<{ id: string }>` even if the shapes happen to match.
|
|
97
|
+
*/
|
|
98
|
+
export declare function areSameTypeDeclarations(checker: ts.TypeChecker, left: ts.Type | undefined, right: ts.Type | undefined): boolean;
|
|
41
99
|
/**
|
|
42
100
|
* Checks if a node has a generic type like:
|
|
43
101
|
*
|
|
@@ -50,9 +108,21 @@ export declare function isAny(type: ts.Type): boolean;
|
|
|
50
108
|
* @returns
|
|
51
109
|
*/
|
|
52
110
|
export declare function isGenericType(node: TSESTree.Node, services: RequiredParserServices): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Returns the TypeScript type resolved at `node`.
|
|
113
|
+
*/
|
|
53
114
|
export declare function getTypeFromTreeNode(node: estree.Node, services: RequiredParserServices): ts.Type;
|
|
115
|
+
/**
|
|
116
|
+
* Returns the widened string representation of the type resolved at `node`.
|
|
117
|
+
*/
|
|
54
118
|
export declare function getTypeAsString(node: estree.Node, services: RequiredParserServices): string;
|
|
119
|
+
/**
|
|
120
|
+
* Returns the symbol resolved at `node`, if any.
|
|
121
|
+
*/
|
|
55
122
|
export declare function getSymbolAtLocation(node: estree.Node, services: RequiredParserServices): ts.Symbol | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Returns the resolved call signature for the call-like expression at `node`.
|
|
125
|
+
*/
|
|
56
126
|
export declare function getSignatureFromCallee(node: estree.Node, services: RequiredParserServices): ts.Signature | undefined;
|
|
57
127
|
/**
|
|
58
128
|
* This function checks if a type may correspond to an array type. Beyond simple array types, it will also
|
|
@@ -79,16 +149,37 @@ export declare function isNumberArray(type: ts.Type, services: RequiredParserSer
|
|
|
79
149
|
* @param services The services used to get access to the TypeScript type checker
|
|
80
150
|
*/
|
|
81
151
|
export declare function isBigIntArray(type: ts.Type, services: RequiredParserServices): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Test if the provided type is an array of booleans.
|
|
154
|
+
* @param type A TypeScript type.
|
|
155
|
+
* @param services The services used to get access to the TypeScript type checker
|
|
156
|
+
*/
|
|
157
|
+
export declare function isBooleanArray(type: ts.Type, services: RequiredParserServices): boolean;
|
|
82
158
|
/**
|
|
83
159
|
* Checks whether a TypeScript type node denotes a type alias.
|
|
84
160
|
* @param node a type node to check
|
|
85
161
|
* @param context the rule context
|
|
86
162
|
*/
|
|
87
163
|
export declare function isTypeAlias(node: TSESTree.TypeNode, context: Rule.RuleContext): boolean | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Returns true when `type` is the boolean literal `true`.
|
|
166
|
+
*/
|
|
88
167
|
export declare function isBooleanTrueType(type: ts.Type): boolean;
|
|
89
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Returns true when `type` is boolean-like.
|
|
170
|
+
*/
|
|
171
|
+
export declare function isBooleanType({ flags }: ts.Type): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Returns true when `type` is `null`, `undefined`, or a union containing either.
|
|
174
|
+
*/
|
|
90
175
|
export declare function isNullOrUndefinedType({ flags }: ts.Type): number;
|
|
176
|
+
/**
|
|
177
|
+
* Returns true when `type` is object-like.
|
|
178
|
+
*/
|
|
91
179
|
export declare function isObjectType({ flags }: ts.Type): number;
|
|
180
|
+
/**
|
|
181
|
+
* Returns true when `node` exposes a callable member named `methodName`.
|
|
182
|
+
*/
|
|
92
183
|
export declare function typeHasMethod(node: estree.Node, methodName: string, services: RequiredParserServices): boolean;
|
|
93
184
|
/**
|
|
94
185
|
* Checks if a type is iterable (can be used in for-of loops).
|
|
@@ -2,6 +2,5 @@ import type { Rule } from 'eslint';
|
|
|
2
2
|
import type estree from 'estree';
|
|
3
3
|
import type { ParserServicesWithTypeInformation } from '@typescript-eslint/utils';
|
|
4
4
|
import ts from 'typescript';
|
|
5
|
-
export declare function isImported(context: Rule.RuleContext): boolean;
|
|
6
5
|
export declare function isAssertion(context: Rule.RuleContext, node: estree.Node): boolean;
|
|
7
6
|
export declare function isTSAssertion(services: ParserServicesWithTypeInformation, node: ts.Node): boolean;
|
package/types/plugin-rules.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export declare const rules: {
|
|
|
29
29
|
'no-duplicate-string': import("eslint").Rule.RuleModule;
|
|
30
30
|
'no-case-label-in-switch': import("eslint").Rule.RuleModule;
|
|
31
31
|
'no-parameter-reassignment': import("eslint").Rule.RuleModule;
|
|
32
|
+
'no-floating-point-equality': import("eslint").Rule.RuleModule;
|
|
32
33
|
'prefer-while': import("eslint").Rule.RuleModule;
|
|
33
34
|
'no-sonar-comments': import("eslint").Rule.RuleModule;
|
|
34
35
|
'no-small-switch': import("eslint").Rule.RuleModule;
|
|
@@ -73,7 +74,6 @@ export declare const rules: {
|
|
|
73
74
|
'arguments-order': import("eslint").Rule.RuleModule;
|
|
74
75
|
'pseudo-random': import("eslint").Rule.RuleModule;
|
|
75
76
|
'for-loop-increment-sign': import("eslint").Rule.RuleModule;
|
|
76
|
-
cookies: import("eslint").Rule.RuleModule;
|
|
77
77
|
'null-dereference': import("eslint").Rule.RuleModule;
|
|
78
78
|
'no-selector-parameter': import("eslint").Rule.RuleModule;
|
|
79
79
|
'updated-loop-counter': import("eslint").Rule.RuleModule;
|
|
@@ -164,15 +164,9 @@ export declare const rules: {
|
|
|
164
164
|
'prefer-promise-shorthand': import("eslint").Rule.RuleModule;
|
|
165
165
|
'os-command': import("eslint").Rule.RuleModule;
|
|
166
166
|
'no-redundant-optional': import("eslint").Rule.RuleModule;
|
|
167
|
-
'regular-expr': import("eslint").Rule.RuleModule;
|
|
168
|
-
encryption: import("eslint").Rule.RuleModule;
|
|
169
167
|
hashing: import("eslint").Rule.RuleModule;
|
|
170
168
|
'bool-param-default': import("eslint").Rule.RuleModule;
|
|
171
|
-
xpath: import("eslint").Rule.RuleModule;
|
|
172
|
-
sockets: import("eslint").Rule.RuleModule;
|
|
173
169
|
'no-try-promise': import("eslint").Rule.RuleModule;
|
|
174
|
-
'process-argv': import("eslint").Rule.RuleModule;
|
|
175
|
-
'standard-input': import("eslint").Rule.RuleModule;
|
|
176
170
|
'unverified-certificate': import("eslint").Rule.RuleModule;
|
|
177
171
|
'no-unsafe-unzip': import("eslint").Rule.RuleModule;
|
|
178
172
|
cors: import("eslint").Rule.RuleModule;
|
|
@@ -199,12 +193,11 @@ export declare const rules: {
|
|
|
199
193
|
'no-mime-sniff': import("eslint").Rule.RuleModule;
|
|
200
194
|
'no-referrer-policy': import("eslint").Rule.RuleModule;
|
|
201
195
|
'strict-transport-security': import("eslint").Rule.RuleModule;
|
|
202
|
-
'certificate-transparency': import("eslint").Rule.RuleModule;
|
|
203
|
-
'dns-prefetching': import("eslint").Rule.RuleModule;
|
|
204
196
|
'confidential-information-logging': import("eslint").Rule.RuleModule;
|
|
205
197
|
'no-ip-forward': import("eslint").Rule.RuleModule;
|
|
206
198
|
'empty-string-repetition': import("eslint").Rule.RuleModule;
|
|
207
199
|
'regex-complexity': import("eslint").Rule.RuleModule;
|
|
200
|
+
'no-incompatible-assertion-types': import("eslint").Rule.RuleModule;
|
|
208
201
|
'anchor-precedence': import("eslint").Rule.RuleModule;
|
|
209
202
|
'slow-regex': import("eslint").Rule.RuleModule;
|
|
210
203
|
'no-invalid-regexp': import("eslint").Rule.RuleModule;
|
|
@@ -214,6 +207,8 @@ export declare const rules: {
|
|
|
214
207
|
'no-misleading-character-class': import("eslint").Rule.RuleModule;
|
|
215
208
|
'duplicates-in-character-class': import("eslint").Rule.RuleModule;
|
|
216
209
|
'session-regeneration': import("eslint").Rule.RuleModule;
|
|
210
|
+
'prefer-specific-assertions': import("eslint").Rule.RuleModule;
|
|
211
|
+
'no-trivial-assertions': import("eslint").Rule.RuleModule;
|
|
217
212
|
'test-check-exception': import("eslint").Rule.RuleModule;
|
|
218
213
|
'stable-tests': import("eslint").Rule.RuleModule;
|
|
219
214
|
'no-empty-after-reluctant': import("eslint").Rule.RuleModule;
|
|
@@ -221,7 +216,6 @@ export declare const rules: {
|
|
|
221
216
|
'no-code-after-done': import("eslint").Rule.RuleModule;
|
|
222
217
|
'disabled-timeout': import("eslint").Rule.RuleModule;
|
|
223
218
|
'chai-determinate-assertion': import("eslint").Rule.RuleModule;
|
|
224
|
-
'aws-s3-bucket-server-encryption': import("eslint").Rule.RuleModule;
|
|
225
219
|
'aws-s3-bucket-insecure-http': import("eslint").Rule.RuleModule;
|
|
226
220
|
'aws-s3-bucket-versioning': import("eslint").Rule.RuleModule;
|
|
227
221
|
'aws-s3-bucket-granted-access': import("eslint").Rule.RuleModule;
|
|
@@ -229,7 +223,6 @@ export declare const rules: {
|
|
|
229
223
|
'aws-iam-public-access': import("eslint").Rule.RuleModule;
|
|
230
224
|
'aws-ec2-unencrypted-ebs-volume': import("eslint").Rule.RuleModule;
|
|
231
225
|
'aws-s3-bucket-public-access': import("eslint").Rule.RuleModule;
|
|
232
|
-
'no-vue-bypass-sanitization': import("eslint").Rule.RuleModule;
|
|
233
226
|
'aws-iam-all-privileges': import("eslint").Rule.RuleModule;
|
|
234
227
|
'aws-rds-unencrypted-databases': import("eslint").Rule.RuleModule;
|
|
235
228
|
'aws-iam-all-resources-accessible': import("eslint").Rule.RuleModule;
|
|
@@ -268,4 +261,10 @@ export declare const rules: {
|
|
|
268
261
|
'dynamically-constructed-templates': import("eslint").Rule.RuleModule;
|
|
269
262
|
'no-session-cookies-on-static-assets': import("eslint").Rule.RuleModule;
|
|
270
263
|
'dompurify-unsafe-config': import("eslint").Rule.RuleModule;
|
|
264
|
+
'no-duplicate-test-title': import("eslint").Rule.RuleModule;
|
|
265
|
+
'async-test-assertions': import("eslint").Rule.RuleModule;
|
|
266
|
+
'no-empty-test-title': import("eslint").Rule.RuleModule;
|
|
267
|
+
'hooks-before-test-cases': import("eslint").Rule.RuleModule;
|
|
268
|
+
'no-forced-browser-interaction': import("eslint").Rule.RuleModule;
|
|
269
|
+
'super-linear-regex': import("eslint").Rule.RuleModule;
|
|
271
270
|
};
|
package/cjs/S2255/rule.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* SonarQube JavaScript Plugin
|
|
4
|
-
* Copyright (C) SonarSource Sàrl
|
|
5
|
-
* mailto:info AT sonarsource DOT com
|
|
6
|
-
*
|
|
7
|
-
* You can redistribute and/or modify this program under the terms of
|
|
8
|
-
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
-
* See the Sonar Source-Available License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the Sonar Source-Available License
|
|
16
|
-
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
17
|
-
*/
|
|
18
|
-
// https://sonarsource.github.io/rspec/#/rspec/S2255/javascript
|
|
19
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
-
}
|
|
25
|
-
Object.defineProperty(o, k2, desc);
|
|
26
|
-
}) : (function(o, m, k, k2) {
|
|
27
|
-
if (k2 === undefined) k2 = k;
|
|
28
|
-
o[k2] = m[k];
|
|
29
|
-
}));
|
|
30
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
-
}) : function(o, v) {
|
|
33
|
-
o["default"] = v;
|
|
34
|
-
});
|
|
35
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
-
var ownKeys = function(o) {
|
|
37
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
-
var ar = [];
|
|
39
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
-
return ar;
|
|
41
|
-
};
|
|
42
|
-
return ownKeys(o);
|
|
43
|
-
};
|
|
44
|
-
return function (mod) {
|
|
45
|
-
if (mod && mod.__esModule) return mod;
|
|
46
|
-
var result = {};
|
|
47
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
-
__setModuleDefault(result, mod);
|
|
49
|
-
return result;
|
|
50
|
-
};
|
|
51
|
-
})();
|
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.rule = void 0;
|
|
54
|
-
const generate_meta_js_1 = require("../helpers/generate-meta.js");
|
|
55
|
-
const ast_js_1 = require("../helpers/ast.js");
|
|
56
|
-
const meta = __importStar(require("./generated-meta.js"));
|
|
57
|
-
exports.rule = {
|
|
58
|
-
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
59
|
-
messages: {
|
|
60
|
-
safeCookie: 'Make sure that cookie is written safely here.',
|
|
61
|
-
},
|
|
62
|
-
}),
|
|
63
|
-
create(context) {
|
|
64
|
-
let usingExpressFramework = false;
|
|
65
|
-
return {
|
|
66
|
-
Program() {
|
|
67
|
-
// init flag for each file
|
|
68
|
-
usingExpressFramework = false;
|
|
69
|
-
},
|
|
70
|
-
Literal(node) {
|
|
71
|
-
if (node.value === 'express') {
|
|
72
|
-
usingExpressFramework = true;
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
AssignmentExpression(node) {
|
|
76
|
-
const { left } = node;
|
|
77
|
-
if (left.type === 'MemberExpression') {
|
|
78
|
-
const { object, property } = left;
|
|
79
|
-
if ((0, ast_js_1.isIdentifier)(object, 'document') && (0, ast_js_1.isIdentifier)(property, 'cookie')) {
|
|
80
|
-
context.report({
|
|
81
|
-
messageId: 'safeCookie',
|
|
82
|
-
node: left,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
CallExpression(node) {
|
|
88
|
-
const { callee, arguments: args } = node;
|
|
89
|
-
if (callee.type === 'MemberExpression' &&
|
|
90
|
-
usingExpressFramework &&
|
|
91
|
-
(0, ast_js_1.isIdentifier)(callee.property, 'cookie', 'cookies')) {
|
|
92
|
-
context.report({
|
|
93
|
-
messageId: 'safeCookie',
|
|
94
|
-
node,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (callee.type === 'MemberExpression' &&
|
|
98
|
-
(0, ast_js_1.isIdentifier)(callee.property, 'setHeader') &&
|
|
99
|
-
isLiteral(args[0], 'Set-Cookie')) {
|
|
100
|
-
context.report({
|
|
101
|
-
messageId: 'safeCookie',
|
|
102
|
-
node: callee,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
function isLiteral(node, value) {
|
|
110
|
-
return node?.type === 'Literal' && node.value === value;
|
|
111
|
-
}
|
package/cjs/S4787/rule.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* SonarQube JavaScript Plugin
|
|
4
|
-
* Copyright (C) SonarSource Sàrl
|
|
5
|
-
* mailto:info AT sonarsource DOT com
|
|
6
|
-
*
|
|
7
|
-
* You can redistribute and/or modify this program under the terms of
|
|
8
|
-
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
-
* See the Sonar Source-Available License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the Sonar Source-Available License
|
|
16
|
-
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
17
|
-
*/
|
|
18
|
-
// https://sonarsource.github.io/rspec/#/rspec/S4787/javascript
|
|
19
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
-
}
|
|
25
|
-
Object.defineProperty(o, k2, desc);
|
|
26
|
-
}) : (function(o, m, k, k2) {
|
|
27
|
-
if (k2 === undefined) k2 = k;
|
|
28
|
-
o[k2] = m[k];
|
|
29
|
-
}));
|
|
30
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
-
}) : function(o, v) {
|
|
33
|
-
o["default"] = v;
|
|
34
|
-
});
|
|
35
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
-
var ownKeys = function(o) {
|
|
37
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
-
var ar = [];
|
|
39
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
-
return ar;
|
|
41
|
-
};
|
|
42
|
-
return ownKeys(o);
|
|
43
|
-
};
|
|
44
|
-
return function (mod) {
|
|
45
|
-
if (mod && mod.__esModule) return mod;
|
|
46
|
-
var result = {};
|
|
47
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
-
__setModuleDefault(result, mod);
|
|
49
|
-
return result;
|
|
50
|
-
};
|
|
51
|
-
})();
|
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.rule = void 0;
|
|
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 meta = __importStar(require("./generated-meta.js"));
|
|
58
|
-
const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
|
|
59
|
-
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
60
|
-
messages: {
|
|
61
|
-
safeEncryption: 'Make sure that encrypting data is safe here.',
|
|
62
|
-
},
|
|
63
|
-
}),
|
|
64
|
-
create(context) {
|
|
65
|
-
// for client side
|
|
66
|
-
let usingCryptoInFile = false;
|
|
67
|
-
return {
|
|
68
|
-
Program() {
|
|
69
|
-
// init flag for each file
|
|
70
|
-
usingCryptoInFile = false;
|
|
71
|
-
},
|
|
72
|
-
MemberExpression(node) {
|
|
73
|
-
// detect 'SubtleCrypto' object
|
|
74
|
-
// which can be retrieved by 'crypto.subtle' or 'window.crypto.subtle'
|
|
75
|
-
const { object, property } = node;
|
|
76
|
-
if ((0, ast_js_1.isIdentifier)(property, 'subtle') &&
|
|
77
|
-
((0, ast_js_1.isIdentifier)(object, 'crypto') || (0, ast_js_1.isMemberWithProperty)(object, 'crypto'))) {
|
|
78
|
-
usingCryptoInFile = true;
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
'CallExpression:exit'(node) {
|
|
82
|
-
const { callee } = node;
|
|
83
|
-
if (usingCryptoInFile) {
|
|
84
|
-
// e.g.: crypto.subtle.encrypt()
|
|
85
|
-
checkForClientSide(callee, context, clientSideMethods);
|
|
86
|
-
}
|
|
87
|
-
// e.g.
|
|
88
|
-
// const crypto = require("crypto");
|
|
89
|
-
// const cipher = crypto.createCipher(alg, key);
|
|
90
|
-
checkForServerSide(callee, context, serverSideMethods);
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
function checkForServerSide(callee, context, serverSideMethods) {
|
|
96
|
-
const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
|
|
97
|
-
if (serverSideMethods.some(method => fqn === `crypto.${method}`)) {
|
|
98
|
-
context.report({
|
|
99
|
-
messageId: 'safeEncryption',
|
|
100
|
-
node: callee,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
function checkForClientSide(callee, context, clientSideMethods) {
|
|
105
|
-
if ((0, ast_js_1.isIdentifier)(callee, ...clientSideMethods) ||
|
|
106
|
-
(0, ast_js_1.isMemberWithProperty)(callee, ...clientSideMethods)) {
|
|
107
|
-
context.report({
|
|
108
|
-
messageId: 'safeEncryption',
|
|
109
|
-
node: callee,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
const clientSideEncryptMethods = ['encrypt', 'decrypt'];
|
|
114
|
-
const serverSideEncryptMethods = [
|
|
115
|
-
'createCipher',
|
|
116
|
-
'createCipheriv',
|
|
117
|
-
'createDecipher',
|
|
118
|
-
'createDecipheriv',
|
|
119
|
-
'publicEncrypt',
|
|
120
|
-
'publicDecrypt',
|
|
121
|
-
'privateEncrypt',
|
|
122
|
-
'privateDecrypt',
|
|
123
|
-
];
|
|
124
|
-
exports.rule = getEncryptionRuleModule(clientSideEncryptMethods, serverSideEncryptMethods);
|
package/cjs/S4817/rule.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* SonarQube JavaScript Plugin
|
|
4
|
-
* Copyright (C) SonarSource Sàrl
|
|
5
|
-
* mailto:info AT sonarsource DOT com
|
|
6
|
-
*
|
|
7
|
-
* You can redistribute and/or modify this program under the terms of
|
|
8
|
-
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
-
* See the Sonar Source-Available License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the Sonar Source-Available License
|
|
16
|
-
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
17
|
-
*/
|
|
18
|
-
// https://sonarsource.github.io/rspec/#/rspec/S4817/javascript
|
|
19
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
-
}
|
|
25
|
-
Object.defineProperty(o, k2, desc);
|
|
26
|
-
}) : (function(o, m, k, k2) {
|
|
27
|
-
if (k2 === undefined) k2 = k;
|
|
28
|
-
o[k2] = m[k];
|
|
29
|
-
}));
|
|
30
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
-
}) : function(o, v) {
|
|
33
|
-
o["default"] = v;
|
|
34
|
-
});
|
|
35
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
-
var ownKeys = function(o) {
|
|
37
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
-
var ar = [];
|
|
39
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
-
return ar;
|
|
41
|
-
};
|
|
42
|
-
return ownKeys(o);
|
|
43
|
-
};
|
|
44
|
-
return function (mod) {
|
|
45
|
-
if (mod && mod.__esModule) return mod;
|
|
46
|
-
var result = {};
|
|
47
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
-
__setModuleDefault(result, mod);
|
|
49
|
-
return result;
|
|
50
|
-
};
|
|
51
|
-
})();
|
|
52
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.rule = void 0;
|
|
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 meta = __importStar(require("./generated-meta.js"));
|
|
58
|
-
const xpathModule = 'xpath';
|
|
59
|
-
const xpathEvalMethods = ['select', 'select1', 'evaluate'];
|
|
60
|
-
const ieEvalMethods = ['selectNodes', 'SelectSingleNode'];
|
|
61
|
-
exports.rule = {
|
|
62
|
-
meta: (0, generate_meta_js_1.generateMeta)(meta, {
|
|
63
|
-
messages: {
|
|
64
|
-
checkXPath: 'Make sure that executing this XPATH expression is safe.',
|
|
65
|
-
},
|
|
66
|
-
}),
|
|
67
|
-
create(context) {
|
|
68
|
-
return {
|
|
69
|
-
MemberExpression: (node) => {
|
|
70
|
-
if ((0, ast_js_1.isMemberExpression)(node, 'document', 'evaluate')) {
|
|
71
|
-
context.report({ messageId: 'checkXPath', node });
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
CallExpression: (node) => checkCallExpression(node, context),
|
|
75
|
-
};
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
function checkCallExpression({ callee, arguments: args }, context) {
|
|
79
|
-
if (args.length > 0 && (0, ast_js_1.isLiteral)(args[0])) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// IE
|
|
83
|
-
if ((0, ast_js_1.isMemberWithProperty)(callee, ...ieEvalMethods) && args.length === 1) {
|
|
84
|
-
context.report({ messageId: 'checkXPath', node: callee });
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// Document.evaluate
|
|
88
|
-
if ((0, ast_js_1.isMemberWithProperty)(callee, 'evaluate') &&
|
|
89
|
-
!(0, ast_js_1.isMemberExpression)(callee, 'document', 'evaluate') &&
|
|
90
|
-
args.length >= 4) {
|
|
91
|
-
const resultTypeArgument = args[3];
|
|
92
|
-
const argumentAsText = context.sourceCode.getText(resultTypeArgument);
|
|
93
|
-
if (argumentAsText.includes('XPathResult')) {
|
|
94
|
-
context.report({ messageId: 'checkXPath', node: callee });
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// "xpath" module
|
|
99
|
-
const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
|
|
100
|
-
if (xpathEvalMethods.some(method => fqn === `${xpathModule}.${method}`)) {
|
|
101
|
-
context.report({ messageId: 'checkXPath', node: callee });
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* SonarQube JavaScript Plugin
|
|
4
|
-
* Copyright (C) SonarSource Sàrl
|
|
5
|
-
* mailto:info AT sonarsource DOT com
|
|
6
|
-
*
|
|
7
|
-
* You can redistribute and/or modify this program under the terms of
|
|
8
|
-
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
-
* See the Sonar Source-Available License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the Sonar Source-Available License
|
|
16
|
-
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
17
|
-
*/
|
|
18
|
-
// https://sonarsource.github.io/rspec/#/rspec/S4818/javascript
|
|
19
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
-
if (k2 === undefined) k2 = k;
|
|
21
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
-
}
|
|
25
|
-
Object.defineProperty(o, k2, desc);
|
|
26
|
-
}) : (function(o, m, k, k2) {
|
|
27
|
-
if (k2 === undefined) k2 = k;
|
|
28
|
-
o[k2] = m[k];
|
|
29
|
-
}));
|
|
30
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
31
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
32
|
-
};
|
|
33
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
|
|
35
|
-
__exportStar(require("./meta.js"), exports);
|
|
36
|
-
exports.meta = {
|
|
37
|
-
type: 'problem',
|
|
38
|
-
docs: {
|
|
39
|
-
description: 'Using Sockets is security-sensitive',
|
|
40
|
-
recommended: false,
|
|
41
|
-
url: 'https://sonarsource.github.io/rspec/#/rspec/S4818/javascript',
|
|
42
|
-
requiresTypeChecking: false,
|
|
43
|
-
},
|
|
44
|
-
fixable: undefined,
|
|
45
|
-
deprecated: true,
|
|
46
|
-
defaultOptions: [],
|
|
47
|
-
};
|
|
48
|
-
exports.sonarKey = 'S4818';
|
|
49
|
-
exports.scope = 'Main';
|
|
50
|
-
exports.languages = ['js', 'ts'];
|
|
51
|
-
exports.requiredDependency = [];
|