eslint-plugin-sonarjs 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/README.md +269 -268
  2. package/cjs/S100/rule.js +7 -5
  3. package/cjs/S101/rule.js +2 -2
  4. package/cjs/S104/rule.js +2 -2
  5. package/cjs/S105/rule.js +2 -2
  6. package/cjs/S1066/rule.js +5 -4
  7. package/cjs/S1067/rule.js +8 -6
  8. package/cjs/S1110/rule.js +7 -5
  9. package/cjs/S1119/rule.js +85 -7
  10. package/cjs/S1121/rule.js +4 -3
  11. package/cjs/S1125/rule.js +9 -8
  12. package/cjs/S1126/rule.js +2 -2
  13. package/cjs/S1128/rule.js +8 -5
  14. package/cjs/S1134/rule.js +2 -2
  15. package/cjs/S1135/rule.js +2 -2
  16. package/cjs/S1154/rule.js +6 -4
  17. package/cjs/S117/rule.js +6 -5
  18. package/cjs/S1172/rule.js +2 -2
  19. package/cjs/S1192/rule.js +5 -4
  20. package/cjs/S1219/rule.js +4 -3
  21. package/cjs/S1226/rule.js +6 -4
  22. package/cjs/S124/rule.js +2 -2
  23. package/cjs/S125/rule.js +9 -7
  24. package/cjs/S126/rule.js +2 -2
  25. package/cjs/S1264/rule.js +2 -2
  26. package/cjs/S128/rule.js +4 -3
  27. package/cjs/S1291/rule.js +2 -2
  28. package/cjs/S1301/rule.js +2 -2
  29. package/cjs/S1313/rule.js +2 -2
  30. package/cjs/S134/rule.js +7 -5
  31. package/cjs/S135/rule.js +5 -4
  32. package/cjs/S138/rule.js +9 -6
  33. package/cjs/S1439/rule.js +2 -2
  34. package/cjs/S1444/rule.js +2 -2
  35. package/cjs/S1451/rule.js +2 -2
  36. package/cjs/S1472/rule.js +2 -2
  37. package/cjs/S1479/rule.js +2 -2
  38. package/cjs/S1481/rule.js +2 -2
  39. package/cjs/S1488/generated-meta.js +1 -1
  40. package/cjs/S1488/rule.js +11 -7
  41. package/cjs/S1515/rule.js +10 -8
  42. package/cjs/{helpers/aws/index.js → S1523/generated-meta.js} +34 -18
  43. package/cjs/S1523/index.js +21 -0
  44. package/cjs/S1523/meta.js +21 -0
  45. package/cjs/S1523/rule.js +143 -0
  46. package/cjs/S1526/rule.js +5 -4
  47. package/cjs/S1527/rule.js +2 -2
  48. package/cjs/S1528/rule.js +2 -2
  49. package/cjs/S1529/generated-meta.js +1 -1
  50. package/cjs/S1529/rule.js +4 -3
  51. package/cjs/S1530/rule.js +5 -3
  52. package/cjs/S1533/rule.js +2 -2
  53. package/cjs/S1535/rule.js +2 -2
  54. package/cjs/S1541/rule.js +10 -7
  55. package/cjs/S1607/rule.js +22 -20
  56. package/cjs/S1764/rule.js +10 -7
  57. package/cjs/S1821/rule.js +2 -2
  58. package/cjs/S1848/rule.js +10 -7
  59. package/cjs/S1854/rule.js +18 -14
  60. package/cjs/S1862/rule.js +10 -8
  61. package/cjs/S1871/rule.js +21 -16
  62. package/cjs/S1874/rule.js +4 -3
  63. package/cjs/S1940/rule.js +2 -2
  64. package/cjs/S1994/rule.js +10 -7
  65. package/cjs/S2004/rule.js +9 -7
  66. package/cjs/S2068/rule.js +75 -12
  67. package/cjs/S2077/generated-meta.js +1 -1
  68. package/cjs/S2077/rule.js +10 -6
  69. package/cjs/S2092/rule.js +2 -2
  70. package/cjs/S2123/rule.js +2 -2
  71. package/cjs/S2137/rule.js +2 -2
  72. package/cjs/S2138/rule.js +4 -3
  73. package/cjs/S2187/rule.js +2 -2
  74. package/cjs/S2201/rule.js +47 -5
  75. package/cjs/S2208/rule.js +2 -2
  76. package/cjs/S2234/rule.js +58 -11
  77. package/cjs/S2245/rule.js +4 -3
  78. package/cjs/S2251/rule.js +5 -4
  79. package/cjs/S2255/rule.js +6 -5
  80. package/cjs/S2259/rule.js +14 -9
  81. package/cjs/S2301/rule.js +14 -9
  82. package/cjs/S2310/rule.js +80 -9
  83. package/cjs/S2392/rule.js +7 -5
  84. package/cjs/S2424/rule.js +2 -2
  85. package/cjs/S2428/rule.js +8 -6
  86. package/cjs/S2486/rule.js +4 -3
  87. package/cjs/S2589/rule.js +12 -10
  88. package/cjs/S2598/rule.js +17 -14
  89. package/cjs/S2612/generated-meta.js +1 -1
  90. package/cjs/S2612/rule.js +8 -6
  91. package/cjs/S2639/rule.js +2 -2
  92. package/cjs/S2681/rule.js +2 -2
  93. package/cjs/S2692/rule.js +6 -4
  94. package/cjs/S2699/generated-meta.js +1 -1
  95. package/cjs/S2699/rule.js +40 -31
  96. package/cjs/S2703/rule.js +2 -2
  97. package/cjs/S2737/rule.js +6 -4
  98. package/cjs/S2755/rule.js +9 -6
  99. package/cjs/S2757/rule.js +2 -2
  100. package/cjs/S2817/rule.js +10 -7
  101. package/cjs/S2819/rule.js +16 -12
  102. package/cjs/S2870/rule.js +8 -5
  103. package/cjs/S2871/rule.js +12 -9
  104. package/cjs/S2970/rule.js +9 -8
  105. package/cjs/S2990/rule.js +2 -2
  106. package/cjs/S2999/rule.js +10 -7
  107. package/cjs/S3001/rule.js +2 -2
  108. package/cjs/S3003/rule.js +10 -7
  109. package/cjs/S3317/rule.js +4 -3
  110. package/cjs/S3330/rule.js +2 -2
  111. package/cjs/S3358/rule.js +2 -2
  112. package/cjs/S3402/rule.js +14 -10
  113. package/cjs/S3403/rule.js +10 -7
  114. package/cjs/S3415/rule.js +16 -13
  115. package/cjs/S3499/rule.js +5 -4
  116. package/cjs/S3500/rule.js +5 -4
  117. package/cjs/S3513/rule.js +5 -4
  118. package/cjs/S3514/rule.js +10 -7
  119. package/cjs/S3516/rule.js +10 -7
  120. package/cjs/S3524/rule.js +2 -2
  121. package/cjs/S3525/rule.js +6 -4
  122. package/cjs/S3531/rule.js +5 -3
  123. package/cjs/S3533/rule.js +8 -7
  124. package/cjs/S3579/rule.js +6 -4
  125. package/cjs/S3616/rule.js +6 -4
  126. package/cjs/S3626/rule.js +4 -3
  127. package/cjs/S3686/rule.js +7 -5
  128. package/cjs/S3699/rule.js +4 -3
  129. package/cjs/S3735/rule.js +8 -5
  130. package/cjs/S3757/rule.js +8 -6
  131. package/cjs/S3758/rule.js +9 -7
  132. package/cjs/S3760/rule.js +24 -21
  133. package/cjs/S3776/rule.js +26 -22
  134. package/cjs/S3782/rule.js +6 -4
  135. package/cjs/S3785/rule.js +9 -6
  136. package/cjs/S3796/rule.js +12 -8
  137. package/cjs/S3798/rule.js +4 -3
  138. package/cjs/S3800/rule.js +22 -11
  139. package/cjs/S3801/generated-meta.js +1 -1
  140. package/cjs/S3801/rule.js +15 -11
  141. package/cjs/S3827/rule.js +9 -6
  142. package/cjs/S3923/rule.js +9 -6
  143. package/cjs/S3972/rule.js +5 -4
  144. package/cjs/S3973/rule.js +7 -5
  145. package/cjs/S3981/rule.js +4 -3
  146. package/cjs/S3984/rule.js +4 -3
  147. package/cjs/S4030/rule.js +10 -7
  148. package/cjs/S4036/rule.js +7 -5
  149. package/cjs/S4043/rule.js +12 -8
  150. package/cjs/S4139/rule.js +7 -5
  151. package/cjs/S4143/rule.js +12 -9
  152. package/cjs/S4144/rule.js +12 -9
  153. package/cjs/S4158/rule.js +11 -8
  154. package/cjs/S4165/rule.js +14 -12
  155. package/cjs/S4322/rule.js +8 -5
  156. package/cjs/S4323/rule.js +4 -3
  157. package/cjs/S4324/rule.js +7 -5
  158. package/cjs/S4328/rule.js +2 -2
  159. package/cjs/S4335/rule.js +6 -4
  160. package/cjs/S4423/rule.js +4 -3
  161. package/cjs/S4423/rule.lib.js +8 -7
  162. package/cjs/S4426/rule.js +11 -10
  163. package/cjs/S4502/rule.js +16 -13
  164. package/cjs/S4507/rule.js +8 -6
  165. package/cjs/S4524/rule.js +2 -2
  166. package/cjs/S4619/rule.js +6 -4
  167. package/cjs/S4621/rule.js +5 -4
  168. package/cjs/S4622/rule.js +5 -3
  169. package/cjs/S4623/rule.js +8 -5
  170. package/cjs/S4624/rule.js +6 -4
  171. package/cjs/S4634/rule.js +4 -3
  172. package/cjs/S4721/rule.js +7 -5
  173. package/cjs/S4782/rule.js +7 -5
  174. package/cjs/S4784/rule.js +5 -4
  175. package/cjs/S4787/rule.js +9 -7
  176. package/cjs/S4790/rule.js +7 -5
  177. package/cjs/S4798/rule.js +2 -2
  178. package/cjs/S4817/rule.js +10 -8
  179. package/cjs/S4818/rule.js +4 -3
  180. package/cjs/S4822/rule.js +13 -9
  181. package/cjs/S4823/rule.js +4 -3
  182. package/cjs/S4829/rule.js +4 -3
  183. package/cjs/S4830/rule.js +11 -8
  184. package/cjs/S5042/rule.js +9 -7
  185. package/cjs/S5122/rule.js +40 -36
  186. package/cjs/S5148/rule.js +9 -8
  187. package/cjs/S5247/rule.js +22 -18
  188. package/cjs/S5256/rule.js +5 -4
  189. package/cjs/S5257/rule.js +4 -3
  190. package/cjs/S5260/rule.js +4 -3
  191. package/cjs/S5264/rule.js +4 -3
  192. package/cjs/S5332/rule.js +4 -3
  193. package/cjs/S5332/rule.lib.js +19 -17
  194. package/cjs/S5443/rule.js +2 -2
  195. package/cjs/S5527/rule.js +18 -14
  196. package/cjs/S5542/rule.js +6 -4
  197. package/cjs/S5547/rule.js +6 -4
  198. package/cjs/S5604/rule.js +15 -14
  199. package/cjs/S5659/rule.js +15 -12
  200. package/cjs/S5689/rule.js +11 -8
  201. package/cjs/S5691/rule.js +7 -5
  202. package/cjs/S5693/rule.js +14 -12
  203. package/cjs/S5725/rule.js +9 -6
  204. package/cjs/S5728/rule.js +7 -4
  205. package/cjs/S5730/rule.js +9 -6
  206. package/cjs/S5732/rule.js +8 -5
  207. package/cjs/S5734/rule.js +7 -4
  208. package/cjs/S5736/rule.js +8 -5
  209. package/cjs/S5739/rule.js +11 -8
  210. package/cjs/S5742/rule.js +7 -4
  211. package/cjs/S5743/rule.js +8 -6
  212. package/cjs/S5757/rule.js +13 -10
  213. package/cjs/S5759/rule.js +10 -7
  214. package/cjs/S5842/rule.js +2 -2
  215. package/cjs/S5843/rule.js +22 -19
  216. package/cjs/S5850/rule.js +4 -3
  217. package/cjs/S5852/rule.js +2 -2
  218. package/cjs/S5856/rule.js +10 -7
  219. package/cjs/S5860/rule.js +30 -26
  220. package/cjs/S5863/rule.js +15 -11
  221. package/cjs/S5867/rule.js +8 -7
  222. package/cjs/S5868/rule.js +7 -5
  223. package/cjs/S5869/rule.js +6 -5
  224. package/cjs/S5876/rule.js +12 -8
  225. package/cjs/S5958/rule.js +12 -9
  226. package/cjs/S5973/rule.js +10 -7
  227. package/cjs/S6019/rule.js +4 -3
  228. package/cjs/S6035/rule.js +2 -2
  229. package/cjs/S6079/rule.js +9 -6
  230. package/cjs/S6080/rule.js +13 -10
  231. package/cjs/S6092/rule.js +9 -7
  232. package/cjs/S6245/rule.js +14 -9
  233. package/cjs/S6249/rule.js +7 -5
  234. package/cjs/S6252/rule.js +12 -8
  235. package/cjs/S6265/rule.js +27 -20
  236. package/cjs/S6268/rule.js +5 -4
  237. package/cjs/S6270/rule.js +12 -9
  238. package/cjs/S6275/rule.js +2 -2
  239. package/cjs/S6281/rule.js +22 -17
  240. package/cjs/S6299/rule.js +2 -2
  241. package/cjs/S6302/rule.js +6 -5
  242. package/cjs/S6303/rule.js +12 -10
  243. package/cjs/S6304/rule.js +6 -5
  244. package/cjs/S6308/rule.js +7 -5
  245. package/cjs/S6317/rule.js +5 -4
  246. package/cjs/S6319/rule.js +2 -2
  247. package/cjs/S6321/rule.js +25 -23
  248. package/cjs/S6323/rule.js +4 -3
  249. package/cjs/S6324/rule.js +2 -2
  250. package/cjs/S6326/rule.js +2 -2
  251. package/cjs/S6327/rule.js +2 -2
  252. package/cjs/S6328/rule.js +4 -3
  253. package/cjs/S6329/rule.js +7 -5
  254. package/cjs/S6330/rule.js +2 -2
  255. package/cjs/S6332/rule.js +2 -2
  256. package/cjs/S6333/rule.js +8 -6
  257. package/cjs/S6351/rule.js +22 -19
  258. package/cjs/S6353/rule.js +2 -2
  259. package/cjs/S6397/rule.js +2 -2
  260. package/cjs/S6418/config.js +1 -1
  261. package/cjs/S6418/rule.js +9 -24
  262. package/cjs/S6426/rule.js +5 -4
  263. package/cjs/S6437/rule.js +10 -7
  264. package/cjs/S6439/rule.js +9 -7
  265. package/cjs/S6442/rule.js +11 -8
  266. package/cjs/S6443/rule.js +9 -7
  267. package/cjs/S6486/rule.js +5 -4
  268. package/cjs/S6564/rule.js +4 -3
  269. package/cjs/S6594/rule.js +12 -8
  270. package/cjs/S6627/rule.js +6 -4
  271. package/cjs/S6759/rule.js +10 -6
  272. package/cjs/S6958/rule.js +2 -2
  273. package/cjs/S6959/rule.js +9 -6
  274. package/cjs/S7059/generated-meta.js +1 -1
  275. package/cjs/S7059/rule.js +8 -5
  276. package/cjs/S7639/generated-meta.js +1 -1
  277. package/cjs/S7639/rule.js +5 -4
  278. package/cjs/S7790/generated-meta.js +1 -1
  279. package/cjs/S7790/rule.js +7 -5
  280. package/cjs/S8441/generated-meta.js +1 -1
  281. package/cjs/S8441/rule.js +13 -9
  282. package/cjs/S881/rule.js +2 -2
  283. package/cjs/S888/rule.js +4 -3
  284. package/cjs/S930/rule.js +14 -12
  285. package/cjs/helpers/ast.js +11 -8
  286. package/cjs/helpers/aws/s3.js +9 -6
  287. package/cjs/helpers/chai.js +41 -43
  288. package/cjs/helpers/configs.js +92 -0
  289. package/cjs/helpers/cookie-flag-check.js +19 -17
  290. package/cjs/helpers/{decorators/index.js → entropy.js} +16 -17
  291. package/cjs/helpers/express.js +127 -128
  292. package/cjs/helpers/find-up/all-in-parent-dirs.js +0 -16
  293. package/cjs/helpers/mocha.js +50 -54
  294. package/cjs/helpers/regex/ast.js +7 -6
  295. package/cjs/helpers/regex/extract.js +11 -11
  296. package/cjs/helpers/regex/group.js +2 -2
  297. package/cjs/helpers/regex/location.js +2 -2
  298. package/cjs/helpers/regex/range.js +5 -4
  299. package/cjs/helpers/regex/rule-template.js +4 -3
  300. package/cjs/helpers/sinon.js +33 -36
  301. package/cjs/helpers/supertest.js +34 -37
  302. package/cjs/helpers/vitest.js +29 -32
  303. package/cjs/plugin-rules.js +452 -450
  304. package/docs/assertions-in-tests.md +2 -0
  305. package/docs/bitwise-operators.md +2 -0
  306. package/docs/code-eval.md +7 -0
  307. package/docs/file-permissions.md +1 -1
  308. package/docs/no-async-constructor.md +2 -0
  309. package/docs/no-inconsistent-returns.md +2 -0
  310. package/docs/prefer-immediate-return.md +2 -0
  311. package/docs/sql-queries.md +2 -0
  312. package/package.json +39 -1
  313. package/types/S1067/rule.d.ts +1 -1
  314. package/types/S1110/rule.d.ts +1 -1
  315. package/types/S1128/rule.d.ts +1 -1
  316. package/types/S1172/rule.d.ts +1 -1
  317. package/types/S1226/rule.d.ts +1 -1
  318. package/types/S134/rule.d.ts +1 -1
  319. package/types/S1472/rule.d.ts +1 -1
  320. package/types/S1481/rule.d.ts +1 -1
  321. package/types/S1488/generated-meta.d.ts +1 -1
  322. package/types/S1515/rule.d.ts +1 -1
  323. package/types/S1523/generated-meta.d.ts +17 -0
  324. package/types/S1523/index.d.ts +1 -0
  325. package/types/S1523/meta.d.ts +2 -0
  326. package/types/S1523/rule.d.ts +2 -0
  327. package/types/S1527/rule.d.ts +1 -1
  328. package/types/S1529/generated-meta.d.ts +1 -1
  329. package/types/S1541/rule.d.ts +1 -1
  330. package/types/S1862/rule.d.ts +1 -1
  331. package/types/S2077/generated-meta.d.ts +1 -1
  332. package/types/S2123/rule.d.ts +1 -1
  333. package/types/S2259/rule.d.ts +1 -1
  334. package/types/S2428/rule.d.ts +1 -1
  335. package/types/S2589/rule.d.ts +1 -1
  336. package/types/S2598/rule.d.ts +1 -1
  337. package/types/S2699/generated-meta.d.ts +1 -1
  338. package/types/S2699/rule.d.ts +1 -1
  339. package/types/S2737/rule.d.ts +1 -1
  340. package/types/S2757/rule.d.ts +1 -1
  341. package/types/S2819/rule.d.ts +1 -1
  342. package/types/S3001/rule.d.ts +1 -1
  343. package/types/S3317/rule.d.ts +1 -1
  344. package/types/S3500/rule.d.ts +1 -1
  345. package/types/S3513/rule.d.ts +1 -1
  346. package/types/S3686/rule.d.ts +1 -1
  347. package/types/S3801/generated-meta.d.ts +1 -1
  348. package/types/S3972/rule.d.ts +1 -1
  349. package/types/S3973/rule.d.ts +1 -1
  350. package/types/S4030/rule.d.ts +1 -1
  351. package/types/S4143/rule.d.ts +1 -1
  352. package/types/S4158/rule.d.ts +1 -1
  353. package/types/S4621/rule.d.ts +1 -1
  354. package/types/S4782/rule.d.ts +1 -1
  355. package/types/S5693/rule.d.ts +1 -1
  356. package/types/S5725/rule.d.ts +1 -1
  357. package/types/S5860/rule.d.ts +1 -1
  358. package/types/S5868/rule.d.ts +1 -1
  359. package/types/S5869/rule.d.ts +1 -1
  360. package/types/S6079/rule.d.ts +1 -1
  361. package/types/S6326/rule.d.ts +1 -1
  362. package/types/S6351/rule.d.ts +1 -1
  363. package/types/S6418/config.d.ts +1 -1
  364. package/types/S6443/rule.d.ts +1 -1
  365. package/types/S7059/generated-meta.d.ts +1 -1
  366. package/types/S7639/generated-meta.d.ts +1 -1
  367. package/types/S7790/generated-meta.d.ts +1 -1
  368. package/types/S8441/generated-meta.d.ts +1 -1
  369. package/types/S930/rule.d.ts +1 -1
  370. package/types/helpers/ancestor.d.ts +3 -3
  371. package/types/helpers/ast.d.ts +1 -1
  372. package/types/helpers/aws/iam.d.ts +2 -2
  373. package/types/helpers/aws/s3.d.ts +1 -1
  374. package/types/helpers/chai.d.ts +3 -5
  375. package/types/helpers/configs.d.ts +39 -1
  376. package/types/helpers/entropy.d.ts +1 -0
  377. package/types/helpers/equivalence.d.ts +1 -1
  378. package/types/helpers/express.d.ts +38 -43
  379. package/types/helpers/find-up/all-in-parent-dirs.d.ts +1 -1
  380. package/types/helpers/find-up/closest.d.ts +1 -1
  381. package/types/helpers/find-up/find-minimatch.d.ts +1 -1
  382. package/types/helpers/generate-meta.d.ts +1 -1
  383. package/types/helpers/mocha.d.ts +19 -21
  384. package/types/helpers/module.d.ts +1 -1
  385. package/types/helpers/package-jsons/all-in-parent-dirs.d.ts +1 -1
  386. package/types/helpers/package-jsons/dependencies.d.ts +1 -1
  387. package/types/helpers/recognizers/CodeRecognizer.d.ts +1 -1
  388. package/types/helpers/recognizers/JavaScriptFootPrint.d.ts +2 -2
  389. package/types/helpers/recognizers/LanguageFootprint.d.ts +1 -1
  390. package/types/helpers/regex/alternation.d.ts +1 -1
  391. package/types/helpers/regex/ast.d.ts +1 -1
  392. package/types/helpers/regex/location.d.ts +2 -2
  393. package/types/helpers/regex/range.d.ts +2 -2
  394. package/types/helpers/regex/rule-template.d.ts +1 -1
  395. package/types/helpers/result.d.ts +1 -1
  396. package/types/helpers/sinon.d.ts +4 -6
  397. package/types/helpers/sonar-runtime.d.ts +1 -1
  398. package/types/helpers/supertest.d.ts +4 -6
  399. package/types/helpers/type.d.ts +1 -1
  400. package/types/helpers/vitest.d.ts +4 -6
  401. package/types/plugin-rules.d.ts +1 -0
  402. package/cjs/helpers/decorators/interceptor.js +0 -88
  403. package/cjs/helpers/index.js +0 -60
  404. package/cjs/helpers/recognizers/index.js +0 -37
  405. package/cjs/helpers/rule-detect-react.js +0 -29
  406. package/cjs/helpers/validate-version.js +0 -94
  407. package/types/helpers/aws/index.d.ts +0 -3
  408. package/types/helpers/decorators/index.d.ts +0 -2
  409. package/types/helpers/decorators/interceptor.d.ts +0 -16
  410. package/types/helpers/index.d.ts +0 -28
  411. package/types/helpers/recognizers/index.d.ts +0 -2
  412. package/types/helpers/rule-detect-react.d.ts +0 -2
  413. package/types/helpers/validate-version.d.ts +0 -13
package/cjs/S4621/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const location_js_1 = require("../helpers/location.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
59
  create(context) {
59
60
  return {
60
61
  'TSUnionType, TSIntersectionType'(node) {
@@ -76,8 +77,8 @@ exports.rule = {
76
77
  if (duplicates.length > 1) {
77
78
  const suggest = getSuggestions(compositeType, duplicates, context);
78
79
  const primaryNode = duplicates.splice(1, 1)[0];
79
- const secondaryLocations = duplicates.map((node, index) => (0, index_js_1.toSecondaryLocation)(node, index ? 'Another duplicate' : 'Original'));
80
- (0, index_js_1.report)(context, {
80
+ const secondaryLocations = duplicates.map((node, index) => (0, location_js_1.toSecondaryLocation)(node, index ? 'Another duplicate' : 'Original'));
81
+ (0, location_js_1.report)(context, {
81
82
  message: `Remove this duplicated type or replace with another one.`,
82
83
  loc: primaryNode.loc,
83
84
  suggest,
package/cjs/S4622/rule.js CHANGED
@@ -51,14 +51,16 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
56
+ const type_js_1 = require("../helpers/type.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const DEFAULT_THRESHOLD = 3;
57
59
  const messages = {
58
60
  refactorUnion: 'Refactor this union type to have less than {{threshold}} elements.',
59
61
  };
60
62
  exports.rule = {
61
- meta: (0, index_js_1.generateMeta)(meta, { messages }),
63
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
62
64
  create(context) {
63
65
  return {
64
66
  TSUnionType: (node) => {
@@ -86,5 +88,5 @@ function isFromTypeStatement(node) {
86
88
  function isUsedWithUtilityType(node) {
87
89
  return (node.parent.type === 'TSTypeParameterInstantiation' &&
88
90
  node.parent.parent.type === 'TSTypeReference' &&
89
- (0, index_js_1.isIdentifier)(node.parent.parent.typeName, ...index_js_1.UTILITY_TYPES));
91
+ (0, ast_js_1.isIdentifier)(node.parent.parent.typeName, ...type_js_1.UTILITY_TYPES));
90
92
  }
package/cjs/S4623/rule.js CHANGED
@@ -54,11 +54,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.rule = void 0;
57
- const index_js_1 = require("../helpers/index.js");
57
+ const parser_services_js_1 = require("../helpers/parser-services.js");
58
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
59
+ const ast_js_1 = require("../helpers/ast.js");
60
+ const collection_js_1 = require("../helpers/collection.js");
58
61
  const typescript_1 = __importDefault(require("typescript"));
59
62
  const meta = __importStar(require("./generated-meta.js"));
60
63
  exports.rule = {
61
- meta: (0, index_js_1.generateMeta)(meta, {
64
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
62
65
  hasSuggestions: true,
63
66
  messages: {
64
67
  removeUndefined: 'Remove this redundant "undefined".',
@@ -67,7 +70,7 @@ exports.rule = {
67
70
  }),
68
71
  create(context) {
69
72
  const services = context.sourceCode.parserServices;
70
- if ((0, index_js_1.isRequiredParserServices)(services)) {
73
+ if ((0, parser_services_js_1.isRequiredParserServices)(services)) {
71
74
  return {
72
75
  CallExpression: (node) => {
73
76
  const call = node;
@@ -75,8 +78,8 @@ exports.rule = {
75
78
  if (args.length === 0) {
76
79
  return;
77
80
  }
78
- const lastArgument = (0, index_js_1.last)(args);
79
- if ((0, index_js_1.isUndefined)(lastArgument) && isOptionalParameter(args.length - 1, call, services)) {
81
+ const lastArgument = (0, collection_js_1.last)(args);
82
+ if ((0, ast_js_1.isUndefined)(lastArgument) && isOptionalParameter(args.length - 1, call, services)) {
80
83
  context.report({
81
84
  messageId: 'removeUndefined',
82
85
  node: lastArgument,
package/cjs/S4624/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ancestor_js_1 = require("../helpers/ancestor.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const collection_js_1 = require("../helpers/collection.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  messages: {
59
61
  nestedTemplateLiterals: 'Refactor this code to not use nested template literals.',
60
62
  },
@@ -62,8 +64,8 @@ exports.rule = {
62
64
  create(context) {
63
65
  return {
64
66
  'TemplateLiteral TemplateLiteral': (node) => {
65
- const ancestors = (0, index_js_1.ancestorsChain)(node, new Set(['TemplateLiteral']));
66
- const nestingTemplate = (0, index_js_1.last)(ancestors);
67
+ const ancestors = (0, ancestor_js_1.ancestorsChain)(node, new Set(['TemplateLiteral']));
68
+ const nestingTemplate = (0, collection_js_1.last)(ancestors);
67
69
  const { start: nestingStart, end: nestingEnd } = nestingTemplate.loc;
68
70
  const { start: nestedStart, end: nestedEnd } = node.loc;
69
71
  if (nestedStart.line === nestingStart.line || nestedEnd.line === nestingEnd.line) {
package/cjs/S4634/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  hasSuggestions: true,
59
60
  messages: {
60
61
  promiseAction: 'Replace this trivial promise with "Promise.{{action}}".',
@@ -82,7 +83,7 @@ function getPromiseExecutor(node, context) {
82
83
  return undefined;
83
84
  }
84
85
  function checkExecutor(newExpr, executor, context) {
85
- if (!(0, index_js_1.isFunctionNode)(executor)) {
86
+ if (!(0, ast_js_1.isFunctionNode)(executor)) {
86
87
  return;
87
88
  }
88
89
  const { params, body } = executor;
package/cjs/S4721/rule.js CHANGED
@@ -51,13 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
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");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const EXEC_FUNCTIONS = new Set(['exec', 'execSync']);
57
59
  const SPAWN_EXEC_FILE_FUNCTIONS = new Set(['spawn', 'spawnSync', 'execFile', 'execFileSync']);
58
60
  const CHILD_PROCESS_MODULE = 'child_process';
59
61
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
63
  messages: {
62
64
  safeOSCommand: 'Make sure that executing this OS command is safe here.',
63
65
  },
@@ -70,7 +72,7 @@ exports.rule = {
70
72
  };
71
73
  function checkOSCommand(context, call) {
72
74
  const { callee, arguments: args } = call;
73
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, call);
75
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, call);
74
76
  if (!fqn) {
75
77
  return;
76
78
  }
@@ -87,7 +89,7 @@ function checkOSCommand(context, call) {
87
89
  }
88
90
  function isQuestionable(method, [command, ...otherArguments]) {
89
91
  // if command is hardcoded => no issue
90
- if (!command || (0, index_js_1.isLiteral)(command) || (0, index_js_1.isStaticTemplateLiteral)(command)) {
92
+ if (!command || (0, ast_js_1.isLiteral)(command) || (0, ast_js_1.isStaticTemplateLiteral)(command)) {
91
93
  return false;
92
94
  }
93
95
  // for `spawn` and `execFile`, `shell` option must be set to `true`
@@ -100,5 +102,5 @@ function containsShellOption(otherArguments) {
100
102
  return otherArguments.some(arg => arg.type === 'ObjectExpression' &&
101
103
  arg.properties
102
104
  .filter(v => v.type === 'Property')
103
- .some(({ key, value }) => (0, index_js_1.isIdentifier)(key, 'shell') && value.type === 'Literal' && value.value === true));
105
+ .some(({ key, value }) => (0, ast_js_1.isIdentifier)(key, 'shell') && value.type === 'Literal' && value.value === true));
104
106
  }
package/cjs/S4782/rule.js CHANGED
@@ -51,12 +51,14 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const parser_services_js_1 = require("../helpers/parser-services.js");
56
+ const location_js_1 = require("../helpers/location.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, { hasSuggestions: true }),
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
60
  create(context) {
59
- if (!(0, index_js_1.isRequiredParserServices)(context.sourceCode.parserServices)) {
61
+ if (!(0, parser_services_js_1.isRequiredParserServices)(context.sourceCode.parserServices)) {
60
62
  return {};
61
63
  }
62
64
  const compilerOptions = context.sourceCode.parserServices.program.getCompilerOptions();
@@ -72,11 +74,11 @@ exports.rule = {
72
74
  const typeNode = getUndefinedTypeAnnotation(tsNode.typeAnnotation);
73
75
  if (typeNode) {
74
76
  const suggest = getQuickFixSuggestions(context, optionalToken, typeNode);
75
- (0, index_js_1.report)(context, {
77
+ (0, location_js_1.report)(context, {
76
78
  message: "Consider removing 'undefined' type or '?' specifier, one of them is redundant.",
77
79
  loc: optionalToken.loc,
78
80
  suggest,
79
- }, [(0, index_js_1.toSecondaryLocation)(typeNode)]);
81
+ }, [(0, location_js_1.toSecondaryLocation)(typeNode)]);
80
82
  }
81
83
  }
82
84
  return {
package/cjs/S4784/rule.js CHANGED
@@ -51,13 +51,14 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  const stringMethods = ['match', 'search', 'split'];
57
58
  const minPatternLength = 3;
58
59
  const specialChars = new Set(['+', '*', '{']);
59
60
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
61
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
62
  messages: {
62
63
  safeRegex: 'Make sure that using a regular expression is safe here.',
63
64
  },
@@ -78,13 +79,13 @@ exports.rule = {
78
79
  },
79
80
  CallExpression(node) {
80
81
  const { callee, arguments: args } = node;
81
- if ((0, index_js_1.isMemberWithProperty)(callee, ...stringMethods)) {
82
+ if ((0, ast_js_1.isMemberWithProperty)(callee, ...stringMethods)) {
82
83
  checkFirstArgument(args, context);
83
84
  }
84
85
  },
85
86
  NewExpression(node) {
86
87
  const { callee, arguments: args } = node;
87
- if ((0, index_js_1.isIdentifier)(callee, 'RegExp')) {
88
+ if ((0, ast_js_1.isIdentifier)(callee, 'RegExp')) {
88
89
  checkFirstArgument(args, context);
89
90
  }
90
91
  },
package/cjs/S4787/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
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");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  messages: {
59
61
  safeEncryption: 'Make sure that encrypting data is safe here.',
60
62
  },
@@ -71,8 +73,8 @@ const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
71
73
  // detect 'SubtleCrypto' object
72
74
  // which can be retrieved by 'crypto.subtle' or 'window.crypto.subtle'
73
75
  const { object, property } = node;
74
- if ((0, index_js_1.isIdentifier)(property, 'subtle') &&
75
- ((0, index_js_1.isIdentifier)(object, 'crypto') || (0, index_js_1.isMemberWithProperty)(object, 'crypto'))) {
76
+ if ((0, ast_js_1.isIdentifier)(property, 'subtle') &&
77
+ ((0, ast_js_1.isIdentifier)(object, 'crypto') || (0, ast_js_1.isMemberWithProperty)(object, 'crypto'))) {
76
78
  usingCryptoInFile = true;
77
79
  }
78
80
  },
@@ -91,7 +93,7 @@ const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
91
93
  },
92
94
  });
93
95
  function checkForServerSide(callee, context, serverSideMethods) {
94
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callee);
96
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
95
97
  if (serverSideMethods.some(method => fqn === `crypto.${method}`)) {
96
98
  context.report({
97
99
  messageId: 'safeEncryption',
@@ -100,8 +102,8 @@ function checkForServerSide(callee, context, serverSideMethods) {
100
102
  }
101
103
  }
102
104
  function checkForClientSide(callee, context, clientSideMethods) {
103
- if ((0, index_js_1.isIdentifier)(callee, ...clientSideMethods) ||
104
- (0, index_js_1.isMemberWithProperty)(callee, ...clientSideMethods)) {
105
+ if ((0, ast_js_1.isIdentifier)(callee, ...clientSideMethods) ||
106
+ (0, ast_js_1.isMemberWithProperty)(callee, ...clientSideMethods)) {
105
107
  context.report({
106
108
  messageId: 'safeEncryption',
107
109
  node: callee,
package/cjs/S4790/rule.js CHANGED
@@ -51,7 +51,9 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
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");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const message = 'Make sure this weak hash algorithm is not used in a sensitive context here.';
57
59
  const CRYPTO_UNSECURE_HASH_ALGORITHMS = new Set([
@@ -70,7 +72,7 @@ const CRYPTO_UNSECURE_HASH_ALGORITHMS = new Set([
70
72
  ]);
71
73
  const SUBTLE_UNSECURE_HASH_ALGORITHMS = new Set(['sha-1']);
72
74
  exports.rule = {
73
- meta: (0, index_js_1.generateMeta)(meta),
75
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
74
76
  create(context) {
75
77
  function checkNodejsCrypto(fqn, node) {
76
78
  // crypto#createHash
@@ -87,8 +89,8 @@ exports.rule = {
87
89
  }
88
90
  }
89
91
  function checkUnsecureAlgorithm(method, hash, unsecureAlgorithms) {
90
- const hashAlgorithm = (0, index_js_1.getUniqueWriteUsageOrNode)(context, hash);
91
- if ((0, index_js_1.isStringLiteral)(hashAlgorithm) &&
92
+ const hashAlgorithm = (0, ast_js_1.getUniqueWriteUsageOrNode)(context, hash);
93
+ if ((0, ast_js_1.isStringLiteral)(hashAlgorithm) &&
92
94
  unsecureAlgorithms.has(hashAlgorithm.value.toLocaleLowerCase())) {
93
95
  context.report({
94
96
  message,
@@ -99,7 +101,7 @@ exports.rule = {
99
101
  return {
100
102
  'CallExpression[arguments.length > 0]': (node) => {
101
103
  const callExpr = node;
102
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callExpr);
104
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callExpr);
103
105
  checkNodejsCrypto(fqn, callExpr);
104
106
  checkSubtleCrypto(fqn, callExpr);
105
107
  },
package/cjs/S4798/rule.js CHANGED
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
57
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
58
  messages: {
59
59
  provideDefault: "Provide a default value for '{{parameter}}' so that " +
60
60
  'the logic of the function is more evident when this parameter is missing. ' +
package/cjs/S4817/rule.js CHANGED
@@ -51,13 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
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");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const xpathModule = 'xpath';
57
59
  const xpathEvalMethods = ['select', 'select1', 'evaluate'];
58
60
  const ieEvalMethods = ['selectNodes', 'SelectSingleNode'];
59
61
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
63
  messages: {
62
64
  checkXPath: 'Make sure that executing this XPATH expression is safe.',
63
65
  },
@@ -65,7 +67,7 @@ exports.rule = {
65
67
  create(context) {
66
68
  return {
67
69
  MemberExpression: (node) => {
68
- if ((0, index_js_1.isMemberExpression)(node, 'document', 'evaluate')) {
70
+ if ((0, ast_js_1.isMemberExpression)(node, 'document', 'evaluate')) {
69
71
  context.report({ messageId: 'checkXPath', node });
70
72
  }
71
73
  },
@@ -74,17 +76,17 @@ exports.rule = {
74
76
  },
75
77
  };
76
78
  function checkCallExpression({ callee, arguments: args }, context) {
77
- if (args.length > 0 && (0, index_js_1.isLiteral)(args[0])) {
79
+ if (args.length > 0 && (0, ast_js_1.isLiteral)(args[0])) {
78
80
  return;
79
81
  }
80
82
  // IE
81
- if ((0, index_js_1.isMemberWithProperty)(callee, ...ieEvalMethods) && args.length === 1) {
83
+ if ((0, ast_js_1.isMemberWithProperty)(callee, ...ieEvalMethods) && args.length === 1) {
82
84
  context.report({ messageId: 'checkXPath', node: callee });
83
85
  return;
84
86
  }
85
87
  // Document.evaluate
86
- if ((0, index_js_1.isMemberWithProperty)(callee, 'evaluate') &&
87
- !(0, index_js_1.isMemberExpression)(callee, 'document', 'evaluate') &&
88
+ if ((0, ast_js_1.isMemberWithProperty)(callee, 'evaluate') &&
89
+ !(0, ast_js_1.isMemberExpression)(callee, 'document', 'evaluate') &&
88
90
  args.length >= 4) {
89
91
  const resultTypeArgument = args[3];
90
92
  const argumentAsText = context.sourceCode.getText(resultTypeArgument);
@@ -94,7 +96,7 @@ function checkCallExpression({ callee, arguments: args }, context) {
94
96
  }
95
97
  }
96
98
  // "xpath" module
97
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callee);
99
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
98
100
  if (xpathEvalMethods.some(method => fqn === `${xpathModule}.${method}`)) {
99
101
  context.report({ messageId: 'checkXPath', node: callee });
100
102
  }
package/cjs/S4818/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  messages: {
59
60
  safeSocket: 'Make sure that sockets are used safely here.',
60
61
  },
@@ -67,7 +68,7 @@ exports.rule = {
67
68
  },
68
69
  };
69
70
  function checkCallExpression(callExpr, context, ...sensitiveFqns) {
70
- const callFqn = (0, index_js_1.getFullyQualifiedName)(context, callExpr);
71
+ const callFqn = (0, module_js_1.getFullyQualifiedName)(context, callExpr);
71
72
  if (callFqn !== null && sensitiveFqns.includes(callFqn)) {
72
73
  context.report({ messageId: 'safeSocket', node: callExpr.callee });
73
74
  }
package/cjs/S4822/rule.js CHANGED
@@ -51,13 +51,17 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ancestor_js_1 = require("../helpers/ancestor.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const parser_services_js_1 = require("../helpers/parser-services.js");
57
+ const type_js_1 = require("../helpers/type.js");
58
+ const location_js_1 = require("../helpers/location.js");
55
59
  const meta = __importStar(require("./generated-meta.js"));
56
60
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta),
61
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
58
62
  create(context) {
59
63
  const services = context.sourceCode.parserServices;
60
- if ((0, index_js_1.isRequiredParserServices)(services)) {
64
+ if ((0, parser_services_js_1.isRequiredParserServices)(services)) {
61
65
  return {
62
66
  TryStatement: (node) => visitTryStatement(node, context, services),
63
67
  };
@@ -74,7 +78,7 @@ function visitTryStatement(tryStmt, context, services) {
74
78
  let hasPotentiallyThrowingCalls = false;
75
79
  for (const callLikeExpr of CallLikeExpressionVisitor.getCallExpressions(tryStmt.block, context)) {
76
80
  if (callLikeExpr.type === 'AwaitExpression' ||
77
- !(0, index_js_1.isThenable)(callLikeExpr, services)) {
81
+ !(0, type_js_1.isThenable)(callLikeExpr, services)) {
78
82
  hasPotentiallyThrowingCalls = true;
79
83
  continue;
80
84
  }
@@ -111,7 +115,7 @@ class CallLikeExpressionVisitor {
111
115
  case 'ArrowFunctionExpression':
112
116
  return;
113
117
  }
114
- for (const childNode of (0, index_js_1.childrenOf)(node, context.sourceCode.visitorKeys)) {
118
+ for (const childNode of (0, ancestor_js_1.childrenOf)(node, context.sourceCode.visitorKeys)) {
115
119
  visitNode(childNode);
116
120
  }
117
121
  };
@@ -123,10 +127,10 @@ function checkForWrongCatch(tryStmt, openPromises, context) {
123
127
  const ending = openPromises.length > 1 ? 's' : '';
124
128
  const message = `Consider using 'await' for the promise${ending} inside this 'try' or replace it with 'Promise.prototype.catch(...)' usage${ending}.`;
125
129
  const token = context.sourceCode.getFirstToken(tryStmt);
126
- (0, index_js_1.report)(context, {
130
+ (0, location_js_1.report)(context, {
127
131
  message,
128
132
  loc: token.loc,
129
- }, openPromises.map(node => (0, index_js_1.toSecondaryLocation)(node, 'Promise')));
133
+ }, openPromises.map(node => (0, location_js_1.toSecondaryLocation)(node, 'Promise')));
130
134
  }
131
135
  }
132
136
  function checkForUselessCatch(tryStmt, openPromises, capturedPromises, context) {
@@ -134,10 +138,10 @@ function checkForUselessCatch(tryStmt, openPromises, capturedPromises, context)
134
138
  const ending = capturedPromises.length > 1 ? 's' : '';
135
139
  const message = `Consider removing this 'try' statement as promise${ending} rejection is already captured by '.catch()' method.`;
136
140
  const token = context.sourceCode.getFirstToken(tryStmt);
137
- (0, index_js_1.report)(context, {
141
+ (0, location_js_1.report)(context, {
138
142
  message,
139
143
  loc: token.loc,
140
- }, capturedPromises.map(node => (0, index_js_1.toSecondaryLocation)(node, 'Caught promise')));
144
+ }, capturedPromises.map(node => (0, location_js_1.toSecondaryLocation)(node, 'Caught promise')));
141
145
  }
142
146
  }
143
147
  function isAwaitLike(callExpr) {
package/cjs/S4823/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  messages: {
59
60
  safeArg: `Make sure that command line arguments are used safely here.`,
60
61
  },
@@ -62,7 +63,7 @@ exports.rule = {
62
63
  create(context) {
63
64
  return {
64
65
  MemberExpression(node) {
65
- if ((0, index_js_1.isMemberExpression)(node, 'process', 'argv')) {
66
+ if ((0, ast_js_1.isMemberExpression)(node, 'process', 'argv')) {
66
67
  context.report({
67
68
  messageId: 'safeArg',
68
69
  node,
package/cjs/S4829/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  messages: {
59
60
  safeStdin: `Make sure that reading the standard input is safe here.`,
60
61
  },
@@ -62,7 +63,7 @@ exports.rule = {
62
63
  create(context) {
63
64
  return {
64
65
  MemberExpression(node) {
65
- if ((0, index_js_1.isMemberExpression)(node, 'process', 'stdin')) {
66
+ if ((0, ast_js_1.isMemberExpression)(node, 'process', 'stdin')) {
66
67
  context.report({
67
68
  messageId: 'safeStdin',
68
69
  node,
package/cjs/S4830/rule.js CHANGED
@@ -51,10 +51,13 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const location_js_1 = require("../helpers/location.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const module_js_1 = require("../helpers/module.js");
57
+ const ast_js_1 = require("../helpers/ast.js");
55
58
  const meta = __importStar(require("./generated-meta.js"));
56
59
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta),
60
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
58
61
  create(context) {
59
62
  const MESSAGE = 'Enable server certificate validation on this SSL/TLS connection.';
60
63
  const SECONDARY_MESSAGE = 'Set "rejectUnauthorized" to "true".';
@@ -64,17 +67,17 @@ exports.rule = {
64
67
  }
65
68
  const sensitiveArgument = callExpression.arguments[sensitiveArgumentIndex];
66
69
  const secondaryLocations = [];
67
- const argumentValue = (0, index_js_1.getValueOfExpression)(context, sensitiveArgument, 'ObjectExpression');
70
+ const argumentValue = (0, ast_js_1.getValueOfExpression)(context, sensitiveArgument, 'ObjectExpression');
68
71
  if (!argumentValue) {
69
72
  return;
70
73
  }
71
74
  if (sensitiveArgument !== argumentValue) {
72
- secondaryLocations.push((0, index_js_1.toSecondaryLocation)(argumentValue));
75
+ secondaryLocations.push((0, location_js_1.toSecondaryLocation)(argumentValue));
73
76
  }
74
- const unsafeRejectUnauthorizedConfiguration = (0, index_js_1.getPropertyWithValue)(context, argumentValue, 'rejectUnauthorized', false);
77
+ const unsafeRejectUnauthorizedConfiguration = (0, ast_js_1.getPropertyWithValue)(context, argumentValue, 'rejectUnauthorized', false);
75
78
  if (unsafeRejectUnauthorizedConfiguration) {
76
- secondaryLocations.push((0, index_js_1.toSecondaryLocation)(unsafeRejectUnauthorizedConfiguration, SECONDARY_MESSAGE));
77
- (0, index_js_1.report)(context, {
79
+ secondaryLocations.push((0, location_js_1.toSecondaryLocation)(unsafeRejectUnauthorizedConfiguration, SECONDARY_MESSAGE));
80
+ (0, location_js_1.report)(context, {
78
81
  node: callExpression.callee,
79
82
  message: MESSAGE,
80
83
  }, secondaryLocations);
@@ -83,7 +86,7 @@ exports.rule = {
83
86
  return {
84
87
  CallExpression: (node) => {
85
88
  const callExpression = node;
86
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callExpression);
89
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callExpression);
87
90
  if (fqn === 'https.request') {
88
91
  checkSensitiveArgument(callExpression, 0);
89
92
  }
package/cjs/S5042/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
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");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  messages: {
59
61
  safeExpanding: 'Make sure that expanding this archive file is safe here.',
60
62
  },
@@ -66,7 +68,7 @@ exports.rule = {
66
68
  if (!firstArg) {
67
69
  return false;
68
70
  }
69
- const firstArgValue = (0, index_js_1.getValueOfExpression)(context, firstArg, 'ObjectExpression');
71
+ const firstArgValue = (0, ast_js_1.getValueOfExpression)(context, firstArg, 'ObjectExpression');
70
72
  return (!!firstArgValue && !firstArgValue.properties.some(prop => canBeProperty(prop, 'filter')));
71
73
  }
72
74
  return false;
@@ -77,7 +79,7 @@ exports.rule = {
77
79
  if (!secondArg) {
78
80
  return false;
79
81
  }
80
- const secondArgValue = (0, index_js_1.getValueOfExpression)(context, secondArg, 'ObjectExpression');
82
+ const secondArgValue = (0, ast_js_1.getValueOfExpression)(context, secondArg, 'ObjectExpression');
81
83
  return (!!secondArgValue &&
82
84
  !secondArgValue.properties.some(prop => canBeProperty(prop, 'onEntry')));
83
85
  }
@@ -86,7 +88,7 @@ exports.rule = {
86
88
  return {
87
89
  CallExpression(node) {
88
90
  const call = node;
89
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, call);
91
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, call);
90
92
  if (isSensitiveTarCall(call, fqn) ||
91
93
  isSensitiveExtractZipCall(call, fqn) ||
92
94
  fqn === 'jszip.loadAsync' ||
@@ -103,6 +105,6 @@ exports.rule = {
103
105
  };
104
106
  function canBeProperty(prop, name) {
105
107
  return (prop.type === 'SpreadElement' ||
106
- (0, index_js_1.isIdentifier)(prop.key, name) ||
107
- ((0, index_js_1.isLiteral)(prop.key) && prop.key.value === name));
108
+ (0, ast_js_1.isIdentifier)(prop.key, name) ||
109
+ ((0, ast_js_1.isLiteral)(prop.key) && prop.key.value === name));
108
110
  }