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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/{typings → cjs}/cache.d.ts +3 -1
  2. package/cjs/cache.js +57 -26
  3. package/{typings → cjs}/configs/index.d.ts +3 -1
  4. package/cjs/configs/index.js +47 -14
  5. package/{typings → cjs}/configs/operations-all.d.ts +2 -1
  6. package/cjs/configs/operations-all.js +47 -30
  7. package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
  8. package/cjs/configs/operations-recommended.js +72 -55
  9. package/{typings → cjs}/configs/relay.d.ts +2 -1
  10. package/cjs/configs/relay.js +31 -11
  11. package/{typings → cjs}/configs/schema-all.d.ts +2 -1
  12. package/cjs/configs/schema-all.js +41 -24
  13. package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
  14. package/cjs/configs/schema-recommended.js +68 -51
  15. package/{typings → cjs}/documents.d.ts +4 -1
  16. package/cjs/documents.js +74 -43
  17. package/cjs/estree-converter/converter.d.ts +8 -0
  18. package/cjs/estree-converter/converter.js +80 -59
  19. package/cjs/estree-converter/index.d.ts +8 -0
  20. package/cjs/estree-converter/index.js +25 -5
  21. package/{typings → cjs}/estree-converter/types.d.ts +7 -5
  22. package/cjs/estree-converter/types.js +16 -0
  23. package/cjs/estree-converter/utils.d.ts +18 -0
  24. package/cjs/estree-converter/utils.js +119 -95
  25. package/{typings → cjs}/flat-configs.d.ts +12 -1
  26. package/cjs/flat-configs.js +56 -32
  27. package/cjs/graphql-config.d.ts +13 -0
  28. package/cjs/graphql-config.js +78 -47
  29. package/cjs/index.d.ts +22 -0
  30. package/cjs/index.js +50 -18
  31. package/cjs/parser.d.ts +12 -0
  32. package/cjs/parser.js +96 -76
  33. package/cjs/processor.d.ts +9 -0
  34. package/cjs/processor.js +119 -88
  35. package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
  36. package/cjs/rules/alphabetize.js +337 -295
  37. package/{typings → cjs}/rules/description-style.d.ts +12 -4
  38. package/cjs/rules/description-style.js +96 -66
  39. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  40. package/cjs/rules/graphql-js-validation.js +595 -433
  41. package/cjs/rules/index.d.ts +125 -0
  42. package/cjs/rules/index.js +97 -76
  43. package/{typings → cjs}/rules/input-name.d.ts +12 -4
  44. package/cjs/rules/input-name.js +153 -123
  45. package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
  46. package/cjs/rules/lone-executable-definition.js +101 -72
  47. package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
  48. package/cjs/rules/match-document-filename.js +229 -182
  49. package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
  50. package/cjs/rules/naming-convention.js +380 -316
  51. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  52. package/cjs/rules/no-anonymous-operations.js +88 -57
  53. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  54. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
  55. package/cjs/rules/no-deprecated.d.ts +12 -0
  56. package/cjs/rules/no-deprecated.js +106 -75
  57. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  58. package/cjs/rules/no-duplicate-fields.js +116 -82
  59. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  60. package/cjs/rules/no-hashtag-description.js +119 -82
  61. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  62. package/cjs/rules/no-one-place-fragments.js +88 -58
  63. package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
  64. package/cjs/rules/no-root-type.js +101 -74
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
  67. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  68. package/cjs/rules/no-typename-prefix.js +88 -55
  69. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  70. package/cjs/rules/no-unreachable-types.js +169 -134
  71. package/cjs/rules/no-unused-fields.d.ts +12 -0
  72. package/cjs/rules/no-unused-fields.js +117 -92
  73. package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
  74. package/cjs/rules/relay-arguments.js +136 -110
  75. package/cjs/rules/relay-connection-types.d.ts +13 -0
  76. package/cjs/rules/relay-connection-types.js +123 -94
  77. package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
  78. package/cjs/rules/relay-edge-types.js +196 -179
  79. package/cjs/rules/relay-page-info.d.ts +12 -0
  80. package/cjs/rules/relay-page-info.js +108 -89
  81. package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
  82. package/cjs/rules/require-deprecation-date.js +143 -112
  83. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  84. package/cjs/rules/require-deprecation-reason.js +80 -46
  85. package/{typings → cjs}/rules/require-description.d.ts +13 -5
  86. package/cjs/rules/require-description.js +170 -132
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +81 -51
  89. package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
  90. package/cjs/rules/require-id-when-available.js +196 -173
  91. package/cjs/rules/require-import-fragment.d.ts +12 -0
  92. package/cjs/rules/require-import-fragment.js +138 -88
  93. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  94. package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
  95. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  96. package/cjs/rules/require-nullable-result-in-root.js +97 -68
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
  99. package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
  100. package/cjs/rules/selection-set-depth.js +147 -107
  101. package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
  102. package/cjs/rules/strict-id-in-types.js +143 -122
  103. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  104. package/cjs/rules/unique-fragment-name.js +88 -62
  105. package/cjs/rules/unique-operation-name.d.ts +12 -0
  106. package/cjs/rules/unique-operation-name.js +65 -35
  107. package/cjs/schema.d.ts +12 -0
  108. package/cjs/schema.js +62 -30
  109. package/cjs/siblings.d.ts +8 -0
  110. package/cjs/siblings.js +124 -106
  111. package/cjs/testkit.d.ts +8 -0
  112. package/cjs/testkit.js +165 -144
  113. package/cjs/types-e3367e3c.d.ts +129 -0
  114. package/cjs/types.d.ts +8 -0
  115. package/cjs/types.js +16 -0
  116. package/cjs/utils.d.ts +44 -0
  117. package/cjs/utils.js +181 -124
  118. package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
  119. package/esm/cache.js +25 -23
  120. package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
  121. package/esm/configs/index.js +14 -11
  122. package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
  123. package/esm/configs/operations-all.js +28 -28
  124. package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
  125. package/esm/configs/operations-recommended.js +53 -53
  126. package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
  127. package/esm/configs/relay.js +12 -9
  128. package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
  129. package/esm/configs/schema-all.js +22 -22
  130. package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
  131. package/esm/configs/schema-recommended.js +49 -49
  132. package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
  133. package/esm/documents.js +41 -39
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +63 -57
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -3
  138. package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
  139. package/esm/estree-converter/utils.d.mts +18 -0
  140. package/esm/estree-converter/utils.js +102 -93
  141. package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
  142. package/esm/flat-configs.js +33 -30
  143. package/esm/graphql-config.d.mts +13 -0
  144. package/esm/graphql-config.js +49 -44
  145. package/esm/index.d.mts +22 -0
  146. package/esm/index.js +18 -9
  147. package/esm/package.json +1 -1
  148. package/esm/parser.d.mts +12 -0
  149. package/esm/parser.js +64 -73
  150. package/esm/processor.d.mts +9 -0
  151. package/esm/processor.js +98 -86
  152. package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
  153. package/esm/rules/alphabetize.js +304 -290
  154. package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
  155. package/esm/rules/description-style.js +73 -64
  156. package/esm/rules/graphql-js-validation.d.mts +12 -0
  157. package/esm/rules/graphql-js-validation.js +580 -429
  158. package/esm/rules/index.d.mts +125 -0
  159. package/esm/rules/index.js +74 -74
  160. package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
  161. package/esm/rules/input-name.js +132 -121
  162. package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
  163. package/esm/rules/lone-executable-definition.js +78 -70
  164. package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
  165. package/esm/rules/match-document-filename.js +210 -180
  166. package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
  167. package/esm/rules/naming-convention.js +363 -314
  168. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  169. package/esm/rules/no-anonymous-operations.js +65 -55
  170. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  171. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
  172. package/esm/rules/no-deprecated.d.mts +12 -0
  173. package/esm/rules/no-deprecated.js +83 -73
  174. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  175. package/esm/rules/no-duplicate-fields.js +93 -80
  176. package/esm/rules/no-hashtag-description.d.mts +13 -0
  177. package/esm/rules/no-hashtag-description.js +95 -80
  178. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  179. package/esm/rules/no-one-place-fragments.js +65 -56
  180. package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
  181. package/esm/rules/no-root-type.js +78 -72
  182. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  183. package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
  184. package/esm/rules/no-typename-prefix.d.mts +12 -0
  185. package/esm/rules/no-typename-prefix.js +65 -53
  186. package/esm/rules/no-unreachable-types.d.mts +12 -0
  187. package/esm/rules/no-unreachable-types.js +141 -131
  188. package/esm/rules/no-unused-fields.d.mts +12 -0
  189. package/esm/rules/no-unused-fields.js +94 -90
  190. package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
  191. package/esm/rules/relay-arguments.js +113 -108
  192. package/esm/rules/relay-connection-types.d.mts +13 -0
  193. package/esm/rules/relay-connection-types.js +98 -91
  194. package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
  195. package/esm/rules/relay-edge-types.js +178 -177
  196. package/esm/rules/relay-page-info.d.mts +12 -0
  197. package/esm/rules/relay-page-info.js +84 -86
  198. package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
  199. package/esm/rules/require-deprecation-date.js +120 -110
  200. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  201. package/esm/rules/require-deprecation-reason.js +57 -44
  202. package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
  203. package/esm/rules/require-description.js +151 -130
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  205. package/esm/rules/require-field-of-type-query-in-mutation-result.js +58 -49
  206. package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
  207. package/esm/rules/require-id-when-available.js +186 -171
  208. package/esm/rules/require-import-fragment.d.mts +12 -0
  209. package/esm/rules/require-import-fragment.js +105 -85
  210. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  211. package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
  212. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  213. package/esm/rules/require-nullable-result-in-root.js +74 -66
  214. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  215. package/esm/rules/require-type-pattern-with-oneof.js +47 -40
  216. package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
  217. package/esm/rules/selection-set-depth.js +114 -104
  218. package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
  219. package/esm/rules/strict-id-in-types.js +125 -119
  220. package/esm/rules/unique-fragment-name.d.mts +13 -0
  221. package/esm/rules/unique-fragment-name.js +65 -60
  222. package/esm/rules/unique-operation-name.d.mts +12 -0
  223. package/esm/rules/unique-operation-name.js +42 -33
  224. package/esm/schema.d.mts +12 -0
  225. package/esm/schema.js +29 -26
  226. package/esm/siblings.d.mts +8 -0
  227. package/esm/siblings.js +105 -104
  228. package/esm/testkit.d.mts +8 -0
  229. package/esm/testkit.js +132 -141
  230. package/esm/types-2e1afd7c.d.ts +129 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/utils.d.mts +44 -0
  233. package/esm/utils.js +138 -116
  234. package/package.json +40 -30
  235. package/typings/estree-converter/converter.d.cts +0 -3
  236. package/typings/estree-converter/converter.d.ts +0 -3
  237. package/typings/estree-converter/index.d.cts +0 -3
  238. package/typings/estree-converter/index.d.ts +0 -3
  239. package/typings/estree-converter/utils.d.cts +0 -13
  240. package/typings/estree-converter/utils.d.ts +0 -13
  241. package/typings/graphql-config.d.cts +0 -4
  242. package/typings/graphql-config.d.ts +0 -4
  243. package/typings/index.d.cts +0 -10
  244. package/typings/index.d.ts +0 -10
  245. package/typings/parser.d.cts +0 -2
  246. package/typings/parser.d.ts +0 -2
  247. package/typings/processor.d.cts +0 -6
  248. package/typings/processor.d.ts +0 -6
  249. package/typings/rules/graphql-js-validation.d.cts +0 -2
  250. package/typings/rules/graphql-js-validation.d.ts +0 -2
  251. package/typings/rules/index.d.cts +0 -111
  252. package/typings/rules/index.d.ts +0 -111
  253. package/typings/rules/no-anonymous-operations.d.cts +0 -2
  254. package/typings/rules/no-anonymous-operations.d.ts +0 -2
  255. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
  256. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
  257. package/typings/rules/no-deprecated.d.cts +0 -2
  258. package/typings/rules/no-deprecated.d.ts +0 -2
  259. package/typings/rules/no-duplicate-fields.d.cts +0 -2
  260. package/typings/rules/no-duplicate-fields.d.ts +0 -2
  261. package/typings/rules/no-hashtag-description.d.cts +0 -3
  262. package/typings/rules/no-hashtag-description.d.ts +0 -3
  263. package/typings/rules/no-one-place-fragments.d.cts +0 -2
  264. package/typings/rules/no-one-place-fragments.d.ts +0 -2
  265. package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
  266. package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
  267. package/typings/rules/no-typename-prefix.d.cts +0 -2
  268. package/typings/rules/no-typename-prefix.d.ts +0 -2
  269. package/typings/rules/no-unreachable-types.d.cts +0 -2
  270. package/typings/rules/no-unreachable-types.d.ts +0 -2
  271. package/typings/rules/no-unused-fields.d.cts +0 -2
  272. package/typings/rules/no-unused-fields.d.ts +0 -2
  273. package/typings/rules/relay-connection-types.d.cts +0 -4
  274. package/typings/rules/relay-connection-types.d.ts +0 -4
  275. package/typings/rules/relay-page-info.d.cts +0 -2
  276. package/typings/rules/relay-page-info.d.ts +0 -2
  277. package/typings/rules/require-deprecation-reason.d.cts +0 -2
  278. package/typings/rules/require-deprecation-reason.d.ts +0 -2
  279. package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
  280. package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
  281. package/typings/rules/require-import-fragment.d.cts +0 -2
  282. package/typings/rules/require-import-fragment.d.ts +0 -2
  283. package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
  284. package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
  285. package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
  286. package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
  287. package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
  288. package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
  289. package/typings/rules/unique-fragment-name.d.cts +0 -5
  290. package/typings/rules/unique-fragment-name.d.ts +0 -5
  291. package/typings/rules/unique-operation-name.d.cts +0 -2
  292. package/typings/rules/unique-operation-name.d.ts +0 -2
  293. package/typings/schema.d.cts +0 -3
  294. package/typings/schema.d.ts +0 -3
  295. package/typings/siblings.d.cts +0 -22
  296. package/typings/siblings.d.ts +0 -22
  297. package/typings/testkit.d.cts +0 -29
  298. package/typings/testkit.d.ts +0 -29
  299. package/typings/types.d.cts +0 -83
  300. package/typings/types.d.ts +0 -83
  301. package/typings/utils.d.cts +0 -40
  302. package/typings/utils.d.ts +0 -40
@@ -1,66 +1,94 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = exports.RULE_ID = void 0;
4
- const utils_1 = require("@graphql-tools/utils");
5
- const graphql_1 = require("graphql");
6
- const utils_js_1 = require("../utils.js");
7
- exports.RULE_ID = 'require-description';
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var require_description_exports = {};
20
+ __export(require_description_exports, {
21
+ RULE_ID: () => RULE_ID,
22
+ rule: () => rule
23
+ });
24
+ module.exports = __toCommonJS(require_description_exports);
25
+ var import_utils = require("@graphql-tools/utils");
26
+ var import_graphql = require("graphql");
27
+ var import_utils2 = require("../utils.js");
28
+ const RULE_ID = "require-description";
8
29
  const ALLOWED_KINDS = [
9
- ...utils_js_1.TYPES_KINDS,
10
- graphql_1.Kind.DIRECTIVE_DEFINITION,
11
- graphql_1.Kind.FIELD_DEFINITION,
12
- graphql_1.Kind.INPUT_VALUE_DEFINITION,
13
- graphql_1.Kind.ENUM_VALUE_DEFINITION,
14
- graphql_1.Kind.OPERATION_DEFINITION,
30
+ ...import_utils2.TYPES_KINDS,
31
+ import_graphql.Kind.DIRECTIVE_DEFINITION,
32
+ import_graphql.Kind.FIELD_DEFINITION,
33
+ import_graphql.Kind.INPUT_VALUE_DEFINITION,
34
+ import_graphql.Kind.ENUM_VALUE_DEFINITION,
35
+ import_graphql.Kind.OPERATION_DEFINITION
15
36
  ];
16
37
  const schema = {
17
- type: 'array',
18
- minItems: 1,
19
- maxItems: 1,
20
- items: {
21
- type: 'object',
22
- additionalProperties: false,
23
- minProperties: 1,
24
- properties: {
25
- types: {
26
- type: 'boolean',
27
- description: `Includes:\n${utils_js_1.TYPES_KINDS.map(kind => `- \`${kind}\``).join('\n')}`,
28
- },
29
- rootField: {
30
- type: 'boolean',
31
- description: 'Definitions within `Query`, `Mutation`, and `Subscription` root types.',
32
- },
33
- ...Object.fromEntries([...ALLOWED_KINDS].sort().map(kind => {
34
- let description = `Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#${kind}).`;
35
- if (kind === graphql_1.Kind.OPERATION_DEFINITION) {
36
- description +=
37
- '\n> You must use only comment syntax `#` and not description syntax `"""` or `"`.';
38
- }
39
- return [kind, { type: 'boolean', description }];
40
- })),
41
- },
42
- },
38
+ type: "array",
39
+ minItems: 1,
40
+ maxItems: 1,
41
+ items: {
42
+ type: "object",
43
+ additionalProperties: false,
44
+ minProperties: 1,
45
+ properties: {
46
+ types: {
47
+ type: "boolean",
48
+ description: `Includes:
49
+ ${import_utils2.TYPES_KINDS.map((kind) => `- \`${kind}\``).join("\n")}`
50
+ },
51
+ rootField: {
52
+ type: "boolean",
53
+ description: "Definitions within `Query`, `Mutation`, and `Subscription` root types."
54
+ },
55
+ ...Object.fromEntries(
56
+ [...ALLOWED_KINDS].sort().map((kind) => {
57
+ let description = `Read more about this kind on [spec.graphql.org](https://spec.graphql.org/October2021/#${kind}).`;
58
+ if (kind === import_graphql.Kind.OPERATION_DEFINITION) {
59
+ description += '\n> You must use only comment syntax `#` and not description syntax `"""` or `"`.';
60
+ }
61
+ return [kind, { type: "boolean", description }];
62
+ })
63
+ )
64
+ }
65
+ }
43
66
  };
44
- exports.rule = {
45
- meta: {
46
- docs: {
47
- category: 'Schema',
48
- description: 'Enforce descriptions in type definitions and operations.',
49
- url: `https://the-guild.dev/graphql/eslint/rules/${exports.RULE_ID}`,
50
- examples: [
51
- {
52
- title: 'Incorrect',
53
- usage: [{ types: true, FieldDefinition: true }],
54
- code: /* GraphQL */ `
67
+ const rule = {
68
+ meta: {
69
+ docs: {
70
+ category: "Schema",
71
+ description: "Enforce descriptions in type definitions and operations.",
72
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
73
+ examples: [
74
+ {
75
+ title: "Incorrect",
76
+ usage: [{ types: true, FieldDefinition: true }],
77
+ code: (
78
+ /* GraphQL */
79
+ `
55
80
  type someTypeName {
56
81
  name: String
57
82
  }
58
- `,
59
- },
60
- {
61
- title: 'Correct',
62
- usage: [{ types: true, FieldDefinition: true }],
63
- code: /* GraphQL */ `
83
+ `
84
+ )
85
+ },
86
+ {
87
+ title: "Correct",
88
+ usage: [{ types: true, FieldDefinition: true }],
89
+ code: (
90
+ /* GraphQL */
91
+ `
64
92
  """
65
93
  Some type description
66
94
  """
@@ -70,22 +98,28 @@ exports.rule = {
70
98
  """
71
99
  name: String
72
100
  }
73
- `,
74
- },
75
- {
76
- title: 'Correct',
77
- usage: [{ OperationDefinition: true }],
78
- code: /* GraphQL */ `
101
+ `
102
+ )
103
+ },
104
+ {
105
+ title: "Correct",
106
+ usage: [{ OperationDefinition: true }],
107
+ code: (
108
+ /* GraphQL */
109
+ `
79
110
  # Create a new user
80
111
  mutation createUser {
81
112
  # ...
82
113
  }
83
- `,
84
- },
85
- {
86
- title: 'Correct',
87
- usage: [{ rootField: true }],
88
- code: /* GraphQL */ `
114
+ `
115
+ )
116
+ },
117
+ {
118
+ title: "Correct",
119
+ usage: [{ rootField: true }],
120
+ code: (
121
+ /* GraphQL */
122
+ `
89
123
  type Mutation {
90
124
  "Create a new user"
91
125
  createUser: User
@@ -94,73 +128,77 @@ exports.rule = {
94
128
  type User {
95
129
  name: String
96
130
  }
97
- `,
98
- },
99
- ],
100
- configOptions: [
101
- {
102
- types: true,
103
- [graphql_1.Kind.DIRECTIVE_DEFINITION]: true,
104
- // rootField: true TODO enable in graphql-eslint v4
105
- },
106
- ],
107
- recommended: true,
108
- },
109
- type: 'suggestion',
110
- messages: {
111
- [exports.RULE_ID]: 'Description is required for {{ nodeName }}',
112
- },
113
- schema,
131
+ `
132
+ )
133
+ }
134
+ ],
135
+ configOptions: [
136
+ {
137
+ types: true,
138
+ [import_graphql.Kind.DIRECTIVE_DEFINITION]: true
139
+ // rootField: true TODO enable in graphql-eslint v4
140
+ }
141
+ ],
142
+ recommended: true
114
143
  },
115
- create(context) {
116
- const { types, rootField, ...restOptions } = context.options[0] || {};
117
- const kinds = new Set(types ? utils_js_1.TYPES_KINDS : []);
118
- for (const [kind, isEnabled] of Object.entries(restOptions)) {
119
- if (isEnabled) {
120
- kinds.add(kind);
121
- }
122
- else {
123
- kinds.delete(kind);
144
+ type: "suggestion",
145
+ messages: {
146
+ [RULE_ID]: "Description is required for {{ nodeName }}"
147
+ },
148
+ schema
149
+ },
150
+ create(context) {
151
+ const { types, rootField, ...restOptions } = context.options[0] || {};
152
+ const kinds = new Set(types ? import_utils2.TYPES_KINDS : []);
153
+ for (const [kind, isEnabled] of Object.entries(restOptions)) {
154
+ if (isEnabled) {
155
+ kinds.add(kind);
156
+ } else {
157
+ kinds.delete(kind);
158
+ }
159
+ }
160
+ if (rootField) {
161
+ const schema2 = (0, import_utils2.requireGraphQLSchemaFromContext)(RULE_ID, context);
162
+ const rootTypeNames = (0, import_utils.getRootTypeNames)(schema2);
163
+ kinds.add(
164
+ `:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=/^(${[
165
+ ...rootTypeNames
166
+ ].join(",")})$/] > FieldDefinition`
167
+ );
168
+ }
169
+ const selector = [...kinds].join(",");
170
+ return {
171
+ [selector](node) {
172
+ let description = "";
173
+ const isOperation = node.kind === import_graphql.Kind.OPERATION_DEFINITION;
174
+ if (isOperation) {
175
+ const rawNode = node.rawNode();
176
+ const { prev, line } = rawNode.loc.startToken;
177
+ if (prev?.kind === import_graphql.TokenKind.COMMENT) {
178
+ const value = prev.value.trim();
179
+ const linesBefore = line - prev.line;
180
+ if (!value.startsWith("eslint") && linesBefore === 1) {
181
+ description = value;
124
182
  }
183
+ }
184
+ } else {
185
+ description = node.description?.value.trim() || "";
125
186
  }
126
- if (rootField) {
127
- const schema = (0, utils_js_1.requireGraphQLSchemaFromContext)(exports.RULE_ID, context);
128
- const rootTypeNames = (0, utils_1.getRootTypeNames)(schema);
129
- kinds.add(`:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=/^(${[
130
- ...rootTypeNames,
131
- ].join(',')})$/] > FieldDefinition`);
187
+ if (description.length === 0) {
188
+ context.report({
189
+ loc: isOperation ? (0, import_utils2.getLocation)(node.loc.start, node.operation) : node.name.loc,
190
+ messageId: RULE_ID,
191
+ data: {
192
+ nodeName: (0, import_utils2.getNodeName)(node)
193
+ }
194
+ });
132
195
  }
133
- const selector = [...kinds].join(',');
134
- return {
135
- [selector](node) {
136
- var _a;
137
- let description = '';
138
- const isOperation = node.kind === graphql_1.Kind.OPERATION_DEFINITION;
139
- if (isOperation) {
140
- const rawNode = node.rawNode();
141
- const { prev, line } = rawNode.loc.startToken;
142
- if ((prev === null || prev === void 0 ? void 0 : prev.kind) === graphql_1.TokenKind.COMMENT) {
143
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- TODO: remove `!` when drop support of graphql@15
144
- const value = prev.value.trim();
145
- const linesBefore = line - prev.line;
146
- if (!value.startsWith('eslint') && linesBefore === 1) {
147
- description = value;
148
- }
149
- }
150
- }
151
- else {
152
- description = ((_a = node.description) === null || _a === void 0 ? void 0 : _a.value.trim()) || '';
153
- }
154
- if (description.length === 0) {
155
- context.report({
156
- loc: isOperation ? (0, utils_js_1.getLocation)(node.loc.start, node.operation) : node.name.loc,
157
- messageId: exports.RULE_ID,
158
- data: {
159
- nodeName: (0, utils_js_1.getNodeName)(node),
160
- },
161
- });
162
- }
163
- },
164
- };
165
- },
196
+ }
197
+ };
198
+ }
166
199
  };
200
+ // Annotate the CommonJS export names for ESM import in node:
201
+ 0 && (module.exports = {
202
+ RULE_ID,
203
+ rule
204
+ });
@@ -0,0 +1,12 @@
1
+ import { i as GraphQLESLintRule } from '../types-e3367e3c.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.js';
9
+
10
+ declare const rule: GraphQLESLintRule;
11
+
12
+ export { rule };
@@ -1,31 +1,56 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const graphql_1 = require("graphql");
5
- const utils_js_1 = require("../utils.js");
6
- const RULE_ID = 'require-field-of-type-query-in-mutation-result';
7
- exports.rule = {
8
- meta: {
9
- type: 'suggestion',
10
- docs: {
11
- category: 'Schema',
12
- description: 'Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application.\n> Currently, no errors are reported for result type `union`, `interface` and `scalar`.',
13
- url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
14
- requiresSchema: true,
15
- examples: [
16
- {
17
- title: 'Incorrect',
18
- code: /* GraphQL */ `
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var require_field_of_type_query_in_mutation_result_exports = {};
20
+ __export(require_field_of_type_query_in_mutation_result_exports, {
21
+ rule: () => rule
22
+ });
23
+ module.exports = __toCommonJS(require_field_of_type_query_in_mutation_result_exports);
24
+ var import_graphql = require("graphql");
25
+ var import_utils = require("../utils.js");
26
+ const RULE_ID = "require-field-of-type-query-in-mutation-result";
27
+ const rule = {
28
+ meta: {
29
+ type: "suggestion",
30
+ docs: {
31
+ category: "Schema",
32
+ description: "Allow the client in one round-trip not only to call mutation but also to get a wagon of data to update their application.\n> Currently, no errors are reported for result type `union`, `interface` and `scalar`.",
33
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
34
+ requiresSchema: true,
35
+ examples: [
36
+ {
37
+ title: "Incorrect",
38
+ code: (
39
+ /* GraphQL */
40
+ `
19
41
  type User { ... }
20
42
 
21
43
  type Mutation {
22
44
  createUser: User!
23
45
  }
24
- `,
25
- },
26
- {
27
- title: 'Correct',
28
- code: /* GraphQL */ `
46
+ `
47
+ )
48
+ },
49
+ {
50
+ title: "Correct",
51
+ code: (
52
+ /* GraphQL */
53
+ `
29
54
  type User { ... }
30
55
 
31
56
  type Query { ... }
@@ -38,35 +63,40 @@ exports.rule = {
38
63
  type Mutation {
39
64
  createUser: CreateUserPayload!
40
65
  }
41
- `,
42
- },
43
- ],
44
- },
45
- schema: [],
46
- },
47
- create(context) {
48
- const schema = (0, utils_js_1.requireGraphQLSchemaFromContext)(RULE_ID, context);
49
- const mutationType = schema.getMutationType();
50
- const queryType = schema.getQueryType();
51
- if (!mutationType || !queryType) {
52
- return {};
66
+ `
67
+ )
53
68
  }
54
- const selector = `:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=${mutationType.name}] > FieldDefinition > .gqlType Name`;
55
- return {
56
- [selector](node) {
57
- const typeName = node.value;
58
- const graphQLType = schema.getType(typeName);
59
- if ((0, graphql_1.isObjectType)(graphQLType)) {
60
- const { fields } = graphQLType.astNode;
61
- const hasQueryType = fields === null || fields === void 0 ? void 0 : fields.some(field => (0, utils_js_1.getTypeName)(field) === queryType.name);
62
- if (!hasQueryType) {
63
- context.report({
64
- node,
65
- message: `Mutation result type "${graphQLType.name}" must contain field of type "${queryType.name}"`,
66
- });
67
- }
68
- }
69
- },
70
- };
69
+ ]
71
70
  },
71
+ schema: []
72
+ },
73
+ create(context) {
74
+ const schema = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
75
+ const mutationType = schema.getMutationType();
76
+ const queryType = schema.getQueryType();
77
+ if (!mutationType || !queryType) {
78
+ return {};
79
+ }
80
+ const selector = `:matches(ObjectTypeDefinition, ObjectTypeExtension)[name.value=${mutationType.name}] > FieldDefinition > .gqlType Name`;
81
+ return {
82
+ [selector](node) {
83
+ const typeName = node.value;
84
+ const graphQLType = schema.getType(typeName);
85
+ if ((0, import_graphql.isObjectType)(graphQLType)) {
86
+ const { fields } = graphQLType.astNode;
87
+ const hasQueryType = fields?.some((field) => (0, import_utils.getTypeName)(field) === queryType.name);
88
+ if (!hasQueryType) {
89
+ context.report({
90
+ node,
91
+ message: `Mutation result type "${graphQLType.name}" must contain field of type "${queryType.name}"`
92
+ });
93
+ }
94
+ }
95
+ }
96
+ };
97
+ }
72
98
  };
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ rule
102
+ });
@@ -1,5 +1,12 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.js';
2
+ import { i as GraphQLESLintRule } from '../types-e3367e3c.js';
3
+ import '@graphql-tools/utils';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import 'graphql';
7
+ import 'graphql-config';
8
+ import '../estree-converter/types.js';
9
+
3
10
  declare const schema: {
4
11
  readonly definitions: {
5
12
  readonly asString: {
@@ -31,6 +38,7 @@ declare const schema: {
31
38
  };
32
39
  };
33
40
  };
34
- export type RuleOptions = FromSchema<typeof schema>;
35
- export declare const rule: GraphQLESLintRule<RuleOptions, true>;
36
- export {};
41
+ type RuleOptions = FromSchema<typeof schema>;
42
+ declare const rule: GraphQLESLintRule<RuleOptions, true>;
43
+
44
+ export { RuleOptions, rule };