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,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.moduleTypeCache = exports.dependenciesCache = void 0;
|
|
7
|
+
exports.getDependencies = getDependencies;
|
|
8
|
+
exports.getModuleType = getModuleType;
|
|
9
|
+
exports.setCurrentFileInlineDependencies = setCurrentFileInlineDependencies;
|
|
10
|
+
exports.withCurrentFileInlineDependencies = withCurrentFileInlineDependencies;
|
|
11
|
+
exports.getDependenciesSanitizePaths = getDependenciesSanitizePaths;
|
|
12
|
+
exports.getReactVersion = getReactVersion;
|
|
13
|
+
exports.parseReactVersion = parseReactVersion;
|
|
14
|
+
exports.getTypeScriptSignalsFromPackageJsonFiles = getTypeScriptSignalsFromPackageJsonFiles;
|
|
15
|
+
exports.getNodeVersionSignal = getNodeVersionSignal;
|
|
16
|
+
exports.getTypeScriptVersionSignal = getTypeScriptVersionSignal;
|
|
17
|
+
const cache_js_1 = require("../cache.js");
|
|
18
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
19
|
+
const posix_1 = require("node:path/posix");
|
|
20
|
+
const semver_1 = require("semver");
|
|
21
|
+
const files_js_1 = require("../files.js");
|
|
22
|
+
const closest_js_1 = require("./closest.js");
|
|
23
|
+
const all_in_parent_dirs_js_1 = require("./all-in-parent-dirs.js");
|
|
24
|
+
const types_js_1 = require("./resolvers/types.js");
|
|
25
|
+
const parsed_dependency_files_js_1 = require("./parsed-dependency-files.js");
|
|
26
|
+
const MODULE_TYPE_BY_EXTENSION = {
|
|
27
|
+
'.mjs': 'module',
|
|
28
|
+
'.mts': 'module',
|
|
29
|
+
'.cjs': 'commonjs',
|
|
30
|
+
'.cts': 'commonjs',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Cache for the available dependencies by dirname. Exported for tests
|
|
34
|
+
*/
|
|
35
|
+
exports.dependenciesCache = new cache_js_1.ComputedCache((dir, topDir) => {
|
|
36
|
+
const closestDependencyManifestDir = (0, closest_js_1.getClosestDependencyManifestDir)(dir, topDir);
|
|
37
|
+
const result = new Map();
|
|
38
|
+
if (!closestDependencyManifestDir) {
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
for (const { dependencies } of (0, all_in_parent_dirs_js_1.getDependencyManifests)(closestDependencyManifestDir, topDir, node_fs_1.default)) {
|
|
42
|
+
for (const [name, version] of dependencies) {
|
|
43
|
+
if (!result.has(name)) {
|
|
44
|
+
result.set(name, version);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Cache for module type signal by dirname. Exported for tests.
|
|
52
|
+
*/
|
|
53
|
+
exports.moduleTypeCache = new cache_js_1.ComputedCache((dir, topDir) => {
|
|
54
|
+
const closestDependencyManifestDirName = (0, closest_js_1.getClosestDependencyManifestDir)(dir, topDir);
|
|
55
|
+
if (!closestDependencyManifestDirName) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const [firstManifest] = (0, all_in_parent_dirs_js_1.getDependencyManifests)(closestDependencyManifestDirName, topDir, node_fs_1.default);
|
|
59
|
+
return firstManifest?.moduleType;
|
|
60
|
+
});
|
|
61
|
+
/**
|
|
62
|
+
* Retrieve the dependencies of all the dependency manifest files available for the given file.
|
|
63
|
+
*
|
|
64
|
+
* @param dir dirname of the context.filename
|
|
65
|
+
* @param topDir working dir, will search up to that root
|
|
66
|
+
* @returns Map of dependency names to their version strings
|
|
67
|
+
*/
|
|
68
|
+
function getDependencies(dir, topDir) {
|
|
69
|
+
const closestDependencyManifestDir = (0, closest_js_1.getClosestDependencyManifestDir)(dir, topDir);
|
|
70
|
+
if (closestDependencyManifestDir) {
|
|
71
|
+
return exports.dependenciesCache.get(closestDependencyManifestDir, topDir);
|
|
72
|
+
}
|
|
73
|
+
return new Map();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieve the module type signal for a file.
|
|
77
|
+
*
|
|
78
|
+
* Extension-specific module kinds (.mjs/.mts and .cjs/.cts) are explicit and
|
|
79
|
+
* take precedence. Otherwise, package.json#type from the closest manifest only
|
|
80
|
+
* is used. If that closest manifest exists but omits "type", default to CommonJS.
|
|
81
|
+
*/
|
|
82
|
+
function getModuleType(filePath, topDir) {
|
|
83
|
+
const extensionSignal = MODULE_TYPE_BY_EXTENSION[(0, posix_1.extname)(filePath).toLowerCase()];
|
|
84
|
+
if (extensionSignal) {
|
|
85
|
+
return extensionSignal;
|
|
86
|
+
}
|
|
87
|
+
return exports.moduleTypeCache.get((0, files_js_1.dirnamePath)(filePath), topDir);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Inline npm: imports parsed from the source file currently being linted (Deno-style).
|
|
91
|
+
* Set by the linter before each file is verified, cleared afterwards via clearFileCaches().
|
|
92
|
+
* Allows dependency-helper consumers (getReactVersion, getDependenciesSanitizePaths)
|
|
93
|
+
* to see the same dependency picture as rule-activation filtering.
|
|
94
|
+
*/
|
|
95
|
+
let currentFileInlineDependencies = null;
|
|
96
|
+
function setCurrentFileInlineDependencies(deps) {
|
|
97
|
+
currentFileInlineDependencies = deps;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Merges inline npm: imports with manifest dependencies, giving precedence to inline imports.
|
|
101
|
+
*/
|
|
102
|
+
function withCurrentFileInlineDependencies(manifest) {
|
|
103
|
+
if (!currentFileInlineDependencies || currentFileInlineDependencies.size === 0) {
|
|
104
|
+
return manifest;
|
|
105
|
+
}
|
|
106
|
+
const merged = new Map(manifest);
|
|
107
|
+
for (const [name, inlineVersion] of currentFileInlineDependencies) {
|
|
108
|
+
// Inline npm: imports are the version actually loaded at runtime for this file,
|
|
109
|
+
// so they take precedence over the project-wide manifest version.
|
|
110
|
+
if (merged.has(name)) {
|
|
111
|
+
const manifestVersion = merged.get(name);
|
|
112
|
+
if (manifestVersion !== inlineVersion) {
|
|
113
|
+
console.debug(`Dependency "${typeof name === 'string' ? name : name.pattern}" has a version conflict between the manifest ` +
|
|
114
|
+
`(${manifestVersion ?? '<unspecified>'}) and an inline npm: import ` +
|
|
115
|
+
`(${inlineVersion ?? '<unspecified>'}). Using the inline version.`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
merged.set(name, inlineVersion);
|
|
119
|
+
}
|
|
120
|
+
return merged;
|
|
121
|
+
}
|
|
122
|
+
function getDependenciesSanitizePaths(context) {
|
|
123
|
+
return withCurrentFileInlineDependencies(getDependencies((0, files_js_1.dirnamePath)((0, files_js_1.normalizeToAbsolutePath)(context.filename)), (0, files_js_1.normalizeToAbsolutePath)(context.cwd)));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Gets the React version from the closest package.json.
|
|
127
|
+
*
|
|
128
|
+
* @param context ESLint rule context
|
|
129
|
+
* @returns React version string (coerced from range) or null if not found
|
|
130
|
+
*/
|
|
131
|
+
function getReactVersion(context) {
|
|
132
|
+
const dir = (0, files_js_1.dirnamePath)((0, files_js_1.normalizeToAbsolutePath)(context.filename));
|
|
133
|
+
const dependencies = withCurrentFileInlineDependencies(getDependencies(dir, (0, files_js_1.normalizeToAbsolutePath)(context.cwd)));
|
|
134
|
+
const reactVersion = dependencies.get('react');
|
|
135
|
+
// Deno npm: imports reflect the actual runtime version and are intentionally included here, unlike the TypeScript/Node.js version signals
|
|
136
|
+
if (!reactVersion) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
return parseReactVersion(reactVersion);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Parses a React version string and returns a valid semver version.
|
|
143
|
+
* Exported for testing purposes.
|
|
144
|
+
*
|
|
145
|
+
* @param reactVersion Version string from package.json (e.g., "^18.0.0", "19.0", "catalog:frontend")
|
|
146
|
+
* @returns Valid semver version string or null if parsing fails
|
|
147
|
+
*/
|
|
148
|
+
function parseReactVersion(reactVersion) {
|
|
149
|
+
try {
|
|
150
|
+
// Coerce version ranges (e.g., "^18.0.0") to valid semver versions
|
|
151
|
+
return (0, semver_1.minVersion)(reactVersion)?.version ?? null;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Handle non-semver strings like pnpm catalog references (e.g., "catalog:frontend")
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function getAllDependencySignals(packageJson) {
|
|
159
|
+
return {
|
|
160
|
+
...packageJson.dependencies,
|
|
161
|
+
...packageJson.devDependencies,
|
|
162
|
+
...packageJson.peerDependencies,
|
|
163
|
+
...packageJson.optionalDependencies,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function getDependencyVersionSignal(packageJson, dependencyName) {
|
|
167
|
+
const dependencyVersion = getAllDependencySignals(packageJson)[dependencyName];
|
|
168
|
+
return typeof dependencyVersion === 'string' ? dependencyVersion : null;
|
|
169
|
+
}
|
|
170
|
+
function getVersionSignalFromManifests(dir, topDir, dependencyName, fallbackSignal) {
|
|
171
|
+
// Walk up nearest-first. At each node manifest, prefer the primary signal
|
|
172
|
+
// (e.g. @types/node — catalog/workspace-resolved by the npm resolver) over the
|
|
173
|
+
// fallback (engines.node, read from the same manifest's PackageJson). The
|
|
174
|
+
// first valid primary signal wins; otherwise the first valid fallback wins; if
|
|
175
|
+
// neither is valid, continue walking parents. This lets a parent package's
|
|
176
|
+
// engines.node be picked up when the nested package declares neither signal,
|
|
177
|
+
// or only unusable fallbacks like "*" / "latest".
|
|
178
|
+
// Deno manifests are skipped — @types/node and engines.node are npm concepts.
|
|
179
|
+
const lookupKey = dependencyName.startsWith(types_js_1.DEFINITELY_TYPED)
|
|
180
|
+
? dependencyName.substring(types_js_1.DEFINITELY_TYPED.length)
|
|
181
|
+
: dependencyName;
|
|
182
|
+
for (const manifest of (0, all_in_parent_dirs_js_1.getDependencyManifests)((0, files_js_1.normalizeToAbsolutePath)(dir), (0, files_js_1.normalizeToAbsolutePath)(topDir), node_fs_1.default)) {
|
|
183
|
+
if (manifest.type !== 'package-json') {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const version = manifest.dependencies.get(lookupKey) ?? null;
|
|
187
|
+
if (isValidDependencySignal(version)) {
|
|
188
|
+
return version;
|
|
189
|
+
}
|
|
190
|
+
if (fallbackSignal) {
|
|
191
|
+
const fb = fallbackSignal(manifest.manifest);
|
|
192
|
+
if (isValidDependencySignal(fb)) {
|
|
193
|
+
return fb;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
function isValidDependencySignal(versionSignal) {
|
|
200
|
+
return versionSignal !== null && versionSignal !== 'latest' && versionSignal !== '*';
|
|
201
|
+
}
|
|
202
|
+
function hasTypeScriptNativePreviewSignal(packageJson) {
|
|
203
|
+
return isValidDependencySignal(getDependencyVersionSignal(packageJson, '@typescript/native-preview'));
|
|
204
|
+
}
|
|
205
|
+
function getTypeScriptVersionSignalsFromPackageJson(packageJson) {
|
|
206
|
+
const result = [];
|
|
207
|
+
const nativePreviewVersion = getDependencyVersionSignal(packageJson, '@typescript/native-preview');
|
|
208
|
+
if (isValidDependencySignal(nativePreviewVersion)) {
|
|
209
|
+
result.push(nativePreviewVersion);
|
|
210
|
+
}
|
|
211
|
+
const typeScriptVersion = getDependencyVersionSignal(packageJson, 'typescript');
|
|
212
|
+
if (isValidDependencySignal(typeScriptVersion)) {
|
|
213
|
+
result.push(typeScriptVersion);
|
|
214
|
+
}
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
function getTypeScriptSignalsFromPackageJsonFiles(packageJsonFiles) {
|
|
218
|
+
const typeScriptVersionSignals = [];
|
|
219
|
+
let hasTypeScriptNativePreview = false;
|
|
220
|
+
for (const packageJsonFile of packageJsonFiles) {
|
|
221
|
+
const packageJson = (0, parsed_dependency_files_js_1.parsePackageJsonContent)(packageJsonFile.fileContent);
|
|
222
|
+
if (packageJson === undefined) {
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
typeScriptVersionSignals.push(...getTypeScriptVersionSignalsFromPackageJson(packageJson));
|
|
226
|
+
hasTypeScriptNativePreview =
|
|
227
|
+
hasTypeScriptNativePreview || hasTypeScriptNativePreviewSignal(packageJson);
|
|
228
|
+
}
|
|
229
|
+
return { typeScriptVersionSignals, hasTypeScriptNativePreview };
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Gets a Node.js version signal by walking up from `dir` toward `topDir`,
|
|
233
|
+
* picking the closest package.json with @types/node (preferred) or engines.node.
|
|
234
|
+
*
|
|
235
|
+
* @param dir directory to start the upward search from (e.g. tsconfig dir, file dir)
|
|
236
|
+
* @param topDir analysis base directory; walk stops here. Defaults to `dir` to
|
|
237
|
+
* preserve the legacy "manifest at exactly this dir" semantics for callers
|
|
238
|
+
* that don't yet provide a separate analysis root.
|
|
239
|
+
* @returns raw version string from @types/node or engines.node, or null if not found
|
|
240
|
+
*/
|
|
241
|
+
function getNodeVersionSignal(dir, topDir = dir) {
|
|
242
|
+
return getVersionSignalFromManifests(dir, topDir, '@types/node', packageJson => {
|
|
243
|
+
const enginesNode = packageJson.engines?.['node'];
|
|
244
|
+
return typeof enginesNode === 'string' ? enginesNode : null;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Gets a TypeScript version signal from the closest package.json walking up
|
|
249
|
+
* from `dir` to `topDir`. Defaults `topDir = dir` for backward compatibility.
|
|
250
|
+
*
|
|
251
|
+
* @returns raw version string from typescript dependency, or null if not found
|
|
252
|
+
*/
|
|
253
|
+
function getTypeScriptVersionSignal(dir, topDir = dir) {
|
|
254
|
+
return getVersionSignalFromManifests(dir, topDir, 'typescript');
|
|
255
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRELOADABLE_DEPENDENCY_MANIFESTS = exports.DEPENDENCY_MANIFESTS = exports.PNPM_WORKSPACE_YAML = exports.DENO_JSONC = exports.DENO_JSON = exports.PACKAGE_JSON = void 0;
|
|
4
|
+
exports.isPreloadableDependencyManifestPath = isPreloadableDependencyManifestPath;
|
|
5
|
+
exports.fillManifestCaches = fillManifestCaches;
|
|
6
|
+
exports.clearDependenciesCache = clearDependenciesCache;
|
|
7
|
+
exports.getPreloadableDependencyManifestName = getPreloadableDependencyManifestName;
|
|
8
|
+
const find_minimatch_js_1 = require("../find-up/find-minimatch.js");
|
|
9
|
+
const dependencies_js_1 = require("./dependencies.js");
|
|
10
|
+
const closest_js_1 = require("../find-up/closest.js");
|
|
11
|
+
const all_in_parent_dirs_js_1 = require("../find-up/all-in-parent-dirs.js");
|
|
12
|
+
const posix_1 = require("node:path/posix");
|
|
13
|
+
const parsed_dependency_files_js_1 = require("./parsed-dependency-files.js");
|
|
14
|
+
exports.PACKAGE_JSON = 'package.json';
|
|
15
|
+
exports.DENO_JSON = 'deno.json';
|
|
16
|
+
exports.DENO_JSONC = 'deno.jsonc';
|
|
17
|
+
exports.PNPM_WORKSPACE_YAML = 'pnpm-workspace.yaml';
|
|
18
|
+
exports.DEPENDENCY_MANIFESTS = [exports.DENO_JSON, exports.DENO_JSONC, exports.PACKAGE_JSON];
|
|
19
|
+
exports.PRELOADABLE_DEPENDENCY_MANIFESTS = [
|
|
20
|
+
...exports.DEPENDENCY_MANIFESTS,
|
|
21
|
+
exports.PNPM_WORKSPACE_YAML,
|
|
22
|
+
];
|
|
23
|
+
function isPreloadableDependencyManifestName(fileName) {
|
|
24
|
+
return exports.PRELOADABLE_DEPENDENCY_MANIFESTS.includes(fileName);
|
|
25
|
+
}
|
|
26
|
+
function isPreloadableDependencyManifestPath(path) {
|
|
27
|
+
const normalizedBasename = (0, posix_1.basename)(path).toLowerCase();
|
|
28
|
+
return isPreloadableDependencyManifestName(normalizedBasename);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Preloads manifest lookup caches so later rules can resolve manifests
|
|
32
|
+
* without re-walking the file system.
|
|
33
|
+
*/
|
|
34
|
+
function fillManifestCaches(manifestName, manifests, dirnameToParent, topDir) {
|
|
35
|
+
const closestCache = closest_js_1.closestPatternCache.get(manifestName).get(topDir);
|
|
36
|
+
const manifestsInParentsCache = manifestName === exports.PNPM_WORKSPACE_YAML
|
|
37
|
+
? undefined
|
|
38
|
+
: all_in_parent_dirs_js_1.patternInParentsCache.get(manifestName).get(topDir);
|
|
39
|
+
const sortedDirs = Array.from(dirnameToParent.entries()).sort(([leftDir], [rightDir]) => leftDir.split('/').length - rightDir.split('/').length || leftDir.localeCompare(rightDir));
|
|
40
|
+
for (const [dir, parent] of sortedDirs) {
|
|
41
|
+
const currentManifest = manifests.get(dir);
|
|
42
|
+
const inheritedClosestManifest = parent ? closestCache.get(parent) : undefined;
|
|
43
|
+
closestCache.set(dir, currentManifest ?? inheritedClosestManifest);
|
|
44
|
+
if (!manifestsInParentsCache) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const manifestsInParents = parent ? [...manifestsInParentsCache.get(parent)] : [];
|
|
48
|
+
if (currentManifest) {
|
|
49
|
+
manifestsInParents.unshift(currentManifest);
|
|
50
|
+
}
|
|
51
|
+
manifestsInParentsCache.set(dir, manifestsInParents);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* In the case of SonarIDE, when a dependency manifest file changes, the cache can become obsolete.
|
|
56
|
+
*/
|
|
57
|
+
function clearDependenciesCache() {
|
|
58
|
+
dependencies_js_1.dependenciesCache.clear();
|
|
59
|
+
dependencies_js_1.moduleTypeCache.clear();
|
|
60
|
+
(0, parsed_dependency_files_js_1.clearParsedDependencyFileCache)();
|
|
61
|
+
for (const manifestName of exports.PRELOADABLE_DEPENDENCY_MANIFESTS) {
|
|
62
|
+
closest_js_1.closestPatternCache.get(manifestName).clear();
|
|
63
|
+
if (manifestName !== exports.PNPM_WORKSPACE_YAML) {
|
|
64
|
+
all_in_parent_dirs_js_1.patternInParentsCache.get(manifestName).clear();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
find_minimatch_js_1.MinimatchCache.clear();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the preloadable dependency manifest filename if the path points to one.
|
|
71
|
+
*/
|
|
72
|
+
function getPreloadableDependencyManifestName(path) {
|
|
73
|
+
const normalizedBasename = (0, posix_1.basename)(path).toLowerCase();
|
|
74
|
+
if (isPreloadableDependencyManifestName(normalizedBasename)) {
|
|
75
|
+
return normalizedBasename;
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addDependencies = addDependencies;
|
|
4
|
+
exports.addDependenciesArray = addDependenciesArray;
|
|
5
|
+
exports.addDependency = addDependency;
|
|
6
|
+
/*
|
|
7
|
+
* SonarQube JavaScript Plugin
|
|
8
|
+
* Copyright (C) SonarSource Sàrl
|
|
9
|
+
* mailto:info AT sonarsource DOT com
|
|
10
|
+
*
|
|
11
|
+
* You can redistribute and/or modify this program under the terms of
|
|
12
|
+
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
17
|
+
* See the Sonar Source-Available License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the Sonar Source-Available License
|
|
20
|
+
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
21
|
+
*/
|
|
22
|
+
const minimatch_1 = require("minimatch");
|
|
23
|
+
const types_js_1 = require("./resolvers/types.js");
|
|
24
|
+
function addDependencies(result, dependencies, isGlob = false) {
|
|
25
|
+
for (const name of Object.keys(dependencies).filter(name => {
|
|
26
|
+
// Add this filter, as the PackageJson.Dependency can be any arbitrary JSON contrary to the claimed Record<String, String> typing.
|
|
27
|
+
const value = dependencies[name];
|
|
28
|
+
return typeof value === 'string' || value === undefined;
|
|
29
|
+
})) {
|
|
30
|
+
addDependency(result, { dependency: name, isGlob, version: dependencies[name] });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function addDependenciesArray(result, dependencies, isGlob = true) {
|
|
34
|
+
for (const name of dependencies) {
|
|
35
|
+
addDependency(result, { dependency: name, isGlob });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function addDependency(result, { dependency, isGlob, version, alias }) {
|
|
39
|
+
if (isGlob) {
|
|
40
|
+
result.set(new minimatch_1.Minimatch(dependency, { nocase: true, matchBase: true }), version);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
result.set(dependency.startsWith(types_js_1.DEFINITELY_TYPED)
|
|
44
|
+
? dependency.substring(types_js_1.DEFINITELY_TYPED.length)
|
|
45
|
+
: dependency, version);
|
|
46
|
+
}
|
|
47
|
+
if (alias) {
|
|
48
|
+
// Also add the alias as a dependency, so it can be resolved in rules, for instance S4328
|
|
49
|
+
result.set(alias, version);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.clearParsedDependencyFileCache = clearParsedDependencyFileCache;
|
|
7
|
+
exports.parsePackageJson = parsePackageJson;
|
|
8
|
+
exports.parsePackageJsonContent = parsePackageJsonContent;
|
|
9
|
+
exports.parsePnpmWorkspace = parsePnpmWorkspace;
|
|
10
|
+
exports.parseDenoManifest = parseDenoManifest;
|
|
11
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
12
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
13
|
+
const files_js_1 = require("../files.js");
|
|
14
|
+
const parsedPackageJsonCache = new Map();
|
|
15
|
+
const parsedPnpmWorkspaceCache = new Map();
|
|
16
|
+
const parsedDenoManifestCache = new Map();
|
|
17
|
+
function clearParsedDependencyFileCache() {
|
|
18
|
+
parsedPackageJsonCache.clear();
|
|
19
|
+
parsedPnpmWorkspaceCache.clear();
|
|
20
|
+
parsedDenoManifestCache.clear();
|
|
21
|
+
}
|
|
22
|
+
function getOrSetParsedDependencyFile(cache, file, parse) {
|
|
23
|
+
const cacheKey = (0, files_js_1.normalizeToAbsolutePath)(file.filePath);
|
|
24
|
+
if (cache.has(cacheKey)) {
|
|
25
|
+
return cache.get(cacheKey);
|
|
26
|
+
}
|
|
27
|
+
const parsed = parse(file);
|
|
28
|
+
cache.set(cacheKey, parsed);
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
function parsePackageJson(file) {
|
|
32
|
+
return getOrSetParsedDependencyFile(parsedPackageJsonCache, file, file => parsePackageJsonContent(file.fileContent, file.filePath));
|
|
33
|
+
}
|
|
34
|
+
function parsePackageJsonContent(content, filePath) {
|
|
35
|
+
try {
|
|
36
|
+
return JSON.parse((0, files_js_1.stripBOM)(content));
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (filePath) {
|
|
40
|
+
console.debug(`Error parsing package.json ${filePath}: ${error}`);
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function parsePnpmWorkspace(file) {
|
|
46
|
+
return getOrSetParsedDependencyFile(parsedPnpmWorkspaceCache, file, parsePnpmWorkspaceContent);
|
|
47
|
+
}
|
|
48
|
+
function parsePnpmWorkspaceContent(file) {
|
|
49
|
+
try {
|
|
50
|
+
const parsedPnpm = yaml_1.default.parse(file.fileContent);
|
|
51
|
+
if (parsedPnpm &&
|
|
52
|
+
('catalog' in parsedPnpm || 'catalogs' in parsedPnpm || 'packages' in parsedPnpm)) {
|
|
53
|
+
return parsedPnpm;
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.debug(`Error parsing pnpm workspace ${file.filePath}: ${error}`);
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function parseDenoManifest(file) {
|
|
63
|
+
return getOrSetParsedDependencyFile(parsedDenoManifestCache, file, parseDenoManifestContent);
|
|
64
|
+
}
|
|
65
|
+
function parseDenoManifestContent(file) {
|
|
66
|
+
try {
|
|
67
|
+
// ts.parseConfigFileTextToJson handles JSON with comments and trailing commas
|
|
68
|
+
const parsed = typescript_1.default.parseConfigFileTextToJson(file.filePath, (0, files_js_1.stripBOM)(file.fileContent));
|
|
69
|
+
if (parsed.error) {
|
|
70
|
+
const message = typescript_1.default.flattenDiagnosticMessageText(parsed.error.messageText, '\n');
|
|
71
|
+
console.debug(`Error parsing deno manifest ${file.filePath}: ${message}`);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
return parsed.config;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.debug(`Error parsing deno manifest ${file.filePath}: ${error}`);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.denoManifestResolver = void 0;
|
|
4
|
+
exports.parseInlineNPMImport = parseInlineNPMImport;
|
|
5
|
+
const index_js_1 = require("../index.js");
|
|
6
|
+
const helpers_js_1 = require("./helpers.js");
|
|
7
|
+
const parse_js_1 = require("../parse.js");
|
|
8
|
+
const parsed_dependency_files_js_1 = require("../parsed-dependency-files.js");
|
|
9
|
+
exports.denoManifestResolver = {
|
|
10
|
+
resolve(dir, topDir, fileSystem) {
|
|
11
|
+
// if both `deno.json` and `deno.jsonc` are present, prefer `deno.json` and ignore `deno.jsonc`
|
|
12
|
+
const denoJson = (0, helpers_js_1.getManifestFileInDir)(index_js_1.DENO_JSON, dir, topDir, fileSystem);
|
|
13
|
+
const denoJsonc = (0, helpers_js_1.getManifestFileInDir)(index_js_1.DENO_JSONC, dir, topDir, fileSystem);
|
|
14
|
+
const denoModuleType = 'module';
|
|
15
|
+
const effectiveDenoJson = denoJson ?? denoJsonc;
|
|
16
|
+
if (effectiveDenoJson) {
|
|
17
|
+
const manifest = (0, parsed_dependency_files_js_1.parseDenoManifest)(effectiveDenoJson) ?? {};
|
|
18
|
+
return [
|
|
19
|
+
{
|
|
20
|
+
type: 'deno',
|
|
21
|
+
manifest,
|
|
22
|
+
dependencies: buildDependencies(manifest),
|
|
23
|
+
moduleType: denoModuleType,
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
return [];
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
function buildDependencies(manifest) {
|
|
31
|
+
const dependencies = new Map();
|
|
32
|
+
if (manifest.imports && typeof manifest.imports === 'object') {
|
|
33
|
+
for (const [alias, target] of Object.entries(manifest.imports)) {
|
|
34
|
+
if (typeof target !== 'string') {
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const parsedSpecifier = parseInlineNPMImport(target);
|
|
38
|
+
if (parsedSpecifier) {
|
|
39
|
+
(0, parse_js_1.addDependency)(dependencies, {
|
|
40
|
+
dependency: parsedSpecifier.packageName,
|
|
41
|
+
isGlob: false,
|
|
42
|
+
version: parsedSpecifier.version,
|
|
43
|
+
alias,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(manifest.workspace)) {
|
|
49
|
+
(0, parse_js_1.addDependenciesArray)(dependencies, manifest.workspace);
|
|
50
|
+
}
|
|
51
|
+
else if (manifest.workspace?.members) {
|
|
52
|
+
(0, parse_js_1.addDependenciesArray)(dependencies, manifest.workspace.members);
|
|
53
|
+
}
|
|
54
|
+
return dependencies;
|
|
55
|
+
}
|
|
56
|
+
// Captures `npm:` payload as: package name (scoped or unscoped), optional version, optional ignored subpath.
|
|
57
|
+
// Examples:
|
|
58
|
+
// npm:cowsay@^1.6.0
|
|
59
|
+
// npm:@scopename/mypackage@~11.1.0
|
|
60
|
+
const DENO_NPM_IMPORT_PATTERN = /^(@[^/]*\/[^/@]*|[^/@]+)(?:@([^/]*))?(?:\/.*)?$/;
|
|
61
|
+
/**
|
|
62
|
+
* Parses an import map URL Specifier matching Deno npm format:
|
|
63
|
+
* npm:<package>[@<version>][/<path>]
|
|
64
|
+
*/
|
|
65
|
+
function parseInlineNPMImport(value) {
|
|
66
|
+
// currently only handle npm: specifiers since rules are focused on NPM dependencies
|
|
67
|
+
if (!value.startsWith('npm:')) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const match = DENO_NPM_IMPORT_PATTERN.exec(value.slice('npm:'.length));
|
|
71
|
+
if (!match) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
const [, packageName, version] = match;
|
|
75
|
+
return {
|
|
76
|
+
packageName,
|
|
77
|
+
version: version || undefined,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getManifestFileInDir = getManifestFileInDir;
|
|
4
|
+
exports.getParentDirPath = getParentDirPath;
|
|
5
|
+
/*
|
|
6
|
+
* SonarQube JavaScript Plugin
|
|
7
|
+
* Copyright (C) SonarSource Sàrl
|
|
8
|
+
* mailto:info AT sonarsource DOT com
|
|
9
|
+
*
|
|
10
|
+
* You can redistribute and/or modify this program under the terms of
|
|
11
|
+
* the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
|
|
12
|
+
*
|
|
13
|
+
* This program is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
16
|
+
* See the Sonar Source-Available License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the Sonar Source-Available License
|
|
19
|
+
* along with this program; if not, see https://sonarsource.com/license/ssal/
|
|
20
|
+
*/
|
|
21
|
+
const files_js_1 = require("../../files.js");
|
|
22
|
+
const closest_js_1 = require("../../find-up/closest.js");
|
|
23
|
+
/**
|
|
24
|
+
* Returns the manifest file at exactly `dir` (not a parent directory), or `undefined` if absent.
|
|
25
|
+
*/
|
|
26
|
+
function getManifestFileInDir(manifestName, dir, topDir, fileSystem) {
|
|
27
|
+
const file = closest_js_1.closestPatternCache.get(manifestName, fileSystem).get(topDir).get(dir);
|
|
28
|
+
if (file && (0, files_js_1.dirnamePath)(file.filePath) === dir) {
|
|
29
|
+
return file;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the parent directory of the given path.
|
|
35
|
+
* @param path Path to get the parent directory of.
|
|
36
|
+
* @returns The parent directory or `null` if it is the root directory.
|
|
37
|
+
*/
|
|
38
|
+
function getParentDirPath(path) {
|
|
39
|
+
const parentDir = (0, files_js_1.dirnamePath)(path);
|
|
40
|
+
return parentDir === path ? null : parentDir;
|
|
41
|
+
}
|