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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) 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 +184 -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/{esm/rules/index.d.mts → cjs/rules/index.d.cts} +8 -8
  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 +13 -0
  66. package/cjs/rules/{no-unused-fields.js → no-unused-fields/index.js} +16 -34
  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 +184 -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/{cjs → esm}/rules/index.d.ts +10 -10
  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 +13 -0
  159. package/esm/rules/{no-unused-fields.js → no-unused-fields/index.js} +8 -7
  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} +171 -110
  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/relay-page-info.d.ts +0 -13
  210. package/cjs/rules/require-deprecation-reason.d.ts +0 -13
  211. package/cjs/rules/require-deprecation-reason.js +0 -85
  212. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -13
  213. package/cjs/rules/require-import-fragment.d.ts +0 -13
  214. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +0 -13
  215. package/cjs/rules/require-nullable-fields-with-oneof.js +0 -81
  216. package/cjs/rules/require-nullable-result-in-root.d.ts +0 -13
  217. package/cjs/rules/require-type-pattern-with-oneof.d.ts +0 -13
  218. package/cjs/rules/require-type-pattern-with-oneof.js +0 -83
  219. package/cjs/rules/unique-enum-value-names.d.ts +0 -13
  220. package/cjs/rules/unique-fragment-name.js +0 -106
  221. package/cjs/rules/unique-operation-name.d.ts +0 -13
  222. package/esm/configs/index.d.mts +0 -174
  223. package/esm/estree-converter/index.d.mts +0 -8
  224. package/esm/flat-configs.d.mts +0 -307
  225. package/esm/flat-configs.js +0 -36
  226. package/esm/index.d.mts +0 -26
  227. package/esm/package.json +0 -1
  228. package/esm/rules/no-anonymous-operations.d.mts +0 -13
  229. package/esm/rules/no-duplicate-fields.d.mts +0 -13
  230. package/esm/rules/no-one-place-fragments.d.mts +0 -13
  231. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +0 -13
  232. package/esm/rules/no-typename-prefix.d.mts +0 -13
  233. package/esm/rules/no-unreachable-types.d.mts +0 -13
  234. package/esm/rules/no-unused-fields.d.mts +0 -13
  235. package/esm/rules/relay-page-info.d.mts +0 -13
  236. package/esm/rules/require-deprecation-reason.d.mts +0 -13
  237. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +0 -13
  238. package/esm/rules/require-import-fragment.d.mts +0 -13
  239. package/esm/rules/require-nullable-fields-with-oneof.d.mts +0 -13
  240. package/esm/rules/require-nullable-result-in-root.d.mts +0 -13
  241. package/esm/rules/require-type-pattern-with-oneof.d.mts +0 -13
  242. package/esm/rules/unique-enum-value-names.d.mts +0 -13
  243. package/esm/rules/unique-operation-name.d.mts +0 -13
  244. /package/cjs/configs/{operations-all.d.ts → operations-all.d.cts} +0 -0
  245. /package/cjs/configs/{operations-recommended.d.ts → operations-recommended.d.cts} +0 -0
  246. /package/cjs/configs/{schema-all.d.ts → schema-all.d.cts} +0 -0
  247. /package/cjs/configs/{schema-recommended.d.ts → schema-recommended.d.cts} +0 -0
  248. /package/cjs/configs/{schema-relay.d.ts → schema-relay.d.cts} +0 -0
  249. /package/cjs/{documents.d.ts → documents.d.cts} +0 -0
  250. /package/cjs/estree-converter/{types.d.ts → types.d.cts} +0 -0
  251. /package/cjs/{siblings.d.ts → siblings.d.cts} +0 -0
  252. /package/esm/configs/{operations-all.d.mts → operations-all.d.ts} +0 -0
  253. /package/esm/configs/{operations-recommended.d.mts → operations-recommended.d.ts} +0 -0
  254. /package/esm/configs/{schema-all.d.mts → schema-all.d.ts} +0 -0
  255. /package/esm/configs/{schema-recommended.d.mts → schema-recommended.d.ts} +0 -0
  256. /package/esm/configs/{schema-relay.d.mts → schema-relay.d.ts} +0 -0
  257. /package/esm/{documents.d.mts → documents.d.ts} +0 -0
  258. /package/{cjs → esm}/estree-converter/converter.d.ts +0 -0
  259. /package/esm/estree-converter/{types.d.mts → types.d.ts} +0 -0
  260. /package/{cjs → esm}/graphql-config.d.ts +0 -0
  261. /package/{cjs → esm}/rules/graphql-js-validation.d.ts +0 -0
  262. /package/{cjs → esm}/schema.d.ts +0 -0
  263. /package/esm/{siblings.d.mts → siblings.d.ts} +0 -0
  264. /package/{cjs → esm}/types.d.ts +0 -0
@@ -35,7 +35,7 @@ var require_operations_all = __commonJS({
35
35
  selections: ["OperationDefinition", "FragmentDefinition"],
36
36
  variables: !0,
37
37
  arguments: ["Field", "Directive"],
38
- groups: ["id", "*", "createdAt", "updatedAt"]
38
+ groups: ["...", "id", "*", "{"]
39
39
  }
40
40
  ],
41
41
  "@graphql-eslint/lone-executable-definition": "error",
@@ -237,10 +237,23 @@ var require_schema_relay = __commonJS({
237
237
  });
238
238
 
239
239
  // src/parser.ts
240
- import debugFactory from "debug";
240
+ import debugFactory2 from "debug";
241
241
  import { buildSchema, GraphQLError } from "graphql";
242
242
  import { parseGraphQLSDL } from "@graphql-tools/utils";
243
243
 
244
+ // src/cache.ts
245
+ import debugFactory from "debug";
246
+ var log = debugFactory("graphql-eslint:ModuleCache"), ModuleCache = class {
247
+ map = /* @__PURE__ */ new Map();
248
+ set(cacheKey, result) {
249
+ }
250
+ get(cacheKey, settings = {
251
+ lifetime: 10
252
+ /* seconds */
253
+ }) {
254
+ }
255
+ };
256
+
244
257
  // src/estree-converter/converter.ts
245
258
  import {
246
259
  Kind,
@@ -374,6 +387,9 @@ function convertToESTree(node, schema15) {
374
387
  );
375
388
  }
376
389
 
390
+ // src/meta.ts
391
+ var version = process.env.VERSION;
392
+
377
393
  // src/siblings.ts
378
394
  import {
379
395
  Kind as Kind3,
@@ -411,7 +427,7 @@ var chalk = {
411
427
  // eslint-disable-next-line no-console
412
428
  console.warn(chalk.yellow("warning"), "[graphql-eslint]", ...args)
413
429
  )
414
- }, normalizePath = (path2) => (path2 || "").replace(/\\/g, "/"), VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/, CWD = process.cwd(), getTypeName = (node) => "type" in node ? getTypeName(node.type) : "name" in node && node.name ? node.name.value : "", TYPES_KINDS = [
430
+ }, slash = (path2) => path2.replaceAll("\\", "/"), VIRTUAL_DOCUMENT_REGEX = /[/\\]\d+_document.graphql$/, CWD = process.cwd(), getTypeName = (node) => "type" in node ? getTypeName(node.type) : "name" in node && node.name ? node.name.value : "", TYPES_KINDS = [
415
431
  Kind2.OBJECT_TYPE_DEFINITION,
416
432
  Kind2.INTERFACE_TYPE_DEFINITION,
417
433
  Kind2.ENUM_TYPE_DEFINITION,
@@ -460,26 +476,49 @@ function truthy(value) {
460
476
  return !!value;
461
477
  }
462
478
  var DisplayNodeNameMap = {
463
- [Kind2.OBJECT_TYPE_DEFINITION]: "type",
464
- [Kind2.OBJECT_TYPE_EXTENSION]: "type",
465
- [Kind2.INTERFACE_TYPE_DEFINITION]: "interface",
466
- [Kind2.INTERFACE_TYPE_EXTENSION]: "interface",
479
+ [Kind2.ARGUMENT]: "argument",
480
+ [Kind2.BOOLEAN]: "boolean",
481
+ [Kind2.DIRECTIVE_DEFINITION]: "directive",
482
+ [Kind2.DIRECTIVE]: "directive",
483
+ [Kind2.DOCUMENT]: "document",
467
484
  [Kind2.ENUM_TYPE_DEFINITION]: "enum",
468
485
  [Kind2.ENUM_TYPE_EXTENSION]: "enum",
469
- [Kind2.SCALAR_TYPE_DEFINITION]: "scalar",
486
+ [Kind2.ENUM_VALUE_DEFINITION]: "enum value",
487
+ [Kind2.ENUM]: "enum",
488
+ [Kind2.FIELD_DEFINITION]: "field",
489
+ [Kind2.FIELD]: "field",
490
+ [Kind2.FLOAT]: "float",
491
+ [Kind2.FRAGMENT_DEFINITION]: "fragment",
492
+ [Kind2.FRAGMENT_SPREAD]: "fragment spread",
493
+ [Kind2.INLINE_FRAGMENT]: "inline fragment",
470
494
  [Kind2.INPUT_OBJECT_TYPE_DEFINITION]: "input",
471
495
  [Kind2.INPUT_OBJECT_TYPE_EXTENSION]: "input",
472
- [Kind2.UNION_TYPE_DEFINITION]: "union",
473
- [Kind2.UNION_TYPE_EXTENSION]: "union",
474
- [Kind2.DIRECTIVE_DEFINITION]: "directive",
475
- [Kind2.FIELD_DEFINITION]: "field",
476
- [Kind2.ENUM_VALUE_DEFINITION]: "enum value",
477
496
  [Kind2.INPUT_VALUE_DEFINITION]: "input value",
478
- [Kind2.ARGUMENT]: "argument",
479
- [Kind2.VARIABLE]: "variable",
480
- [Kind2.FRAGMENT_DEFINITION]: "fragment",
497
+ [Kind2.INT]: "int",
498
+ [Kind2.INTERFACE_TYPE_DEFINITION]: "interface",
499
+ [Kind2.INTERFACE_TYPE_EXTENSION]: "interface",
500
+ [Kind2.LIST_TYPE]: "list type",
501
+ [Kind2.LIST]: "list",
502
+ [Kind2.NAME]: "name",
503
+ [Kind2.NAMED_TYPE]: "named type",
504
+ [Kind2.NON_NULL_TYPE]: "non-null type",
505
+ [Kind2.NULL]: "null",
506
+ [Kind2.OBJECT_FIELD]: "object field",
507
+ [Kind2.OBJECT_TYPE_DEFINITION]: "type",
508
+ [Kind2.OBJECT_TYPE_EXTENSION]: "type",
509
+ [Kind2.OBJECT]: "object",
481
510
  [Kind2.OPERATION_DEFINITION]: "operation",
482
- [Kind2.FIELD]: "field"
511
+ [Kind2.OPERATION_TYPE_DEFINITION]: "operation type",
512
+ [Kind2.SCALAR_TYPE_DEFINITION]: "scalar",
513
+ [Kind2.SCALAR_TYPE_EXTENSION]: "scalar",
514
+ [Kind2.SCHEMA_DEFINITION]: "schema",
515
+ [Kind2.SCHEMA_EXTENSION]: "schema",
516
+ [Kind2.SELECTION_SET]: "selection set",
517
+ [Kind2.STRING]: "string",
518
+ [Kind2.UNION_TYPE_DEFINITION]: "union",
519
+ [Kind2.UNION_TYPE_EXTENSION]: "union",
520
+ [Kind2.VARIABLE_DEFINITION]: "variable",
521
+ [Kind2.VARIABLE]: "variable"
483
522
  };
484
523
  function displayNodeName(node) {
485
524
  return `${node.kind === Kind2.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${"alias" in node && node.alias?.value || "name" in node && node.name?.value}"`;
@@ -575,7 +614,7 @@ function getSiblings(documents) {
575
614
  }
576
615
 
577
616
  // src/parser.ts
578
- var debug = debugFactory("graphql-eslint:parser");
617
+ var debug = debugFactory2("graphql-eslint:parser");
579
618
  debug("cwd %o", CWD);
580
619
  var LEGACY_PARSER_OPTIONS_KEYS = [
581
620
  "schema",
@@ -640,8 +679,15 @@ function parseForESLint(code, options) {
640
679
  throw error;
641
680
  }
642
681
  }
682
+ var parser = {
683
+ parseForESLint,
684
+ meta: {
685
+ name: "@graphql-eslint/parser",
686
+ version
687
+ }
688
+ };
643
689
 
644
- // src/rules/alphabetize.ts
690
+ // src/rules/alphabetize/index.ts
645
691
  import {
646
692
  Kind as Kind4
647
693
  } from "graphql";
@@ -703,7 +749,14 @@ var RULE_ID = "alphabetize", fieldsEnum = [
703
749
  groups: {
704
750
  ...ARRAY_DEFAULT_OPTIONS,
705
751
  minItems: 2,
706
- description: "Custom order group. Example: `['id', '*', 'createdAt', 'updatedAt']` where `*` says for everything else."
752
+ description: [
753
+ "Order group. Example: `['...', 'id', '*', '{']` where:",
754
+ "- `...` stands for fragment spreads",
755
+ "- `id` stands for field with name `id`",
756
+ "- `*` stands for everything else",
757
+ "- `{` stands for fields `selection set`"
758
+ ].join(`
759
+ `)
707
760
  }
708
761
  }
709
762
  }
@@ -825,7 +878,7 @@ var RULE_ID = "alphabetize", fieldsEnum = [
825
878
  selections: selectionsEnum,
826
879
  variables: !0,
827
880
  arguments: [Kind4.FIELD, Kind4.DIRECTIVE],
828
- groups: ["id", "*", "createdAt", "updatedAt"]
881
+ groups: ["...", "id", "*", "{"]
829
882
  }
830
883
  ]
831
884
  }
@@ -863,19 +916,17 @@ var RULE_ID = "alphabetize", fieldsEnum = [
863
916
  }
864
917
  function checkNodes(nodes = []) {
865
918
  for (let i = 1; i < nodes.length; i += 1) {
866
- let currNode = nodes[i], currName = "alias" in currNode && currNode.alias?.value || "name" in currNode && currNode.name?.value;
919
+ let currNode = nodes[i], currName = getName(currNode);
867
920
  if (!currName)
868
921
  continue;
869
- let prevNode = nodes[i - 1], prevName = "alias" in prevNode && prevNode.alias?.value || "name" in prevNode && prevNode.name?.value;
922
+ let prevNode = nodes[i - 1], prevName = getName(prevNode);
870
923
  if (prevName) {
871
924
  let compareResult = prevName.localeCompare(currName), { groups } = opts, shouldSortByGroup = !1;
872
925
  if (groups?.length) {
873
926
  if (!groups.includes("*"))
874
927
  throw new Error("`groups` option should contain `*` string.");
875
- let indexForPrev = groups.indexOf(prevName);
876
- indexForPrev === -1 && (indexForPrev = groups.indexOf("*"));
877
- let indexForCurr = groups.indexOf(currName);
878
- if (indexForCurr === -1 && (indexForCurr = groups.indexOf("*")), shouldSortByGroup = indexForPrev - indexForCurr > 0, indexForPrev < indexForCurr)
928
+ let indexForPrev = getIndex({ node: prevNode, groups }), indexForCurr = getIndex({ node: currNode, groups });
929
+ if (shouldSortByGroup = indexForPrev - indexForCurr > 0, indexForPrev < indexForCurr)
879
930
  continue;
880
931
  }
881
932
  if (!shouldSortByGroup && !(compareResult === 1) && (!(compareResult === 0) || !prevNode.kind.endsWith("Extension") || currNode.kind.endsWith("Extension")))
@@ -935,8 +986,19 @@ var RULE_ID = "alphabetize", fieldsEnum = [
935
986
  }), listeners;
936
987
  }
937
988
  };
989
+ function getIndex({
990
+ node,
991
+ groups
992
+ }) {
993
+ let index = groups.indexOf(getName(node));
994
+ return index === -1 && "selectionSet" in node && node.selectionSet && (index = groups.indexOf("{")), index === -1 && node.kind === Kind4.FRAGMENT_SPREAD && (index = groups.indexOf("...")), index === -1 && (index = groups.indexOf("*")), index;
995
+ }
996
+ function getName(node) {
997
+ return "alias" in node && node.alias?.value || //
998
+ "name" in node && node.name?.value || "";
999
+ }
938
1000
 
939
- // src/rules/description-style.ts
1001
+ // src/rules/description-style/index.ts
940
1002
  var schema2 = {
941
1003
  type: "array",
942
1004
  maxItems: 1,
@@ -1624,7 +1686,7 @@ var getFragmentDefsAndFragmentSpreads = (node) => {
1624
1686
  )
1625
1687
  );
1626
1688
 
1627
- // src/rules/input-name.ts
1689
+ // src/rules/input-name/index.ts
1628
1690
  import {
1629
1691
  Kind as Kind6
1630
1692
  } from "graphql";
@@ -1758,7 +1820,7 @@ Using the same name for all input parameters will make your schemas easier to co
1758
1820
  }
1759
1821
  };
1760
1822
 
1761
- // src/rules/lone-executable-definition.ts
1823
+ // src/rules/lone-executable-definition/index.ts
1762
1824
  import { OperationTypeNode as OperationTypeNode2 } from "graphql";
1763
1825
  var RULE_ID2 = "lone-executable-definition", definitionTypes = ["fragment", ...Object.values(OperationTypeNode2)], schema4 = {
1764
1826
  type: "array",
@@ -1840,8 +1902,8 @@ var RULE_ID2 = "lone-executable-definition", definitionTypes = ["fragment", ...O
1840
1902
  }
1841
1903
  };
1842
1904
 
1843
- // src/rules/match-document-filename.ts
1844
- import { basename, extname } from "path";
1905
+ // src/rules/match-document-filename/index.ts
1906
+ import { basename, extname } from "node:path";
1845
1907
  import { Kind as Kind7 } from "graphql";
1846
1908
  var MATCH_EXTENSION = "MATCH_EXTENSION", MATCH_STYLE = "MATCH_STYLE", CASE_STYLES = [
1847
1909
  "camelCase",
@@ -2068,7 +2130,7 @@ var MATCH_EXTENSION = "MATCH_EXTENSION", MATCH_STYLE = "MATCH_STYLE", CASE_STYLE
2068
2130
  }
2069
2131
  };
2070
2132
 
2071
- // src/rules/naming-convention.ts
2133
+ // src/rules/naming-convention/index.ts
2072
2134
  import { Kind as Kind8 } from "graphql";
2073
2135
  var KindToDisplayName = {
2074
2136
  // types
@@ -2462,7 +2524,7 @@ ${TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
2462
2524
  }
2463
2525
  };
2464
2526
 
2465
- // src/rules/no-anonymous-operations.ts
2527
+ // src/rules/no-anonymous-operations/index.ts
2466
2528
  import { Kind as Kind9 } from "graphql";
2467
2529
  var RULE_ID3 = "no-anonymous-operations", rule7 = {
2468
2530
  meta: {
@@ -2531,7 +2593,7 @@ var RULE_ID3 = "no-anonymous-operations", rule7 = {
2531
2593
  }
2532
2594
  };
2533
2595
 
2534
- // src/rules/no-deprecated.ts
2596
+ // src/rules/no-deprecated/index.ts
2535
2597
  import { Kind as Kind10 } from "graphql";
2536
2598
  var RULE_ID4 = "no-deprecated", rule8 = {
2537
2599
  meta: {
@@ -2652,7 +2714,7 @@ var RULE_ID4 = "no-deprecated", rule8 = {
2652
2714
  }
2653
2715
  };
2654
2716
 
2655
- // src/rules/no-duplicate-fields.ts
2717
+ // src/rules/no-duplicate-fields/index.ts
2656
2718
  import { Kind as Kind11 } from "graphql";
2657
2719
  var RULE_ID5 = "no-duplicate-fields", rule9 = {
2658
2720
  meta: {
@@ -2766,7 +2828,7 @@ var RULE_ID5 = "no-duplicate-fields", rule9 = {
2766
2828
  }
2767
2829
  };
2768
2830
 
2769
- // src/rules/no-hashtag-description.ts
2831
+ // src/rules/no-hashtag-description/index.ts
2770
2832
  import { TokenKind as TokenKind2 } from "graphql";
2771
2833
  var RULE_ID6 = "HASHTAG_COMMENT", rule10 = {
2772
2834
  meta: {
@@ -2869,8 +2931,8 @@ var RULE_ID6 = "HASHTAG_COMMENT", rule10 = {
2869
2931
  }
2870
2932
  };
2871
2933
 
2872
- // src/rules/no-one-place-fragments.ts
2873
- import { relative } from "path";
2934
+ // src/rules/no-one-place-fragments/index.ts
2935
+ import { relative } from "node:path";
2874
2936
  import { visit as visit4 } from "graphql";
2875
2937
  var RULE_ID7 = "no-one-place-fragments", rule11 = {
2876
2938
  meta: {
@@ -2949,7 +3011,7 @@ var RULE_ID7 = "no-one-place-fragments", rule11 = {
2949
3011
  }
2950
3012
  };
2951
3013
 
2952
- // src/rules/no-root-type.ts
3014
+ // src/rules/no-root-type/index.ts
2953
3015
  var schema7 = {
2954
3016
  type: "array",
2955
3017
  minItems: 1,
@@ -3029,7 +3091,7 @@ var schema7 = {
3029
3091
  }
3030
3092
  };
3031
3093
 
3032
- // src/rules/no-scalar-result-type-on-mutation.ts
3094
+ // src/rules/no-scalar-result-type-on-mutation/index.ts
3033
3095
  import { isScalarType, Kind as Kind12 } from "graphql";
3034
3096
  var RULE_ID8 = "no-scalar-result-type-on-mutation", rule13 = {
3035
3097
  meta: {
@@ -3095,7 +3157,7 @@ var RULE_ID8 = "no-scalar-result-type-on-mutation", rule13 = {
3095
3157
  }
3096
3158
  };
3097
3159
 
3098
- // src/rules/no-typename-prefix.ts
3160
+ // src/rules/no-typename-prefix/index.ts
3099
3161
  var NO_TYPENAME_PREFIX = "NO_TYPENAME_PREFIX", rule14 = {
3100
3162
  meta: {
3101
3163
  type: "suggestion",
@@ -3164,7 +3226,7 @@ var NO_TYPENAME_PREFIX = "NO_TYPENAME_PREFIX", rule14 = {
3164
3226
  }
3165
3227
  };
3166
3228
 
3167
- // src/rules/no-unreachable-types.ts
3229
+ // src/rules/no-unreachable-types/index.ts
3168
3230
  import {
3169
3231
  DirectiveLocation,
3170
3232
  isInterfaceType,
@@ -3186,7 +3248,7 @@ var RULE_ID9 = "no-unreachable-types", KINDS = [
3186
3248
  Kind13.UNION_TYPE_EXTENSION,
3187
3249
  Kind13.ENUM_TYPE_DEFINITION,
3188
3250
  Kind13.ENUM_TYPE_EXTENSION
3189
- ], reachableTypesCache, RequestDirectiveLocations = /* @__PURE__ */ new Set([
3251
+ ], reachableTypesCache = new ModuleCache(), RequestDirectiveLocations = /* @__PURE__ */ new Set([
3190
3252
  DirectiveLocation.QUERY,
3191
3253
  DirectiveLocation.MUTATION,
3192
3254
  DirectiveLocation.SUBSCRIPTION,
@@ -3197,8 +3259,9 @@ var RULE_ID9 = "no-unreachable-types", KINDS = [
3197
3259
  DirectiveLocation.VARIABLE_DEFINITION
3198
3260
  ]);
3199
3261
  function getReachableTypes(schema15) {
3200
- if (reachableTypesCache)
3201
- return reachableTypesCache;
3262
+ let cachedValue = reachableTypesCache.get(schema15);
3263
+ if (cachedValue)
3264
+ return cachedValue;
3202
3265
  let reachableTypes = /* @__PURE__ */ new Set(), collect = (node) => {
3203
3266
  let typeName = getTypeName(node);
3204
3267
  if (reachableTypes.has(typeName))
@@ -3235,7 +3298,7 @@ function getReachableTypes(schema15) {
3235
3298
  argTypeName && reachableTypes.add(argTypeName);
3236
3299
  }
3237
3300
  }
3238
- return reachableTypesCache = reachableTypes, reachableTypesCache;
3301
+ return reachableTypesCache.set(schema15, reachableTypes), reachableTypes;
3239
3302
  }
3240
3303
  var rule15 = {
3241
3304
  meta: {
@@ -3314,12 +3377,13 @@ var rule15 = {
3314
3377
  }
3315
3378
  };
3316
3379
 
3317
- // src/rules/no-unused-fields.ts
3380
+ // src/rules/no-unused-fields/index.ts
3318
3381
  import { TypeInfo as TypeInfo2, visit as visit6, visitWithTypeInfo as visitWithTypeInfo2 } from "graphql";
3319
- var RULE_ID10 = "no-unused-fields", usedFieldsCache;
3382
+ var RULE_ID10 = "no-unused-fields", usedFieldsCache = new ModuleCache();
3320
3383
  function getUsedFields(schema15, operations) {
3321
- if (usedFieldsCache)
3322
- return usedFieldsCache;
3384
+ let cachedValue = usedFieldsCache.get(schema15);
3385
+ if (cachedValue)
3386
+ return cachedValue;
3323
3387
  let usedFields = /* @__PURE__ */ Object.create(null), typeInfo = new TypeInfo2(schema15), visitor = visitWithTypeInfo2(typeInfo, {
3324
3388
  Field(node) {
3325
3389
  if (!typeInfo.getFieldDef())
@@ -3330,7 +3394,7 @@ function getUsedFields(schema15, operations) {
3330
3394
  }), allDocuments = [...operations.getOperations(), ...operations.getFragments()];
3331
3395
  for (let { document } of allDocuments)
3332
3396
  visit6(document, visitor);
3333
- return usedFieldsCache = usedFields, usedFieldsCache;
3397
+ return usedFieldsCache.set(schema15, usedFields), usedFields;
3334
3398
  }
3335
3399
  var rule16 = {
3336
3400
  meta: {
@@ -3423,7 +3487,7 @@ var rule16 = {
3423
3487
  }
3424
3488
  };
3425
3489
 
3426
- // src/rules/relay-arguments.ts
3490
+ // src/rules/relay-arguments/index.ts
3427
3491
  import { isScalarType as isScalarType2, Kind as Kind14 } from "graphql";
3428
3492
  var RULE_ID11 = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", schema8 = {
3429
3493
  type: "array",
@@ -3526,7 +3590,7 @@ var RULE_ID11 = "relay-arguments", MISSING_ARGUMENTS = "MISSING_ARGUMENTS", sche
3526
3590
  }
3527
3591
  };
3528
3592
 
3529
- // src/rules/relay-connection-types.ts
3593
+ // src/rules/relay-connection-types/index.ts
3530
3594
  import { Kind as Kind15 } from "graphql";
3531
3595
  var MUST_BE_OBJECT_TYPE = "MUST_BE_OBJECT_TYPE", MUST_CONTAIN_FIELD_EDGES = "MUST_CONTAIN_FIELD_EDGES", MUST_CONTAIN_FIELD_PAGE_INFO = "MUST_CONTAIN_FIELD_PAGE_INFO", MUST_HAVE_CONNECTION_SUFFIX = "MUST_HAVE_CONNECTION_SUFFIX", EDGES_FIELD_MUST_RETURN_LIST_TYPE = "EDGES_FIELD_MUST_RETURN_LIST_TYPE", PAGE_INFO_FIELD_MUST_RETURN_NON_NULL_TYPE = "PAGE_INFO_FIELD_MUST_RETURN_NON_NULL_TYPE", NON_OBJECT_TYPES = [
3532
3596
  Kind15.SCALAR_TYPE_DEFINITION,
@@ -3613,7 +3677,7 @@ var MUST_BE_OBJECT_TYPE = "MUST_BE_OBJECT_TYPE", MUST_CONTAIN_FIELD_EDGES = "MUS
3613
3677
  }
3614
3678
  };
3615
3679
 
3616
- // src/rules/relay-edge-types.ts
3680
+ // src/rules/relay-edge-types/index.ts
3617
3681
  import {
3618
3682
  isObjectType as isObjectType2,
3619
3683
  isScalarType as isScalarType3,
@@ -3757,7 +3821,7 @@ var schema9 = {
3757
3821
  }
3758
3822
  };
3759
3823
 
3760
- // src/rules/relay-page-info.ts
3824
+ // src/rules/relay-page-info/index.ts
3761
3825
  import { isScalarType as isScalarType4, Kind as Kind17 } from "graphql";
3762
3826
  var RULE_ID13 = "relay-page-info", MESSAGE_MUST_EXIST = "MESSAGE_MUST_EXIST", MESSAGE_MUST_BE_OBJECT_TYPE2 = "MESSAGE_MUST_BE_OBJECT_TYPE", notPageInfoTypesSelector = `:matches(${NON_OBJECT_TYPES})[name.value=PageInfo] > .name`, hasPageInfoChecked = !1, rule20 = {
3763
3827
  meta: {
@@ -3830,7 +3894,7 @@ var RULE_ID13 = "relay-page-info", MESSAGE_MUST_EXIST = "MESSAGE_MUST_EXIST", ME
3830
3894
  }
3831
3895
  };
3832
3896
 
3833
- // src/rules/require-deprecation-date.ts
3897
+ // src/rules/require-deprecation-date/index.ts
3834
3898
  var DATE_REGEX = /^\d{2}\/\d{2}\/\d{4}$/, MESSAGE_REQUIRE_DATE = "MESSAGE_REQUIRE_DATE", MESSAGE_INVALID_FORMAT = "MESSAGE_INVALID_FORMAT", MESSAGE_INVALID_DATE = "MESSAGE_INVALID_DATE", MESSAGE_CAN_BE_REMOVED = "MESSAGE_CAN_BE_REMOVED", schema10 = {
3835
3899
  type: "array",
3836
3900
  maxItems: 1,
@@ -3955,7 +4019,7 @@ var DATE_REGEX = /^\d{2}\/\d{2}\/\d{4}$/, MESSAGE_REQUIRE_DATE = "MESSAGE_REQUIR
3955
4019
  }
3956
4020
  };
3957
4021
 
3958
- // src/rules/require-deprecation-reason.ts
4022
+ // src/rules/require-deprecation-reason/index.ts
3959
4023
  var rule22 = {
3960
4024
  meta: {
3961
4025
  docs: {
@@ -4017,7 +4081,7 @@ var rule22 = {
4017
4081
  }
4018
4082
  };
4019
4083
 
4020
- // src/rules/require-description.ts
4084
+ // src/rules/require-description/index.ts
4021
4085
  import { Kind as Kind18, TokenKind as TokenKind3 } from "graphql";
4022
4086
  import { getRootTypeNames } from "@graphql-tools/utils";
4023
4087
  var RULE_ID14 = "require-description", ALLOWED_KINDS2 = [
@@ -4172,7 +4236,7 @@ ${TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
4172
4236
  }
4173
4237
  };
4174
4238
 
4175
- // src/rules/require-field-of-type-query-in-mutation-result.ts
4239
+ // src/rules/require-field-of-type-query-in-mutation-result/index.ts
4176
4240
  import { isObjectType as isObjectType3 } from "graphql";
4177
4241
  var RULE_ID15 = "require-field-of-type-query-in-mutation-result", rule24 = {
4178
4242
  meta: {
@@ -4237,8 +4301,8 @@ var RULE_ID15 = "require-field-of-type-query-in-mutation-result", rule24 = {
4237
4301
  }
4238
4302
  };
4239
4303
 
4240
- // src/rules/require-import-fragment.ts
4241
- import path from "path";
4304
+ // src/rules/require-import-fragment/index.ts
4305
+ import path from "node:path";
4242
4306
  var RULE_ID16 = "require-import-fragment", SUGGESTION_ID = "add-import-expression", rule25 = {
4243
4307
  meta: {
4244
4308
  type: "suggestion",
@@ -4323,7 +4387,7 @@ var RULE_ID16 = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
4323
4387
  ).test(comment.value)) continue;
4324
4388
  let extractedImportPath = comment.value.match(/(["'])((?:\1|.)*?)\1/)?.[2];
4325
4389
  if (!extractedImportPath) continue;
4326
- let importPath = path.join(path.dirname(filePath), extractedImportPath);
4390
+ let importPath = path.join(filePath, "..", extractedImportPath);
4327
4391
  if (fragmentsFromSiblings.some(
4328
4392
  (source) => source.filePath === importPath
4329
4393
  )) return;
@@ -4331,7 +4395,12 @@ var RULE_ID16 = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
4331
4395
  if (fragmentsFromSiblings.some(
4332
4396
  (source) => source.filePath === filePath
4333
4397
  )) return;
4334
- let suggestedFilePaths = fragmentsFromSiblings.length ? fragmentsFromSiblings.map((o) => path.relative(path.dirname(filePath), o.filePath)) : ["CHANGE_ME.graphql"];
4398
+ let suggestedFilePaths = fragmentsFromSiblings.length ? fragmentsFromSiblings.map(
4399
+ (o) => (
4400
+ // Use always forward slash for suggested import path
4401
+ slash(path.relative(path.dirname(filePath), o.filePath))
4402
+ )
4403
+ ) : ["CHANGE_ME.graphql"];
4335
4404
  context.report({
4336
4405
  node,
4337
4406
  messageId: RULE_ID16,
@@ -4351,7 +4420,7 @@ var RULE_ID16 = "require-import-fragment", SUGGESTION_ID = "add-import-expressio
4351
4420
  }
4352
4421
  };
4353
4422
 
4354
- // src/rules/require-nullable-fields-with-oneof.ts
4423
+ // src/rules/require-nullable-fields-with-oneof/index.ts
4355
4424
  import { Kind as Kind19 } from "graphql";
4356
4425
  var RULE_ID17 = "require-nullable-fields-with-oneof", rule26 = {
4357
4426
  meta: {
@@ -4410,7 +4479,7 @@ var RULE_ID17 = "require-nullable-fields-with-oneof", rule26 = {
4410
4479
  }
4411
4480
  };
4412
4481
 
4413
- // src/rules/require-nullable-result-in-root.ts
4482
+ // src/rules/require-nullable-result-in-root/index.ts
4414
4483
  import { Kind as Kind20 } from "graphql";
4415
4484
  var RULE_ID18 = "require-nullable-result-in-root", rule27 = {
4416
4485
  meta: {
@@ -4487,7 +4556,7 @@ var RULE_ID18 = "require-nullable-result-in-root", rule27 = {
4487
4556
  }
4488
4557
  };
4489
4558
 
4490
- // src/rules/require-selections.ts
4559
+ // src/rules/require-selections/index.ts
4491
4560
  import {
4492
4561
  GraphQLInterfaceType,
4493
4562
  GraphQLObjectType,
@@ -4613,13 +4682,19 @@ Include it in your selection set{{ addition }}.`
4613
4682
  let rawType = getBaseType(type);
4614
4683
  if (rawType instanceof GraphQLObjectType || rawType instanceof GraphQLInterfaceType)
4615
4684
  checkFields(rawType);
4616
- else if (rawType instanceof GraphQLUnionType) {
4617
- for (let selection of node.selections)
4685
+ else if (rawType instanceof GraphQLUnionType)
4686
+ for (let selection of node.selections) {
4687
+ let types = rawType.getTypes();
4618
4688
  if (selection.kind === Kind21.INLINE_FRAGMENT) {
4619
- let t = rawType.getTypes().find((t2) => t2.name === selection.typeCondition.name.value);
4689
+ let t = types.find((t2) => t2.name === selection.typeCondition.name.value);
4620
4690
  t && checkFields(t);
4691
+ } else if (selection.kind === Kind21.FRAGMENT_SPREAD) {
4692
+ let [foundSpread] = siblings.getFragment(selection.name.value);
4693
+ if (!foundSpread) return;
4694
+ let fragmentSpread = foundSpread.document, t = fragmentSpread.typeCondition.name.value === rawType.name ? rawType : types.find((t2) => t2.name === fragmentSpread.typeCondition.name.value);
4695
+ checkedFragmentSpreads.add(fragmentSpread.name.value), checkSelections(fragmentSpread.selectionSet, t, loc, parent, checkedFragmentSpreads);
4621
4696
  }
4622
- }
4697
+ }
4623
4698
  function checkFields(rawType2) {
4624
4699
  let fields = rawType2.getFields();
4625
4700
  if (!idNames.some((name) => fields[name]))
@@ -4672,7 +4747,7 @@ Include it in your selection set{{ addition }}.`
4672
4747
  }
4673
4748
  };
4674
4749
 
4675
- // src/rules/require-type-pattern-with-oneof.ts
4750
+ // src/rules/require-type-pattern-with-oneof/index.ts
4676
4751
  var RULE_ID20 = "require-type-pattern-with-oneof", rule29 = {
4677
4752
  meta: {
4678
4753
  type: "suggestion",
@@ -4732,7 +4807,7 @@ var RULE_ID20 = "require-type-pattern-with-oneof", rule29 = {
4732
4807
  }
4733
4808
  };
4734
4809
 
4735
- // src/rules/selection-set-depth.ts
4810
+ // src/rules/selection-set-depth/index.ts
4736
4811
  import { Kind as Kind22 } from "graphql";
4737
4812
  import depthLimit from "graphql-depth-limit";
4738
4813
  var RULE_ID21 = "selection-set-depth", schema13 = {
@@ -4825,7 +4900,7 @@ var RULE_ID21 = "selection-set-depth", schema13 = {
4825
4900
  checkFn({
4826
4901
  getDocument: () => document,
4827
4902
  reportError(error) {
4828
- let { line, column } = error.locations[0], token = context.getAncestors()[0].tokens.find(
4903
+ let { line, column } = error.locations[0], token = context.sourceCode.getAncestors(node)[0].tokens.find(
4829
4904
  (token2) => token2.loc.start.line === line && token2.loc.start.column === column - 1
4830
4905
  );
4831
4906
  context.report({
@@ -4862,7 +4937,7 @@ var RULE_ID21 = "selection-set-depth", schema13 = {
4862
4937
  }
4863
4938
  };
4864
4939
 
4865
- // src/rules/strict-id-in-types.ts
4940
+ // src/rules/strict-id-in-types/index.ts
4866
4941
  import { Kind as Kind23 } from "graphql";
4867
4942
  var RULE_ID22 = "strict-id-in-types", schema14 = {
4868
4943
  type: "array",
@@ -5007,7 +5082,7 @@ Accepted type${pluralTypesSuffix}: ${englishJoinWords(options.acceptedIdTypes)}.
5007
5082
  }
5008
5083
  };
5009
5084
 
5010
- // src/rules/unique-enum-value-names.ts
5085
+ // src/rules/unique-enum-value-names/index.ts
5011
5086
  import { Kind as Kind24 } from "graphql";
5012
5087
  var rule32 = {
5013
5088
  meta: {
@@ -5076,12 +5151,12 @@ var rule32 = {
5076
5151
  }
5077
5152
  };
5078
5153
 
5079
- // src/rules/unique-fragment-name.ts
5080
- import { relative as relative2 } from "path";
5154
+ // src/rules/unique-fragment-name/index.ts
5155
+ import { relative as relative2 } from "node:path";
5081
5156
  import { Kind as Kind25 } from "graphql";
5082
5157
  var RULE_ID23 = "unique-fragment-name", checkNode = (context, node, ruleId) => {
5083
5158
  let documentName = node.name.value, siblings = requireSiblingsOperations(ruleId, context), siblingDocuments = node.kind === Kind25.FRAGMENT_DEFINITION ? siblings.getFragment(documentName) : siblings.getOperation(documentName), filepath = context.filename, conflictingDocuments = siblingDocuments.filter((f) => {
5084
- let isSameName = f.document.name?.value === documentName, isSamePath = normalizePath(f.filePath) === normalizePath(filepath);
5159
+ let isSameName = f.document.name?.value === documentName, isSamePath = slash(f.filePath) === slash(filepath);
5085
5160
  return isSameName && !isSamePath;
5086
5161
  });
5087
5162
  conflictingDocuments.length > 0 && context.report({
@@ -5159,7 +5234,7 @@ var RULE_ID23 = "unique-fragment-name", checkNode = (context, node, ruleId) => {
5159
5234
  }
5160
5235
  };
5161
5236
 
5162
- // src/rules/unique-operation-name.ts
5237
+ // src/rules/unique-operation-name/index.ts
5163
5238
  var RULE_ID24 = "unique-operation-name", rule34 = {
5164
5239
  meta: {
5165
5240
  type: "suggestion",
@@ -5269,50 +5344,36 @@ var rules = {
5269
5344
  };
5270
5345
 
5271
5346
  // src/configs/index.ts
5272
- var import_operations_all = __toESM(require_operations_all()), import_operations_recommended = __toESM(require_operations_recommended()), import_schema_all = __toESM(require_schema_all()), import_schema_recommended = __toESM(require_schema_recommended()), import_schema_relay = __toESM(require_schema_relay()), configs = {
5347
+ var import_operations_all = __toESM(require_operations_all(), 1), import_operations_recommended = __toESM(require_operations_recommended(), 1), import_schema_all = __toESM(require_schema_all(), 1), import_schema_recommended = __toESM(require_schema_recommended(), 1), import_schema_relay = __toESM(require_schema_relay(), 1), configs = {
5273
5348
  "schema-recommended": import_schema_recommended.default,
5274
5349
  "schema-all": import_schema_all.default,
5275
5350
  "schema-relay": import_schema_relay.default,
5276
5351
  "operations-recommended": import_operations_recommended.default,
5277
- "operations-all": import_operations_all.default
5278
- };
5279
-
5280
- // src/flat-configs.ts
5281
- var languageOptions = {
5282
- parser: { parseForESLint }
5283
- }, flatConfigs = {
5284
- "operations-all": {
5285
- languageOptions,
5352
+ "operations-all": import_operations_all.default,
5353
+ "flat/schema-recommended": {
5354
+ rules: import_schema_recommended.default.rules
5355
+ },
5356
+ "flat/schema-all": {
5286
5357
  rules: {
5287
- ...configs["operations-recommended"].rules,
5288
- ...configs["operations-all"].rules
5358
+ ...import_schema_recommended.default.rules,
5359
+ ...import_schema_all.default.rules
5289
5360
  }
5290
5361
  },
5291
- "operations-recommended": {
5292
- languageOptions,
5293
- rules: configs["operations-recommended"].rules
5362
+ "flat/schema-relay": {
5363
+ rules: import_schema_relay.default.rules
5294
5364
  },
5295
- "schema-relay": {
5296
- languageOptions,
5297
- rules: configs["schema-relay"].rules
5365
+ "flat/operations-recommended": {
5366
+ rules: import_operations_recommended.default.rules
5298
5367
  },
5299
- "schema-all": {
5300
- languageOptions,
5368
+ "flat/operations-all": {
5301
5369
  rules: {
5302
- ...configs["schema-recommended"].rules,
5303
- ...configs["schema-all"].rules
5370
+ ...import_operations_recommended.default.rules,
5371
+ ...import_operations_all.default.rules
5304
5372
  }
5305
- },
5306
- "schema-recommended": {
5307
- languageOptions,
5308
- rules: configs["schema-recommended"].rules
5309
5373
  }
5310
5374
  };
5311
5375
  export {
5312
5376
  configs,
5313
- flatConfigs,
5314
- parseForESLint,
5315
- requireGraphQLSchemaFromContext,
5316
- requireSiblingsOperations,
5377
+ parser,
5317
5378
  rules
5318
5379
  };