@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,110 +1,137 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = void 0;
4
- const tslib_1 = require("tslib");
5
- const graphql_1 = require("graphql");
6
- const lodash_lowercase_1 = tslib_1.__importDefault(require("lodash.lowercase"));
7
- const utils_js_1 = require("../utils.js");
8
- const RULE_ID = 'no-unreachable-types';
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var no_unreachable_types_exports = {};
30
+ __export(no_unreachable_types_exports, {
31
+ rule: () => rule
32
+ });
33
+ module.exports = __toCommonJS(no_unreachable_types_exports);
34
+ var import_graphql = require("graphql");
35
+ var import_lodash = __toESM(require("lodash.lowercase"));
36
+ var import_utils = require("../utils.js");
37
+ const RULE_ID = "no-unreachable-types";
9
38
  const KINDS = [
10
- graphql_1.Kind.DIRECTIVE_DEFINITION,
11
- graphql_1.Kind.OBJECT_TYPE_DEFINITION,
12
- graphql_1.Kind.OBJECT_TYPE_EXTENSION,
13
- graphql_1.Kind.INTERFACE_TYPE_DEFINITION,
14
- graphql_1.Kind.INTERFACE_TYPE_EXTENSION,
15
- graphql_1.Kind.SCALAR_TYPE_DEFINITION,
16
- graphql_1.Kind.SCALAR_TYPE_EXTENSION,
17
- graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION,
18
- graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION,
19
- graphql_1.Kind.UNION_TYPE_DEFINITION,
20
- graphql_1.Kind.UNION_TYPE_EXTENSION,
21
- graphql_1.Kind.ENUM_TYPE_DEFINITION,
22
- graphql_1.Kind.ENUM_TYPE_EXTENSION,
39
+ import_graphql.Kind.DIRECTIVE_DEFINITION,
40
+ import_graphql.Kind.OBJECT_TYPE_DEFINITION,
41
+ import_graphql.Kind.OBJECT_TYPE_EXTENSION,
42
+ import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
43
+ import_graphql.Kind.INTERFACE_TYPE_EXTENSION,
44
+ import_graphql.Kind.SCALAR_TYPE_DEFINITION,
45
+ import_graphql.Kind.SCALAR_TYPE_EXTENSION,
46
+ import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
47
+ import_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION,
48
+ import_graphql.Kind.UNION_TYPE_DEFINITION,
49
+ import_graphql.Kind.UNION_TYPE_EXTENSION,
50
+ import_graphql.Kind.ENUM_TYPE_DEFINITION,
51
+ import_graphql.Kind.ENUM_TYPE_EXTENSION
23
52
  ];
24
53
  let reachableTypesCache;
25
- const RequestDirectiveLocations = new Set([
26
- graphql_1.DirectiveLocation.QUERY,
27
- graphql_1.DirectiveLocation.MUTATION,
28
- graphql_1.DirectiveLocation.SUBSCRIPTION,
29
- graphql_1.DirectiveLocation.FIELD,
30
- graphql_1.DirectiveLocation.FRAGMENT_DEFINITION,
31
- graphql_1.DirectiveLocation.FRAGMENT_SPREAD,
32
- graphql_1.DirectiveLocation.INLINE_FRAGMENT,
33
- graphql_1.DirectiveLocation.VARIABLE_DEFINITION,
54
+ const RequestDirectiveLocations = /* @__PURE__ */ new Set([
55
+ import_graphql.DirectiveLocation.QUERY,
56
+ import_graphql.DirectiveLocation.MUTATION,
57
+ import_graphql.DirectiveLocation.SUBSCRIPTION,
58
+ import_graphql.DirectiveLocation.FIELD,
59
+ import_graphql.DirectiveLocation.FRAGMENT_DEFINITION,
60
+ import_graphql.DirectiveLocation.FRAGMENT_SPREAD,
61
+ import_graphql.DirectiveLocation.INLINE_FRAGMENT,
62
+ import_graphql.DirectiveLocation.VARIABLE_DEFINITION
34
63
  ]);
35
64
  function getReachableTypes(schema) {
36
- // We don't want cache reachableTypes on test environment
37
- // Otherwise reachableTypes will be same for all tests
38
- if (process.env.NODE_ENV !== 'test' && reachableTypesCache) {
39
- return reachableTypesCache;
65
+ if (process.env.NODE_ENV !== "test" && reachableTypesCache) {
66
+ return reachableTypesCache;
67
+ }
68
+ const reachableTypes = /* @__PURE__ */ new Set();
69
+ const collect = (node) => {
70
+ const typeName = (0, import_utils.getTypeName)(node);
71
+ if (reachableTypes.has(typeName)) {
72
+ return;
40
73
  }
41
- const reachableTypes = new Set();
42
- const collect = (node) => {
43
- const typeName = (0, utils_js_1.getTypeName)(node);
44
- if (reachableTypes.has(typeName)) {
45
- return;
46
- }
47
- reachableTypes.add(typeName);
48
- const type = schema.getType(typeName) || schema.getDirective(typeName);
49
- if ((0, graphql_1.isInterfaceType)(type)) {
50
- const { objects, interfaces } = schema.getImplementations(type);
51
- for (const { astNode } of [...objects, ...interfaces]) {
52
- (0, graphql_1.visit)(astNode, visitor);
53
- }
54
- }
55
- else if (type === null || type === void 0 ? void 0 : type.astNode) {
56
- // astNode can be undefined for ID, String, Boolean
57
- (0, graphql_1.visit)(type.astNode, visitor);
58
- }
59
- };
60
- const visitor = {
61
- InterfaceTypeDefinition: collect,
62
- ObjectTypeDefinition: collect,
63
- InputValueDefinition: collect,
64
- UnionTypeDefinition: collect,
65
- FieldDefinition: collect,
66
- Directive: collect,
67
- NamedType: collect,
68
- };
69
- for (const type of [
70
- schema,
71
- schema.getQueryType(),
72
- schema.getMutationType(),
73
- schema.getSubscriptionType(),
74
- ]) {
75
- // if schema don't have Query type, schema.astNode will be undefined
76
- if (type === null || type === void 0 ? void 0 : type.astNode) {
77
- (0, graphql_1.visit)(type.astNode, visitor);
78
- }
74
+ reachableTypes.add(typeName);
75
+ const type = schema.getType(typeName) || schema.getDirective(typeName);
76
+ if ((0, import_graphql.isInterfaceType)(type)) {
77
+ const { objects, interfaces } = schema.getImplementations(type);
78
+ for (const { astNode } of [...objects, ...interfaces]) {
79
+ (0, import_graphql.visit)(astNode, visitor);
80
+ }
81
+ } else if (type?.astNode) {
82
+ (0, import_graphql.visit)(type.astNode, visitor);
79
83
  }
80
- for (const node of schema.getDirectives()) {
81
- if (node.locations.some(location => RequestDirectiveLocations.has(location))) {
82
- reachableTypes.add(node.name);
83
- for (const arg of node.args) {
84
- const argTypeName = 'name' in arg.type && arg.type.name;
85
- if (argTypeName) {
86
- reachableTypes.add(argTypeName);
87
- }
88
- }
84
+ };
85
+ const visitor = {
86
+ InterfaceTypeDefinition: collect,
87
+ ObjectTypeDefinition: collect,
88
+ InputValueDefinition: collect,
89
+ UnionTypeDefinition: collect,
90
+ FieldDefinition: collect,
91
+ Directive: collect,
92
+ NamedType: collect
93
+ };
94
+ for (const type of [
95
+ schema,
96
+ // visiting SchemaDefinition node
97
+ schema.getQueryType(),
98
+ schema.getMutationType(),
99
+ schema.getSubscriptionType()
100
+ ]) {
101
+ if (type?.astNode) {
102
+ (0, import_graphql.visit)(type.astNode, visitor);
103
+ }
104
+ }
105
+ for (const node of schema.getDirectives()) {
106
+ if (node.locations.some((location) => RequestDirectiveLocations.has(location))) {
107
+ reachableTypes.add(node.name);
108
+ for (const arg of node.args) {
109
+ const argTypeName = "name" in arg.type && arg.type.name;
110
+ if (argTypeName) {
111
+ reachableTypes.add(argTypeName);
89
112
  }
113
+ }
90
114
  }
91
- reachableTypesCache = reachableTypes;
92
- return reachableTypesCache;
115
+ }
116
+ reachableTypesCache = reachableTypes;
117
+ return reachableTypesCache;
93
118
  }
94
- exports.rule = {
95
- meta: {
96
- messages: {
97
- [RULE_ID]: '{{ type }} `{{ typeName }}` is unreachable.',
98
- },
99
- docs: {
100
- description: 'Requires all types to be reachable at some level by root level fields.',
101
- category: 'Schema',
102
- url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
103
- requiresSchema: true,
104
- examples: [
105
- {
106
- title: 'Incorrect',
107
- code: /* GraphQL */ `
119
+ const rule = {
120
+ meta: {
121
+ messages: {
122
+ [RULE_ID]: "{{ type }} `{{ typeName }}` is unreachable."
123
+ },
124
+ docs: {
125
+ description: "Requires all types to be reachable at some level by root level fields.",
126
+ category: "Schema",
127
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
128
+ requiresSchema: true,
129
+ examples: [
130
+ {
131
+ title: "Incorrect",
132
+ code: (
133
+ /* GraphQL */
134
+ `
108
135
  type User {
109
136
  id: ID!
110
137
  name: String
@@ -113,11 +140,14 @@ exports.rule = {
113
140
  type Query {
114
141
  me: String
115
142
  }
116
- `,
117
- },
118
- {
119
- title: 'Correct',
120
- code: /* GraphQL */ `
143
+ `
144
+ )
145
+ },
146
+ {
147
+ title: "Correct",
148
+ code: (
149
+ /* GraphQL */
150
+ `
121
151
  type User {
122
152
  id: ID!
123
153
  name: String
@@ -126,39 +156,44 @@ exports.rule = {
126
156
  type Query {
127
157
  me: User
128
158
  }
129
- `,
130
- },
131
- ],
132
- recommended: true,
133
- },
134
- type: 'suggestion',
135
- schema: [],
136
- hasSuggestions: true,
159
+ `
160
+ )
161
+ }
162
+ ],
163
+ recommended: true
137
164
  },
138
- create(context) {
139
- const schema = (0, utils_js_1.requireGraphQLSchemaFromContext)(RULE_ID, context);
140
- const reachableTypes = getReachableTypes(schema);
141
- return {
142
- [`:matches(${KINDS}) > .name`](node) {
143
- const typeName = node.value;
144
- if (!reachableTypes.has(typeName)) {
145
- const type = (0, lodash_lowercase_1.default)(node.parent.kind.replace(/(Extension|Definition)$/, ''));
146
- context.report({
147
- node,
148
- messageId: RULE_ID,
149
- data: {
150
- type: type[0].toUpperCase() + type.slice(1),
151
- typeName,
152
- },
153
- suggest: [
154
- {
155
- desc: `Remove \`${typeName}\``,
156
- fix: fixer => fixer.remove(node.parent),
157
- },
158
- ],
159
- });
160
- }
165
+ type: "suggestion",
166
+ schema: [],
167
+ hasSuggestions: true
168
+ },
169
+ create(context) {
170
+ const schema = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
171
+ const reachableTypes = getReachableTypes(schema);
172
+ return {
173
+ [`:matches(${KINDS}) > .name`](node) {
174
+ const typeName = node.value;
175
+ if (!reachableTypes.has(typeName)) {
176
+ const type = (0, import_lodash.default)(node.parent.kind.replace(/(Extension|Definition)$/, ""));
177
+ context.report({
178
+ node,
179
+ messageId: RULE_ID,
180
+ data: {
181
+ type: type[0].toUpperCase() + type.slice(1),
182
+ typeName
161
183
  },
162
- };
163
- },
184
+ suggest: [
185
+ {
186
+ desc: `Remove \`${typeName}\``,
187
+ fix: (fixer) => fixer.remove(node.parent)
188
+ }
189
+ ]
190
+ });
191
+ }
192
+ }
193
+ };
194
+ }
164
195
  };
196
+ // Annotate the CommonJS export names for ESM import in node:
197
+ 0 && (module.exports = {
198
+ rule
199
+ });
@@ -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,55 +1,73 @@
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 = 'no-unused-fields';
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 no_unused_fields_exports = {};
20
+ __export(no_unused_fields_exports, {
21
+ rule: () => rule
22
+ });
23
+ module.exports = __toCommonJS(no_unused_fields_exports);
24
+ var import_graphql = require("graphql");
25
+ var import_utils = require("../utils.js");
26
+ const RULE_ID = "no-unused-fields";
7
27
  let usedFieldsCache;
8
28
  function getUsedFields(schema, operations) {
9
- // We don't want cache usedFields on test environment
10
- // Otherwise usedFields will be same for all tests
11
- if (process.env.NODE_ENV !== 'test' && usedFieldsCache) {
12
- return usedFieldsCache;
13
- }
14
- const usedFields = Object.create(null);
15
- const typeInfo = new graphql_1.TypeInfo(schema);
16
- const visitor = (0, graphql_1.visitWithTypeInfo)(typeInfo, {
17
- Field(node) {
18
- var _a;
19
- const fieldDef = typeInfo.getFieldDef();
20
- if (!fieldDef) {
21
- // skip visiting this node if field is not defined in schema
22
- return false;
23
- }
24
- const parentTypeName = typeInfo.getParentType().name;
25
- const fieldName = node.name.value;
26
- (_a = usedFields[parentTypeName]) !== null && _a !== void 0 ? _a : (usedFields[parentTypeName] = new Set());
27
- usedFields[parentTypeName].add(fieldName);
28
- },
29
- });
30
- const allDocuments = [...operations.getOperations(), ...operations.getFragments()];
31
- for (const { document } of allDocuments) {
32
- (0, graphql_1.visit)(document, visitor);
33
- }
34
- usedFieldsCache = usedFields;
29
+ if (process.env.NODE_ENV !== "test" && usedFieldsCache) {
35
30
  return usedFieldsCache;
31
+ }
32
+ const usedFields = /* @__PURE__ */ Object.create(null);
33
+ const typeInfo = new import_graphql.TypeInfo(schema);
34
+ const visitor = (0, import_graphql.visitWithTypeInfo)(typeInfo, {
35
+ Field(node) {
36
+ const fieldDef = typeInfo.getFieldDef();
37
+ if (!fieldDef) {
38
+ return false;
39
+ }
40
+ const parentTypeName = typeInfo.getParentType().name;
41
+ const fieldName = node.name.value;
42
+ usedFields[parentTypeName] ??= /* @__PURE__ */ new Set();
43
+ usedFields[parentTypeName].add(fieldName);
44
+ }
45
+ });
46
+ const allDocuments = [...operations.getOperations(), ...operations.getFragments()];
47
+ for (const { document } of allDocuments) {
48
+ (0, import_graphql.visit)(document, visitor);
49
+ }
50
+ usedFieldsCache = usedFields;
51
+ return usedFieldsCache;
36
52
  }
37
- exports.rule = {
38
- meta: {
39
- messages: {
40
- [RULE_ID]: 'Field "{{fieldName}}" is unused',
41
- },
42
- docs: {
43
- description: 'Requires all fields to be used at some level by siblings operations.',
44
- category: 'Schema',
45
- url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
46
- requiresSiblings: true,
47
- requiresSchema: true,
48
- isDisabledForAllConfig: true,
49
- examples: [
50
- {
51
- title: 'Incorrect',
52
- code: /* GraphQL */ `
53
+ const rule = {
54
+ meta: {
55
+ messages: {
56
+ [RULE_ID]: 'Field "{{fieldName}}" is unused'
57
+ },
58
+ docs: {
59
+ description: "Requires all fields to be used at some level by siblings operations.",
60
+ category: "Schema",
61
+ url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
62
+ requiresSiblings: true,
63
+ requiresSchema: true,
64
+ isDisabledForAllConfig: true,
65
+ examples: [
66
+ {
67
+ title: "Incorrect",
68
+ code: (
69
+ /* GraphQL */
70
+ `
53
71
  type User {
54
72
  id: ID!
55
73
  name: String
@@ -66,11 +84,14 @@ exports.rule = {
66
84
  name
67
85
  }
68
86
  }
69
- `,
70
- },
71
- {
72
- title: 'Correct',
73
- code: /* GraphQL */ `
87
+ `
88
+ )
89
+ },
90
+ {
91
+ title: "Correct",
92
+ code: (
93
+ /* GraphQL */
94
+ `
74
95
  type User {
75
96
  id: ID!
76
97
  name: String
@@ -86,45 +107,49 @@ exports.rule = {
86
107
  name
87
108
  }
88
109
  }
89
- `,
90
- },
91
- ],
92
- },
93
- type: 'suggestion',
94
- schema: [],
95
- hasSuggestions: true,
96
- },
97
- create(context) {
98
- const schema = (0, utils_js_1.requireGraphQLSchemaFromContext)(RULE_ID, context);
99
- const siblingsOperations = (0, utils_js_1.requireSiblingsOperations)(RULE_ID, context);
100
- const usedFields = getUsedFields(schema, siblingsOperations);
101
- return {
102
- FieldDefinition(node) {
103
- var _a;
104
- const fieldName = node.name.value;
105
- const parentTypeName = node.parent.name.value;
106
- const isUsed = (_a = usedFields[parentTypeName]) === null || _a === void 0 ? void 0 : _a.has(fieldName);
107
- if (isUsed) {
108
- return;
109
- }
110
- context.report({
111
- node: node.name,
112
- messageId: RULE_ID,
113
- data: { fieldName },
114
- suggest: [
115
- {
116
- desc: `Remove \`${fieldName}\` field`,
117
- fix(fixer) {
118
- const sourceCode = context.getSourceCode();
119
- const tokenBefore = sourceCode.getTokenBefore(node);
120
- const tokenAfter = sourceCode.getTokenAfter(node);
121
- const isEmptyType = tokenBefore.type === '{' && tokenAfter.type === '}';
122
- return fixer.remove((isEmptyType ? node.parent : node));
123
- },
124
- },
125
- ],
126
- });
127
- },
128
- };
110
+ `
111
+ )
112
+ }
113
+ ]
129
114
  },
115
+ type: "suggestion",
116
+ schema: [],
117
+ hasSuggestions: true
118
+ },
119
+ create(context) {
120
+ const schema = (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
121
+ const siblingsOperations = (0, import_utils.requireSiblingsOperations)(RULE_ID, context);
122
+ const usedFields = getUsedFields(schema, siblingsOperations);
123
+ return {
124
+ FieldDefinition(node) {
125
+ const fieldName = node.name.value;
126
+ const parentTypeName = node.parent.name.value;
127
+ const isUsed = usedFields[parentTypeName]?.has(fieldName);
128
+ if (isUsed) {
129
+ return;
130
+ }
131
+ context.report({
132
+ node: node.name,
133
+ messageId: RULE_ID,
134
+ data: { fieldName },
135
+ suggest: [
136
+ {
137
+ desc: `Remove \`${fieldName}\` field`,
138
+ fix(fixer) {
139
+ const sourceCode = context.getSourceCode();
140
+ const tokenBefore = sourceCode.getTokenBefore(node);
141
+ const tokenAfter = sourceCode.getTokenAfter(node);
142
+ const isEmptyType = tokenBefore.type === "{" && tokenAfter.type === "}";
143
+ return fixer.remove(isEmptyType ? node.parent : node);
144
+ }
145
+ }
146
+ ]
147
+ });
148
+ }
149
+ };
150
+ }
130
151
  };
152
+ // Annotate the CommonJS export names for ESM import in node:
153
+ 0 && (module.exports = {
154
+ rule
155
+ });
@@ -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 type: "array";
5
12
  readonly maxItems: 1;
@@ -16,6 +23,7 @@ declare const schema: {
16
23
  };
17
24
  };
18
25
  };
19
- export type RuleOptions = FromSchema<typeof schema>;
20
- export declare const rule: GraphQLESLintRule<RuleOptions, true>;
21
- export {};
26
+ type RuleOptions = FromSchema<typeof schema>;
27
+ declare const rule: GraphQLESLintRule<RuleOptions, true>;
28
+
29
+ export { RuleOptions, rule };