@graphql-eslint/eslint-plugin 3.19.3-alpha-20230702093957-98f7783 → 3.20.0-alpha-20230703154330-0d51273

Sign up to get free protection for your applications and to get access to all the features.
Files changed (302) hide show
  1. package/{typings → cjs}/cache.d.ts +3 -1
  2. package/cjs/cache.js +57 -26
  3. package/{typings → cjs}/configs/index.d.ts +3 -1
  4. package/cjs/configs/index.js +47 -14
  5. package/{typings → cjs}/configs/operations-all.d.ts +2 -1
  6. package/cjs/configs/operations-all.js +47 -30
  7. package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
  8. package/cjs/configs/operations-recommended.js +72 -55
  9. package/{typings → cjs}/configs/relay.d.ts +2 -1
  10. package/cjs/configs/relay.js +31 -11
  11. package/{typings → cjs}/configs/schema-all.d.ts +2 -1
  12. package/cjs/configs/schema-all.js +41 -24
  13. package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
  14. package/cjs/configs/schema-recommended.js +68 -51
  15. package/{typings → cjs}/documents.d.ts +4 -1
  16. package/cjs/documents.js +74 -43
  17. package/cjs/estree-converter/converter.d.ts +8 -0
  18. package/cjs/estree-converter/converter.js +80 -59
  19. package/cjs/estree-converter/index.d.ts +8 -0
  20. package/cjs/estree-converter/index.js +25 -5
  21. package/{typings → cjs}/estree-converter/types.d.ts +7 -5
  22. package/cjs/estree-converter/types.js +16 -0
  23. package/cjs/estree-converter/utils.d.ts +18 -0
  24. package/cjs/estree-converter/utils.js +119 -95
  25. package/{typings → cjs}/flat-configs.d.ts +12 -1
  26. package/cjs/flat-configs.js +56 -32
  27. package/cjs/graphql-config.d.ts +13 -0
  28. package/cjs/graphql-config.js +78 -47
  29. package/cjs/index.d.ts +22 -0
  30. package/cjs/index.js +50 -18
  31. package/cjs/parser.d.ts +12 -0
  32. package/cjs/parser.js +96 -76
  33. package/cjs/processor.d.ts +9 -0
  34. package/cjs/processor.js +119 -88
  35. package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
  36. package/cjs/rules/alphabetize.js +337 -295
  37. package/{typings → cjs}/rules/description-style.d.ts +12 -4
  38. package/cjs/rules/description-style.js +96 -66
  39. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  40. package/cjs/rules/graphql-js-validation.js +595 -433
  41. package/cjs/rules/index.d.ts +125 -0
  42. package/cjs/rules/index.js +97 -76
  43. package/{typings → cjs}/rules/input-name.d.ts +12 -4
  44. package/cjs/rules/input-name.js +153 -123
  45. package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
  46. package/cjs/rules/lone-executable-definition.js +101 -72
  47. package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
  48. package/cjs/rules/match-document-filename.js +229 -182
  49. package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
  50. package/cjs/rules/naming-convention.js +380 -316
  51. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  52. package/cjs/rules/no-anonymous-operations.js +88 -57
  53. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  54. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
  55. package/cjs/rules/no-deprecated.d.ts +12 -0
  56. package/cjs/rules/no-deprecated.js +106 -75
  57. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  58. package/cjs/rules/no-duplicate-fields.js +116 -82
  59. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  60. package/cjs/rules/no-hashtag-description.js +119 -82
  61. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  62. package/cjs/rules/no-one-place-fragments.js +88 -58
  63. package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
  64. package/cjs/rules/no-root-type.js +101 -74
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
  67. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  68. package/cjs/rules/no-typename-prefix.js +88 -55
  69. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  70. package/cjs/rules/no-unreachable-types.js +169 -134
  71. package/cjs/rules/no-unused-fields.d.ts +12 -0
  72. package/cjs/rules/no-unused-fields.js +117 -92
  73. package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
  74. package/cjs/rules/relay-arguments.js +136 -110
  75. package/cjs/rules/relay-connection-types.d.ts +13 -0
  76. package/cjs/rules/relay-connection-types.js +123 -94
  77. package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
  78. package/cjs/rules/relay-edge-types.js +196 -179
  79. package/cjs/rules/relay-page-info.d.ts +12 -0
  80. package/cjs/rules/relay-page-info.js +108 -89
  81. package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
  82. package/cjs/rules/require-deprecation-date.js +143 -112
  83. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  84. package/cjs/rules/require-deprecation-reason.js +80 -46
  85. package/{typings → cjs}/rules/require-description.d.ts +13 -5
  86. package/cjs/rules/require-description.js +170 -132
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +81 -51
  89. package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
  90. package/cjs/rules/require-id-when-available.js +196 -173
  91. package/cjs/rules/require-import-fragment.d.ts +12 -0
  92. package/cjs/rules/require-import-fragment.js +138 -88
  93. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  94. package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
  95. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  96. package/cjs/rules/require-nullable-result-in-root.js +97 -68
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
  99. package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
  100. package/cjs/rules/selection-set-depth.js +147 -107
  101. package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
  102. package/cjs/rules/strict-id-in-types.js +143 -122
  103. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  104. package/cjs/rules/unique-fragment-name.js +88 -62
  105. package/cjs/rules/unique-operation-name.d.ts +12 -0
  106. package/cjs/rules/unique-operation-name.js +65 -35
  107. package/cjs/schema.d.ts +12 -0
  108. package/cjs/schema.js +62 -30
  109. package/cjs/siblings.d.ts +8 -0
  110. package/cjs/siblings.js +124 -106
  111. package/cjs/testkit.d.ts +8 -0
  112. package/cjs/testkit.js +165 -144
  113. package/cjs/types-e3367e3c.d.ts +129 -0
  114. package/cjs/types.d.ts +8 -0
  115. package/cjs/types.js +16 -0
  116. package/cjs/utils.d.ts +44 -0
  117. package/cjs/utils.js +181 -124
  118. package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
  119. package/esm/cache.js +25 -23
  120. package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
  121. package/esm/configs/index.js +14 -11
  122. package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
  123. package/esm/configs/operations-all.js +28 -28
  124. package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
  125. package/esm/configs/operations-recommended.js +53 -53
  126. package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
  127. package/esm/configs/relay.js +12 -9
  128. package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
  129. package/esm/configs/schema-all.js +22 -22
  130. package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
  131. package/esm/configs/schema-recommended.js +49 -49
  132. package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
  133. package/esm/documents.js +41 -39
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +63 -57
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -3
  138. package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
  139. package/esm/estree-converter/utils.d.mts +18 -0
  140. package/esm/estree-converter/utils.js +102 -93
  141. package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
  142. package/esm/flat-configs.js +33 -30
  143. package/esm/graphql-config.d.mts +13 -0
  144. package/esm/graphql-config.js +49 -44
  145. package/esm/index.d.mts +22 -0
  146. package/esm/index.js +18 -9
  147. package/esm/package.json +1 -1
  148. package/esm/parser.d.mts +12 -0
  149. package/esm/parser.js +64 -73
  150. package/esm/processor.d.mts +9 -0
  151. package/esm/processor.js +98 -86
  152. package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
  153. package/esm/rules/alphabetize.js +304 -290
  154. package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
  155. package/esm/rules/description-style.js +73 -64
  156. package/esm/rules/graphql-js-validation.d.mts +12 -0
  157. package/esm/rules/graphql-js-validation.js +580 -429
  158. package/esm/rules/index.d.mts +125 -0
  159. package/esm/rules/index.js +74 -74
  160. package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
  161. package/esm/rules/input-name.js +132 -121
  162. package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
  163. package/esm/rules/lone-executable-definition.js +78 -70
  164. package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
  165. package/esm/rules/match-document-filename.js +210 -180
  166. package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
  167. package/esm/rules/naming-convention.js +363 -314
  168. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  169. package/esm/rules/no-anonymous-operations.js +65 -55
  170. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  171. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
  172. package/esm/rules/no-deprecated.d.mts +12 -0
  173. package/esm/rules/no-deprecated.js +83 -73
  174. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  175. package/esm/rules/no-duplicate-fields.js +93 -80
  176. package/esm/rules/no-hashtag-description.d.mts +13 -0
  177. package/esm/rules/no-hashtag-description.js +95 -80
  178. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  179. package/esm/rules/no-one-place-fragments.js +65 -56
  180. package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
  181. package/esm/rules/no-root-type.js +78 -72
  182. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  183. package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
  184. package/esm/rules/no-typename-prefix.d.mts +12 -0
  185. package/esm/rules/no-typename-prefix.js +65 -53
  186. package/esm/rules/no-unreachable-types.d.mts +12 -0
  187. package/esm/rules/no-unreachable-types.js +141 -131
  188. package/esm/rules/no-unused-fields.d.mts +12 -0
  189. package/esm/rules/no-unused-fields.js +94 -90
  190. package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
  191. package/esm/rules/relay-arguments.js +113 -108
  192. package/esm/rules/relay-connection-types.d.mts +13 -0
  193. package/esm/rules/relay-connection-types.js +98 -91
  194. package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
  195. package/esm/rules/relay-edge-types.js +178 -177
  196. package/esm/rules/relay-page-info.d.mts +12 -0
  197. package/esm/rules/relay-page-info.js +84 -86
  198. package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
  199. package/esm/rules/require-deprecation-date.js +120 -110
  200. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  201. package/esm/rules/require-deprecation-reason.js +57 -44
  202. package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
  203. package/esm/rules/require-description.js +151 -130
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  205. package/esm/rules/require-field-of-type-query-in-mutation-result.js +58 -49
  206. package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
  207. package/esm/rules/require-id-when-available.js +186 -171
  208. package/esm/rules/require-import-fragment.d.mts +12 -0
  209. package/esm/rules/require-import-fragment.js +105 -85
  210. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  211. package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
  212. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  213. package/esm/rules/require-nullable-result-in-root.js +74 -66
  214. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  215. package/esm/rules/require-type-pattern-with-oneof.js +47 -40
  216. package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
  217. package/esm/rules/selection-set-depth.js +114 -104
  218. package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
  219. package/esm/rules/strict-id-in-types.js +125 -119
  220. package/esm/rules/unique-fragment-name.d.mts +13 -0
  221. package/esm/rules/unique-fragment-name.js +65 -60
  222. package/esm/rules/unique-operation-name.d.mts +12 -0
  223. package/esm/rules/unique-operation-name.js +42 -33
  224. package/esm/schema.d.mts +12 -0
  225. package/esm/schema.js +29 -26
  226. package/esm/siblings.d.mts +8 -0
  227. package/esm/siblings.js +105 -104
  228. package/esm/testkit.d.mts +8 -0
  229. package/esm/testkit.js +132 -141
  230. package/esm/types-2e1afd7c.d.ts +129 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/utils.d.mts +44 -0
  233. package/esm/utils.js +138 -116
  234. package/package.json +40 -30
  235. package/typings/estree-converter/converter.d.cts +0 -3
  236. package/typings/estree-converter/converter.d.ts +0 -3
  237. package/typings/estree-converter/index.d.cts +0 -3
  238. package/typings/estree-converter/index.d.ts +0 -3
  239. package/typings/estree-converter/utils.d.cts +0 -13
  240. package/typings/estree-converter/utils.d.ts +0 -13
  241. package/typings/graphql-config.d.cts +0 -4
  242. package/typings/graphql-config.d.ts +0 -4
  243. package/typings/index.d.cts +0 -10
  244. package/typings/index.d.ts +0 -10
  245. package/typings/parser.d.cts +0 -2
  246. package/typings/parser.d.ts +0 -2
  247. package/typings/processor.d.cts +0 -6
  248. package/typings/processor.d.ts +0 -6
  249. package/typings/rules/graphql-js-validation.d.cts +0 -2
  250. package/typings/rules/graphql-js-validation.d.ts +0 -2
  251. package/typings/rules/index.d.cts +0 -111
  252. package/typings/rules/index.d.ts +0 -111
  253. package/typings/rules/no-anonymous-operations.d.cts +0 -2
  254. package/typings/rules/no-anonymous-operations.d.ts +0 -2
  255. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
  256. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
  257. package/typings/rules/no-deprecated.d.cts +0 -2
  258. package/typings/rules/no-deprecated.d.ts +0 -2
  259. package/typings/rules/no-duplicate-fields.d.cts +0 -2
  260. package/typings/rules/no-duplicate-fields.d.ts +0 -2
  261. package/typings/rules/no-hashtag-description.d.cts +0 -3
  262. package/typings/rules/no-hashtag-description.d.ts +0 -3
  263. package/typings/rules/no-one-place-fragments.d.cts +0 -2
  264. package/typings/rules/no-one-place-fragments.d.ts +0 -2
  265. package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
  266. package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
  267. package/typings/rules/no-typename-prefix.d.cts +0 -2
  268. package/typings/rules/no-typename-prefix.d.ts +0 -2
  269. package/typings/rules/no-unreachable-types.d.cts +0 -2
  270. package/typings/rules/no-unreachable-types.d.ts +0 -2
  271. package/typings/rules/no-unused-fields.d.cts +0 -2
  272. package/typings/rules/no-unused-fields.d.ts +0 -2
  273. package/typings/rules/relay-connection-types.d.cts +0 -4
  274. package/typings/rules/relay-connection-types.d.ts +0 -4
  275. package/typings/rules/relay-page-info.d.cts +0 -2
  276. package/typings/rules/relay-page-info.d.ts +0 -2
  277. package/typings/rules/require-deprecation-reason.d.cts +0 -2
  278. package/typings/rules/require-deprecation-reason.d.ts +0 -2
  279. package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
  280. package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
  281. package/typings/rules/require-import-fragment.d.cts +0 -2
  282. package/typings/rules/require-import-fragment.d.ts +0 -2
  283. package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
  284. package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
  285. package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
  286. package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
  287. package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
  288. package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
  289. package/typings/rules/unique-fragment-name.d.cts +0 -5
  290. package/typings/rules/unique-fragment-name.d.ts +0 -5
  291. package/typings/rules/unique-operation-name.d.cts +0 -2
  292. package/typings/rules/unique-operation-name.d.ts +0 -2
  293. package/typings/schema.d.cts +0 -3
  294. package/typings/schema.d.ts +0 -3
  295. package/typings/siblings.d.cts +0 -22
  296. package/typings/siblings.d.ts +0 -22
  297. package/typings/testkit.d.cts +0 -29
  298. package/typings/testkit.d.ts +0 -29
  299. package/typings/types.d.cts +0 -83
  300. package/typings/types.d.ts +0 -83
  301. package/typings/utils.d.cts +0 -40
  302. package/typings/utils.d.ts +0 -40
@@ -1,146 +1,189 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const tslib_1 = require("tslib");
5
- const graphql_1 = require("graphql");
6
- const lodash_lowercase_1 = tslib_1.__importDefault(require("lodash.lowercase"));
7
- const utils_js_1 = require("../utils.js");
8
- const RULE_ID = 'alphabetize';
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var alphabetize_exports = {};
30
+ __export(alphabetize_exports, {
31
+ rule: () => rule
32
+ });
33
+ module.exports = __toCommonJS(alphabetize_exports);
34
+ var import_graphql = require("graphql");
35
+ var import_lodash = __toESM(require("lodash.lowercase"));
36
+ var import_utils = require("../utils.js");
37
+ const RULE_ID = "alphabetize";
9
38
  const fieldsEnum = [
10
- graphql_1.Kind.OBJECT_TYPE_DEFINITION,
11
- graphql_1.Kind.INTERFACE_TYPE_DEFINITION,
12
- graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION,
39
+ import_graphql.Kind.OBJECT_TYPE_DEFINITION,
40
+ import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
41
+ import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION
13
42
  ];
14
- const valuesEnum = [graphql_1.Kind.ENUM_TYPE_DEFINITION];
43
+ const valuesEnum = [import_graphql.Kind.ENUM_TYPE_DEFINITION];
15
44
  const selectionsEnum = [
16
- graphql_1.Kind.OPERATION_DEFINITION,
17
- graphql_1.Kind.FRAGMENT_DEFINITION,
45
+ import_graphql.Kind.OPERATION_DEFINITION,
46
+ import_graphql.Kind.FRAGMENT_DEFINITION
18
47
  ];
19
- const variablesEnum = [graphql_1.Kind.OPERATION_DEFINITION];
48
+ const variablesEnum = [import_graphql.Kind.OPERATION_DEFINITION];
20
49
  const argumentsEnum = [
21
- graphql_1.Kind.FIELD_DEFINITION,
22
- graphql_1.Kind.FIELD,
23
- graphql_1.Kind.DIRECTIVE_DEFINITION,
24
- graphql_1.Kind.DIRECTIVE,
50
+ import_graphql.Kind.FIELD_DEFINITION,
51
+ import_graphql.Kind.FIELD,
52
+ import_graphql.Kind.DIRECTIVE_DEFINITION,
53
+ import_graphql.Kind.DIRECTIVE
25
54
  ];
26
55
  const schema = {
27
- type: 'array',
28
- minItems: 1,
29
- maxItems: 1,
30
- items: {
31
- type: 'object',
32
- additionalProperties: false,
33
- minProperties: 1,
34
- properties: {
35
- fields: {
36
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
37
- items: {
38
- enum: fieldsEnum,
39
- },
40
- description: 'Fields of `type`, `interface`, and `input`.',
41
- },
42
- values: {
43
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
44
- items: {
45
- enum: valuesEnum,
46
- },
47
- description: 'Values of `enum`.',
48
- },
49
- selections: {
50
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
51
- items: {
52
- enum: selectionsEnum,
53
- },
54
- description: 'Selections of `fragment` and operations `query`, `mutation` and `subscription`.',
55
- },
56
- variables: {
57
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
58
- items: {
59
- enum: variablesEnum,
60
- },
61
- description: 'Variables of operations `query`, `mutation` and `subscription`.',
62
- },
63
- arguments: {
64
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
65
- items: {
66
- enum: argumentsEnum,
67
- },
68
- description: 'Arguments of fields and directives.',
69
- },
70
- definitions: {
71
- type: 'boolean',
72
- description: 'Definitions – `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.',
73
- default: false,
74
- },
75
- groups: {
76
- ...utils_js_1.ARRAY_DEFAULT_OPTIONS,
77
- minItems: 2,
78
- description: "Custom order group. Example: `['id', '*', 'createdAt', 'updatedAt']` where `*` says for everything else.",
79
- },
56
+ type: "array",
57
+ minItems: 1,
58
+ maxItems: 1,
59
+ items: {
60
+ type: "object",
61
+ additionalProperties: false,
62
+ minProperties: 1,
63
+ properties: {
64
+ fields: {
65
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
66
+ items: {
67
+ enum: fieldsEnum
80
68
  },
81
- },
69
+ description: "Fields of `type`, `interface`, and `input`."
70
+ },
71
+ values: {
72
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
73
+ items: {
74
+ enum: valuesEnum
75
+ },
76
+ description: "Values of `enum`."
77
+ },
78
+ selections: {
79
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
80
+ items: {
81
+ enum: selectionsEnum
82
+ },
83
+ description: "Selections of `fragment` and operations `query`, `mutation` and `subscription`."
84
+ },
85
+ variables: {
86
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
87
+ items: {
88
+ enum: variablesEnum
89
+ },
90
+ description: "Variables of operations `query`, `mutation` and `subscription`."
91
+ },
92
+ arguments: {
93
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
94
+ items: {
95
+ enum: argumentsEnum
96
+ },
97
+ description: "Arguments of fields and directives."
98
+ },
99
+ definitions: {
100
+ type: "boolean",
101
+ description: "Definitions \u2013 `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.",
102
+ default: false
103
+ },
104
+ groups: {
105
+ ...import_utils.ARRAY_DEFAULT_OPTIONS,
106
+ minItems: 2,
107
+ description: "Custom order group. Example: `['id', '*', 'createdAt', 'updatedAt']` where `*` says for everything else."
108
+ }
109
+ }
110
+ }
82
111
  };
83
- exports.rule = {
84
- meta: {
85
- type: 'suggestion',
86
- fixable: 'code',
87
- docs: {
88
- category: ['Schema', 'Operations'],
89
- description: 'Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more.',
90
- url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
91
- examples: [
92
- {
93
- title: 'Incorrect',
94
- usage: [{ fields: [graphql_1.Kind.OBJECT_TYPE_DEFINITION] }],
95
- code: /* GraphQL */ `
112
+ const rule = {
113
+ meta: {
114
+ type: "suggestion",
115
+ fixable: "code",
116
+ docs: {
117
+ category: ["Schema", "Operations"],
118
+ description: "Enforce arrange in alphabetical order for type fields, enum values, input object fields, operation selections and more.",
119
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
120
+ examples: [
121
+ {
122
+ title: "Incorrect",
123
+ usage: [{ fields: [import_graphql.Kind.OBJECT_TYPE_DEFINITION] }],
124
+ code: (
125
+ /* GraphQL */
126
+ `
96
127
  type User {
97
128
  password: String
98
129
  firstName: String! # should be before "password"
99
130
  age: Int # should be before "firstName"
100
131
  lastName: String!
101
132
  }
102
- `,
103
- },
104
- {
105
- title: 'Correct',
106
- usage: [{ fields: [graphql_1.Kind.OBJECT_TYPE_DEFINITION] }],
107
- code: /* GraphQL */ `
133
+ `
134
+ )
135
+ },
136
+ {
137
+ title: "Correct",
138
+ usage: [{ fields: [import_graphql.Kind.OBJECT_TYPE_DEFINITION] }],
139
+ code: (
140
+ /* GraphQL */
141
+ `
108
142
  type User {
109
143
  age: Int
110
144
  firstName: String!
111
145
  lastName: String!
112
146
  password: String
113
147
  }
114
- `,
115
- },
116
- {
117
- title: 'Incorrect',
118
- usage: [{ values: [graphql_1.Kind.ENUM_TYPE_DEFINITION] }],
119
- code: /* GraphQL */ `
148
+ `
149
+ )
150
+ },
151
+ {
152
+ title: "Incorrect",
153
+ usage: [{ values: [import_graphql.Kind.ENUM_TYPE_DEFINITION] }],
154
+ code: (
155
+ /* GraphQL */
156
+ `
120
157
  enum Role {
121
158
  SUPER_ADMIN
122
159
  ADMIN # should be before "SUPER_ADMIN"
123
160
  USER
124
161
  GOD # should be before "USER"
125
162
  }
126
- `,
127
- },
128
- {
129
- title: 'Correct',
130
- usage: [{ values: [graphql_1.Kind.ENUM_TYPE_DEFINITION] }],
131
- code: /* GraphQL */ `
163
+ `
164
+ )
165
+ },
166
+ {
167
+ title: "Correct",
168
+ usage: [{ values: [import_graphql.Kind.ENUM_TYPE_DEFINITION] }],
169
+ code: (
170
+ /* GraphQL */
171
+ `
132
172
  enum Role {
133
173
  ADMIN
134
174
  GOD
135
175
  SUPER_ADMIN
136
176
  USER
137
177
  }
138
- `,
139
- },
140
- {
141
- title: 'Incorrect',
142
- usage: [{ selections: [graphql_1.Kind.OPERATION_DEFINITION] }],
143
- code: /* GraphQL */ `
178
+ `
179
+ )
180
+ },
181
+ {
182
+ title: "Incorrect",
183
+ usage: [{ selections: [import_graphql.Kind.OPERATION_DEFINITION] }],
184
+ code: (
185
+ /* GraphQL */
186
+ `
144
187
  query {
145
188
  me {
146
189
  firstName
@@ -148,12 +191,15 @@ exports.rule = {
148
191
  email # should be before "lastName"
149
192
  }
150
193
  }
151
- `,
152
- },
153
- {
154
- title: 'Correct',
155
- usage: [{ selections: [graphql_1.Kind.OPERATION_DEFINITION] }],
156
- code: /* GraphQL */ `
194
+ `
195
+ )
196
+ },
197
+ {
198
+ title: "Correct",
199
+ usage: [{ selections: [import_graphql.Kind.OPERATION_DEFINITION] }],
200
+ code: (
201
+ /* GraphQL */
202
+ `
157
203
  query {
158
204
  me {
159
205
  email
@@ -161,190 +207,186 @@ exports.rule = {
161
207
  lastName
162
208
  }
163
209
  }
164
- `,
165
- },
166
- ],
167
- configOptions: {
168
- schema: [
169
- {
170
- fields: fieldsEnum,
171
- values: valuesEnum,
172
- arguments: argumentsEnum,
173
- // TODO: add in graphql-eslint v4
174
- // definitions: true,
175
- // groups: ['id', '*', 'createdAt', 'updatedAt']
176
- },
177
- ],
178
- operations: [
179
- {
180
- selections: selectionsEnum,
181
- variables: variablesEnum,
182
- arguments: [graphql_1.Kind.FIELD, graphql_1.Kind.DIRECTIVE],
183
- },
184
- ],
185
- },
186
- },
187
- messages: {
188
- [RULE_ID]: '{{ currNode }} should be before {{ prevNode }}',
189
- },
190
- schema,
210
+ `
211
+ )
212
+ }
213
+ ],
214
+ configOptions: {
215
+ schema: [
216
+ {
217
+ fields: fieldsEnum,
218
+ values: valuesEnum,
219
+ arguments: argumentsEnum
220
+ // TODO: add in graphql-eslint v4
221
+ // definitions: true,
222
+ // groups: ['id', '*', 'createdAt', 'updatedAt']
223
+ }
224
+ ],
225
+ operations: [
226
+ {
227
+ selections: selectionsEnum,
228
+ variables: variablesEnum,
229
+ arguments: [import_graphql.Kind.FIELD, import_graphql.Kind.DIRECTIVE]
230
+ }
231
+ ]
232
+ }
233
+ },
234
+ messages: {
235
+ [RULE_ID]: "{{ currNode }} should be before {{ prevNode }}"
191
236
  },
192
- create(context) {
193
- var _a, _b, _c, _d, _e;
194
- const sourceCode = context.getSourceCode();
195
- function isNodeAndCommentOnSameLine(node, comment) {
196
- return node.loc.end.line === comment.loc.start.line;
237
+ schema
238
+ },
239
+ create(context) {
240
+ const sourceCode = context.getSourceCode();
241
+ function isNodeAndCommentOnSameLine(node, comment) {
242
+ return node.loc.end.line === comment.loc.start.line;
243
+ }
244
+ function getBeforeComments(node) {
245
+ const commentsBefore = sourceCode.getCommentsBefore(node);
246
+ if (commentsBefore.length === 0) {
247
+ return [];
248
+ }
249
+ const tokenBefore = sourceCode.getTokenBefore(node);
250
+ if (tokenBefore) {
251
+ return commentsBefore.filter((comment) => !isNodeAndCommentOnSameLine(tokenBefore, comment));
252
+ }
253
+ const filteredComments = [];
254
+ const nodeLine = node.loc.start.line;
255
+ for (let i = commentsBefore.length - 1; i >= 0; i -= 1) {
256
+ const comment = commentsBefore[i];
257
+ if (nodeLine - comment.loc.start.line - filteredComments.length > 1) {
258
+ break;
197
259
  }
198
- function getBeforeComments(node) {
199
- const commentsBefore = sourceCode.getCommentsBefore(node);
200
- if (commentsBefore.length === 0) {
201
- return [];
202
- }
203
- const tokenBefore = sourceCode.getTokenBefore(node);
204
- if (tokenBefore) {
205
- return commentsBefore.filter(comment => !isNodeAndCommentOnSameLine(tokenBefore, comment));
206
- }
207
- const filteredComments = [];
208
- const nodeLine = node.loc.start.line;
209
- // Break on comment that not attached to node
210
- for (let i = commentsBefore.length - 1; i >= 0; i -= 1) {
211
- const comment = commentsBefore[i];
212
- if (nodeLine - comment.loc.start.line - filteredComments.length > 1) {
213
- break;
214
- }
215
- filteredComments.unshift(comment);
216
- }
217
- return filteredComments;
260
+ filteredComments.unshift(comment);
261
+ }
262
+ return filteredComments;
263
+ }
264
+ function getRangeWithComments(node) {
265
+ if (node.kind === import_graphql.Kind.VARIABLE) {
266
+ node = node.parent;
267
+ }
268
+ const [firstBeforeComment] = getBeforeComments(node);
269
+ const [firstAfterComment] = sourceCode.getCommentsAfter(node);
270
+ const from = firstBeforeComment || node;
271
+ const to = firstAfterComment && isNodeAndCommentOnSameLine(node, firstAfterComment) ? firstAfterComment : node;
272
+ return [from.range[0], to.range[1]];
273
+ }
274
+ function checkNodes(nodes = []) {
275
+ for (let i = 1; i < nodes.length; i += 1) {
276
+ const currNode = nodes[i];
277
+ const currName = "alias" in currNode && currNode.alias?.value || "name" in currNode && currNode.name?.value;
278
+ if (!currName) {
279
+ continue;
218
280
  }
219
- function getRangeWithComments(node) {
220
- if (node.kind === graphql_1.Kind.VARIABLE) {
221
- node = node.parent;
281
+ const prevNode = nodes[i - 1];
282
+ const prevName = "alias" in prevNode && prevNode.alias?.value || "name" in prevNode && prevNode.name?.value;
283
+ if (prevName) {
284
+ const compareResult = prevName.localeCompare(currName);
285
+ const { groups } = opts;
286
+ let shouldSortByGroup = false;
287
+ if (groups?.length) {
288
+ if (!groups.includes("*")) {
289
+ throw new Error("`groups` option should contain `*` string.");
222
290
  }
223
- const [firstBeforeComment] = getBeforeComments(node);
224
- const [firstAfterComment] = sourceCode.getCommentsAfter(node);
225
- const from = firstBeforeComment || node;
226
- const to = firstAfterComment && isNodeAndCommentOnSameLine(node, firstAfterComment)
227
- ? firstAfterComment
228
- : node;
229
- return [from.range[0], to.range[1]];
230
- }
231
- function checkNodes(nodes = []) {
232
- var _a, _b, _c, _d;
233
- // Starts from 1, ignore nodes.length <= 1
234
- for (let i = 1; i < nodes.length; i += 1) {
235
- const currNode = nodes[i];
236
- const currName = ('alias' in currNode && ((_a = currNode.alias) === null || _a === void 0 ? void 0 : _a.value)) ||
237
- ('name' in currNode && ((_b = currNode.name) === null || _b === void 0 ? void 0 : _b.value));
238
- if (!currName) {
239
- // we don't move unnamed current nodes
240
- continue;
241
- }
242
- const prevNode = nodes[i - 1];
243
- const prevName = ('alias' in prevNode && ((_c = prevNode.alias) === null || _c === void 0 ? void 0 : _c.value)) ||
244
- ('name' in prevNode && ((_d = prevNode.name) === null || _d === void 0 ? void 0 : _d.value));
245
- if (prevName) {
246
- // Compare with lexicographic order
247
- const compareResult = prevName.localeCompare(currName);
248
- const { groups } = opts;
249
- let shouldSortByGroup = false;
250
- if (groups === null || groups === void 0 ? void 0 : groups.length) {
251
- if (!groups.includes('*')) {
252
- throw new Error('`groups` option should contain `*` string.');
253
- }
254
- let indexForPrev = groups.indexOf(prevName);
255
- if (indexForPrev === -1)
256
- indexForPrev = groups.indexOf('*');
257
- let indexForCurr = groups.indexOf(currName);
258
- if (indexForCurr === -1)
259
- indexForCurr = groups.indexOf('*');
260
- shouldSortByGroup = indexForPrev - indexForCurr > 0;
261
- if (indexForPrev < indexForCurr) {
262
- continue;
263
- }
264
- }
265
- const shouldSort = compareResult === 1;
266
- if (!shouldSortByGroup && !shouldSort) {
267
- const isSameName = compareResult === 0;
268
- if (!isSameName ||
269
- !prevNode.kind.endsWith('Extension') ||
270
- currNode.kind.endsWith('Extension')) {
271
- continue;
272
- }
273
- }
274
- }
275
- context.report({
276
- // @ts-expect-error can't be undefined
277
- node: ('alias' in currNode && currNode.alias) || currNode.name,
278
- messageId: RULE_ID,
279
- data: {
280
- currNode: (0, utils_js_1.displayNodeName)(currNode),
281
- prevNode: prevName ? (0, utils_js_1.displayNodeName)(prevNode) : (0, lodash_lowercase_1.default)(prevNode.kind),
282
- },
283
- *fix(fixer) {
284
- const prevRange = getRangeWithComments(prevNode);
285
- const currRange = getRangeWithComments(currNode);
286
- yield fixer.replaceTextRange(prevRange, sourceCode.getText({ range: currRange }));
287
- yield fixer.replaceTextRange(currRange, sourceCode.getText({ range: prevRange }));
288
- },
289
- });
291
+ let indexForPrev = groups.indexOf(prevName);
292
+ if (indexForPrev === -1)
293
+ indexForPrev = groups.indexOf("*");
294
+ let indexForCurr = groups.indexOf(currName);
295
+ if (indexForCurr === -1)
296
+ indexForCurr = groups.indexOf("*");
297
+ shouldSortByGroup = indexForPrev - indexForCurr > 0;
298
+ if (indexForPrev < indexForCurr) {
299
+ continue;
290
300
  }
301
+ }
302
+ const shouldSort = compareResult === 1;
303
+ if (!shouldSortByGroup && !shouldSort) {
304
+ const isSameName = compareResult === 0;
305
+ if (!isSameName || !prevNode.kind.endsWith("Extension") || currNode.kind.endsWith("Extension")) {
306
+ continue;
307
+ }
308
+ }
291
309
  }
292
- const opts = context.options[0];
293
- const fields = new Set((_a = opts.fields) !== null && _a !== void 0 ? _a : []);
294
- const listeners = {};
295
- const kinds = [
296
- fields.has(graphql_1.Kind.OBJECT_TYPE_DEFINITION) && [
297
- graphql_1.Kind.OBJECT_TYPE_DEFINITION,
298
- graphql_1.Kind.OBJECT_TYPE_EXTENSION,
299
- ],
300
- fields.has(graphql_1.Kind.INTERFACE_TYPE_DEFINITION) && [
301
- graphql_1.Kind.INTERFACE_TYPE_DEFINITION,
302
- graphql_1.Kind.INTERFACE_TYPE_EXTENSION,
303
- ],
304
- fields.has(graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION) && [
305
- graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION,
306
- graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION,
307
- ],
308
- ]
309
- .filter(utils_js_1.truthy)
310
- .flat();
311
- const fieldsSelector = kinds.join(',');
312
- const hasEnumValues = ((_b = opts.values) === null || _b === void 0 ? void 0 : _b[0]) === graphql_1.Kind.ENUM_TYPE_DEFINITION;
313
- const selectionsSelector = (_c = opts.selections) === null || _c === void 0 ? void 0 : _c.join(',');
314
- const hasVariables = ((_d = opts.variables) === null || _d === void 0 ? void 0 : _d[0]) === graphql_1.Kind.OPERATION_DEFINITION;
315
- const argumentsSelector = (_e = opts.arguments) === null || _e === void 0 ? void 0 : _e.join(',');
316
- if (fieldsSelector) {
317
- listeners[fieldsSelector] = (node) => {
318
- checkNodes(node.fields);
319
- };
320
- }
321
- if (hasEnumValues) {
322
- const enumValuesSelector = [graphql_1.Kind.ENUM_TYPE_DEFINITION, graphql_1.Kind.ENUM_TYPE_EXTENSION].join(',');
323
- listeners[enumValuesSelector] = (node) => {
324
- checkNodes(node.values);
325
- };
326
- }
327
- if (selectionsSelector) {
328
- listeners[`:matches(${selectionsSelector}) SelectionSet`] = (node) => {
329
- checkNodes(node.selections);
330
- };
331
- }
332
- if (hasVariables) {
333
- listeners.OperationDefinition = (node) => {
334
- var _a;
335
- checkNodes((_a = node.variableDefinitions) === null || _a === void 0 ? void 0 : _a.map(varDef => varDef.variable));
336
- };
337
- }
338
- if (argumentsSelector) {
339
- listeners[argumentsSelector] = (node) => {
340
- checkNodes(node.arguments);
341
- };
342
- }
343
- if (opts.definitions) {
344
- listeners.Document = node => {
345
- checkNodes(node.definitions);
346
- };
347
- }
348
- return listeners;
349
- },
310
+ context.report({
311
+ // @ts-expect-error can't be undefined
312
+ node: "alias" in currNode && currNode.alias || currNode.name,
313
+ messageId: RULE_ID,
314
+ data: {
315
+ currNode: (0, import_utils.displayNodeName)(currNode),
316
+ prevNode: prevName ? (0, import_utils.displayNodeName)(prevNode) : (0, import_lodash.default)(prevNode.kind)
317
+ },
318
+ *fix(fixer) {
319
+ const prevRange = getRangeWithComments(prevNode);
320
+ const currRange = getRangeWithComments(currNode);
321
+ yield fixer.replaceTextRange(
322
+ prevRange,
323
+ sourceCode.getText({ range: currRange })
324
+ );
325
+ yield fixer.replaceTextRange(
326
+ currRange,
327
+ sourceCode.getText({ range: prevRange })
328
+ );
329
+ }
330
+ });
331
+ }
332
+ }
333
+ const opts = context.options[0];
334
+ const fields = new Set(opts.fields ?? []);
335
+ const listeners = {};
336
+ const kinds = [
337
+ fields.has(import_graphql.Kind.OBJECT_TYPE_DEFINITION) && [
338
+ import_graphql.Kind.OBJECT_TYPE_DEFINITION,
339
+ import_graphql.Kind.OBJECT_TYPE_EXTENSION
340
+ ],
341
+ fields.has(import_graphql.Kind.INTERFACE_TYPE_DEFINITION) && [
342
+ import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
343
+ import_graphql.Kind.INTERFACE_TYPE_EXTENSION
344
+ ],
345
+ fields.has(import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION) && [
346
+ import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
347
+ import_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION
348
+ ]
349
+ ].filter(import_utils.truthy).flat();
350
+ const fieldsSelector = kinds.join(",");
351
+ const hasEnumValues = opts.values?.[0] === import_graphql.Kind.ENUM_TYPE_DEFINITION;
352
+ const selectionsSelector = opts.selections?.join(",");
353
+ const hasVariables = opts.variables?.[0] === import_graphql.Kind.OPERATION_DEFINITION;
354
+ const argumentsSelector = opts.arguments?.join(",");
355
+ if (fieldsSelector) {
356
+ listeners[fieldsSelector] = (node) => {
357
+ checkNodes(node.fields);
358
+ };
359
+ }
360
+ if (hasEnumValues) {
361
+ const enumValuesSelector = [import_graphql.Kind.ENUM_TYPE_DEFINITION, import_graphql.Kind.ENUM_TYPE_EXTENSION].join(",");
362
+ listeners[enumValuesSelector] = (node) => {
363
+ checkNodes(node.values);
364
+ };
365
+ }
366
+ if (selectionsSelector) {
367
+ listeners[`:matches(${selectionsSelector}) SelectionSet`] = (node) => {
368
+ checkNodes(node.selections);
369
+ };
370
+ }
371
+ if (hasVariables) {
372
+ listeners.OperationDefinition = (node) => {
373
+ checkNodes(node.variableDefinitions?.map((varDef) => varDef.variable));
374
+ };
375
+ }
376
+ if (argumentsSelector) {
377
+ listeners[argumentsSelector] = (node) => {
378
+ checkNodes(node.arguments);
379
+ };
380
+ }
381
+ if (opts.definitions) {
382
+ listeners.Document = (node) => {
383
+ checkNodes(node.definitions);
384
+ };
385
+ }
386
+ return listeners;
387
+ }
350
388
  };
389
+ // Annotate the CommonJS export names for ESM import in node:
390
+ 0 && (module.exports = {
391
+ rule
392
+ });