eslint-plugin-sonarjs 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/README.md +1 -1
  2. package/cjs/S100/rule.js +7 -5
  3. package/cjs/S101/rule.js +2 -2
  4. package/cjs/S104/rule.js +2 -2
  5. package/cjs/S105/rule.js +2 -2
  6. package/cjs/S1066/rule.js +5 -4
  7. package/cjs/S1067/rule.js +8 -6
  8. package/cjs/S1110/rule.js +7 -5
  9. package/cjs/S1119/rule.js +2 -2
  10. package/cjs/S1121/rule.js +4 -3
  11. package/cjs/S1125/rule.js +9 -8
  12. package/cjs/S1126/rule.js +2 -2
  13. package/cjs/S1128/rule.js +8 -5
  14. package/cjs/S1134/rule.js +2 -2
  15. package/cjs/S1135/rule.js +2 -2
  16. package/cjs/S1154/rule.js +6 -4
  17. package/cjs/S117/rule.js +6 -5
  18. package/cjs/S1172/rule.js +2 -2
  19. package/cjs/S1192/rule.js +5 -4
  20. package/cjs/S1219/rule.js +4 -3
  21. package/cjs/S1226/rule.js +6 -4
  22. package/cjs/S124/rule.js +2 -2
  23. package/cjs/S125/rule.js +9 -7
  24. package/cjs/S126/rule.js +2 -2
  25. package/cjs/S1264/rule.js +2 -2
  26. package/cjs/S128/rule.js +4 -3
  27. package/cjs/S1291/rule.js +2 -2
  28. package/cjs/S1301/rule.js +2 -2
  29. package/cjs/S1313/rule.js +2 -2
  30. package/cjs/S134/rule.js +7 -5
  31. package/cjs/S135/rule.js +5 -4
  32. package/cjs/S138/rule.js +9 -6
  33. package/cjs/S1439/rule.js +2 -2
  34. package/cjs/S1444/rule.js +2 -2
  35. package/cjs/S1451/rule.js +2 -2
  36. package/cjs/S1472/rule.js +2 -2
  37. package/cjs/S1479/rule.js +2 -2
  38. package/cjs/S1481/rule.js +2 -2
  39. package/cjs/S1488/rule.js +11 -7
  40. package/cjs/S1515/rule.js +10 -8
  41. package/cjs/S1523/rule.js +5 -5
  42. package/cjs/S1526/rule.js +5 -4
  43. package/cjs/S1527/rule.js +2 -2
  44. package/cjs/S1528/rule.js +2 -2
  45. package/cjs/S1529/rule.js +4 -3
  46. package/cjs/S1530/rule.js +5 -3
  47. package/cjs/S1533/rule.js +2 -2
  48. package/cjs/S1535/rule.js +2 -2
  49. package/cjs/S1541/rule.js +10 -7
  50. package/cjs/S1607/rule.js +22 -20
  51. package/cjs/S1764/rule.js +10 -7
  52. package/cjs/S1821/rule.js +2 -2
  53. package/cjs/S1848/rule.js +10 -7
  54. package/cjs/S1854/rule.js +18 -14
  55. package/cjs/S1862/rule.js +10 -8
  56. package/cjs/S1871/rule.js +21 -16
  57. package/cjs/S1874/rule.js +4 -3
  58. package/cjs/S1940/rule.js +2 -2
  59. package/cjs/S1994/rule.js +10 -7
  60. package/cjs/S2004/rule.js +9 -7
  61. package/cjs/S2068/rule.js +75 -12
  62. package/cjs/S2077/rule.js +10 -6
  63. package/cjs/S2092/rule.js +2 -2
  64. package/cjs/S2123/rule.js +2 -2
  65. package/cjs/S2137/rule.js +2 -2
  66. package/cjs/S2138/rule.js +4 -3
  67. package/cjs/S2187/rule.js +2 -2
  68. package/cjs/S2201/rule.js +8 -5
  69. package/cjs/S2208/rule.js +2 -2
  70. package/cjs/S2234/rule.js +15 -11
  71. package/cjs/S2245/rule.js +4 -3
  72. package/cjs/S2251/rule.js +5 -4
  73. package/cjs/S2255/rule.js +6 -5
  74. package/cjs/S2259/rule.js +14 -9
  75. package/cjs/S2301/rule.js +14 -9
  76. package/cjs/S2310/rule.js +14 -11
  77. package/cjs/S2392/rule.js +7 -5
  78. package/cjs/S2424/rule.js +2 -2
  79. package/cjs/S2428/rule.js +8 -6
  80. package/cjs/S2486/rule.js +4 -3
  81. package/cjs/S2589/rule.js +12 -10
  82. package/cjs/S2598/rule.js +17 -14
  83. package/cjs/S2612/generated-meta.js +1 -1
  84. package/cjs/S2612/rule.js +8 -6
  85. package/cjs/S2639/rule.js +2 -2
  86. package/cjs/S2681/rule.js +2 -2
  87. package/cjs/S2692/rule.js +6 -4
  88. package/cjs/S2699/rule.js +40 -31
  89. package/cjs/S2703/rule.js +2 -2
  90. package/cjs/S2737/rule.js +6 -4
  91. package/cjs/S2755/rule.js +9 -6
  92. package/cjs/S2757/rule.js +2 -2
  93. package/cjs/S2817/rule.js +10 -7
  94. package/cjs/S2819/rule.js +16 -12
  95. package/cjs/S2870/rule.js +8 -5
  96. package/cjs/S2871/rule.js +12 -9
  97. package/cjs/S2970/rule.js +9 -8
  98. package/cjs/S2990/rule.js +2 -2
  99. package/cjs/S2999/rule.js +10 -7
  100. package/cjs/S3001/rule.js +2 -2
  101. package/cjs/S3003/rule.js +10 -7
  102. package/cjs/S3317/rule.js +4 -3
  103. package/cjs/S3330/rule.js +2 -2
  104. package/cjs/S3358/rule.js +2 -2
  105. package/cjs/S3402/rule.js +14 -10
  106. package/cjs/S3403/rule.js +10 -7
  107. package/cjs/S3415/rule.js +16 -13
  108. package/cjs/S3499/rule.js +5 -4
  109. package/cjs/S3500/rule.js +5 -4
  110. package/cjs/S3513/rule.js +5 -4
  111. package/cjs/S3514/rule.js +10 -7
  112. package/cjs/S3516/rule.js +10 -7
  113. package/cjs/S3524/rule.js +2 -2
  114. package/cjs/S3525/rule.js +6 -4
  115. package/cjs/S3531/rule.js +5 -3
  116. package/cjs/S3533/rule.js +8 -7
  117. package/cjs/S3579/rule.js +6 -4
  118. package/cjs/S3616/rule.js +6 -4
  119. package/cjs/S3626/rule.js +4 -3
  120. package/cjs/S3686/rule.js +7 -5
  121. package/cjs/S3699/rule.js +4 -3
  122. package/cjs/S3735/rule.js +8 -5
  123. package/cjs/S3757/rule.js +8 -6
  124. package/cjs/S3758/rule.js +9 -7
  125. package/cjs/S3760/rule.js +24 -21
  126. package/cjs/S3776/rule.js +26 -22
  127. package/cjs/S3782/rule.js +6 -4
  128. package/cjs/S3785/rule.js +9 -6
  129. package/cjs/S3796/rule.js +12 -8
  130. package/cjs/S3798/rule.js +4 -3
  131. package/cjs/S3800/rule.js +16 -11
  132. package/cjs/S3801/rule.js +15 -11
  133. package/cjs/S3827/rule.js +9 -6
  134. package/cjs/S3923/rule.js +9 -6
  135. package/cjs/S3972/rule.js +5 -4
  136. package/cjs/S3973/rule.js +7 -5
  137. package/cjs/S3981/rule.js +4 -3
  138. package/cjs/S3984/rule.js +4 -3
  139. package/cjs/S4030/rule.js +10 -7
  140. package/cjs/S4036/rule.js +7 -5
  141. package/cjs/S4043/rule.js +12 -8
  142. package/cjs/S4139/rule.js +7 -5
  143. package/cjs/S4143/rule.js +12 -9
  144. package/cjs/S4144/rule.js +12 -9
  145. package/cjs/S4158/rule.js +11 -8
  146. package/cjs/S4165/rule.js +14 -12
  147. package/cjs/S4322/rule.js +8 -5
  148. package/cjs/S4323/rule.js +4 -3
  149. package/cjs/S4324/rule.js +7 -5
  150. package/cjs/S4328/rule.js +2 -2
  151. package/cjs/S4335/rule.js +6 -4
  152. package/cjs/S4423/rule.js +4 -3
  153. package/cjs/S4423/rule.lib.js +8 -7
  154. package/cjs/S4426/rule.js +11 -10
  155. package/cjs/S4502/rule.js +16 -13
  156. package/cjs/S4507/rule.js +8 -6
  157. package/cjs/S4524/rule.js +2 -2
  158. package/cjs/S4619/rule.js +6 -4
  159. package/cjs/S4621/rule.js +5 -4
  160. package/cjs/S4622/rule.js +5 -3
  161. package/cjs/S4623/rule.js +8 -5
  162. package/cjs/S4624/rule.js +6 -4
  163. package/cjs/S4634/rule.js +4 -3
  164. package/cjs/S4721/rule.js +7 -5
  165. package/cjs/S4782/rule.js +7 -5
  166. package/cjs/S4784/rule.js +5 -4
  167. package/cjs/S4787/rule.js +9 -7
  168. package/cjs/S4790/rule.js +7 -5
  169. package/cjs/S4798/rule.js +2 -2
  170. package/cjs/S4817/rule.js +10 -8
  171. package/cjs/S4818/rule.js +4 -3
  172. package/cjs/S4822/rule.js +13 -9
  173. package/cjs/S4823/rule.js +4 -3
  174. package/cjs/S4829/rule.js +4 -3
  175. package/cjs/S4830/rule.js +11 -8
  176. package/cjs/S5042/rule.js +9 -7
  177. package/cjs/S5122/rule.js +40 -36
  178. package/cjs/S5148/rule.js +9 -8
  179. package/cjs/S5247/rule.js +22 -18
  180. package/cjs/S5256/rule.js +5 -4
  181. package/cjs/S5257/rule.js +4 -3
  182. package/cjs/S5260/rule.js +4 -3
  183. package/cjs/S5264/rule.js +4 -3
  184. package/cjs/S5332/rule.js +4 -3
  185. package/cjs/S5332/rule.lib.js +19 -17
  186. package/cjs/S5443/rule.js +2 -2
  187. package/cjs/S5527/rule.js +18 -14
  188. package/cjs/S5542/rule.js +6 -4
  189. package/cjs/S5547/rule.js +6 -4
  190. package/cjs/S5604/rule.js +15 -14
  191. package/cjs/S5659/rule.js +15 -12
  192. package/cjs/S5689/rule.js +11 -8
  193. package/cjs/S5691/rule.js +7 -5
  194. package/cjs/S5693/rule.js +14 -12
  195. package/cjs/S5725/rule.js +9 -6
  196. package/cjs/S5728/rule.js +7 -4
  197. package/cjs/S5730/rule.js +9 -6
  198. package/cjs/S5732/rule.js +8 -5
  199. package/cjs/S5734/rule.js +7 -4
  200. package/cjs/S5736/rule.js +8 -5
  201. package/cjs/S5739/rule.js +11 -8
  202. package/cjs/S5742/rule.js +7 -4
  203. package/cjs/S5743/rule.js +8 -6
  204. package/cjs/S5757/rule.js +13 -10
  205. package/cjs/S5759/rule.js +10 -7
  206. package/cjs/S5842/rule.js +2 -2
  207. package/cjs/S5843/rule.js +22 -19
  208. package/cjs/S5850/rule.js +4 -3
  209. package/cjs/S5852/rule.js +2 -2
  210. package/cjs/S5856/rule.js +10 -7
  211. package/cjs/S5860/rule.js +30 -26
  212. package/cjs/S5863/rule.js +15 -11
  213. package/cjs/S5867/rule.js +8 -7
  214. package/cjs/S5868/rule.js +7 -5
  215. package/cjs/S5869/rule.js +6 -5
  216. package/cjs/S5876/rule.js +12 -8
  217. package/cjs/S5958/rule.js +12 -9
  218. package/cjs/S5973/rule.js +10 -7
  219. package/cjs/S6019/rule.js +4 -3
  220. package/cjs/S6035/rule.js +2 -2
  221. package/cjs/S6079/rule.js +9 -6
  222. package/cjs/S6080/rule.js +13 -10
  223. package/cjs/S6092/rule.js +9 -7
  224. package/cjs/S6245/rule.js +14 -9
  225. package/cjs/S6249/rule.js +7 -5
  226. package/cjs/S6252/rule.js +12 -8
  227. package/cjs/S6265/rule.js +27 -20
  228. package/cjs/S6268/rule.js +5 -4
  229. package/cjs/S6270/rule.js +12 -9
  230. package/cjs/S6275/rule.js +2 -2
  231. package/cjs/S6281/rule.js +22 -17
  232. package/cjs/S6299/rule.js +2 -2
  233. package/cjs/S6302/rule.js +6 -5
  234. package/cjs/S6303/rule.js +12 -10
  235. package/cjs/S6304/rule.js +6 -5
  236. package/cjs/S6308/rule.js +7 -5
  237. package/cjs/S6317/rule.js +5 -4
  238. package/cjs/S6319/rule.js +2 -2
  239. package/cjs/S6321/rule.js +25 -23
  240. package/cjs/S6323/rule.js +4 -3
  241. package/cjs/S6324/rule.js +2 -2
  242. package/cjs/S6326/rule.js +2 -2
  243. package/cjs/S6327/rule.js +2 -2
  244. package/cjs/S6328/rule.js +4 -3
  245. package/cjs/S6329/rule.js +7 -5
  246. package/cjs/S6330/rule.js +2 -2
  247. package/cjs/S6332/rule.js +2 -2
  248. package/cjs/S6333/rule.js +8 -6
  249. package/cjs/S6351/rule.js +22 -19
  250. package/cjs/S6353/rule.js +2 -2
  251. package/cjs/S6397/rule.js +2 -2
  252. package/cjs/S6418/rule.js +9 -24
  253. package/cjs/S6426/rule.js +5 -4
  254. package/cjs/S6437/rule.js +10 -7
  255. package/cjs/S6439/rule.js +9 -7
  256. package/cjs/S6442/rule.js +11 -8
  257. package/cjs/S6443/rule.js +9 -7
  258. package/cjs/S6486/rule.js +5 -4
  259. package/cjs/S6564/rule.js +4 -3
  260. package/cjs/S6594/rule.js +12 -8
  261. package/cjs/S6627/rule.js +6 -4
  262. package/cjs/S6759/rule.js +10 -6
  263. package/cjs/S6958/rule.js +2 -2
  264. package/cjs/S6959/rule.js +9 -6
  265. package/cjs/S7059/rule.js +8 -5
  266. package/cjs/S7639/rule.js +5 -4
  267. package/cjs/S7790/rule.js +7 -5
  268. package/cjs/S8441/rule.js +13 -9
  269. package/cjs/S881/rule.js +2 -2
  270. package/cjs/S888/rule.js +4 -3
  271. package/cjs/S930/rule.js +14 -12
  272. package/cjs/helpers/ast.js +11 -8
  273. package/cjs/helpers/aws/s3.js +9 -6
  274. package/cjs/helpers/chai.js +41 -43
  275. package/cjs/helpers/cookie-flag-check.js +19 -17
  276. package/cjs/helpers/{decorators/index.js → entropy.js} +16 -17
  277. package/cjs/helpers/express.js +127 -128
  278. package/cjs/helpers/mocha.js +50 -54
  279. package/cjs/helpers/regex/ast.js +7 -6
  280. package/cjs/helpers/regex/extract.js +11 -11
  281. package/cjs/helpers/regex/group.js +2 -2
  282. package/cjs/helpers/regex/location.js +2 -2
  283. package/cjs/helpers/regex/range.js +5 -4
  284. package/cjs/helpers/regex/rule-template.js +4 -3
  285. package/cjs/helpers/sinon.js +33 -36
  286. package/cjs/helpers/supertest.js +34 -37
  287. package/cjs/helpers/vitest.js +29 -32
  288. package/docs/file-permissions.md +1 -1
  289. package/package.json +39 -1
  290. package/types/helpers/ancestor.d.ts +1 -1
  291. package/types/helpers/aws/s3.d.ts +1 -1
  292. package/types/helpers/chai.d.ts +3 -5
  293. package/types/helpers/entropy.d.ts +1 -0
  294. package/types/helpers/express.d.ts +38 -43
  295. package/types/helpers/mocha.d.ts +19 -21
  296. package/types/helpers/regex/ast.d.ts +1 -1
  297. package/types/helpers/regex/rule-template.d.ts +1 -1
  298. package/types/helpers/sinon.d.ts +3 -5
  299. package/types/helpers/supertest.d.ts +3 -5
  300. package/types/helpers/type.d.ts +1 -1
  301. package/types/helpers/vitest.d.ts +3 -5
  302. package/cjs/helpers/aws/index.js +0 -35
  303. package/cjs/helpers/decorators/interceptor.js +0 -88
  304. package/cjs/helpers/index.js +0 -60
  305. package/cjs/helpers/recognizers/index.js +0 -37
  306. package/cjs/helpers/rule-detect-react.js +0 -29
  307. package/cjs/helpers/validate-version.js +0 -94
  308. package/types/helpers/aws/index.d.ts +0 -3
  309. package/types/helpers/decorators/index.d.ts +0 -2
  310. package/types/helpers/decorators/interceptor.d.ts +0 -16
  311. package/types/helpers/index.d.ts +0 -28
  312. package/types/helpers/recognizers/index.d.ts +0 -2
  313. package/types/helpers/rule-detect-react.d.ts +0 -2
  314. package/types/helpers/validate-version.d.ts +0 -13
package/cjs/S4502/rule.js CHANGED
@@ -51,12 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ast_js_1 = require("../helpers/ast.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const module_js_1 = require("../helpers/module.js");
57
+ const location_js_1 = require("../helpers/location.js");
55
58
  const meta = __importStar(require("./generated-meta.js"));
56
59
  const CSURF_MODULE = 'csurf';
57
60
  const SAFE_METHODS = new Set(['GET', 'HEAD', 'OPTIONS']);
58
61
  exports.rule = {
59
- meta: (0, index_js_1.generateMeta)(meta),
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
60
63
  create(context) {
61
64
  let globalCsrfProtection = false;
62
65
  let importedCsrfMiddleware = false;
@@ -64,45 +67,45 @@ exports.rule = {
64
67
  if (node.value.type === 'ArrayExpression') {
65
68
  const arrayExpr = node.value;
66
69
  const unsafeMethods = arrayExpr.elements
67
- .filter(index_js_1.isLiteral)
70
+ .filter(ast_js_1.isLiteral)
68
71
  .filter(e => typeof e.value === 'string' && !SAFE_METHODS.has(e.value));
69
72
  if (unsafeMethods.length > 0) {
70
73
  const [first, ...rest] = unsafeMethods;
71
- (0, index_js_1.report)(context, {
74
+ (0, location_js_1.report)(context, {
72
75
  message: 'Make sure disabling CSRF protection is safe here.',
73
76
  node: first,
74
- }, rest.map(node => (0, index_js_1.toSecondaryLocation)(node)));
77
+ }, rest.map(node => (0, location_js_1.toSecondaryLocation)(node)));
75
78
  }
76
79
  }
77
80
  }
78
81
  function isCsurfMiddleware(node) {
79
- return node && (0, index_js_1.getFullyQualifiedName)(context, node) === CSURF_MODULE;
82
+ return node && (0, module_js_1.getFullyQualifiedName)(context, node) === CSURF_MODULE;
80
83
  }
81
84
  function checkCallExpression(callExpression) {
82
85
  const { callee } = callExpression;
83
86
  // require('csurf')
84
- if ((0, index_js_1.isRequireModule)(callExpression, CSURF_MODULE)) {
87
+ if ((0, ast_js_1.isRequireModule)(callExpression, CSURF_MODULE)) {
85
88
  importedCsrfMiddleware = true;
86
89
  }
87
90
  // csurf(...)
88
- if ((0, index_js_1.getFullyQualifiedName)(context, callee) === CSURF_MODULE) {
91
+ if ((0, module_js_1.getFullyQualifiedName)(context, callee) === CSURF_MODULE) {
89
92
  const [args] = callExpression.arguments;
90
- const ignoredMethods = (0, index_js_1.getProperty)(args, 'ignoreMethods', context);
93
+ const ignoredMethods = (0, ast_js_1.getProperty)(args, 'ignoreMethods', context);
91
94
  if (ignoredMethods) {
92
95
  checkIgnoredMethods(ignoredMethods);
93
96
  }
94
97
  }
95
98
  // app.use(csurf(...))
96
99
  if (callee.type === 'MemberExpression') {
97
- if ((0, index_js_1.isIdentifier)(callee.property, 'use') &&
98
- (0, index_js_1.flattenArgs)(context, callExpression.arguments).some(isCsurfMiddleware)) {
100
+ if ((0, ast_js_1.isIdentifier)(callee.property, 'use') &&
101
+ (0, ast_js_1.flattenArgs)(context, callExpression.arguments).some(isCsurfMiddleware)) {
99
102
  globalCsrfProtection = true;
100
103
  }
101
- if ((0, index_js_1.isIdentifier)(callee.property, 'post', 'put', 'delete', 'patch') &&
104
+ if ((0, ast_js_1.isIdentifier)(callee.property, 'post', 'put', 'delete', 'patch') &&
102
105
  !globalCsrfProtection &&
103
106
  importedCsrfMiddleware &&
104
107
  !callExpression.arguments.some(arg => isCsurfMiddleware(arg))) {
105
- (0, index_js_1.report)(context, {
108
+ (0, location_js_1.report)(context, {
106
109
  message: 'Make sure not using CSRF protection is safe here.',
107
110
  node: callee,
108
111
  });
package/cjs/S4507/rule.js CHANGED
@@ -51,11 +51,13 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ast_js_1 = require("../helpers/ast.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const module_js_1 = require("../helpers/module.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const ERRORHANDLER_MODULE = 'errorhandler';
57
59
  exports.rule = {
58
- meta: (0, index_js_1.generateMeta)(meta, {
60
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
59
61
  messages: {
60
62
  deactivateDebug: 'Make sure this debug feature is deactivated before delivering the code in production.',
61
63
  },
@@ -72,13 +74,13 @@ exports.rule = {
72
74
  };
73
75
  function checkErrorHandlerMiddleware(context, callExpression) {
74
76
  const { callee, arguments: args } = callExpression;
75
- if ((0, index_js_1.isMemberWithProperty)(callee, 'use') &&
77
+ if ((0, ast_js_1.isMemberWithProperty)(callee, 'use') &&
76
78
  args.length > 0 &&
77
79
  !isInsideConditional(context, callExpression)) {
78
- for (const m of (0, index_js_1.flattenArgs)(context, args)) {
79
- const middleware = (0, index_js_1.getUniqueWriteUsageOrNode)(context, m);
80
+ for (const m of (0, ast_js_1.flattenArgs)(context, args)) {
81
+ const middleware = (0, ast_js_1.getUniqueWriteUsageOrNode)(context, m);
80
82
  if (middleware.type === 'CallExpression' &&
81
- (0, index_js_1.getFullyQualifiedName)(context, middleware) === ERRORHANDLER_MODULE) {
83
+ (0, module_js_1.getFullyQualifiedName)(context, middleware) === ERRORHANDLER_MODULE) {
82
84
  context.report({
83
85
  node: middleware,
84
86
  messageId: 'deactivateDebug',
package/cjs/S4524/rule.js CHANGED
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
57
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
58
  messages: {
59
59
  defaultLast: 'Move this "default" clause to the end of this "switch" statement.',
60
60
  },
package/cjs/S4619/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const type_js_1 = require("../helpers/type.js");
56
+ const parser_services_js_1 = require("../helpers/parser-services.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  hasSuggestions: true,
59
61
  messages: {
60
62
  inMisuse: 'Use "indexOf" or "includes" (available from ES2016) instead.',
@@ -64,13 +66,13 @@ exports.rule = {
64
66
  }),
65
67
  create(context) {
66
68
  const services = context.sourceCode.parserServices;
67
- if (!(0, index_js_1.isRequiredParserServices)(services)) {
69
+ if (!(0, parser_services_js_1.isRequiredParserServices)(services)) {
68
70
  return {};
69
71
  }
70
72
  return {
71
73
  "BinaryExpression[operator='in']": (node) => {
72
74
  const { left, right } = node;
73
- if ((0, index_js_1.isArray)(right, services) && !prototypeProperty(left) && !(0, index_js_1.isNumber)(left, services)) {
75
+ if ((0, type_js_1.isArray)(right, services) && !prototypeProperty(left) && !(0, type_js_1.isNumber)(left, services)) {
74
76
  const leftText = context.sourceCode.getText(left);
75
77
  const rightText = context.sourceCode.getText(right);
76
78
  context.report({
package/cjs/S4621/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const location_js_1 = require("../helpers/location.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
59
  create(context) {
59
60
  return {
60
61
  'TSUnionType, TSIntersectionType'(node) {
@@ -76,8 +77,8 @@ exports.rule = {
76
77
  if (duplicates.length > 1) {
77
78
  const suggest = getSuggestions(compositeType, duplicates, context);
78
79
  const primaryNode = duplicates.splice(1, 1)[0];
79
- const secondaryLocations = duplicates.map((node, index) => (0, index_js_1.toSecondaryLocation)(node, index ? 'Another duplicate' : 'Original'));
80
- (0, index_js_1.report)(context, {
80
+ const secondaryLocations = duplicates.map((node, index) => (0, location_js_1.toSecondaryLocation)(node, index ? 'Another duplicate' : 'Original'));
81
+ (0, location_js_1.report)(context, {
81
82
  message: `Remove this duplicated type or replace with another one.`,
82
83
  loc: primaryNode.loc,
83
84
  suggest,
package/cjs/S4622/rule.js CHANGED
@@ -51,14 +51,16 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
56
+ const type_js_1 = require("../helpers/type.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const DEFAULT_THRESHOLD = 3;
57
59
  const messages = {
58
60
  refactorUnion: 'Refactor this union type to have less than {{threshold}} elements.',
59
61
  };
60
62
  exports.rule = {
61
- meta: (0, index_js_1.generateMeta)(meta, { messages }),
63
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { messages }),
62
64
  create(context) {
63
65
  return {
64
66
  TSUnionType: (node) => {
@@ -86,5 +88,5 @@ function isFromTypeStatement(node) {
86
88
  function isUsedWithUtilityType(node) {
87
89
  return (node.parent.type === 'TSTypeParameterInstantiation' &&
88
90
  node.parent.parent.type === 'TSTypeReference' &&
89
- (0, index_js_1.isIdentifier)(node.parent.parent.typeName, ...index_js_1.UTILITY_TYPES));
91
+ (0, ast_js_1.isIdentifier)(node.parent.parent.typeName, ...type_js_1.UTILITY_TYPES));
90
92
  }
package/cjs/S4623/rule.js CHANGED
@@ -54,11 +54,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
54
54
  };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.rule = void 0;
57
- const index_js_1 = require("../helpers/index.js");
57
+ const parser_services_js_1 = require("../helpers/parser-services.js");
58
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
59
+ const ast_js_1 = require("../helpers/ast.js");
60
+ const collection_js_1 = require("../helpers/collection.js");
58
61
  const typescript_1 = __importDefault(require("typescript"));
59
62
  const meta = __importStar(require("./generated-meta.js"));
60
63
  exports.rule = {
61
- meta: (0, index_js_1.generateMeta)(meta, {
64
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
62
65
  hasSuggestions: true,
63
66
  messages: {
64
67
  removeUndefined: 'Remove this redundant "undefined".',
@@ -67,7 +70,7 @@ exports.rule = {
67
70
  }),
68
71
  create(context) {
69
72
  const services = context.sourceCode.parserServices;
70
- if ((0, index_js_1.isRequiredParserServices)(services)) {
73
+ if ((0, parser_services_js_1.isRequiredParserServices)(services)) {
71
74
  return {
72
75
  CallExpression: (node) => {
73
76
  const call = node;
@@ -75,8 +78,8 @@ exports.rule = {
75
78
  if (args.length === 0) {
76
79
  return;
77
80
  }
78
- const lastArgument = (0, index_js_1.last)(args);
79
- if ((0, index_js_1.isUndefined)(lastArgument) && isOptionalParameter(args.length - 1, call, services)) {
81
+ const lastArgument = (0, collection_js_1.last)(args);
82
+ if ((0, ast_js_1.isUndefined)(lastArgument) && isOptionalParameter(args.length - 1, call, services)) {
80
83
  context.report({
81
84
  messageId: 'removeUndefined',
82
85
  node: lastArgument,
package/cjs/S4624/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const ancestor_js_1 = require("../helpers/ancestor.js");
55
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
56
+ const collection_js_1 = require("../helpers/collection.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  messages: {
59
61
  nestedTemplateLiterals: 'Refactor this code to not use nested template literals.',
60
62
  },
@@ -62,8 +64,8 @@ exports.rule = {
62
64
  create(context) {
63
65
  return {
64
66
  'TemplateLiteral TemplateLiteral': (node) => {
65
- const ancestors = (0, index_js_1.ancestorsChain)(node, new Set(['TemplateLiteral']));
66
- const nestingTemplate = (0, index_js_1.last)(ancestors);
67
+ const ancestors = (0, ancestor_js_1.ancestorsChain)(node, new Set(['TemplateLiteral']));
68
+ const nestingTemplate = (0, collection_js_1.last)(ancestors);
67
69
  const { start: nestingStart, end: nestingEnd } = nestingTemplate.loc;
68
70
  const { start: nestedStart, end: nestedEnd } = node.loc;
69
71
  if (nestedStart.line === nestingStart.line || nestedEnd.line === nestingEnd.line) {
package/cjs/S4634/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  hasSuggestions: true,
59
60
  messages: {
60
61
  promiseAction: 'Replace this trivial promise with "Promise.{{action}}".',
@@ -82,7 +83,7 @@ function getPromiseExecutor(node, context) {
82
83
  return undefined;
83
84
  }
84
85
  function checkExecutor(newExpr, executor, context) {
85
- if (!(0, index_js_1.isFunctionNode)(executor)) {
86
+ if (!(0, ast_js_1.isFunctionNode)(executor)) {
86
87
  return;
87
88
  }
88
89
  const { params, body } = executor;
package/cjs/S4721/rule.js CHANGED
@@ -51,13 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
56
+ const ast_js_1 = require("../helpers/ast.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const EXEC_FUNCTIONS = new Set(['exec', 'execSync']);
57
59
  const SPAWN_EXEC_FILE_FUNCTIONS = new Set(['spawn', 'spawnSync', 'execFile', 'execFileSync']);
58
60
  const CHILD_PROCESS_MODULE = 'child_process';
59
61
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
63
  messages: {
62
64
  safeOSCommand: 'Make sure that executing this OS command is safe here.',
63
65
  },
@@ -70,7 +72,7 @@ exports.rule = {
70
72
  };
71
73
  function checkOSCommand(context, call) {
72
74
  const { callee, arguments: args } = call;
73
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, call);
75
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, call);
74
76
  if (!fqn) {
75
77
  return;
76
78
  }
@@ -87,7 +89,7 @@ function checkOSCommand(context, call) {
87
89
  }
88
90
  function isQuestionable(method, [command, ...otherArguments]) {
89
91
  // if command is hardcoded => no issue
90
- if (!command || (0, index_js_1.isLiteral)(command) || (0, index_js_1.isStaticTemplateLiteral)(command)) {
92
+ if (!command || (0, ast_js_1.isLiteral)(command) || (0, ast_js_1.isStaticTemplateLiteral)(command)) {
91
93
  return false;
92
94
  }
93
95
  // for `spawn` and `execFile`, `shell` option must be set to `true`
@@ -100,5 +102,5 @@ function containsShellOption(otherArguments) {
100
102
  return otherArguments.some(arg => arg.type === 'ObjectExpression' &&
101
103
  arg.properties
102
104
  .filter(v => v.type === 'Property')
103
- .some(({ key, value }) => (0, index_js_1.isIdentifier)(key, 'shell') && value.type === 'Literal' && value.value === true));
105
+ .some(({ key, value }) => (0, ast_js_1.isIdentifier)(key, 'shell') && value.type === 'Literal' && value.value === true));
104
106
  }
package/cjs/S4782/rule.js CHANGED
@@ -51,12 +51,14 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const parser_services_js_1 = require("../helpers/parser-services.js");
56
+ const location_js_1 = require("../helpers/location.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, { hasSuggestions: true }),
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, { hasSuggestions: true }),
58
60
  create(context) {
59
- if (!(0, index_js_1.isRequiredParserServices)(context.sourceCode.parserServices)) {
61
+ if (!(0, parser_services_js_1.isRequiredParserServices)(context.sourceCode.parserServices)) {
60
62
  return {};
61
63
  }
62
64
  const compilerOptions = context.sourceCode.parserServices.program.getCompilerOptions();
@@ -72,11 +74,11 @@ exports.rule = {
72
74
  const typeNode = getUndefinedTypeAnnotation(tsNode.typeAnnotation);
73
75
  if (typeNode) {
74
76
  const suggest = getQuickFixSuggestions(context, optionalToken, typeNode);
75
- (0, index_js_1.report)(context, {
77
+ (0, location_js_1.report)(context, {
76
78
  message: "Consider removing 'undefined' type or '?' specifier, one of them is redundant.",
77
79
  loc: optionalToken.loc,
78
80
  suggest,
79
- }, [(0, index_js_1.toSecondaryLocation)(typeNode)]);
81
+ }, [(0, location_js_1.toSecondaryLocation)(typeNode)]);
80
82
  }
81
83
  }
82
84
  return {
package/cjs/S4784/rule.js CHANGED
@@ -51,13 +51,14 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const ast_js_1 = require("../helpers/ast.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  const stringMethods = ['match', 'search', 'split'];
57
58
  const minPatternLength = 3;
58
59
  const specialChars = new Set(['+', '*', '{']);
59
60
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
61
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
62
  messages: {
62
63
  safeRegex: 'Make sure that using a regular expression is safe here.',
63
64
  },
@@ -78,13 +79,13 @@ exports.rule = {
78
79
  },
79
80
  CallExpression(node) {
80
81
  const { callee, arguments: args } = node;
81
- if ((0, index_js_1.isMemberWithProperty)(callee, ...stringMethods)) {
82
+ if ((0, ast_js_1.isMemberWithProperty)(callee, ...stringMethods)) {
82
83
  checkFirstArgument(args, context);
83
84
  }
84
85
  },
85
86
  NewExpression(node) {
86
87
  const { callee, arguments: args } = node;
87
- if ((0, index_js_1.isIdentifier)(callee, 'RegExp')) {
88
+ if ((0, ast_js_1.isIdentifier)(callee, 'RegExp')) {
88
89
  checkFirstArgument(args, context);
89
90
  }
90
91
  },
package/cjs/S4787/rule.js CHANGED
@@ -51,10 +51,12 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
56
+ const ast_js_1 = require("../helpers/ast.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
57
- meta: (0, index_js_1.generateMeta)(meta, {
59
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
60
  messages: {
59
61
  safeEncryption: 'Make sure that encrypting data is safe here.',
60
62
  },
@@ -71,8 +73,8 @@ const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
71
73
  // detect 'SubtleCrypto' object
72
74
  // which can be retrieved by 'crypto.subtle' or 'window.crypto.subtle'
73
75
  const { object, property } = node;
74
- if ((0, index_js_1.isIdentifier)(property, 'subtle') &&
75
- ((0, index_js_1.isIdentifier)(object, 'crypto') || (0, index_js_1.isMemberWithProperty)(object, 'crypto'))) {
76
+ if ((0, ast_js_1.isIdentifier)(property, 'subtle') &&
77
+ ((0, ast_js_1.isIdentifier)(object, 'crypto') || (0, ast_js_1.isMemberWithProperty)(object, 'crypto'))) {
76
78
  usingCryptoInFile = true;
77
79
  }
78
80
  },
@@ -91,7 +93,7 @@ const getEncryptionRuleModule = (clientSideMethods, serverSideMethods) => ({
91
93
  },
92
94
  });
93
95
  function checkForServerSide(callee, context, serverSideMethods) {
94
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callee);
96
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
95
97
  if (serverSideMethods.some(method => fqn === `crypto.${method}`)) {
96
98
  context.report({
97
99
  messageId: 'safeEncryption',
@@ -100,8 +102,8 @@ function checkForServerSide(callee, context, serverSideMethods) {
100
102
  }
101
103
  }
102
104
  function checkForClientSide(callee, context, clientSideMethods) {
103
- if ((0, index_js_1.isIdentifier)(callee, ...clientSideMethods) ||
104
- (0, index_js_1.isMemberWithProperty)(callee, ...clientSideMethods)) {
105
+ if ((0, ast_js_1.isIdentifier)(callee, ...clientSideMethods) ||
106
+ (0, ast_js_1.isMemberWithProperty)(callee, ...clientSideMethods)) {
105
107
  context.report({
106
108
  messageId: 'safeEncryption',
107
109
  node: callee,
package/cjs/S4790/rule.js CHANGED
@@ -51,7 +51,9 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
56
+ const ast_js_1 = require("../helpers/ast.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const message = 'Make sure this weak hash algorithm is not used in a sensitive context here.';
57
59
  const CRYPTO_UNSECURE_HASH_ALGORITHMS = new Set([
@@ -70,7 +72,7 @@ const CRYPTO_UNSECURE_HASH_ALGORITHMS = new Set([
70
72
  ]);
71
73
  const SUBTLE_UNSECURE_HASH_ALGORITHMS = new Set(['sha-1']);
72
74
  exports.rule = {
73
- meta: (0, index_js_1.generateMeta)(meta),
75
+ meta: (0, generate_meta_js_1.generateMeta)(meta),
74
76
  create(context) {
75
77
  function checkNodejsCrypto(fqn, node) {
76
78
  // crypto#createHash
@@ -87,8 +89,8 @@ exports.rule = {
87
89
  }
88
90
  }
89
91
  function checkUnsecureAlgorithm(method, hash, unsecureAlgorithms) {
90
- const hashAlgorithm = (0, index_js_1.getUniqueWriteUsageOrNode)(context, hash);
91
- if ((0, index_js_1.isStringLiteral)(hashAlgorithm) &&
92
+ const hashAlgorithm = (0, ast_js_1.getUniqueWriteUsageOrNode)(context, hash);
93
+ if ((0, ast_js_1.isStringLiteral)(hashAlgorithm) &&
92
94
  unsecureAlgorithms.has(hashAlgorithm.value.toLocaleLowerCase())) {
93
95
  context.report({
94
96
  message,
@@ -99,7 +101,7 @@ exports.rule = {
99
101
  return {
100
102
  'CallExpression[arguments.length > 0]': (node) => {
101
103
  const callExpr = node;
102
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callExpr);
104
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callExpr);
103
105
  checkNodejsCrypto(fqn, callExpr);
104
106
  checkSubtleCrypto(fqn, callExpr);
105
107
  },
package/cjs/S4798/rule.js CHANGED
@@ -51,10 +51,10 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
55
  const meta = __importStar(require("./generated-meta.js"));
56
56
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
57
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
58
  messages: {
59
59
  provideDefault: "Provide a default value for '{{parameter}}' so that " +
60
60
  'the logic of the function is more evident when this parameter is missing. ' +
package/cjs/S4817/rule.js CHANGED
@@ -51,13 +51,15 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
56
+ const ast_js_1 = require("../helpers/ast.js");
55
57
  const meta = __importStar(require("./generated-meta.js"));
56
58
  const xpathModule = 'xpath';
57
59
  const xpathEvalMethods = ['select', 'select1', 'evaluate'];
58
60
  const ieEvalMethods = ['selectNodes', 'SelectSingleNode'];
59
61
  exports.rule = {
60
- meta: (0, index_js_1.generateMeta)(meta, {
62
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
61
63
  messages: {
62
64
  checkXPath: 'Make sure that executing this XPATH expression is safe.',
63
65
  },
@@ -65,7 +67,7 @@ exports.rule = {
65
67
  create(context) {
66
68
  return {
67
69
  MemberExpression: (node) => {
68
- if ((0, index_js_1.isMemberExpression)(node, 'document', 'evaluate')) {
70
+ if ((0, ast_js_1.isMemberExpression)(node, 'document', 'evaluate')) {
69
71
  context.report({ messageId: 'checkXPath', node });
70
72
  }
71
73
  },
@@ -74,17 +76,17 @@ exports.rule = {
74
76
  },
75
77
  };
76
78
  function checkCallExpression({ callee, arguments: args }, context) {
77
- if (args.length > 0 && (0, index_js_1.isLiteral)(args[0])) {
79
+ if (args.length > 0 && (0, ast_js_1.isLiteral)(args[0])) {
78
80
  return;
79
81
  }
80
82
  // IE
81
- if ((0, index_js_1.isMemberWithProperty)(callee, ...ieEvalMethods) && args.length === 1) {
83
+ if ((0, ast_js_1.isMemberWithProperty)(callee, ...ieEvalMethods) && args.length === 1) {
82
84
  context.report({ messageId: 'checkXPath', node: callee });
83
85
  return;
84
86
  }
85
87
  // Document.evaluate
86
- if ((0, index_js_1.isMemberWithProperty)(callee, 'evaluate') &&
87
- !(0, index_js_1.isMemberExpression)(callee, 'document', 'evaluate') &&
88
+ if ((0, ast_js_1.isMemberWithProperty)(callee, 'evaluate') &&
89
+ !(0, ast_js_1.isMemberExpression)(callee, 'document', 'evaluate') &&
88
90
  args.length >= 4) {
89
91
  const resultTypeArgument = args[3];
90
92
  const argumentAsText = context.sourceCode.getText(resultTypeArgument);
@@ -94,7 +96,7 @@ function checkCallExpression({ callee, arguments: args }, context) {
94
96
  }
95
97
  }
96
98
  // "xpath" module
97
- const fqn = (0, index_js_1.getFullyQualifiedName)(context, callee);
99
+ const fqn = (0, module_js_1.getFullyQualifiedName)(context, callee);
98
100
  if (xpathEvalMethods.some(method => fqn === `${xpathModule}.${method}`)) {
99
101
  context.report({ messageId: 'checkXPath', node: callee });
100
102
  }
package/cjs/S4818/rule.js CHANGED
@@ -51,10 +51,11 @@ var __importStar = (this && this.__importStar) || (function () {
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  exports.rule = void 0;
54
- const index_js_1 = require("../helpers/index.js");
54
+ const generate_meta_js_1 = require("../helpers/generate-meta.js");
55
+ const module_js_1 = require("../helpers/module.js");
55
56
  const meta = __importStar(require("./generated-meta.js"));
56
57
  exports.rule = {
57
- meta: (0, index_js_1.generateMeta)(meta, {
58
+ meta: (0, generate_meta_js_1.generateMeta)(meta, {
58
59
  messages: {
59
60
  safeSocket: 'Make sure that sockets are used safely here.',
60
61
  },
@@ -67,7 +68,7 @@ exports.rule = {
67
68
  },
68
69
  };
69
70
  function checkCallExpression(callExpr, context, ...sensitiveFqns) {
70
- const callFqn = (0, index_js_1.getFullyQualifiedName)(context, callExpr);
71
+ const callFqn = (0, module_js_1.getFullyQualifiedName)(context, callExpr);
71
72
  if (callFqn !== null && sensitiveFqns.includes(callFqn)) {
72
73
  context.report({ messageId: 'safeSocket', node: callExpr.callee });
73
74
  }