@graphql-eslint/eslint-plugin 3.19.3 → 3.20.0-alpha-20230703155329-a20556f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/{typings → cjs}/cache.d.ts +3 -1
  2. package/cjs/cache.js +57 -26
  3. package/{typings → cjs}/configs/index.d.ts +3 -1
  4. package/cjs/configs/index.js +47 -14
  5. package/{typings → cjs}/configs/operations-all.d.ts +2 -1
  6. package/cjs/configs/operations-all.js +47 -30
  7. package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
  8. package/cjs/configs/operations-recommended.js +72 -55
  9. package/{typings → cjs}/configs/relay.d.ts +2 -1
  10. package/cjs/configs/relay.js +31 -11
  11. package/{typings → cjs}/configs/schema-all.d.ts +2 -1
  12. package/cjs/configs/schema-all.js +41 -24
  13. package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
  14. package/cjs/configs/schema-recommended.js +68 -51
  15. package/{typings → cjs}/documents.d.ts +4 -1
  16. package/cjs/documents.js +74 -43
  17. package/cjs/estree-converter/converter.d.ts +8 -0
  18. package/cjs/estree-converter/converter.js +80 -59
  19. package/cjs/estree-converter/index.d.ts +8 -0
  20. package/cjs/estree-converter/index.js +25 -5
  21. package/{typings → cjs}/estree-converter/types.d.ts +7 -5
  22. package/cjs/estree-converter/types.js +16 -0
  23. package/cjs/estree-converter/utils.d.ts +18 -0
  24. package/cjs/estree-converter/utils.js +119 -95
  25. package/{typings → cjs}/flat-configs.d.ts +12 -1
  26. package/cjs/flat-configs.js +56 -32
  27. package/cjs/graphql-config.d.ts +13 -0
  28. package/cjs/graphql-config.js +78 -47
  29. package/cjs/index.d.ts +22 -0
  30. package/cjs/index.js +50 -18
  31. package/cjs/parser.d.ts +12 -0
  32. package/cjs/parser.js +96 -76
  33. package/cjs/processor.d.ts +9 -0
  34. package/cjs/processor.js +119 -88
  35. package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
  36. package/cjs/rules/alphabetize.js +337 -295
  37. package/{typings → cjs}/rules/description-style.d.ts +12 -4
  38. package/cjs/rules/description-style.js +96 -66
  39. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  40. package/cjs/rules/graphql-js-validation.js +595 -433
  41. package/cjs/rules/index.d.ts +125 -0
  42. package/cjs/rules/index.js +97 -76
  43. package/{typings → cjs}/rules/input-name.d.ts +12 -4
  44. package/cjs/rules/input-name.js +153 -123
  45. package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
  46. package/cjs/rules/lone-executable-definition.js +101 -72
  47. package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
  48. package/cjs/rules/match-document-filename.js +229 -182
  49. package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
  50. package/cjs/rules/naming-convention.js +380 -316
  51. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  52. package/cjs/rules/no-anonymous-operations.js +88 -57
  53. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  54. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
  55. package/cjs/rules/no-deprecated.d.ts +12 -0
  56. package/cjs/rules/no-deprecated.js +106 -75
  57. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  58. package/cjs/rules/no-duplicate-fields.js +116 -82
  59. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  60. package/cjs/rules/no-hashtag-description.js +119 -82
  61. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  62. package/cjs/rules/no-one-place-fragments.js +88 -58
  63. package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
  64. package/cjs/rules/no-root-type.js +101 -74
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
  67. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  68. package/cjs/rules/no-typename-prefix.js +88 -55
  69. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  70. package/cjs/rules/no-unreachable-types.js +169 -134
  71. package/cjs/rules/no-unused-fields.d.ts +12 -0
  72. package/cjs/rules/no-unused-fields.js +117 -92
  73. package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
  74. package/cjs/rules/relay-arguments.js +136 -110
  75. package/cjs/rules/relay-connection-types.d.ts +13 -0
  76. package/cjs/rules/relay-connection-types.js +123 -94
  77. package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
  78. package/cjs/rules/relay-edge-types.js +196 -179
  79. package/cjs/rules/relay-page-info.d.ts +12 -0
  80. package/cjs/rules/relay-page-info.js +108 -89
  81. package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
  82. package/cjs/rules/require-deprecation-date.js +143 -112
  83. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  84. package/cjs/rules/require-deprecation-reason.js +80 -46
  85. package/{typings → cjs}/rules/require-description.d.ts +13 -5
  86. package/cjs/rules/require-description.js +170 -132
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +81 -51
  89. package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
  90. package/cjs/rules/require-id-when-available.js +196 -173
  91. package/cjs/rules/require-import-fragment.d.ts +12 -0
  92. package/cjs/rules/require-import-fragment.js +138 -88
  93. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  94. package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
  95. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  96. package/cjs/rules/require-nullable-result-in-root.js +97 -68
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
  99. package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
  100. package/cjs/rules/selection-set-depth.js +147 -107
  101. package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
  102. package/cjs/rules/strict-id-in-types.js +143 -122
  103. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  104. package/cjs/rules/unique-fragment-name.js +88 -62
  105. package/cjs/rules/unique-operation-name.d.ts +12 -0
  106. package/cjs/rules/unique-operation-name.js +65 -35
  107. package/cjs/schema.d.ts +12 -0
  108. package/cjs/schema.js +62 -30
  109. package/cjs/siblings.d.ts +8 -0
  110. package/cjs/siblings.js +124 -106
  111. package/cjs/testkit.d.ts +8 -0
  112. package/cjs/testkit.js +165 -144
  113. package/cjs/types-e3367e3c.d.ts +129 -0
  114. package/cjs/types.d.ts +8 -0
  115. package/cjs/types.js +16 -0
  116. package/cjs/utils.d.ts +44 -0
  117. package/cjs/utils.js +181 -124
  118. package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
  119. package/esm/cache.js +25 -23
  120. package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
  121. package/esm/configs/index.js +14 -11
  122. package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
  123. package/esm/configs/operations-all.js +28 -28
  124. package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
  125. package/esm/configs/operations-recommended.js +53 -53
  126. package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
  127. package/esm/configs/relay.js +12 -9
  128. package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
  129. package/esm/configs/schema-all.js +22 -22
  130. package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
  131. package/esm/configs/schema-recommended.js +49 -49
  132. package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
  133. package/esm/documents.js +41 -39
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +63 -57
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -3
  138. package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
  139. package/esm/estree-converter/utils.d.mts +18 -0
  140. package/esm/estree-converter/utils.js +102 -93
  141. package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
  142. package/esm/flat-configs.js +33 -30
  143. package/esm/graphql-config.d.mts +13 -0
  144. package/esm/graphql-config.js +49 -44
  145. package/esm/index.d.mts +22 -0
  146. package/esm/index.js +18 -9
  147. package/esm/package.json +1 -1
  148. package/esm/parser.d.mts +12 -0
  149. package/esm/parser.js +64 -73
  150. package/esm/processor.d.mts +9 -0
  151. package/esm/processor.js +98 -86
  152. package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
  153. package/esm/rules/alphabetize.js +304 -290
  154. package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
  155. package/esm/rules/description-style.js +73 -64
  156. package/esm/rules/graphql-js-validation.d.mts +12 -0
  157. package/esm/rules/graphql-js-validation.js +580 -429
  158. package/esm/rules/index.d.mts +125 -0
  159. package/esm/rules/index.js +74 -74
  160. package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
  161. package/esm/rules/input-name.js +132 -121
  162. package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
  163. package/esm/rules/lone-executable-definition.js +78 -70
  164. package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
  165. package/esm/rules/match-document-filename.js +210 -180
  166. package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
  167. package/esm/rules/naming-convention.js +363 -314
  168. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  169. package/esm/rules/no-anonymous-operations.js +65 -55
  170. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  171. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
  172. package/esm/rules/no-deprecated.d.mts +12 -0
  173. package/esm/rules/no-deprecated.js +83 -73
  174. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  175. package/esm/rules/no-duplicate-fields.js +93 -80
  176. package/esm/rules/no-hashtag-description.d.mts +13 -0
  177. package/esm/rules/no-hashtag-description.js +95 -80
  178. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  179. package/esm/rules/no-one-place-fragments.js +65 -56
  180. package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
  181. package/esm/rules/no-root-type.js +78 -72
  182. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  183. package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
  184. package/esm/rules/no-typename-prefix.d.mts +12 -0
  185. package/esm/rules/no-typename-prefix.js +65 -53
  186. package/esm/rules/no-unreachable-types.d.mts +12 -0
  187. package/esm/rules/no-unreachable-types.js +141 -131
  188. package/esm/rules/no-unused-fields.d.mts +12 -0
  189. package/esm/rules/no-unused-fields.js +94 -90
  190. package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
  191. package/esm/rules/relay-arguments.js +113 -108
  192. package/esm/rules/relay-connection-types.d.mts +13 -0
  193. package/esm/rules/relay-connection-types.js +98 -91
  194. package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
  195. package/esm/rules/relay-edge-types.js +178 -177
  196. package/esm/rules/relay-page-info.d.mts +12 -0
  197. package/esm/rules/relay-page-info.js +84 -86
  198. package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
  199. package/esm/rules/require-deprecation-date.js +120 -110
  200. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  201. package/esm/rules/require-deprecation-reason.js +57 -44
  202. package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
  203. package/esm/rules/require-description.js +151 -130
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  205. package/esm/rules/require-field-of-type-query-in-mutation-result.js +58 -49
  206. package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
  207. package/esm/rules/require-id-when-available.js +186 -171
  208. package/esm/rules/require-import-fragment.d.mts +12 -0
  209. package/esm/rules/require-import-fragment.js +105 -85
  210. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  211. package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
  212. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  213. package/esm/rules/require-nullable-result-in-root.js +74 -66
  214. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  215. package/esm/rules/require-type-pattern-with-oneof.js +47 -40
  216. package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
  217. package/esm/rules/selection-set-depth.js +114 -104
  218. package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
  219. package/esm/rules/strict-id-in-types.js +125 -119
  220. package/esm/rules/unique-fragment-name.d.mts +13 -0
  221. package/esm/rules/unique-fragment-name.js +65 -60
  222. package/esm/rules/unique-operation-name.d.mts +12 -0
  223. package/esm/rules/unique-operation-name.js +42 -33
  224. package/esm/schema.d.mts +12 -0
  225. package/esm/schema.js +29 -26
  226. package/esm/siblings.d.mts +8 -0
  227. package/esm/siblings.js +105 -104
  228. package/esm/testkit.d.mts +8 -0
  229. package/esm/testkit.js +132 -141
  230. package/esm/types-2e1afd7c.d.ts +129 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/utils.d.mts +44 -0
  233. package/esm/utils.js +138 -116
  234. package/package.json +40 -30
  235. package/typings/estree-converter/converter.d.cts +0 -3
  236. package/typings/estree-converter/converter.d.ts +0 -3
  237. package/typings/estree-converter/index.d.cts +0 -3
  238. package/typings/estree-converter/index.d.ts +0 -3
  239. package/typings/estree-converter/utils.d.cts +0 -13
  240. package/typings/estree-converter/utils.d.ts +0 -13
  241. package/typings/graphql-config.d.cts +0 -4
  242. package/typings/graphql-config.d.ts +0 -4
  243. package/typings/index.d.cts +0 -10
  244. package/typings/index.d.ts +0 -10
  245. package/typings/parser.d.cts +0 -2
  246. package/typings/parser.d.ts +0 -2
  247. package/typings/processor.d.cts +0 -6
  248. package/typings/processor.d.ts +0 -6
  249. package/typings/rules/graphql-js-validation.d.cts +0 -2
  250. package/typings/rules/graphql-js-validation.d.ts +0 -2
  251. package/typings/rules/index.d.cts +0 -111
  252. package/typings/rules/index.d.ts +0 -111
  253. package/typings/rules/no-anonymous-operations.d.cts +0 -2
  254. package/typings/rules/no-anonymous-operations.d.ts +0 -2
  255. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
  256. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
  257. package/typings/rules/no-deprecated.d.cts +0 -2
  258. package/typings/rules/no-deprecated.d.ts +0 -2
  259. package/typings/rules/no-duplicate-fields.d.cts +0 -2
  260. package/typings/rules/no-duplicate-fields.d.ts +0 -2
  261. package/typings/rules/no-hashtag-description.d.cts +0 -3
  262. package/typings/rules/no-hashtag-description.d.ts +0 -3
  263. package/typings/rules/no-one-place-fragments.d.cts +0 -2
  264. package/typings/rules/no-one-place-fragments.d.ts +0 -2
  265. package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
  266. package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
  267. package/typings/rules/no-typename-prefix.d.cts +0 -2
  268. package/typings/rules/no-typename-prefix.d.ts +0 -2
  269. package/typings/rules/no-unreachable-types.d.cts +0 -2
  270. package/typings/rules/no-unreachable-types.d.ts +0 -2
  271. package/typings/rules/no-unused-fields.d.cts +0 -2
  272. package/typings/rules/no-unused-fields.d.ts +0 -2
  273. package/typings/rules/relay-connection-types.d.cts +0 -4
  274. package/typings/rules/relay-connection-types.d.ts +0 -4
  275. package/typings/rules/relay-page-info.d.cts +0 -2
  276. package/typings/rules/relay-page-info.d.ts +0 -2
  277. package/typings/rules/require-deprecation-reason.d.cts +0 -2
  278. package/typings/rules/require-deprecation-reason.d.ts +0 -2
  279. package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
  280. package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
  281. package/typings/rules/require-import-fragment.d.cts +0 -2
  282. package/typings/rules/require-import-fragment.d.ts +0 -2
  283. package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
  284. package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
  285. package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
  286. package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
  287. package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
  288. package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
  289. package/typings/rules/unique-fragment-name.d.cts +0 -5
  290. package/typings/rules/unique-fragment-name.d.ts +0 -5
  291. package/typings/rules/unique-operation-name.d.cts +0 -2
  292. package/typings/rules/unique-operation-name.d.ts +0 -2
  293. package/typings/schema.d.cts +0 -3
  294. package/typings/schema.d.ts +0 -3
  295. package/typings/siblings.d.cts +0 -22
  296. package/typings/siblings.d.ts +0 -22
  297. package/typings/testkit.d.cts +0 -29
  298. package/typings/testkit.d.ts +0 -29
  299. package/typings/types.d.cts +0 -83
  300. package/typings/types.d.ts +0 -83
  301. package/typings/utils.d.cts +0 -40
  302. package/typings/utils.d.ts +0 -40
@@ -1,6 +1,7 @@
1
1
  import { AST } from 'eslint';
2
- import { Comment, SourceLocation } from 'estree';
3
- import { ArgumentNode, ASTNode, DefinitionNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, EnumTypeDefinitionNode, EnumTypeExtensionNode, EnumValueDefinitionNode, ExecutableDefinitionNode, FieldDefinitionNode, FieldNode, FragmentSpreadNode, InlineFragmentNode, InputObjectTypeDefinitionNode, InputObjectTypeExtensionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, ListTypeNode, NamedTypeNode, NameNode, NonNullTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, SelectionNode, SelectionSetNode, TypeDefinitionNode, TypeExtensionNode, TypeInfo, TypeNode, VariableDefinitionNode, VariableNode } from 'graphql';
2
+ import { SourceLocation, Comment } from 'estree';
3
+ import { TypeInfo, ASTNode, TypeNode, DocumentNode, DefinitionNode, EnumValueDefinitionNode, EnumTypeDefinitionNode, EnumTypeExtensionNode, InputValueDefinitionNode, DirectiveDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputObjectTypeExtensionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, SelectionSetNode, ExecutableDefinitionNode, FieldNode, InlineFragmentNode, SelectionNode, NameNode, DirectiveNode, VariableNode, VariableDefinitionNode, ArgumentNode, FragmentSpreadNode, NamedTypeNode, TypeDefinitionNode, TypeExtensionNode, ListTypeNode, NonNullTypeNode, OperationTypeDefinitionNode } from 'graphql';
4
+
4
5
  type SafeGraphQLType<T extends ASTNode> = T extends {
5
6
  type: TypeNode;
6
7
  } ? Omit<T, 'loc' | 'type'> & {
@@ -9,7 +10,7 @@ type SafeGraphQLType<T extends ASTNode> = T extends {
9
10
  type Writeable<T> = {
10
11
  -readonly [K in keyof T]: T[K];
11
12
  };
12
- export type TypeInformation = {
13
+ type TypeInformation = {
13
14
  argument: ReturnType<TypeInfo['getArgument']>;
14
15
  defaultValue: ReturnType<TypeInfo['getDefaultValue']>;
15
16
  directive: ReturnType<TypeInfo['getDirective']>;
@@ -32,9 +33,10 @@ type Node<T extends ASTNode, WithTypeInfo extends boolean> = Writeable<SafeGraph
32
33
  rawNode: () => T;
33
34
  parent: GraphQLESTreeNode<ParentNode<T>>;
34
35
  };
35
- export type GraphQLESTreeNode<T, W extends boolean = false> = T extends ASTNode ? {
36
+ type GraphQLESTreeNode<T, W extends boolean = false> = T extends ASTNode ? {
36
37
  [K in keyof Node<T, W>]: Node<T, W>[K] extends ReadonlyArray<infer ArrayItem> | undefined ? GraphQLESTreeNode<ArrayItem, W>[] : GraphQLESTreeNode<Node<T, W>[K], W>;
37
38
  } : T extends AST.Program ? T & {
38
39
  parent: null;
39
40
  } : T;
40
- export {};
41
+
42
+ export { GraphQLESTreeNode, TypeInformation };
@@ -0,0 +1,18 @@
1
+ import * as graphql_jsutils_Maybe from 'graphql/jsutils/Maybe';
2
+ import * as graphql_jsutils_ObjMap from 'graphql/jsutils/ObjMap';
3
+ import * as graphql from 'graphql';
4
+ import { GraphQLOutputType, GraphQLNamedType, Token, Location } from 'graphql';
5
+ import { AST } from 'eslint';
6
+ import { Comment, SourceLocation } from 'estree';
7
+
8
+ declare const valueFromNode: (valueNode: graphql.ValueNode, variables?: graphql_jsutils_Maybe.Maybe<graphql_jsutils_ObjMap.ObjMap<unknown>>) => any;
9
+ declare function getBaseType(type: GraphQLOutputType): GraphQLNamedType;
10
+ type TokenKindValue = ':' | '!' | '...' | '(' | ')' | '[' | ']' | '{' | '}' | '@' | '&' | '<SOF>' | '=' | '|' | '$' | 'BlockString' | 'Comment' | 'Float' | 'Int' | 'Name' | 'String';
11
+ declare function convertToken<T extends TokenKindValue | 'Block' | 'Line'>(token: Token, type: T): Omit<AST.Token, 'type'> & {
12
+ type: T;
13
+ };
14
+ declare function extractTokens(filePath: string, code: string): AST.Token[];
15
+ declare function extractComments(loc?: Location): Comment[];
16
+ declare function convertLocation(location: Location): SourceLocation;
17
+
18
+ export { convertLocation, convertToken, extractComments, extractTokens, getBaseType, valueFromNode };
@@ -1,104 +1,113 @@
1
1
  import { createRequire } from 'module';
2
2
  const require = createRequire(import.meta.url);
3
- import { isListType, isNonNullType, Source, TokenKind, } from 'graphql';
4
- import { valueFromASTUntyped } from 'graphql/utilities/valueFromASTUntyped.js';
5
- export const valueFromNode = (...args) => {
6
- return valueFromASTUntyped(...args);
3
+ import {
4
+ isListType,
5
+ isNonNullType,
6
+ Source,
7
+ TokenKind
8
+ } from "graphql";
9
+ import { valueFromASTUntyped } from "graphql/utilities/valueFromASTUntyped.js";
10
+ const valueFromNode = (...args) => {
11
+ return valueFromASTUntyped(...args);
7
12
  };
8
- export function getBaseType(type) {
9
- if (isNonNullType(type) || isListType(type)) {
10
- return getBaseType(type.ofType);
11
- }
12
- return type;
13
+ function getBaseType(type) {
14
+ if (isNonNullType(type) || isListType(type)) {
15
+ return getBaseType(type.ofType);
16
+ }
17
+ return type;
13
18
  }
14
- export function convertToken(token, type) {
15
- const { line, column, end, start, value } = token;
16
- return {
17
- type,
18
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TODO: remove `!` when drop support of graphql@15
19
- value: value,
20
- /*
21
- * ESLint has 0-based column number
22
- * https://eslint.org/docs/developer-guide/working-with-rules#contextreport
23
- */
24
- loc: {
25
- start: {
26
- line,
27
- column: column - 1,
28
- },
29
- end: {
30
- line,
31
- column: column - 1 + (end - start),
32
- },
33
- },
34
- range: [start, end],
35
- };
19
+ function convertToken(token, type) {
20
+ const { line, column, end, start, value } = token;
21
+ return {
22
+ type,
23
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TODO: remove `!` when drop support of graphql@15
24
+ value,
25
+ /*
26
+ * ESLint has 0-based column number
27
+ * https://eslint.org/docs/developer-guide/working-with-rules#contextreport
28
+ */
29
+ loc: {
30
+ start: {
31
+ line,
32
+ column: column - 1
33
+ },
34
+ end: {
35
+ line,
36
+ column: column - 1 + (end - start)
37
+ }
38
+ },
39
+ range: [start, end]
40
+ };
36
41
  }
37
42
  function getLexer(source) {
38
- // GraphQL v14
39
- const gqlLanguage = require('graphql/language');
40
- if (gqlLanguage === null || gqlLanguage === void 0 ? void 0 : gqlLanguage.createLexer) {
41
- return gqlLanguage.createLexer(source, {});
42
- }
43
- // GraphQL v15
44
- const { Lexer: LexerCls } = require('graphql');
45
- if (LexerCls && typeof LexerCls === 'function') {
46
- return new LexerCls(source);
47
- }
48
- throw new Error('Unsupported GraphQL version! Please make sure to use GraphQL v14 or newer!');
43
+ const gqlLanguage = require("graphql/language");
44
+ if (gqlLanguage?.createLexer) {
45
+ return gqlLanguage.createLexer(source, {});
46
+ }
47
+ const { Lexer: LexerCls } = require("graphql");
48
+ if (LexerCls && typeof LexerCls === "function") {
49
+ return new LexerCls(source);
50
+ }
51
+ throw new Error("Unsupported GraphQL version! Please make sure to use GraphQL v14 or newer!");
49
52
  }
50
- export function extractTokens(filePath, code) {
51
- const source = new Source(code, filePath);
52
- const lexer = getLexer(source);
53
- const tokens = [];
54
- let token = lexer.advance();
55
- while (token && token.kind !== TokenKind.EOF) {
56
- const result = convertToken(token, token.kind);
57
- tokens.push(result);
58
- token = lexer.advance();
59
- }
60
- return tokens;
53
+ function extractTokens(filePath, code) {
54
+ const source = new Source(code, filePath);
55
+ const lexer = getLexer(source);
56
+ const tokens = [];
57
+ let token = lexer.advance();
58
+ while (token && token.kind !== TokenKind.EOF) {
59
+ const result = convertToken(token, token.kind);
60
+ tokens.push(result);
61
+ token = lexer.advance();
62
+ }
63
+ return tokens;
61
64
  }
62
- export function extractComments(loc) {
63
- if (!loc) {
64
- return [];
65
- }
66
- const comments = [];
67
- let token = loc.startToken;
68
- while (token) {
69
- if (token.kind === TokenKind.COMMENT) {
70
- const comment = convertToken(token,
71
- // `eslint-disable` directive works only with `Block` type comment
72
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TODO: remove `!` when drop support of graphql@15
73
- token.value.trimStart().startsWith('eslint') ? 'Block' : 'Line');
74
- comments.push(comment);
75
- }
76
- token = token.next;
65
+ function extractComments(loc) {
66
+ if (!loc) {
67
+ return [];
68
+ }
69
+ const comments = [];
70
+ let token = loc.startToken;
71
+ while (token) {
72
+ if (token.kind === TokenKind.COMMENT) {
73
+ const comment = convertToken(
74
+ token,
75
+ // `eslint-disable` directive works only with `Block` type comment
76
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TODO: remove `!` when drop support of graphql@15
77
+ token.value.trimStart().startsWith("eslint") ? "Block" : "Line"
78
+ );
79
+ comments.push(comment);
77
80
  }
78
- return comments;
81
+ token = token.next;
82
+ }
83
+ return comments;
79
84
  }
80
- export function convertLocation(location) {
81
- const { startToken, endToken, source, start, end } = location;
82
- /*
83
- * ESLint has 0-based column number
84
- * https://eslint.org/docs/developer-guide/working-with-rules#contextreport
85
- */
86
- const loc = {
87
- start: {
88
- /*
89
- * Kind.Document has startToken: { line: 0, column: 0 }, we set line as 1 and column as 0
90
- */
91
- line: startToken.line === 0 ? 1 : startToken.line,
92
- column: startToken.column === 0 ? 0 : startToken.column - 1,
93
- },
94
- end: {
95
- line: endToken.line,
96
- column: endToken.column - 1,
97
- },
98
- source: source.body,
99
- };
100
- if (loc.start.column === loc.end.column) {
101
- loc.end.column += end - start;
102
- }
103
- return loc;
85
+ function convertLocation(location) {
86
+ const { startToken, endToken, source, start, end } = location;
87
+ const loc = {
88
+ start: {
89
+ /*
90
+ * Kind.Document has startToken: { line: 0, column: 0 }, we set line as 1 and column as 0
91
+ */
92
+ line: startToken.line === 0 ? 1 : startToken.line,
93
+ column: startToken.column === 0 ? 0 : startToken.column - 1
94
+ },
95
+ end: {
96
+ line: endToken.line,
97
+ column: endToken.column - 1
98
+ },
99
+ source: source.body
100
+ };
101
+ if (loc.start.column === loc.end.column) {
102
+ loc.end.column += end - start;
103
+ }
104
+ return loc;
104
105
  }
106
+ export {
107
+ convertLocation,
108
+ convertToken,
109
+ extractComments,
110
+ extractTokens,
111
+ getBaseType,
112
+ valueFromNode
113
+ };
@@ -1,5 +1,14 @@
1
- import { parseForESLint } from './parser.cjs';
2
- export declare const flatConfigs: {
1
+ import { parseForESLint } from './parser.mjs';
2
+ import './types-2e1afd7c.js';
3
+ import '@graphql-tools/utils';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import 'graphql';
7
+ import 'graphql-config';
8
+ import 'json-schema-to-ts';
9
+ import './estree-converter/types.mjs';
10
+
11
+ declare const flatConfigs: {
3
12
  'operations-all': {
4
13
  languageOptions: {
5
14
  parser: {
@@ -247,3 +256,5 @@ export declare const flatConfigs: {
247
256
  };
248
257
  };
249
258
  };
259
+
260
+ export { flatConfigs };
@@ -1,33 +1,36 @@
1
- import { configs } from './configs/index.js';
2
- import { parseForESLint } from './parser.js';
1
+ import { configs } from "./configs/index.js";
2
+ import { parseForESLint } from "./parser.js";
3
3
  const languageOptions = {
4
- parser: { parseForESLint },
4
+ parser: { parseForESLint }
5
5
  };
6
- export const flatConfigs = {
7
- 'operations-all': {
8
- languageOptions,
9
- rules: {
10
- ...configs['operations-recommended'].rules,
11
- ...configs['operations-all'].rules,
12
- },
13
- },
14
- 'operations-recommended': {
15
- languageOptions,
16
- rules: configs['operations-recommended'].rules,
17
- },
18
- relay: {
19
- languageOptions,
20
- rules: configs.relay.rules,
21
- },
22
- 'schema-all': {
23
- languageOptions,
24
- rules: {
25
- ...configs['schema-recommended'].rules,
26
- ...configs['schema-all'].rules,
27
- },
28
- },
29
- 'schema-recommended': {
30
- languageOptions,
31
- rules: configs['schema-recommended'].rules,
32
- },
6
+ const flatConfigs = {
7
+ "operations-all": {
8
+ languageOptions,
9
+ rules: {
10
+ ...configs["operations-recommended"].rules,
11
+ ...configs["operations-all"].rules
12
+ }
13
+ },
14
+ "operations-recommended": {
15
+ languageOptions,
16
+ rules: configs["operations-recommended"].rules
17
+ },
18
+ relay: {
19
+ languageOptions,
20
+ rules: configs.relay.rules
21
+ },
22
+ "schema-all": {
23
+ languageOptions,
24
+ rules: {
25
+ ...configs["schema-recommended"].rules,
26
+ ...configs["schema-all"].rules
27
+ }
28
+ },
29
+ "schema-recommended": {
30
+ languageOptions,
31
+ rules: configs["schema-recommended"].rules
32
+ }
33
+ };
34
+ export {
35
+ flatConfigs
33
36
  };
@@ -0,0 +1,13 @@
1
+ import { GraphQLConfig } from 'graphql-config';
2
+ import { P as ParserOptions } from './types-2e1afd7c.js';
3
+ import '@graphql-tools/utils';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import 'graphql';
7
+ import 'json-schema-to-ts';
8
+ import './estree-converter/types.mjs';
9
+
10
+ declare function loadOnDiskGraphQLConfig(filePath: string): GraphQLConfig;
11
+ declare function loadGraphQLConfig(options: ParserOptions): GraphQLConfig;
12
+
13
+ export { loadGraphQLConfig, loadOnDiskGraphQLConfig };
@@ -1,49 +1,54 @@
1
- import { dirname } from 'path';
2
- import { CodeFileLoader } from '@graphql-tools/code-file-loader';
3
- import debugFactory from 'debug';
4
- import { GraphQLConfig, loadConfigSync, } from 'graphql-config';
5
- const debug = debugFactory('graphql-eslint:graphql-config');
1
+ import { dirname } from "path";
2
+ import { CodeFileLoader } from "@graphql-tools/code-file-loader";
3
+ import debugFactory from "debug";
4
+ import {
5
+ GraphQLConfig,
6
+ loadConfigSync
7
+ } from "graphql-config";
8
+ const debug = debugFactory("graphql-eslint:graphql-config");
6
9
  let graphQLConfig;
7
- export function loadOnDiskGraphQLConfig(filePath) {
8
- return loadConfigSync({
9
- // load config relative to the file being linted
10
- rootDir: dirname(filePath),
11
- throwOnEmpty: false,
12
- throwOnMissing: false,
13
- extensions: [codeFileLoaderExtension],
14
- });
10
+ function loadOnDiskGraphQLConfig(filePath) {
11
+ return loadConfigSync({
12
+ // load config relative to the file being linted
13
+ rootDir: dirname(filePath),
14
+ throwOnEmpty: false,
15
+ throwOnMissing: false,
16
+ extensions: [codeFileLoaderExtension]
17
+ });
15
18
  }
16
- export function loadGraphQLConfig(options) {
17
- // We don't want cache config on test environment
18
- // Otherwise schema and documents will be same for all tests
19
- if (process.env.NODE_ENV !== 'test' && graphQLConfig) {
20
- return graphQLConfig;
21
- }
22
- const onDiskConfig = !options.skipGraphQLConfig && loadOnDiskGraphQLConfig(options.filePath);
23
- debug('options.skipGraphQLConfig: %o', options.skipGraphQLConfig);
24
- if (onDiskConfig) {
25
- debug('Graphql-config path %o', onDiskConfig.filepath);
26
- }
27
- const configOptions = options.projects
28
- ? { projects: options.projects }
29
- : {
30
- schema: (options.schema || ''),
31
- documents: options.documents,
32
- extensions: options.extensions,
33
- include: options.include,
34
- exclude: options.exclude,
35
- };
36
- graphQLConfig =
37
- onDiskConfig ||
38
- new GraphQLConfig({
39
- config: configOptions,
40
- filepath: 'virtual-config',
41
- }, [codeFileLoaderExtension]);
19
+ function loadGraphQLConfig(options) {
20
+ if (process.env.NODE_ENV !== "test" && graphQLConfig) {
42
21
  return graphQLConfig;
22
+ }
23
+ const onDiskConfig = !options.skipGraphQLConfig && loadOnDiskGraphQLConfig(options.filePath);
24
+ debug("options.skipGraphQLConfig: %o", options.skipGraphQLConfig);
25
+ if (onDiskConfig) {
26
+ debug("Graphql-config path %o", onDiskConfig.filepath);
27
+ }
28
+ const configOptions = options.projects ? { projects: options.projects } : {
29
+ schema: options.schema || "",
30
+ // if `schema` is `undefined` will throw error `Project 'default' not found`
31
+ documents: options.documents,
32
+ extensions: options.extensions,
33
+ include: options.include,
34
+ exclude: options.exclude
35
+ };
36
+ graphQLConfig = onDiskConfig || new GraphQLConfig(
37
+ {
38
+ config: configOptions,
39
+ filepath: "virtual-config"
40
+ },
41
+ [codeFileLoaderExtension]
42
+ );
43
+ return graphQLConfig;
43
44
  }
44
- const codeFileLoaderExtension = api => {
45
- const { schema, documents } = api.loaders;
46
- schema.register(new CodeFileLoader());
47
- documents.register(new CodeFileLoader());
48
- return { name: 'graphql-eslint-loaders' };
45
+ const codeFileLoaderExtension = (api) => {
46
+ const { schema, documents } = api.loaders;
47
+ schema.register(new CodeFileLoader());
48
+ documents.register(new CodeFileLoader());
49
+ return { name: "graphql-eslint-loaders" };
50
+ };
51
+ export {
52
+ loadGraphQLConfig,
53
+ loadOnDiskGraphQLConfig
49
54
  };
@@ -0,0 +1,22 @@
1
+ import * as eslint from 'eslint';
2
+ import { Block } from './processor.mjs';
3
+ export { parseForESLint } from './parser.mjs';
4
+ export { rules } from './rules/index.mjs';
5
+ export { C as CategoryType, f as GraphQLESLintParseResult, i as GraphQLESLintRule, g as GraphQLESLintRuleContext, G as GraphQLESLintRuleListener, b as GraphQLInvalidTestCase, c as GraphQLRuleTester, a as GraphQLValidTestCase, O as OmitRecursively, P as ParserOptions, e as ParserServices, d as Pointer, R as ReportDescriptor, h as RuleDocsInfo, S as Schema, V as ValueOf } from './types-2e1afd7c.js';
6
+ export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.mjs';
7
+ export { configs } from './configs/index.mjs';
8
+ export { flatConfigs } from './flat-configs.mjs';
9
+ import './rules/require-description.mjs';
10
+ import 'graphql';
11
+ import 'json-schema-to-ts/lib/types/type-utils/writable.js';
12
+ import '@graphql-tools/utils';
13
+ import 'estree';
14
+ import 'graphql-config';
15
+ import 'json-schema-to-ts';
16
+ import './estree-converter/types.mjs';
17
+
18
+ declare const processors: {
19
+ graphql: eslint.Linter.Processor<string | Block>;
20
+ };
21
+
22
+ export { processors };
package/esm/index.js CHANGED
@@ -1,9 +1,18 @@
1
- import { processor } from './processor.js';
2
- export { parseForESLint } from './parser.js';
3
- export { rules } from './rules/index.js';
4
- export * from './testkit.js';
5
- export * from './types.js';
6
- export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.js';
7
- export const processors = { graphql: processor };
8
- export { configs } from './configs/index.js';
9
- export { flatConfigs } from './flat-configs.js';
1
+ import { processor } from "./processor.js";
2
+ import { parseForESLint } from "./parser.js";
3
+ import { rules } from "./rules/index.js";
4
+ export * from "./testkit.js";
5
+ export * from "./types.js";
6
+ import { requireGraphQLSchemaFromContext, requireSiblingsOperations } from "./utils.js";
7
+ const processors = { graphql: processor };
8
+ import { configs } from "./configs/index.js";
9
+ import { flatConfigs } from "./flat-configs.js";
10
+ export {
11
+ configs,
12
+ flatConfigs,
13
+ parseForESLint,
14
+ processors,
15
+ requireGraphQLSchemaFromContext,
16
+ requireSiblingsOperations,
17
+ rules
18
+ };
package/esm/package.json CHANGED
@@ -1 +1 @@
1
- { "type": "module" }
1
+ {"type": "module"}
@@ -0,0 +1,12 @@
1
+ import { P as ParserOptions, f as GraphQLESLintParseResult } from './types-2e1afd7c.js';
2
+ import '@graphql-tools/utils';
3
+ import 'eslint';
4
+ import 'estree';
5
+ import 'graphql';
6
+ import 'graphql-config';
7
+ import 'json-schema-to-ts';
8
+ import './estree-converter/types.mjs';
9
+
10
+ declare function parseForESLint(code: string, options: ParserOptions): GraphQLESLintParseResult;
11
+
12
+ export { parseForESLint };