eslint-plugin-sonarjs 4.0.2 → 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 (1169) hide show
  1. package/README.md +22 -21
  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 +3 -3
  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 +4 -4
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +29 -10
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +5 -5
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +67 -20
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +141 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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/S1529/generated-meta.js +3 -3
  185. package/cjs/S1529/index.js +3 -3
  186. package/cjs/S1529/meta.js +3 -3
  187. package/cjs/S1529/rule.js +3 -3
  188. package/cjs/S1530/generated-meta.js +3 -3
  189. package/cjs/S1530/index.js +3 -3
  190. package/cjs/S1530/meta.js +3 -3
  191. package/cjs/S1530/rule.js +3 -3
  192. package/cjs/S1533/generated-meta.js +3 -3
  193. package/cjs/S1533/index.js +3 -3
  194. package/cjs/S1533/meta.js +3 -3
  195. package/cjs/S1533/rule.js +3 -3
  196. package/cjs/S1535/generated-meta.js +3 -3
  197. package/cjs/S1535/index.js +3 -3
  198. package/cjs/S1535/meta.js +3 -3
  199. package/cjs/S1535/rule.js +3 -3
  200. package/cjs/S1541/config.js +3 -3
  201. package/cjs/S1541/generated-meta.js +3 -3
  202. package/cjs/S1541/index.js +3 -3
  203. package/cjs/S1541/meta.js +3 -3
  204. package/cjs/S1541/rule.js +3 -3
  205. package/cjs/S1607/generated-meta.js +3 -3
  206. package/cjs/S1607/index.js +3 -3
  207. package/cjs/S1607/meta.js +3 -3
  208. package/cjs/S1607/rule.js +3 -3
  209. package/cjs/S1764/generated-meta.js +3 -3
  210. package/cjs/S1764/index.js +3 -3
  211. package/cjs/S1764/meta.js +3 -3
  212. package/cjs/S1764/rule.js +3 -3
  213. package/cjs/S1821/generated-meta.js +3 -3
  214. package/cjs/S1821/index.js +3 -3
  215. package/cjs/S1821/meta.js +3 -3
  216. package/cjs/S1821/rule.js +3 -3
  217. package/cjs/S1848/generated-meta.js +3 -3
  218. package/cjs/S1848/index.js +3 -3
  219. package/cjs/S1848/meta.js +3 -3
  220. package/cjs/S1848/rule.js +3 -3
  221. package/cjs/S1854/generated-meta.js +3 -3
  222. package/cjs/S1854/index.js +3 -3
  223. package/cjs/S1854/meta.js +3 -3
  224. package/cjs/S1854/rule.js +3 -3
  225. package/cjs/S1862/generated-meta.js +3 -3
  226. package/cjs/S1862/index.js +3 -3
  227. package/cjs/S1862/meta.js +3 -3
  228. package/cjs/S1862/rule.js +3 -3
  229. package/cjs/S1871/generated-meta.js +3 -3
  230. package/cjs/S1871/index.js +3 -3
  231. package/cjs/S1871/meta.js +3 -3
  232. package/cjs/S1871/rule.js +3 -3
  233. package/cjs/S1874/generated-meta.js +3 -3
  234. package/cjs/S1874/index.js +3 -3
  235. package/cjs/S1874/meta.js +3 -3
  236. package/cjs/S1874/rule.js +3 -3
  237. package/cjs/S1940/generated-meta.js +3 -3
  238. package/cjs/S1940/index.js +3 -3
  239. package/cjs/S1940/meta.js +3 -3
  240. package/cjs/S1940/rule.js +3 -3
  241. package/cjs/S1994/generated-meta.js +3 -3
  242. package/cjs/S1994/index.js +3 -3
  243. package/cjs/S1994/meta.js +3 -3
  244. package/cjs/S1994/rule.js +3 -3
  245. package/cjs/S2004/config.js +3 -3
  246. package/cjs/S2004/generated-meta.js +3 -3
  247. package/cjs/S2004/index.js +3 -3
  248. package/cjs/S2004/meta.js +3 -3
  249. package/cjs/S2004/rule.js +3 -3
  250. package/cjs/S2068/config.js +3 -3
  251. package/cjs/S2068/generated-meta.js +3 -3
  252. package/cjs/S2068/index.js +3 -3
  253. package/cjs/S2068/meta.js +3 -3
  254. package/cjs/S2068/rule.js +28 -4
  255. package/cjs/S2077/generated-meta.js +3 -3
  256. package/cjs/S2077/index.js +3 -3
  257. package/cjs/S2077/meta.js +3 -3
  258. package/cjs/S2077/rule.js +35 -3
  259. package/cjs/S2092/generated-meta.js +4 -4
  260. package/cjs/S2092/index.js +3 -3
  261. package/cjs/S2092/meta.js +3 -3
  262. package/cjs/S2092/rule.js +3 -3
  263. package/cjs/S2123/generated-meta.js +3 -3
  264. package/cjs/S2123/index.js +3 -3
  265. package/cjs/S2123/meta.js +3 -3
  266. package/cjs/S2123/rule.js +3 -3
  267. package/cjs/S2137/generated-meta.js +3 -3
  268. package/cjs/S2137/index.js +3 -3
  269. package/cjs/S2137/meta.js +3 -3
  270. package/cjs/S2137/rule.js +3 -3
  271. package/cjs/S2138/generated-meta.js +3 -3
  272. package/cjs/S2138/index.js +3 -3
  273. package/cjs/S2138/meta.js +3 -3
  274. package/cjs/S2138/rule.js +3 -3
  275. package/cjs/S2187/generated-meta.js +3 -3
  276. package/cjs/S2187/index.js +3 -3
  277. package/cjs/S2187/meta.js +3 -3
  278. package/cjs/S2187/rule.js +3 -3
  279. package/cjs/S2201/generated-meta.js +3 -3
  280. package/cjs/S2201/index.js +3 -3
  281. package/cjs/S2201/meta.js +3 -3
  282. package/cjs/S2201/rule.js +3 -3
  283. package/cjs/S2208/generated-meta.js +5 -4
  284. package/cjs/S2208/index.js +3 -3
  285. package/cjs/S2208/meta.js +3 -3
  286. package/cjs/S2208/rule.js +3 -3
  287. package/cjs/S2234/generated-meta.js +3 -3
  288. package/cjs/S2234/index.js +3 -3
  289. package/cjs/S2234/meta.js +3 -3
  290. package/cjs/S2234/rule.js +148 -5
  291. package/cjs/S2245/generated-meta.js +3 -3
  292. package/cjs/S2245/index.js +3 -3
  293. package/cjs/S2245/meta.js +3 -3
  294. package/cjs/S2245/rule.js +3 -3
  295. package/cjs/S2251/generated-meta.js +3 -3
  296. package/cjs/S2251/index.js +3 -3
  297. package/cjs/S2251/meta.js +3 -3
  298. package/cjs/S2251/rule.js +3 -3
  299. package/cjs/S2255/generated-meta.js +3 -3
  300. package/cjs/S2255/index.js +3 -3
  301. package/cjs/S2255/meta.js +3 -3
  302. package/cjs/S2255/rule.js +3 -3
  303. package/cjs/S2259/generated-meta.js +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  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 +3 -3
  356. package/cjs/S2699/index.js +3 -3
  357. package/cjs/S2699/meta.js +3 -3
  358. package/cjs/S2703/generated-meta.js +3 -3
  359. package/cjs/S2703/index.js +3 -3
  360. package/cjs/S2703/meta.js +3 -3
  361. package/cjs/S2703/rule.js +3 -3
  362. package/cjs/S2737/generated-meta.js +3 -3
  363. package/cjs/S2737/index.js +3 -3
  364. package/cjs/S2737/meta.js +3 -3
  365. package/cjs/S2737/rule.js +3 -3
  366. package/cjs/S2755/generated-meta.js +3 -3
  367. package/cjs/S2755/index.js +3 -3
  368. package/cjs/S2755/meta.js +3 -3
  369. package/cjs/S2755/rule.js +3 -3
  370. package/cjs/S2757/generated-meta.js +3 -3
  371. package/cjs/S2757/index.js +3 -3
  372. package/cjs/S2757/meta.js +3 -3
  373. package/cjs/S2757/rule.js +3 -3
  374. package/cjs/S2817/generated-meta.js +3 -3
  375. package/cjs/S2817/index.js +3 -3
  376. package/cjs/S2817/meta.js +3 -3
  377. package/cjs/S2817/rule.js +3 -3
  378. package/cjs/S2819/generated-meta.js +3 -3
  379. package/cjs/S2819/index.js +3 -3
  380. package/cjs/S2819/meta.js +3 -3
  381. package/cjs/S2819/rule.js +3 -3
  382. package/cjs/S2870/generated-meta.js +3 -3
  383. package/cjs/S2870/index.js +3 -3
  384. package/cjs/S2870/meta.js +3 -3
  385. package/cjs/S2870/rule.js +3 -3
  386. package/cjs/S2871/generated-meta.js +3 -3
  387. package/cjs/S2871/index.js +3 -3
  388. package/cjs/S2871/meta.js +3 -3
  389. package/cjs/S2871/rule.js +3 -3
  390. package/cjs/S2970/generated-meta.js +3 -3
  391. package/cjs/S2970/index.js +3 -3
  392. package/cjs/S2970/meta.js +3 -3
  393. package/cjs/S2970/rule.js +3 -3
  394. package/cjs/S2990/generated-meta.js +3 -3
  395. package/cjs/S2990/index.js +3 -3
  396. package/cjs/S2990/meta.js +3 -3
  397. package/cjs/S2990/rule.js +3 -3
  398. package/cjs/S2999/config.js +3 -3
  399. package/cjs/S2999/generated-meta.js +3 -3
  400. package/cjs/S2999/index.js +3 -3
  401. package/cjs/S2999/meta.js +3 -3
  402. package/cjs/S2999/rule.js +3 -3
  403. package/cjs/S3001/generated-meta.js +3 -3
  404. package/cjs/S3001/index.js +3 -3
  405. package/cjs/S3001/meta.js +3 -3
  406. package/cjs/S3001/rule.js +3 -3
  407. package/cjs/S3003/generated-meta.js +3 -3
  408. package/cjs/S3003/index.js +3 -3
  409. package/cjs/S3003/meta.js +3 -3
  410. package/cjs/S3003/rule.js +3 -3
  411. package/cjs/S3317/generated-meta.js +5 -4
  412. package/cjs/S3317/index.js +3 -3
  413. package/cjs/S3317/meta.js +3 -3
  414. package/cjs/S3317/rule.js +3 -3
  415. package/cjs/S3330/generated-meta.js +3 -3
  416. package/cjs/S3330/index.js +3 -3
  417. package/cjs/S3330/meta.js +3 -3
  418. package/cjs/S3330/rule.js +3 -3
  419. package/cjs/S3358/generated-meta.js +3 -3
  420. package/cjs/S3358/index.js +3 -3
  421. package/cjs/S3358/meta.js +3 -3
  422. package/cjs/S3358/rule.js +3 -3
  423. package/cjs/S3402/generated-meta.js +3 -3
  424. package/cjs/S3402/index.js +3 -3
  425. package/cjs/S3402/meta.js +3 -3
  426. package/cjs/S3402/rule.js +3 -3
  427. package/cjs/S3403/generated-meta.js +3 -3
  428. package/cjs/S3403/index.js +3 -3
  429. package/cjs/S3403/meta.js +3 -3
  430. package/cjs/S3403/rule.js +3 -3
  431. package/cjs/S3415/generated-meta.js +3 -3
  432. package/cjs/S3415/index.js +3 -3
  433. package/cjs/S3415/meta.js +3 -3
  434. package/cjs/S3415/rule.js +3 -3
  435. package/cjs/S3499/generated-meta.js +5 -4
  436. package/cjs/S3499/index.js +3 -3
  437. package/cjs/S3499/meta.js +3 -3
  438. package/cjs/S3499/rule.js +3 -3
  439. package/cjs/S3500/generated-meta.js +5 -4
  440. package/cjs/S3500/index.js +3 -3
  441. package/cjs/S3500/meta.js +3 -3
  442. package/cjs/S3500/rule.js +3 -3
  443. package/cjs/S3513/generated-meta.js +5 -4
  444. package/cjs/S3513/index.js +3 -3
  445. package/cjs/S3513/meta.js +3 -3
  446. package/cjs/S3513/rule.js +3 -3
  447. package/cjs/S3514/generated-meta.js +5 -4
  448. package/cjs/S3514/index.js +3 -3
  449. package/cjs/S3514/meta.js +3 -3
  450. package/cjs/S3514/rule.js +3 -3
  451. package/cjs/S3516/generated-meta.js +3 -3
  452. package/cjs/S3516/index.js +3 -3
  453. package/cjs/S3516/meta.js +3 -3
  454. package/cjs/S3516/rule.js +102 -3
  455. package/cjs/S3524/config.js +3 -3
  456. package/cjs/S3524/generated-meta.js +5 -4
  457. package/cjs/S3524/index.js +3 -3
  458. package/cjs/S3524/meta.js +3 -3
  459. package/cjs/S3524/rule.js +3 -3
  460. package/cjs/S3525/generated-meta.js +5 -4
  461. package/cjs/S3525/index.js +3 -3
  462. package/cjs/S3525/meta.js +3 -3
  463. package/cjs/S3525/rule.js +3 -3
  464. package/cjs/S3531/generated-meta.js +5 -4
  465. package/cjs/S3531/index.js +3 -3
  466. package/cjs/S3531/meta.js +3 -3
  467. package/cjs/S3531/rule.js +3 -3
  468. package/cjs/S3533/generated-meta.js +5 -4
  469. package/cjs/S3533/index.js +3 -3
  470. package/cjs/S3533/meta.js +3 -3
  471. package/cjs/S3533/rule.js +3 -3
  472. package/cjs/S3579/generated-meta.js +3 -3
  473. package/cjs/S3579/index.js +3 -3
  474. package/cjs/S3579/meta.js +3 -3
  475. package/cjs/S3579/rule.js +3 -3
  476. package/cjs/S3616/generated-meta.js +3 -3
  477. package/cjs/S3616/index.js +3 -3
  478. package/cjs/S3616/meta.js +3 -3
  479. package/cjs/S3616/rule.js +3 -3
  480. package/cjs/S3626/generated-meta.js +3 -3
  481. package/cjs/S3626/index.js +3 -3
  482. package/cjs/S3626/meta.js +3 -3
  483. package/cjs/S3626/rule.js +3 -3
  484. package/cjs/S3686/generated-meta.js +3 -3
  485. package/cjs/S3686/index.js +3 -3
  486. package/cjs/S3686/meta.js +3 -3
  487. package/cjs/S3686/rule.js +3 -3
  488. package/cjs/S3699/generated-meta.js +3 -3
  489. package/cjs/S3699/index.js +3 -3
  490. package/cjs/S3699/meta.js +3 -3
  491. package/cjs/S3699/rule.js +4 -4
  492. package/cjs/S3735/generated-meta.js +3 -3
  493. package/cjs/S3735/index.js +3 -3
  494. package/cjs/S3735/meta.js +3 -3
  495. package/cjs/S3735/rule.js +3 -3
  496. package/cjs/S3757/generated-meta.js +3 -3
  497. package/cjs/S3757/index.js +3 -3
  498. package/cjs/S3757/meta.js +3 -3
  499. package/cjs/S3757/rule.js +3 -3
  500. package/cjs/S3758/generated-meta.js +3 -3
  501. package/cjs/S3758/index.js +3 -3
  502. package/cjs/S3758/meta.js +3 -3
  503. package/cjs/S3758/rule.js +3 -3
  504. package/cjs/S3760/generated-meta.js +3 -3
  505. package/cjs/S3760/index.js +3 -3
  506. package/cjs/S3760/meta.js +3 -3
  507. package/cjs/S3760/rule.js +3 -3
  508. package/cjs/S3776/config.js +3 -3
  509. package/cjs/S3776/generated-meta.js +3 -3
  510. package/cjs/S3776/index.js +3 -3
  511. package/cjs/S3776/meta.js +12 -4
  512. package/cjs/S3776/rule.js +13 -16
  513. package/cjs/S3782/generated-meta.js +3 -3
  514. package/cjs/S3782/index.js +3 -3
  515. package/cjs/S3782/meta.js +3 -3
  516. package/cjs/S3782/rule.js +4 -4
  517. package/cjs/S3785/generated-meta.js +3 -3
  518. package/cjs/S3785/index.js +3 -3
  519. package/cjs/S3785/meta.js +3 -3
  520. package/cjs/S3785/rule.js +3 -3
  521. package/cjs/S3796/generated-meta.js +3 -3
  522. package/cjs/S3796/index.js +3 -3
  523. package/cjs/S3796/meta.js +3 -3
  524. package/cjs/S3796/rule.js +3 -3
  525. package/cjs/S3798/generated-meta.js +3 -3
  526. package/cjs/S3798/index.js +3 -3
  527. package/cjs/S3798/meta.js +3 -3
  528. package/cjs/S3800/generated-meta.js +3 -3
  529. package/cjs/S3800/index.js +3 -3
  530. package/cjs/S3800/meta.js +3 -3
  531. package/cjs/S3800/rule.js +3 -3
  532. package/cjs/S3801/generated-meta.js +3 -3
  533. package/cjs/S3801/index.js +3 -3
  534. package/cjs/S3801/meta.js +3 -3
  535. package/cjs/S3801/rule.js +3 -3
  536. package/cjs/S3827/generated-meta.js +3 -3
  537. package/cjs/S3827/index.js +3 -3
  538. package/cjs/S3827/meta.js +3 -3
  539. package/cjs/S3923/generated-meta.js +3 -3
  540. package/cjs/S3923/index.js +3 -3
  541. package/cjs/S3923/meta.js +3 -3
  542. package/cjs/S3923/rule.js +3 -3
  543. package/cjs/S3972/generated-meta.js +3 -3
  544. package/cjs/S3972/index.js +3 -3
  545. package/cjs/S3972/meta.js +3 -3
  546. package/cjs/S3972/rule.js +3 -3
  547. package/cjs/S3973/generated-meta.js +3 -3
  548. package/cjs/S3973/index.js +3 -3
  549. package/cjs/S3973/meta.js +3 -3
  550. package/cjs/S3973/rule.js +3 -3
  551. package/cjs/S3981/generated-meta.js +3 -3
  552. package/cjs/S3981/index.js +3 -3
  553. package/cjs/S3981/meta.js +3 -3
  554. package/cjs/S3981/rule.js +3 -3
  555. package/cjs/S3984/generated-meta.js +3 -3
  556. package/cjs/S3984/index.js +3 -3
  557. package/cjs/S3984/meta.js +3 -3
  558. package/cjs/S3984/rule.js +3 -3
  559. package/cjs/S4030/generated-meta.js +3 -3
  560. package/cjs/S4030/index.js +3 -3
  561. package/cjs/S4030/meta.js +3 -3
  562. package/cjs/S4030/rule.js +5 -5
  563. package/cjs/S4036/generated-meta.js +3 -3
  564. package/cjs/S4036/index.js +3 -3
  565. package/cjs/S4036/meta.js +3 -3
  566. package/cjs/S4036/rule.js +4 -4
  567. package/cjs/S4043/generated-meta.js +3 -3
  568. package/cjs/S4043/index.js +3 -3
  569. package/cjs/S4043/meta.js +3 -3
  570. package/cjs/S4043/rule.js +3 -3
  571. package/cjs/S4139/generated-meta.js +3 -3
  572. package/cjs/S4139/index.js +3 -3
  573. package/cjs/S4139/meta.js +3 -3
  574. package/cjs/S4139/rule.js +3 -3
  575. package/cjs/S4143/generated-meta.js +3 -3
  576. package/cjs/S4143/index.js +3 -3
  577. package/cjs/S4143/meta.js +3 -3
  578. package/cjs/S4143/rule.js +3 -3
  579. package/cjs/S4144/config.js +3 -3
  580. package/cjs/S4144/generated-meta.js +3 -3
  581. package/cjs/S4144/index.js +3 -3
  582. package/cjs/S4144/meta.js +3 -3
  583. package/cjs/S4144/rule.js +3 -3
  584. package/cjs/S4158/generated-meta.js +3 -3
  585. package/cjs/S4158/index.js +3 -3
  586. package/cjs/S4158/meta.js +3 -3
  587. package/cjs/S4158/rule.js +4 -4
  588. package/cjs/S4165/generated-meta.js +3 -3
  589. package/cjs/S4165/index.js +3 -3
  590. package/cjs/S4165/meta.js +3 -3
  591. package/cjs/S4165/rule.js +3 -3
  592. package/cjs/S4322/generated-meta.js +3 -3
  593. package/cjs/S4322/index.js +3 -3
  594. package/cjs/S4322/meta.js +3 -3
  595. package/cjs/S4322/rule.js +3 -3
  596. package/cjs/S4323/generated-meta.js +3 -3
  597. package/cjs/S4323/index.js +3 -3
  598. package/cjs/S4323/meta.js +3 -3
  599. package/cjs/S4323/rule.js +3 -3
  600. package/cjs/S4324/generated-meta.js +3 -3
  601. package/cjs/S4324/index.js +3 -3
  602. package/cjs/S4324/meta.js +3 -3
  603. package/cjs/S4324/rule.js +3 -3
  604. package/cjs/S4328/config.js +3 -3
  605. package/cjs/S4328/generated-meta.js +3 -3
  606. package/cjs/S4328/index.js +3 -3
  607. package/cjs/S4328/meta.js +3 -3
  608. package/cjs/S4328/rule.js +3 -3
  609. package/cjs/S4335/generated-meta.js +3 -3
  610. package/cjs/S4335/index.js +3 -3
  611. package/cjs/S4335/meta.js +3 -3
  612. package/cjs/S4335/rule.js +3 -3
  613. package/cjs/S4423/generated-meta.js +3 -3
  614. package/cjs/S4423/index.js +3 -3
  615. package/cjs/S4423/meta.js +3 -3
  616. package/cjs/S4423/rule.aws.js +3 -3
  617. package/cjs/S4423/rule.js +3 -3
  618. package/cjs/S4423/rule.lib.js +3 -3
  619. package/cjs/S4426/generated-meta.js +3 -3
  620. package/cjs/S4426/index.js +3 -3
  621. package/cjs/S4426/meta.js +3 -3
  622. package/cjs/S4426/rule.js +3 -3
  623. package/cjs/S4502/generated-meta.js +3 -3
  624. package/cjs/S4502/index.js +3 -3
  625. package/cjs/S4502/meta.js +3 -3
  626. package/cjs/S4502/rule.js +3 -3
  627. package/cjs/S4507/generated-meta.js +3 -3
  628. package/cjs/S4507/index.js +3 -3
  629. package/cjs/S4507/meta.js +3 -3
  630. package/cjs/S4507/rule.js +3 -3
  631. package/cjs/S4524/generated-meta.js +3 -3
  632. package/cjs/S4524/index.js +3 -3
  633. package/cjs/S4524/meta.js +3 -3
  634. package/cjs/S4524/rule.js +3 -3
  635. package/cjs/S4619/generated-meta.js +3 -3
  636. package/cjs/S4619/index.js +3 -3
  637. package/cjs/S4619/meta.js +3 -3
  638. package/cjs/S4619/rule.js +3 -3
  639. package/cjs/S4621/generated-meta.js +3 -3
  640. package/cjs/S4621/index.js +3 -3
  641. package/cjs/S4621/meta.js +3 -3
  642. package/cjs/S4621/rule.js +3 -3
  643. package/cjs/S4622/config.js +3 -3
  644. package/cjs/S4622/generated-meta.js +3 -3
  645. package/cjs/S4622/index.js +3 -3
  646. package/cjs/S4622/meta.js +3 -3
  647. package/cjs/S4622/rule.js +3 -3
  648. package/cjs/S4623/generated-meta.js +3 -3
  649. package/cjs/S4623/index.js +3 -3
  650. package/cjs/S4623/meta.js +3 -3
  651. package/cjs/S4623/rule.js +3 -3
  652. package/cjs/S4624/generated-meta.js +5 -4
  653. package/cjs/S4624/index.js +3 -3
  654. package/cjs/S4624/meta.js +3 -3
  655. package/cjs/S4624/rule.js +3 -3
  656. package/cjs/S4634/generated-meta.js +5 -4
  657. package/cjs/S4634/index.js +3 -3
  658. package/cjs/S4634/meta.js +3 -3
  659. package/cjs/S4634/rule.js +3 -3
  660. package/cjs/S4721/generated-meta.js +3 -3
  661. package/cjs/S4721/index.js +3 -3
  662. package/cjs/S4721/meta.js +3 -3
  663. package/cjs/S4721/rule.js +3 -3
  664. package/cjs/S4782/generated-meta.js +3 -3
  665. package/cjs/S4782/index.js +3 -3
  666. package/cjs/S4782/meta.js +3 -3
  667. package/cjs/S4782/rule.js +3 -3
  668. package/cjs/S4784/generated-meta.js +3 -3
  669. package/cjs/S4784/index.js +3 -3
  670. package/cjs/S4784/meta.js +3 -3
  671. package/cjs/S4784/rule.js +3 -3
  672. package/cjs/S4787/generated-meta.js +3 -3
  673. package/cjs/S4787/index.js +3 -3
  674. package/cjs/S4787/meta.js +3 -3
  675. package/cjs/S4787/rule.js +3 -3
  676. package/cjs/S4790/generated-meta.js +3 -3
  677. package/cjs/S4790/index.js +3 -3
  678. package/cjs/S4790/meta.js +3 -3
  679. package/cjs/S4790/rule.js +3 -3
  680. package/cjs/S4798/generated-meta.js +3 -3
  681. package/cjs/S4798/index.js +3 -3
  682. package/cjs/S4798/meta.js +3 -3
  683. package/cjs/S4798/rule.js +3 -3
  684. package/cjs/S4817/generated-meta.js +3 -3
  685. package/cjs/S4817/index.js +3 -3
  686. package/cjs/S4817/meta.js +3 -3
  687. package/cjs/S4817/rule.js +3 -3
  688. package/cjs/S4818/generated-meta.js +3 -3
  689. package/cjs/S4818/index.js +3 -3
  690. package/cjs/S4818/meta.js +3 -3
  691. package/cjs/S4818/rule.js +3 -3
  692. package/cjs/S4822/generated-meta.js +5 -4
  693. package/cjs/S4822/index.js +3 -3
  694. package/cjs/S4822/meta.js +3 -3
  695. package/cjs/S4822/rule.js +3 -3
  696. package/cjs/S4823/generated-meta.js +3 -3
  697. package/cjs/S4823/index.js +3 -3
  698. package/cjs/S4823/meta.js +3 -3
  699. package/cjs/S4823/rule.js +3 -3
  700. package/cjs/S4829/generated-meta.js +3 -3
  701. package/cjs/S4829/index.js +3 -3
  702. package/cjs/S4829/meta.js +3 -3
  703. package/cjs/S4829/rule.js +3 -3
  704. package/cjs/S4830/generated-meta.js +3 -3
  705. package/cjs/S4830/index.js +3 -3
  706. package/cjs/S4830/meta.js +3 -3
  707. package/cjs/S4830/rule.js +3 -3
  708. package/cjs/S5042/generated-meta.js +7 -7
  709. package/cjs/S5042/index.js +3 -3
  710. package/cjs/S5042/meta.js +3 -3
  711. package/cjs/S5042/rule.js +3 -3
  712. package/cjs/S5122/generated-meta.js +4 -4
  713. package/cjs/S5122/index.js +3 -3
  714. package/cjs/S5122/meta.js +3 -3
  715. package/cjs/S5122/rule.js +3 -3
  716. package/cjs/S5148/generated-meta.js +4 -4
  717. package/cjs/S5148/index.js +3 -3
  718. package/cjs/S5148/meta.js +3 -3
  719. package/cjs/S5148/rule.js +3 -3
  720. package/cjs/S5247/generated-meta.js +3 -3
  721. package/cjs/S5247/index.js +3 -3
  722. package/cjs/S5247/meta.js +3 -3
  723. package/cjs/S5247/rule.js +3 -3
  724. package/cjs/S5256/generated-meta.js +3 -3
  725. package/cjs/S5256/index.js +3 -3
  726. package/cjs/S5256/meta.js +3 -3
  727. package/cjs/S5256/rule.js +3 -3
  728. package/cjs/S5257/generated-meta.js +3 -3
  729. package/cjs/S5257/index.js +3 -3
  730. package/cjs/S5257/meta.js +3 -3
  731. package/cjs/S5257/rule.js +3 -3
  732. package/cjs/S5260/generated-meta.js +3 -3
  733. package/cjs/S5260/index.js +3 -3
  734. package/cjs/S5260/meta.js +3 -3
  735. package/cjs/S5260/rule.js +3 -3
  736. package/cjs/S5264/generated-meta.js +3 -3
  737. package/cjs/S5264/index.js +3 -3
  738. package/cjs/S5264/meta.js +3 -3
  739. package/cjs/S5264/rule.js +3 -3
  740. package/cjs/S5332/generated-meta.js +3 -3
  741. package/cjs/S5332/index.js +3 -3
  742. package/cjs/S5332/meta.js +3 -3
  743. package/cjs/S5332/rule.aws.js +3 -3
  744. package/cjs/S5332/rule.js +3 -3
  745. package/cjs/S5332/rule.lib.js +3 -3
  746. package/cjs/S5443/generated-meta.js +4 -4
  747. package/cjs/S5443/index.js +3 -3
  748. package/cjs/S5443/meta.js +3 -3
  749. package/cjs/S5443/rule.js +3 -3
  750. package/cjs/S5527/generated-meta.js +3 -3
  751. package/cjs/S5527/index.js +3 -3
  752. package/cjs/S5527/meta.js +3 -3
  753. package/cjs/S5527/rule.js +3 -3
  754. package/cjs/S5542/generated-meta.js +3 -3
  755. package/cjs/S5542/index.js +3 -3
  756. package/cjs/S5542/meta.js +3 -3
  757. package/cjs/S5542/rule.js +3 -3
  758. package/cjs/S5547/generated-meta.js +3 -3
  759. package/cjs/S5547/index.js +3 -3
  760. package/cjs/S5547/meta.js +3 -3
  761. package/cjs/S5547/rule.js +3 -3
  762. package/cjs/S5604/config.js +3 -3
  763. package/cjs/S5604/generated-meta.js +3 -3
  764. package/cjs/S5604/index.js +3 -3
  765. package/cjs/S5604/meta.js +3 -3
  766. package/cjs/S5604/rule.js +3 -3
  767. package/cjs/S5659/generated-meta.js +3 -3
  768. package/cjs/S5659/index.js +3 -3
  769. package/cjs/S5659/meta.js +3 -3
  770. package/cjs/S5659/rule.js +3 -3
  771. package/cjs/S5689/generated-meta.js +4 -4
  772. package/cjs/S5689/index.js +3 -3
  773. package/cjs/S5689/meta.js +3 -3
  774. package/cjs/S5689/rule.js +3 -3
  775. package/cjs/S5691/generated-meta.js +3 -3
  776. package/cjs/S5691/index.js +3 -3
  777. package/cjs/S5691/meta.js +3 -3
  778. package/cjs/S5691/rule.js +3 -3
  779. package/cjs/S5693/config.js +3 -3
  780. package/cjs/S5693/generated-meta.js +4 -4
  781. package/cjs/S5693/index.js +3 -3
  782. package/cjs/S5693/meta.js +3 -3
  783. package/cjs/S5693/rule.js +3 -3
  784. package/cjs/S5725/generated-meta.js +3 -3
  785. package/cjs/S5725/index.js +3 -3
  786. package/cjs/S5725/meta.js +3 -3
  787. package/cjs/S5725/rule.js +3 -3
  788. package/cjs/S5728/generated-meta.js +3 -3
  789. package/cjs/S5728/index.js +3 -3
  790. package/cjs/S5728/meta.js +3 -3
  791. package/cjs/S5728/rule.js +3 -3
  792. package/cjs/S5730/generated-meta.js +3 -3
  793. package/cjs/S5730/index.js +3 -3
  794. package/cjs/S5730/meta.js +3 -3
  795. package/cjs/S5730/rule.js +3 -3
  796. package/cjs/S5732/generated-meta.js +3 -3
  797. package/cjs/S5732/index.js +3 -3
  798. package/cjs/S5732/meta.js +3 -3
  799. package/cjs/S5732/rule.js +3 -3
  800. package/cjs/S5734/generated-meta.js +3 -3
  801. package/cjs/S5734/index.js +3 -3
  802. package/cjs/S5734/meta.js +3 -3
  803. package/cjs/S5734/rule.js +3 -3
  804. package/cjs/S5736/generated-meta.js +3 -3
  805. package/cjs/S5736/index.js +3 -3
  806. package/cjs/S5736/meta.js +3 -3
  807. package/cjs/S5736/rule.js +3 -3
  808. package/cjs/S5739/generated-meta.js +3 -3
  809. package/cjs/S5739/index.js +3 -3
  810. package/cjs/S5739/meta.js +3 -3
  811. package/cjs/S5739/rule.js +3 -3
  812. package/cjs/S5742/generated-meta.js +3 -3
  813. package/cjs/S5742/index.js +3 -3
  814. package/cjs/S5742/meta.js +3 -3
  815. package/cjs/S5742/rule.js +3 -3
  816. package/cjs/S5743/generated-meta.js +3 -3
  817. package/cjs/S5743/index.js +3 -3
  818. package/cjs/S5743/meta.js +3 -3
  819. package/cjs/S5743/rule.js +3 -3
  820. package/cjs/S5757/generated-meta.js +3 -3
  821. package/cjs/S5757/index.js +3 -3
  822. package/cjs/S5757/meta.js +3 -3
  823. package/cjs/S5757/rule.js +3 -3
  824. package/cjs/S5759/generated-meta.js +3 -3
  825. package/cjs/S5759/index.js +3 -3
  826. package/cjs/S5759/meta.js +3 -3
  827. package/cjs/S5759/rule.js +3 -3
  828. package/cjs/S5842/generated-meta.js +3 -3
  829. package/cjs/S5842/index.js +3 -3
  830. package/cjs/S5842/meta.js +3 -3
  831. package/cjs/S5842/rule.js +3 -3
  832. package/cjs/S5843/config.js +3 -3
  833. package/cjs/S5843/generated-meta.js +3 -3
  834. package/cjs/S5843/index.js +3 -3
  835. package/cjs/S5843/meta.js +3 -3
  836. package/cjs/S5843/rule.js +3 -3
  837. package/cjs/S5850/generated-meta.js +3 -3
  838. package/cjs/S5850/index.js +3 -3
  839. package/cjs/S5850/meta.js +3 -3
  840. package/cjs/S5850/rule.js +3 -3
  841. package/cjs/S5852/generated-meta.js +3 -3
  842. package/cjs/S5852/index.js +3 -3
  843. package/cjs/S5852/meta.js +3 -3
  844. package/cjs/S5852/rule.js +3 -3
  845. package/cjs/S5856/generated-meta.js +3 -3
  846. package/cjs/S5856/index.js +3 -3
  847. package/cjs/S5856/meta.js +3 -3
  848. package/cjs/S5856/rule.js +3 -3
  849. package/cjs/S5860/generated-meta.js +3 -3
  850. package/cjs/S5860/index.js +3 -3
  851. package/cjs/S5860/meta.js +3 -3
  852. package/cjs/S5860/rule.js +3 -3
  853. package/cjs/S5863/generated-meta.js +3 -3
  854. package/cjs/S5863/index.js +3 -3
  855. package/cjs/S5863/meta.js +3 -3
  856. package/cjs/S5863/rule.js +3 -3
  857. package/cjs/S5867/generated-meta.js +3 -3
  858. package/cjs/S5867/index.js +3 -3
  859. package/cjs/S5867/meta.js +3 -3
  860. package/cjs/S5867/rule.js +3 -3
  861. package/cjs/S5868/generated-meta.js +3 -3
  862. package/cjs/S5868/index.js +3 -3
  863. package/cjs/S5868/meta.js +3 -3
  864. package/cjs/S5868/rule.js +3 -3
  865. package/cjs/S5869/generated-meta.js +3 -3
  866. package/cjs/S5869/index.js +3 -3
  867. package/cjs/S5869/meta.js +3 -3
  868. package/cjs/S5869/rule.js +3 -3
  869. package/cjs/S5876/generated-meta.js +3 -3
  870. package/cjs/S5876/index.js +3 -3
  871. package/cjs/S5876/meta.js +3 -3
  872. package/cjs/S5876/rule.js +3 -3
  873. package/cjs/S5958/generated-meta.js +3 -3
  874. package/cjs/S5958/index.js +3 -3
  875. package/cjs/S5958/meta.js +3 -3
  876. package/cjs/S5958/rule.js +3 -3
  877. package/cjs/S5973/generated-meta.js +3 -3
  878. package/cjs/S5973/index.js +3 -3
  879. package/cjs/S5973/meta.js +3 -3
  880. package/cjs/S5973/rule.js +3 -3
  881. package/cjs/S6019/generated-meta.js +3 -3
  882. package/cjs/S6019/index.js +3 -3
  883. package/cjs/S6019/meta.js +3 -3
  884. package/cjs/S6019/rule.js +3 -3
  885. package/cjs/S6035/generated-meta.js +3 -3
  886. package/cjs/S6035/index.js +3 -3
  887. package/cjs/S6035/meta.js +3 -3
  888. package/cjs/S6035/rule.js +3 -3
  889. package/cjs/S6079/generated-meta.js +3 -3
  890. package/cjs/S6079/index.js +3 -3
  891. package/cjs/S6079/meta.js +3 -3
  892. package/cjs/S6079/rule.js +3 -3
  893. package/cjs/S6080/generated-meta.js +3 -3
  894. package/cjs/S6080/index.js +3 -3
  895. package/cjs/S6080/meta.js +3 -3
  896. package/cjs/S6080/rule.js +3 -3
  897. package/cjs/S6092/generated-meta.js +3 -3
  898. package/cjs/S6092/index.js +3 -3
  899. package/cjs/S6092/meta.js +3 -3
  900. package/cjs/S6092/rule.js +3 -3
  901. package/cjs/S6245/generated-meta.js +3 -3
  902. package/cjs/S6245/index.js +3 -3
  903. package/cjs/S6245/meta.js +3 -3
  904. package/cjs/S6245/rule.js +3 -3
  905. package/cjs/S6249/generated-meta.js +3 -3
  906. package/cjs/S6249/index.js +3 -3
  907. package/cjs/S6249/meta.js +3 -3
  908. package/cjs/S6249/rule.js +3 -3
  909. package/cjs/S6252/generated-meta.js +3 -3
  910. package/cjs/S6252/index.js +3 -3
  911. package/cjs/S6252/meta.js +3 -3
  912. package/cjs/S6252/rule.js +3 -3
  913. package/cjs/S6265/generated-meta.js +4 -4
  914. package/cjs/S6265/index.js +3 -3
  915. package/cjs/S6265/meta.js +3 -3
  916. package/cjs/S6265/rule.js +3 -3
  917. package/cjs/S6268/generated-meta.js +3 -3
  918. package/cjs/S6268/index.js +3 -3
  919. package/cjs/S6268/meta.js +3 -3
  920. package/cjs/S6268/rule.js +3 -3
  921. package/cjs/S6270/generated-meta.js +4 -4
  922. package/cjs/S6270/index.js +3 -3
  923. package/cjs/S6270/meta.js +3 -3
  924. package/cjs/S6270/rule.js +3 -3
  925. package/cjs/S6275/generated-meta.js +4 -4
  926. package/cjs/S6275/index.js +3 -3
  927. package/cjs/S6275/meta.js +3 -3
  928. package/cjs/S6275/rule.js +3 -3
  929. package/cjs/S6281/generated-meta.js +3 -3
  930. package/cjs/S6281/index.js +3 -3
  931. package/cjs/S6281/meta.js +3 -3
  932. package/cjs/S6281/rule.js +3 -3
  933. package/cjs/S6299/generated-meta.js +3 -3
  934. package/cjs/S6299/index.js +3 -3
  935. package/cjs/S6299/meta.js +3 -3
  936. package/cjs/S6299/rule.js +3 -3
  937. package/cjs/S6302/generated-meta.js +4 -4
  938. package/cjs/S6302/index.js +3 -3
  939. package/cjs/S6302/meta.js +3 -3
  940. package/cjs/S6302/rule.js +3 -3
  941. package/cjs/S6303/generated-meta.js +4 -4
  942. package/cjs/S6303/index.js +3 -3
  943. package/cjs/S6303/meta.js +3 -3
  944. package/cjs/S6303/rule.js +3 -3
  945. package/cjs/S6304/generated-meta.js +3 -3
  946. package/cjs/S6304/index.js +3 -3
  947. package/cjs/S6304/meta.js +3 -3
  948. package/cjs/S6304/rule.js +3 -3
  949. package/cjs/S6308/generated-meta.js +4 -4
  950. package/cjs/S6308/index.js +3 -3
  951. package/cjs/S6308/meta.js +3 -3
  952. package/cjs/S6308/rule.js +3 -3
  953. package/cjs/S6317/generated-meta.js +3 -3
  954. package/cjs/S6317/index.js +3 -3
  955. package/cjs/S6317/meta.js +3 -3
  956. package/cjs/S6317/rule.js +3 -3
  957. package/cjs/S6319/generated-meta.js +3 -3
  958. package/cjs/S6319/index.js +3 -3
  959. package/cjs/S6319/meta.js +3 -3
  960. package/cjs/S6319/rule.js +3 -3
  961. package/cjs/S6321/generated-meta.js +3 -3
  962. package/cjs/S6321/index.js +3 -3
  963. package/cjs/S6321/meta.js +3 -3
  964. package/cjs/S6321/rule.js +3 -3
  965. package/cjs/S6323/generated-meta.js +3 -3
  966. package/cjs/S6323/index.js +3 -3
  967. package/cjs/S6323/meta.js +3 -3
  968. package/cjs/S6323/rule.js +3 -3
  969. package/cjs/S6324/generated-meta.js +3 -3
  970. package/cjs/S6324/index.js +3 -3
  971. package/cjs/S6324/meta.js +3 -3
  972. package/cjs/S6324/rule.js +3 -3
  973. package/cjs/S6326/generated-meta.js +3 -3
  974. package/cjs/S6326/index.js +3 -3
  975. package/cjs/S6326/meta.js +3 -3
  976. package/cjs/S6326/rule.js +3 -3
  977. package/cjs/S6327/generated-meta.js +3 -3
  978. package/cjs/S6327/index.js +3 -3
  979. package/cjs/S6327/meta.js +3 -3
  980. package/cjs/S6327/rule.js +3 -3
  981. package/cjs/S6328/generated-meta.js +3 -3
  982. package/cjs/S6328/index.js +3 -3
  983. package/cjs/S6328/meta.js +3 -3
  984. package/cjs/S6328/rule.js +3 -3
  985. package/cjs/S6329/generated-meta.js +3 -3
  986. package/cjs/S6329/index.js +3 -3
  987. package/cjs/S6329/meta.js +3 -3
  988. package/cjs/S6329/rule.js +3 -3
  989. package/cjs/S6330/generated-meta.js +4 -4
  990. package/cjs/S6330/index.js +3 -3
  991. package/cjs/S6330/meta.js +3 -3
  992. package/cjs/S6330/rule.js +3 -3
  993. package/cjs/S6331/generated-meta.js +3 -3
  994. package/cjs/S6331/index.js +3 -3
  995. package/cjs/S6331/meta.js +3 -3
  996. package/cjs/S6331/rule.js +3 -3
  997. package/cjs/S6332/generated-meta.js +3 -3
  998. package/cjs/S6332/index.js +3 -3
  999. package/cjs/S6332/meta.js +3 -3
  1000. package/cjs/S6332/rule.js +3 -3
  1001. package/cjs/S6333/generated-meta.js +3 -3
  1002. package/cjs/S6333/index.js +3 -3
  1003. package/cjs/S6333/meta.js +3 -3
  1004. package/cjs/S6333/rule.js +3 -3
  1005. package/cjs/S6351/generated-meta.js +3 -3
  1006. package/cjs/S6351/index.js +3 -3
  1007. package/cjs/S6351/meta.js +3 -3
  1008. package/cjs/S6351/rule.js +3 -3
  1009. package/cjs/S6353/generated-meta.js +3 -3
  1010. package/cjs/S6353/index.js +3 -3
  1011. package/cjs/S6353/meta.js +3 -3
  1012. package/cjs/S6353/rule.js +3 -3
  1013. package/cjs/S6397/generated-meta.js +3 -3
  1014. package/cjs/S6397/index.js +3 -3
  1015. package/cjs/S6397/meta.js +3 -3
  1016. package/cjs/S6397/rule.js +3 -3
  1017. package/cjs/S6418/config.js +3 -3
  1018. package/cjs/S6418/generated-meta.js +3 -3
  1019. package/cjs/S6418/index.js +3 -3
  1020. package/cjs/S6418/meta.js +3 -3
  1021. package/cjs/S6418/rule.js +3 -3
  1022. package/cjs/S6426/generated-meta.js +3 -3
  1023. package/cjs/S6426/index.js +3 -3
  1024. package/cjs/S6426/meta.js +3 -3
  1025. package/cjs/S6426/rule.js +3 -3
  1026. package/cjs/S6437/generated-meta.js +3 -3
  1027. package/cjs/S6437/index.js +3 -3
  1028. package/cjs/S6437/meta.js +3 -3
  1029. package/cjs/S6437/rule.js +8 -3
  1030. package/cjs/S6439/generated-meta.js +4 -4
  1031. package/cjs/S6439/index.js +3 -3
  1032. package/cjs/S6439/meta.js +3 -3
  1033. package/cjs/S6439/rule.js +3 -3
  1034. package/cjs/S6442/generated-meta.js +4 -4
  1035. package/cjs/S6442/index.js +3 -3
  1036. package/cjs/S6442/meta.js +3 -3
  1037. package/cjs/S6442/rule.js +3 -3
  1038. package/cjs/S6443/generated-meta.js +4 -4
  1039. package/cjs/S6443/index.js +3 -3
  1040. package/cjs/S6443/meta.js +3 -3
  1041. package/cjs/S6443/rule.js +3 -3
  1042. package/cjs/S6486/generated-meta.js +3 -3
  1043. package/cjs/S6486/index.js +3 -3
  1044. package/cjs/S6486/meta.js +3 -3
  1045. package/cjs/S6486/rule.js +4 -4
  1046. package/cjs/S6564/generated-meta.js +3 -3
  1047. package/cjs/S6564/index.js +3 -3
  1048. package/cjs/S6564/meta.js +3 -3
  1049. package/cjs/S6564/rule.js +3 -3
  1050. package/cjs/S6594/generated-meta.js +3 -3
  1051. package/cjs/S6594/index.js +3 -3
  1052. package/cjs/S6594/meta.js +3 -3
  1053. package/cjs/S6594/rule.js +3 -3
  1054. package/cjs/S6627/generated-meta.js +3 -3
  1055. package/cjs/S6627/index.js +3 -3
  1056. package/cjs/S6627/meta.js +3 -3
  1057. package/cjs/S6627/rule.js +3 -3
  1058. package/cjs/S6759/generated-meta.js +3 -3
  1059. package/cjs/S6759/index.js +3 -3
  1060. package/cjs/S6759/meta.js +3 -3
  1061. package/cjs/S6759/rule.js +3 -3
  1062. package/cjs/S6958/generated-meta.js +3 -3
  1063. package/cjs/S6958/index.js +3 -3
  1064. package/cjs/S6958/meta.js +3 -3
  1065. package/cjs/S6959/generated-meta.js +3 -3
  1066. package/cjs/S6959/index.js +3 -3
  1067. package/cjs/S6959/meta.js +3 -3
  1068. package/cjs/S6959/rule.js +3 -3
  1069. package/cjs/S7059/generated-meta.js +5 -4
  1070. package/cjs/S7059/index.js +3 -3
  1071. package/cjs/S7059/meta.js +3 -3
  1072. package/cjs/S7059/rule.js +3 -3
  1073. package/cjs/S7639/generated-meta.js +3 -3
  1074. package/cjs/S7639/index.js +3 -3
  1075. package/cjs/S7639/meta.js +3 -3
  1076. package/cjs/S7639/rule.js +3 -3
  1077. package/cjs/S7790/generated-meta.js +3 -3
  1078. package/cjs/S7790/index.js +3 -3
  1079. package/cjs/S7790/meta.js +3 -3
  1080. package/cjs/S7790/rule.js +3 -3
  1081. package/cjs/S8441/generated-meta.js +3 -3
  1082. package/cjs/S8441/index.js +3 -3
  1083. package/cjs/S8441/meta.js +3 -3
  1084. package/cjs/S8441/rule.js +3 -3
  1085. package/cjs/S8479/generated-meta.js +51 -0
  1086. package/cjs/S8479/index.js +21 -0
  1087. package/cjs/S8479/meta.js +22 -0
  1088. package/cjs/S8479/rule.js +239 -0
  1089. package/cjs/S881/generated-meta.js +3 -3
  1090. package/cjs/S881/index.js +3 -3
  1091. package/cjs/S881/meta.js +3 -3
  1092. package/cjs/S881/rule.js +3 -3
  1093. package/cjs/S888/generated-meta.js +3 -3
  1094. package/cjs/S888/index.js +3 -3
  1095. package/cjs/S888/meta.js +3 -3
  1096. package/cjs/S888/rule.js +3 -3
  1097. package/cjs/S930/generated-meta.js +3 -3
  1098. package/cjs/S930/index.js +3 -3
  1099. package/cjs/S930/meta.js +3 -3
  1100. package/cjs/S930/rule.js +3 -3
  1101. package/cjs/helpers/accessibility.js +3 -3
  1102. package/cjs/helpers/ast.js +1 -1
  1103. package/cjs/helpers/cache.js +3 -3
  1104. package/cjs/helpers/collection.js +3 -3
  1105. package/cjs/helpers/configs.js +2 -2
  1106. package/cjs/helpers/entropy.js +5 -5
  1107. package/cjs/helpers/files.js +4 -4
  1108. package/cjs/helpers/find-up/closest.js +3 -3
  1109. package/cjs/helpers/internal-metrics.js +27 -0
  1110. package/cjs/helpers/module-ts.js +8 -3
  1111. package/cjs/helpers/package-jsons/closest.js +3 -3
  1112. package/cjs/helpers/package-jsons/dependencies.js +135 -1
  1113. package/cjs/helpers/package-jsons/index.js +1 -0
  1114. package/cjs/helpers/package-jsons/parse.js +3 -3
  1115. package/cjs/helpers/recognizers/Detector.js +3 -3
  1116. package/cjs/helpers/recognizers/detectors/CamelCaseDetector.js +3 -3
  1117. package/cjs/helpers/recognizers/detectors/ContainsDetector.js +3 -3
  1118. package/cjs/helpers/recognizers/detectors/EndWithDetector.js +3 -3
  1119. package/cjs/helpers/recognizers/detectors/KeywordsDetector.js +3 -3
  1120. package/cjs/plugin-rules.js +5 -3
  1121. package/docs/aws-ec2-unencrypted-ebs-volume.md +1 -1
  1122. package/docs/aws-iam-all-privileges.md +1 -1
  1123. package/docs/aws-iam-public-access.md +1 -1
  1124. package/docs/aws-opensearchservice-domain.md +1 -1
  1125. package/docs/aws-rds-unencrypted-databases.md +1 -1
  1126. package/docs/aws-s3-bucket-granted-access.md +1 -1
  1127. package/docs/aws-sqs-unencrypted-queue.md +1 -1
  1128. package/docs/class-name.md +3 -3
  1129. package/docs/content-length.md +1 -1
  1130. package/docs/cors.md +1 -1
  1131. package/docs/dompurify-unsafe-config.md +7 -0
  1132. package/docs/insecure-cookie.md +1 -1
  1133. package/docs/link-with-target-blank.md +1 -1
  1134. package/docs/no-hardcoded-ip.md +1 -1
  1135. package/docs/no-unsafe-unzip.md +4 -2
  1136. package/docs/publicly-writable-directories.md +1 -1
  1137. package/docs/x-powered-by.md +1 -1
  1138. package/package.json +4 -4
  1139. package/types/S101/config.d.ts +1 -1
  1140. package/types/S1128/generated-meta.d.ts +1 -0
  1141. package/types/S1313/generated-meta.d.ts +1 -1
  1142. package/types/S134/config.d.ts +1 -1
  1143. package/types/S2208/generated-meta.d.ts +1 -0
  1144. package/types/S3317/generated-meta.d.ts +1 -0
  1145. package/types/S3499/generated-meta.d.ts +1 -0
  1146. package/types/S3500/generated-meta.d.ts +1 -0
  1147. package/types/S3513/generated-meta.d.ts +1 -0
  1148. package/types/S3514/generated-meta.d.ts +1 -0
  1149. package/types/S3524/generated-meta.d.ts +1 -0
  1150. package/types/S3525/generated-meta.d.ts +1 -0
  1151. package/types/S3531/generated-meta.d.ts +1 -0
  1152. package/types/S3533/generated-meta.d.ts +1 -0
  1153. package/types/S3776/meta.d.ts +2 -0
  1154. package/types/S4624/generated-meta.d.ts +1 -0
  1155. package/types/S4634/generated-meta.d.ts +1 -0
  1156. package/types/S4822/generated-meta.d.ts +1 -0
  1157. package/types/S5042/generated-meta.d.ts +2 -2
  1158. package/types/S6439/generated-meta.d.ts +1 -1
  1159. package/types/S6442/generated-meta.d.ts +1 -1
  1160. package/types/S6443/generated-meta.d.ts +1 -1
  1161. package/types/S7059/generated-meta.d.ts +1 -0
  1162. package/types/S8479/generated-meta.d.ts +17 -0
  1163. package/types/S8479/index.d.ts +1 -0
  1164. package/types/S8479/meta.d.ts +2 -0
  1165. package/types/S8479/rule.d.ts +2 -0
  1166. package/types/helpers/files.d.ts +6 -21
  1167. package/types/helpers/internal-metrics.d.ts +5 -0
  1168. package/types/helpers/package-jsons/dependencies.d.ts +36 -0
  1169. package/types/plugin-rules.d.ts +1 -0
@@ -0,0 +1,239 @@
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/S8479/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
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.rule = void 0;
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
56
+ const module_ts_js_1 = require("../helpers/module-ts.js");
57
+ const parser_services_js_1 = require("../helpers/parser-services.js");
58
+ const meta = __importStar(require("./generated-meta.js"));
59
+ const DANGEROUS_TAGS = new Set([
60
+ 'script',
61
+ 'iframe',
62
+ 'object',
63
+ 'embed',
64
+ 'form',
65
+ 'input',
66
+ 'textarea',
67
+ 'select',
68
+ 'meta',
69
+ 'link',
70
+ 'style',
71
+ 'base',
72
+ 'svg',
73
+ 'math',
74
+ ]);
75
+ const EVENT_HANDLER_PATTERN = /^on[a-z]/i;
76
+ /**
77
+ * URI-carrying attributes that must never be added to ADD_URI_SAFE_ATTR.
78
+ * Marking them as "URI-safe" skips DOMPurify's javascript: URI check,
79
+ * enabling 1-click XSS via crafted href/src/action values.
80
+ */
81
+ const DANGEROUS_URI_ATTRS = new Set(['href', 'src', 'action', 'formaction', 'xlink:href', 'data']);
82
+ /**
83
+ * Boolean options that are dangerous when set to the specified value.
84
+ */
85
+ const DANGEROUS_BOOLEAN_OPTIONS = {
86
+ ALLOW_UNKNOWN_PROTOCOLS: true,
87
+ WHOLE_DOCUMENT: true,
88
+ SAFE_FOR_XML: false,
89
+ SANITIZE_DOM: false,
90
+ RETURN_TRUSTED_TYPE: false,
91
+ };
92
+ const MAX_ACTIONS_IN_MESSAGE = 2;
93
+ const SANITIZE_FQNS = new Set(['dompurify.sanitize', 'isomorphic-dompurify.sanitize']);
94
+ exports.rule = {
95
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
96
+ messages: {
97
+ unsafeConfig: 'unsafeConfig',
98
+ },
99
+ }),
100
+ create(context) {
101
+ const services = context.sourceCode.parserServices;
102
+ const hasTypeInformation = (0, parser_services_js_1.isRequiredParserServices)(services);
103
+ return {
104
+ CallExpression(node) {
105
+ let fqn = null;
106
+ if (hasTypeInformation) {
107
+ const tsNode = services.esTreeNodeToTSNodeMap.get(node);
108
+ fqn = (0, module_ts_js_1.getFullyQualifiedNameTS)(services, tsNode);
109
+ }
110
+ else {
111
+ fqn = (0, module_js_1.getFullyQualifiedName)(context, node);
112
+ }
113
+ if (!fqn || !SANITIZE_FQNS.has(fqn)) {
114
+ return;
115
+ }
116
+ const configArg = node.arguments[1];
117
+ if (configArg?.type !== 'ObjectExpression') {
118
+ return;
119
+ }
120
+ const actions = collectActions(configArg);
121
+ if (actions.length > 0) {
122
+ context.report({
123
+ message: buildMessage(actions),
124
+ node: configArg,
125
+ });
126
+ }
127
+ },
128
+ };
129
+ },
130
+ };
131
+ function collectActions(config) {
132
+ const actions = [];
133
+ for (const prop of config.properties) {
134
+ if (prop.type !== 'Property') {
135
+ continue;
136
+ }
137
+ const action = getActionForProperty(prop);
138
+ if (action) {
139
+ actions.push(action);
140
+ }
141
+ }
142
+ return actions;
143
+ }
144
+ function getActionForProperty(prop) {
145
+ const key = getPropertyName(prop);
146
+ if (!key) {
147
+ return undefined;
148
+ }
149
+ switch (key) {
150
+ case 'ADD_TAGS':
151
+ case 'ALLOWED_TAGS': {
152
+ const dangerous = getDangerousArrayElements(prop.value, DANGEROUS_TAGS);
153
+ return dangerous.length > 0 ? `remove ${formatList(dangerous)} from '${key}'` : undefined;
154
+ }
155
+ case 'ADD_ATTR':
156
+ case 'ALLOWED_ATTR': {
157
+ const dangerous = getDangerousAttributes(prop.value);
158
+ return dangerous.length > 0 ? `remove ${formatList(dangerous)} from '${key}'` : undefined;
159
+ }
160
+ case 'ADD_URI_SAFE_ATTR': {
161
+ const dangerous = getDangerousArrayElements(prop.value, DANGEROUS_URI_ATTRS);
162
+ return dangerous.length > 0 ? `remove ${formatList(dangerous)} from '${key}'` : undefined;
163
+ }
164
+ case 'ALLOWED_URI_REGEXP':
165
+ return isUnanchoredRegex(prop.value)
166
+ ? `anchor the 'ALLOWED_URI_REGEXP' pattern with '^' to prevent partial URI matches`
167
+ : undefined;
168
+ default:
169
+ if (key in DANGEROUS_BOOLEAN_OPTIONS) {
170
+ const dangerousValue = DANGEROUS_BOOLEAN_OPTIONS[key];
171
+ return isBooleanLiteral(prop.value, dangerousValue)
172
+ ? `set '${key}' to '${!dangerousValue}'`
173
+ : undefined;
174
+ }
175
+ return undefined;
176
+ }
177
+ }
178
+ function buildMessage(actions) {
179
+ const shown = actions.slice(0, MAX_ACTIONS_IN_MESSAGE);
180
+ const remaining = actions.length - shown.length;
181
+ let message = `To prevent DOM-based attacks, ${joinActions(shown)}.`;
182
+ if (remaining > 0) {
183
+ message += ` Plus ${remaining} more ${remaining === 1 ? 'issue' : 'issues'}. Read 'How to fix it' for all details.`;
184
+ }
185
+ return message;
186
+ }
187
+ function joinActions(actions) {
188
+ if (actions.length === 1) {
189
+ return actions[0];
190
+ }
191
+ return `${actions.slice(0, -1).join(', ')}, and ${actions.at(-1)}`;
192
+ }
193
+ function getPropertyName(prop) {
194
+ if (prop.key.type === 'Identifier') {
195
+ return prop.key.name;
196
+ }
197
+ if (prop.key.type === 'Literal' && typeof prop.key.value === 'string') {
198
+ return prop.key.value;
199
+ }
200
+ return undefined;
201
+ }
202
+ function getDangerousArrayElements(node, dangerousSet) {
203
+ if (node.type !== 'ArrayExpression') {
204
+ return [];
205
+ }
206
+ return node.elements
207
+ .filter((el) => el !== null &&
208
+ el.type === 'Literal' &&
209
+ typeof el.value === 'string' &&
210
+ dangerousSet.has(el.value.toLowerCase()))
211
+ .map(el => el.value);
212
+ }
213
+ function getDangerousAttributes(node) {
214
+ if (node.type !== 'ArrayExpression') {
215
+ return [];
216
+ }
217
+ return node.elements
218
+ .filter((el) => el !== null &&
219
+ el.type === 'Literal' &&
220
+ typeof el.value === 'string' &&
221
+ EVENT_HANDLER_PATTERN.test(el.value))
222
+ .map(el => el.value);
223
+ }
224
+ function formatList(items) {
225
+ const quoted = items.map(item => `'${item}'`);
226
+ if (quoted.length === 1) {
227
+ return quoted[0];
228
+ }
229
+ return `${quoted.slice(0, -1).join(', ')} and ${quoted.at(-1)}`;
230
+ }
231
+ function isBooleanLiteral(node, value) {
232
+ return node.type === 'Literal' && node.value === value;
233
+ }
234
+ function isUnanchoredRegex(node) {
235
+ if (node.type === 'Literal' && 'regex' in node && node.regex) {
236
+ return !node.regex.pattern.startsWith('^');
237
+ }
238
+ return false;
239
+ }
@@ -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/S881/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/S881/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/S881/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
package/cjs/S888/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/S888/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/S888/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
package/cjs/S930/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/S930/meta.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hasSecondaries = 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/S930/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
@@ -7,11 +7,11 @@ exports.getElementType = void 0;
7
7
  exports.isPresentationTable = isPresentationTable;
8
8
  /*
9
9
  * SonarQube JavaScript Plugin
10
- * Copyright (C) 2011-2025 SonarSource Sàrl
10
+ * Copyright (C) SonarSource Sàrl
11
11
  * mailto:info AT sonarsource DOT com
12
12
  *
13
- * This program is free software; you can redistribute it and/or
14
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
13
+ * You can redistribute and/or modify this program under the terms of
14
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
15
15
  *
16
16
  * This program is distributed in the hope that it will be useful,
17
17
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -188,7 +188,7 @@ function isUndefined(node) {
188
188
  * myObj.prop1 += 3;
189
189
  */
190
190
  function isElementWrite(statement, ref, recursive = true) {
191
- if (statement.expression.type === 'AssignmentExpression') {
191
+ if (statement.expression?.type === 'AssignmentExpression') {
192
192
  const assignmentExpression = statement.expression;
193
193
  const lhs = assignmentExpression.left;
194
194
  return isMemberExpressionReference(lhs, ref, recursive);
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComputedCache = 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
@@ -5,11 +5,11 @@ exports.flatMap = flatMap;
5
5
  exports.last = last;
6
6
  /*
7
7
  * SonarQube JavaScript Plugin
8
- * Copyright (C) 2011-2025 SonarSource Sàrl
8
+ * Copyright (C) SonarSource Sàrl
9
9
  * mailto:info AT sonarsource DOT com
10
10
  *
11
- * This program is free software; you can redistribute it and/or
12
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
11
+ * You can redistribute and/or modify this program under the terms of
12
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
13
13
  *
14
14
  * This program is distributed in the hope that it will be useful,
15
15
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -93,8 +93,8 @@ function applyTransformations(fields, mergedValues) {
93
93
  // fieldDefinition is a single property: { default, customForConfiguration, ... }
94
94
  // mergedConfigEntry is a scalar value (string, number, boolean)
95
95
  //
96
- // Example — S1441 fieldDefinition = { default: 'single', customDefault: true, customForConfiguration: (v) => v ? 'single' : 'double' }
97
- // mergedConfigEntry = true (boolean from SQ)
96
+ // Example — S1441 fieldDefinition = { default: 'single', customForConfiguration: (v) => ... }
97
+ // mergedConfigEntry = 'true' (string from SQ)
98
98
  // After transform: 'single' (string expected by ESLint quotes rule)
99
99
  return fieldDefinition.customForConfiguration(mergedConfigEntry);
100
100
  }
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shannonEntropy = shannonEntropy;
2
4
  /*
3
5
  * SonarQube JavaScript Plugin
4
- * Copyright (C) 2011-2025 SonarSource Sàrl
6
+ * Copyright (C) SonarSource Sàrl
5
7
  * mailto:info AT sonarsource DOT com
6
8
  *
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.
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.
9
11
  *
10
12
  * This program is distributed in the hope that it will be useful,
11
13
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,8 +17,6 @@
15
17
  * You should have received a copy of the Sonar Source-Available License
16
18
  * along with this program; if not, see https://sonarsource.com/license/ssal/
17
19
  */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.shannonEntropy = shannonEntropy;
20
20
  function shannonEntropy(str) {
21
21
  if (!str) {
22
22
  return 0;
@@ -11,11 +11,11 @@ exports.joinPaths = joinPaths;
11
11
  exports.basenamePath = basenamePath;
12
12
  /*
13
13
  * SonarQube JavaScript Plugin
14
- * Copyright (C) 2011-2025 SonarSource Sàrl
14
+ * Copyright (C) SonarSource Sàrl
15
15
  * mailto:info AT sonarsource DOT com
16
16
  *
17
- * This program is free software; you can redistribute it and/or
18
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
17
+ * You can redistribute and/or modify this program under the terms of
18
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
19
19
  *
20
20
  * This program is distributed in the hope that it will be useful,
21
21
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -35,6 +35,7 @@ exports.ROOT_PATH = '/';
35
35
  * Byte Order Marker
36
36
  */
37
37
  const BOM_BYTE = 0xfeff;
38
+ const isWindows = process.platform === 'win32';
38
39
  /**
39
40
  * Removes any Byte Order Marker (BOM) from a string's head
40
41
  *
@@ -49,7 +50,6 @@ function stripBOM(str) {
49
50
  }
50
51
  return str;
51
52
  }
52
- const isWindows = process.platform === 'win32';
53
53
  /**
54
54
  * Normalizes a path to Unix format (forward slashes).
55
55
  * For absolute paths on Windows, resolves them to ensure they have a drive letter.
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.closestPatternCache = void 0;
7
7
  /*
8
8
  * SonarQube JavaScript Plugin
9
- * Copyright (C) 2011-2025 SonarSource Sàrl
9
+ * Copyright (C) SonarSource Sàrl
10
10
  * mailto:info AT sonarsource DOT com
11
11
  *
12
- * This program is free software; you can redistribute it and/or
13
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
12
+ * You can redistribute and/or modify this program under the terms of
13
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
14
14
  *
15
15
  * This program is distributed in the hope that it will be useful,
16
16
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInternalMetricsSettings = toInternalMetricsSettings;
4
+ exports.getInternalMetricsSink = getInternalMetricsSink;
5
+ const SONAR_INTERNAL_SETTINGS_KEY = 'sonarInternal';
6
+ const SONAR_INTERNAL_METRICS_SINK_KEY = 'metricsSink';
7
+ function toInternalMetricsSettings(metricsSink) {
8
+ return {
9
+ [SONAR_INTERNAL_SETTINGS_KEY]: {
10
+ [SONAR_INTERNAL_METRICS_SINK_KEY]: metricsSink,
11
+ },
12
+ };
13
+ }
14
+ function getInternalMetricsSink(settings) {
15
+ if (!settings || typeof settings !== 'object') {
16
+ return undefined;
17
+ }
18
+ const sonarInternal = settings[SONAR_INTERNAL_SETTINGS_KEY];
19
+ if (!sonarInternal || typeof sonarInternal !== 'object') {
20
+ return undefined;
21
+ }
22
+ const metricsSink = sonarInternal[SONAR_INTERNAL_METRICS_SINK_KEY];
23
+ if (!metricsSink || typeof metricsSink !== 'object') {
24
+ return undefined;
25
+ }
26
+ return metricsSink;
27
+ }
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getFullyQualifiedNameTS = getFullyQualifiedNameTS;
7
7
  /*
8
8
  * SonarQube JavaScript Plugin
9
- * Copyright (C) 2011-2025 SonarSource Sàrl
9
+ * Copyright (C) SonarSource Sàrl
10
10
  * mailto:info AT sonarsource DOT com
11
11
  *
12
- * This program is free software; you can redistribute it and/or
13
- * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
12
+ * You can redistribute and/or modify this program under the terms of
13
+ * the Sonar Source-Available License Version 1, as published by SonarSource Sàrl.
14
14
  *
15
15
  * This program is distributed in the hope that it will be useful,
16
16
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -26,7 +26,12 @@ const module_js_1 = require("./module.js");
26
26
  function getFullyQualifiedNameTS(services, rootNode) {
27
27
  const result = [];
28
28
  let node = rootNode;
29
+ const visitedNodes = new Set();
29
30
  while (node) {
31
+ if (visitedNodes.has(node)) {
32
+ return null;
33
+ }
34
+ visitedNodes.add(node);
30
35
  switch (node.kind) {
31
36
  case typescript_1.default.SyntaxKind.CallExpression: {
32
37
  const callExpressionNode = node;
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getClosestPackageJSONDir = getClosestPackageJSONDir;
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