eslint-plugin-sonarjs 4.0.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1623) hide show
  1. package/README.md +73 -76
  2. package/cjs/S100/config.js +3 -3
  3. package/cjs/S100/generated-meta.js +5 -4
  4. package/cjs/S100/index.js +3 -3
  5. package/cjs/S100/meta.js +3 -3
  6. package/cjs/S100/rule.js +3 -3
  7. package/cjs/S101/config.js +4 -4
  8. package/cjs/S101/generated-meta.js +6 -5
  9. package/cjs/S101/index.js +3 -3
  10. package/cjs/S101/meta.js +3 -3
  11. package/cjs/S101/rule.js +4 -4
  12. package/cjs/S104/config.js +3 -3
  13. package/cjs/S104/generated-meta.js +5 -4
  14. package/cjs/S104/index.js +3 -3
  15. package/cjs/S104/meta.js +3 -3
  16. package/cjs/S104/rule.js +3 -3
  17. package/cjs/S105/generated-meta.js +5 -4
  18. package/cjs/S105/index.js +3 -3
  19. package/cjs/S105/meta.js +3 -3
  20. package/cjs/S105/rule.js +3 -3
  21. package/cjs/S1066/generated-meta.js +5 -4
  22. package/cjs/S1066/index.js +3 -3
  23. package/cjs/S1066/meta.js +3 -3
  24. package/cjs/S1066/rule.js +3 -3
  25. package/cjs/S1067/config.js +3 -3
  26. package/cjs/S1067/generated-meta.js +5 -4
  27. package/cjs/S1067/index.js +3 -3
  28. package/cjs/S1067/meta.js +3 -3
  29. package/cjs/S1067/rule.js +3 -3
  30. package/cjs/S1110/generated-meta.js +5 -4
  31. package/cjs/S1110/index.js +3 -3
  32. package/cjs/S1110/meta.js +3 -3
  33. package/cjs/S1110/rule.js +3 -3
  34. package/cjs/S1119/generated-meta.js +5 -4
  35. package/cjs/S1119/index.js +3 -3
  36. package/cjs/S1119/meta.js +3 -3
  37. package/cjs/S1119/rule.js +3 -3
  38. package/cjs/S1121/generated-meta.js +5 -4
  39. package/cjs/S1121/index.js +3 -3
  40. package/cjs/S1121/meta.js +3 -3
  41. package/cjs/S1121/rule.js +3 -3
  42. package/cjs/S1125/generated-meta.js +5 -4
  43. package/cjs/S1125/index.js +3 -3
  44. package/cjs/S1125/meta.js +3 -3
  45. package/cjs/S1125/rule.js +3 -3
  46. package/cjs/S1126/generated-meta.js +5 -4
  47. package/cjs/S1126/index.js +3 -3
  48. package/cjs/S1126/meta.js +3 -3
  49. package/cjs/S1126/rule.js +29 -10
  50. package/cjs/S1128/generated-meta.js +6 -4
  51. package/cjs/S1128/index.js +3 -3
  52. package/cjs/S1128/meta.js +3 -3
  53. package/cjs/S1128/rule.js +3 -3
  54. package/cjs/S1134/generated-meta.js +5 -4
  55. package/cjs/S1134/index.js +3 -3
  56. package/cjs/S1134/meta.js +3 -3
  57. package/cjs/S1134/rule.js +3 -3
  58. package/cjs/S1135/generated-meta.js +5 -4
  59. package/cjs/S1135/index.js +3 -3
  60. package/cjs/S1135/meta.js +3 -3
  61. package/cjs/S1135/rule.js +3 -3
  62. package/cjs/S1154/generated-meta.js +5 -4
  63. package/cjs/S1154/index.js +3 -3
  64. package/cjs/S1154/meta.js +3 -3
  65. package/cjs/S1154/rule.js +24 -5
  66. package/cjs/S117/config.js +3 -3
  67. package/cjs/S117/generated-meta.js +5 -4
  68. package/cjs/S117/index.js +3 -3
  69. package/cjs/S117/meta.js +3 -3
  70. package/cjs/S117/rule.js +3 -3
  71. package/cjs/S1172/generated-meta.js +5 -4
  72. package/cjs/S1172/index.js +3 -3
  73. package/cjs/S1172/meta.js +3 -3
  74. package/cjs/S1172/rule.js +3 -3
  75. package/cjs/S1192/config.js +3 -3
  76. package/cjs/S1192/generated-meta.js +5 -4
  77. package/cjs/S1192/index.js +3 -3
  78. package/cjs/S1192/meta.js +3 -3
  79. package/cjs/S1192/rule.js +5 -5
  80. package/cjs/S1219/generated-meta.js +5 -4
  81. package/cjs/S1219/index.js +3 -3
  82. package/cjs/S1219/meta.js +3 -3
  83. package/cjs/S1219/rule.js +3 -3
  84. package/cjs/S1226/generated-meta.js +5 -4
  85. package/cjs/S1226/index.js +3 -3
  86. package/cjs/S1226/meta.js +3 -3
  87. package/cjs/S1226/rule.js +3 -3
  88. package/cjs/S124/config.js +3 -3
  89. package/cjs/S124/generated-meta.js +5 -4
  90. package/cjs/S124/index.js +3 -3
  91. package/cjs/S124/meta.js +3 -3
  92. package/cjs/S124/rule.js +3 -3
  93. package/cjs/{S2255 → S1244}/generated-meta.js +11 -10
  94. package/cjs/{S4784 → S1244}/index.js +3 -3
  95. package/cjs/{S4817 → S1244}/meta.js +4 -4
  96. package/cjs/S1244/rule.js +265 -0
  97. package/cjs/S125/generated-meta.js +6 -5
  98. package/cjs/S125/index.js +3 -3
  99. package/cjs/S125/meta.js +3 -3
  100. package/cjs/S125/rule.js +67 -20
  101. package/cjs/S126/generated-meta.js +5 -4
  102. package/cjs/S126/index.js +3 -3
  103. package/cjs/S126/meta.js +3 -3
  104. package/cjs/S126/rule.js +3 -3
  105. package/cjs/S1264/generated-meta.js +5 -4
  106. package/cjs/S1264/index.js +3 -3
  107. package/cjs/S1264/meta.js +3 -3
  108. package/cjs/S1264/rule.js +3 -3
  109. package/cjs/S128/generated-meta.js +5 -4
  110. package/cjs/S128/index.js +3 -3
  111. package/cjs/S128/meta.js +3 -3
  112. package/cjs/S128/rule.js +3 -3
  113. package/cjs/S1291/generated-meta.js +5 -4
  114. package/cjs/S1291/index.js +3 -3
  115. package/cjs/S1291/meta.js +3 -3
  116. package/cjs/S1291/rule.js +3 -3
  117. package/cjs/S1301/generated-meta.js +6 -5
  118. package/cjs/S1301/index.js +3 -3
  119. package/cjs/S1301/meta.js +3 -3
  120. package/cjs/S1301/rule.js +141 -3
  121. package/cjs/S1313/generated-meta.js +7 -6
  122. package/cjs/S1313/index.js +3 -3
  123. package/cjs/S1313/meta.js +3 -3
  124. package/cjs/S1313/rule.js +3 -3
  125. package/cjs/S134/config.js +4 -4
  126. package/cjs/S134/generated-meta.js +5 -4
  127. package/cjs/S134/index.js +3 -3
  128. package/cjs/S134/meta.js +3 -3
  129. package/cjs/S134/rule.js +3 -3
  130. package/cjs/S135/generated-meta.js +5 -4
  131. package/cjs/S135/index.js +3 -3
  132. package/cjs/S135/meta.js +3 -3
  133. package/cjs/S135/rule.js +3 -3
  134. package/cjs/S138/config.js +3 -3
  135. package/cjs/S138/generated-meta.js +5 -4
  136. package/cjs/S138/index.js +3 -3
  137. package/cjs/S138/meta.js +3 -3
  138. package/cjs/S138/rule.js +3 -3
  139. package/cjs/S1439/generated-meta.js +5 -4
  140. package/cjs/S1439/index.js +3 -3
  141. package/cjs/S1439/meta.js +3 -3
  142. package/cjs/S1439/rule.js +3 -3
  143. package/cjs/S1444/generated-meta.js +5 -4
  144. package/cjs/S1444/index.js +3 -3
  145. package/cjs/S1444/meta.js +3 -3
  146. package/cjs/S1444/rule.js +3 -3
  147. package/cjs/S1451/config.js +3 -3
  148. package/cjs/S1451/generated-meta.js +5 -4
  149. package/cjs/S1451/index.js +3 -3
  150. package/cjs/S1451/meta.js +3 -3
  151. package/cjs/S1451/rule.js +3 -3
  152. package/cjs/S1472/generated-meta.js +5 -4
  153. package/cjs/S1472/index.js +3 -3
  154. package/cjs/S1472/meta.js +3 -3
  155. package/cjs/S1472/rule.js +3 -3
  156. package/cjs/S1479/config.js +3 -3
  157. package/cjs/S1479/generated-meta.js +5 -4
  158. package/cjs/S1479/index.js +3 -3
  159. package/cjs/S1479/meta.js +3 -3
  160. package/cjs/S1479/rule.js +3 -3
  161. package/cjs/S1481/generated-meta.js +5 -4
  162. package/cjs/S1481/index.js +3 -3
  163. package/cjs/S1481/meta.js +3 -3
  164. package/cjs/S1481/rule.js +3 -3
  165. package/cjs/S1488/generated-meta.js +5 -4
  166. package/cjs/S1488/index.js +3 -3
  167. package/cjs/S1488/meta.js +3 -3
  168. package/cjs/S1488/rule.js +3 -3
  169. package/cjs/S1515/generated-meta.js +5 -4
  170. package/cjs/S1515/index.js +3 -3
  171. package/cjs/S1515/meta.js +3 -3
  172. package/cjs/S1515/rule.js +3 -3
  173. package/cjs/S1523/generated-meta.js +6 -5
  174. package/cjs/S1523/index.js +3 -3
  175. package/cjs/S1523/meta.js +3 -3
  176. package/cjs/S1523/rule.js +3 -3
  177. package/cjs/S1526/generated-meta.js +5 -4
  178. package/cjs/S1526/index.js +3 -3
  179. package/cjs/S1526/meta.js +3 -3
  180. package/cjs/S1526/rule.js +3 -3
  181. package/cjs/S1527/generated-meta.js +5 -4
  182. package/cjs/S1527/index.js +3 -3
  183. package/cjs/S1527/meta.js +3 -3
  184. package/cjs/S1527/rule.js +3 -3
  185. package/cjs/S1528/generated-meta.js +5 -4
  186. package/cjs/S1528/index.js +3 -3
  187. package/cjs/S1528/meta.js +3 -3
  188. package/cjs/S1529/generated-meta.js +5 -4
  189. package/cjs/S1529/index.js +3 -3
  190. package/cjs/S1529/meta.js +3 -3
  191. package/cjs/S1529/rule.js +3 -3
  192. package/cjs/S1530/generated-meta.js +5 -4
  193. package/cjs/S1530/index.js +3 -3
  194. package/cjs/S1530/meta.js +3 -3
  195. package/cjs/S1530/rule.js +3 -3
  196. package/cjs/S1533/generated-meta.js +5 -4
  197. package/cjs/S1533/index.js +3 -3
  198. package/cjs/S1533/meta.js +3 -3
  199. package/cjs/S1533/rule.js +3 -3
  200. package/cjs/S1535/generated-meta.js +5 -4
  201. package/cjs/S1535/index.js +3 -3
  202. package/cjs/S1535/meta.js +3 -3
  203. package/cjs/S1535/rule.js +3 -3
  204. package/cjs/S1541/config.js +3 -3
  205. package/cjs/S1541/generated-meta.js +5 -4
  206. package/cjs/S1541/index.js +3 -3
  207. package/cjs/S1541/meta.js +3 -3
  208. package/cjs/S1541/rule.js +3 -3
  209. package/cjs/S1607/generated-meta.js +5 -4
  210. package/cjs/S1607/index.js +3 -3
  211. package/cjs/S1607/meta.js +3 -3
  212. package/cjs/S1607/rule.js +75 -10
  213. package/cjs/S1764/generated-meta.js +5 -4
  214. package/cjs/S1764/index.js +3 -3
  215. package/cjs/S1764/meta.js +3 -3
  216. package/cjs/S1764/rule.js +3 -3
  217. package/cjs/S1821/generated-meta.js +5 -4
  218. package/cjs/S1821/index.js +3 -3
  219. package/cjs/S1821/meta.js +3 -3
  220. package/cjs/S1821/rule.js +3 -3
  221. package/cjs/S1848/generated-meta.js +5 -4
  222. package/cjs/S1848/index.js +3 -3
  223. package/cjs/S1848/meta.js +3 -3
  224. package/cjs/S1848/rule.js +3 -3
  225. package/cjs/S1854/generated-meta.js +5 -4
  226. package/cjs/S1854/index.js +3 -3
  227. package/cjs/S1854/meta.js +3 -3
  228. package/cjs/S1854/rule.js +3 -3
  229. package/cjs/S1862/generated-meta.js +5 -4
  230. package/cjs/S1862/index.js +3 -3
  231. package/cjs/S1862/meta.js +3 -3
  232. package/cjs/S1862/rule.js +3 -3
  233. package/cjs/S1871/generated-meta.js +5 -4
  234. package/cjs/S1871/index.js +3 -3
  235. package/cjs/S1871/meta.js +3 -3
  236. package/cjs/S1871/rule.js +3 -3
  237. package/cjs/S1874/generated-meta.js +5 -4
  238. package/cjs/S1874/index.js +3 -3
  239. package/cjs/S1874/meta.js +3 -3
  240. package/cjs/S1874/rule.js +3 -3
  241. package/cjs/S1940/generated-meta.js +5 -4
  242. package/cjs/S1940/index.js +3 -3
  243. package/cjs/S1940/meta.js +3 -3
  244. package/cjs/S1940/rule.js +3 -3
  245. package/cjs/S1994/generated-meta.js +5 -4
  246. package/cjs/S1994/index.js +3 -3
  247. package/cjs/S1994/meta.js +3 -3
  248. package/cjs/S1994/rule.js +3 -3
  249. package/cjs/S2004/config.js +3 -3
  250. package/cjs/S2004/generated-meta.js +5 -4
  251. package/cjs/S2004/index.js +3 -3
  252. package/cjs/S2004/meta.js +3 -3
  253. package/cjs/S2004/rule.js +3 -3
  254. package/cjs/S2068/config.js +3 -3
  255. package/cjs/S2068/generated-meta.js +5 -4
  256. package/cjs/S2068/index.js +3 -3
  257. package/cjs/S2068/meta.js +3 -3
  258. package/cjs/S2068/rule.js +28 -18
  259. package/cjs/S2077/generated-meta.js +6 -5
  260. package/cjs/S2077/index.js +3 -3
  261. package/cjs/S2077/meta.js +3 -3
  262. package/cjs/S2077/rule.js +35 -3
  263. package/cjs/S2092/generated-meta.js +6 -5
  264. package/cjs/S2092/index.js +3 -3
  265. package/cjs/S2092/meta.js +3 -3
  266. package/cjs/S2092/rule.js +3 -3
  267. package/cjs/S2123/generated-meta.js +5 -4
  268. package/cjs/S2123/index.js +3 -3
  269. package/cjs/S2123/meta.js +3 -3
  270. package/cjs/S2123/rule.js +3 -3
  271. package/cjs/S2137/generated-meta.js +5 -4
  272. package/cjs/S2137/index.js +3 -3
  273. package/cjs/S2137/meta.js +3 -3
  274. package/cjs/S2137/rule.js +3 -3
  275. package/cjs/S2138/generated-meta.js +5 -4
  276. package/cjs/S2138/index.js +3 -3
  277. package/cjs/S2138/meta.js +3 -3
  278. package/cjs/S2138/rule.js +3 -3
  279. package/cjs/S2187/generated-meta.js +5 -4
  280. package/cjs/S2187/index.js +3 -3
  281. package/cjs/S2187/meta.js +3 -3
  282. package/cjs/S2187/rule.js +53 -16
  283. package/cjs/S2201/generated-meta.js +5 -4
  284. package/cjs/S2201/index.js +3 -3
  285. package/cjs/S2201/meta.js +3 -3
  286. package/cjs/S2201/rule.js +3 -3
  287. package/cjs/S2208/generated-meta.js +6 -4
  288. package/cjs/S2208/index.js +3 -3
  289. package/cjs/S2208/meta.js +3 -3
  290. package/cjs/S2208/rule.js +3 -3
  291. package/cjs/S2234/generated-meta.js +5 -4
  292. package/cjs/S2234/index.js +3 -3
  293. package/cjs/S2234/meta.js +3 -3
  294. package/cjs/S2234/rule.js +148 -5
  295. package/cjs/S2245/generated-meta.js +6 -5
  296. package/cjs/S2245/index.js +3 -3
  297. package/cjs/S2245/meta.js +3 -3
  298. package/cjs/S2245/rule.js +3 -3
  299. package/cjs/S2251/generated-meta.js +5 -4
  300. package/cjs/S2251/index.js +3 -3
  301. package/cjs/S2251/meta.js +3 -3
  302. package/cjs/S2251/rule.js +3 -3
  303. package/cjs/S2259/generated-meta.js +5 -4
  304. package/cjs/S2259/index.js +3 -3
  305. package/cjs/S2259/meta.js +3 -3
  306. package/cjs/S2259/rule.js +3 -3
  307. package/cjs/S2301/generated-meta.js +5 -4
  308. package/cjs/S2301/index.js +3 -3
  309. package/cjs/S2301/meta.js +3 -3
  310. package/cjs/S2301/rule.js +10 -4
  311. package/cjs/S2310/generated-meta.js +5 -4
  312. package/cjs/S2310/index.js +3 -3
  313. package/cjs/S2310/meta.js +3 -3
  314. package/cjs/S2310/rule.js +3 -3
  315. package/cjs/S2392/generated-meta.js +5 -4
  316. package/cjs/S2392/index.js +3 -3
  317. package/cjs/S2392/meta.js +3 -3
  318. package/cjs/S2392/rule.js +44 -3
  319. package/cjs/S2424/generated-meta.js +5 -4
  320. package/cjs/S2424/index.js +3 -3
  321. package/cjs/S2424/meta.js +3 -3
  322. package/cjs/S2424/rule.js +3 -3
  323. package/cjs/S2428/generated-meta.js +5 -4
  324. package/cjs/S2428/index.js +3 -3
  325. package/cjs/S2428/meta.js +3 -3
  326. package/cjs/S2428/rule.js +3 -3
  327. package/cjs/S2486/generated-meta.js +5 -4
  328. package/cjs/S2486/index.js +3 -3
  329. package/cjs/S2486/meta.js +3 -3
  330. package/cjs/S2486/rule.js +3 -3
  331. package/cjs/S2589/generated-meta.js +5 -4
  332. package/cjs/S2589/index.js +3 -3
  333. package/cjs/S2589/meta.js +3 -3
  334. package/cjs/S2589/rule.js +3 -3
  335. package/cjs/S2598/generated-meta.js +5 -4
  336. package/cjs/S2598/index.js +3 -3
  337. package/cjs/S2598/meta.js +3 -3
  338. package/cjs/S2598/rule.js +3 -3
  339. package/cjs/S2612/generated-meta.js +5 -4
  340. package/cjs/S2612/index.js +3 -3
  341. package/cjs/S2612/meta.js +3 -3
  342. package/cjs/S2612/rule.js +3 -3
  343. package/cjs/S2639/generated-meta.js +5 -4
  344. package/cjs/S2639/index.js +3 -3
  345. package/cjs/S2639/meta.js +3 -3
  346. package/cjs/S2639/rule.js +3 -3
  347. package/cjs/S2681/generated-meta.js +5 -4
  348. package/cjs/S2681/index.js +3 -3
  349. package/cjs/S2681/meta.js +3 -3
  350. package/cjs/S2681/rule.js +3 -3
  351. package/cjs/S2692/generated-meta.js +5 -4
  352. package/cjs/S2692/index.js +3 -3
  353. package/cjs/S2692/meta.js +3 -3
  354. package/cjs/S2692/rule.js +3 -3
  355. package/cjs/S2699/generated-meta.js +5 -4
  356. package/cjs/S2699/index.js +3 -3
  357. package/cjs/S2699/meta.js +3 -3
  358. package/cjs/S2699/rule.js +19 -5
  359. package/cjs/S2703/generated-meta.js +5 -4
  360. package/cjs/S2703/index.js +3 -3
  361. package/cjs/S2703/meta.js +3 -3
  362. package/cjs/S2703/rule.js +3 -3
  363. package/cjs/S2737/generated-meta.js +5 -4
  364. package/cjs/S2737/index.js +3 -3
  365. package/cjs/S2737/meta.js +3 -3
  366. package/cjs/S2737/rule.js +3 -3
  367. package/cjs/S2755/generated-meta.js +5 -4
  368. package/cjs/S2755/index.js +3 -3
  369. package/cjs/S2755/meta.js +3 -3
  370. package/cjs/S2755/rule.js +3 -3
  371. package/cjs/S2757/generated-meta.js +5 -4
  372. package/cjs/S2757/index.js +3 -3
  373. package/cjs/S2757/meta.js +3 -3
  374. package/cjs/S2757/rule.js +3 -3
  375. package/cjs/S2817/generated-meta.js +5 -4
  376. package/cjs/S2817/index.js +3 -3
  377. package/cjs/S2817/meta.js +3 -3
  378. package/cjs/S2817/rule.js +3 -3
  379. package/cjs/S2819/generated-meta.js +5 -4
  380. package/cjs/S2819/index.js +3 -3
  381. package/cjs/S2819/meta.js +3 -3
  382. package/cjs/S2819/rule.js +3 -3
  383. package/cjs/S2870/generated-meta.js +5 -4
  384. package/cjs/S2870/index.js +3 -3
  385. package/cjs/S2870/meta.js +3 -3
  386. package/cjs/S2870/rule.js +3 -3
  387. package/cjs/S2871/generated-meta.js +5 -4
  388. package/cjs/S2871/index.js +3 -3
  389. package/cjs/S2871/meta.js +3 -3
  390. package/cjs/S2871/rule.js +88 -4
  391. package/cjs/S2970/generated-meta.js +5 -4
  392. package/cjs/S2970/index.js +3 -3
  393. package/cjs/S2970/meta.js +3 -3
  394. package/cjs/S2970/rule.js +3 -3
  395. package/cjs/S2990/generated-meta.js +5 -4
  396. package/cjs/S2990/index.js +3 -3
  397. package/cjs/S2990/meta.js +3 -3
  398. package/cjs/S2990/rule.js +3 -3
  399. package/cjs/S2999/config.js +3 -3
  400. package/cjs/S2999/generated-meta.js +5 -4
  401. package/cjs/S2999/index.js +3 -3
  402. package/cjs/S2999/meta.js +3 -3
  403. package/cjs/S2999/rule.js +3 -3
  404. package/cjs/S3001/generated-meta.js +5 -4
  405. package/cjs/S3001/index.js +3 -3
  406. package/cjs/S3001/meta.js +3 -3
  407. package/cjs/S3001/rule.js +3 -3
  408. package/cjs/S3003/generated-meta.js +5 -4
  409. package/cjs/S3003/index.js +3 -3
  410. package/cjs/S3003/meta.js +3 -3
  411. package/cjs/S3003/rule.js +3 -3
  412. package/cjs/S3317/generated-meta.js +6 -4
  413. package/cjs/S3317/index.js +3 -3
  414. package/cjs/S3317/meta.js +3 -3
  415. package/cjs/S3317/rule.js +3 -3
  416. package/cjs/S3330/generated-meta.js +6 -5
  417. package/cjs/S3330/index.js +3 -3
  418. package/cjs/S3330/meta.js +3 -3
  419. package/cjs/S3330/rule.js +3 -3
  420. package/cjs/S3358/generated-meta.js +5 -4
  421. package/cjs/S3358/index.js +3 -3
  422. package/cjs/S3358/meta.js +3 -3
  423. package/cjs/S3358/rule.js +3 -3
  424. package/cjs/S3402/generated-meta.js +5 -4
  425. package/cjs/S3402/index.js +3 -3
  426. package/cjs/S3402/meta.js +3 -3
  427. package/cjs/S3402/rule.js +3 -3
  428. package/cjs/S3403/generated-meta.js +5 -4
  429. package/cjs/S3403/index.js +3 -3
  430. package/cjs/S3403/meta.js +3 -3
  431. package/cjs/S3403/rule.js +24 -4
  432. package/cjs/S3415/generated-meta.js +5 -4
  433. package/cjs/S3415/index.js +3 -3
  434. package/cjs/S3415/meta.js +3 -3
  435. package/cjs/S3415/rule.js +3 -3
  436. package/cjs/S3499/generated-meta.js +6 -4
  437. package/cjs/S3499/index.js +3 -3
  438. package/cjs/S3499/meta.js +3 -3
  439. package/cjs/S3499/rule.js +3 -3
  440. package/cjs/S3500/generated-meta.js +6 -4
  441. package/cjs/S3500/index.js +3 -3
  442. package/cjs/S3500/meta.js +3 -3
  443. package/cjs/S3500/rule.js +3 -3
  444. package/cjs/S3513/generated-meta.js +6 -4
  445. package/cjs/S3513/index.js +3 -3
  446. package/cjs/S3513/meta.js +3 -3
  447. package/cjs/S3513/rule.js +3 -3
  448. package/cjs/S3514/generated-meta.js +6 -4
  449. package/cjs/S3514/index.js +3 -3
  450. package/cjs/S3514/meta.js +3 -3
  451. package/cjs/S3514/rule.js +3 -3
  452. package/cjs/S3516/generated-meta.js +5 -4
  453. package/cjs/S3516/index.js +3 -3
  454. package/cjs/S3516/meta.js +3 -3
  455. package/cjs/S3516/rule.js +102 -3
  456. package/cjs/S3524/config.js +3 -3
  457. package/cjs/S3524/generated-meta.js +6 -4
  458. package/cjs/S3524/index.js +3 -3
  459. package/cjs/S3524/meta.js +3 -3
  460. package/cjs/S3524/rule.js +3 -3
  461. package/cjs/S3525/generated-meta.js +6 -4
  462. package/cjs/S3525/index.js +3 -3
  463. package/cjs/S3525/meta.js +3 -3
  464. package/cjs/S3525/rule.js +3 -3
  465. package/cjs/S3531/generated-meta.js +6 -4
  466. package/cjs/S3531/index.js +3 -3
  467. package/cjs/S3531/meta.js +3 -3
  468. package/cjs/S3531/rule.js +3 -3
  469. package/cjs/S3533/generated-meta.js +6 -4
  470. package/cjs/S3533/index.js +3 -3
  471. package/cjs/S3533/meta.js +3 -3
  472. package/cjs/S3533/rule.js +3 -3
  473. package/cjs/S3579/generated-meta.js +5 -4
  474. package/cjs/S3579/index.js +3 -3
  475. package/cjs/S3579/meta.js +3 -3
  476. package/cjs/S3579/rule.js +3 -3
  477. package/cjs/S3616/generated-meta.js +5 -4
  478. package/cjs/S3616/index.js +3 -3
  479. package/cjs/S3616/meta.js +3 -3
  480. package/cjs/S3616/rule.js +3 -3
  481. package/cjs/S3626/generated-meta.js +5 -4
  482. package/cjs/S3626/index.js +3 -3
  483. package/cjs/S3626/meta.js +3 -3
  484. package/cjs/S3626/rule.js +4 -4
  485. package/cjs/S3686/generated-meta.js +5 -4
  486. package/cjs/S3686/index.js +3 -3
  487. package/cjs/S3686/meta.js +3 -3
  488. package/cjs/S3686/rule.js +3 -3
  489. package/cjs/S3699/generated-meta.js +5 -4
  490. package/cjs/S3699/index.js +3 -3
  491. package/cjs/S3699/meta.js +3 -3
  492. package/cjs/S3699/rule.js +4 -4
  493. package/cjs/S3735/generated-meta.js +5 -4
  494. package/cjs/S3735/index.js +3 -3
  495. package/cjs/S3735/meta.js +3 -3
  496. package/cjs/S3735/rule.js +3 -3
  497. package/cjs/S3757/generated-meta.js +5 -4
  498. package/cjs/S3757/index.js +3 -3
  499. package/cjs/S3757/meta.js +3 -3
  500. package/cjs/S3757/rule.js +6 -4
  501. package/cjs/S3758/generated-meta.js +5 -4
  502. package/cjs/S3758/index.js +3 -3
  503. package/cjs/S3758/meta.js +3 -3
  504. package/cjs/S3758/rule.js +3 -3
  505. package/cjs/S3760/generated-meta.js +5 -4
  506. package/cjs/S3760/index.js +3 -3
  507. package/cjs/S3760/meta.js +3 -3
  508. package/cjs/S3760/rule.js +3 -3
  509. package/cjs/S3776/config.js +3 -3
  510. package/cjs/S3776/generated-meta.js +5 -4
  511. package/cjs/S3776/index.js +3 -3
  512. package/cjs/S3776/meta.js +12 -4
  513. package/cjs/S3776/rule.js +13 -16
  514. package/cjs/S3782/generated-meta.js +5 -4
  515. package/cjs/S3782/index.js +3 -3
  516. package/cjs/S3782/meta.js +3 -3
  517. package/cjs/S3782/rule.js +4 -4
  518. package/cjs/S3785/generated-meta.js +5 -4
  519. package/cjs/S3785/index.js +3 -3
  520. package/cjs/S3785/meta.js +3 -3
  521. package/cjs/S3785/rule.js +3 -3
  522. package/cjs/S3796/generated-meta.js +5 -4
  523. package/cjs/S3796/index.js +3 -3
  524. package/cjs/S3796/meta.js +3 -3
  525. package/cjs/S3796/rule.js +3 -3
  526. package/cjs/S3798/generated-meta.js +5 -4
  527. package/cjs/S3798/index.js +3 -3
  528. package/cjs/S3798/meta.js +3 -3
  529. package/cjs/S3798/rule.js +57 -17
  530. package/cjs/S3800/generated-meta.js +5 -4
  531. package/cjs/S3800/index.js +3 -3
  532. package/cjs/S3800/meta.js +3 -3
  533. package/cjs/S3800/rule.js +3 -3
  534. package/cjs/S3801/generated-meta.js +5 -4
  535. package/cjs/S3801/index.js +3 -3
  536. package/cjs/S3801/meta.js +3 -3
  537. package/cjs/S3801/rule.js +3 -3
  538. package/cjs/S3827/generated-meta.js +5 -4
  539. package/cjs/S3827/index.js +3 -3
  540. package/cjs/S3827/meta.js +3 -3
  541. package/cjs/S3923/generated-meta.js +5 -4
  542. package/cjs/S3923/index.js +3 -3
  543. package/cjs/S3923/meta.js +3 -3
  544. package/cjs/S3923/rule.js +3 -3
  545. package/cjs/S3972/generated-meta.js +5 -4
  546. package/cjs/S3972/index.js +3 -3
  547. package/cjs/S3972/meta.js +3 -3
  548. package/cjs/S3972/rule.js +3 -3
  549. package/cjs/S3973/generated-meta.js +5 -4
  550. package/cjs/S3973/index.js +3 -3
  551. package/cjs/S3973/meta.js +3 -3
  552. package/cjs/S3973/rule.js +3 -3
  553. package/cjs/S3981/generated-meta.js +5 -4
  554. package/cjs/S3981/index.js +3 -3
  555. package/cjs/S3981/meta.js +3 -3
  556. package/cjs/S3981/rule.js +3 -3
  557. package/cjs/S3984/generated-meta.js +5 -4
  558. package/cjs/S3984/index.js +3 -3
  559. package/cjs/S3984/meta.js +3 -3
  560. package/cjs/S3984/rule.js +3 -3
  561. package/cjs/S4030/generated-meta.js +5 -4
  562. package/cjs/S4030/index.js +3 -3
  563. package/cjs/S4030/meta.js +3 -3
  564. package/cjs/S4030/rule.js +5 -5
  565. package/cjs/S4036/generated-meta.js +6 -5
  566. package/cjs/S4036/index.js +3 -3
  567. package/cjs/S4036/meta.js +3 -3
  568. package/cjs/S4036/rule.js +4 -4
  569. package/cjs/S4043/generated-meta.js +5 -4
  570. package/cjs/S4043/index.js +3 -3
  571. package/cjs/S4043/meta.js +3 -3
  572. package/cjs/S4043/rule.js +3 -3
  573. package/cjs/S4139/generated-meta.js +5 -4
  574. package/cjs/S4139/index.js +3 -3
  575. package/cjs/S4139/meta.js +3 -3
  576. package/cjs/S4139/rule.js +3 -3
  577. package/cjs/S4143/generated-meta.js +5 -4
  578. package/cjs/S4143/index.js +3 -3
  579. package/cjs/S4143/meta.js +3 -3
  580. package/cjs/S4143/rule.js +3 -3
  581. package/cjs/S4144/config.js +3 -3
  582. package/cjs/S4144/generated-meta.js +5 -4
  583. package/cjs/S4144/index.js +3 -3
  584. package/cjs/S4144/meta.js +3 -3
  585. package/cjs/S4144/rule.js +3 -3
  586. package/cjs/S4158/generated-meta.js +5 -4
  587. package/cjs/S4158/index.js +3 -3
  588. package/cjs/S4158/meta.js +3 -3
  589. package/cjs/S4158/rule.js +4 -4
  590. package/cjs/S4165/generated-meta.js +5 -4
  591. package/cjs/S4165/index.js +3 -3
  592. package/cjs/S4165/meta.js +3 -3
  593. package/cjs/S4165/rule.js +3 -3
  594. package/cjs/S4322/generated-meta.js +5 -4
  595. package/cjs/S4322/index.js +3 -3
  596. package/cjs/S4322/meta.js +3 -3
  597. package/cjs/S4322/rule.js +3 -3
  598. package/cjs/S4323/generated-meta.js +5 -4
  599. package/cjs/S4323/index.js +3 -3
  600. package/cjs/S4323/meta.js +3 -3
  601. package/cjs/S4323/rule.js +3 -3
  602. package/cjs/S4324/generated-meta.js +5 -4
  603. package/cjs/S4324/index.js +3 -3
  604. package/cjs/S4324/meta.js +3 -3
  605. package/cjs/S4324/rule.js +3 -3
  606. package/cjs/S4328/config.js +3 -3
  607. package/cjs/S4328/generated-meta.js +5 -4
  608. package/cjs/S4328/index.js +3 -3
  609. package/cjs/S4328/meta.js +3 -3
  610. package/cjs/S4328/rule.js +10 -5
  611. package/cjs/S4335/generated-meta.js +5 -4
  612. package/cjs/S4335/index.js +3 -3
  613. package/cjs/S4335/meta.js +3 -3
  614. package/cjs/S4335/rule.js +3 -3
  615. package/cjs/S4423/generated-meta.js +5 -4
  616. package/cjs/S4423/index.js +3 -3
  617. package/cjs/S4423/meta.js +3 -3
  618. package/cjs/S4423/rule.aws.js +3 -3
  619. package/cjs/S4423/rule.js +3 -3
  620. package/cjs/S4423/rule.lib.js +3 -3
  621. package/cjs/S4426/generated-meta.js +5 -4
  622. package/cjs/S4426/index.js +3 -3
  623. package/cjs/S4426/meta.js +3 -3
  624. package/cjs/S4426/rule.js +3 -3
  625. package/cjs/S4502/generated-meta.js +6 -5
  626. package/cjs/S4502/index.js +3 -3
  627. package/cjs/S4502/meta.js +3 -3
  628. package/cjs/S4502/rule.js +3 -3
  629. package/cjs/S4507/generated-meta.js +6 -5
  630. package/cjs/S4507/index.js +3 -3
  631. package/cjs/S4507/meta.js +3 -3
  632. package/cjs/S4507/rule.js +3 -3
  633. package/cjs/S4524/generated-meta.js +5 -4
  634. package/cjs/S4524/index.js +3 -3
  635. package/cjs/S4524/meta.js +3 -3
  636. package/cjs/S4524/rule.js +3 -3
  637. package/cjs/S4619/generated-meta.js +5 -4
  638. package/cjs/S4619/index.js +3 -3
  639. package/cjs/S4619/meta.js +3 -3
  640. package/cjs/S4619/rule.js +3 -3
  641. package/cjs/S4621/generated-meta.js +5 -4
  642. package/cjs/S4621/index.js +3 -3
  643. package/cjs/S4621/meta.js +3 -3
  644. package/cjs/S4621/rule.js +3 -3
  645. package/cjs/S4622/config.js +3 -3
  646. package/cjs/S4622/generated-meta.js +5 -4
  647. package/cjs/S4622/index.js +3 -3
  648. package/cjs/S4622/meta.js +3 -3
  649. package/cjs/S4622/rule.js +3 -3
  650. package/cjs/S4623/generated-meta.js +5 -4
  651. package/cjs/S4623/index.js +3 -3
  652. package/cjs/S4623/meta.js +3 -3
  653. package/cjs/S4623/rule.js +3 -3
  654. package/cjs/S4624/generated-meta.js +6 -4
  655. package/cjs/S4624/index.js +3 -3
  656. package/cjs/S4624/meta.js +3 -3
  657. package/cjs/S4624/rule.js +5 -10
  658. package/cjs/S4634/generated-meta.js +6 -4
  659. package/cjs/S4634/index.js +3 -3
  660. package/cjs/S4634/meta.js +3 -3
  661. package/cjs/S4634/rule.js +3 -3
  662. package/cjs/S4721/generated-meta.js +8 -7
  663. package/cjs/S4721/index.js +3 -3
  664. package/cjs/S4721/meta.js +3 -3
  665. package/cjs/S4721/rule.js +3 -3
  666. package/cjs/S4782/generated-meta.js +5 -4
  667. package/cjs/S4782/index.js +3 -3
  668. package/cjs/S4782/meta.js +3 -3
  669. package/cjs/S4782/rule.js +99 -17
  670. package/cjs/S4790/generated-meta.js +6 -5
  671. package/cjs/S4790/index.js +3 -3
  672. package/cjs/S4790/meta.js +3 -3
  673. package/cjs/S4790/rule.js +220 -5
  674. package/cjs/S4798/generated-meta.js +5 -4
  675. package/cjs/S4798/index.js +3 -3
  676. package/cjs/S4798/meta.js +3 -3
  677. package/cjs/S4798/rule.js +3 -3
  678. package/cjs/S4822/generated-meta.js +6 -4
  679. package/cjs/S4822/index.js +3 -3
  680. package/cjs/S4822/meta.js +3 -3
  681. package/cjs/S4822/rule.js +3 -3
  682. package/cjs/S4830/generated-meta.js +5 -4
  683. package/cjs/S4830/index.js +3 -3
  684. package/cjs/S4830/meta.js +3 -3
  685. package/cjs/S4830/rule.js +3 -3
  686. package/cjs/S5042/generated-meta.js +9 -8
  687. package/cjs/S5042/index.js +3 -3
  688. package/cjs/S5042/meta.js +3 -3
  689. package/cjs/S5042/rule.js +3 -3
  690. package/cjs/S5122/generated-meta.js +6 -5
  691. package/cjs/S5122/index.js +3 -3
  692. package/cjs/S5122/meta.js +3 -3
  693. package/cjs/S5122/rule.js +3 -3
  694. package/cjs/S5148/generated-meta.js +6 -5
  695. package/cjs/S5148/index.js +3 -3
  696. package/cjs/S5148/meta.js +3 -3
  697. package/cjs/S5148/rule.js +3 -3
  698. package/cjs/S5247/generated-meta.js +6 -5
  699. package/cjs/S5247/index.js +3 -3
  700. package/cjs/S5247/meta.js +3 -3
  701. package/cjs/S5247/rule.js +3 -3
  702. package/cjs/S5256/generated-meta.js +5 -4
  703. package/cjs/S5256/index.js +3 -3
  704. package/cjs/S5256/meta.js +3 -3
  705. package/cjs/S5256/rule.js +3 -3
  706. package/cjs/S5257/generated-meta.js +5 -4
  707. package/cjs/S5257/index.js +3 -3
  708. package/cjs/S5257/meta.js +3 -3
  709. package/cjs/S5257/rule.js +3 -3
  710. package/cjs/S5260/generated-meta.js +5 -4
  711. package/cjs/S5260/index.js +3 -3
  712. package/cjs/S5260/meta.js +3 -3
  713. package/cjs/S5260/rule.js +3 -3
  714. package/cjs/S5264/generated-meta.js +5 -4
  715. package/cjs/S5264/index.js +3 -3
  716. package/cjs/S5264/meta.js +3 -3
  717. package/cjs/S5264/rule.js +3 -3
  718. package/cjs/S5332/generated-meta.js +6 -5
  719. package/cjs/S5332/index.js +3 -3
  720. package/cjs/S5332/meta.js +3 -3
  721. package/cjs/S5332/rule.aws.js +3 -3
  722. package/cjs/S5332/rule.js +3 -3
  723. package/cjs/S5332/rule.lib.js +57 -49
  724. package/cjs/S5443/generated-meta.js +6 -5
  725. package/cjs/S5443/index.js +3 -3
  726. package/cjs/S5443/meta.js +3 -3
  727. package/cjs/S5443/rule.js +3 -3
  728. package/cjs/S5527/generated-meta.js +5 -4
  729. package/cjs/S5527/index.js +3 -3
  730. package/cjs/S5527/meta.js +3 -3
  731. package/cjs/S5527/rule.js +3 -3
  732. package/cjs/S5542/generated-meta.js +5 -4
  733. package/cjs/S5542/index.js +3 -3
  734. package/cjs/S5542/meta.js +3 -3
  735. package/cjs/S5542/rule.js +3 -3
  736. package/cjs/S5547/generated-meta.js +5 -4
  737. package/cjs/S5547/index.js +3 -3
  738. package/cjs/S5547/meta.js +3 -3
  739. package/cjs/S5547/rule.js +3 -3
  740. package/cjs/S5604/config.js +3 -3
  741. package/cjs/S5604/generated-meta.js +8 -7
  742. package/cjs/S5604/index.js +3 -3
  743. package/cjs/S5604/meta.js +3 -3
  744. package/cjs/S5604/rule.js +3 -3
  745. package/cjs/S5659/generated-meta.js +5 -4
  746. package/cjs/S5659/index.js +3 -3
  747. package/cjs/S5659/meta.js +3 -3
  748. package/cjs/S5659/rule.js +3 -3
  749. package/cjs/S5689/generated-meta.js +6 -5
  750. package/cjs/S5689/index.js +3 -3
  751. package/cjs/S5689/meta.js +3 -3
  752. package/cjs/S5689/rule.js +3 -3
  753. package/cjs/S5691/generated-meta.js +8 -7
  754. package/cjs/S5691/index.js +3 -3
  755. package/cjs/S5691/meta.js +3 -3
  756. package/cjs/S5691/rule.js +3 -3
  757. package/cjs/S5693/config.js +3 -3
  758. package/cjs/S5693/generated-meta.js +6 -5
  759. package/cjs/S5693/index.js +3 -3
  760. package/cjs/S5693/meta.js +3 -3
  761. package/cjs/S5693/rule.js +48 -4
  762. package/cjs/S5725/generated-meta.js +6 -5
  763. package/cjs/S5725/index.js +3 -3
  764. package/cjs/S5725/meta.js +3 -3
  765. package/cjs/S5725/rule.js +78 -15
  766. package/cjs/S5728/generated-meta.js +6 -5
  767. package/cjs/S5728/index.js +3 -3
  768. package/cjs/S5728/meta.js +3 -3
  769. package/cjs/S5728/rule.js +3 -3
  770. package/cjs/S5730/generated-meta.js +8 -7
  771. package/cjs/S5730/index.js +3 -3
  772. package/cjs/S5730/meta.js +3 -3
  773. package/cjs/S5730/rule.js +3 -3
  774. package/cjs/S5732/generated-meta.js +8 -7
  775. package/cjs/S5732/index.js +3 -3
  776. package/cjs/S5732/meta.js +3 -3
  777. package/cjs/S5732/rule.js +3 -3
  778. package/cjs/S5734/generated-meta.js +6 -5
  779. package/cjs/S5734/index.js +3 -3
  780. package/cjs/S5734/meta.js +3 -3
  781. package/cjs/S5734/rule.js +3 -3
  782. package/cjs/S5736/generated-meta.js +6 -5
  783. package/cjs/S5736/index.js +3 -3
  784. package/cjs/S5736/meta.js +3 -3
  785. package/cjs/S5736/rule.js +3 -3
  786. package/cjs/S5739/generated-meta.js +6 -5
  787. package/cjs/S5739/index.js +3 -3
  788. package/cjs/S5739/meta.js +3 -3
  789. package/cjs/S5739/rule.js +3 -3
  790. package/cjs/S5757/generated-meta.js +8 -7
  791. package/cjs/S5757/index.js +3 -3
  792. package/cjs/S5757/meta.js +3 -3
  793. package/cjs/S5757/rule.js +3 -3
  794. package/cjs/S5759/generated-meta.js +8 -7
  795. package/cjs/S5759/index.js +3 -3
  796. package/cjs/S5759/meta.js +3 -3
  797. package/cjs/S5759/rule.js +3 -3
  798. package/cjs/S5842/generated-meta.js +5 -4
  799. package/cjs/S5842/index.js +3 -3
  800. package/cjs/S5842/meta.js +3 -3
  801. package/cjs/S5842/rule.js +3 -3
  802. package/cjs/S5843/config.js +3 -3
  803. package/cjs/S5843/generated-meta.js +5 -4
  804. package/cjs/S5843/index.js +3 -3
  805. package/cjs/S5843/meta.js +3 -3
  806. package/cjs/S5843/rule.js +3 -3
  807. package/cjs/S5845/generated-meta.js +52 -0
  808. package/cjs/{S2255 → S5845}/index.js +3 -3
  809. package/cjs/{S2255 → S5845}/meta.js +4 -4
  810. package/cjs/S5845/rule.js +296 -0
  811. package/cjs/S5850/generated-meta.js +5 -4
  812. package/cjs/S5850/index.js +3 -3
  813. package/cjs/S5850/meta.js +3 -3
  814. package/cjs/S5850/rule.js +3 -3
  815. package/cjs/S5852/generated-meta.js +6 -5
  816. package/cjs/S5852/index.js +3 -3
  817. package/cjs/S5852/meta.js +3 -3
  818. package/cjs/S5852/rule.js +14 -6
  819. package/cjs/S5856/generated-meta.js +5 -4
  820. package/cjs/S5856/index.js +3 -3
  821. package/cjs/S5856/meta.js +3 -3
  822. package/cjs/S5856/rule.js +3 -3
  823. package/cjs/S5860/generated-meta.js +5 -4
  824. package/cjs/S5860/index.js +3 -3
  825. package/cjs/S5860/meta.js +3 -3
  826. package/cjs/S5860/rule.js +3 -3
  827. package/cjs/S5863/generated-meta.js +5 -4
  828. package/cjs/S5863/index.js +3 -3
  829. package/cjs/S5863/meta.js +3 -3
  830. package/cjs/S5863/rule.js +3 -3
  831. package/cjs/S5867/generated-meta.js +5 -4
  832. package/cjs/S5867/index.js +3 -3
  833. package/cjs/S5867/meta.js +3 -3
  834. package/cjs/S5867/rule.js +3 -3
  835. package/cjs/S5868/generated-meta.js +5 -4
  836. package/cjs/S5868/index.js +3 -3
  837. package/cjs/S5868/meta.js +3 -3
  838. package/cjs/S5868/rule.js +57 -28
  839. package/cjs/S5869/generated-meta.js +5 -4
  840. package/cjs/S5869/index.js +3 -3
  841. package/cjs/S5869/meta.js +3 -3
  842. package/cjs/S5869/rule.js +3 -3
  843. package/cjs/S5876/generated-meta.js +5 -4
  844. package/cjs/S5876/index.js +3 -3
  845. package/cjs/S5876/meta.js +3 -3
  846. package/cjs/S5876/rule.js +3 -3
  847. package/cjs/S5906/assertion-suggestions.js +279 -0
  848. package/cjs/S5906/assertion-utils.js +103 -0
  849. package/cjs/S5906/cypress-suggestions.js +62 -0
  850. package/cjs/S5906/expect-chain.js +16 -0
  851. package/cjs/S5906/generated-meta.js +52 -0
  852. package/cjs/{S4787 → S5906}/index.js +3 -3
  853. package/cjs/{S4818 → S5906}/meta.js +4 -4
  854. package/cjs/S5906/playwright-suggestions.js +103 -0
  855. package/cjs/S5906/rule.js +365 -0
  856. package/cjs/S5914/generated-meta.js +52 -0
  857. package/cjs/{S4817 → S5914}/index.js +3 -3
  858. package/cjs/{S4787 → S5914}/meta.js +4 -4
  859. package/cjs/S5914/rule.js +213 -0
  860. package/cjs/S5958/generated-meta.js +5 -4
  861. package/cjs/S5958/index.js +3 -3
  862. package/cjs/S5958/meta.js +3 -3
  863. package/cjs/S5958/rule.js +3 -3
  864. package/cjs/S5973/generated-meta.js +5 -4
  865. package/cjs/S5973/index.js +3 -3
  866. package/cjs/S5973/meta.js +3 -3
  867. package/cjs/S5973/rule.js +4 -4
  868. package/cjs/S6019/generated-meta.js +5 -4
  869. package/cjs/S6019/index.js +3 -3
  870. package/cjs/S6019/meta.js +3 -3
  871. package/cjs/S6019/rule.js +3 -3
  872. package/cjs/S6035/generated-meta.js +5 -4
  873. package/cjs/S6035/index.js +3 -3
  874. package/cjs/S6035/meta.js +3 -3
  875. package/cjs/S6035/rule.js +3 -3
  876. package/cjs/S6079/generated-meta.js +5 -4
  877. package/cjs/S6079/index.js +3 -3
  878. package/cjs/S6079/meta.js +3 -3
  879. package/cjs/S6079/rule.js +3 -3
  880. package/cjs/S6080/generated-meta.js +5 -4
  881. package/cjs/S6080/index.js +3 -3
  882. package/cjs/S6080/meta.js +3 -3
  883. package/cjs/S6080/rule.js +3 -3
  884. package/cjs/S6092/generated-meta.js +5 -4
  885. package/cjs/S6092/index.js +3 -3
  886. package/cjs/S6092/meta.js +3 -3
  887. package/cjs/S6092/rule.js +3 -3
  888. package/cjs/S6249/generated-meta.js +6 -5
  889. package/cjs/S6249/index.js +3 -3
  890. package/cjs/S6249/meta.js +3 -3
  891. package/cjs/S6249/rule.js +3 -3
  892. package/cjs/S6252/generated-meta.js +6 -5
  893. package/cjs/S6252/index.js +3 -3
  894. package/cjs/S6252/meta.js +3 -3
  895. package/cjs/S6252/rule.js +3 -3
  896. package/cjs/S6265/generated-meta.js +6 -5
  897. package/cjs/S6265/index.js +3 -3
  898. package/cjs/S6265/meta.js +3 -3
  899. package/cjs/S6265/rule.js +3 -3
  900. package/cjs/S6268/generated-meta.js +6 -5
  901. package/cjs/S6268/index.js +3 -3
  902. package/cjs/S6268/meta.js +3 -3
  903. package/cjs/S6268/rule.js +3 -3
  904. package/cjs/S6270/generated-meta.js +6 -5
  905. package/cjs/S6270/index.js +3 -3
  906. package/cjs/S6270/meta.js +3 -3
  907. package/cjs/S6270/rule.js +3 -3
  908. package/cjs/S6275/generated-meta.js +6 -5
  909. package/cjs/S6275/index.js +3 -3
  910. package/cjs/S6275/meta.js +3 -3
  911. package/cjs/S6275/rule.js +3 -3
  912. package/cjs/S6281/generated-meta.js +6 -5
  913. package/cjs/S6281/index.js +3 -3
  914. package/cjs/S6281/meta.js +3 -3
  915. package/cjs/S6281/rule.js +10 -23
  916. package/cjs/S6302/generated-meta.js +6 -5
  917. package/cjs/S6302/index.js +3 -3
  918. package/cjs/S6302/meta.js +3 -3
  919. package/cjs/S6302/rule.js +3 -3
  920. package/cjs/S6303/generated-meta.js +6 -5
  921. package/cjs/S6303/index.js +3 -3
  922. package/cjs/S6303/meta.js +3 -3
  923. package/cjs/S6303/rule.js +3 -3
  924. package/cjs/S6304/generated-meta.js +6 -5
  925. package/cjs/S6304/index.js +3 -3
  926. package/cjs/S6304/meta.js +3 -3
  927. package/cjs/S6304/rule.js +3 -3
  928. package/cjs/S6308/generated-meta.js +6 -5
  929. package/cjs/S6308/index.js +3 -3
  930. package/cjs/S6308/meta.js +3 -3
  931. package/cjs/S6308/rule.js +3 -3
  932. package/cjs/S6317/generated-meta.js +5 -4
  933. package/cjs/S6317/index.js +3 -3
  934. package/cjs/S6317/meta.js +3 -3
  935. package/cjs/S6317/rule.js +3 -3
  936. package/cjs/S6319/generated-meta.js +6 -5
  937. package/cjs/S6319/index.js +3 -3
  938. package/cjs/S6319/meta.js +3 -3
  939. package/cjs/S6319/rule.js +3 -3
  940. package/cjs/S6321/generated-meta.js +5 -4
  941. package/cjs/S6321/index.js +3 -3
  942. package/cjs/S6321/meta.js +3 -3
  943. package/cjs/S6321/rule.js +3 -3
  944. package/cjs/S6323/generated-meta.js +5 -4
  945. package/cjs/S6323/index.js +3 -3
  946. package/cjs/S6323/meta.js +3 -3
  947. package/cjs/S6323/rule.js +3 -3
  948. package/cjs/S6324/generated-meta.js +5 -4
  949. package/cjs/S6324/index.js +3 -3
  950. package/cjs/S6324/meta.js +3 -3
  951. package/cjs/S6324/rule.js +8 -8
  952. package/cjs/S6326/generated-meta.js +5 -4
  953. package/cjs/S6326/index.js +3 -3
  954. package/cjs/S6326/meta.js +3 -3
  955. package/cjs/S6326/rule.js +3 -3
  956. package/cjs/S6327/generated-meta.js +6 -5
  957. package/cjs/S6327/index.js +3 -3
  958. package/cjs/S6327/meta.js +3 -3
  959. package/cjs/S6327/rule.js +3 -3
  960. package/cjs/S6328/generated-meta.js +5 -4
  961. package/cjs/S6328/index.js +3 -3
  962. package/cjs/S6328/meta.js +3 -3
  963. package/cjs/S6328/rule.js +3 -3
  964. package/cjs/S6329/generated-meta.js +6 -5
  965. package/cjs/S6329/index.js +3 -3
  966. package/cjs/S6329/meta.js +3 -3
  967. package/cjs/S6329/rule.js +3 -3
  968. package/cjs/S6330/generated-meta.js +6 -5
  969. package/cjs/S6330/index.js +3 -3
  970. package/cjs/S6330/meta.js +3 -3
  971. package/cjs/S6330/rule.js +3 -3
  972. package/cjs/S6331/generated-meta.js +5 -4
  973. package/cjs/S6331/index.js +3 -3
  974. package/cjs/S6331/meta.js +3 -3
  975. package/cjs/S6331/rule.js +3 -3
  976. package/cjs/S6332/generated-meta.js +6 -5
  977. package/cjs/S6332/index.js +3 -3
  978. package/cjs/S6332/meta.js +3 -3
  979. package/cjs/S6332/rule.js +3 -3
  980. package/cjs/S6333/generated-meta.js +6 -5
  981. package/cjs/S6333/index.js +3 -3
  982. package/cjs/S6333/meta.js +3 -3
  983. package/cjs/S6333/rule.js +3 -3
  984. package/cjs/S6351/generated-meta.js +5 -4
  985. package/cjs/S6351/index.js +3 -3
  986. package/cjs/S6351/meta.js +3 -3
  987. package/cjs/S6351/rule.js +3 -3
  988. package/cjs/S6353/generated-meta.js +5 -4
  989. package/cjs/S6353/index.js +3 -3
  990. package/cjs/S6353/meta.js +3 -3
  991. package/cjs/S6353/rule.js +3 -3
  992. package/cjs/S6397/generated-meta.js +5 -4
  993. package/cjs/S6397/index.js +3 -3
  994. package/cjs/S6397/meta.js +3 -3
  995. package/cjs/S6397/rule.js +3 -3
  996. package/cjs/S6418/config.js +3 -3
  997. package/cjs/S6418/generated-meta.js +5 -4
  998. package/cjs/S6418/index.js +3 -3
  999. package/cjs/S6418/meta.js +3 -3
  1000. package/cjs/S6418/rule.js +3 -3
  1001. package/cjs/S6426/generated-meta.js +5 -4
  1002. package/cjs/S6426/index.js +3 -3
  1003. package/cjs/S6426/meta.js +3 -3
  1004. package/cjs/S6426/rule.js +9 -4
  1005. package/cjs/S6437/generated-meta.js +5 -4
  1006. package/cjs/S6437/index.js +3 -3
  1007. package/cjs/S6437/meta.js +3 -3
  1008. package/cjs/S6437/rule.js +12 -5
  1009. package/cjs/S6439/generated-meta.js +6 -5
  1010. package/cjs/S6439/index.js +3 -3
  1011. package/cjs/S6439/meta.js +3 -3
  1012. package/cjs/S6439/rule.js +3 -3
  1013. package/cjs/S6442/generated-meta.js +6 -5
  1014. package/cjs/S6442/index.js +3 -3
  1015. package/cjs/S6442/meta.js +3 -3
  1016. package/cjs/S6442/rule.js +3 -3
  1017. package/cjs/S6443/generated-meta.js +6 -5
  1018. package/cjs/S6443/index.js +3 -3
  1019. package/cjs/S6443/meta.js +3 -3
  1020. package/cjs/S6443/rule.js +3 -3
  1021. package/cjs/S6486/generated-meta.js +5 -4
  1022. package/cjs/S6486/index.js +3 -3
  1023. package/cjs/S6486/meta.js +3 -3
  1024. package/cjs/S6486/rule.js +8 -8
  1025. package/cjs/S6564/generated-meta.js +5 -4
  1026. package/cjs/S6564/index.js +3 -3
  1027. package/cjs/S6564/meta.js +3 -3
  1028. package/cjs/S6564/rule.js +3 -3
  1029. package/cjs/S6594/generated-meta.js +5 -4
  1030. package/cjs/S6594/index.js +3 -3
  1031. package/cjs/S6594/meta.js +3 -3
  1032. package/cjs/S6594/rule.js +3 -3
  1033. package/cjs/S6627/generated-meta.js +5 -4
  1034. package/cjs/S6627/index.js +3 -3
  1035. package/cjs/S6627/meta.js +3 -3
  1036. package/cjs/S6627/rule.js +3 -3
  1037. package/cjs/S6759/generated-meta.js +5 -4
  1038. package/cjs/S6759/index.js +3 -3
  1039. package/cjs/S6759/meta.js +3 -3
  1040. package/cjs/S6759/rule.js +34 -4
  1041. package/cjs/S6958/generated-meta.js +5 -4
  1042. package/cjs/S6958/index.js +3 -3
  1043. package/cjs/S6958/meta.js +3 -3
  1044. package/cjs/S6959/generated-meta.js +5 -4
  1045. package/cjs/S6959/index.js +3 -3
  1046. package/cjs/S6959/meta.js +3 -3
  1047. package/cjs/S6959/rule.js +3 -3
  1048. package/cjs/S7059/generated-meta.js +6 -4
  1049. package/cjs/S7059/index.js +3 -3
  1050. package/cjs/S7059/meta.js +3 -3
  1051. package/cjs/S7059/rule.js +3 -3
  1052. package/cjs/S7639/generated-meta.js +5 -4
  1053. package/cjs/S7639/index.js +3 -3
  1054. package/cjs/S7639/meta.js +3 -3
  1055. package/cjs/S7639/rule.js +3 -3
  1056. package/cjs/S7790/generated-meta.js +5 -4
  1057. package/cjs/S7790/index.js +3 -3
  1058. package/cjs/S7790/meta.js +3 -3
  1059. package/cjs/S7790/rule.js +3 -3
  1060. package/cjs/S8441/generated-meta.js +5 -4
  1061. package/cjs/S8441/index.js +3 -3
  1062. package/cjs/S8441/meta.js +3 -3
  1063. package/cjs/S8441/rule.js +3 -3
  1064. package/cjs/{S4817 → S8479}/generated-meta.js +12 -11
  1065. package/cjs/S8479/index.js +21 -0
  1066. package/cjs/S8479/meta.js +22 -0
  1067. package/cjs/S8479/rule.js +239 -0
  1068. package/cjs/S8754/generated-meta.js +52 -0
  1069. package/cjs/S8754/index.js +21 -0
  1070. package/cjs/{S5743 → S8754}/meta.js +4 -4
  1071. package/cjs/S8754/rule.js +289 -0
  1072. package/cjs/{S4784 → S8780}/generated-meta.js +12 -11
  1073. package/cjs/S8780/index.js +21 -0
  1074. package/cjs/S8780/meta.js +21 -0
  1075. package/cjs/S8780/rule.js +321 -0
  1076. package/cjs/S8781/generated-meta.js +52 -0
  1077. package/cjs/S8781/index.js +21 -0
  1078. package/cjs/S8781/meta.js +21 -0
  1079. package/cjs/S8781/rule.js +112 -0
  1080. package/cjs/S8782/generated-meta.js +52 -0
  1081. package/cjs/S8782/index.js +21 -0
  1082. package/cjs/S8782/meta.js +21 -0
  1083. package/cjs/S8782/rule.js +148 -0
  1084. package/cjs/S8783/generated-meta.js +52 -0
  1085. package/cjs/S8783/index.js +21 -0
  1086. package/cjs/S8783/meta.js +21 -0
  1087. package/cjs/S8783/rule.js +167 -0
  1088. package/cjs/{S4787 → S8786}/generated-meta.js +12 -11
  1089. package/cjs/S8786/index.js +21 -0
  1090. package/cjs/{S4784 → S8786}/meta.js +5 -4
  1091. package/cjs/{S4818 → S8786}/rule.js +27 -23
  1092. package/cjs/S881/generated-meta.js +5 -4
  1093. package/cjs/S881/index.js +3 -3
  1094. package/cjs/S881/meta.js +3 -3
  1095. package/cjs/S881/rule.js +3 -3
  1096. package/cjs/S888/generated-meta.js +5 -4
  1097. package/cjs/S888/index.js +3 -3
  1098. package/cjs/S888/meta.js +3 -3
  1099. package/cjs/S888/rule.js +3 -3
  1100. package/cjs/S930/generated-meta.js +5 -4
  1101. package/cjs/S930/index.js +3 -3
  1102. package/cjs/S930/meta.js +3 -3
  1103. package/cjs/S930/rule.js +3 -3
  1104. package/cjs/helpers/accessibility.js +3 -3
  1105. package/cjs/helpers/assertions-chai-common.js +29 -0
  1106. package/cjs/helpers/assertions-chai.js +331 -0
  1107. package/cjs/helpers/assertions-cypress.js +95 -0
  1108. package/cjs/helpers/assertions.js +285 -0
  1109. package/cjs/helpers/ast.js +31 -1
  1110. package/cjs/helpers/cache.js +3 -3
  1111. package/cjs/helpers/chai.js +1 -1
  1112. package/cjs/helpers/collection.js +3 -3
  1113. package/cjs/helpers/configs.js +39 -3
  1114. package/cjs/helpers/cypress.js +73 -0
  1115. package/cjs/helpers/dependency-manifests/all-in-parent-dirs.js +92 -0
  1116. package/cjs/helpers/dependency-manifests/closest.js +40 -0
  1117. package/cjs/helpers/dependency-manifests/dependencies.js +255 -0
  1118. package/cjs/helpers/dependency-manifests/index.js +78 -0
  1119. package/cjs/helpers/dependency-manifests/parse.js +51 -0
  1120. package/cjs/helpers/dependency-manifests/parsed-dependency-files.js +80 -0
  1121. package/cjs/helpers/dependency-manifests/resolvers/deno.js +79 -0
  1122. package/cjs/helpers/dependency-manifests/resolvers/helpers.js +41 -0
  1123. package/cjs/helpers/dependency-manifests/resolvers/package-json.js +167 -0
  1124. package/cjs/helpers/dependency-manifests/resolvers/types.js +4 -0
  1125. package/cjs/helpers/entropy.js +5 -5
  1126. package/cjs/helpers/files.js +33 -4
  1127. package/cjs/helpers/find-up/all-in-parent-dirs.js +1 -0
  1128. package/cjs/helpers/find-up/closest.js +4 -3
  1129. package/cjs/helpers/find-up/find-minimatch.js +2 -2
  1130. package/cjs/helpers/generate-meta.js +1 -1
  1131. package/cjs/helpers/internal-metrics.js +27 -0
  1132. package/cjs/helpers/mocha-style-test-frameworks.js +132 -0
  1133. package/cjs/helpers/mocha.js +17 -7
  1134. package/cjs/helpers/module-ts.js +8 -3
  1135. package/cjs/helpers/module.js +116 -23
  1136. package/cjs/helpers/numbers.js +62 -0
  1137. package/cjs/helpers/playwright.js +13 -0
  1138. package/cjs/helpers/recognizers/Detector.js +3 -3
  1139. package/cjs/helpers/recognizers/detectors/CamelCaseDetector.js +3 -3
  1140. package/cjs/helpers/recognizers/detectors/ContainsDetector.js +3 -3
  1141. package/cjs/helpers/recognizers/detectors/EndWithDetector.js +3 -3
  1142. package/cjs/helpers/recognizers/detectors/KeywordsDetector.js +3 -3
  1143. package/cjs/helpers/regex/extract.js +21 -9
  1144. package/cjs/helpers/regex/flags.js +12 -5
  1145. package/cjs/helpers/sinon.js +0 -4
  1146. package/cjs/helpers/supertest.js +0 -4
  1147. package/cjs/helpers/test-file-pattern.js +63 -0
  1148. package/cjs/helpers/type-origin.js +82 -0
  1149. package/cjs/helpers/type.js +162 -1
  1150. package/cjs/helpers/vitest.js +0 -4
  1151. package/cjs/plugin-rules.js +299 -299
  1152. package/docs/async-test-assertions.md +7 -0
  1153. package/docs/aws-apigateway-public-api.md +1 -1
  1154. package/docs/aws-ec2-rds-dms-public.md +1 -1
  1155. package/docs/aws-ec2-unencrypted-ebs-volume.md +1 -1
  1156. package/docs/aws-efs-unencrypted.md +1 -1
  1157. package/docs/aws-iam-all-privileges.md +1 -1
  1158. package/docs/aws-iam-all-resources-accessible.md +1 -1
  1159. package/docs/aws-iam-public-access.md +1 -1
  1160. package/docs/aws-opensearchservice-domain.md +1 -1
  1161. package/docs/aws-rds-unencrypted-databases.md +1 -1
  1162. package/docs/aws-s3-bucket-granted-access.md +1 -1
  1163. package/docs/aws-s3-bucket-insecure-http.md +1 -1
  1164. package/docs/aws-s3-bucket-public-access.md +1 -1
  1165. package/docs/aws-s3-bucket-versioning.md +1 -1
  1166. package/docs/aws-sagemaker-unencrypted-notebook.md +1 -1
  1167. package/docs/aws-sns-unencrypted-topics.md +1 -1
  1168. package/docs/aws-sqs-unencrypted-queue.md +1 -1
  1169. package/docs/class-name.md +3 -3
  1170. package/docs/code-eval.md +1 -1
  1171. package/docs/confidential-information-logging.md +4 -2
  1172. package/docs/content-length.md +1 -1
  1173. package/docs/content-security-policy.md +1 -1
  1174. package/docs/cookie-no-httponly.md +1 -1
  1175. package/docs/cors.md +1 -1
  1176. package/docs/csrf.md +1 -1
  1177. package/docs/disabled-auto-escaping.md +1 -1
  1178. package/docs/disabled-resource-integrity.md +1 -1
  1179. package/docs/dompurify-unsafe-config.md +9 -0
  1180. package/docs/frame-ancestors.md +4 -2
  1181. package/docs/hashing.md +1 -1
  1182. package/docs/hidden-files.md +4 -2
  1183. package/docs/hooks-before-test-cases.md +7 -0
  1184. package/docs/insecure-cookie.md +1 -1
  1185. package/docs/link-with-target-blank.md +1 -1
  1186. package/docs/no-angular-bypass-sanitization.md +1 -1
  1187. package/docs/no-clear-text-protocols.md +1 -1
  1188. package/docs/no-commented-code.md +1 -1
  1189. package/docs/no-duplicate-test-title.md +7 -0
  1190. package/docs/no-empty-test-title.md +7 -0
  1191. package/docs/no-floating-point-equality.md +7 -0
  1192. package/docs/no-forced-browser-interaction.md +7 -0
  1193. package/docs/no-hardcoded-ip.md +1 -1
  1194. package/docs/no-incompatible-assertion-types.md +9 -0
  1195. package/docs/no-intrusive-permissions.md +4 -2
  1196. package/docs/no-ip-forward.md +4 -2
  1197. package/docs/no-mime-sniff.md +1 -1
  1198. package/docs/no-mixed-content.md +4 -2
  1199. package/docs/no-os-command-from-path.md +1 -1
  1200. package/docs/no-referrer-policy.md +1 -1
  1201. package/docs/no-small-switch.md +2 -0
  1202. package/docs/no-trivial-assertions.md +7 -0
  1203. package/docs/no-unsafe-unzip.md +4 -2
  1204. package/docs/os-command.md +4 -2
  1205. package/docs/prefer-specific-assertions.md +9 -0
  1206. package/docs/production-debug.md +1 -1
  1207. package/docs/pseudo-random.md +1 -1
  1208. package/docs/publicly-writable-directories.md +1 -1
  1209. package/docs/slow-regex.md +1 -1
  1210. package/docs/sql-queries.md +1 -1
  1211. package/docs/strict-transport-security.md +1 -1
  1212. package/docs/super-linear-regex.md +7 -0
  1213. package/docs/x-powered-by.md +1 -1
  1214. package/package.json +7 -6
  1215. package/types/S100/generated-meta.d.ts +1 -0
  1216. package/types/S101/config.d.ts +1 -1
  1217. package/types/S101/generated-meta.d.ts +1 -0
  1218. package/types/S104/generated-meta.d.ts +1 -0
  1219. package/types/S105/generated-meta.d.ts +1 -0
  1220. package/types/S1066/generated-meta.d.ts +1 -0
  1221. package/types/S1067/generated-meta.d.ts +1 -0
  1222. package/types/S1110/generated-meta.d.ts +1 -0
  1223. package/types/S1119/generated-meta.d.ts +1 -0
  1224. package/types/S1121/generated-meta.d.ts +1 -0
  1225. package/types/S1125/generated-meta.d.ts +1 -0
  1226. package/types/S1126/generated-meta.d.ts +1 -0
  1227. package/types/S1128/generated-meta.d.ts +2 -0
  1228. package/types/S1134/generated-meta.d.ts +1 -0
  1229. package/types/S1135/generated-meta.d.ts +1 -0
  1230. package/types/S1154/generated-meta.d.ts +1 -0
  1231. package/types/S117/generated-meta.d.ts +1 -0
  1232. package/types/S1172/generated-meta.d.ts +1 -0
  1233. package/types/S1192/generated-meta.d.ts +1 -0
  1234. package/types/S1219/generated-meta.d.ts +1 -0
  1235. package/types/S1226/generated-meta.d.ts +1 -0
  1236. package/types/S124/generated-meta.d.ts +1 -0
  1237. package/types/{S2255 → S1244}/generated-meta.d.ts +3 -2
  1238. package/types/S1244/meta.d.ts +2 -0
  1239. package/types/S125/generated-meta.d.ts +1 -0
  1240. package/types/S126/generated-meta.d.ts +1 -0
  1241. package/types/S1264/generated-meta.d.ts +1 -0
  1242. package/types/S128/generated-meta.d.ts +1 -0
  1243. package/types/S1291/generated-meta.d.ts +1 -0
  1244. package/types/S1301/generated-meta.d.ts +2 -1
  1245. package/types/S1313/generated-meta.d.ts +2 -1
  1246. package/types/S134/config.d.ts +1 -1
  1247. package/types/S134/generated-meta.d.ts +1 -0
  1248. package/types/S135/generated-meta.d.ts +1 -0
  1249. package/types/S138/generated-meta.d.ts +1 -0
  1250. package/types/S1439/generated-meta.d.ts +1 -0
  1251. package/types/S1444/generated-meta.d.ts +1 -0
  1252. package/types/S1451/generated-meta.d.ts +1 -0
  1253. package/types/S1472/generated-meta.d.ts +1 -0
  1254. package/types/S1479/generated-meta.d.ts +1 -0
  1255. package/types/S1481/generated-meta.d.ts +1 -0
  1256. package/types/S1488/generated-meta.d.ts +1 -0
  1257. package/types/S1515/generated-meta.d.ts +1 -0
  1258. package/types/S1523/generated-meta.d.ts +1 -0
  1259. package/types/S1526/generated-meta.d.ts +1 -0
  1260. package/types/S1527/generated-meta.d.ts +1 -0
  1261. package/types/S1528/generated-meta.d.ts +1 -0
  1262. package/types/S1529/generated-meta.d.ts +1 -0
  1263. package/types/S1530/generated-meta.d.ts +1 -0
  1264. package/types/S1533/generated-meta.d.ts +1 -0
  1265. package/types/S1535/generated-meta.d.ts +1 -0
  1266. package/types/S1541/generated-meta.d.ts +1 -0
  1267. package/types/S1607/generated-meta.d.ts +1 -0
  1268. package/types/S1764/generated-meta.d.ts +1 -0
  1269. package/types/S1821/generated-meta.d.ts +1 -0
  1270. package/types/S1848/generated-meta.d.ts +1 -0
  1271. package/types/S1854/generated-meta.d.ts +1 -0
  1272. package/types/S1862/generated-meta.d.ts +1 -0
  1273. package/types/S1871/generated-meta.d.ts +1 -0
  1274. package/types/S1874/generated-meta.d.ts +1 -0
  1275. package/types/S1940/generated-meta.d.ts +1 -0
  1276. package/types/S1994/generated-meta.d.ts +1 -0
  1277. package/types/S2004/generated-meta.d.ts +1 -0
  1278. package/types/S2068/generated-meta.d.ts +1 -0
  1279. package/types/S2077/generated-meta.d.ts +1 -0
  1280. package/types/S2092/generated-meta.d.ts +1 -0
  1281. package/types/S2123/generated-meta.d.ts +1 -0
  1282. package/types/S2137/generated-meta.d.ts +1 -0
  1283. package/types/S2138/generated-meta.d.ts +1 -0
  1284. package/types/S2187/generated-meta.d.ts +1 -0
  1285. package/types/S2201/generated-meta.d.ts +1 -0
  1286. package/types/S2208/generated-meta.d.ts +2 -0
  1287. package/types/S2234/generated-meta.d.ts +1 -0
  1288. package/types/S2245/generated-meta.d.ts +1 -0
  1289. package/types/S2251/generated-meta.d.ts +1 -0
  1290. package/types/S2259/generated-meta.d.ts +1 -0
  1291. package/types/S2301/generated-meta.d.ts +1 -0
  1292. package/types/S2310/generated-meta.d.ts +1 -0
  1293. package/types/S2392/generated-meta.d.ts +1 -0
  1294. package/types/S2424/generated-meta.d.ts +1 -0
  1295. package/types/S2428/generated-meta.d.ts +1 -0
  1296. package/types/S2486/generated-meta.d.ts +1 -0
  1297. package/types/S2589/generated-meta.d.ts +1 -0
  1298. package/types/S2598/generated-meta.d.ts +1 -0
  1299. package/types/S2612/generated-meta.d.ts +1 -0
  1300. package/types/S2639/generated-meta.d.ts +1 -0
  1301. package/types/S2681/generated-meta.d.ts +1 -0
  1302. package/types/S2692/generated-meta.d.ts +1 -0
  1303. package/types/S2699/generated-meta.d.ts +1 -0
  1304. package/types/S2703/generated-meta.d.ts +1 -0
  1305. package/types/S2737/generated-meta.d.ts +1 -0
  1306. package/types/S2755/generated-meta.d.ts +1 -0
  1307. package/types/S2757/generated-meta.d.ts +1 -0
  1308. package/types/S2817/generated-meta.d.ts +1 -0
  1309. package/types/S2819/generated-meta.d.ts +1 -0
  1310. package/types/S2870/generated-meta.d.ts +1 -0
  1311. package/types/S2871/generated-meta.d.ts +1 -0
  1312. package/types/S2970/generated-meta.d.ts +1 -0
  1313. package/types/S2990/generated-meta.d.ts +1 -0
  1314. package/types/S2999/generated-meta.d.ts +1 -0
  1315. package/types/S3001/generated-meta.d.ts +1 -0
  1316. package/types/S3003/generated-meta.d.ts +1 -0
  1317. package/types/S3317/generated-meta.d.ts +2 -0
  1318. package/types/S3330/generated-meta.d.ts +1 -0
  1319. package/types/S3358/generated-meta.d.ts +1 -0
  1320. package/types/S3402/generated-meta.d.ts +1 -0
  1321. package/types/S3403/generated-meta.d.ts +1 -0
  1322. package/types/S3415/generated-meta.d.ts +1 -0
  1323. package/types/S3499/generated-meta.d.ts +2 -0
  1324. package/types/S3500/generated-meta.d.ts +2 -0
  1325. package/types/S3513/generated-meta.d.ts +2 -0
  1326. package/types/S3514/generated-meta.d.ts +2 -0
  1327. package/types/S3516/generated-meta.d.ts +1 -0
  1328. package/types/S3524/generated-meta.d.ts +2 -0
  1329. package/types/S3525/generated-meta.d.ts +2 -0
  1330. package/types/S3531/generated-meta.d.ts +2 -0
  1331. package/types/S3533/generated-meta.d.ts +2 -0
  1332. package/types/S3579/generated-meta.d.ts +1 -0
  1333. package/types/S3616/generated-meta.d.ts +1 -0
  1334. package/types/S3626/generated-meta.d.ts +1 -0
  1335. package/types/S3686/generated-meta.d.ts +1 -0
  1336. package/types/S3699/generated-meta.d.ts +1 -0
  1337. package/types/S3735/generated-meta.d.ts +1 -0
  1338. package/types/S3757/generated-meta.d.ts +1 -0
  1339. package/types/S3758/generated-meta.d.ts +1 -0
  1340. package/types/S3760/generated-meta.d.ts +1 -0
  1341. package/types/S3776/generated-meta.d.ts +1 -0
  1342. package/types/S3776/meta.d.ts +2 -0
  1343. package/types/S3782/generated-meta.d.ts +1 -0
  1344. package/types/S3785/generated-meta.d.ts +1 -0
  1345. package/types/S3796/generated-meta.d.ts +1 -0
  1346. package/types/S3798/generated-meta.d.ts +1 -0
  1347. package/types/S3800/generated-meta.d.ts +1 -0
  1348. package/types/S3801/generated-meta.d.ts +1 -0
  1349. package/types/S3827/generated-meta.d.ts +1 -0
  1350. package/types/S3923/generated-meta.d.ts +1 -0
  1351. package/types/S3972/generated-meta.d.ts +1 -0
  1352. package/types/S3973/generated-meta.d.ts +1 -0
  1353. package/types/S3981/generated-meta.d.ts +1 -0
  1354. package/types/S3984/generated-meta.d.ts +1 -0
  1355. package/types/S4030/generated-meta.d.ts +1 -0
  1356. package/types/S4036/generated-meta.d.ts +1 -0
  1357. package/types/S4043/generated-meta.d.ts +1 -0
  1358. package/types/S4139/generated-meta.d.ts +1 -0
  1359. package/types/S4143/generated-meta.d.ts +1 -0
  1360. package/types/S4144/generated-meta.d.ts +1 -0
  1361. package/types/S4158/generated-meta.d.ts +1 -0
  1362. package/types/S4165/generated-meta.d.ts +1 -0
  1363. package/types/S4322/generated-meta.d.ts +1 -0
  1364. package/types/S4323/generated-meta.d.ts +1 -0
  1365. package/types/S4324/generated-meta.d.ts +1 -0
  1366. package/types/S4328/generated-meta.d.ts +1 -0
  1367. package/types/S4335/generated-meta.d.ts +1 -0
  1368. package/types/S4423/generated-meta.d.ts +1 -0
  1369. package/types/S4426/generated-meta.d.ts +1 -0
  1370. package/types/S4502/generated-meta.d.ts +1 -0
  1371. package/types/S4507/generated-meta.d.ts +1 -0
  1372. package/types/S4524/generated-meta.d.ts +1 -0
  1373. package/types/S4619/generated-meta.d.ts +1 -0
  1374. package/types/S4621/generated-meta.d.ts +1 -0
  1375. package/types/S4622/generated-meta.d.ts +1 -0
  1376. package/types/S4623/generated-meta.d.ts +1 -0
  1377. package/types/S4624/generated-meta.d.ts +2 -0
  1378. package/types/S4634/generated-meta.d.ts +2 -0
  1379. package/types/S4721/generated-meta.d.ts +2 -1
  1380. package/types/S4782/generated-meta.d.ts +1 -0
  1381. package/types/S4790/generated-meta.d.ts +1 -0
  1382. package/types/S4798/generated-meta.d.ts +1 -0
  1383. package/types/S4822/generated-meta.d.ts +2 -0
  1384. package/types/S4830/generated-meta.d.ts +1 -0
  1385. package/types/S5042/generated-meta.d.ts +3 -2
  1386. package/types/S5122/generated-meta.d.ts +1 -0
  1387. package/types/S5148/generated-meta.d.ts +1 -0
  1388. package/types/S5247/generated-meta.d.ts +1 -0
  1389. package/types/S5256/generated-meta.d.ts +1 -0
  1390. package/types/S5257/generated-meta.d.ts +1 -0
  1391. package/types/S5260/generated-meta.d.ts +1 -0
  1392. package/types/S5264/generated-meta.d.ts +1 -0
  1393. package/types/S5332/generated-meta.d.ts +1 -0
  1394. package/types/S5443/generated-meta.d.ts +1 -0
  1395. package/types/S5527/generated-meta.d.ts +1 -0
  1396. package/types/S5542/generated-meta.d.ts +1 -0
  1397. package/types/S5547/generated-meta.d.ts +1 -0
  1398. package/types/S5604/generated-meta.d.ts +2 -1
  1399. package/types/S5659/generated-meta.d.ts +1 -0
  1400. package/types/S5689/generated-meta.d.ts +1 -0
  1401. package/types/S5691/generated-meta.d.ts +2 -1
  1402. package/types/S5693/generated-meta.d.ts +1 -0
  1403. package/types/S5725/generated-meta.d.ts +1 -0
  1404. package/types/S5728/generated-meta.d.ts +1 -0
  1405. package/types/S5730/generated-meta.d.ts +2 -1
  1406. package/types/S5732/generated-meta.d.ts +2 -1
  1407. package/types/S5734/generated-meta.d.ts +1 -0
  1408. package/types/S5736/generated-meta.d.ts +1 -0
  1409. package/types/S5739/generated-meta.d.ts +1 -0
  1410. package/types/S5757/generated-meta.d.ts +2 -1
  1411. package/types/S5759/generated-meta.d.ts +2 -1
  1412. package/types/S5842/generated-meta.d.ts +1 -0
  1413. package/types/S5843/generated-meta.d.ts +1 -0
  1414. package/types/S5845/generated-meta.d.ts +18 -0
  1415. package/types/S5845/meta.d.ts +2 -0
  1416. package/types/S5850/generated-meta.d.ts +1 -0
  1417. package/types/S5852/generated-meta.d.ts +1 -0
  1418. package/types/S5856/generated-meta.d.ts +1 -0
  1419. package/types/S5860/generated-meta.d.ts +1 -0
  1420. package/types/S5863/generated-meta.d.ts +1 -0
  1421. package/types/S5867/generated-meta.d.ts +1 -0
  1422. package/types/S5868/generated-meta.d.ts +1 -0
  1423. package/types/S5869/generated-meta.d.ts +1 -0
  1424. package/types/S5876/generated-meta.d.ts +1 -0
  1425. package/types/S5906/assertion-suggestions.d.ts +7 -0
  1426. package/types/S5906/assertion-utils.d.ts +14 -0
  1427. package/types/S5906/cypress-suggestions.d.ts +4 -0
  1428. package/types/S5906/expect-chain.d.ts +5 -0
  1429. package/types/S5906/generated-meta.d.ts +18 -0
  1430. package/types/S5906/meta.d.ts +2 -0
  1431. package/types/S5906/playwright-suggestions.d.ts +4 -0
  1432. package/types/S5914/generated-meta.d.ts +18 -0
  1433. package/types/S5914/meta.d.ts +2 -0
  1434. package/types/S5958/generated-meta.d.ts +1 -0
  1435. package/types/S5973/generated-meta.d.ts +1 -0
  1436. package/types/S6019/generated-meta.d.ts +1 -0
  1437. package/types/S6035/generated-meta.d.ts +1 -0
  1438. package/types/S6079/generated-meta.d.ts +1 -0
  1439. package/types/S6080/generated-meta.d.ts +1 -0
  1440. package/types/S6092/generated-meta.d.ts +1 -0
  1441. package/types/S6249/generated-meta.d.ts +1 -0
  1442. package/types/S6252/generated-meta.d.ts +1 -0
  1443. package/types/S6265/generated-meta.d.ts +1 -0
  1444. package/types/S6268/generated-meta.d.ts +1 -0
  1445. package/types/S6270/generated-meta.d.ts +1 -0
  1446. package/types/S6275/generated-meta.d.ts +1 -0
  1447. package/types/S6281/generated-meta.d.ts +1 -0
  1448. package/types/S6302/generated-meta.d.ts +1 -0
  1449. package/types/S6303/generated-meta.d.ts +1 -0
  1450. package/types/S6304/generated-meta.d.ts +1 -0
  1451. package/types/S6308/generated-meta.d.ts +1 -0
  1452. package/types/S6317/generated-meta.d.ts +1 -0
  1453. package/types/S6319/generated-meta.d.ts +1 -0
  1454. package/types/S6321/generated-meta.d.ts +1 -0
  1455. package/types/S6323/generated-meta.d.ts +1 -0
  1456. package/types/S6324/generated-meta.d.ts +1 -0
  1457. package/types/S6326/generated-meta.d.ts +1 -0
  1458. package/types/S6327/generated-meta.d.ts +1 -0
  1459. package/types/S6328/generated-meta.d.ts +1 -0
  1460. package/types/S6329/generated-meta.d.ts +1 -0
  1461. package/types/S6330/generated-meta.d.ts +1 -0
  1462. package/types/S6331/generated-meta.d.ts +1 -0
  1463. package/types/S6332/generated-meta.d.ts +1 -0
  1464. package/types/S6333/generated-meta.d.ts +1 -0
  1465. package/types/S6351/generated-meta.d.ts +1 -0
  1466. package/types/S6353/generated-meta.d.ts +1 -0
  1467. package/types/S6397/generated-meta.d.ts +1 -0
  1468. package/types/S6418/generated-meta.d.ts +1 -0
  1469. package/types/S6426/generated-meta.d.ts +1 -0
  1470. package/types/S6437/generated-meta.d.ts +1 -0
  1471. package/types/S6439/generated-meta.d.ts +2 -1
  1472. package/types/S6442/generated-meta.d.ts +2 -1
  1473. package/types/S6443/generated-meta.d.ts +2 -1
  1474. package/types/S6486/generated-meta.d.ts +1 -0
  1475. package/types/S6564/generated-meta.d.ts +1 -0
  1476. package/types/S6594/generated-meta.d.ts +1 -0
  1477. package/types/S6627/generated-meta.d.ts +1 -0
  1478. package/types/S6759/generated-meta.d.ts +1 -0
  1479. package/types/S6958/generated-meta.d.ts +1 -0
  1480. package/types/S6959/generated-meta.d.ts +1 -0
  1481. package/types/S7059/generated-meta.d.ts +2 -0
  1482. package/types/S7639/generated-meta.d.ts +1 -0
  1483. package/types/S7790/generated-meta.d.ts +1 -0
  1484. package/types/S8441/generated-meta.d.ts +1 -0
  1485. package/types/{S4787 → S8479}/generated-meta.d.ts +4 -3
  1486. package/types/S8479/meta.d.ts +2 -0
  1487. package/types/S8754/generated-meta.d.ts +18 -0
  1488. package/types/{S5743 → S8754}/meta.d.ts +1 -1
  1489. package/types/{S4817 → S8780}/generated-meta.d.ts +4 -3
  1490. package/types/S8780/meta.d.ts +2 -0
  1491. package/types/S8781/generated-meta.d.ts +18 -0
  1492. package/types/S8781/meta.d.ts +2 -0
  1493. package/types/S8782/generated-meta.d.ts +18 -0
  1494. package/types/S8782/meta.d.ts +2 -0
  1495. package/types/S8783/generated-meta.d.ts +18 -0
  1496. package/types/S8783/meta.d.ts +2 -0
  1497. package/types/{S4784 → S8786}/generated-meta.d.ts +4 -3
  1498. package/types/S8786/meta.d.ts +2 -0
  1499. package/types/S881/generated-meta.d.ts +1 -0
  1500. package/types/S888/generated-meta.d.ts +1 -0
  1501. package/types/S930/generated-meta.d.ts +1 -0
  1502. package/types/helpers/assertions-chai-common.d.ts +7 -0
  1503. package/types/helpers/assertions-chai.d.ts +4 -0
  1504. package/types/helpers/assertions-cypress.d.ts +7 -0
  1505. package/types/helpers/assertions.d.ts +39 -0
  1506. package/types/helpers/ast.d.ts +10 -0
  1507. package/types/helpers/configs.d.ts +7 -38
  1508. package/types/helpers/cypress.d.ts +11 -0
  1509. package/types/helpers/dependency-manifests/all-in-parent-dirs.d.ts +18 -0
  1510. package/types/helpers/dependency-manifests/closest.d.ts +5 -0
  1511. package/types/helpers/dependency-manifests/dependencies.d.ts +73 -0
  1512. package/types/helpers/dependency-manifests/index.d.ts +22 -0
  1513. package/types/helpers/dependency-manifests/parse.d.ts +12 -0
  1514. package/types/helpers/dependency-manifests/parsed-dependency-files.d.ts +8 -0
  1515. package/types/helpers/dependency-manifests/resolvers/deno.d.ts +12 -0
  1516. package/types/helpers/dependency-manifests/resolvers/helpers.d.ts +12 -0
  1517. package/types/helpers/dependency-manifests/resolvers/package-json.d.ts +2 -0
  1518. package/types/helpers/dependency-manifests/resolvers/types.d.ts +46 -0
  1519. package/types/helpers/files.d.ts +14 -21
  1520. package/types/helpers/generate-meta.d.ts +5 -0
  1521. package/types/helpers/internal-metrics.d.ts +5 -0
  1522. package/types/helpers/mocha-style-test-frameworks.d.ts +19 -0
  1523. package/types/helpers/mocha.d.ts +7 -0
  1524. package/types/helpers/module.d.ts +14 -8
  1525. package/types/helpers/numbers.d.ts +4 -0
  1526. package/types/helpers/playwright.d.ts +2 -0
  1527. package/types/helpers/regex/extract.d.ts +7 -3
  1528. package/types/helpers/sinon.d.ts +0 -1
  1529. package/types/helpers/supertest.d.ts +0 -1
  1530. package/types/helpers/test-file-pattern.d.ts +17 -0
  1531. package/types/helpers/type-origin.d.ts +31 -0
  1532. package/types/helpers/type.d.ts +92 -1
  1533. package/types/helpers/vitest.d.ts +0 -1
  1534. package/types/plugin-rules.d.ts +11 -11
  1535. package/cjs/S2255/rule.js +0 -111
  1536. package/cjs/S4784/rule.js +0 -120
  1537. package/cjs/S4787/rule.js +0 -124
  1538. package/cjs/S4817/rule.js +0 -103
  1539. package/cjs/S4818/generated-meta.js +0 -51
  1540. package/cjs/S4818/index.js +0 -21
  1541. package/cjs/S4823/generated-meta.js +0 -51
  1542. package/cjs/S4823/index.js +0 -21
  1543. package/cjs/S4823/meta.js +0 -21
  1544. package/cjs/S4823/rule.js +0 -75
  1545. package/cjs/S4829/generated-meta.js +0 -51
  1546. package/cjs/S4829/index.js +0 -21
  1547. package/cjs/S4829/meta.js +0 -21
  1548. package/cjs/S4829/rule.js +0 -75
  1549. package/cjs/S5742/generated-meta.js +0 -51
  1550. package/cjs/S5742/index.js +0 -21
  1551. package/cjs/S5742/meta.js +0 -22
  1552. package/cjs/S5742/rule.js +0 -75
  1553. package/cjs/S5743/generated-meta.js +0 -51
  1554. package/cjs/S5743/index.js +0 -21
  1555. package/cjs/S5743/rule.js +0 -78
  1556. package/cjs/S6245/generated-meta.js +0 -51
  1557. package/cjs/S6245/index.js +0 -21
  1558. package/cjs/S6245/meta.js +0 -22
  1559. package/cjs/S6245/rule.js +0 -87
  1560. package/cjs/S6299/generated-meta.js +0 -51
  1561. package/cjs/S6299/index.js +0 -21
  1562. package/cjs/S6299/meta.js +0 -21
  1563. package/cjs/S6299/rule.js +0 -93
  1564. package/cjs/helpers/package-jsons/all-in-parent-dirs.js +0 -31
  1565. package/cjs/helpers/package-jsons/closest.js +0 -32
  1566. package/cjs/helpers/package-jsons/dependencies.js +0 -87
  1567. package/cjs/helpers/package-jsons/index.js +0 -41
  1568. package/cjs/helpers/package-jsons/parse.js +0 -79
  1569. package/docs/aws-s3-bucket-server-encryption.md +0 -9
  1570. package/docs/certificate-transparency.md +0 -9
  1571. package/docs/cookies.md +0 -9
  1572. package/docs/dns-prefetching.md +0 -9
  1573. package/docs/encryption.md +0 -9
  1574. package/docs/no-vue-bypass-sanitization.md +0 -9
  1575. package/docs/process-argv.md +0 -9
  1576. package/docs/regular-expr.md +0 -9
  1577. package/docs/sockets.md +0 -9
  1578. package/docs/standard-input.md +0 -9
  1579. package/docs/xpath.md +0 -9
  1580. package/types/S2255/meta.d.ts +0 -2
  1581. package/types/S4784/meta.d.ts +0 -2
  1582. package/types/S4787/meta.d.ts +0 -2
  1583. package/types/S4817/meta.d.ts +0 -2
  1584. package/types/S4818/generated-meta.d.ts +0 -17
  1585. package/types/S4818/meta.d.ts +0 -2
  1586. package/types/S4823/generated-meta.d.ts +0 -17
  1587. package/types/S4823/meta.d.ts +0 -2
  1588. package/types/S4829/generated-meta.d.ts +0 -17
  1589. package/types/S4829/meta.d.ts +0 -2
  1590. package/types/S5742/generated-meta.d.ts +0 -17
  1591. package/types/S5742/meta.d.ts +0 -3
  1592. package/types/S5743/generated-meta.d.ts +0 -17
  1593. package/types/S6245/generated-meta.d.ts +0 -17
  1594. package/types/S6245/meta.d.ts +0 -3
  1595. package/types/S6299/generated-meta.d.ts +0 -17
  1596. package/types/S6299/meta.d.ts +0 -2
  1597. package/types/helpers/package-jsons/all-in-parent-dirs.d.ts +0 -10
  1598. package/types/helpers/package-jsons/closest.d.ts +0 -2
  1599. package/types/helpers/package-jsons/dependencies.d.ts +0 -32
  1600. package/types/helpers/package-jsons/index.d.ts +0 -8
  1601. package/types/helpers/package-jsons/parse.d.ts +0 -13
  1602. /package/types/{S2255 → S1244}/index.d.ts +0 -0
  1603. /package/types/{S2255 → S1244}/rule.d.ts +0 -0
  1604. /package/types/{S4784 → S5845}/index.d.ts +0 -0
  1605. /package/types/{S4784 → S5845}/rule.d.ts +0 -0
  1606. /package/types/{S4787 → S5906}/index.d.ts +0 -0
  1607. /package/types/{S4787 → S5906}/rule.d.ts +0 -0
  1608. /package/types/{S4817 → S5914}/index.d.ts +0 -0
  1609. /package/types/{S4817 → S5914}/rule.d.ts +0 -0
  1610. /package/types/{S4818 → S8479}/index.d.ts +0 -0
  1611. /package/types/{S4818 → S8479}/rule.d.ts +0 -0
  1612. /package/types/{S4823 → S8754}/index.d.ts +0 -0
  1613. /package/types/{S4823 → S8754}/rule.d.ts +0 -0
  1614. /package/types/{S4829 → S8780}/index.d.ts +0 -0
  1615. /package/types/{S4829 → S8780}/rule.d.ts +0 -0
  1616. /package/types/{S5742 → S8781}/index.d.ts +0 -0
  1617. /package/types/{S5742 → S8781}/rule.d.ts +0 -0
  1618. /package/types/{S5743 → S8782}/index.d.ts +0 -0
  1619. /package/types/{S5743 → S8782}/rule.d.ts +0 -0
  1620. /package/types/{S6245 → S8783}/index.d.ts +0 -0
  1621. /package/types/{S6245 → S8783}/rule.d.ts +0 -0
  1622. /package/types/{S6299 → S8786}/index.d.ts +0 -0
  1623. /package/types/{S6299 → S8786}/rule.d.ts +0 -0
package/cjs/S5759/rule.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
31
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
34
+ exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
35
35
  __exportStar(require("./meta.js"), exports);
36
36
  exports.meta = {
37
37
  type: 'problem',
@@ -49,3 +49,4 @@ exports.sonarKey = 'S5842';
49
49
  exports.scope = 'Main';
50
50
  exports.languages = ['js', 'ts'];
51
51
  exports.requiredDependency = [];
52
+ exports.skipOnGeneratedSource = false;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rule = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5842/meta.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.eslintId = exports.implementation = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5842/rule.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
31
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
34
+ exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
35
35
  __exportStar(require("./meta.js"), exports);
36
36
  exports.meta = {
37
37
  type: 'suggestion',
@@ -53,3 +53,4 @@ exports.sonarKey = 'S5843';
53
53
  exports.scope = 'Main';
54
54
  exports.languages = ['js', 'ts'];
55
55
  exports.requiredDependency = [];
56
+ exports.skipOnGeneratedSource = true;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rule = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5843/meta.js CHANGED
@@ -17,11 +17,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.schema = exports.hasSecondaries = exports.eslintId = exports.implementation = void 0;
18
18
  /*
19
19
  * SonarQube JavaScript Plugin
20
- * Copyright (C) 2011-2025 SonarSource Sàrl
20
+ * Copyright (C) SonarSource Sàrl
21
21
  * mailto:info AT sonarsource DOT com
22
22
  *
23
- * This program is free software; you can redistribute it and/or
24
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
23
+ * You can redistribute and/or modify this program under the terms of
24
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
25
25
  *
26
26
  * This program is distributed in the hope that it will be useful,
27
27
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5843/rule.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /*
3
+ * SonarQube JavaScript Plugin
4
+ * Copyright (C) SonarSource Sàrl
5
+ * mailto:info AT sonarsource DOT com
6
+ *
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ * See the Sonar Source-Available License for more details.
14
+ *
15
+ * You should have received a copy of the Sonar Source-Available License
16
+ * along with this program; if not, see https://sonarsource.com/license/ssal/
17
+ */
18
+ // https://sonarsource.github.io/rspec/#/rspec/S5845/javascript
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
35
+ __exportStar(require("./meta.js"), exports);
36
+ exports.meta = {
37
+ type: 'problem',
38
+ docs: {
39
+ description: 'Assertions comparing incompatible types should not be made',
40
+ recommended: true,
41
+ url: 'https://sonarsource.github.io/rspec/#/rspec/S5845/javascript',
42
+ requiresTypeChecking: true,
43
+ },
44
+ fixable: undefined,
45
+ deprecated: false,
46
+ defaultOptions: [],
47
+ };
48
+ exports.sonarKey = 'S5845';
49
+ exports.scope = 'Tests';
50
+ exports.languages = ['js', 'ts'];
51
+ exports.requiredDependency = [];
52
+ exports.skipOnGeneratedSource = true;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rule = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.eslintId = exports.implementation = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,4 +18,4 @@ exports.eslintId = exports.implementation = void 0;
18
18
  * along with this program; if not, see https://sonarsource.com/license/ssal/
19
19
  */
20
20
  exports.implementation = 'original';
21
- exports.eslintId = 'cookies';
21
+ exports.eslintId = 'no-incompatible-assertion-types';
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ /*
3
+ * SonarQube JavaScript Plugin
4
+ * Copyright (C) SonarSource Sàrl
5
+ * mailto:info AT sonarsource DOT com
6
+ *
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ * See the Sonar Source-Available License for more details.
14
+ *
15
+ * You should have received a copy of the Sonar Source-Available License
16
+ * along with this program; if not, see https://sonarsource.com/license/ssal/
17
+ */
18
+ // https://sonarsource.github.io/rspec/#/rspec/S5845/javascript
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
52
+ var __importDefault = (this && this.__importDefault) || function (mod) {
53
+ return (mod && mod.__esModule) ? mod : { "default": mod };
54
+ };
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.rule = void 0;
57
+ const typescript_1 = __importDefault(require("typescript"));
58
+ const ast_js_1 = require("../helpers/ast.js");
59
+ const assertions_js_1 = require("../helpers/assertions.js");
60
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
61
+ const parser_services_js_1 = require("../helpers/parser-services.js");
62
+ const type_js_1 = require("../helpers/type.js");
63
+ const meta = __importStar(require("./generated-meta.js"));
64
+ const messages = {
65
+ incompatibleStaticTypes: 'Review this equality assertion: the compared expressions have incompatible static types ("{{actual}}" and "{{expected}}").',
66
+ };
67
+ exports.rule = {
68
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
69
+ /*
70
+ * High-level idea:
71
+ * - only run when the parser provides type information;
72
+ * - only analyse strict and deep equality assertions;
73
+ * - reduce both assertion operands to broad primitive families instead of comparing exact
74
+ * TypeScript types, because the rule is meant to highlight incompatible static typings on
75
+ * equality checks rather than to model all runtime equality behavior;
76
+ * - stay conservative whenever the type is imprecise (`any`, `unknown`, type parameters, etc.),
77
+ * or when a mutable identifier may have been reassigned to a different family.
78
+ */
79
+ create(context) {
80
+ const services = context.sourceCode.parserServices;
81
+ if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
82
+ return {};
83
+ }
84
+ const checker = services.program.getTypeChecker();
85
+ const monkeyPatchedReceivers = new Set();
86
+ // Expressions that are not rooted in a mutable local binding can rely directly on the
87
+ // expression type at the assertion site:
88
+ // expect(getCount()).toBe('1');
89
+ // expect(Number(title)).toBe('1');
90
+ //
91
+ // Bare identifiers and member expressions rooted in an identifier need one extra guard.
92
+ // `getTypeAtLocation(value)` can stay narrow even after an imprecise write, so using the
93
+ // current type alone would introduce false positives:
94
+ // declare function readAny(): any;
95
+ // let value: number = 1;
96
+ // value = readAny();
97
+ // expect(value).toBe('1'); // keep silent: runtime value may be string
98
+ // let user: { id: number } = { id: 1 };
99
+ // user = readAny();
100
+ // expect(user.id).toBe('1'); // keep silent for the same reason
101
+ //
102
+ // We therefore trust the current type only when the root identifier of the expression has only
103
+ // been written with values that are themselves classifiable to primitive families. That still
104
+ // lets TypeScript's flow narrowing do the useful work for precise writes:
105
+ // let value: number | string;
106
+ // if (Math.random() > 0.5) value = 'ready'; else value = 1;
107
+ // if (typeof value === 'string') expect(value).toBe(true); // report
108
+ //
109
+ // This is intentionally coarser than full reaching-definitions. If any write is `any`,
110
+ // `unknown`, a type parameter, indexed access, etc., we bail out conservatively.
111
+ function checkAssertion(node) {
112
+ const assertion = (0, assertions_js_1.extractTestAssertion)(context, node);
113
+ if (!isRelevantAssertion(assertion)) {
114
+ return;
115
+ }
116
+ const actualType = checker.getBaseTypeOfLiteralType((0, type_js_1.getTypeFromTreeNode)(assertion.actual, services));
117
+ const expectedType = checker.getBaseTypeOfLiteralType((0, type_js_1.getTypeFromTreeNode)(assertion.expected, services));
118
+ if (!hasStablePrimitiveType(assertion.actual, actualType) ||
119
+ !hasStablePrimitiveType(assertion.expected, expectedType)) {
120
+ return;
121
+ }
122
+ const incompatibility = getIncompatibility(actualType, expectedType, checker);
123
+ if (incompatibility) {
124
+ context.report({
125
+ node: assertion.reportNode,
126
+ messageId: 'incompatibleStaticTypes',
127
+ data: incompatibility,
128
+ });
129
+ }
130
+ }
131
+ function hasStablePrimitiveType(node, nodeType) {
132
+ const monkeyPatchedReceiver = getMonkeyPatchedReceiver(node);
133
+ if (monkeyPatchedReceiver) {
134
+ return false;
135
+ }
136
+ const allowedCategories = getPrimitiveCategories(nodeType);
137
+ if (!allowedCategories) {
138
+ return false;
139
+ }
140
+ const rootIdentifier = getRootIdentifier(node);
141
+ if (!rootIdentifier) {
142
+ return true;
143
+ }
144
+ const variable = (0, ast_js_1.getVariableFromName)(context, rootIdentifier.name, node);
145
+ if (!variable) {
146
+ return true;
147
+ }
148
+ return variable.references
149
+ .filter(ref => ref.isWrite())
150
+ .every(ref => isPreciselyTypedWrite(ref.writeExpr, checker, services));
151
+ }
152
+ function getMonkeyPatchedReceiver(node) {
153
+ if (node.type !== 'CallExpression' || node.callee.type !== 'MemberExpression') {
154
+ return null;
155
+ }
156
+ const rootIdentifier = getRootIdentifier(node.callee.object);
157
+ if (!rootIdentifier) {
158
+ return null;
159
+ }
160
+ const variable = (0, ast_js_1.getVariableFromName)(context, rootIdentifier.name, node);
161
+ return variable && monkeyPatchedReceivers.has(variable) ? variable : null;
162
+ }
163
+ function collectMonkeyPatchedReceiver(node) {
164
+ if (node.type !== 'AssignmentExpression' ||
165
+ node.operator !== '=' ||
166
+ node.left.type !== 'MemberExpression' ||
167
+ !isFunctionLikeExpression(node.right)) {
168
+ return;
169
+ }
170
+ const rootIdentifier = getRootIdentifier(node.left.object);
171
+ if (!rootIdentifier) {
172
+ return;
173
+ }
174
+ const variable = (0, ast_js_1.getVariableFromName)(context, rootIdentifier.name, node);
175
+ if (variable) {
176
+ monkeyPatchedReceivers.add(variable);
177
+ }
178
+ }
179
+ return {
180
+ AssignmentExpression(node) {
181
+ collectMonkeyPatchedReceiver(node);
182
+ },
183
+ CallExpression(node) {
184
+ checkAssertion(node);
185
+ },
186
+ };
187
+ },
188
+ };
189
+ // Strict and deep equality assertions are in scope. Loose equality depends on coercion, while
190
+ // deep equality is relevant here because the rule only reasons about primitive type families.
191
+ function isRelevantAssertion(assertion) {
192
+ return (assertion?.kind === 'comparison' &&
193
+ (assertion.comparison === 'strict' || assertion.comparison === 'deep'));
194
+ }
195
+ // The rule reports only when the two operands have no plausible primitive-family overlap.
196
+ // If they share a family, or either side falls into a conservative family, we skip reporting.
197
+ function getIncompatibility(actualType, expectedType, checker) {
198
+ const actualCategories = getPrimitiveCategories(actualType);
199
+ const expectedCategories = getPrimitiveCategories(expectedType);
200
+ if (!actualCategories || !expectedCategories) {
201
+ return null;
202
+ }
203
+ for (const actualCategory of actualCategories) {
204
+ for (const expectedCategory of expectedCategories) {
205
+ if (actualCategory === expectedCategory ||
206
+ isConservativeCategory(actualCategory) ||
207
+ isConservativeCategory(expectedCategory)) {
208
+ return null;
209
+ }
210
+ }
211
+ }
212
+ return {
213
+ actual: checker.typeToString(actualType),
214
+ expected: checker.typeToString(expectedType),
215
+ };
216
+ }
217
+ // Objects, null, and undefined are kept conservative because structural typing and JS runtime
218
+ // behavior make "always incompatible" claims too risky for this rule.
219
+ function isConservativeCategory(category) {
220
+ return category === 'object' || category === 'null' || category === 'undefined';
221
+ }
222
+ // Normalise scalar and union types to a flat list so the rest of the logic can treat both cases
223
+ // uniformly.
224
+ function getUnionMembers(type) {
225
+ return type.isUnion() ? type.types : [type];
226
+ }
227
+ // Collapse a TypeScript type into primitive families. If any union member is too imprecise to
228
+ // classify, return null so callers can stay conservative.
229
+ function getPrimitiveCategories(type) {
230
+ const categories = getUnionMembers(type).map(getPrimitiveCategory);
231
+ return categories.every(isPrimitiveCategory) ? categories : null;
232
+ }
233
+ // Translate the detailed TypeScript type system into the coarse families this rule reasons about.
234
+ // Anything outside those obvious buckets is treated as indeterminate.
235
+ function getPrimitiveCategory(type) {
236
+ const indeterminateFlags = typescript_1.default.TypeFlags.Any |
237
+ typescript_1.default.TypeFlags.Unknown |
238
+ typescript_1.default.TypeFlags.TypeParameter |
239
+ typescript_1.default.TypeFlags.IndexedAccess;
240
+ if ((type.flags & indeterminateFlags) !== 0) {
241
+ return null;
242
+ }
243
+ if ((type.flags & typescript_1.default.TypeFlags.StringLike) !== 0) {
244
+ return 'string';
245
+ }
246
+ if ((type.flags & typescript_1.default.TypeFlags.NumberLike) !== 0) {
247
+ return 'number';
248
+ }
249
+ if ((type.flags & typescript_1.default.TypeFlags.BooleanLike) !== 0) {
250
+ return 'boolean';
251
+ }
252
+ if ((type.flags & typescript_1.default.TypeFlags.BigIntLike) !== 0) {
253
+ return 'bigint';
254
+ }
255
+ if ((type.flags & typescript_1.default.TypeFlags.ESSymbolLike) !== 0) {
256
+ return 'symbol';
257
+ }
258
+ if ((type.flags & typescript_1.default.TypeFlags.Null) !== 0) {
259
+ return 'null';
260
+ }
261
+ if ((type.flags & (typescript_1.default.TypeFlags.Undefined | typescript_1.default.TypeFlags.Void)) !== 0) {
262
+ return 'undefined';
263
+ }
264
+ if ((type.flags & typescript_1.default.TypeFlags.Object) !== 0) {
265
+ return 'object';
266
+ }
267
+ return null;
268
+ }
269
+ // Narrow the mapped category list back to `PrimitiveCategory[]` once null has been ruled out.
270
+ function isPrimitiveCategory(category) {
271
+ return category !== null;
272
+ }
273
+ // A write is trustworthy when TypeScript can still classify the assigned value into primitive
274
+ // families at the write site. If not, the identifier's current type is not reliable enough for
275
+ // this rule:
276
+ // value = readAny(); // bail out
277
+ // value = values[index]; // bail out when the indexed access is imprecise
278
+ //
279
+ // value = 'ready'; // precise
280
+ // value = 1; // precise
281
+ function isPreciselyTypedWrite(writeExpr, checker, services) {
282
+ if (!writeExpr) {
283
+ return false;
284
+ }
285
+ return (getPrimitiveCategories(checker.getBaseTypeOfLiteralType((0, type_js_1.getTypeFromTreeNode)(writeExpr, services))) !== null);
286
+ }
287
+ function getRootIdentifier(node) {
288
+ let current = node;
289
+ while (current.type === 'ChainExpression' || current.type === 'MemberExpression') {
290
+ current = current.type === 'ChainExpression' ? current.expression : current.object;
291
+ }
292
+ return current.type === 'Identifier' ? current : null;
293
+ }
294
+ function isFunctionLikeExpression(node) {
295
+ return node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression';
296
+ }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +31,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
31
31
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
34
+ exports.skipOnGeneratedSource = exports.requiredDependency = exports.languages = exports.scope = exports.sonarKey = exports.meta = void 0;
35
35
  __exportStar(require("./meta.js"), exports);
36
36
  exports.meta = {
37
37
  type: 'problem',
@@ -49,3 +49,4 @@ exports.sonarKey = 'S5850';
49
49
  exports.scope = 'Main';
50
50
  exports.languages = ['js', 'ts'];
51
51
  exports.requiredDependency = [];
52
+ exports.skipOnGeneratedSource = false;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rule = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5850/meta.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.eslintId = exports.implementation = void 0;
4
4
  /*
5
5
  * SonarQube JavaScript Plugin
6
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
7
7
  * mailto:info AT sonarsource DOT com
8
8
  *
9
- * This program is free software; you can redistribute it and/or
10
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
9
+ * You can redistribute and/or modify this program under the terms of
10
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
11
11
  *
12
12
  * This program is distributed in the hope that it will be useful,
13
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
package/cjs/S5850/rule.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /*
3
3
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
4
+ * Copyright (C) SonarSource Sàrl
5
5
  * mailto:info AT sonarsource DOT com
6
6
  *
7
- * This program is free software; you can redistribute it and/or
8
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
7
+ * You can redistribute and/or modify this program under the terms of
8
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
9
9
  *
10
10
  * This program is distributed in the hope that it will be useful,
11
11
  * but WITHOUT ANY WARRANTY; without even the implied warranty of