@graphql-eslint/eslint-plugin 4.0.0-alpha.1 → 4.0.0-alpha.11

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 (266) hide show
  1. package/README.md +2 -0
  2. package/{esm/cache.d.mts → cjs/cache.d.cts} +1 -1
  3. package/cjs/cache.js +8 -36
  4. package/cjs/chunk-UIAXBAMD.js +8 -0
  5. package/cjs/configs/index.d.cts +24 -0
  6. package/cjs/configs/index.js +35 -38
  7. package/cjs/configs/operations-all.js +33 -26
  8. package/cjs/configs/operations-recommended.js +59 -52
  9. package/cjs/configs/schema-all.js +29 -22
  10. package/cjs/configs/schema-recommended.js +73 -66
  11. package/cjs/configs/schema-relay.js +17 -10
  12. package/cjs/documents.js +18 -38
  13. package/{esm/estree-converter/converter.d.mts → cjs/estree-converter/converter.d.cts} +1 -1
  14. package/cjs/estree-converter/converter.js +16 -30
  15. package/cjs/estree-converter/index.d.cts +8 -0
  16. package/cjs/estree-converter/index.js +3 -23
  17. package/cjs/estree-converter/types.js +1 -14
  18. package/{esm/estree-converter/utils.d.mts → cjs/estree-converter/utils.d.cts} +3 -3
  19. package/cjs/estree-converter/utils.js +22 -40
  20. package/{esm/graphql-config.d.mts → cjs/graphql-config.d.cts} +3 -3
  21. package/cjs/graphql-config.js +16 -42
  22. package/cjs/index.d.cts +186 -0
  23. package/cjs/index.js +24 -41
  24. package/cjs/meta.d.cts +3 -0
  25. package/cjs/meta.js +5 -0
  26. package/cjs/package.json +1 -0
  27. package/{esm/parser.d.mts → cjs/parser.d.cts} +11 -4
  28. package/cjs/parser.js +35 -46
  29. package/{esm/processor.d.mts → cjs/processor.d.cts} +4 -0
  30. package/cjs/processor.js +25 -34
  31. package/{esm/rules/alphabetize.d.mts → cjs/rules/alphabetize/index.d.cts} +4 -4
  32. package/cjs/rules/{alphabetize.js → alphabetize/index.js} +69 -77
  33. package/{esm/rules/description-style.d.mts → cjs/rules/description-style/index.d.cts} +3 -3
  34. package/cjs/rules/{description-style.js → description-style/index.js} +7 -27
  35. package/{esm/rules/graphql-js-validation.d.mts → cjs/rules/graphql-js-validation.d.cts} +3 -3
  36. package/cjs/rules/graphql-js-validation.js +93 -70
  37. package/cjs/rules/{index.d.ts → index.d.cts} +17 -15
  38. package/cjs/rules/index.js +74 -60
  39. package/cjs/rules/{input-name.d.ts → input-name/index.d.cts} +6 -4
  40. package/cjs/rules/{input-name.js → input-name/index.js} +10 -28
  41. package/cjs/rules/{lone-executable-definition.d.ts → lone-executable-definition/index.d.cts} +3 -3
  42. package/cjs/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +13 -32
  43. package/cjs/rules/{match-document-filename.d.ts → match-document-filename/index.d.cts} +4 -4
  44. package/cjs/rules/{match-document-filename.js → match-document-filename/index.js} +21 -35
  45. package/{esm/rules/naming-convention.d.mts → cjs/rules/naming-convention/index.d.cts} +6 -4
  46. package/cjs/rules/{naming-convention.js → naming-convention/index.js} +41 -54
  47. package/cjs/rules/no-anonymous-operations/index.d.cts +13 -0
  48. package/cjs/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +9 -28
  49. package/{esm/rules/no-deprecated.d.mts → cjs/rules/no-deprecated/index.d.cts} +3 -3
  50. package/cjs/rules/{no-deprecated.js → no-deprecated/index.js} +11 -30
  51. package/cjs/rules/no-duplicate-fields/index.d.cts +13 -0
  52. package/cjs/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +8 -28
  53. package/cjs/rules/{no-hashtag-description.d.ts → no-hashtag-description/index.d.cts} +3 -3
  54. package/cjs/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +11 -31
  55. package/cjs/rules/no-one-place-fragments/index.d.cts +13 -0
  56. package/cjs/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +11 -29
  57. package/cjs/rules/{no-root-type.d.ts → no-root-type/index.d.cts} +3 -3
  58. package/cjs/rules/{no-root-type.js → no-root-type/index.js} +9 -29
  59. package/cjs/rules/no-scalar-result-type-on-mutation/index.d.cts +13 -0
  60. package/cjs/rules/no-scalar-result-type-on-mutation/index.js +69 -0
  61. package/cjs/rules/no-typename-prefix/index.d.cts +13 -0
  62. package/cjs/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +5 -25
  63. package/cjs/rules/no-unreachable-types/index.d.cts +13 -0
  64. package/cjs/rules/no-unreachable-types/index.js +155 -0
  65. package/cjs/rules/no-unused-fields/index.d.cts +34 -0
  66. package/cjs/rules/no-unused-fields/index.js +224 -0
  67. package/{esm/rules/relay-arguments.d.mts → cjs/rules/relay-arguments/index.d.cts} +3 -3
  68. package/cjs/rules/{relay-arguments.js → relay-arguments/index.js} +11 -30
  69. package/{esm/rules/relay-connection-types.d.mts → cjs/rules/relay-connection-types/index.d.cts} +3 -3
  70. package/cjs/rules/{relay-connection-types.js → relay-connection-types/index.js} +19 -40
  71. package/cjs/rules/{relay-edge-types.d.ts → relay-edge-types/index.d.cts} +6 -4
  72. package/cjs/rules/{relay-edge-types.js → relay-edge-types/index.js} +31 -44
  73. package/cjs/rules/relay-page-info/index.d.cts +13 -0
  74. package/cjs/rules/{relay-page-info.js → relay-page-info/index.js} +13 -31
  75. package/{esm/rules/require-deprecation-date.d.mts → cjs/rules/require-deprecation-date/index.d.cts} +3 -3
  76. package/cjs/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +13 -32
  77. package/cjs/rules/require-deprecation-reason/index.d.cts +13 -0
  78. package/cjs/rules/require-deprecation-reason/index.js +66 -0
  79. package/{esm/rules/require-description.d.mts → cjs/rules/require-description/index.d.cts} +3 -3
  80. package/cjs/rules/{require-description.js → require-description/index.js} +30 -44
  81. package/cjs/rules/require-field-of-type-query-in-mutation-result/index.d.cts +13 -0
  82. package/cjs/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +10 -29
  83. package/cjs/rules/require-import-fragment/index.d.cts +13 -0
  84. package/cjs/rules/{require-import-fragment.js → require-import-fragment/index.js} +16 -38
  85. package/cjs/rules/require-nullable-fields-with-oneof/index.d.cts +13 -0
  86. package/cjs/rules/require-nullable-fields-with-oneof/index.js +62 -0
  87. package/cjs/rules/require-nullable-result-in-root/index.d.cts +13 -0
  88. package/cjs/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +12 -31
  89. package/{esm/rules/require-selections.d.mts → cjs/rules/require-selections/index.d.cts} +3 -3
  90. package/cjs/rules/{require-selections.js → require-selections/index.js} +47 -45
  91. package/cjs/rules/require-type-pattern-with-oneof/index.d.cts +13 -0
  92. package/cjs/rules/require-type-pattern-with-oneof/index.js +63 -0
  93. package/{esm/rules/selection-set-depth.d.mts → cjs/rules/selection-set-depth/index.d.cts} +3 -3
  94. package/cjs/rules/{selection-set-depth.js → selection-set-depth/index.js} +16 -42
  95. package/cjs/rules/{strict-id-in-types.d.ts → strict-id-in-types/index.d.cts} +6 -4
  96. package/cjs/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +26 -39
  97. package/cjs/rules/unique-enum-value-names/index.d.cts +13 -0
  98. package/cjs/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +10 -29
  99. package/{esm/rules/unique-fragment-name.d.mts → cjs/rules/unique-fragment-name/index.d.cts} +3 -3
  100. package/cjs/rules/unique-fragment-name/index.js +87 -0
  101. package/cjs/rules/unique-operation-name/index.d.cts +13 -0
  102. package/cjs/rules/{unique-operation-name.js → unique-operation-name/index.js} +7 -27
  103. package/{esm/schema.d.mts → cjs/schema.d.cts} +3 -3
  104. package/cjs/schema.js +11 -36
  105. package/cjs/siblings.js +17 -33
  106. package/{esm/types.d.mts → cjs/types.d.cts} +2 -2
  107. package/cjs/types.js +1 -14
  108. package/{esm/utils.d.mts → cjs/utils.d.cts} +5 -5
  109. package/cjs/utils.js +94 -115
  110. package/{cjs → esm}/cache.d.ts +1 -1
  111. package/esm/configs/index.d.ts +24 -0
  112. package/esm/configs/index.js +22 -1
  113. package/esm/configs/operations-all.js +1 -1
  114. package/esm/documents.js +8 -3
  115. package/{cjs → esm}/estree-converter/index.d.ts +2 -2
  116. package/{cjs → esm}/estree-converter/utils.d.ts +3 -3
  117. package/esm/graphql-config.js +1 -1
  118. package/esm/index.d.ts +186 -0
  119. package/esm/index.js +10 -4
  120. package/esm/meta.d.ts +3 -0
  121. package/esm/meta.js +5 -0
  122. package/{cjs → esm}/parser.d.ts +8 -1
  123. package/esm/parser.js +10 -1
  124. package/{cjs → esm}/processor.d.ts +4 -0
  125. package/esm/processor.js +5 -0
  126. package/{cjs/rules/alphabetize.d.ts → esm/rules/alphabetize/index.d.ts} +5 -5
  127. package/esm/rules/{alphabetize.js → alphabetize/index.js} +26 -10
  128. package/{cjs/rules/description-style.d.ts → esm/rules/description-style/index.d.ts} +3 -3
  129. package/esm/rules/{description-style.js → description-style/index.js} +2 -2
  130. package/esm/rules/{index.d.mts → index.d.ts} +11 -9
  131. package/esm/rules/index.js +34 -34
  132. package/esm/rules/{input-name.d.mts → input-name/index.d.ts} +6 -4
  133. package/esm/rules/{input-name.js → input-name/index.js} +1 -1
  134. package/esm/rules/{lone-executable-definition.d.mts → lone-executable-definition/index.d.ts} +3 -3
  135. package/esm/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +2 -2
  136. package/esm/rules/{match-document-filename.d.mts → match-document-filename/index.d.ts} +4 -4
  137. package/esm/rules/{match-document-filename.js → match-document-filename/index.js} +4 -4
  138. package/{cjs/rules/naming-convention.d.ts → esm/rules/naming-convention/index.d.ts} +6 -4
  139. package/esm/rules/{naming-convention.js → naming-convention/index.js} +2 -2
  140. package/{cjs/rules/no-one-place-fragments.d.ts → esm/rules/no-anonymous-operations/index.d.ts} +3 -3
  141. package/esm/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +2 -2
  142. package/{cjs/rules/no-deprecated.d.ts → esm/rules/no-deprecated/index.d.ts} +3 -3
  143. package/esm/rules/{no-deprecated.js → no-deprecated/index.js} +2 -2
  144. package/{cjs/rules/no-scalar-result-type-on-mutation.d.ts → esm/rules/no-duplicate-fields/index.d.ts} +3 -3
  145. package/esm/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +1 -1
  146. package/esm/rules/{no-hashtag-description.d.mts → no-hashtag-description/index.d.ts} +3 -3
  147. package/esm/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +2 -2
  148. package/{cjs/rules/no-anonymous-operations.d.ts → esm/rules/no-one-place-fragments/index.d.ts} +3 -3
  149. package/esm/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +2 -2
  150. package/esm/rules/{no-root-type.d.mts → no-root-type/index.d.ts} +3 -3
  151. package/esm/rules/{no-root-type.js → no-root-type/index.js} +2 -2
  152. package/{cjs/rules/no-duplicate-fields.d.ts → esm/rules/no-scalar-result-type-on-mutation/index.d.ts} +3 -3
  153. package/esm/rules/{no-scalar-result-type-on-mutation.js → no-scalar-result-type-on-mutation/index.js} +2 -2
  154. package/esm/rules/no-typename-prefix/index.d.ts +13 -0
  155. package/esm/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +1 -1
  156. package/esm/rules/no-unreachable-types/index.d.ts +13 -0
  157. package/esm/rules/{no-unreachable-types.js → no-unreachable-types/index.js} +8 -8
  158. package/esm/rules/no-unused-fields/index.d.ts +34 -0
  159. package/esm/rules/no-unused-fields/index.js +224 -0
  160. package/{cjs/rules/relay-arguments.d.ts → esm/rules/relay-arguments/index.d.ts} +3 -3
  161. package/esm/rules/{relay-arguments.js → relay-arguments/index.js} +2 -2
  162. package/{cjs/rules/relay-connection-types.d.ts → esm/rules/relay-connection-types/index.d.ts} +3 -3
  163. package/esm/rules/{relay-connection-types.js → relay-connection-types/index.js} +1 -1
  164. package/esm/rules/{relay-edge-types.d.mts → relay-edge-types/index.d.ts} +6 -4
  165. package/esm/rules/{relay-edge-types.js → relay-edge-types/index.js} +3 -3
  166. package/esm/rules/relay-page-info/index.d.ts +13 -0
  167. package/esm/rules/{relay-page-info.js → relay-page-info/index.js} +4 -4
  168. package/{cjs/rules/require-deprecation-date.d.ts → esm/rules/require-deprecation-date/index.d.ts} +3 -3
  169. package/esm/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +3 -3
  170. package/esm/rules/require-deprecation-reason/index.d.ts +13 -0
  171. package/esm/rules/{require-deprecation-reason.js → require-deprecation-reason/index.js} +3 -3
  172. package/{cjs/rules/require-description.d.ts → esm/rules/require-description/index.d.ts} +3 -3
  173. package/esm/rules/{require-description.js → require-description/index.js} +2 -2
  174. package/esm/rules/require-field-of-type-query-in-mutation-result/index.d.ts +13 -0
  175. package/esm/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +2 -2
  176. package/esm/rules/require-import-fragment/index.d.ts +13 -0
  177. package/esm/rules/{require-import-fragment.js → require-import-fragment/index.js} +9 -4
  178. package/esm/rules/require-nullable-fields-with-oneof/index.d.ts +13 -0
  179. package/esm/rules/{require-nullable-fields-with-oneof.js → require-nullable-fields-with-oneof/index.js} +2 -2
  180. package/esm/rules/require-nullable-result-in-root/index.d.ts +13 -0
  181. package/esm/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +2 -2
  182. package/{cjs/rules/require-selections.d.ts → esm/rules/require-selections/index.d.ts} +3 -3
  183. package/esm/rules/{require-selections.js → require-selections/index.js} +13 -7
  184. package/esm/rules/require-type-pattern-with-oneof/index.d.ts +13 -0
  185. package/esm/rules/{require-type-pattern-with-oneof.js → require-type-pattern-with-oneof/index.js} +2 -2
  186. package/{cjs/rules/selection-set-depth.d.ts → esm/rules/selection-set-depth/index.d.ts} +3 -3
  187. package/esm/rules/{selection-set-depth.js → selection-set-depth/index.js} +3 -3
  188. package/esm/rules/{strict-id-in-types.d.mts → strict-id-in-types/index.d.ts} +6 -4
  189. package/esm/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +2 -2
  190. package/esm/rules/unique-enum-value-names/index.d.ts +13 -0
  191. package/esm/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +2 -2
  192. package/{cjs/rules/unique-fragment-name.d.ts → esm/rules/unique-fragment-name/index.d.ts} +3 -3
  193. package/esm/rules/{unique-fragment-name.js → unique-fragment-name/index.js} +3 -3
  194. package/esm/rules/unique-operation-name/index.d.ts +13 -0
  195. package/esm/rules/{unique-operation-name.js → unique-operation-name/index.js} +2 -2
  196. package/{cjs → esm}/utils.d.ts +2 -2
  197. package/esm/utils.js +39 -16
  198. package/{index.browser.mjs → index.browser.js} +352 -181
  199. package/package.json +7 -11
  200. package/cjs/configs/index.d.ts +0 -174
  201. package/cjs/flat-configs.d.ts +0 -307
  202. package/cjs/flat-configs.js +0 -55
  203. package/cjs/index.d.ts +0 -26
  204. package/cjs/rules/no-scalar-result-type-on-mutation.js +0 -88
  205. package/cjs/rules/no-typename-prefix.d.ts +0 -13
  206. package/cjs/rules/no-unreachable-types.d.ts +0 -13
  207. package/cjs/rules/no-unreachable-types.js +0 -176
  208. package/cjs/rules/no-unused-fields.d.ts +0 -13
  209. package/cjs/rules/no-unused-fields.js +0 -132
  210. package/cjs/rules/relay-page-info.d.ts +0 -13
  211. package/cjs/rules/require-deprecation-reason.d.ts +0 -13
  212. package/cjs/rules/require-deprecation-reason.js +0 -85
  213. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -13
  214. package/cjs/rules/require-import-fragment.d.ts +0 -13
  215. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +0 -13
  216. package/cjs/rules/require-nullable-fields-with-oneof.js +0 -81
  217. package/cjs/rules/require-nullable-result-in-root.d.ts +0 -13
  218. package/cjs/rules/require-type-pattern-with-oneof.d.ts +0 -13
  219. package/cjs/rules/require-type-pattern-with-oneof.js +0 -83
  220. package/cjs/rules/unique-enum-value-names.d.ts +0 -13
  221. package/cjs/rules/unique-fragment-name.js +0 -106
  222. package/cjs/rules/unique-operation-name.d.ts +0 -13
  223. package/esm/configs/index.d.mts +0 -174
  224. package/esm/estree-converter/index.d.mts +0 -8
  225. package/esm/flat-configs.d.mts +0 -307
  226. package/esm/flat-configs.js +0 -36
  227. package/esm/index.d.mts +0 -26
  228. package/esm/package.json +0 -1
  229. package/esm/rules/no-anonymous-operations.d.mts +0 -13
  230. package/esm/rules/no-duplicate-fields.d.mts +0 -13
  231. package/esm/rules/no-one-place-fragments.d.mts +0 -13
  232. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +0 -13
  233. package/esm/rules/no-typename-prefix.d.mts +0 -13
  234. package/esm/rules/no-unreachable-types.d.mts +0 -13
  235. package/esm/rules/no-unused-fields.d.mts +0 -13
  236. package/esm/rules/no-unused-fields.js +0 -113
  237. package/esm/rules/relay-page-info.d.mts +0 -13
  238. package/esm/rules/require-deprecation-reason.d.mts +0 -13
  239. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +0 -13
  240. package/esm/rules/require-import-fragment.d.mts +0 -13
  241. package/esm/rules/require-nullable-fields-with-oneof.d.mts +0 -13
  242. package/esm/rules/require-nullable-result-in-root.d.mts +0 -13
  243. package/esm/rules/require-type-pattern-with-oneof.d.mts +0 -13
  244. package/esm/rules/unique-enum-value-names.d.mts +0 -13
  245. package/esm/rules/unique-operation-name.d.mts +0 -13
  246. /package/cjs/configs/{operations-all.d.ts → operations-all.d.cts} +0 -0
  247. /package/cjs/configs/{operations-recommended.d.ts → operations-recommended.d.cts} +0 -0
  248. /package/cjs/configs/{schema-all.d.ts → schema-all.d.cts} +0 -0
  249. /package/cjs/configs/{schema-recommended.d.ts → schema-recommended.d.cts} +0 -0
  250. /package/cjs/configs/{schema-relay.d.ts → schema-relay.d.cts} +0 -0
  251. /package/cjs/{documents.d.ts → documents.d.cts} +0 -0
  252. /package/cjs/estree-converter/{types.d.ts → types.d.cts} +0 -0
  253. /package/cjs/{siblings.d.ts → siblings.d.cts} +0 -0
  254. /package/esm/configs/{operations-all.d.mts → operations-all.d.ts} +0 -0
  255. /package/esm/configs/{operations-recommended.d.mts → operations-recommended.d.ts} +0 -0
  256. /package/esm/configs/{schema-all.d.mts → schema-all.d.ts} +0 -0
  257. /package/esm/configs/{schema-recommended.d.mts → schema-recommended.d.ts} +0 -0
  258. /package/esm/configs/{schema-relay.d.mts → schema-relay.d.ts} +0 -0
  259. /package/esm/{documents.d.mts → documents.d.ts} +0 -0
  260. /package/{cjs → esm}/estree-converter/converter.d.ts +0 -0
  261. /package/esm/estree-converter/{types.d.mts → types.d.ts} +0 -0
  262. /package/{cjs → esm}/graphql-config.d.ts +0 -0
  263. /package/{cjs → esm}/rules/graphql-js-validation.d.ts +0 -0
  264. /package/{cjs → esm}/schema.d.ts +0 -0
  265. /package/esm/{siblings.d.mts → siblings.d.ts} +0 -0
  266. /package/{cjs → esm}/types.d.ts +0 -0
@@ -0,0 +1,69 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-UIAXBAMD.js');
2
+ var _graphql = require('graphql');
3
+ var _utilsjs = require('../../utils.js');
4
+ const RULE_ID = "no-scalar-result-type-on-mutation", rule = exports.rule = {
5
+ meta: {
6
+ type: "suggestion",
7
+ hasSuggestions: !0,
8
+ docs: {
9
+ category: "Schema",
10
+ description: "Avoid scalar result type on mutation type to make sure to return a valid state.",
11
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
12
+ requiresSchema: !0,
13
+ examples: [
14
+ {
15
+ title: "Incorrect",
16
+ code: (
17
+ /* GraphQL */
18
+ `
19
+ type Mutation {
20
+ createUser: Boolean
21
+ }
22
+ `
23
+ )
24
+ },
25
+ {
26
+ title: "Correct",
27
+ code: (
28
+ /* GraphQL */
29
+ `
30
+ type Mutation {
31
+ createUser: User!
32
+ }
33
+ `
34
+ )
35
+ }
36
+ ]
37
+ },
38
+ schema: []
39
+ },
40
+ create(context) {
41
+ const schema = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), mutationType = schema.getMutationType();
42
+ return mutationType ? {
43
+ [[
44
+ `:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=${mutationType.name}]`,
45
+ "> FieldDefinition > .gqlType Name"
46
+ ].join(" ")](node) {
47
+ const typeName = node.value, graphQLType = schema.getType(typeName);
48
+ if (_graphql.isScalarType.call(void 0, graphQLType)) {
49
+ let fieldDef = node.parent;
50
+ for (; fieldDef.kind !== _graphql.Kind.FIELD_DEFINITION; )
51
+ fieldDef = fieldDef.parent;
52
+ context.report({
53
+ node,
54
+ message: `Unexpected scalar result type \`${typeName}\` for ${_utilsjs.getNodeName.call(void 0, fieldDef)}`,
55
+ suggest: [
56
+ {
57
+ desc: `Remove \`${typeName}\``,
58
+ fix: (fixer) => fixer.remove(node)
59
+ }
60
+ ]
61
+ });
62
+ }
63
+ }
64
+ } : {};
65
+ }
66
+ };
67
+
68
+
69
+ exports.rule = rule;
@@ -0,0 +1,13 @@
1
+ import { GraphQLESLintRule } from '../../types.cjs';
2
+ import 'eslint';
3
+ import 'estree';
4
+ import 'graphql';
5
+ import 'graphql-config';
6
+ import 'json-schema-to-ts';
7
+ import '../../estree-converter/types.cjs';
8
+ import '../../siblings.cjs';
9
+ import '@graphql-tools/utils';
10
+
11
+ declare const rule: GraphQLESLintRule;
12
+
13
+ export { rule };
@@ -1,24 +1,5 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
- var no_typename_prefix_exports = {};
17
- __export(no_typename_prefix_exports, {
18
- rule: () => rule
19
- });
20
- module.exports = __toCommonJS(no_typename_prefix_exports);
21
- const NO_TYPENAME_PREFIX = "NO_TYPENAME_PREFIX", rule = {
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-UIAXBAMD.js');
2
+ const NO_TYPENAME_PREFIX = "NO_TYPENAME_PREFIX", rule = exports.rule = {
22
3
  meta: {
23
4
  type: "suggestion",
24
5
  hasSuggestions: !0,
@@ -85,7 +66,6 @@ const NO_TYPENAME_PREFIX = "NO_TYPENAME_PREFIX", rule = {
85
66
  };
86
67
  }
87
68
  };
88
- // Annotate the CommonJS export names for ESM import in node:
89
- 0 && (module.exports = {
90
- rule
91
- });
69
+
70
+
71
+ exports.rule = rule;
@@ -0,0 +1,13 @@
1
+ import { GraphQLESLintRule } from '../../types.cjs';
2
+ import 'eslint';
3
+ import 'estree';
4
+ import 'graphql';
5
+ import 'graphql-config';
6
+ import 'json-schema-to-ts';
7
+ import '../../estree-converter/types.cjs';
8
+ import '../../siblings.cjs';
9
+ import '@graphql-tools/utils';
10
+
11
+ declare const rule: GraphQLESLintRule;
12
+
13
+ export { rule };
@@ -0,0 +1,155 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
2
+
3
+
4
+
5
+
6
+
7
+ var _graphql = require('graphql');
8
+ var _lodashlowercase = require('lodash.lowercase'); var _lodashlowercase2 = _interopRequireDefault(_lodashlowercase);
9
+ var _cachejs = require('../../cache.js');
10
+ var _utilsjs = require('../../utils.js');
11
+ const RULE_ID = "no-unreachable-types", KINDS = [
12
+ _graphql.Kind.DIRECTIVE_DEFINITION,
13
+ _graphql.Kind.OBJECT_TYPE_DEFINITION,
14
+ _graphql.Kind.OBJECT_TYPE_EXTENSION,
15
+ _graphql.Kind.INTERFACE_TYPE_DEFINITION,
16
+ _graphql.Kind.INTERFACE_TYPE_EXTENSION,
17
+ _graphql.Kind.SCALAR_TYPE_DEFINITION,
18
+ _graphql.Kind.SCALAR_TYPE_EXTENSION,
19
+ _graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
20
+ _graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION,
21
+ _graphql.Kind.UNION_TYPE_DEFINITION,
22
+ _graphql.Kind.UNION_TYPE_EXTENSION,
23
+ _graphql.Kind.ENUM_TYPE_DEFINITION,
24
+ _graphql.Kind.ENUM_TYPE_EXTENSION
25
+ ], reachableTypesCache = new (0, _cachejs.ModuleCache)(), RequestDirectiveLocations = /* @__PURE__ */ new Set([
26
+ _graphql.DirectiveLocation.QUERY,
27
+ _graphql.DirectiveLocation.MUTATION,
28
+ _graphql.DirectiveLocation.SUBSCRIPTION,
29
+ _graphql.DirectiveLocation.FIELD,
30
+ _graphql.DirectiveLocation.FRAGMENT_DEFINITION,
31
+ _graphql.DirectiveLocation.FRAGMENT_SPREAD,
32
+ _graphql.DirectiveLocation.INLINE_FRAGMENT,
33
+ _graphql.DirectiveLocation.VARIABLE_DEFINITION
34
+ ]);
35
+ function getReachableTypes(schema) {
36
+ const cachedValue = reachableTypesCache.get(schema);
37
+ if (process.env.NODE_ENV !== "test" && cachedValue)
38
+ return cachedValue;
39
+ const reachableTypes = /* @__PURE__ */ new Set(), collect = (node) => {
40
+ const typeName = _utilsjs.getTypeName.call(void 0, node);
41
+ if (reachableTypes.has(typeName))
42
+ return;
43
+ reachableTypes.add(typeName);
44
+ const type = schema.getType(typeName) || schema.getDirective(typeName);
45
+ if (_graphql.isInterfaceType.call(void 0, type)) {
46
+ const { objects, interfaces } = schema.getImplementations(type);
47
+ for (const { astNode } of [...objects, ...interfaces])
48
+ _graphql.visit.call(void 0, astNode, visitor);
49
+ } else _optionalChain([type, 'optionalAccess', _ => _.astNode]) && _graphql.visit.call(void 0, type.astNode, visitor);
50
+ }, visitor = {
51
+ InterfaceTypeDefinition: collect,
52
+ ObjectTypeDefinition: collect,
53
+ InputValueDefinition: collect,
54
+ UnionTypeDefinition: collect,
55
+ FieldDefinition: collect,
56
+ Directive: collect,
57
+ NamedType: collect
58
+ };
59
+ for (const type of [
60
+ schema,
61
+ // visiting SchemaDefinition node
62
+ schema.getQueryType(),
63
+ schema.getMutationType(),
64
+ schema.getSubscriptionType()
65
+ ])
66
+ _optionalChain([type, 'optionalAccess', _2 => _2.astNode]) && _graphql.visit.call(void 0, type.astNode, visitor);
67
+ for (const node of schema.getDirectives())
68
+ if (node.locations.some((location) => RequestDirectiveLocations.has(location))) {
69
+ reachableTypes.add(node.name);
70
+ for (const arg of node.args) {
71
+ const argTypeName = "name" in arg.type && arg.type.name;
72
+ argTypeName && reachableTypes.add(argTypeName);
73
+ }
74
+ }
75
+ return reachableTypesCache.set(schema, reachableTypes), reachableTypes;
76
+ }
77
+ const rule = {
78
+ meta: {
79
+ messages: {
80
+ [RULE_ID]: "{{ type }} `{{ typeName }}` is unreachable."
81
+ },
82
+ docs: {
83
+ description: "Requires all types to be reachable at some level by root level fields.",
84
+ category: "Schema",
85
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
86
+ requiresSchema: !0,
87
+ examples: [
88
+ {
89
+ title: "Incorrect",
90
+ code: (
91
+ /* GraphQL */
92
+ `
93
+ type User {
94
+ id: ID!
95
+ name: String
96
+ }
97
+
98
+ type Query {
99
+ me: String
100
+ }
101
+ `
102
+ )
103
+ },
104
+ {
105
+ title: "Correct",
106
+ code: (
107
+ /* GraphQL */
108
+ `
109
+ type User {
110
+ id: ID!
111
+ name: String
112
+ }
113
+
114
+ type Query {
115
+ me: User
116
+ }
117
+ `
118
+ )
119
+ }
120
+ ],
121
+ recommended: !0
122
+ },
123
+ type: "suggestion",
124
+ schema: [],
125
+ hasSuggestions: !0
126
+ },
127
+ create(context) {
128
+ const schema = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), reachableTypes = getReachableTypes(schema);
129
+ return {
130
+ [`:matches(${KINDS}) > .name`](node) {
131
+ const typeName = node.value;
132
+ if (!reachableTypes.has(typeName)) {
133
+ const type = _lodashlowercase2.default.call(void 0, node.parent.kind.replace(/(Extension|Definition)$/, ""));
134
+ context.report({
135
+ node,
136
+ messageId: RULE_ID,
137
+ data: {
138
+ type: type[0].toUpperCase() + type.slice(1),
139
+ typeName
140
+ },
141
+ suggest: [
142
+ {
143
+ desc: `Remove \`${typeName}\``,
144
+ fix: (fixer) => fixer.remove(node.parent)
145
+ }
146
+ ]
147
+ });
148
+ }
149
+ }
150
+ };
151
+ }
152
+ };
153
+
154
+
155
+ exports.rule = rule;
@@ -0,0 +1,34 @@
1
+ import { FromSchema } from 'json-schema-to-ts';
2
+ import { GraphQLESLintRule } from '../../types.cjs';
3
+ import 'eslint';
4
+ import 'estree';
5
+ import 'graphql';
6
+ import 'graphql-config';
7
+ import '../../estree-converter/types.cjs';
8
+ import '../../siblings.cjs';
9
+ import '@graphql-tools/utils';
10
+
11
+ declare const schema: {
12
+ readonly type: "array";
13
+ readonly maxItems: 1;
14
+ readonly items: {
15
+ readonly type: "object";
16
+ readonly additionalProperties: false;
17
+ readonly properties: {
18
+ readonly ignoredFieldSelectors: {
19
+ readonly type: "array";
20
+ readonly uniqueItems: true;
21
+ readonly minItems: 1;
22
+ readonly description: string;
23
+ readonly items: {
24
+ readonly type: "string";
25
+ readonly pattern: "^\\[(.+)]$";
26
+ };
27
+ };
28
+ };
29
+ };
30
+ };
31
+ type RuleOptions = FromSchema<typeof schema>;
32
+ declare const rule: GraphQLESLintRule<RuleOptions>;
33
+
34
+ export { type RuleOptions, rule };
@@ -0,0 +1,224 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
2
+ var _graphql = require('graphql');
3
+ var _cachejs = require('../../cache.js');
4
+ var _utilsjs = require('../../utils.js');
5
+ const RULE_ID = "no-unused-fields", RELAY_SCHEMA = (
6
+ /* GraphQL */
7
+ `
8
+ # Root Query Type
9
+ type Query {
10
+ user: User
11
+ }
12
+
13
+ # User Type
14
+ type User {
15
+ id: ID!
16
+ name: String!
17
+ friends(first: Int, after: String): FriendConnection!
18
+ }
19
+
20
+ # FriendConnection Type (Relay Connection)
21
+ type FriendConnection {
22
+ edges: [FriendEdge]
23
+ pageInfo: PageInfo!
24
+ }
25
+
26
+ # FriendEdge Type
27
+ type FriendEdge {
28
+ cursor: String!
29
+ node: Friend!
30
+ }
31
+
32
+ # Friend Type
33
+ type Friend {
34
+ id: ID!
35
+ name: String!
36
+ }
37
+
38
+ # PageInfo Type (Relay Pagination)
39
+ type PageInfo {
40
+ hasPreviousPage: Boolean!
41
+ hasNextPage: Boolean!
42
+ startCursor: String
43
+ endCursor: String
44
+ }
45
+ `
46
+ ), RELAY_QUERY = (
47
+ /* GraphQL */
48
+ `
49
+ query {
50
+ user {
51
+ id
52
+ name
53
+ friends(first: 10) {
54
+ edges {
55
+ node {
56
+ id
57
+ name
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ `
64
+ ), RELAY_DEFAULT_IGNORED_FIELD_SELECTORS = [
65
+ "[parent.name.value=PageInfo][name.value=/(endCursor|startCursor|hasNextPage|hasPreviousPage)/]",
66
+ "[parent.name.value=/Edge$/][name.value=cursor]",
67
+ "[parent.name.value=/Connection$/][name.value=pageInfo]"
68
+ ], schema = {
69
+ type: "array",
70
+ maxItems: 1,
71
+ items: {
72
+ type: "object",
73
+ additionalProperties: !1,
74
+ properties: {
75
+ ignoredFieldSelectors: {
76
+ type: "array",
77
+ uniqueItems: !0,
78
+ minItems: 1,
79
+ description: [
80
+ "Fields that will be ignored and are allowed to be unused.",
81
+ "",
82
+ "E.g. The following selector will ignore all the relay pagination fields for every connection exposed in the schema:",
83
+ "```json",
84
+ JSON.stringify(RELAY_DEFAULT_IGNORED_FIELD_SELECTORS, null, 2),
85
+ "```",
86
+ "",
87
+ "> These fields are defined by ESLint [`selectors`](https://eslint.org/docs/developer-guide/selectors).",
88
+ "> Paste or drop code into the editor in [ASTExplorer](https://astexplorer.net) and inspect the generated AST to compose your selector."
89
+ ].join(`
90
+ `),
91
+ items: {
92
+ type: "string",
93
+ pattern: "^\\[(.+)]$"
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }, usedFieldsCache = new (0, _cachejs.ModuleCache)();
99
+ function getUsedFields(schema2, operations) {
100
+ const cachedValue = usedFieldsCache.get(schema2);
101
+ if (process.env.NODE_ENV !== "test" && cachedValue)
102
+ return cachedValue;
103
+ const usedFields = /* @__PURE__ */ Object.create(null), typeInfo = new (0, _graphql.TypeInfo)(schema2), visitor = _graphql.visitWithTypeInfo.call(void 0, typeInfo, {
104
+ Field(node) {
105
+ if (!typeInfo.getFieldDef())
106
+ return !1;
107
+ const parentTypeName = typeInfo.getParentType().name, fieldName = node.name.value;
108
+ usedFields[parentTypeName] ??= /* @__PURE__ */ new Set(), usedFields[parentTypeName].add(fieldName);
109
+ }
110
+ }), allDocuments = [...operations.getOperations(), ...operations.getFragments()];
111
+ for (const { document } of allDocuments)
112
+ _graphql.visit.call(void 0, document, visitor);
113
+ return usedFieldsCache.set(schema2, usedFields), usedFields;
114
+ }
115
+ const rule = {
116
+ meta: {
117
+ messages: {
118
+ [RULE_ID]: 'Field "{{fieldName}}" is unused'
119
+ },
120
+ docs: {
121
+ description: "Requires all fields to be used at some level by siblings operations.",
122
+ category: "Schema",
123
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
124
+ requiresSiblings: !0,
125
+ requiresSchema: !0,
126
+ // Requires documents to be set
127
+ isDisabledForAllConfig: !0,
128
+ examples: [
129
+ {
130
+ title: "Incorrect",
131
+ code: (
132
+ /* GraphQL */
133
+ `
134
+ type User {
135
+ id: ID!
136
+ name: String
137
+ someUnusedField: String
138
+ }
139
+
140
+ type Query {
141
+ me: User
142
+ }
143
+
144
+ query {
145
+ me {
146
+ id
147
+ name
148
+ }
149
+ }
150
+ `
151
+ )
152
+ },
153
+ {
154
+ title: "Correct",
155
+ code: (
156
+ /* GraphQL */
157
+ `
158
+ type User {
159
+ id: ID!
160
+ name: String
161
+ }
162
+
163
+ type Query {
164
+ me: User
165
+ }
166
+
167
+ query {
168
+ me {
169
+ id
170
+ name
171
+ }
172
+ }
173
+ `
174
+ )
175
+ },
176
+ {
177
+ title: "Correct (ignoring fields)",
178
+ usage: [{ ignoredFieldSelectors: RELAY_DEFAULT_IGNORED_FIELD_SELECTORS }],
179
+ code: (
180
+ /* GraphQL */
181
+ `
182
+ ### 1\uFE0F\u20E3 YOUR SCHEMA
183
+ ${RELAY_SCHEMA}
184
+
185
+ ### 2\uFE0F\u20E3 YOUR QUERY
186
+ ${RELAY_QUERY}
187
+ `
188
+ )
189
+ }
190
+ ]
191
+ },
192
+ type: "suggestion",
193
+ schema,
194
+ hasSuggestions: !0
195
+ },
196
+ create(context) {
197
+ const schema2 = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), siblingsOperations = _utilsjs.requireSiblingsOperations.call(void 0, RULE_ID, context), usedFields = getUsedFields(schema2, siblingsOperations), { ignoredFieldSelectors } = context.options[0] || {};
198
+ return {
199
+ [(ignoredFieldSelectors || []).reduce(
200
+ (acc, selector2) => `${acc}:not(${selector2})`,
201
+ "FieldDefinition"
202
+ )](node) {
203
+ const fieldName = node.name.value, parentTypeName = node.parent.name.value;
204
+ _optionalChain([usedFields, 'access', _ => _[parentTypeName], 'optionalAccess', _2 => _2.has, 'call', _3 => _3(fieldName)]) || context.report({
205
+ node: node.name,
206
+ messageId: RULE_ID,
207
+ data: { fieldName },
208
+ suggest: [
209
+ {
210
+ desc: `Remove \`${fieldName}\` field`,
211
+ fix(fixer) {
212
+ const sourceCode = context.getSourceCode(), tokenBefore = sourceCode.getTokenBefore(node), tokenAfter = sourceCode.getTokenAfter(node), isEmptyType = tokenBefore.type === "{" && tokenAfter.type === "}";
213
+ return fixer.remove(isEmptyType ? node.parent : node);
214
+ }
215
+ }
216
+ ]
217
+ });
218
+ }
219
+ };
220
+ }
221
+ };
222
+
223
+
224
+ exports.rule = rule;
@@ -1,11 +1,11 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.mjs';
2
+ import { GraphQLESLintRule } from '../../types.cjs';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.mjs';
8
- import '../siblings.mjs';
7
+ import '../../estree-converter/types.cjs';
8
+ import '../../siblings.cjs';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const schema: {
@@ -1,24 +1,6 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: !0 });
9
- }, __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from == "object" || typeof from == "function")
11
- for (let key of __getOwnPropNames(from))
12
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
- return to;
14
- };
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
- var relay_arguments_exports = {};
17
- __export(relay_arguments_exports, {
18
- rule: () => rule
19
- });
20
- module.exports = __toCommonJS(relay_arguments_exports);
21
- var import_graphql = require("graphql"), import_utils = require("../utils.js");
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }require('../../chunk-UIAXBAMD.js');
2
+ var _graphql = require('graphql');
3
+ var _utilsjs = require('../../utils.js');
22
4
  const RULE_ID = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", schema = {
23
5
  type: "array",
24
6
  maxItems: 1,
@@ -34,7 +16,7 @@ const RULE_ID = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", sche
34
16
  }
35
17
  }
36
18
  }
37
- }, rule = {
19
+ }, rule = exports.rule = {
38
20
  meta: {
39
21
  type: "problem",
40
22
  docs: {
@@ -88,14 +70,14 @@ const RULE_ID = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", sche
88
70
  schema
89
71
  },
90
72
  create(context) {
91
- const schema2 = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context), { includeBoth = !0 } = context.options[0] || {};
73
+ const schema2 = _utilsjs.requireGraphQLSchemaFromContext.call(void 0, RULE_ID, context), { includeBoth = !0 } = context.options[0] || {};
92
74
  return {
93
75
  "FieldDefinition > .gqlType Name[value=/Connection$/]"(node) {
94
76
  let fieldNode = node.parent;
95
- for (; fieldNode.kind !== import_graphql.Kind.FIELD_DEFINITION; )
77
+ for (; fieldNode.kind !== _graphql.Kind.FIELD_DEFINITION; )
96
78
  fieldNode = fieldNode.parent;
97
79
  const args = Object.fromEntries(
98
- fieldNode.arguments?.map((argument) => [argument.name.value, argument]) || []
80
+ _optionalChain([fieldNode, 'access', _ => _.arguments, 'optionalAccess', _2 => _2.map, 'call', _3 => _3((argument) => [argument.name.value, argument])]) || []
99
81
  ), hasForwardPagination = !!(args.first && args.after), hasBackwardPagination = !!(args.last && args.before);
100
82
  if (!hasForwardPagination && !hasBackwardPagination) {
101
83
  context.report({
@@ -107,7 +89,7 @@ const RULE_ID = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", sche
107
89
  function checkField(typeName, argumentName) {
108
90
  const argument = args[argumentName], hasArgument = !!argument;
109
91
  let type = argument;
110
- if (hasArgument && type.gqlType.kind === import_graphql.Kind.NON_NULL_TYPE && (type = type.gqlType), !(hasArgument && type.gqlType.kind === import_graphql.Kind.NAMED_TYPE && (type.gqlType.name.value === typeName || typeName === "String" && (0, import_graphql.isScalarType)(schema2.getType(type.gqlType.name.value))))) {
92
+ if (hasArgument && type.gqlType.kind === _graphql.Kind.NON_NULL_TYPE && (type = type.gqlType), !(hasArgument && type.gqlType.kind === _graphql.Kind.NAMED_TYPE && (type.gqlType.name.value === typeName || typeName === "String" && _graphql.isScalarType.call(void 0, schema2.getType(type.gqlType.name.value))))) {
111
93
  const returnType = typeName === "String" ? "String or Scalar" : typeName;
112
94
  context.report({
113
95
  node: (argument || fieldNode).name,
@@ -120,7 +102,6 @@ const RULE_ID = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", sche
120
102
  };
121
103
  }
122
104
  };
123
- // Annotate the CommonJS export names for ESM import in node:
124
- 0 && (module.exports = {
125
- rule
126
- });
105
+
106
+
107
+ exports.rule = rule;
@@ -1,11 +1,11 @@
1
1
  import { Kind } from 'graphql';
2
- import { GraphQLESLintRule } from '../types.mjs';
2
+ import { GraphQLESLintRule } from '../../types.cjs';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql-config';
6
6
  import 'json-schema-to-ts';
7
- import '../estree-converter/types.mjs';
8
- import '../siblings.mjs';
7
+ import '../../estree-converter/types.cjs';
8
+ import '../../siblings.cjs';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const NON_OBJECT_TYPES: Kind[];