@graphql-eslint/eslint-plugin 4.0.0-alpha-20220821140530-e968cfc → 4.0.0-alpha-20230810155929-e89edf7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (346) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -252
  3. package/cjs/cache.d.ts +12 -0
  4. package/cjs/cache.js +53 -0
  5. package/cjs/configs/index.d.ts +174 -0
  6. package/cjs/configs/index.js +40 -0
  7. package/cjs/configs/operations-all.d.ts +23 -0
  8. package/cjs/configs/operations-all.js +28 -0
  9. package/cjs/configs/operations-recommended.d.ts +54 -0
  10. package/{configs/operations-recommended.json → cjs/configs/operations-recommended.js} +19 -15
  11. package/cjs/configs/schema-all.d.ts +24 -0
  12. package/cjs/configs/schema-all.js +24 -0
  13. package/cjs/configs/schema-recommended.d.ts +67 -0
  14. package/cjs/configs/schema-recommended.js +68 -0
  15. package/cjs/configs/schema-relay.d.ts +12 -0
  16. package/{configs/relay.json → cjs/configs/schema-relay.js} +6 -4
  17. package/cjs/documents.d.ts +6 -0
  18. package/cjs/documents.js +66 -0
  19. package/cjs/estree-converter/converter.d.ts +8 -0
  20. package/cjs/estree-converter/converter.js +70 -0
  21. package/cjs/estree-converter/index.d.ts +8 -0
  22. package/cjs/estree-converter/index.js +23 -0
  23. package/cjs/estree-converter/types.d.ts +42 -0
  24. package/cjs/estree-converter/types.js +14 -0
  25. package/cjs/estree-converter/utils.d.ts +17 -0
  26. package/cjs/estree-converter/utils.js +105 -0
  27. package/cjs/flat-configs.d.ts +307 -0
  28. package/cjs/flat-configs.js +55 -0
  29. package/cjs/graphql-config.d.ts +14 -0
  30. package/cjs/graphql-config.js +65 -0
  31. package/cjs/index.d.ts +28 -0
  32. package/cjs/index.js +41 -0
  33. package/cjs/parser.d.ts +13 -0
  34. package/cjs/parser.js +96 -0
  35. package/cjs/processor.d.ts +13 -0
  36. package/cjs/processor.js +95 -0
  37. package/cjs/rules/alphabetize.d.ts +74 -0
  38. package/cjs/rules/alphabetize.js +323 -0
  39. package/cjs/rules/description-style.d.ts +29 -0
  40. package/cjs/rules/description-style.js +102 -0
  41. package/cjs/rules/graphql-js-validation.d.ts +13 -0
  42. package/cjs/rules/graphql-js-validation.js +595 -0
  43. package/cjs/rules/index.d.ts +127 -0
  44. package/cjs/rules/index.js +62 -0
  45. package/cjs/rules/input-name.d.ts +44 -0
  46. package/cjs/rules/input-name.js +154 -0
  47. package/cjs/rules/lone-executable-definition.d.ts +35 -0
  48. package/cjs/rules/lone-executable-definition.js +105 -0
  49. package/cjs/rules/match-document-filename.d.ts +81 -0
  50. package/cjs/rules/match-document-filename.js +251 -0
  51. package/cjs/rules/naming-convention.d.ts +108 -0
  52. package/cjs/rules/naming-convention.js +416 -0
  53. package/cjs/rules/no-anonymous-operations.d.ts +13 -0
  54. package/cjs/rules/no-anonymous-operations.js +91 -0
  55. package/cjs/rules/no-deprecated.d.ts +13 -0
  56. package/cjs/rules/no-deprecated.js +143 -0
  57. package/cjs/rules/no-duplicate-fields.d.ts +13 -0
  58. package/cjs/rules/no-duplicate-fields.js +136 -0
  59. package/cjs/rules/no-hashtag-description.d.ts +14 -0
  60. package/cjs/rules/no-hashtag-description.js +127 -0
  61. package/cjs/rules/no-one-place-fragments.d.ts +13 -0
  62. package/cjs/rules/no-one-place-fragments.js +101 -0
  63. package/cjs/rules/no-root-type.d.ts +34 -0
  64. package/cjs/rules/no-root-type.js +103 -0
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +13 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +88 -0
  67. package/cjs/rules/no-typename-prefix.d.ts +13 -0
  68. package/cjs/rules/no-typename-prefix.js +91 -0
  69. package/cjs/rules/no-unreachable-types.d.ts +13 -0
  70. package/cjs/rules/no-unreachable-types.js +177 -0
  71. package/cjs/rules/no-unused-fields.d.ts +13 -0
  72. package/cjs/rules/no-unused-fields.js +132 -0
  73. package/cjs/rules/relay-arguments.d.ts +30 -0
  74. package/cjs/rules/relay-arguments.js +126 -0
  75. package/cjs/rules/relay-connection-types.d.ts +14 -0
  76. package/cjs/rules/relay-connection-types.js +111 -0
  77. package/cjs/rules/relay-edge-types.d.ts +40 -0
  78. package/cjs/rules/relay-edge-types.js +161 -0
  79. package/cjs/rules/relay-page-info.d.ts +13 -0
  80. package/cjs/rules/relay-page-info.js +98 -0
  81. package/cjs/rules/require-deprecation-date.d.ts +27 -0
  82. package/cjs/rules/require-deprecation-date.js +148 -0
  83. package/cjs/rules/require-deprecation-reason.d.ts +13 -0
  84. package/cjs/rules/require-deprecation-reason.js +85 -0
  85. package/cjs/rules/require-description.d.ts +24 -0
  86. package/cjs/rules/require-description.js +179 -0
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +13 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +87 -0
  89. package/cjs/rules/require-import-fragment.d.ts +13 -0
  90. package/cjs/rules/require-import-fragment.js +148 -0
  91. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +13 -0
  92. package/cjs/rules/require-nullable-fields-with-oneof.js +81 -0
  93. package/cjs/rules/require-nullable-result-in-root.d.ts +13 -0
  94. package/cjs/rules/require-nullable-result-in-root.js +99 -0
  95. package/cjs/rules/require-selections.d.ts +45 -0
  96. package/cjs/rules/require-selections.js +198 -0
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +13 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +83 -0
  99. package/cjs/rules/selection-set-depth.d.ts +37 -0
  100. package/cjs/rules/selection-set-depth.js +159 -0
  101. package/cjs/rules/strict-id-in-types.d.ts +66 -0
  102. package/cjs/rules/strict-id-in-types.js +168 -0
  103. package/cjs/rules/unique-enum-value-names.d.ts +13 -0
  104. package/cjs/rules/unique-enum-value-names.js +91 -0
  105. package/cjs/rules/unique-fragment-name.d.ts +14 -0
  106. package/cjs/rules/unique-fragment-name.js +106 -0
  107. package/cjs/rules/unique-operation-name.d.ts +13 -0
  108. package/cjs/rules/unique-operation-name.js +93 -0
  109. package/cjs/schema.d.ts +13 -0
  110. package/cjs/schema.js +52 -0
  111. package/{sibling-operations.d.ts → cjs/siblings.d.ts} +9 -6
  112. package/cjs/siblings.js +96 -0
  113. package/cjs/types.d.ts +75 -0
  114. package/cjs/types.js +14 -0
  115. package/cjs/utils.d.ts +45 -0
  116. package/cjs/utils.js +188 -0
  117. package/esm/cache.d.mts +12 -0
  118. package/esm/cache.js +25 -0
  119. package/esm/chunk-U3TKCM4X.js +8 -0
  120. package/esm/configs/index.d.mts +174 -0
  121. package/esm/configs/index.js +16 -0
  122. package/esm/configs/operations-all.d.mts +23 -0
  123. package/esm/configs/operations-all.js +35 -0
  124. package/esm/configs/operations-recommended.d.mts +54 -0
  125. package/esm/configs/operations-recommended.js +61 -0
  126. package/esm/configs/schema-all.d.mts +24 -0
  127. package/esm/configs/schema-all.js +31 -0
  128. package/esm/configs/schema-recommended.d.mts +67 -0
  129. package/esm/configs/schema-recommended.js +75 -0
  130. package/esm/configs/schema-relay.d.mts +12 -0
  131. package/esm/configs/schema-relay.js +18 -0
  132. package/esm/documents.d.mts +6 -0
  133. package/esm/documents.js +41 -0
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +56 -0
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -0
  138. package/esm/estree-converter/types.d.mts +42 -0
  139. package/esm/estree-converter/types.js +0 -0
  140. package/esm/estree-converter/utils.d.mts +17 -0
  141. package/esm/estree-converter/utils.js +87 -0
  142. package/esm/flat-configs.d.mts +307 -0
  143. package/esm/flat-configs.js +36 -0
  144. package/esm/graphql-config.d.mts +14 -0
  145. package/esm/graphql-config.js +39 -0
  146. package/esm/index.d.mts +28 -0
  147. package/esm/index.js +18 -0
  148. package/esm/package.json +1 -0
  149. package/esm/parser.d.mts +13 -0
  150. package/esm/parser.js +76 -0
  151. package/esm/processor.d.mts +13 -0
  152. package/esm/processor.js +81 -0
  153. package/esm/rules/alphabetize.d.mts +74 -0
  154. package/esm/rules/alphabetize.js +299 -0
  155. package/esm/rules/description-style.d.mts +29 -0
  156. package/esm/rules/description-style.js +82 -0
  157. package/esm/rules/graphql-js-validation.d.mts +13 -0
  158. package/esm/rules/graphql-js-validation.js +618 -0
  159. package/esm/rules/index.d.mts +127 -0
  160. package/esm/rules/index.js +76 -0
  161. package/esm/rules/input-name.d.mts +44 -0
  162. package/esm/rules/input-name.js +136 -0
  163. package/esm/rules/lone-executable-definition.d.mts +35 -0
  164. package/esm/rules/lone-executable-definition.js +86 -0
  165. package/esm/rules/match-document-filename.d.mts +81 -0
  166. package/esm/rules/match-document-filename.js +237 -0
  167. package/esm/rules/naming-convention.d.mts +108 -0
  168. package/esm/rules/naming-convention.js +403 -0
  169. package/esm/rules/no-anonymous-operations.d.mts +13 -0
  170. package/esm/rules/no-anonymous-operations.js +72 -0
  171. package/esm/rules/no-deprecated.d.mts +13 -0
  172. package/esm/rules/no-deprecated.js +124 -0
  173. package/esm/rules/no-duplicate-fields.d.mts +13 -0
  174. package/esm/rules/no-duplicate-fields.js +116 -0
  175. package/esm/rules/no-hashtag-description.d.mts +14 -0
  176. package/esm/rules/no-hashtag-description.js +107 -0
  177. package/esm/rules/no-one-place-fragments.d.mts +13 -0
  178. package/esm/rules/no-one-place-fragments.js +83 -0
  179. package/esm/rules/no-root-type.d.mts +34 -0
  180. package/esm/rules/no-root-type.js +83 -0
  181. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +13 -0
  182. package/esm/rules/no-scalar-result-type-on-mutation.js +69 -0
  183. package/esm/rules/no-typename-prefix.d.mts +13 -0
  184. package/esm/rules/no-typename-prefix.js +71 -0
  185. package/esm/rules/no-unreachable-types.d.mts +13 -0
  186. package/esm/rules/no-unreachable-types.js +156 -0
  187. package/esm/rules/no-unused-fields.d.mts +13 -0
  188. package/esm/rules/no-unused-fields.js +113 -0
  189. package/esm/rules/relay-arguments.d.mts +30 -0
  190. package/esm/rules/relay-arguments.js +107 -0
  191. package/esm/rules/relay-connection-types.d.mts +14 -0
  192. package/esm/rules/relay-connection-types.js +90 -0
  193. package/esm/rules/relay-edge-types.d.mts +40 -0
  194. package/esm/rules/relay-edge-types.js +148 -0
  195. package/esm/rules/relay-page-info.d.mts +13 -0
  196. package/esm/rules/relay-page-info.js +80 -0
  197. package/esm/rules/require-deprecation-date.d.mts +27 -0
  198. package/esm/rules/require-deprecation-date.js +129 -0
  199. package/esm/rules/require-deprecation-reason.d.mts +13 -0
  200. package/esm/rules/require-deprecation-reason.js +66 -0
  201. package/esm/rules/require-description.d.mts +24 -0
  202. package/esm/rules/require-description.js +165 -0
  203. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +13 -0
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.js +68 -0
  205. package/esm/rules/require-import-fragment.d.mts +13 -0
  206. package/esm/rules/require-import-fragment.js +121 -0
  207. package/esm/rules/require-nullable-fields-with-oneof.d.mts +13 -0
  208. package/esm/rules/require-nullable-fields-with-oneof.js +62 -0
  209. package/esm/rules/require-nullable-result-in-root.d.mts +13 -0
  210. package/esm/rules/require-nullable-result-in-root.js +80 -0
  211. package/esm/rules/require-selections.d.mts +45 -0
  212. package/esm/rules/require-selections.js +194 -0
  213. package/esm/rules/require-type-pattern-with-oneof.d.mts +13 -0
  214. package/esm/rules/require-type-pattern-with-oneof.js +63 -0
  215. package/esm/rules/selection-set-depth.d.mts +37 -0
  216. package/esm/rules/selection-set-depth.js +133 -0
  217. package/esm/rules/strict-id-in-types.d.mts +66 -0
  218. package/esm/rules/strict-id-in-types.js +155 -0
  219. package/esm/rules/unique-enum-value-names.d.mts +13 -0
  220. package/esm/rules/unique-enum-value-names.js +72 -0
  221. package/esm/rules/unique-fragment-name.d.mts +14 -0
  222. package/esm/rules/unique-fragment-name.js +87 -0
  223. package/esm/rules/unique-operation-name.d.mts +13 -0
  224. package/esm/rules/unique-operation-name.js +73 -0
  225. package/esm/schema.d.mts +13 -0
  226. package/esm/schema.js +27 -0
  227. package/esm/siblings.d.mts +24 -0
  228. package/esm/siblings.js +80 -0
  229. package/esm/types.d.mts +75 -0
  230. package/esm/types.js +0 -0
  231. package/esm/utils.d.mts +45 -0
  232. package/esm/utils.js +144 -0
  233. package/index.browser.mjs +5323 -0
  234. package/package.json +43 -35
  235. package/configs/base.json +0 -4
  236. package/configs/operations-all.json +0 -24
  237. package/configs/schema-all.json +0 -26
  238. package/configs/schema-recommended.json +0 -49
  239. package/docs/README.md +0 -75
  240. package/docs/custom-rules.md +0 -148
  241. package/docs/deprecated-rules.md +0 -21
  242. package/docs/parser-options.md +0 -85
  243. package/docs/parser.md +0 -49
  244. package/docs/rules/alphabetize.md +0 -178
  245. package/docs/rules/description-style.md +0 -54
  246. package/docs/rules/executable-definitions.md +0 -17
  247. package/docs/rules/fields-on-correct-type.md +0 -17
  248. package/docs/rules/fragments-on-composite-type.md +0 -17
  249. package/docs/rules/input-name.md +0 -76
  250. package/docs/rules/known-argument-names.md +0 -17
  251. package/docs/rules/known-directives.md +0 -44
  252. package/docs/rules/known-fragment-names.md +0 -69
  253. package/docs/rules/known-type-names.md +0 -17
  254. package/docs/rules/lone-anonymous-operation.md +0 -17
  255. package/docs/rules/lone-schema-definition.md +0 -17
  256. package/docs/rules/match-document-filename.md +0 -156
  257. package/docs/rules/naming-convention.md +0 -300
  258. package/docs/rules/no-anonymous-operations.md +0 -39
  259. package/docs/rules/no-case-insensitive-enum-values-duplicates.md +0 -43
  260. package/docs/rules/no-deprecated.md +0 -85
  261. package/docs/rules/no-duplicate-fields.md +0 -65
  262. package/docs/rules/no-fragment-cycles.md +0 -17
  263. package/docs/rules/no-hashtag-description.md +0 -59
  264. package/docs/rules/no-root-type.md +0 -53
  265. package/docs/rules/no-scalar-result-type-on-mutation.md +0 -37
  266. package/docs/rules/no-typename-prefix.md +0 -39
  267. package/docs/rules/no-undefined-variables.md +0 -17
  268. package/docs/rules/no-unreachable-types.md +0 -49
  269. package/docs/rules/no-unused-fields.md +0 -62
  270. package/docs/rules/no-unused-fragments.md +0 -17
  271. package/docs/rules/no-unused-variables.md +0 -17
  272. package/docs/rules/one-field-subscriptions.md +0 -17
  273. package/docs/rules/overlapping-fields-can-be-merged.md +0 -17
  274. package/docs/rules/possible-fragment-spread.md +0 -17
  275. package/docs/rules/possible-type-extension.md +0 -15
  276. package/docs/rules/provided-required-arguments.md +0 -17
  277. package/docs/rules/relay-arguments.md +0 -57
  278. package/docs/rules/relay-connection-types.md +0 -42
  279. package/docs/rules/relay-edge-types.md +0 -56
  280. package/docs/rules/relay-page-info.md +0 -32
  281. package/docs/rules/require-deprecation-date.md +0 -56
  282. package/docs/rules/require-deprecation-reason.md +0 -47
  283. package/docs/rules/require-description.md +0 -115
  284. package/docs/rules/require-field-of-type-query-in-mutation-result.md +0 -47
  285. package/docs/rules/require-id-when-available.md +0 -88
  286. package/docs/rules/scalar-leafs.md +0 -17
  287. package/docs/rules/selection-set-depth.md +0 -76
  288. package/docs/rules/strict-id-in-types.md +0 -130
  289. package/docs/rules/unique-argument-names.md +0 -17
  290. package/docs/rules/unique-directive-names-per-location.md +0 -17
  291. package/docs/rules/unique-directive-names.md +0 -17
  292. package/docs/rules/unique-enum-value-names.md +0 -15
  293. package/docs/rules/unique-field-definition-names.md +0 -17
  294. package/docs/rules/unique-fragment-name.md +0 -51
  295. package/docs/rules/unique-input-field-names.md +0 -17
  296. package/docs/rules/unique-operation-name.md +0 -55
  297. package/docs/rules/unique-operation-types.md +0 -17
  298. package/docs/rules/unique-type-names.md +0 -17
  299. package/docs/rules/unique-variable-names.md +0 -17
  300. package/docs/rules/value-literals-of-correct-type.md +0 -17
  301. package/docs/rules/variables-are-input-types.md +0 -17
  302. package/docs/rules/variables-in-allowed-position.md +0 -17
  303. package/estree-converter/converter.d.ts +0 -3
  304. package/estree-converter/index.d.ts +0 -3
  305. package/estree-converter/types.d.ts +0 -40
  306. package/estree-converter/utils.d.ts +0 -13
  307. package/graphql-config.d.ts +0 -3
  308. package/index.d.ts +0 -16
  309. package/index.js +0 -4653
  310. package/index.mjs +0 -4641
  311. package/parser.d.ts +0 -2
  312. package/processor.d.ts +0 -7
  313. package/rules/alphabetize.d.ts +0 -16
  314. package/rules/description-style.d.ts +0 -6
  315. package/rules/graphql-js-validation.d.ts +0 -2
  316. package/rules/index.d.ts +0 -41
  317. package/rules/input-name.d.ts +0 -9
  318. package/rules/match-document-filename.d.ts +0 -18
  319. package/rules/naming-convention.d.ts +0 -37
  320. package/rules/no-anonymous-operations.d.ts +0 -3
  321. package/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -3
  322. package/rules/no-deprecated.d.ts +0 -3
  323. package/rules/no-duplicate-fields.d.ts +0 -3
  324. package/rules/no-hashtag-description.d.ts +0 -3
  325. package/rules/no-root-type.d.ts +0 -7
  326. package/rules/no-scalar-result-type-on-mutation.d.ts +0 -3
  327. package/rules/no-typename-prefix.d.ts +0 -3
  328. package/rules/no-unreachable-types.d.ts +0 -3
  329. package/rules/no-unused-fields.d.ts +0 -3
  330. package/rules/relay-arguments.d.ts +0 -6
  331. package/rules/relay-connection-types.d.ts +0 -5
  332. package/rules/relay-edge-types.d.ts +0 -8
  333. package/rules/relay-page-info.d.ts +0 -3
  334. package/rules/require-deprecation-date.d.ts +0 -5
  335. package/rules/require-deprecation-reason.d.ts +0 -3
  336. package/rules/require-description.d.ts +0 -11
  337. package/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -3
  338. package/rules/require-id-when-available.d.ts +0 -6
  339. package/rules/selection-set-depth.d.ts +0 -7
  340. package/rules/strict-id-in-types.d.ts +0 -11
  341. package/rules/unique-fragment-name.d.ts +0 -6
  342. package/rules/unique-operation-name.d.ts +0 -3
  343. package/schema.d.ts +0 -3
  344. package/testkit.d.ts +0 -27
  345. package/types.d.ts +0 -79
  346. package/utils.d.ts +0 -39
@@ -0,0 +1,127 @@
1
+ import { RuleOptions } from './require-description.mjs';
2
+ import { CaseStyle } from '../utils.mjs';
3
+ import * as graphql_language_ast_js from 'graphql/language/ast.js';
4
+ import { GraphQLESLintRule } from '../types.mjs';
5
+ import * as json_schema_to_ts_lib_types_type_utils_writable_js from 'json-schema-to-ts/lib/types/type-utils/writable.js';
6
+ import 'graphql';
7
+ import 'eslint';
8
+ import 'estree';
9
+ import '../siblings.mjs';
10
+ import '@graphql-tools/utils';
11
+ import '../estree-converter/types.mjs';
12
+ import 'json-schema-to-ts';
13
+ import 'graphql-config';
14
+
15
+ declare const rules: {
16
+ alphabetize: GraphQLESLintRule<{
17
+ definitions?: boolean | undefined;
18
+ selections?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<"OperationDefinition" | "FragmentDefinition">[] | undefined;
19
+ arguments?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<"Field" | "Directive" | "FieldDefinition" | "DirectiveDefinition">[] | undefined;
20
+ values?: boolean | undefined;
21
+ fields?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<"ObjectTypeDefinition" | "InterfaceTypeDefinition" | "InputObjectTypeDefinition">[] | undefined;
22
+ variables?: boolean | undefined;
23
+ groups?: string[] | undefined;
24
+ }[]>;
25
+ 'description-style': GraphQLESLintRule<{
26
+ style?: "block" | "inline" | undefined;
27
+ }[]>;
28
+ 'input-name': GraphQLESLintRule<{
29
+ checkInputType?: boolean | undefined;
30
+ caseSensitiveInputType?: boolean | undefined;
31
+ checkQueries?: boolean | undefined;
32
+ checkMutations?: boolean | undefined;
33
+ }[]>;
34
+ 'lone-executable-definition': GraphQLESLintRule<{
35
+ ignore?: ("fragment" | json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<graphql_language_ast_js.OperationTypeNode>)[] | undefined;
36
+ }[]>;
37
+ 'match-document-filename': GraphQLESLintRule<{
38
+ fragment?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | {
39
+ style?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | undefined;
40
+ suffix?: string | undefined;
41
+ prefix?: string | undefined;
42
+ } | undefined;
43
+ mutation?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | {
44
+ style?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | undefined;
45
+ suffix?: string | undefined;
46
+ prefix?: string | undefined;
47
+ } | undefined;
48
+ subscription?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | {
49
+ style?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | undefined;
50
+ suffix?: string | undefined;
51
+ prefix?: string | undefined;
52
+ } | undefined;
53
+ query?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | {
54
+ style?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<CaseStyle | "matchDocumentStyle"> | undefined;
55
+ suffix?: string | undefined;
56
+ prefix?: string | undefined;
57
+ } | undefined;
58
+ fileExtension?: ".gql" | ".graphql" | undefined;
59
+ }[]>;
60
+ 'naming-convention': GraphQLESLintRule<{
61
+ [x: string]: unknown;
62
+ types?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<"camelCase" | "PascalCase" | "snake_case" | "UPPER_CASE"> | {
63
+ style?: json_schema_to_ts_lib_types_type_utils_writable_js.DeepWritable<"camelCase" | "PascalCase" | "snake_case" | "UPPER_CASE"> | undefined;
64
+ suffix?: string | undefined;
65
+ prefix?: string | undefined;
66
+ forbiddenPrefixes?: string[] | undefined;
67
+ forbiddenSuffixes?: string[] | undefined;
68
+ requiredPrefixes?: string[] | undefined;
69
+ requiredSuffixes?: string[] | undefined;
70
+ ignorePattern?: string | undefined;
71
+ } | undefined;
72
+ allowLeadingUnderscore?: boolean | undefined;
73
+ allowTrailingUnderscore?: boolean | undefined;
74
+ }[]>;
75
+ 'no-anonymous-operations': GraphQLESLintRule;
76
+ 'no-deprecated': GraphQLESLintRule<[], true>;
77
+ 'no-duplicate-fields': GraphQLESLintRule;
78
+ 'no-hashtag-description': GraphQLESLintRule;
79
+ 'no-one-place-fragments': GraphQLESLintRule;
80
+ 'no-root-type': GraphQLESLintRule<{
81
+ disallow: ("mutation" | "subscription")[];
82
+ }[]>;
83
+ 'no-scalar-result-type-on-mutation': GraphQLESLintRule;
84
+ 'no-typename-prefix': GraphQLESLintRule;
85
+ 'no-unreachable-types': GraphQLESLintRule;
86
+ 'no-unused-fields': GraphQLESLintRule;
87
+ 'relay-arguments': GraphQLESLintRule<{
88
+ includeBoth?: boolean | undefined;
89
+ }[], true>;
90
+ 'relay-connection-types': GraphQLESLintRule;
91
+ 'relay-edge-types': GraphQLESLintRule<{
92
+ withEdgeSuffix?: boolean | undefined;
93
+ shouldImplementNode?: boolean | undefined;
94
+ listTypeCanWrapOnlyEdgeType?: boolean | undefined;
95
+ }[], true>;
96
+ 'relay-page-info': GraphQLESLintRule;
97
+ 'require-deprecation-date': GraphQLESLintRule<{
98
+ argumentName?: string | undefined;
99
+ }[]>;
100
+ 'require-deprecation-reason': GraphQLESLintRule;
101
+ 'require-description': GraphQLESLintRule<RuleOptions>;
102
+ 'require-field-of-type-query-in-mutation-result': GraphQLESLintRule;
103
+ 'require-import-fragment': GraphQLESLintRule;
104
+ 'require-nullable-fields-with-oneof': GraphQLESLintRule;
105
+ 'require-nullable-result-in-root': GraphQLESLintRule;
106
+ 'require-selections': GraphQLESLintRule<{
107
+ fieldName?: string | string[] | undefined;
108
+ }[], true>;
109
+ 'require-type-pattern-with-oneof': GraphQLESLintRule;
110
+ 'selection-set-depth': GraphQLESLintRule<{
111
+ ignore?: string[] | undefined;
112
+ maxDepth: number;
113
+ }[]>;
114
+ 'strict-id-in-types': GraphQLESLintRule<{
115
+ acceptedIdNames?: string[] | undefined;
116
+ acceptedIdTypes?: string[] | undefined;
117
+ exceptions?: {
118
+ types?: string[] | undefined;
119
+ suffixes?: string[] | undefined;
120
+ } | undefined;
121
+ }[]>;
122
+ 'unique-enum-value-names': GraphQLESLintRule;
123
+ 'unique-fragment-name': GraphQLESLintRule;
124
+ 'unique-operation-name': GraphQLESLintRule;
125
+ };
126
+
127
+ export { rules };
@@ -0,0 +1,76 @@
1
+ import "../chunk-U3TKCM4X.js";
2
+ import { GRAPHQL_JS_VALIDATIONS } from "./graphql-js-validation.js";
3
+ import { rule as alphabetize } from "./alphabetize.js";
4
+ import { rule as descriptionStyle } from "./description-style.js";
5
+ import { rule as inputName } from "./input-name.js";
6
+ import { rule as loneExecutableDefinition } from "./lone-executable-definition.js";
7
+ import { rule as matchDocumentFilename } from "./match-document-filename.js";
8
+ import { rule as namingConvention } from "./naming-convention.js";
9
+ import { rule as noAnonymousOperations } from "./no-anonymous-operations.js";
10
+ import { rule as noDeprecated } from "./no-deprecated.js";
11
+ import { rule as noDuplicateFields } from "./no-duplicate-fields.js";
12
+ import { rule as noHashtagDescription } from "./no-hashtag-description.js";
13
+ import { rule as noOnePlaceFragments } from "./no-one-place-fragments.js";
14
+ import { rule as noRootType } from "./no-root-type.js";
15
+ import { rule as noScalarResultTypeOnMutation } from "./no-scalar-result-type-on-mutation.js";
16
+ import { rule as noTypenamePrefix } from "./no-typename-prefix.js";
17
+ import { rule as noUnreachableTypes } from "./no-unreachable-types.js";
18
+ import { rule as noUnusedFields } from "./no-unused-fields.js";
19
+ import { rule as relayArguments } from "./relay-arguments.js";
20
+ import { rule as relayConnectionTypes } from "./relay-connection-types.js";
21
+ import { rule as relayEdgeTypes } from "./relay-edge-types.js";
22
+ import { rule as relayPageInfo } from "./relay-page-info.js";
23
+ import { rule as requireDeprecationDate } from "./require-deprecation-date.js";
24
+ import { rule as requireDeprecationReason } from "./require-deprecation-reason.js";
25
+ import { rule as requireDescription } from "./require-description.js";
26
+ import { rule as requireFieldOfTypeQueryInMutationResult } from "./require-field-of-type-query-in-mutation-result.js";
27
+ import { rule as requireImportFragment } from "./require-import-fragment.js";
28
+ import { rule as requireNullableFieldsWithOneof } from "./require-nullable-fields-with-oneof.js";
29
+ import { rule as requireNullableResultInRoot } from "./require-nullable-result-in-root.js";
30
+ import { rule as requireSelections } from "./require-selections.js";
31
+ import { rule as requireTypePatternWithOneof } from "./require-type-pattern-with-oneof.js";
32
+ import { rule as selectionSetDepth } from "./selection-set-depth.js";
33
+ import { rule as strictIdInTypes } from "./strict-id-in-types.js";
34
+ import { rule as uniqueEnumValueNames } from "./unique-enum-value-names.js";
35
+ import { rule as uniqueFragmentName } from "./unique-fragment-name.js";
36
+ import { rule as uniqueOperationName } from "./unique-operation-name.js";
37
+ const rules = {
38
+ ...GRAPHQL_JS_VALIDATIONS,
39
+ alphabetize,
40
+ "description-style": descriptionStyle,
41
+ "input-name": inputName,
42
+ "lone-executable-definition": loneExecutableDefinition,
43
+ "match-document-filename": matchDocumentFilename,
44
+ "naming-convention": namingConvention,
45
+ "no-anonymous-operations": noAnonymousOperations,
46
+ "no-deprecated": noDeprecated,
47
+ "no-duplicate-fields": noDuplicateFields,
48
+ "no-hashtag-description": noHashtagDescription,
49
+ "no-one-place-fragments": noOnePlaceFragments,
50
+ "no-root-type": noRootType,
51
+ "no-scalar-result-type-on-mutation": noScalarResultTypeOnMutation,
52
+ "no-typename-prefix": noTypenamePrefix,
53
+ "no-unreachable-types": noUnreachableTypes,
54
+ "no-unused-fields": noUnusedFields,
55
+ "relay-arguments": relayArguments,
56
+ "relay-connection-types": relayConnectionTypes,
57
+ "relay-edge-types": relayEdgeTypes,
58
+ "relay-page-info": relayPageInfo,
59
+ "require-deprecation-date": requireDeprecationDate,
60
+ "require-deprecation-reason": requireDeprecationReason,
61
+ "require-description": requireDescription,
62
+ "require-field-of-type-query-in-mutation-result": requireFieldOfTypeQueryInMutationResult,
63
+ "require-import-fragment": requireImportFragment,
64
+ "require-nullable-fields-with-oneof": requireNullableFieldsWithOneof,
65
+ "require-nullable-result-in-root": requireNullableResultInRoot,
66
+ "require-selections": requireSelections,
67
+ "require-type-pattern-with-oneof": requireTypePatternWithOneof,
68
+ "selection-set-depth": selectionSetDepth,
69
+ "strict-id-in-types": strictIdInTypes,
70
+ "unique-enum-value-names": uniqueEnumValueNames,
71
+ "unique-fragment-name": uniqueFragmentName,
72
+ "unique-operation-name": uniqueOperationName
73
+ };
74
+ export {
75
+ rules
76
+ };
@@ -0,0 +1,44 @@
1
+ import { FromSchema } from 'json-schema-to-ts';
2
+ import { GraphQLESLintRule } from '../types.mjs';
3
+ import 'eslint';
4
+ import 'estree';
5
+ import 'graphql';
6
+ import '../siblings.mjs';
7
+ import '@graphql-tools/utils';
8
+ import '../estree-converter/types.mjs';
9
+ import 'graphql-config';
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 checkInputType: {
19
+ readonly type: "boolean";
20
+ readonly default: false;
21
+ readonly description: "Check that the input type name follows the convention \\<mutationName>Input";
22
+ };
23
+ readonly caseSensitiveInputType: {
24
+ readonly type: "boolean";
25
+ readonly default: true;
26
+ readonly description: "Allow for case discrepancies in the input type name";
27
+ };
28
+ readonly checkQueries: {
29
+ readonly type: "boolean";
30
+ readonly default: false;
31
+ readonly description: "Apply the rule to Queries";
32
+ };
33
+ readonly checkMutations: {
34
+ readonly type: "boolean";
35
+ readonly default: true;
36
+ readonly description: "Apply the rule to Mutations";
37
+ };
38
+ };
39
+ };
40
+ };
41
+ type RuleOptions = FromSchema<typeof schema>;
42
+ declare const rule: GraphQLESLintRule<RuleOptions>;
43
+
44
+ export { RuleOptions, rule };
@@ -0,0 +1,136 @@
1
+ import "../chunk-U3TKCM4X.js";
2
+ import {
3
+ Kind
4
+ } from "graphql";
5
+ const schema = {
6
+ type: "array",
7
+ maxItems: 1,
8
+ items: {
9
+ type: "object",
10
+ additionalProperties: !1,
11
+ properties: {
12
+ checkInputType: {
13
+ type: "boolean",
14
+ default: !1,
15
+ description: "Check that the input type name follows the convention \\<mutationName>Input"
16
+ },
17
+ caseSensitiveInputType: {
18
+ type: "boolean",
19
+ default: !0,
20
+ description: "Allow for case discrepancies in the input type name"
21
+ },
22
+ checkQueries: {
23
+ type: "boolean",
24
+ default: !1,
25
+ description: "Apply the rule to Queries"
26
+ },
27
+ checkMutations: {
28
+ type: "boolean",
29
+ default: !0,
30
+ description: "Apply the rule to Mutations"
31
+ }
32
+ }
33
+ }
34
+ }, isObjectType = (node) => (
35
+ // TODO: remove `as any` when drop support of graphql@15
36
+ [Kind.OBJECT_TYPE_DEFINITION, Kind.OBJECT_TYPE_EXTENSION].includes(node.type)
37
+ ), isQueryType = (node) => isObjectType(node) && node.name.value === "Query", isMutationType = (node) => isObjectType(node) && node.name.value === "Mutation", rule = {
38
+ meta: {
39
+ type: "suggestion",
40
+ hasSuggestions: !0,
41
+ docs: {
42
+ description: `Require mutation argument to be always called "input" and input type to be called Mutation name + "Input".
43
+ Using the same name for all input parameters will make your schemas easier to consume and more predictable. Using the same name as mutation for InputType will make it easier to find mutations that InputType belongs to.`,
44
+ category: "Schema",
45
+ url: "https://the-guild.dev/graphql/eslint/rules/input-name",
46
+ examples: [
47
+ {
48
+ title: "Incorrect",
49
+ usage: [{ checkInputType: !0 }],
50
+ code: (
51
+ /* GraphQL */
52
+ `
53
+ type Mutation {
54
+ SetMessage(message: InputMessage): String
55
+ }
56
+ `
57
+ )
58
+ },
59
+ {
60
+ title: "Correct (with `checkInputType`)",
61
+ usage: [{ checkInputType: !0 }],
62
+ code: (
63
+ /* GraphQL */
64
+ `
65
+ type Mutation {
66
+ SetMessage(input: SetMessageInput): String
67
+ }
68
+ `
69
+ )
70
+ },
71
+ {
72
+ title: "Correct (without `checkInputType`)",
73
+ usage: [{ checkInputType: !1 }],
74
+ code: (
75
+ /* GraphQL */
76
+ `
77
+ type Mutation {
78
+ SetMessage(input: AnyInputTypeName): String
79
+ }
80
+ `
81
+ )
82
+ }
83
+ ]
84
+ },
85
+ schema
86
+ },
87
+ create(context) {
88
+ const options = {
89
+ checkInputType: !1,
90
+ caseSensitiveInputType: !0,
91
+ checkMutations: !0,
92
+ ...context.options[0]
93
+ }, shouldCheckType = (node) => options.checkMutations && isMutationType(node) || options.checkQueries && isQueryType(node) || !1, listeners = {
94
+ "FieldDefinition > InputValueDefinition[name.value!=input] > Name"(node) {
95
+ const fieldDef = node.parent.parent;
96
+ if (shouldCheckType(fieldDef.parent)) {
97
+ const inputName = node.value;
98
+ context.report({
99
+ node,
100
+ message: `Input "${inputName}" should be named "input" for "${fieldDef.parent.name.value}.${fieldDef.name.value}"`,
101
+ suggest: [
102
+ {
103
+ desc: "Rename to `input`",
104
+ fix: (fixer) => fixer.replaceText(node, "input")
105
+ }
106
+ ]
107
+ });
108
+ }
109
+ }
110
+ };
111
+ return options.checkInputType && (listeners["FieldDefinition > InputValueDefinition NamedType"] = (node) => {
112
+ const inputValueNode = ((item) => {
113
+ let currentNode = item;
114
+ for (; currentNode.type !== Kind.INPUT_VALUE_DEFINITION; )
115
+ currentNode = currentNode.parent;
116
+ return currentNode;
117
+ })(node);
118
+ if (shouldCheckType(inputValueNode.parent.parent)) {
119
+ const mutationName = `${inputValueNode.parent.name.value}Input`, name = node.name.value;
120
+ (options.caseSensitiveInputType && node.name.value !== mutationName || name.toLowerCase() !== mutationName.toLowerCase()) && context.report({
121
+ node: node.name,
122
+ message: `Input type \`${name}\` name should be \`${mutationName}\`.`,
123
+ suggest: [
124
+ {
125
+ desc: `Rename to \`${mutationName}\``,
126
+ fix: (fixer) => fixer.replaceText(node, mutationName)
127
+ }
128
+ ]
129
+ });
130
+ }
131
+ }), listeners;
132
+ }
133
+ };
134
+ export {
135
+ rule
136
+ };
@@ -0,0 +1,35 @@
1
+ import { OperationTypeNode } from 'graphql';
2
+ import { FromSchema } from 'json-schema-to-ts';
3
+ import { GraphQLESLintRule } from '../types.mjs';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import '../siblings.mjs';
7
+ import '@graphql-tools/utils';
8
+ import '../estree-converter/types.mjs';
9
+ import 'graphql-config';
10
+
11
+ declare const schema: {
12
+ readonly type: "array";
13
+ readonly maxItems: 1;
14
+ readonly items: {
15
+ readonly type: "object";
16
+ readonly minProperties: 1;
17
+ readonly additionalProperties: false;
18
+ readonly properties: {
19
+ readonly ignore: {
20
+ readonly maxItems: 3;
21
+ readonly items: {
22
+ readonly enum: readonly ["fragment", ...OperationTypeNode[]];
23
+ };
24
+ readonly description: "Allow certain definitions to be placed alongside others.";
25
+ readonly type: "array";
26
+ readonly uniqueItems: true;
27
+ readonly minItems: 1;
28
+ };
29
+ };
30
+ };
31
+ };
32
+ type RuleOptions = FromSchema<typeof schema>;
33
+ declare const rule: GraphQLESLintRule<RuleOptions>;
34
+
35
+ export { RuleOptions, rule };
@@ -0,0 +1,86 @@
1
+ import "../chunk-U3TKCM4X.js";
2
+ import { OperationTypeNode } from "graphql";
3
+ import { ARRAY_DEFAULT_OPTIONS, getLocation, pascalCase } from "../utils.js";
4
+ const RULE_ID = "lone-executable-definition", definitionTypes = ["fragment", ...Object.values(OperationTypeNode)], schema = {
5
+ type: "array",
6
+ maxItems: 1,
7
+ items: {
8
+ type: "object",
9
+ minProperties: 1,
10
+ additionalProperties: !1,
11
+ properties: {
12
+ ignore: {
13
+ ...ARRAY_DEFAULT_OPTIONS,
14
+ maxItems: 3,
15
+ // ignore all 4 types is redundant
16
+ items: {
17
+ enum: definitionTypes
18
+ },
19
+ description: "Allow certain definitions to be placed alongside others."
20
+ }
21
+ }
22
+ }
23
+ }, rule = {
24
+ meta: {
25
+ type: "suggestion",
26
+ docs: {
27
+ category: "Operations",
28
+ description: "Require queries, mutations, subscriptions or fragments to be located in separate files.",
29
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
30
+ examples: [
31
+ {
32
+ title: "Incorrect",
33
+ code: (
34
+ /* GraphQL */
35
+ `
36
+ query Foo {
37
+ id
38
+ }
39
+ fragment Bar on Baz {
40
+ id
41
+ }
42
+ `
43
+ )
44
+ },
45
+ {
46
+ title: "Correct",
47
+ code: (
48
+ /* GraphQL */
49
+ `
50
+ query Foo {
51
+ id
52
+ }
53
+ `
54
+ )
55
+ }
56
+ ]
57
+ },
58
+ messages: {
59
+ [RULE_ID]: "{{name}} should be in a separate file."
60
+ },
61
+ schema
62
+ },
63
+ create(context) {
64
+ const ignore = new Set(context.options[0]?.ignore || []), definitions = [];
65
+ return {
66
+ ":matches(OperationDefinition, FragmentDefinition)"(node) {
67
+ const type = "operation" in node ? node.operation : "fragment";
68
+ ignore.has(type) || definitions.push({ type, node });
69
+ },
70
+ "Document:exit"() {
71
+ for (const { node, type } of definitions.slice(1)) {
72
+ let name = pascalCase(type);
73
+ const definitionName = node.name?.value;
74
+ definitionName && (name += ` "${definitionName}"`), context.report({
75
+ loc: node.name?.loc || getLocation(node.loc.start, type),
76
+ messageId: RULE_ID,
77
+ data: { name }
78
+ });
79
+ }
80
+ }
81
+ };
82
+ }
83
+ };
84
+ export {
85
+ rule
86
+ };
@@ -0,0 +1,81 @@
1
+ import { FromSchema } from 'json-schema-to-ts';
2
+ import { GraphQLESLintRule } from '../types.mjs';
3
+ import { CaseStyle as CaseStyle$1 } from '../utils.mjs';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import 'graphql';
7
+ import '../siblings.mjs';
8
+ import '@graphql-tools/utils';
9
+ import '../estree-converter/types.mjs';
10
+ import 'graphql-config';
11
+
12
+ type CaseStyle = CaseStyle$1 | 'matchDocumentStyle';
13
+ declare const schema: {
14
+ readonly definitions: {
15
+ readonly asString: {
16
+ readonly enum: CaseStyle[];
17
+ readonly description: `One of: ${string}`;
18
+ };
19
+ readonly asObject: {
20
+ readonly type: "object";
21
+ readonly additionalProperties: false;
22
+ readonly minProperties: 1;
23
+ readonly properties: {
24
+ readonly style: {
25
+ readonly enum: CaseStyle[];
26
+ };
27
+ readonly suffix: {
28
+ readonly type: "string";
29
+ };
30
+ readonly prefix: {
31
+ readonly type: "string";
32
+ };
33
+ };
34
+ };
35
+ };
36
+ readonly type: "array";
37
+ readonly minItems: 1;
38
+ readonly maxItems: 1;
39
+ readonly items: {
40
+ readonly type: "object";
41
+ readonly additionalProperties: false;
42
+ readonly minProperties: 1;
43
+ readonly properties: {
44
+ readonly fileExtension: {
45
+ readonly enum: readonly [".gql", ".graphql"];
46
+ };
47
+ readonly query: {
48
+ readonly oneOf: readonly [{
49
+ readonly $ref: "#/definitions/asString";
50
+ }, {
51
+ readonly $ref: "#/definitions/asObject";
52
+ }];
53
+ };
54
+ readonly mutation: {
55
+ readonly oneOf: readonly [{
56
+ readonly $ref: "#/definitions/asString";
57
+ }, {
58
+ readonly $ref: "#/definitions/asObject";
59
+ }];
60
+ };
61
+ readonly subscription: {
62
+ readonly oneOf: readonly [{
63
+ readonly $ref: "#/definitions/asString";
64
+ }, {
65
+ readonly $ref: "#/definitions/asObject";
66
+ }];
67
+ };
68
+ readonly fragment: {
69
+ readonly oneOf: readonly [{
70
+ readonly $ref: "#/definitions/asString";
71
+ }, {
72
+ readonly $ref: "#/definitions/asObject";
73
+ }];
74
+ };
75
+ };
76
+ };
77
+ };
78
+ type RuleOptions = FromSchema<typeof schema>;
79
+ declare const rule: GraphQLESLintRule<RuleOptions>;
80
+
81
+ export { RuleOptions, rule };