eslint-plugin-sonarjs 4.0.1 → 4.0.3

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 (1214) hide show
  1. package/README.md +23 -22
  2. package/cjs/S100/config.js +3 -3
  3. package/cjs/S100/generated-meta.js +3 -3
  4. package/cjs/S100/index.js +3 -3
  5. package/cjs/S100/meta.js +3 -3
  6. package/cjs/S100/rule.js +10 -8
  7. package/cjs/S101/config.js +4 -4
  8. package/cjs/S101/generated-meta.js +4 -4
  9. package/cjs/S101/index.js +3 -3
  10. package/cjs/S101/meta.js +3 -3
  11. package/cjs/S101/rule.js +6 -6
  12. package/cjs/S104/config.js +3 -3
  13. package/cjs/S104/generated-meta.js +3 -3
  14. package/cjs/S104/index.js +3 -3
  15. package/cjs/S104/meta.js +3 -3
  16. package/cjs/S104/rule.js +5 -5
  17. package/cjs/S105/generated-meta.js +3 -3
  18. package/cjs/S105/index.js +3 -3
  19. package/cjs/S105/meta.js +3 -3
  20. package/cjs/S105/rule.js +5 -5
  21. package/cjs/S1066/generated-meta.js +3 -3
  22. package/cjs/S1066/index.js +3 -3
  23. package/cjs/S1066/meta.js +3 -3
  24. package/cjs/S1066/rule.js +8 -7
  25. package/cjs/S1067/config.js +3 -3
  26. package/cjs/S1067/generated-meta.js +3 -3
  27. package/cjs/S1067/index.js +3 -3
  28. package/cjs/S1067/meta.js +3 -3
  29. package/cjs/S1067/rule.js +11 -9
  30. package/cjs/S1110/generated-meta.js +3 -3
  31. package/cjs/S1110/index.js +3 -3
  32. package/cjs/S1110/meta.js +3 -3
  33. package/cjs/S1110/rule.js +10 -8
  34. package/cjs/S1119/generated-meta.js +3 -3
  35. package/cjs/S1119/index.js +3 -3
  36. package/cjs/S1119/meta.js +3 -3
  37. package/cjs/S1119/rule.js +5 -5
  38. package/cjs/S1121/generated-meta.js +3 -3
  39. package/cjs/S1121/index.js +3 -3
  40. package/cjs/S1121/meta.js +3 -3
  41. package/cjs/S1121/rule.js +7 -6
  42. package/cjs/S1125/generated-meta.js +3 -3
  43. package/cjs/S1125/index.js +3 -3
  44. package/cjs/S1125/meta.js +3 -3
  45. package/cjs/S1125/rule.js +12 -11
  46. package/cjs/S1126/generated-meta.js +3 -3
  47. package/cjs/S1126/index.js +3 -3
  48. package/cjs/S1126/meta.js +3 -3
  49. package/cjs/S1126/rule.js +31 -12
  50. package/cjs/S1128/generated-meta.js +5 -4
  51. package/cjs/S1128/index.js +3 -3
  52. package/cjs/S1128/meta.js +3 -3
  53. package/cjs/S1128/rule.js +11 -8
  54. package/cjs/S1134/generated-meta.js +3 -3
  55. package/cjs/S1134/index.js +3 -3
  56. package/cjs/S1134/meta.js +3 -3
  57. package/cjs/S1134/rule.js +5 -5
  58. package/cjs/S1135/generated-meta.js +3 -3
  59. package/cjs/S1135/index.js +3 -3
  60. package/cjs/S1135/meta.js +3 -3
  61. package/cjs/S1135/rule.js +5 -5
  62. package/cjs/S1154/generated-meta.js +3 -3
  63. package/cjs/S1154/index.js +3 -3
  64. package/cjs/S1154/meta.js +3 -3
  65. package/cjs/S1154/rule.js +9 -7
  66. package/cjs/S117/config.js +3 -3
  67. package/cjs/S117/generated-meta.js +3 -3
  68. package/cjs/S117/index.js +3 -3
  69. package/cjs/S117/meta.js +3 -3
  70. package/cjs/S117/rule.js +9 -8
  71. package/cjs/S1172/generated-meta.js +3 -3
  72. package/cjs/S1172/index.js +3 -3
  73. package/cjs/S1172/meta.js +3 -3
  74. package/cjs/S1172/rule.js +5 -5
  75. package/cjs/S1192/config.js +3 -3
  76. package/cjs/S1192/generated-meta.js +3 -3
  77. package/cjs/S1192/index.js +3 -3
  78. package/cjs/S1192/meta.js +3 -3
  79. package/cjs/S1192/rule.js +10 -9
  80. package/cjs/S1219/generated-meta.js +3 -3
  81. package/cjs/S1219/index.js +3 -3
  82. package/cjs/S1219/meta.js +3 -3
  83. package/cjs/S1219/rule.js +7 -6
  84. package/cjs/S1226/generated-meta.js +3 -3
  85. package/cjs/S1226/index.js +3 -3
  86. package/cjs/S1226/meta.js +3 -3
  87. package/cjs/S1226/rule.js +9 -7
  88. package/cjs/S124/config.js +3 -3
  89. package/cjs/S124/generated-meta.js +3 -3
  90. package/cjs/S124/index.js +3 -3
  91. package/cjs/S124/meta.js +3 -3
  92. package/cjs/S124/rule.js +5 -5
  93. package/cjs/S125/generated-meta.js +3 -3
  94. package/cjs/S125/index.js +3 -3
  95. package/cjs/S125/meta.js +3 -3
  96. package/cjs/S125/rule.js +76 -27
  97. package/cjs/S126/generated-meta.js +3 -3
  98. package/cjs/S126/index.js +3 -3
  99. package/cjs/S126/meta.js +3 -3
  100. package/cjs/S126/rule.js +5 -5
  101. package/cjs/S1264/generated-meta.js +3 -3
  102. package/cjs/S1264/index.js +3 -3
  103. package/cjs/S1264/meta.js +3 -3
  104. package/cjs/S1264/rule.js +5 -5
  105. package/cjs/S128/generated-meta.js +3 -3
  106. package/cjs/S128/index.js +3 -3
  107. package/cjs/S128/meta.js +3 -3
  108. package/cjs/S128/rule.js +7 -6
  109. package/cjs/S1291/generated-meta.js +3 -3
  110. package/cjs/S1291/index.js +3 -3
  111. package/cjs/S1291/meta.js +3 -3
  112. package/cjs/S1291/rule.js +5 -5
  113. package/cjs/S1301/generated-meta.js +3 -3
  114. package/cjs/S1301/index.js +3 -3
  115. package/cjs/S1301/meta.js +3 -3
  116. package/cjs/S1301/rule.js +143 -5
  117. package/cjs/S1313/generated-meta.js +5 -5
  118. package/cjs/S1313/index.js +3 -3
  119. package/cjs/S1313/meta.js +3 -3
  120. package/cjs/S1313/rule.js +5 -5
  121. package/cjs/S134/config.js +4 -4
  122. package/cjs/S134/generated-meta.js +3 -3
  123. package/cjs/S134/index.js +3 -3
  124. package/cjs/S134/meta.js +3 -3
  125. package/cjs/S134/rule.js +10 -8
  126. package/cjs/S135/generated-meta.js +3 -3
  127. package/cjs/S135/index.js +3 -3
  128. package/cjs/S135/meta.js +3 -3
  129. package/cjs/S135/rule.js +8 -7
  130. package/cjs/S138/config.js +3 -3
  131. package/cjs/S138/generated-meta.js +3 -3
  132. package/cjs/S138/index.js +3 -3
  133. package/cjs/S138/meta.js +3 -3
  134. package/cjs/S138/rule.js +12 -9
  135. package/cjs/S1439/generated-meta.js +3 -3
  136. package/cjs/S1439/index.js +3 -3
  137. package/cjs/S1439/meta.js +3 -3
  138. package/cjs/S1439/rule.js +5 -5
  139. package/cjs/S1444/generated-meta.js +3 -3
  140. package/cjs/S1444/index.js +3 -3
  141. package/cjs/S1444/meta.js +3 -3
  142. package/cjs/S1444/rule.js +5 -5
  143. package/cjs/S1451/config.js +3 -3
  144. package/cjs/S1451/generated-meta.js +3 -3
  145. package/cjs/S1451/index.js +3 -3
  146. package/cjs/S1451/meta.js +3 -3
  147. package/cjs/S1451/rule.js +5 -5
  148. package/cjs/S1472/generated-meta.js +3 -3
  149. package/cjs/S1472/index.js +3 -3
  150. package/cjs/S1472/meta.js +3 -3
  151. package/cjs/S1472/rule.js +5 -5
  152. package/cjs/S1479/config.js +3 -3
  153. package/cjs/S1479/generated-meta.js +3 -3
  154. package/cjs/S1479/index.js +3 -3
  155. package/cjs/S1479/meta.js +3 -3
  156. package/cjs/S1479/rule.js +5 -5
  157. package/cjs/S1481/generated-meta.js +3 -3
  158. package/cjs/S1481/index.js +3 -3
  159. package/cjs/S1481/meta.js +3 -3
  160. package/cjs/S1481/rule.js +5 -5
  161. package/cjs/S1488/generated-meta.js +3 -3
  162. package/cjs/S1488/index.js +3 -3
  163. package/cjs/S1488/meta.js +3 -3
  164. package/cjs/S1488/rule.js +14 -10
  165. package/cjs/S1515/generated-meta.js +3 -3
  166. package/cjs/S1515/index.js +3 -3
  167. package/cjs/S1515/meta.js +3 -3
  168. package/cjs/S1515/rule.js +13 -11
  169. package/cjs/S1523/generated-meta.js +3 -3
  170. package/cjs/S1523/index.js +3 -3
  171. package/cjs/S1523/meta.js +3 -3
  172. package/cjs/S1523/rule.js +8 -8
  173. package/cjs/S1526/generated-meta.js +3 -3
  174. package/cjs/S1526/index.js +3 -3
  175. package/cjs/S1526/meta.js +3 -3
  176. package/cjs/S1526/rule.js +8 -7
  177. package/cjs/S1527/generated-meta.js +3 -3
  178. package/cjs/S1527/index.js +3 -3
  179. package/cjs/S1527/meta.js +3 -3
  180. package/cjs/S1527/rule.js +5 -5
  181. package/cjs/S1528/generated-meta.js +3 -3
  182. package/cjs/S1528/index.js +3 -3
  183. package/cjs/S1528/meta.js +3 -3
  184. package/cjs/S1528/rule.js +2 -2
  185. package/cjs/S1529/generated-meta.js +3 -3
  186. package/cjs/S1529/index.js +3 -3
  187. package/cjs/S1529/meta.js +3 -3
  188. package/cjs/S1529/rule.js +7 -6
  189. package/cjs/S1530/generated-meta.js +3 -3
  190. package/cjs/S1530/index.js +3 -3
  191. package/cjs/S1530/meta.js +3 -3
  192. package/cjs/S1530/rule.js +8 -6
  193. package/cjs/S1533/generated-meta.js +3 -3
  194. package/cjs/S1533/index.js +3 -3
  195. package/cjs/S1533/meta.js +3 -3
  196. package/cjs/S1533/rule.js +5 -5
  197. package/cjs/S1535/generated-meta.js +3 -3
  198. package/cjs/S1535/index.js +3 -3
  199. package/cjs/S1535/meta.js +3 -3
  200. package/cjs/S1535/rule.js +5 -5
  201. package/cjs/S1541/config.js +3 -3
  202. package/cjs/S1541/generated-meta.js +3 -3
  203. package/cjs/S1541/index.js +3 -3
  204. package/cjs/S1541/meta.js +3 -3
  205. package/cjs/S1541/rule.js +13 -10
  206. package/cjs/S1607/generated-meta.js +3 -3
  207. package/cjs/S1607/index.js +3 -3
  208. package/cjs/S1607/meta.js +3 -3
  209. package/cjs/S1607/rule.js +25 -23
  210. package/cjs/S1764/generated-meta.js +3 -3
  211. package/cjs/S1764/index.js +3 -3
  212. package/cjs/S1764/meta.js +3 -3
  213. package/cjs/S1764/rule.js +13 -10
  214. package/cjs/S1821/generated-meta.js +3 -3
  215. package/cjs/S1821/index.js +3 -3
  216. package/cjs/S1821/meta.js +3 -3
  217. package/cjs/S1821/rule.js +5 -5
  218. package/cjs/S1848/generated-meta.js +3 -3
  219. package/cjs/S1848/index.js +3 -3
  220. package/cjs/S1848/meta.js +3 -3
  221. package/cjs/S1848/rule.js +13 -10
  222. package/cjs/S1854/generated-meta.js +3 -3
  223. package/cjs/S1854/index.js +3 -3
  224. package/cjs/S1854/meta.js +3 -3
  225. package/cjs/S1854/rule.js +21 -17
  226. package/cjs/S1862/generated-meta.js +3 -3
  227. package/cjs/S1862/index.js +3 -3
  228. package/cjs/S1862/meta.js +3 -3
  229. package/cjs/S1862/rule.js +13 -11
  230. package/cjs/S1871/generated-meta.js +3 -3
  231. package/cjs/S1871/index.js +3 -3
  232. package/cjs/S1871/meta.js +3 -3
  233. package/cjs/S1871/rule.js +24 -19
  234. package/cjs/S1874/generated-meta.js +3 -3
  235. package/cjs/S1874/index.js +3 -3
  236. package/cjs/S1874/meta.js +3 -3
  237. package/cjs/S1874/rule.js +7 -6
  238. package/cjs/S1940/generated-meta.js +3 -3
  239. package/cjs/S1940/index.js +3 -3
  240. package/cjs/S1940/meta.js +3 -3
  241. package/cjs/S1940/rule.js +5 -5
  242. package/cjs/S1994/generated-meta.js +3 -3
  243. package/cjs/S1994/index.js +3 -3
  244. package/cjs/S1994/meta.js +3 -3
  245. package/cjs/S1994/rule.js +13 -10
  246. package/cjs/S2004/config.js +3 -3
  247. package/cjs/S2004/generated-meta.js +3 -3
  248. package/cjs/S2004/index.js +3 -3
  249. package/cjs/S2004/meta.js +3 -3
  250. package/cjs/S2004/rule.js +12 -10
  251. package/cjs/S2068/config.js +3 -3
  252. package/cjs/S2068/generated-meta.js +3 -3
  253. package/cjs/S2068/index.js +3 -3
  254. package/cjs/S2068/meta.js +3 -3
  255. package/cjs/S2068/rule.js +102 -15
  256. package/cjs/S2077/generated-meta.js +3 -3
  257. package/cjs/S2077/index.js +3 -3
  258. package/cjs/S2077/meta.js +3 -3
  259. package/cjs/S2077/rule.js +45 -9
  260. package/cjs/S2092/generated-meta.js +4 -4
  261. package/cjs/S2092/index.js +3 -3
  262. package/cjs/S2092/meta.js +3 -3
  263. package/cjs/S2092/rule.js +5 -5
  264. package/cjs/S2123/generated-meta.js +3 -3
  265. package/cjs/S2123/index.js +3 -3
  266. package/cjs/S2123/meta.js +3 -3
  267. package/cjs/S2123/rule.js +5 -5
  268. package/cjs/S2137/generated-meta.js +3 -3
  269. package/cjs/S2137/index.js +3 -3
  270. package/cjs/S2137/meta.js +3 -3
  271. package/cjs/S2137/rule.js +5 -5
  272. package/cjs/S2138/generated-meta.js +3 -3
  273. package/cjs/S2138/index.js +3 -3
  274. package/cjs/S2138/meta.js +3 -3
  275. package/cjs/S2138/rule.js +7 -6
  276. package/cjs/S2187/generated-meta.js +3 -3
  277. package/cjs/S2187/index.js +3 -3
  278. package/cjs/S2187/meta.js +3 -3
  279. package/cjs/S2187/rule.js +5 -5
  280. package/cjs/S2201/generated-meta.js +3 -3
  281. package/cjs/S2201/index.js +3 -3
  282. package/cjs/S2201/meta.js +3 -3
  283. package/cjs/S2201/rule.js +11 -8
  284. package/cjs/S2208/generated-meta.js +5 -4
  285. package/cjs/S2208/index.js +3 -3
  286. package/cjs/S2208/meta.js +3 -3
  287. package/cjs/S2208/rule.js +5 -5
  288. package/cjs/S2234/generated-meta.js +3 -3
  289. package/cjs/S2234/index.js +3 -3
  290. package/cjs/S2234/meta.js +3 -3
  291. package/cjs/S2234/rule.js +163 -16
  292. package/cjs/S2245/generated-meta.js +3 -3
  293. package/cjs/S2245/index.js +3 -3
  294. package/cjs/S2245/meta.js +3 -3
  295. package/cjs/S2245/rule.js +7 -6
  296. package/cjs/S2251/generated-meta.js +3 -3
  297. package/cjs/S2251/index.js +3 -3
  298. package/cjs/S2251/meta.js +3 -3
  299. package/cjs/S2251/rule.js +8 -7
  300. package/cjs/S2255/generated-meta.js +3 -3
  301. package/cjs/S2255/index.js +3 -3
  302. package/cjs/S2255/meta.js +3 -3
  303. package/cjs/S2255/rule.js +9 -8
  304. package/cjs/S2259/generated-meta.js +3 -3
  305. package/cjs/S2259/index.js +3 -3
  306. package/cjs/S2259/meta.js +3 -3
  307. package/cjs/S2259/rule.js +17 -12
  308. package/cjs/S2301/generated-meta.js +3 -3
  309. package/cjs/S2301/index.js +3 -3
  310. package/cjs/S2301/meta.js +3 -3
  311. package/cjs/S2301/rule.js +24 -13
  312. package/cjs/S2310/generated-meta.js +3 -3
  313. package/cjs/S2310/index.js +3 -3
  314. package/cjs/S2310/meta.js +3 -3
  315. package/cjs/S2310/rule.js +17 -14
  316. package/cjs/S2392/generated-meta.js +3 -3
  317. package/cjs/S2392/index.js +3 -3
  318. package/cjs/S2392/meta.js +3 -3
  319. package/cjs/S2392/rule.js +51 -8
  320. package/cjs/S2424/generated-meta.js +3 -3
  321. package/cjs/S2424/index.js +3 -3
  322. package/cjs/S2424/meta.js +3 -3
  323. package/cjs/S2424/rule.js +5 -5
  324. package/cjs/S2428/generated-meta.js +3 -3
  325. package/cjs/S2428/index.js +3 -3
  326. package/cjs/S2428/meta.js +3 -3
  327. package/cjs/S2428/rule.js +11 -9
  328. package/cjs/S2486/generated-meta.js +3 -3
  329. package/cjs/S2486/index.js +3 -3
  330. package/cjs/S2486/meta.js +3 -3
  331. package/cjs/S2486/rule.js +7 -6
  332. package/cjs/S2589/generated-meta.js +3 -3
  333. package/cjs/S2589/index.js +3 -3
  334. package/cjs/S2589/meta.js +3 -3
  335. package/cjs/S2589/rule.js +15 -13
  336. package/cjs/S2598/generated-meta.js +3 -3
  337. package/cjs/S2598/index.js +3 -3
  338. package/cjs/S2598/meta.js +3 -3
  339. package/cjs/S2598/rule.js +20 -17
  340. package/cjs/S2612/generated-meta.js +4 -4
  341. package/cjs/S2612/index.js +3 -3
  342. package/cjs/S2612/meta.js +3 -3
  343. package/cjs/S2612/rule.js +11 -9
  344. package/cjs/S2639/generated-meta.js +3 -3
  345. package/cjs/S2639/index.js +3 -3
  346. package/cjs/S2639/meta.js +3 -3
  347. package/cjs/S2639/rule.js +5 -5
  348. package/cjs/S2681/generated-meta.js +3 -3
  349. package/cjs/S2681/index.js +3 -3
  350. package/cjs/S2681/meta.js +3 -3
  351. package/cjs/S2681/rule.js +5 -5
  352. package/cjs/S2692/generated-meta.js +3 -3
  353. package/cjs/S2692/index.js +3 -3
  354. package/cjs/S2692/meta.js +3 -3
  355. package/cjs/S2692/rule.js +9 -7
  356. package/cjs/S2699/generated-meta.js +3 -3
  357. package/cjs/S2699/index.js +3 -3
  358. package/cjs/S2699/meta.js +3 -3
  359. package/cjs/S2699/rule.js +40 -31
  360. package/cjs/S2703/generated-meta.js +3 -3
  361. package/cjs/S2703/index.js +3 -3
  362. package/cjs/S2703/meta.js +3 -3
  363. package/cjs/S2703/rule.js +5 -5
  364. package/cjs/S2737/generated-meta.js +3 -3
  365. package/cjs/S2737/index.js +3 -3
  366. package/cjs/S2737/meta.js +3 -3
  367. package/cjs/S2737/rule.js +9 -7
  368. package/cjs/S2755/generated-meta.js +3 -3
  369. package/cjs/S2755/index.js +3 -3
  370. package/cjs/S2755/meta.js +3 -3
  371. package/cjs/S2755/rule.js +12 -9
  372. package/cjs/S2757/generated-meta.js +3 -3
  373. package/cjs/S2757/index.js +3 -3
  374. package/cjs/S2757/meta.js +3 -3
  375. package/cjs/S2757/rule.js +5 -5
  376. package/cjs/S2817/generated-meta.js +3 -3
  377. package/cjs/S2817/index.js +3 -3
  378. package/cjs/S2817/meta.js +3 -3
  379. package/cjs/S2817/rule.js +13 -10
  380. package/cjs/S2819/generated-meta.js +3 -3
  381. package/cjs/S2819/index.js +3 -3
  382. package/cjs/S2819/meta.js +3 -3
  383. package/cjs/S2819/rule.js +19 -15
  384. package/cjs/S2870/generated-meta.js +3 -3
  385. package/cjs/S2870/index.js +3 -3
  386. package/cjs/S2870/meta.js +3 -3
  387. package/cjs/S2870/rule.js +11 -8
  388. package/cjs/S2871/generated-meta.js +3 -3
  389. package/cjs/S2871/index.js +3 -3
  390. package/cjs/S2871/meta.js +3 -3
  391. package/cjs/S2871/rule.js +15 -12
  392. package/cjs/S2970/generated-meta.js +3 -3
  393. package/cjs/S2970/index.js +3 -3
  394. package/cjs/S2970/meta.js +3 -3
  395. package/cjs/S2970/rule.js +12 -11
  396. package/cjs/S2990/generated-meta.js +3 -3
  397. package/cjs/S2990/index.js +3 -3
  398. package/cjs/S2990/meta.js +3 -3
  399. package/cjs/S2990/rule.js +5 -5
  400. package/cjs/S2999/config.js +3 -3
  401. package/cjs/S2999/generated-meta.js +3 -3
  402. package/cjs/S2999/index.js +3 -3
  403. package/cjs/S2999/meta.js +3 -3
  404. package/cjs/S2999/rule.js +13 -10
  405. package/cjs/S3001/generated-meta.js +3 -3
  406. package/cjs/S3001/index.js +3 -3
  407. package/cjs/S3001/meta.js +3 -3
  408. package/cjs/S3001/rule.js +5 -5
  409. package/cjs/S3003/generated-meta.js +3 -3
  410. package/cjs/S3003/index.js +3 -3
  411. package/cjs/S3003/meta.js +3 -3
  412. package/cjs/S3003/rule.js +13 -10
  413. package/cjs/S3317/generated-meta.js +5 -4
  414. package/cjs/S3317/index.js +3 -3
  415. package/cjs/S3317/meta.js +3 -3
  416. package/cjs/S3317/rule.js +7 -6
  417. package/cjs/S3330/generated-meta.js +3 -3
  418. package/cjs/S3330/index.js +3 -3
  419. package/cjs/S3330/meta.js +3 -3
  420. package/cjs/S3330/rule.js +5 -5
  421. package/cjs/S3358/generated-meta.js +3 -3
  422. package/cjs/S3358/index.js +3 -3
  423. package/cjs/S3358/meta.js +3 -3
  424. package/cjs/S3358/rule.js +5 -5
  425. package/cjs/S3402/generated-meta.js +3 -3
  426. package/cjs/S3402/index.js +3 -3
  427. package/cjs/S3402/meta.js +3 -3
  428. package/cjs/S3402/rule.js +17 -13
  429. package/cjs/S3403/generated-meta.js +3 -3
  430. package/cjs/S3403/index.js +3 -3
  431. package/cjs/S3403/meta.js +3 -3
  432. package/cjs/S3403/rule.js +13 -10
  433. package/cjs/S3415/generated-meta.js +3 -3
  434. package/cjs/S3415/index.js +3 -3
  435. package/cjs/S3415/meta.js +3 -3
  436. package/cjs/S3415/rule.js +19 -16
  437. package/cjs/S3499/generated-meta.js +5 -4
  438. package/cjs/S3499/index.js +3 -3
  439. package/cjs/S3499/meta.js +3 -3
  440. package/cjs/S3499/rule.js +8 -7
  441. package/cjs/S3500/generated-meta.js +5 -4
  442. package/cjs/S3500/index.js +3 -3
  443. package/cjs/S3500/meta.js +3 -3
  444. package/cjs/S3500/rule.js +8 -7
  445. package/cjs/S3513/generated-meta.js +5 -4
  446. package/cjs/S3513/index.js +3 -3
  447. package/cjs/S3513/meta.js +3 -3
  448. package/cjs/S3513/rule.js +8 -7
  449. package/cjs/S3514/generated-meta.js +5 -4
  450. package/cjs/S3514/index.js +3 -3
  451. package/cjs/S3514/meta.js +3 -3
  452. package/cjs/S3514/rule.js +13 -10
  453. package/cjs/S3516/generated-meta.js +3 -3
  454. package/cjs/S3516/index.js +3 -3
  455. package/cjs/S3516/meta.js +3 -3
  456. package/cjs/S3516/rule.js +112 -10
  457. package/cjs/S3524/config.js +3 -3
  458. package/cjs/S3524/generated-meta.js +5 -4
  459. package/cjs/S3524/index.js +3 -3
  460. package/cjs/S3524/meta.js +3 -3
  461. package/cjs/S3524/rule.js +5 -5
  462. package/cjs/S3525/generated-meta.js +5 -4
  463. package/cjs/S3525/index.js +3 -3
  464. package/cjs/S3525/meta.js +3 -3
  465. package/cjs/S3525/rule.js +9 -7
  466. package/cjs/S3531/generated-meta.js +5 -4
  467. package/cjs/S3531/index.js +3 -3
  468. package/cjs/S3531/meta.js +3 -3
  469. package/cjs/S3531/rule.js +8 -6
  470. package/cjs/S3533/generated-meta.js +5 -4
  471. package/cjs/S3533/index.js +3 -3
  472. package/cjs/S3533/meta.js +3 -3
  473. package/cjs/S3533/rule.js +11 -10
  474. package/cjs/S3579/generated-meta.js +3 -3
  475. package/cjs/S3579/index.js +3 -3
  476. package/cjs/S3579/meta.js +3 -3
  477. package/cjs/S3579/rule.js +9 -7
  478. package/cjs/S3616/generated-meta.js +3 -3
  479. package/cjs/S3616/index.js +3 -3
  480. package/cjs/S3616/meta.js +3 -3
  481. package/cjs/S3616/rule.js +9 -7
  482. package/cjs/S3626/generated-meta.js +3 -3
  483. package/cjs/S3626/index.js +3 -3
  484. package/cjs/S3626/meta.js +3 -3
  485. package/cjs/S3626/rule.js +7 -6
  486. package/cjs/S3686/generated-meta.js +3 -3
  487. package/cjs/S3686/index.js +3 -3
  488. package/cjs/S3686/meta.js +3 -3
  489. package/cjs/S3686/rule.js +10 -8
  490. package/cjs/S3699/generated-meta.js +3 -3
  491. package/cjs/S3699/index.js +3 -3
  492. package/cjs/S3699/meta.js +3 -3
  493. package/cjs/S3699/rule.js +8 -7
  494. package/cjs/S3735/generated-meta.js +3 -3
  495. package/cjs/S3735/index.js +3 -3
  496. package/cjs/S3735/meta.js +3 -3
  497. package/cjs/S3735/rule.js +11 -8
  498. package/cjs/S3757/generated-meta.js +3 -3
  499. package/cjs/S3757/index.js +3 -3
  500. package/cjs/S3757/meta.js +3 -3
  501. package/cjs/S3757/rule.js +11 -9
  502. package/cjs/S3758/generated-meta.js +3 -3
  503. package/cjs/S3758/index.js +3 -3
  504. package/cjs/S3758/meta.js +3 -3
  505. package/cjs/S3758/rule.js +12 -10
  506. package/cjs/S3760/generated-meta.js +3 -3
  507. package/cjs/S3760/index.js +3 -3
  508. package/cjs/S3760/meta.js +3 -3
  509. package/cjs/S3760/rule.js +27 -24
  510. package/cjs/S3776/config.js +3 -3
  511. package/cjs/S3776/generated-meta.js +3 -3
  512. package/cjs/S3776/index.js +3 -3
  513. package/cjs/S3776/meta.js +12 -4
  514. package/cjs/S3776/rule.js +39 -38
  515. package/cjs/S3782/generated-meta.js +3 -3
  516. package/cjs/S3782/index.js +3 -3
  517. package/cjs/S3782/meta.js +3 -3
  518. package/cjs/S3782/rule.js +10 -8
  519. package/cjs/S3785/generated-meta.js +3 -3
  520. package/cjs/S3785/index.js +3 -3
  521. package/cjs/S3785/meta.js +3 -3
  522. package/cjs/S3785/rule.js +12 -9
  523. package/cjs/S3796/generated-meta.js +3 -3
  524. package/cjs/S3796/index.js +3 -3
  525. package/cjs/S3796/meta.js +3 -3
  526. package/cjs/S3796/rule.js +15 -11
  527. package/cjs/S3798/generated-meta.js +3 -3
  528. package/cjs/S3798/index.js +3 -3
  529. package/cjs/S3798/meta.js +3 -3
  530. package/cjs/S3798/rule.js +4 -3
  531. package/cjs/S3800/generated-meta.js +3 -3
  532. package/cjs/S3800/index.js +3 -3
  533. package/cjs/S3800/meta.js +3 -3
  534. package/cjs/S3800/rule.js +19 -14
  535. package/cjs/S3801/generated-meta.js +3 -3
  536. package/cjs/S3801/index.js +3 -3
  537. package/cjs/S3801/meta.js +3 -3
  538. package/cjs/S3801/rule.js +18 -14
  539. package/cjs/S3827/generated-meta.js +3 -3
  540. package/cjs/S3827/index.js +3 -3
  541. package/cjs/S3827/meta.js +3 -3
  542. package/cjs/S3827/rule.js +9 -6
  543. package/cjs/S3923/generated-meta.js +3 -3
  544. package/cjs/S3923/index.js +3 -3
  545. package/cjs/S3923/meta.js +3 -3
  546. package/cjs/S3923/rule.js +12 -9
  547. package/cjs/S3972/generated-meta.js +3 -3
  548. package/cjs/S3972/index.js +3 -3
  549. package/cjs/S3972/meta.js +3 -3
  550. package/cjs/S3972/rule.js +8 -7
  551. package/cjs/S3973/generated-meta.js +3 -3
  552. package/cjs/S3973/index.js +3 -3
  553. package/cjs/S3973/meta.js +3 -3
  554. package/cjs/S3973/rule.js +10 -8
  555. package/cjs/S3981/generated-meta.js +3 -3
  556. package/cjs/S3981/index.js +3 -3
  557. package/cjs/S3981/meta.js +3 -3
  558. package/cjs/S3981/rule.js +7 -6
  559. package/cjs/S3984/generated-meta.js +3 -3
  560. package/cjs/S3984/index.js +3 -3
  561. package/cjs/S3984/meta.js +3 -3
  562. package/cjs/S3984/rule.js +7 -6
  563. package/cjs/S4030/generated-meta.js +3 -3
  564. package/cjs/S4030/index.js +3 -3
  565. package/cjs/S4030/meta.js +3 -3
  566. package/cjs/S4030/rule.js +15 -12
  567. package/cjs/S4036/generated-meta.js +3 -3
  568. package/cjs/S4036/index.js +3 -3
  569. package/cjs/S4036/meta.js +3 -3
  570. package/cjs/S4036/rule.js +11 -9
  571. package/cjs/S4043/generated-meta.js +3 -3
  572. package/cjs/S4043/index.js +3 -3
  573. package/cjs/S4043/meta.js +3 -3
  574. package/cjs/S4043/rule.js +15 -11
  575. package/cjs/S4139/generated-meta.js +3 -3
  576. package/cjs/S4139/index.js +3 -3
  577. package/cjs/S4139/meta.js +3 -3
  578. package/cjs/S4139/rule.js +10 -8
  579. package/cjs/S4143/generated-meta.js +3 -3
  580. package/cjs/S4143/index.js +3 -3
  581. package/cjs/S4143/meta.js +3 -3
  582. package/cjs/S4143/rule.js +15 -12
  583. package/cjs/S4144/config.js +3 -3
  584. package/cjs/S4144/generated-meta.js +3 -3
  585. package/cjs/S4144/index.js +3 -3
  586. package/cjs/S4144/meta.js +3 -3
  587. package/cjs/S4144/rule.js +15 -12
  588. package/cjs/S4158/generated-meta.js +3 -3
  589. package/cjs/S4158/index.js +3 -3
  590. package/cjs/S4158/meta.js +3 -3
  591. package/cjs/S4158/rule.js +15 -12
  592. package/cjs/S4165/generated-meta.js +3 -3
  593. package/cjs/S4165/index.js +3 -3
  594. package/cjs/S4165/meta.js +3 -3
  595. package/cjs/S4165/rule.js +17 -15
  596. package/cjs/S4322/generated-meta.js +3 -3
  597. package/cjs/S4322/index.js +3 -3
  598. package/cjs/S4322/meta.js +3 -3
  599. package/cjs/S4322/rule.js +11 -8
  600. package/cjs/S4323/generated-meta.js +3 -3
  601. package/cjs/S4323/index.js +3 -3
  602. package/cjs/S4323/meta.js +3 -3
  603. package/cjs/S4323/rule.js +7 -6
  604. package/cjs/S4324/generated-meta.js +3 -3
  605. package/cjs/S4324/index.js +3 -3
  606. package/cjs/S4324/meta.js +3 -3
  607. package/cjs/S4324/rule.js +10 -8
  608. package/cjs/S4328/config.js +3 -3
  609. package/cjs/S4328/generated-meta.js +3 -3
  610. package/cjs/S4328/index.js +3 -3
  611. package/cjs/S4328/meta.js +3 -3
  612. package/cjs/S4328/rule.js +5 -5
  613. package/cjs/S4335/generated-meta.js +3 -3
  614. package/cjs/S4335/index.js +3 -3
  615. package/cjs/S4335/meta.js +3 -3
  616. package/cjs/S4335/rule.js +9 -7
  617. package/cjs/S4423/generated-meta.js +3 -3
  618. package/cjs/S4423/index.js +3 -3
  619. package/cjs/S4423/meta.js +3 -3
  620. package/cjs/S4423/rule.aws.js +3 -3
  621. package/cjs/S4423/rule.js +7 -6
  622. package/cjs/S4423/rule.lib.js +11 -10
  623. package/cjs/S4426/generated-meta.js +3 -3
  624. package/cjs/S4426/index.js +3 -3
  625. package/cjs/S4426/meta.js +3 -3
  626. package/cjs/S4426/rule.js +14 -13
  627. package/cjs/S4502/generated-meta.js +3 -3
  628. package/cjs/S4502/index.js +3 -3
  629. package/cjs/S4502/meta.js +3 -3
  630. package/cjs/S4502/rule.js +19 -16
  631. package/cjs/S4507/generated-meta.js +3 -3
  632. package/cjs/S4507/index.js +3 -3
  633. package/cjs/S4507/meta.js +3 -3
  634. package/cjs/S4507/rule.js +11 -9
  635. package/cjs/S4524/generated-meta.js +3 -3
  636. package/cjs/S4524/index.js +3 -3
  637. package/cjs/S4524/meta.js +3 -3
  638. package/cjs/S4524/rule.js +5 -5
  639. package/cjs/S4619/generated-meta.js +3 -3
  640. package/cjs/S4619/index.js +3 -3
  641. package/cjs/S4619/meta.js +3 -3
  642. package/cjs/S4619/rule.js +9 -7
  643. package/cjs/S4621/generated-meta.js +3 -3
  644. package/cjs/S4621/index.js +3 -3
  645. package/cjs/S4621/meta.js +3 -3
  646. package/cjs/S4621/rule.js +8 -7
  647. package/cjs/S4622/config.js +3 -3
  648. package/cjs/S4622/generated-meta.js +3 -3
  649. package/cjs/S4622/index.js +3 -3
  650. package/cjs/S4622/meta.js +3 -3
  651. package/cjs/S4622/rule.js +8 -6
  652. package/cjs/S4623/generated-meta.js +3 -3
  653. package/cjs/S4623/index.js +3 -3
  654. package/cjs/S4623/meta.js +3 -3
  655. package/cjs/S4623/rule.js +11 -8
  656. package/cjs/S4624/generated-meta.js +5 -4
  657. package/cjs/S4624/index.js +3 -3
  658. package/cjs/S4624/meta.js +3 -3
  659. package/cjs/S4624/rule.js +9 -7
  660. package/cjs/S4634/generated-meta.js +5 -4
  661. package/cjs/S4634/index.js +3 -3
  662. package/cjs/S4634/meta.js +3 -3
  663. package/cjs/S4634/rule.js +7 -6
  664. package/cjs/S4721/generated-meta.js +3 -3
  665. package/cjs/S4721/index.js +3 -3
  666. package/cjs/S4721/meta.js +3 -3
  667. package/cjs/S4721/rule.js +10 -8
  668. package/cjs/S4782/generated-meta.js +3 -3
  669. package/cjs/S4782/index.js +3 -3
  670. package/cjs/S4782/meta.js +3 -3
  671. package/cjs/S4782/rule.js +10 -8
  672. package/cjs/S4784/generated-meta.js +3 -3
  673. package/cjs/S4784/index.js +3 -3
  674. package/cjs/S4784/meta.js +3 -3
  675. package/cjs/S4784/rule.js +8 -7
  676. package/cjs/S4787/generated-meta.js +3 -3
  677. package/cjs/S4787/index.js +3 -3
  678. package/cjs/S4787/meta.js +3 -3
  679. package/cjs/S4787/rule.js +12 -10
  680. package/cjs/S4790/generated-meta.js +3 -3
  681. package/cjs/S4790/index.js +3 -3
  682. package/cjs/S4790/meta.js +3 -3
  683. package/cjs/S4790/rule.js +10 -8
  684. package/cjs/S4798/generated-meta.js +3 -3
  685. package/cjs/S4798/index.js +3 -3
  686. package/cjs/S4798/meta.js +3 -3
  687. package/cjs/S4798/rule.js +5 -5
  688. package/cjs/S4817/generated-meta.js +3 -3
  689. package/cjs/S4817/index.js +3 -3
  690. package/cjs/S4817/meta.js +3 -3
  691. package/cjs/S4817/rule.js +13 -11
  692. package/cjs/S4818/generated-meta.js +3 -3
  693. package/cjs/S4818/index.js +3 -3
  694. package/cjs/S4818/meta.js +3 -3
  695. package/cjs/S4818/rule.js +7 -6
  696. package/cjs/S4822/generated-meta.js +5 -4
  697. package/cjs/S4822/index.js +3 -3
  698. package/cjs/S4822/meta.js +3 -3
  699. package/cjs/S4822/rule.js +16 -12
  700. package/cjs/S4823/generated-meta.js +3 -3
  701. package/cjs/S4823/index.js +3 -3
  702. package/cjs/S4823/meta.js +3 -3
  703. package/cjs/S4823/rule.js +7 -6
  704. package/cjs/S4829/generated-meta.js +3 -3
  705. package/cjs/S4829/index.js +3 -3
  706. package/cjs/S4829/meta.js +3 -3
  707. package/cjs/S4829/rule.js +7 -6
  708. package/cjs/S4830/generated-meta.js +3 -3
  709. package/cjs/S4830/index.js +3 -3
  710. package/cjs/S4830/meta.js +3 -3
  711. package/cjs/S4830/rule.js +14 -11
  712. package/cjs/S5042/generated-meta.js +7 -7
  713. package/cjs/S5042/index.js +3 -3
  714. package/cjs/S5042/meta.js +3 -3
  715. package/cjs/S5042/rule.js +12 -10
  716. package/cjs/S5122/generated-meta.js +4 -4
  717. package/cjs/S5122/index.js +3 -3
  718. package/cjs/S5122/meta.js +3 -3
  719. package/cjs/S5122/rule.js +43 -39
  720. package/cjs/S5148/generated-meta.js +4 -4
  721. package/cjs/S5148/index.js +3 -3
  722. package/cjs/S5148/meta.js +3 -3
  723. package/cjs/S5148/rule.js +12 -11
  724. package/cjs/S5247/generated-meta.js +3 -3
  725. package/cjs/S5247/index.js +3 -3
  726. package/cjs/S5247/meta.js +3 -3
  727. package/cjs/S5247/rule.js +25 -21
  728. package/cjs/S5256/generated-meta.js +3 -3
  729. package/cjs/S5256/index.js +3 -3
  730. package/cjs/S5256/meta.js +3 -3
  731. package/cjs/S5256/rule.js +8 -7
  732. package/cjs/S5257/generated-meta.js +3 -3
  733. package/cjs/S5257/index.js +3 -3
  734. package/cjs/S5257/meta.js +3 -3
  735. package/cjs/S5257/rule.js +7 -6
  736. package/cjs/S5260/generated-meta.js +3 -3
  737. package/cjs/S5260/index.js +3 -3
  738. package/cjs/S5260/meta.js +3 -3
  739. package/cjs/S5260/rule.js +7 -6
  740. package/cjs/S5264/generated-meta.js +3 -3
  741. package/cjs/S5264/index.js +3 -3
  742. package/cjs/S5264/meta.js +3 -3
  743. package/cjs/S5264/rule.js +7 -6
  744. package/cjs/S5332/generated-meta.js +3 -3
  745. package/cjs/S5332/index.js +3 -3
  746. package/cjs/S5332/meta.js +3 -3
  747. package/cjs/S5332/rule.aws.js +3 -3
  748. package/cjs/S5332/rule.js +7 -6
  749. package/cjs/S5332/rule.lib.js +22 -20
  750. package/cjs/S5443/generated-meta.js +4 -4
  751. package/cjs/S5443/index.js +3 -3
  752. package/cjs/S5443/meta.js +3 -3
  753. package/cjs/S5443/rule.js +5 -5
  754. package/cjs/S5527/generated-meta.js +3 -3
  755. package/cjs/S5527/index.js +3 -3
  756. package/cjs/S5527/meta.js +3 -3
  757. package/cjs/S5527/rule.js +21 -17
  758. package/cjs/S5542/generated-meta.js +3 -3
  759. package/cjs/S5542/index.js +3 -3
  760. package/cjs/S5542/meta.js +3 -3
  761. package/cjs/S5542/rule.js +9 -7
  762. package/cjs/S5547/generated-meta.js +3 -3
  763. package/cjs/S5547/index.js +3 -3
  764. package/cjs/S5547/meta.js +3 -3
  765. package/cjs/S5547/rule.js +9 -7
  766. package/cjs/S5604/config.js +3 -3
  767. package/cjs/S5604/generated-meta.js +3 -3
  768. package/cjs/S5604/index.js +3 -3
  769. package/cjs/S5604/meta.js +3 -3
  770. package/cjs/S5604/rule.js +18 -17
  771. package/cjs/S5659/generated-meta.js +3 -3
  772. package/cjs/S5659/index.js +3 -3
  773. package/cjs/S5659/meta.js +3 -3
  774. package/cjs/S5659/rule.js +18 -15
  775. package/cjs/S5689/generated-meta.js +4 -4
  776. package/cjs/S5689/index.js +3 -3
  777. package/cjs/S5689/meta.js +3 -3
  778. package/cjs/S5689/rule.js +14 -11
  779. package/cjs/S5691/generated-meta.js +3 -3
  780. package/cjs/S5691/index.js +3 -3
  781. package/cjs/S5691/meta.js +3 -3
  782. package/cjs/S5691/rule.js +10 -8
  783. package/cjs/S5693/config.js +3 -3
  784. package/cjs/S5693/generated-meta.js +4 -4
  785. package/cjs/S5693/index.js +3 -3
  786. package/cjs/S5693/meta.js +3 -3
  787. package/cjs/S5693/rule.js +17 -15
  788. package/cjs/S5725/generated-meta.js +3 -3
  789. package/cjs/S5725/index.js +3 -3
  790. package/cjs/S5725/meta.js +3 -3
  791. package/cjs/S5725/rule.js +12 -9
  792. package/cjs/S5728/generated-meta.js +3 -3
  793. package/cjs/S5728/index.js +3 -3
  794. package/cjs/S5728/meta.js +3 -3
  795. package/cjs/S5728/rule.js +10 -7
  796. package/cjs/S5730/generated-meta.js +3 -3
  797. package/cjs/S5730/index.js +3 -3
  798. package/cjs/S5730/meta.js +3 -3
  799. package/cjs/S5730/rule.js +12 -9
  800. package/cjs/S5732/generated-meta.js +3 -3
  801. package/cjs/S5732/index.js +3 -3
  802. package/cjs/S5732/meta.js +3 -3
  803. package/cjs/S5732/rule.js +11 -8
  804. package/cjs/S5734/generated-meta.js +3 -3
  805. package/cjs/S5734/index.js +3 -3
  806. package/cjs/S5734/meta.js +3 -3
  807. package/cjs/S5734/rule.js +10 -7
  808. package/cjs/S5736/generated-meta.js +3 -3
  809. package/cjs/S5736/index.js +3 -3
  810. package/cjs/S5736/meta.js +3 -3
  811. package/cjs/S5736/rule.js +11 -8
  812. package/cjs/S5739/generated-meta.js +3 -3
  813. package/cjs/S5739/index.js +3 -3
  814. package/cjs/S5739/meta.js +3 -3
  815. package/cjs/S5739/rule.js +14 -11
  816. package/cjs/S5742/generated-meta.js +3 -3
  817. package/cjs/S5742/index.js +3 -3
  818. package/cjs/S5742/meta.js +3 -3
  819. package/cjs/S5742/rule.js +10 -7
  820. package/cjs/S5743/generated-meta.js +3 -3
  821. package/cjs/S5743/index.js +3 -3
  822. package/cjs/S5743/meta.js +3 -3
  823. package/cjs/S5743/rule.js +11 -9
  824. package/cjs/S5757/generated-meta.js +3 -3
  825. package/cjs/S5757/index.js +3 -3
  826. package/cjs/S5757/meta.js +3 -3
  827. package/cjs/S5757/rule.js +16 -13
  828. package/cjs/S5759/generated-meta.js +3 -3
  829. package/cjs/S5759/index.js +3 -3
  830. package/cjs/S5759/meta.js +3 -3
  831. package/cjs/S5759/rule.js +13 -10
  832. package/cjs/S5842/generated-meta.js +3 -3
  833. package/cjs/S5842/index.js +3 -3
  834. package/cjs/S5842/meta.js +3 -3
  835. package/cjs/S5842/rule.js +5 -5
  836. package/cjs/S5843/config.js +3 -3
  837. package/cjs/S5843/generated-meta.js +3 -3
  838. package/cjs/S5843/index.js +3 -3
  839. package/cjs/S5843/meta.js +3 -3
  840. package/cjs/S5843/rule.js +25 -22
  841. package/cjs/S5850/generated-meta.js +3 -3
  842. package/cjs/S5850/index.js +3 -3
  843. package/cjs/S5850/meta.js +3 -3
  844. package/cjs/S5850/rule.js +7 -6
  845. package/cjs/S5852/generated-meta.js +3 -3
  846. package/cjs/S5852/index.js +3 -3
  847. package/cjs/S5852/meta.js +3 -3
  848. package/cjs/S5852/rule.js +5 -5
  849. package/cjs/S5856/generated-meta.js +3 -3
  850. package/cjs/S5856/index.js +3 -3
  851. package/cjs/S5856/meta.js +3 -3
  852. package/cjs/S5856/rule.js +13 -10
  853. package/cjs/S5860/generated-meta.js +3 -3
  854. package/cjs/S5860/index.js +3 -3
  855. package/cjs/S5860/meta.js +3 -3
  856. package/cjs/S5860/rule.js +33 -29
  857. package/cjs/S5863/generated-meta.js +3 -3
  858. package/cjs/S5863/index.js +3 -3
  859. package/cjs/S5863/meta.js +3 -3
  860. package/cjs/S5863/rule.js +18 -14
  861. package/cjs/S5867/generated-meta.js +3 -3
  862. package/cjs/S5867/index.js +3 -3
  863. package/cjs/S5867/meta.js +3 -3
  864. package/cjs/S5867/rule.js +11 -10
  865. package/cjs/S5868/generated-meta.js +3 -3
  866. package/cjs/S5868/index.js +3 -3
  867. package/cjs/S5868/meta.js +3 -3
  868. package/cjs/S5868/rule.js +10 -8
  869. package/cjs/S5869/generated-meta.js +3 -3
  870. package/cjs/S5869/index.js +3 -3
  871. package/cjs/S5869/meta.js +3 -3
  872. package/cjs/S5869/rule.js +9 -8
  873. package/cjs/S5876/generated-meta.js +3 -3
  874. package/cjs/S5876/index.js +3 -3
  875. package/cjs/S5876/meta.js +3 -3
  876. package/cjs/S5876/rule.js +15 -11
  877. package/cjs/S5958/generated-meta.js +3 -3
  878. package/cjs/S5958/index.js +3 -3
  879. package/cjs/S5958/meta.js +3 -3
  880. package/cjs/S5958/rule.js +15 -12
  881. package/cjs/S5973/generated-meta.js +3 -3
  882. package/cjs/S5973/index.js +3 -3
  883. package/cjs/S5973/meta.js +3 -3
  884. package/cjs/S5973/rule.js +13 -10
  885. package/cjs/S6019/generated-meta.js +3 -3
  886. package/cjs/S6019/index.js +3 -3
  887. package/cjs/S6019/meta.js +3 -3
  888. package/cjs/S6019/rule.js +7 -6
  889. package/cjs/S6035/generated-meta.js +3 -3
  890. package/cjs/S6035/index.js +3 -3
  891. package/cjs/S6035/meta.js +3 -3
  892. package/cjs/S6035/rule.js +5 -5
  893. package/cjs/S6079/generated-meta.js +3 -3
  894. package/cjs/S6079/index.js +3 -3
  895. package/cjs/S6079/meta.js +3 -3
  896. package/cjs/S6079/rule.js +12 -9
  897. package/cjs/S6080/generated-meta.js +3 -3
  898. package/cjs/S6080/index.js +3 -3
  899. package/cjs/S6080/meta.js +3 -3
  900. package/cjs/S6080/rule.js +16 -13
  901. package/cjs/S6092/generated-meta.js +3 -3
  902. package/cjs/S6092/index.js +3 -3
  903. package/cjs/S6092/meta.js +3 -3
  904. package/cjs/S6092/rule.js +12 -10
  905. package/cjs/S6245/generated-meta.js +3 -3
  906. package/cjs/S6245/index.js +3 -3
  907. package/cjs/S6245/meta.js +3 -3
  908. package/cjs/S6245/rule.js +17 -12
  909. package/cjs/S6249/generated-meta.js +3 -3
  910. package/cjs/S6249/index.js +3 -3
  911. package/cjs/S6249/meta.js +3 -3
  912. package/cjs/S6249/rule.js +10 -8
  913. package/cjs/S6252/generated-meta.js +3 -3
  914. package/cjs/S6252/index.js +3 -3
  915. package/cjs/S6252/meta.js +3 -3
  916. package/cjs/S6252/rule.js +15 -11
  917. package/cjs/S6265/generated-meta.js +4 -4
  918. package/cjs/S6265/index.js +3 -3
  919. package/cjs/S6265/meta.js +3 -3
  920. package/cjs/S6265/rule.js +30 -23
  921. package/cjs/S6268/generated-meta.js +3 -3
  922. package/cjs/S6268/index.js +3 -3
  923. package/cjs/S6268/meta.js +3 -3
  924. package/cjs/S6268/rule.js +8 -7
  925. package/cjs/S6270/generated-meta.js +4 -4
  926. package/cjs/S6270/index.js +3 -3
  927. package/cjs/S6270/meta.js +3 -3
  928. package/cjs/S6270/rule.js +15 -12
  929. package/cjs/S6275/generated-meta.js +4 -4
  930. package/cjs/S6275/index.js +3 -3
  931. package/cjs/S6275/meta.js +3 -3
  932. package/cjs/S6275/rule.js +5 -5
  933. package/cjs/S6281/generated-meta.js +3 -3
  934. package/cjs/S6281/index.js +3 -3
  935. package/cjs/S6281/meta.js +3 -3
  936. package/cjs/S6281/rule.js +25 -20
  937. package/cjs/S6299/generated-meta.js +3 -3
  938. package/cjs/S6299/index.js +3 -3
  939. package/cjs/S6299/meta.js +3 -3
  940. package/cjs/S6299/rule.js +5 -5
  941. package/cjs/S6302/generated-meta.js +4 -4
  942. package/cjs/S6302/index.js +3 -3
  943. package/cjs/S6302/meta.js +3 -3
  944. package/cjs/S6302/rule.js +9 -8
  945. package/cjs/S6303/generated-meta.js +4 -4
  946. package/cjs/S6303/index.js +3 -3
  947. package/cjs/S6303/meta.js +3 -3
  948. package/cjs/S6303/rule.js +15 -13
  949. package/cjs/S6304/generated-meta.js +3 -3
  950. package/cjs/S6304/index.js +3 -3
  951. package/cjs/S6304/meta.js +3 -3
  952. package/cjs/S6304/rule.js +9 -8
  953. package/cjs/S6308/generated-meta.js +4 -4
  954. package/cjs/S6308/index.js +3 -3
  955. package/cjs/S6308/meta.js +3 -3
  956. package/cjs/S6308/rule.js +10 -8
  957. package/cjs/S6317/generated-meta.js +3 -3
  958. package/cjs/S6317/index.js +3 -3
  959. package/cjs/S6317/meta.js +3 -3
  960. package/cjs/S6317/rule.js +8 -7
  961. package/cjs/S6319/generated-meta.js +3 -3
  962. package/cjs/S6319/index.js +3 -3
  963. package/cjs/S6319/meta.js +3 -3
  964. package/cjs/S6319/rule.js +5 -5
  965. package/cjs/S6321/generated-meta.js +3 -3
  966. package/cjs/S6321/index.js +3 -3
  967. package/cjs/S6321/meta.js +3 -3
  968. package/cjs/S6321/rule.js +28 -26
  969. package/cjs/S6323/generated-meta.js +3 -3
  970. package/cjs/S6323/index.js +3 -3
  971. package/cjs/S6323/meta.js +3 -3
  972. package/cjs/S6323/rule.js +7 -6
  973. package/cjs/S6324/generated-meta.js +3 -3
  974. package/cjs/S6324/index.js +3 -3
  975. package/cjs/S6324/meta.js +3 -3
  976. package/cjs/S6324/rule.js +5 -5
  977. package/cjs/S6326/generated-meta.js +3 -3
  978. package/cjs/S6326/index.js +3 -3
  979. package/cjs/S6326/meta.js +3 -3
  980. package/cjs/S6326/rule.js +5 -5
  981. package/cjs/S6327/generated-meta.js +3 -3
  982. package/cjs/S6327/index.js +3 -3
  983. package/cjs/S6327/meta.js +3 -3
  984. package/cjs/S6327/rule.js +5 -5
  985. package/cjs/S6328/generated-meta.js +3 -3
  986. package/cjs/S6328/index.js +3 -3
  987. package/cjs/S6328/meta.js +3 -3
  988. package/cjs/S6328/rule.js +7 -6
  989. package/cjs/S6329/generated-meta.js +3 -3
  990. package/cjs/S6329/index.js +3 -3
  991. package/cjs/S6329/meta.js +3 -3
  992. package/cjs/S6329/rule.js +10 -8
  993. package/cjs/S6330/generated-meta.js +4 -4
  994. package/cjs/S6330/index.js +3 -3
  995. package/cjs/S6330/meta.js +3 -3
  996. package/cjs/S6330/rule.js +5 -5
  997. package/cjs/S6331/generated-meta.js +3 -3
  998. package/cjs/S6331/index.js +3 -3
  999. package/cjs/S6331/meta.js +3 -3
  1000. package/cjs/S6331/rule.js +3 -3
  1001. package/cjs/S6332/generated-meta.js +3 -3
  1002. package/cjs/S6332/index.js +3 -3
  1003. package/cjs/S6332/meta.js +3 -3
  1004. package/cjs/S6332/rule.js +5 -5
  1005. package/cjs/S6333/generated-meta.js +3 -3
  1006. package/cjs/S6333/index.js +3 -3
  1007. package/cjs/S6333/meta.js +3 -3
  1008. package/cjs/S6333/rule.js +11 -9
  1009. package/cjs/S6351/generated-meta.js +3 -3
  1010. package/cjs/S6351/index.js +3 -3
  1011. package/cjs/S6351/meta.js +3 -3
  1012. package/cjs/S6351/rule.js +25 -22
  1013. package/cjs/S6353/generated-meta.js +3 -3
  1014. package/cjs/S6353/index.js +3 -3
  1015. package/cjs/S6353/meta.js +3 -3
  1016. package/cjs/S6353/rule.js +5 -5
  1017. package/cjs/S6397/generated-meta.js +3 -3
  1018. package/cjs/S6397/index.js +3 -3
  1019. package/cjs/S6397/meta.js +3 -3
  1020. package/cjs/S6397/rule.js +5 -5
  1021. package/cjs/S6418/config.js +3 -3
  1022. package/cjs/S6418/generated-meta.js +3 -3
  1023. package/cjs/S6418/index.js +3 -3
  1024. package/cjs/S6418/meta.js +3 -3
  1025. package/cjs/S6418/rule.js +12 -27
  1026. package/cjs/S6426/generated-meta.js +3 -3
  1027. package/cjs/S6426/index.js +3 -3
  1028. package/cjs/S6426/meta.js +3 -3
  1029. package/cjs/S6426/rule.js +8 -7
  1030. package/cjs/S6437/generated-meta.js +3 -3
  1031. package/cjs/S6437/index.js +3 -3
  1032. package/cjs/S6437/meta.js +3 -3
  1033. package/cjs/S6437/rule.js +18 -10
  1034. package/cjs/S6439/generated-meta.js +4 -4
  1035. package/cjs/S6439/index.js +3 -3
  1036. package/cjs/S6439/meta.js +3 -3
  1037. package/cjs/S6439/rule.js +12 -10
  1038. package/cjs/S6442/generated-meta.js +4 -4
  1039. package/cjs/S6442/index.js +3 -3
  1040. package/cjs/S6442/meta.js +3 -3
  1041. package/cjs/S6442/rule.js +14 -11
  1042. package/cjs/S6443/generated-meta.js +4 -4
  1043. package/cjs/S6443/index.js +3 -3
  1044. package/cjs/S6443/meta.js +3 -3
  1045. package/cjs/S6443/rule.js +12 -10
  1046. package/cjs/S6486/generated-meta.js +3 -3
  1047. package/cjs/S6486/index.js +3 -3
  1048. package/cjs/S6486/meta.js +3 -3
  1049. package/cjs/S6486/rule.js +9 -8
  1050. package/cjs/S6564/generated-meta.js +3 -3
  1051. package/cjs/S6564/index.js +3 -3
  1052. package/cjs/S6564/meta.js +3 -3
  1053. package/cjs/S6564/rule.js +7 -6
  1054. package/cjs/S6594/generated-meta.js +3 -3
  1055. package/cjs/S6594/index.js +3 -3
  1056. package/cjs/S6594/meta.js +3 -3
  1057. package/cjs/S6594/rule.js +15 -11
  1058. package/cjs/S6627/generated-meta.js +3 -3
  1059. package/cjs/S6627/index.js +3 -3
  1060. package/cjs/S6627/meta.js +3 -3
  1061. package/cjs/S6627/rule.js +9 -7
  1062. package/cjs/S6759/generated-meta.js +3 -3
  1063. package/cjs/S6759/index.js +3 -3
  1064. package/cjs/S6759/meta.js +3 -3
  1065. package/cjs/S6759/rule.js +13 -9
  1066. package/cjs/S6958/generated-meta.js +3 -3
  1067. package/cjs/S6958/index.js +3 -3
  1068. package/cjs/S6958/meta.js +3 -3
  1069. package/cjs/S6958/rule.js +2 -2
  1070. package/cjs/S6959/generated-meta.js +3 -3
  1071. package/cjs/S6959/index.js +3 -3
  1072. package/cjs/S6959/meta.js +3 -3
  1073. package/cjs/S6959/rule.js +12 -9
  1074. package/cjs/S7059/generated-meta.js +5 -4
  1075. package/cjs/S7059/index.js +3 -3
  1076. package/cjs/S7059/meta.js +3 -3
  1077. package/cjs/S7059/rule.js +11 -8
  1078. package/cjs/S7639/generated-meta.js +3 -3
  1079. package/cjs/S7639/index.js +3 -3
  1080. package/cjs/S7639/meta.js +3 -3
  1081. package/cjs/S7639/rule.js +8 -7
  1082. package/cjs/S7790/generated-meta.js +3 -3
  1083. package/cjs/S7790/index.js +3 -3
  1084. package/cjs/S7790/meta.js +3 -3
  1085. package/cjs/S7790/rule.js +10 -8
  1086. package/cjs/S8441/generated-meta.js +3 -3
  1087. package/cjs/S8441/index.js +3 -3
  1088. package/cjs/S8441/meta.js +3 -3
  1089. package/cjs/S8441/rule.js +16 -12
  1090. package/cjs/{helpers/aws/index.js → S8479/generated-meta.js} +35 -19
  1091. package/cjs/S8479/index.js +21 -0
  1092. package/cjs/S8479/meta.js +22 -0
  1093. package/cjs/S8479/rule.js +239 -0
  1094. package/cjs/S881/generated-meta.js +3 -3
  1095. package/cjs/S881/index.js +3 -3
  1096. package/cjs/S881/meta.js +3 -3
  1097. package/cjs/S881/rule.js +5 -5
  1098. package/cjs/S888/generated-meta.js +3 -3
  1099. package/cjs/S888/index.js +3 -3
  1100. package/cjs/S888/meta.js +3 -3
  1101. package/cjs/S888/rule.js +7 -6
  1102. package/cjs/S930/generated-meta.js +3 -3
  1103. package/cjs/S930/index.js +3 -3
  1104. package/cjs/S930/meta.js +3 -3
  1105. package/cjs/S930/rule.js +17 -15
  1106. package/cjs/helpers/accessibility.js +3 -3
  1107. package/cjs/helpers/ast.js +12 -9
  1108. package/cjs/helpers/aws/s3.js +9 -6
  1109. package/cjs/helpers/cache.js +3 -3
  1110. package/cjs/helpers/chai.js +41 -43
  1111. package/cjs/helpers/collection.js +3 -3
  1112. package/cjs/helpers/configs.js +2 -2
  1113. package/cjs/helpers/cookie-flag-check.js +19 -17
  1114. package/cjs/helpers/entropy.js +33 -0
  1115. package/cjs/helpers/express.js +127 -128
  1116. package/cjs/helpers/files.js +4 -4
  1117. package/cjs/helpers/find-up/closest.js +3 -3
  1118. package/cjs/helpers/internal-metrics.js +27 -0
  1119. package/cjs/helpers/mocha.js +50 -54
  1120. package/cjs/helpers/module-ts.js +8 -3
  1121. package/cjs/helpers/package-jsons/closest.js +3 -3
  1122. package/cjs/helpers/package-jsons/dependencies.js +135 -1
  1123. package/cjs/helpers/package-jsons/index.js +1 -0
  1124. package/cjs/helpers/package-jsons/parse.js +3 -3
  1125. package/cjs/helpers/recognizers/Detector.js +3 -3
  1126. package/cjs/helpers/recognizers/detectors/CamelCaseDetector.js +3 -3
  1127. package/cjs/helpers/recognizers/detectors/ContainsDetector.js +3 -3
  1128. package/cjs/helpers/recognizers/detectors/EndWithDetector.js +3 -3
  1129. package/cjs/helpers/recognizers/detectors/KeywordsDetector.js +3 -3
  1130. package/cjs/helpers/regex/ast.js +7 -6
  1131. package/cjs/helpers/regex/extract.js +11 -11
  1132. package/cjs/helpers/regex/group.js +2 -2
  1133. package/cjs/helpers/regex/location.js +2 -2
  1134. package/cjs/helpers/regex/range.js +5 -4
  1135. package/cjs/helpers/regex/rule-template.js +4 -3
  1136. package/cjs/helpers/sinon.js +33 -36
  1137. package/cjs/helpers/supertest.js +34 -37
  1138. package/cjs/helpers/vitest.js +29 -32
  1139. package/cjs/plugin-rules.js +5 -3
  1140. package/docs/aws-ec2-unencrypted-ebs-volume.md +1 -1
  1141. package/docs/aws-iam-all-privileges.md +1 -1
  1142. package/docs/aws-iam-public-access.md +1 -1
  1143. package/docs/aws-opensearchservice-domain.md +1 -1
  1144. package/docs/aws-rds-unencrypted-databases.md +1 -1
  1145. package/docs/aws-s3-bucket-granted-access.md +1 -1
  1146. package/docs/aws-sqs-unencrypted-queue.md +1 -1
  1147. package/docs/class-name.md +3 -3
  1148. package/docs/content-length.md +1 -1
  1149. package/docs/cors.md +1 -1
  1150. package/docs/dompurify-unsafe-config.md +7 -0
  1151. package/docs/file-permissions.md +1 -1
  1152. package/docs/insecure-cookie.md +1 -1
  1153. package/docs/link-with-target-blank.md +1 -1
  1154. package/docs/no-hardcoded-ip.md +1 -1
  1155. package/docs/no-unsafe-unzip.md +4 -2
  1156. package/docs/publicly-writable-directories.md +1 -1
  1157. package/docs/x-powered-by.md +1 -1
  1158. package/package.json +39 -1
  1159. package/types/S101/config.d.ts +1 -1
  1160. package/types/S1128/generated-meta.d.ts +1 -0
  1161. package/types/S1313/generated-meta.d.ts +1 -1
  1162. package/types/S134/config.d.ts +1 -1
  1163. package/types/S2208/generated-meta.d.ts +1 -0
  1164. package/types/S3317/generated-meta.d.ts +1 -0
  1165. package/types/S3499/generated-meta.d.ts +1 -0
  1166. package/types/S3500/generated-meta.d.ts +1 -0
  1167. package/types/S3513/generated-meta.d.ts +1 -0
  1168. package/types/S3514/generated-meta.d.ts +1 -0
  1169. package/types/S3524/generated-meta.d.ts +1 -0
  1170. package/types/S3525/generated-meta.d.ts +1 -0
  1171. package/types/S3531/generated-meta.d.ts +1 -0
  1172. package/types/S3533/generated-meta.d.ts +1 -0
  1173. package/types/S3776/meta.d.ts +2 -0
  1174. package/types/S4624/generated-meta.d.ts +1 -0
  1175. package/types/S4634/generated-meta.d.ts +1 -0
  1176. package/types/S4822/generated-meta.d.ts +1 -0
  1177. package/types/S5042/generated-meta.d.ts +2 -2
  1178. package/types/S6439/generated-meta.d.ts +1 -1
  1179. package/types/S6442/generated-meta.d.ts +1 -1
  1180. package/types/S6443/generated-meta.d.ts +1 -1
  1181. package/types/S7059/generated-meta.d.ts +1 -0
  1182. package/types/S8479/generated-meta.d.ts +17 -0
  1183. package/types/S8479/index.d.ts +1 -0
  1184. package/types/S8479/meta.d.ts +2 -0
  1185. package/types/S8479/rule.d.ts +2 -0
  1186. package/types/helpers/ancestor.d.ts +1 -1
  1187. package/types/helpers/aws/s3.d.ts +1 -1
  1188. package/types/helpers/chai.d.ts +3 -5
  1189. package/types/helpers/entropy.d.ts +1 -0
  1190. package/types/helpers/express.d.ts +38 -43
  1191. package/types/helpers/files.d.ts +6 -21
  1192. package/types/helpers/internal-metrics.d.ts +5 -0
  1193. package/types/helpers/mocha.d.ts +19 -21
  1194. package/types/helpers/package-jsons/dependencies.d.ts +36 -0
  1195. package/types/helpers/regex/ast.d.ts +1 -1
  1196. package/types/helpers/regex/rule-template.d.ts +1 -1
  1197. package/types/helpers/sinon.d.ts +3 -5
  1198. package/types/helpers/supertest.d.ts +3 -5
  1199. package/types/helpers/type.d.ts +1 -1
  1200. package/types/helpers/vitest.d.ts +3 -5
  1201. package/types/plugin-rules.d.ts +1 -0
  1202. package/cjs/helpers/decorators/index.js +0 -34
  1203. package/cjs/helpers/decorators/interceptor.js +0 -88
  1204. package/cjs/helpers/index.js +0 -60
  1205. package/cjs/helpers/recognizers/index.js +0 -37
  1206. package/cjs/helpers/rule-detect-react.js +0 -29
  1207. package/cjs/helpers/validate-version.js +0 -94
  1208. package/types/helpers/aws/index.d.ts +0 -3
  1209. package/types/helpers/decorators/index.d.ts +0 -2
  1210. package/types/helpers/decorators/interceptor.d.ts +0 -16
  1211. package/types/helpers/index.d.ts +0 -28
  1212. package/types/helpers/recognizers/index.d.ts +0 -2
  1213. package/types/helpers/rule-detect-react.d.ts +0 -2
  1214. package/types/helpers/validate-version.d.ts +0 -13
package/cjs/S125/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
@@ -54,17 +54,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.rule = void 0;
57
- const index_js_1 = require("../helpers/index.js");
57
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
58
+ const collection_js_1 = require("../helpers/collection.js");
58
59
  const meta = __importStar(require("./generated-meta.js"));
59
- const index_js_2 = require("../helpers/recognizers/index.js");
60
+ const CodeRecognizer_js_1 = require("../helpers/recognizers/CodeRecognizer.js");
61
+ const JavaScriptFootPrint_js_1 = require("../helpers/recognizers/JavaScriptFootPrint.js");
60
62
  const node_path_1 = __importDefault(require("node:path"));
61
63
  const EXCLUDED_STATEMENTS = new Set(['BreakStatement', 'LabeledStatement', 'ContinueStatement']);
64
+ // Documentation example prefixes that indicate a comment is an intentional usage example,
65
+ // not commented-out dead code (e.g. "e.g. foo()", "example: bar()").
66
+ const DOCUMENTATION_PREFIX_PATTERN = /^(e\.g[.:]|for example\b|examples?:)/i;
62
67
  // Cheap prefilter: any meaningful JS statement must contain at least one of these characters,
63
68
  // or be an import/export with a string literal (side-effect imports have no punctuation)
64
69
  const CODE_CHAR_PATTERN = /[;{}()=<>]|\bimport\s+['"]|\bexport\s/;
65
- const recognizer = new index_js_2.CodeRecognizer(0.9, new index_js_2.JavaScriptFootPrint());
70
+ const JSX_ATTRIBUTE_WRAPPER = '_S125Wrapper';
71
+ const recognizer = new CodeRecognizer_js_1.CodeRecognizer(0.9, new JavaScriptFootPrint_js_1.JavaScriptFootPrint());
66
72
  exports.rule = {
67
- meta: (0, index_js_1.generateMeta)(meta, {
73
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
68
74
  messages: {
69
75
  commentedCode: 'Remove this commented out code.',
70
76
  commentedCodeFix: 'Remove this commented out code',
@@ -80,7 +86,7 @@ exports.rule = {
80
86
  groupedComments.push({ value: comment.value, nodes: [comment] });
81
87
  }
82
88
  else if (currentGroup.length === 0 ||
83
- areAdjacentLineComments((0, index_js_1.last)(currentGroup), comment)) {
89
+ areAdjacentLineComments((0, collection_js_1.last)(currentGroup), comment)) {
84
90
  currentGroup.push(comment);
85
91
  }
86
92
  else {
@@ -113,6 +119,7 @@ exports.rule = {
113
119
  for (const groupComment of groupedComments) {
114
120
  const rawTextTrimmed = groupComment.value.trim();
115
121
  if (rawTextTrimmed !== '}' &&
122
+ !isDocumentationExample(rawTextTrimmed) &&
116
123
  containsCode(injectMissingBraces(rawTextTrimmed), context)) {
117
124
  context.report({
118
125
  messageId: 'commentedCode',
@@ -122,7 +129,7 @@ exports.rule = {
122
129
  messageId: 'commentedCodeFix',
123
130
  fix(fixer) {
124
131
  const start = groupComment.nodes[0].range[0];
125
- const end = (0, index_js_1.last)(groupComment.nodes).range[1];
132
+ const end = (0, collection_js_1.last)(groupComment.nodes).range[1];
126
133
  return fixer.removeRange([start, end]);
127
134
  },
128
135
  },
@@ -164,22 +171,20 @@ function containsCode(value, context) {
164
171
  if (!CODE_CHAR_PATTERN.test(value) || !couldBeJsCode(value) || !context.languageOptions.parser) {
165
172
  return false;
166
173
  }
167
- try {
168
- const options = {
169
- ...context.languageOptions?.parserOptions,
170
- filePath: `placeholder${node_path_1.default.extname(context.filename)}`,
171
- programs: undefined,
172
- project: undefined,
173
- };
174
- //In case of Vue parser: we will use the JS/TS parser instead of the Vue parser
175
- const parser = context.languageOptions?.parserOptions?.parser ?? context.languageOptions?.parser;
176
- const result = 'parse' in parser ? parser.parse(value, options) : parser.parseForESLint(value, options).ast;
177
- const program = result;
174
+ const options = {
175
+ ...context.languageOptions?.parserOptions,
176
+ filePath: `placeholder${node_path_1.default.extname(context.filename)}`,
177
+ programs: undefined,
178
+ project: undefined,
179
+ };
180
+ //In case of Vue parser: we will use the JS/TS parser instead of the Vue parser
181
+ const parser = context.languageOptions?.parserOptions?.parser ?? context.languageOptions?.parser;
182
+ const program = parseWithRuleParser(value, parser, options);
183
+ if (program) {
178
184
  return program.body.length > 0 && !isExclusion(program.body, value, program, context);
179
185
  }
180
- catch {
181
- return false;
182
- }
186
+ const wrappedProgram = parseWithRuleParser(wrapAsJsxTag(value), parser, options);
187
+ return hasValidJsxAttributeCode(wrappedProgram);
183
188
  }
184
189
  function couldBeJsCode(input) {
185
190
  return input.split('\n').some(line => recognizer.recognition(line) >= recognizer.threshold);
@@ -187,11 +192,11 @@ function couldBeJsCode(input) {
187
192
  function injectMissingBraces(value) {
188
193
  let balance = 0;
189
194
  let minBalance = 0;
190
- for (let i = 0; i < value.length; i++) {
191
- if (value[i] === '{') {
195
+ for (const char of value) {
196
+ if (char === '{') {
192
197
  balance++;
193
198
  }
194
- else if (value[i] === '}') {
199
+ else if (char === '}') {
195
200
  balance--;
196
201
  if (balance < minBalance) {
197
202
  minBalance = balance;
@@ -208,7 +213,7 @@ function injectMissingBraces(value) {
208
213
  function getCommentLocation(nodes) {
209
214
  return {
210
215
  start: nodes[0].loc.start,
211
- end: (0, index_js_1.last)(nodes).loc.end,
216
+ end: (0, collection_js_1.last)(nodes).loc.end,
212
217
  };
213
218
  }
214
219
  function isReturnThrowExclusion(statement) {
@@ -227,3 +232,47 @@ function isExcludedLiteral(expression) {
227
232
  }
228
233
  return false;
229
234
  }
235
+ function isDocumentationExample(value) {
236
+ const firstLine = value.split('\n')[0];
237
+ // Strip any leading '//' markers (e.g. '// foo()' in a nested comment becomes 'foo()')
238
+ const stripped = firstLine.replace(/^(?:\/\/\s*)+/, '').trim();
239
+ return DOCUMENTATION_PREFIX_PATTERN.test(stripped);
240
+ }
241
+ function parseWithRuleParser(value, parser, options) {
242
+ try {
243
+ return ('parse' in parser ? parser.parse(value, options) : parser.parseForESLint(value, options).ast);
244
+ }
245
+ catch {
246
+ return null;
247
+ }
248
+ }
249
+ function wrapAsJsxTag(value) {
250
+ return `<${JSX_ATTRIBUTE_WRAPPER} ${value} />`;
251
+ }
252
+ function hasValidJsxAttributeCode(program) {
253
+ if (program?.body.length !== 1) {
254
+ return false;
255
+ }
256
+ const statement = program.body[0];
257
+ if (statement.type !== 'ExpressionStatement' || statement.expression.type !== 'JSXElement') {
258
+ return false;
259
+ }
260
+ const jsxElement = statement.expression;
261
+ if (jsxElement.openingElement.name.type !== 'JSXIdentifier') {
262
+ return false;
263
+ }
264
+ if (jsxElement.openingElement.name.name !== JSX_ATTRIBUTE_WRAPPER) {
265
+ return false;
266
+ }
267
+ const attributes = jsxElement.openingElement.attributes;
268
+ return attributes.length > 0 && attributes.every(isValidJsxAttribute);
269
+ }
270
+ function isValidJsxAttribute(attribute) {
271
+ if (attribute.type === 'JSXSpreadAttribute') {
272
+ return true;
273
+ }
274
+ if (attribute.name.type !== 'JSXIdentifier') {
275
+ return false;
276
+ }
277
+ return attribute.value !== null;
278
+ }
@@ -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
package/cjs/S126/index.js CHANGED
@@ -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/S126/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/S126/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
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
57
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
58
  messages: {
59
59
  addMissingElseClause: 'Add the missing "else" clause.',
60
60
  },
@@ -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
@@ -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/S1264/meta.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.quickFixMessage = 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/S1264/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
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
57
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
58
  messages: {
59
59
  replaceForWithWhileLoop: 'Replace this "for" loop with a "while" loop.',
60
60
  },
@@ -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
package/cjs/S128/index.js CHANGED
@@ -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/S128/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/S128/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
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ancestor_js_1 = require("../helpers/ancestor.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  messages: {
59
60
  switchEnd: 'End this switch case with an unconditional break, continue, return or throw statement.',
60
61
  },
@@ -127,7 +128,7 @@ exports.rule = {
127
128
  const switchCase = node;
128
129
  const initialSegment = initialSegmentBySwitchCase.get(switchCase);
129
130
  const isReachable = Array.from(currentSegments).some(s => s.reachable && !isAfterProcessExitCall(s, initialSegment));
130
- const { cases } = (0, index_js_1.getParent)(context, node);
131
+ const { cases } = (0, ancestor_js_1.getParent)(context, node);
131
132
  if (isReachable &&
132
133
  switchCase.consequent.length > 0 &&
133
134
  cases.at(-1) !== node &&
@@ -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
@@ -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/S1291/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/S1291/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
@@ -51,11 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  const NOSONAR = 'NOSONAR';
57
57
  exports.rule = {
58
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
59
59
  messages: {
60
60
  noSonar: '"NOSONAR" comments should not be used.',
61
61
  },
@@ -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
@@ -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/S1301/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