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/S5732/rule.js CHANGED
@@ -51,7 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const express_js_1 = require("../helpers/express.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
  const HELMET = 'helmet';
57
60
  const HELMET_CSP = 'helmet-csp';
@@ -60,12 +63,12 @@ const NONE = "'none'";
60
63
  const CONTENT_SECURITY_POLICY = 'contentSecurityPolicy';
61
64
  const FRAME_ANCESTORS_CAMEL = 'frameAncestors';
62
65
  const FRAME_ANCESTORS_HYPHEN = 'frame-ancestors';
63
- exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findDirectivesWithSensitiveFrameAncestorsPropertyFromHelmet, `Make sure disabling content security policy frame-ancestors directive is safe here.`, (0, index_js_1.generateMeta)(meta));
66
+ exports.rule = (0, express_js_1.SensitiveMiddlewarePropertyRule)(findDirectivesWithSensitiveFrameAncestorsPropertyFromHelmet, `Make sure disabling content security policy frame-ancestors directive is safe here.`, (0, generate_meta_js_1.generateMeta)(meta));
64
67
  function findDirectivesWithSensitiveFrameAncestorsPropertyFromHelmet(context, node) {
65
68
  const { arguments: args } = node;
66
69
  if (isValidHelmetModuleCall(context, node) && args.length === 1) {
67
70
  const [options] = args;
68
- const maybeDirectives = (0, index_js_1.getProperty)(options, DIRECTIVES, context);
71
+ const maybeDirectives = (0, ast_js_1.getProperty)(options, DIRECTIVES, context);
69
72
  if (maybeDirectives) {
70
73
  const maybeFrameAncestors = getFrameAncestorsProperty(maybeDirectives, context);
71
74
  if (!maybeFrameAncestors) {
@@ -80,7 +83,7 @@ function findDirectivesWithSensitiveFrameAncestorsPropertyFromHelmet(context, no
80
83
  }
81
84
  function isValidHelmetModuleCall(context, callExpr) {
82
85
  /* csp(options) or helmet.contentSecurityPolicy(options) */
83
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callExpr);
86
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callExpr);
84
87
  return fqn === HELMET_CSP || fqn === `${HELMET}.${CONTENT_SECURITY_POLICY}`;
85
88
  }
86
89
  function isSetNoneFrameAncestorsProperty(frameAncestors) {
@@ -91,7 +94,7 @@ function isSetNoneFrameAncestorsProperty(frameAncestors) {
91
94
  function getFrameAncestorsProperty(directives, context) {
92
95
  const propertyKeys = [FRAME_ANCESTORS_CAMEL, FRAME_ANCESTORS_HYPHEN];
93
96
  for (const propertyKey of propertyKeys) {
94
- const maybeProperty = (0, index_js_1.getProperty)(directives.value, propertyKey, context);
97
+ const maybeProperty = (0, ast_js_1.getProperty)(directives.value, propertyKey, context);
95
98
  if (maybeProperty) {
96
99
  return maybeProperty;
97
100
  }
package/cjs/S5734/rule.js CHANGED
@@ -51,11 +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 express_js_1 = require("../helpers/express.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
  const HELMET = 'helmet';
57
60
  const NO_SNIFF = 'noSniff';
58
- exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findFalseNoSniffPropertyFromHelmet, `Make sure allowing browsers to sniff MIME types is safe here.`, (0, index_js_1.generateMeta)(meta));
61
+ exports.rule = (0, express_js_1.SensitiveMiddlewarePropertyRule)(findFalseNoSniffPropertyFromHelmet, `Make sure allowing browsers to sniff MIME types is safe here.`, (0, generate_meta_js_1.generateMeta)(meta));
59
62
  /**
60
63
  * Looks for property `noSniff: false` in node looking
61
64
  * somewhat similar to `helmet(<options>?)`, and returns it.
@@ -63,10 +66,10 @@ exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findFalseNoSni
63
66
  function findFalseNoSniffPropertyFromHelmet(context, node) {
64
67
  let sensitive;
65
68
  const { callee, arguments: args } = node;
66
- if ((0, index_js_1.getFullyQualifiedName)(context, callee) === HELMET &&
69
+ if ((0, module_js_1.getFullyQualifiedName)(context, callee) === HELMET &&
67
70
  args.length === 1 &&
68
71
  args[0].type === 'ObjectExpression') {
69
- sensitive = (0, index_js_1.getPropertyWithValue)(context, args[0], NO_SNIFF, false);
72
+ sensitive = (0, ast_js_1.getPropertyWithValue)(context, args[0], NO_SNIFF, false);
70
73
  }
71
74
  return sensitive ? [sensitive] : [];
72
75
  }
package/cjs/S5736/rule.js CHANGED
@@ -51,25 +51,28 @@ 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 express_js_1 = require("../helpers/express.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
  const HELMET = 'helmet';
57
60
  const POLICY = 'policy';
58
61
  const REFERRER_POLICY = 'referrerPolicy';
59
62
  const UNSAFE_REFERRER_POLICY_VALUES = new Set(['', 'unsafe-url', 'no-referrer-when-downgrade']);
60
- exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findNoReferrerPolicyPropertyFromHelmet, `Make sure disabling strict HTTP no-referrer policy is safe here.`, (0, index_js_1.generateMeta)(meta));
63
+ exports.rule = (0, express_js_1.SensitiveMiddlewarePropertyRule)(findNoReferrerPolicyPropertyFromHelmet, `Make sure disabling strict HTTP no-referrer policy is safe here.`, (0, generate_meta_js_1.generateMeta)(meta));
61
64
  function findNoReferrerPolicyPropertyFromHelmet(context, node) {
62
65
  let sensitive;
63
66
  const { callee, arguments: args } = node;
64
67
  if (args.length === 1) {
65
68
  const [options] = args;
66
69
  /* helmet({ referrerPolicy: false }) or helmet.referrerPolicy({ policy: <unsafe_value> }) */
67
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callee);
70
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
68
71
  if (fqn === HELMET && options.type === 'ObjectExpression') {
69
- sensitive = (0, index_js_1.getPropertyWithValue)(context, options, REFERRER_POLICY, false);
72
+ sensitive = (0, ast_js_1.getPropertyWithValue)(context, options, REFERRER_POLICY, false);
70
73
  }
71
74
  else if (fqn === `${HELMET}.${REFERRER_POLICY}`) {
72
- const maybePolicy = (0, index_js_1.getProperty)(options, POLICY, context);
75
+ const maybePolicy = (0, ast_js_1.getProperty)(options, POLICY, context);
73
76
  if (maybePolicy && !isSafePolicy(maybePolicy)) {
74
77
  sensitive = maybePolicy;
75
78
  }
package/cjs/S5739/rule.js CHANGED
@@ -51,14 +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 express_js_1 = require("../helpers/express.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
  const HSTS = 'hsts';
57
60
  const HELMET = 'helmet';
58
61
  const MAX_AGE = 'maxAge';
59
62
  const INCLUDE_SUB_DOMAINS = 'includeSubDomains';
60
63
  const RECOMMENDED_MAX_AGE = 15552000;
61
- exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findSensitiveTransportSecurityPolicyProperty, `Disabling Strict-Transport-Security policy is security-sensitive.`, (0, index_js_1.generateMeta)(meta));
64
+ exports.rule = (0, express_js_1.SensitiveMiddlewarePropertyRule)(findSensitiveTransportSecurityPolicyProperty, `Disabling Strict-Transport-Security policy is security-sensitive.`, (0, generate_meta_js_1.generateMeta)(meta));
62
65
  function findSensitiveTransportSecurityPolicyProperty(context, node) {
63
66
  const sensitiveFinders = [findSensitiveHsts, findSensitiveMaxAge, findSensitiveIncludeSubDomains];
64
67
  const sensitives = [];
@@ -75,16 +78,16 @@ function findSensitiveTransportSecurityPolicyProperty(context, node) {
75
78
  return sensitives;
76
79
  }
77
80
  function findSensitiveHsts(context, middleware, options) {
78
- if ((0, index_js_1.getFullyQualifiedName)(context, middleware) === HELMET) {
79
- return (0, index_js_1.getPropertyWithValue)(context, options, HSTS, false);
81
+ if ((0, module_js_1.getFullyQualifiedName)(context, middleware) === HELMET) {
82
+ return (0, ast_js_1.getPropertyWithValue)(context, options, HSTS, false);
80
83
  }
81
84
  return undefined;
82
85
  }
83
86
  function findSensitiveMaxAge(context, middleware, options) {
84
87
  if (isHstsMiddlewareNode(context, middleware)) {
85
- const maybeMaxAgeProperty = (0, index_js_1.getProperty)(options, MAX_AGE, context);
88
+ const maybeMaxAgeProperty = (0, ast_js_1.getProperty)(options, MAX_AGE, context);
86
89
  if (maybeMaxAgeProperty) {
87
- const maybeMaxAgeValue = (0, index_js_1.getValueOfExpression)(context, maybeMaxAgeProperty.value, 'Literal');
90
+ const maybeMaxAgeValue = (0, ast_js_1.getValueOfExpression)(context, maybeMaxAgeProperty.value, 'Literal');
88
91
  if (typeof maybeMaxAgeValue?.value === 'number' &&
89
92
  maybeMaxAgeValue.value < RECOMMENDED_MAX_AGE) {
90
93
  return maybeMaxAgeProperty;
@@ -95,11 +98,11 @@ function findSensitiveMaxAge(context, middleware, options) {
95
98
  }
96
99
  function findSensitiveIncludeSubDomains(context, middleware, options) {
97
100
  if (isHstsMiddlewareNode(context, middleware)) {
98
- return (0, index_js_1.getPropertyWithValue)(context, options, INCLUDE_SUB_DOMAINS, false);
101
+ return (0, ast_js_1.getPropertyWithValue)(context, options, INCLUDE_SUB_DOMAINS, false);
99
102
  }
100
103
  return undefined;
101
104
  }
102
105
  function isHstsMiddlewareNode(context, node) {
103
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, node);
106
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, node);
104
107
  return fqn === `${HELMET}.${HSTS}` || fqn === HSTS;
105
108
  }
package/cjs/S5742/rule.js CHANGED
@@ -51,11 +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 express_js_1 = require("../helpers/express.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
  const HELMET = 'helmet';
57
60
  const EXPECT_CERTIFICATE_TRANSPARENCY = 'expectCt';
58
- exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findFalseCertificateTransparencyPropertyFromHelmet, `Make sure disabling Certificate Transparency monitoring is safe here.`, (0, index_js_1.generateMeta)(meta));
61
+ exports.rule = (0, express_js_1.SensitiveMiddlewarePropertyRule)(findFalseCertificateTransparencyPropertyFromHelmet, `Make sure disabling Certificate Transparency monitoring is safe here.`, (0, generate_meta_js_1.generateMeta)(meta));
59
62
  /**
60
63
  * Looks for property `expectCt: false` in node looking
61
64
  * somewhat similar to `helmet(<options>?)`, and returns it.
@@ -63,10 +66,10 @@ exports.rule = index_js_1.Express.SensitiveMiddlewarePropertyRule(findFalseCerti
63
66
  function findFalseCertificateTransparencyPropertyFromHelmet(context, node) {
64
67
  let sensitive;
65
68
  const { callee, arguments: args } = node;
66
- if ((0, index_js_1.getFullyQualifiedName)(context, callee) === HELMET &&
69
+ if ((0, module_js_1.getFullyQualifiedName)(context, callee) === HELMET &&
67
70
  args.length === 1 &&
68
71
  args[0].type === 'ObjectExpression') {
69
- sensitive = (0, index_js_1.getPropertyWithValue)(context, args[0], EXPECT_CERTIFICATE_TRANSPARENCY, false);
72
+ sensitive = (0, ast_js_1.getPropertyWithValue)(context, args[0], EXPECT_CERTIFICATE_TRANSPARENCY, false);
70
73
  }
71
74
  return sensitive ? [sensitive] : [];
72
75
  }
package/cjs/S5743/rule.js CHANGED
@@ -51,24 +51,26 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ast_js_1 = require("../helpers/ast.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const module_js_1 = require("../helpers/module.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const MESSAGE = 'Make sure allowing browsers to perform DNS prefetching is safe here.';
57
59
  exports.rule = {
58
- meta: (0, index_js_1.generateMeta)(meta),
60
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
59
61
  create(context) {
60
62
  return {
61
63
  CallExpression: (node) => {
62
64
  const callExpression = node;
63
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callExpression);
65
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callExpression);
64
66
  if (fqn === 'helmet.dnsPrefetchControl') {
65
- (0, index_js_1.checkSensitiveCall)(context, callExpression, 0, 'allow', true, MESSAGE);
67
+ (0, ast_js_1.checkSensitiveCall)(context, callExpression, 0, 'allow', true, MESSAGE);
66
68
  }
67
69
  if (fqn === 'helmet') {
68
- (0, index_js_1.checkSensitiveCall)(context, callExpression, 0, 'dnsPrefetchControl', false, MESSAGE);
70
+ (0, ast_js_1.checkSensitiveCall)(context, callExpression, 0, 'dnsPrefetchControl', false, MESSAGE);
69
71
  }
70
72
  if (fqn === 'dns-prefetch-control') {
71
- (0, index_js_1.checkSensitiveCall)(context, callExpression, 0, 'allow', true, MESSAGE);
73
+ (0, ast_js_1.checkSensitiveCall)(context, callExpression, 0, 'allow', true, MESSAGE);
72
74
  }
73
75
  },
74
76
  };
package/cjs/S5757/rule.js CHANGED
@@ -51,40 +51,43 @@ 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");
57
+ const location_js_1 = require("../helpers/location.js");
55
58
  const meta = __importStar(require("./generated-meta.js"));
56
59
  const MESSAGE = 'Make sure confidential information is not logged here.';
57
60
  exports.rule = {
58
- meta: (0, index_js_1.generateMeta)(meta),
61
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
59
62
  create(context) {
60
63
  return {
61
64
  NewExpression: (node) => {
62
65
  const newExpression = node;
63
66
  const { callee } = newExpression;
64
- if ((0, index_js_1.getFullyQualifiedName)(context, callee) !== 'signale.Signale') {
67
+ if ((0, module_js_1.getFullyQualifiedName)(context, callee) !== 'signale.Signale') {
65
68
  return;
66
69
  }
67
70
  if (newExpression.arguments.length === 0) {
68
- (0, index_js_1.report)(context, { node: callee, message: MESSAGE });
71
+ (0, location_js_1.report)(context, { node: callee, message: MESSAGE });
69
72
  return;
70
73
  }
71
- const firstArgument = (0, index_js_1.getValueOfExpression)(context, newExpression.arguments[0], 'ObjectExpression');
74
+ const firstArgument = (0, ast_js_1.getValueOfExpression)(context, newExpression.arguments[0], 'ObjectExpression');
72
75
  if (!firstArgument) {
73
76
  // Argument exists but its value is unknown
74
77
  return;
75
78
  }
76
- const secrets = (0, index_js_1.getProperty)(firstArgument, 'secrets', context);
79
+ const secrets = (0, ast_js_1.getProperty)(firstArgument, 'secrets', context);
77
80
  if (secrets?.value.type === 'ArrayExpression' && secrets.value.elements.length === 0) {
78
- (0, index_js_1.report)(context, {
81
+ (0, location_js_1.report)(context, {
79
82
  node: callee,
80
83
  message: MESSAGE,
81
- }, [(0, index_js_1.toSecondaryLocation)(secrets)]);
84
+ }, [(0, location_js_1.toSecondaryLocation)(secrets)]);
82
85
  }
83
86
  else if (!secrets) {
84
- (0, index_js_1.report)(context, {
87
+ (0, location_js_1.report)(context, {
85
88
  node: callee,
86
89
  message: MESSAGE,
87
- }, [(0, index_js_1.toSecondaryLocation)(firstArgument)]);
90
+ }, [(0, location_js_1.toSecondaryLocation)(firstArgument)]);
88
91
  }
89
92
  },
90
93
  };
package/cjs/S5759/rule.js CHANGED
@@ -51,26 +51,29 @@ 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");
57
+ const location_js_1 = require("../helpers/location.js");
55
58
  const meta = __importStar(require("./generated-meta.js"));
56
59
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta),
60
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
58
61
  create(context) {
59
62
  return {
60
63
  CallExpression(node) {
61
64
  const call = node;
62
65
  const { callee, arguments: args } = call;
63
66
  if (isSensitiveFQN(context, call) && args.length > 0) {
64
- const xfwdProp = (0, index_js_1.getProperty)(args[0], 'xfwd', context);
67
+ const xfwdProp = (0, ast_js_1.getProperty)(args[0], 'xfwd', context);
65
68
  if (!xfwdProp) {
66
69
  return;
67
70
  }
68
- const xfwdValue = (0, index_js_1.getValueOfExpression)(context, xfwdProp.value, 'Literal');
71
+ const xfwdValue = (0, ast_js_1.getValueOfExpression)(context, xfwdProp.value, 'Literal');
69
72
  if (xfwdValue?.value === true) {
70
- (0, index_js_1.report)(context, {
73
+ (0, location_js_1.report)(context, {
71
74
  node: callee,
72
75
  message: 'Make sure forwarding client IP address is safe here.',
73
- }, [(0, index_js_1.toSecondaryLocation)(xfwdProp)]);
76
+ }, [(0, location_js_1.toSecondaryLocation)(xfwdProp)]);
74
77
  }
75
78
  }
76
79
  },
@@ -78,7 +81,7 @@ exports.rule = {
78
81
  },
79
82
  };
80
83
  function isSensitiveFQN(context, call) {
81
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, call);
84
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, call);
82
85
  return (fqn &&
83
86
  ['http-proxy.createProxyServer', 'http-proxy-middleware.createProxyMiddleware'].includes(fqn));
84
87
  }
package/cjs/S5842/rule.js CHANGED
@@ -51,7 +51,7 @@ 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
  const rule_template_js_1 = require("../helpers/regex/rule-template.js");
57
57
  exports.rule = (0, rule_template_js_1.createRegExpRule)(context => {
@@ -67,7 +67,7 @@ exports.rule = (0, rule_template_js_1.createRegExpRule)(context => {
67
67
  }
68
68
  },
69
69
  };
70
- }, (0, index_js_1.generateMeta)(meta));
70
+ }, (0, generate_meta_js_1.generateMeta)(meta));
71
71
  function matchEmptyString(node) {
72
72
  switch (node.type) {
73
73
  case 'Alternative':
package/cjs/S5843/rule.js CHANGED
@@ -52,15 +52,18 @@ var __importStar = (this && this.__importStar) || (function () {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
54
  const regexpp_1 = require("@eslint-community/regexpp");
55
- const index_js_1 = require("../helpers/index.js");
56
- const ast_js_1 = require("../helpers/regex/ast.js");
55
+ const location_js_1 = require("../helpers/location.js");
56
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
57
+ const ast_js_1 = require("../helpers/ast.js");
58
+ const parser_services_js_1 = require("../helpers/parser-services.js");
59
+ const ast_js_2 = require("../helpers/regex/ast.js");
57
60
  const meta = __importStar(require("./generated-meta.js"));
58
61
  const extract_js_1 = require("../helpers/regex/extract.js");
59
62
  const range_js_1 = require("../helpers/regex/range.js");
60
- const location_js_1 = require("../helpers/regex/location.js");
63
+ const location_js_2 = require("../helpers/regex/location.js");
61
64
  const DEFAULT_THRESHOLD = 20;
62
65
  exports.rule = {
63
- meta: (0, index_js_1.generateMeta)(meta),
66
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
64
67
  create(context) {
65
68
  const threshold = context.options[0]?.threshold ?? DEFAULT_THRESHOLD;
66
69
  const services = context.sourceCode.parserServices;
@@ -70,16 +73,16 @@ exports.rule = {
70
73
  regexNodes.push(node);
71
74
  },
72
75
  'NewExpression:exit': (node) => {
73
- if ((0, ast_js_1.isRegExpConstructor)(node)) {
76
+ if ((0, ast_js_2.isRegExpConstructor)(node)) {
74
77
  regexNodes.push(node);
75
78
  }
76
79
  },
77
80
  'CallExpression:exit': (node) => {
78
81
  const callExpr = node;
79
- if ((0, index_js_1.isRequiredParserServices)(services) && (0, ast_js_1.isStringRegexMethodCall)(callExpr, services)) {
82
+ if ((0, parser_services_js_1.isRequiredParserServices)(services) && (0, ast_js_2.isStringRegexMethodCall)(callExpr, services)) {
80
83
  regexNodes.push(callExpr.arguments[0]);
81
84
  }
82
- else if ((0, ast_js_1.isRegExpConstructor)(callExpr)) {
85
+ else if ((0, ast_js_2.isRegExpConstructor)(callExpr)) {
83
86
  regexNodes.push(callExpr);
84
87
  }
85
88
  },
@@ -99,12 +102,12 @@ function checkRegexComplexity(regexNode, threshold, context) {
99
102
  const calculator = new ComplexityCalculator(regexPart, context);
100
103
  calculator.visit();
101
104
  for (const component of calculator.components) {
102
- secondaryLocations.push((0, index_js_1.toSecondaryLocation)(component.location, component.message));
105
+ secondaryLocations.push((0, location_js_1.toSecondaryLocation)(component.location, component.message));
103
106
  }
104
107
  complexity += calculator.complexity;
105
108
  }
106
109
  if (complexity > threshold) {
107
- (0, index_js_1.report)(context, {
110
+ (0, location_js_1.report)(context, {
108
111
  message: `Simplify this regular expression to reduce its complexity from ${complexity} to the ${threshold} allowed.`,
109
112
  node: regexParts[0],
110
113
  }, secondaryLocations, complexity - threshold);
@@ -123,28 +126,28 @@ class RegexPartFinder {
123
126
  this.handledIdentifiers = [];
124
127
  }
125
128
  find(node) {
126
- if ((0, ast_js_1.isRegExpConstructor)(node)) {
129
+ if ((0, ast_js_2.isRegExpConstructor)(node)) {
127
130
  this.find(node.arguments[0]);
128
131
  }
129
- else if ((0, index_js_1.isRegexLiteral)(node)) {
132
+ else if ((0, ast_js_1.isRegexLiteral)(node)) {
130
133
  this.parts.push([node]);
131
134
  }
132
- else if ((0, index_js_1.isStringLiteral)(node)) {
135
+ else if ((0, ast_js_1.isStringLiteral)(node)) {
133
136
  this.parts.push([node]);
134
137
  }
135
- else if ((0, index_js_1.isStaticTemplateLiteral)(node)) {
138
+ else if ((0, ast_js_1.isStaticTemplateLiteral)(node)) {
136
139
  this.parts.push([node]);
137
140
  }
138
- else if ((0, index_js_1.isIdentifier)(node)) {
141
+ else if ((0, ast_js_1.isIdentifier)(node)) {
139
142
  if (!this.handledIdentifiers.includes(node)) {
140
143
  this.handledIdentifiers.push(node);
141
- const initializer = (0, index_js_1.getUniqueWriteUsage)(this.context, node.name, node);
144
+ const initializer = (0, ast_js_1.getUniqueWriteUsage)(this.context, node.name, node);
142
145
  if (initializer) {
143
146
  this.find(initializer);
144
147
  }
145
148
  }
146
149
  }
147
- else if ((0, index_js_1.isBinaryPlus)(node)) {
150
+ else if ((0, ast_js_1.isBinaryPlus)(node)) {
148
151
  const literals = [];
149
152
  this.findInStringConcatenation(node.left, literals);
150
153
  this.findInStringConcatenation(node.right, literals);
@@ -154,10 +157,10 @@ class RegexPartFinder {
154
157
  }
155
158
  }
156
159
  findInStringConcatenation(node, literals) {
157
- if ((0, index_js_1.isStringLiteral)(node)) {
160
+ if ((0, ast_js_1.isStringLiteral)(node)) {
158
161
  literals.push(node);
159
162
  }
160
- else if ((0, index_js_1.isBinaryPlus)(node)) {
163
+ else if ((0, ast_js_1.isBinaryPlus)(node)) {
161
164
  this.findInStringConcatenation(node.left, literals);
162
165
  this.findInStringConcatenation(node.right, literals);
163
166
  }
@@ -255,7 +258,7 @@ class ComplexityCalculator {
255
258
  if (increment > 1) {
256
259
  message += ` (incl ${increment - 1} for nesting)`;
257
260
  }
258
- const loc = (0, location_js_1.getRegexpLocation)(this.regexPart, node, this.context, offset);
261
+ const loc = (0, location_js_2.getRegexpLocation)(this.regexPart, node, this.context, offset);
259
262
  if (loc) {
260
263
  this.components.push({
261
264
  location: {
package/cjs/S5850/rule.js CHANGED
@@ -51,7 +51,8 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const collection_js_1 = require("../helpers/collection.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  const rule_template_js_1 = require("../helpers/regex/rule-template.js");
57
58
  var Position;
@@ -84,7 +85,7 @@ exports.rule = (0, rule_template_js_1.createRegExpRule)(context => {
84
85
  }
85
86
  },
86
87
  };
87
- }, (0, index_js_1.generateMeta)(meta));
88
+ }, (0, generate_meta_js_1.generateMeta)(meta));
88
89
  function anchoredAt(alternatives, position) {
89
90
  const itemIndex = position === Position.BEGINNING ? 0 : alternatives.length - 1;
90
91
  const firstOrLast = alternatives[itemIndex];
@@ -92,7 +93,7 @@ function anchoredAt(alternatives, position) {
92
93
  }
93
94
  function notAnchoredElseWhere(alternatives) {
94
95
  if (isAnchored(alternatives[0], Position.END) ||
95
- isAnchored((0, index_js_1.last)(alternatives), Position.BEGINNING)) {
96
+ isAnchored((0, collection_js_1.last)(alternatives), Position.BEGINNING)) {
96
97
  return false;
97
98
  }
98
99
  for (const alternative of alternatives.slice(1, -1)) {
package/cjs/S5852/rule.js CHANGED
@@ -52,7 +52,7 @@ var __importStar = (this && this.__importStar) || (function () {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
54
  const scslre_1 = require("scslre");
55
- const index_js_1 = require("../helpers/index.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
56
  const meta = __importStar(require("./generated-meta.js"));
57
57
  const rule_template_js_1 = require("../helpers/regex/rule-template.js");
58
58
  const message = `Make sure the regex used here, which is vulnerable to super-linear runtime due to backtracking, cannot lead to denial of service.`;
@@ -68,4 +68,4 @@ exports.rule = (0, rule_template_js_1.createRegExpRule)(context => {
68
68
  }
69
69
  },
70
70
  };
71
- }, (0, index_js_1.generateMeta)(meta));
71
+ }, (0, generate_meta_js_1.generateMeta)(meta));
package/cjs/S5856/rule.js CHANGED
@@ -51,22 +51,25 @@ 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 type_js_1 = require("../helpers/type.js");
56
+ const ast_js_1 = require("../helpers/ast.js");
57
+ const parser_services_js_1 = require("../helpers/parser-services.js");
55
58
  const regexpp_1 = require("@eslint-community/regexpp");
56
59
  const meta = __importStar(require("./generated-meta.js"));
57
60
  const validator = new regexpp_1.RegExpValidator();
58
61
  exports.rule = {
59
- meta: (0, index_js_1.generateMeta)(meta),
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
60
63
  create(context) {
61
64
  function isStringMatch(call) {
62
65
  const services = context.sourceCode.parserServices;
63
- if (!(0, index_js_1.isRequiredParserServices)(services)) {
66
+ if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
64
67
  return false;
65
68
  }
66
69
  const { callee } = call;
67
70
  return (callee.type === 'MemberExpression' &&
68
- (0, index_js_1.isStringType)((0, index_js_1.getTypeFromTreeNode)(callee.object, services)) &&
69
- (0, index_js_1.isIdentifier)(callee.property, 'match'));
71
+ (0, type_js_1.isStringType)((0, type_js_1.getTypeFromTreeNode)(callee.object, services)) &&
72
+ (0, ast_js_1.isIdentifier)(callee.property, 'match'));
70
73
  }
71
74
  return {
72
75
  'CallExpression, NewExpression'(node) {
@@ -98,7 +101,7 @@ function getFlags(node) {
98
101
  if (node.arguments.length < 2) {
99
102
  return '';
100
103
  }
101
- if ((0, index_js_1.isStringLiteral)(node.arguments[1])) {
104
+ if ((0, ast_js_1.isStringLiteral)(node.arguments[1])) {
102
105
  return node.arguments[1].value;
103
106
  }
104
107
  return null;
@@ -126,7 +129,7 @@ function isRegExpConstructor(call) {
126
129
  return callee.type === 'Identifier' && callee.name === 'RegExp';
127
130
  }
128
131
  function getPattern(call) {
129
- if ((0, index_js_1.isStringLiteral)(call.arguments[0])) {
132
+ if ((0, ast_js_1.isStringLiteral)(call.arguments[0])) {
130
133
  return call.arguments[0].value;
131
134
  }
132
135
  return null;