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

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 (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
+ });