@graphql-eslint/eslint-plugin 4.0.0-alpha-20220821140530-e968cfc → 4.0.0-alpha-20230801163310-8bc4340

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -253
  3. package/cjs/cache.d.ts +12 -0
  4. package/cjs/cache.js +62 -0
  5. package/cjs/configs/index.d.ts +148 -0
  6. package/cjs/configs/index.js +49 -0
  7. package/cjs/configs/operations-all.d.ts +22 -0
  8. package/cjs/configs/operations-all.js +27 -0
  9. package/cjs/configs/operations-recommended.d.ts +52 -0
  10. package/{configs/operations-recommended.json → cjs/configs/operations-recommended.js} +16 -14
  11. package/cjs/configs/relay.d.ts +12 -0
  12. package/{configs/relay.json → cjs/configs/relay.js} +6 -4
  13. package/cjs/configs/schema-all.d.ts +19 -0
  14. package/cjs/configs/schema-all.js +21 -0
  15. package/cjs/configs/schema-recommended.d.ts +49 -0
  16. package/{configs/schema-recommended.json → cjs/configs/schema-recommended.js} +19 -20
  17. package/cjs/documents.d.ts +6 -0
  18. package/cjs/documents.js +81 -0
  19. package/cjs/estree-converter/converter.d.ts +8 -0
  20. package/cjs/estree-converter/converter.js +83 -0
  21. package/cjs/estree-converter/index.d.ts +8 -0
  22. package/cjs/estree-converter/index.js +26 -0
  23. package/cjs/estree-converter/types.d.ts +42 -0
  24. package/cjs/estree-converter/types.js +16 -0
  25. package/cjs/estree-converter/utils.d.ts +18 -0
  26. package/cjs/estree-converter/utils.js +135 -0
  27. package/cjs/flat-configs.d.ts +260 -0
  28. package/cjs/flat-configs.js +60 -0
  29. package/cjs/graphql-config.d.ts +13 -0
  30. package/cjs/graphql-config.js +86 -0
  31. package/cjs/index.d.ts +22 -0
  32. package/cjs/index.js +49 -0
  33. package/cjs/parser.d.ts +12 -0
  34. package/cjs/parser.js +103 -0
  35. package/cjs/processor.d.ts +9 -0
  36. package/cjs/processor.js +127 -0
  37. package/cjs/rules/alphabetize.d.ts +84 -0
  38. package/cjs/rules/alphabetize.js +395 -0
  39. package/cjs/rules/description-style.d.ts +28 -0
  40. package/cjs/rules/description-style.js +109 -0
  41. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  42. package/cjs/rules/graphql-js-validation.js +669 -0
  43. package/cjs/rules/index.d.ts +125 -0
  44. package/cjs/rules/index.js +99 -0
  45. package/cjs/rules/input-name.d.ts +43 -0
  46. package/cjs/rules/input-name.js +170 -0
  47. package/cjs/rules/lone-executable-definition.d.ts +34 -0
  48. package/cjs/rules/lone-executable-definition.js +119 -0
  49. package/cjs/rules/match-document-filename.d.ts +80 -0
  50. package/cjs/rules/match-document-filename.js +282 -0
  51. package/cjs/rules/naming-convention.d.ts +107 -0
  52. package/cjs/rules/naming-convention.js +434 -0
  53. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  54. package/cjs/rules/no-anonymous-operations.js +98 -0
  55. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  56. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +96 -0
  57. package/cjs/rules/no-deprecated.d.ts +12 -0
  58. package/cjs/rules/no-deprecated.js +157 -0
  59. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  60. package/cjs/rules/no-duplicate-fields.js +146 -0
  61. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  62. package/cjs/rules/no-hashtag-description.js +140 -0
  63. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  64. package/cjs/rules/no-one-place-fragments.js +113 -0
  65. package/cjs/rules/no-root-type.d.ts +33 -0
  66. package/cjs/rules/no-root-type.js +113 -0
  67. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  68. package/cjs/rules/no-scalar-result-type-on-mutation.js +100 -0
  69. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  70. package/cjs/rules/no-typename-prefix.js +98 -0
  71. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  72. package/cjs/rules/no-unreachable-types.js +199 -0
  73. package/cjs/rules/no-unused-fields.d.ts +12 -0
  74. package/cjs/rules/no-unused-fields.js +157 -0
  75. package/cjs/rules/relay-arguments.d.ts +29 -0
  76. package/cjs/rules/relay-arguments.js +149 -0
  77. package/cjs/rules/relay-connection-types.d.ts +13 -0
  78. package/cjs/rules/relay-connection-types.js +142 -0
  79. package/cjs/rules/relay-edge-types.d.ts +39 -0
  80. package/cjs/rules/relay-edge-types.js +212 -0
  81. package/cjs/rules/relay-page-info.d.ts +12 -0
  82. package/cjs/rules/relay-page-info.js +121 -0
  83. package/cjs/rules/require-deprecation-date.d.ts +26 -0
  84. package/cjs/rules/require-deprecation-date.js +164 -0
  85. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  86. package/cjs/rules/require-deprecation-reason.js +93 -0
  87. package/cjs/rules/require-description.d.ts +23 -0
  88. package/cjs/rules/require-description.js +205 -0
  89. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  90. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +102 -0
  91. package/cjs/rules/require-id-when-available.d.ts +44 -0
  92. package/cjs/rules/require-id-when-available.js +241 -0
  93. package/cjs/rules/require-import-fragment.d.ts +12 -0
  94. package/cjs/rules/require-import-fragment.js +166 -0
  95. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  96. package/cjs/rules/require-nullable-fields-with-oneof.js +92 -0
  97. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  98. package/cjs/rules/require-nullable-result-in-root.js +109 -0
  99. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  100. package/cjs/rules/require-type-pattern-with-oneof.js +91 -0
  101. package/cjs/rules/selection-set-depth.d.ts +36 -0
  102. package/cjs/rules/selection-set-depth.js +175 -0
  103. package/cjs/rules/strict-id-in-types.d.ts +65 -0
  104. package/cjs/rules/strict-id-in-types.js +186 -0
  105. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  106. package/cjs/rules/unique-fragment-name.js +118 -0
  107. package/cjs/rules/unique-operation-name.d.ts +12 -0
  108. package/cjs/rules/unique-operation-name.js +95 -0
  109. package/cjs/schema.d.ts +12 -0
  110. package/cjs/schema.js +65 -0
  111. package/cjs/siblings.d.ts +8 -0
  112. package/cjs/siblings.js +136 -0
  113. package/cjs/types-8d5f4ae0.d.ts +107 -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 +205 -0
  118. package/esm/cache.d.mts +12 -0
  119. package/esm/cache.js +29 -0
  120. package/esm/chunk-BMTV3EA2.js +8 -0
  121. package/esm/configs/index.d.mts +148 -0
  122. package/esm/configs/index.js +16 -0
  123. package/esm/configs/operations-all.d.mts +22 -0
  124. package/esm/configs/operations-all.js +34 -0
  125. package/esm/configs/operations-recommended.d.mts +52 -0
  126. package/esm/configs/operations-recommended.js +59 -0
  127. package/esm/configs/relay.d.mts +12 -0
  128. package/esm/configs/relay.js +18 -0
  129. package/esm/configs/schema-all.d.mts +19 -0
  130. package/esm/configs/schema-all.js +28 -0
  131. package/esm/configs/schema-recommended.d.mts +49 -0
  132. package/esm/configs/schema-recommended.js +55 -0
  133. package/esm/documents.d.mts +6 -0
  134. package/esm/documents.js +48 -0
  135. package/esm/estree-converter/converter.d.mts +8 -0
  136. package/esm/estree-converter/converter.js +65 -0
  137. package/esm/estree-converter/index.d.mts +8 -0
  138. package/esm/estree-converter/index.js +3 -0
  139. package/esm/estree-converter/types.d.mts +42 -0
  140. package/esm/estree-converter/types.js +0 -0
  141. package/esm/estree-converter/utils.d.mts +18 -0
  142. package/esm/estree-converter/utils.js +114 -0
  143. package/esm/flat-configs.d.mts +260 -0
  144. package/esm/flat-configs.js +37 -0
  145. package/esm/graphql-config.d.mts +13 -0
  146. package/esm/graphql-config.js +55 -0
  147. package/esm/index.d.mts +22 -0
  148. package/esm/index.js +18 -0
  149. package/esm/package.json +1 -0
  150. package/esm/parser.d.mts +12 -0
  151. package/esm/parser.js +70 -0
  152. package/esm/processor.d.mts +9 -0
  153. package/esm/processor.js +106 -0
  154. package/esm/rules/alphabetize.d.mts +84 -0
  155. package/esm/rules/alphabetize.js +364 -0
  156. package/esm/rules/description-style.d.mts +28 -0
  157. package/esm/rules/description-style.js +86 -0
  158. package/esm/rules/graphql-js-validation.d.mts +12 -0
  159. package/esm/rules/graphql-js-validation.js +658 -0
  160. package/esm/rules/index.d.mts +125 -0
  161. package/esm/rules/index.js +76 -0
  162. package/esm/rules/input-name.d.mts +43 -0
  163. package/esm/rules/input-name.js +149 -0
  164. package/esm/rules/lone-executable-definition.d.mts +34 -0
  165. package/esm/rules/lone-executable-definition.js +96 -0
  166. package/esm/rules/match-document-filename.d.mts +80 -0
  167. package/esm/rules/match-document-filename.js +263 -0
  168. package/esm/rules/naming-convention.d.mts +107 -0
  169. package/esm/rules/naming-convention.js +417 -0
  170. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  171. package/esm/rules/no-anonymous-operations.js +75 -0
  172. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  173. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +73 -0
  174. package/esm/rules/no-deprecated.d.mts +12 -0
  175. package/esm/rules/no-deprecated.js +134 -0
  176. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  177. package/esm/rules/no-duplicate-fields.js +123 -0
  178. package/esm/rules/no-hashtag-description.d.mts +13 -0
  179. package/esm/rules/no-hashtag-description.js +116 -0
  180. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  181. package/esm/rules/no-one-place-fragments.js +90 -0
  182. package/esm/rules/no-root-type.d.mts +33 -0
  183. package/esm/rules/no-root-type.js +90 -0
  184. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  185. package/esm/rules/no-scalar-result-type-on-mutation.js +77 -0
  186. package/esm/rules/no-typename-prefix.d.mts +12 -0
  187. package/esm/rules/no-typename-prefix.js +75 -0
  188. package/esm/rules/no-unreachable-types.d.mts +12 -0
  189. package/esm/rules/no-unreachable-types.js +171 -0
  190. package/esm/rules/no-unused-fields.d.mts +12 -0
  191. package/esm/rules/no-unused-fields.js +134 -0
  192. package/esm/rules/relay-arguments.d.mts +29 -0
  193. package/esm/rules/relay-arguments.js +126 -0
  194. package/esm/rules/relay-connection-types.d.mts +13 -0
  195. package/esm/rules/relay-connection-types.js +118 -0
  196. package/esm/rules/relay-edge-types.d.mts +39 -0
  197. package/esm/rules/relay-edge-types.js +194 -0
  198. package/esm/rules/relay-page-info.d.mts +12 -0
  199. package/esm/rules/relay-page-info.js +98 -0
  200. package/esm/rules/require-deprecation-date.d.mts +26 -0
  201. package/esm/rules/require-deprecation-date.js +141 -0
  202. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  203. package/esm/rules/require-deprecation-reason.js +70 -0
  204. package/esm/rules/require-description.d.mts +23 -0
  205. package/esm/rules/require-description.js +186 -0
  206. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  207. package/esm/rules/require-field-of-type-query-in-mutation-result.js +79 -0
  208. package/esm/rules/require-id-when-available.d.mts +44 -0
  209. package/esm/rules/require-id-when-available.js +231 -0
  210. package/esm/rules/require-import-fragment.d.mts +12 -0
  211. package/esm/rules/require-import-fragment.js +133 -0
  212. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  213. package/esm/rules/require-nullable-fields-with-oneof.js +69 -0
  214. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  215. package/esm/rules/require-nullable-result-in-root.js +86 -0
  216. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  217. package/esm/rules/require-type-pattern-with-oneof.js +68 -0
  218. package/esm/rules/selection-set-depth.d.mts +36 -0
  219. package/esm/rules/selection-set-depth.js +142 -0
  220. package/esm/rules/strict-id-in-types.d.mts +65 -0
  221. package/esm/rules/strict-id-in-types.js +169 -0
  222. package/esm/rules/unique-fragment-name.d.mts +13 -0
  223. package/esm/rules/unique-fragment-name.js +94 -0
  224. package/esm/rules/unique-operation-name.d.mts +12 -0
  225. package/esm/rules/unique-operation-name.js +72 -0
  226. package/esm/schema.d.mts +12 -0
  227. package/esm/schema.js +32 -0
  228. package/esm/siblings.d.mts +8 -0
  229. package/esm/siblings.js +116 -0
  230. package/esm/types-ace77d86.d.ts +107 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/types.js +0 -0
  233. package/esm/utils.d.mts +44 -0
  234. package/esm/utils.js +155 -0
  235. package/package.json +47 -34
  236. package/configs/base.json +0 -4
  237. package/configs/operations-all.json +0 -24
  238. package/configs/schema-all.json +0 -26
  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/sibling-operations.d.ts +0 -21
  345. package/testkit.d.ts +0 -27
  346. package/types.d.ts +0 -79
  347. package/utils.d.ts +0 -39
package/cjs/schema.js ADDED
@@ -0,0 +1,65 @@
1
+ "use strict";
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 schema_exports = {};
30
+ __export(schema_exports, {
31
+ getSchema: () => getSchema
32
+ });
33
+ module.exports = __toCommonJS(schema_exports);
34
+ var import_debug = __toESM(require("debug"));
35
+ var import_fast_glob = __toESM(require("fast-glob"));
36
+ var import_graphql = require("graphql");
37
+ var import_cache = require("./cache.js");
38
+ const schemaCache = new import_cache.ModuleCache();
39
+ const debug = (0, import_debug.default)("graphql-eslint:schema");
40
+ function getSchema(project, schemaOptions) {
41
+ const schemaKey = project.schema;
42
+ if (!schemaKey) {
43
+ return null;
44
+ }
45
+ const cache = schemaCache.get(schemaKey);
46
+ if (cache) {
47
+ return cache;
48
+ }
49
+ debug("Loading schema from %o", project.schema);
50
+ const schema = project.loadSchemaSync(project.schema, "GraphQLSchema", {
51
+ ...schemaOptions,
52
+ pluckConfig: project.extensions.pluckConfig
53
+ });
54
+ if (debug.enabled) {
55
+ debug("Schema loaded: %o", schema instanceof import_graphql.GraphQLSchema);
56
+ const schemaPaths = import_fast_glob.default.sync(project.schema, { absolute: true });
57
+ debug("Schema pointers %O", schemaPaths);
58
+ }
59
+ schemaCache.set(schemaKey, schema);
60
+ return schema;
61
+ }
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ getSchema
65
+ });
@@ -0,0 +1,8 @@
1
+ import 'graphql';
2
+ import 'graphql-config';
3
+ export { F as FragmentSource, h as OperationSource, g as SiblingOperations, i as getSiblings } from './types-8d5f4ae0.js';
4
+ import '@graphql-tools/utils';
5
+ import 'eslint';
6
+ import 'estree';
7
+ import 'json-schema-to-ts';
8
+ import './estree-converter/types.js';
@@ -0,0 +1,136 @@
1
+ "use strict";
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 siblings_exports = {};
20
+ __export(siblings_exports, {
21
+ getSiblings: () => getSiblings
22
+ });
23
+ module.exports = __toCommonJS(siblings_exports);
24
+ var import_utils = require("@graphql-tools/utils");
25
+ var import_graphql = require("graphql");
26
+ var import_documents = require("./documents.js");
27
+ var import_utils2 = require("./utils.js");
28
+ const siblingOperationsCache = /* @__PURE__ */ new Map();
29
+ function getSiblings(project, documents) {
30
+ const siblings = project ? (0, import_documents.getDocuments)(project) : typeof documents === "string" ? [(0, import_utils.parseGraphQLSDL)("operation.graphql", documents, { noLocation: true })] : [];
31
+ if (siblings.length === 0) {
32
+ let printed = false;
33
+ const noopWarn = () => {
34
+ if (!printed) {
35
+ import_utils2.logger.warn(
36
+ 'getSiblingOperations was called without any operations. Make sure to set "parserOptions.operations" to make this feature available!'
37
+ );
38
+ printed = true;
39
+ }
40
+ return [];
41
+ };
42
+ return {
43
+ available: false,
44
+ getFragment: noopWarn,
45
+ getFragments: noopWarn,
46
+ getFragmentByType: noopWarn,
47
+ getFragmentsInUse: noopWarn,
48
+ getOperation: noopWarn,
49
+ getOperations: noopWarn,
50
+ getOperationByType: noopWarn
51
+ };
52
+ }
53
+ const value = siblingOperationsCache.get(siblings);
54
+ if (value) {
55
+ return value;
56
+ }
57
+ let fragmentsCache = null;
58
+ const getFragments = () => {
59
+ var _a;
60
+ if (fragmentsCache === null) {
61
+ const result = [];
62
+ for (const source of siblings) {
63
+ for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
64
+ if (definition.kind === import_graphql.Kind.FRAGMENT_DEFINITION) {
65
+ result.push({
66
+ filePath: source.location,
67
+ document: definition
68
+ });
69
+ }
70
+ }
71
+ }
72
+ fragmentsCache = result;
73
+ }
74
+ return fragmentsCache;
75
+ };
76
+ let cachedOperations = null;
77
+ const getOperations = () => {
78
+ var _a;
79
+ if (cachedOperations === null) {
80
+ const result = [];
81
+ for (const source of siblings) {
82
+ for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
83
+ if (definition.kind === import_graphql.Kind.OPERATION_DEFINITION) {
84
+ result.push({
85
+ filePath: source.location,
86
+ document: definition
87
+ });
88
+ }
89
+ }
90
+ }
91
+ cachedOperations = result;
92
+ }
93
+ return cachedOperations;
94
+ };
95
+ const getFragment = (name) => getFragments().filter((f) => f.document.name.value === name);
96
+ const collectFragments = (selectable, recursive, collected = /* @__PURE__ */ new Map()) => {
97
+ (0, import_graphql.visit)(selectable, {
98
+ FragmentSpread(spread) {
99
+ const fragmentName = spread.name.value;
100
+ const [fragment] = getFragment(fragmentName);
101
+ if (!fragment) {
102
+ import_utils2.logger.warn(
103
+ `Unable to locate fragment named "${fragmentName}", please make sure it's loaded using "parserOptions.operations"`
104
+ );
105
+ return;
106
+ }
107
+ if (!collected.has(fragmentName)) {
108
+ collected.set(fragmentName, fragment.document);
109
+ if (recursive) {
110
+ collectFragments(fragment.document, recursive, collected);
111
+ }
112
+ }
113
+ }
114
+ });
115
+ return collected;
116
+ };
117
+ const siblingOperations = {
118
+ available: true,
119
+ getFragment,
120
+ getFragments,
121
+ getFragmentByType: (typeName) => getFragments().filter((f) => f.document.typeCondition.name.value === typeName),
122
+ getFragmentsInUse: (selectable, recursive = true) => Array.from(collectFragments(selectable, recursive).values()),
123
+ getOperation: (name) => getOperations().filter((o) => {
124
+ var _a;
125
+ return ((_a = o.document.name) == null ? void 0 : _a.value) === name;
126
+ }),
127
+ getOperations,
128
+ getOperationByType: (type) => getOperations().filter((o) => o.document.operation === type)
129
+ };
130
+ siblingOperationsCache.set(siblings, siblingOperations);
131
+ return siblingOperations;
132
+ }
133
+ // Annotate the CommonJS export names for ESM import in node:
134
+ 0 && (module.exports = {
135
+ getSiblings
136
+ });
@@ -0,0 +1,107 @@
1
+ import { GraphQLParseOptions } from '@graphql-tools/utils';
2
+ import { Linter, Rule, AST } from 'eslint';
3
+ import * as ESTree from 'estree';
4
+ import { FragmentDefinitionNode, OperationDefinitionNode, SelectionSetNode, OperationTypeNode, GraphQLSchema, ASTKindToNode } from 'graphql';
5
+ import { GraphQLProjectConfig, IExtensions, IGraphQLProject } from 'graphql-config';
6
+ import { JSONSchema } from 'json-schema-to-ts';
7
+ import { GraphQLESTreeNode } from './estree-converter/types.js';
8
+
9
+ type FragmentSource = {
10
+ filePath: string;
11
+ document: FragmentDefinitionNode;
12
+ };
13
+ type OperationSource = {
14
+ filePath: string;
15
+ document: OperationDefinitionNode;
16
+ };
17
+ type SiblingOperations = {
18
+ available: boolean;
19
+ getFragment(fragmentName: string): FragmentSource[];
20
+ getFragments(): FragmentSource[];
21
+ getFragmentByType(typeName: string): FragmentSource[];
22
+ getFragmentsInUse(baseOperation: FragmentDefinitionNode | OperationDefinitionNode | SelectionSetNode, recursive?: boolean): FragmentDefinitionNode[];
23
+ getOperation(operationName: string): OperationSource[];
24
+ getOperations(): OperationSource[];
25
+ getOperationByType(operationType: OperationTypeNode): OperationSource[];
26
+ };
27
+ declare function getSiblings(project?: GraphQLProjectConfig, documents?: ParserOptions['documents']): SiblingOperations;
28
+
29
+ type Schema = GraphQLSchema | null;
30
+ type Pointer = string | string[];
31
+ interface ParserOptions {
32
+ schema?: Pointer | Record<string, {
33
+ headers: Record<string, string>;
34
+ }>;
35
+ documents?: Pointer;
36
+ extensions?: IExtensions;
37
+ include?: Pointer;
38
+ exclude?: Pointer;
39
+ projects?: Record<string, IGraphQLProject>;
40
+ schemaOptions?: Omit<GraphQLParseOptions, 'assumeValidSDL'> & {
41
+ headers: Record<string, string>;
42
+ };
43
+ graphQLParserOptions?: Omit<GraphQLParseOptions, 'noLocation'>;
44
+ skipGraphQLConfig?: boolean;
45
+ filePath: string;
46
+ /** @deprecated Use `documents` instead */
47
+ operations?: Pointer;
48
+ }
49
+ type ParserServices = {
50
+ schema: Schema;
51
+ siblingOperations: SiblingOperations;
52
+ };
53
+ type GraphQLESLintParseResult = Linter.ESLintParseResult & {
54
+ services: ParserServices;
55
+ };
56
+ type Location = AST.SourceLocation | ESTree.Position;
57
+ type ReportDescriptorLocation = {
58
+ loc: Location;
59
+ } | {
60
+ node: {
61
+ loc: Location;
62
+ };
63
+ };
64
+ type ReportDescriptor = ReportDescriptorLocation & Rule.ReportDescriptorMessage & Rule.ReportDescriptorOptions;
65
+ type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleContext, 'options' | 'parserServices' | 'report'> & {
66
+ options: Options;
67
+ parserServices: ParserServices;
68
+ report(descriptor: ReportDescriptor): void;
69
+ };
70
+ type CategoryType = 'Operations' | 'Schema';
71
+ type RuleMetaDataDocs = Required<Rule.RuleMetaData>['docs'];
72
+ type RuleDocsInfo<T> = Omit<RuleMetaDataDocs, 'category' | 'suggestion'> & {
73
+ category: CategoryType | CategoryType[];
74
+ requiresSchema?: true;
75
+ requiresSiblings?: true;
76
+ examples?: {
77
+ title: string;
78
+ code: string;
79
+ usage?: T;
80
+ }[];
81
+ configOptions?: T | {
82
+ schema?: T;
83
+ operations?: T;
84
+ };
85
+ graphQLJSRuleName?: string;
86
+ isDisabledForAllConfig?: true;
87
+ };
88
+ type GraphQLESLintRuleListener<WithTypeInfo extends boolean = false> = Record<string, any> & {
89
+ [K in keyof ASTKindToNode]?: (node: GraphQLESTreeNode<ASTKindToNode[K], WithTypeInfo>) => void;
90
+ };
91
+ type GraphQLESLintRule<Options = [], WithTypeInfo extends boolean = false> = {
92
+ meta: Omit<Rule.RuleMetaData, 'docs' | 'schema'> & {
93
+ docs?: RuleDocsInfo<Options>;
94
+ schema: Readonly<JSONSchema> | [];
95
+ };
96
+ create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
97
+ };
98
+ type ValueOf<T> = T[keyof T];
99
+ type Id<T> = {
100
+ [P in keyof T]: T[P];
101
+ } & {};
102
+ type OmitDistributive<T, K extends PropertyKey> = T extends object ? Id<OmitRecursively<T, K>> : T;
103
+ type OmitRecursively<T extends object, K extends PropertyKey> = Omit<{
104
+ [P in keyof T]: OmitDistributive<T[P], K>;
105
+ }, K>;
106
+
107
+ export { CategoryType as C, FragmentSource as F, GraphQLESLintParseResult as G, OmitRecursively as O, ParserOptions as P, ReportDescriptor as R, Schema as S, ValueOf as V, Pointer as a, ParserServices as b, GraphQLESLintRuleContext as c, RuleDocsInfo as d, GraphQLESLintRuleListener as e, GraphQLESLintRule as f, SiblingOperations as g, OperationSource as h, getSiblings as i };
package/cjs/types.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import '@graphql-tools/utils';
2
+ import 'eslint';
3
+ import 'estree';
4
+ import 'graphql';
5
+ import 'graphql-config';
6
+ import 'json-schema-to-ts';
7
+ export { C as CategoryType, G as GraphQLESLintParseResult, f as GraphQLESLintRule, c as GraphQLESLintRuleContext, e as GraphQLESLintRuleListener, O as OmitRecursively, P as ParserOptions, b as ParserServices, a as Pointer, R as ReportDescriptor, d as RuleDocsInfo, S as Schema, V as ValueOf } from './types-8d5f4ae0.js';
8
+ import './estree-converter/types.js';
package/cjs/types.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
package/cjs/utils.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import { AST } from 'eslint';
2
+ import { Position } from 'estree';
3
+ import { GraphQLSchema, ASTNode, Kind } from 'graphql';
4
+ import { c as GraphQLESLintRuleContext, g as SiblingOperations } from './types-8d5f4ae0.js';
5
+ import { GraphQLESTreeNode } from './estree-converter/types.js';
6
+ import '@graphql-tools/utils';
7
+ import 'graphql-config';
8
+ import 'json-schema-to-ts';
9
+
10
+ declare function requireSiblingsOperations(ruleId: string, context: GraphQLESLintRuleContext): SiblingOperations | never;
11
+ declare function requireGraphQLSchemaFromContext(ruleId: string, context: GraphQLESLintRuleContext): GraphQLSchema | never;
12
+ declare const logger: {
13
+ error: (...args: unknown[]) => void;
14
+ warn: (...args: unknown[]) => void;
15
+ };
16
+ declare const normalizePath: (path: string) => string;
17
+ declare const VIRTUAL_DOCUMENT_REGEX: RegExp;
18
+ declare const CWD: string;
19
+ declare const getTypeName: (node: ASTNode) => string;
20
+ declare const TYPES_KINDS: readonly [Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION];
21
+ type CaseStyle = 'camelCase' | 'kebab-case' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
22
+ declare const pascalCase: (str: string) => string;
23
+ declare const camelCase: (str: string) => string;
24
+ declare const convertCase: (style: CaseStyle, str: string) => string;
25
+ declare function getLocation(start: Position, fieldName?: string): AST.SourceLocation;
26
+ declare const REPORT_ON_FIRST_CHARACTER: {
27
+ column: number;
28
+ line: number;
29
+ };
30
+ declare const ARRAY_DEFAULT_OPTIONS: {
31
+ readonly type: "array";
32
+ readonly uniqueItems: true;
33
+ readonly minItems: 1;
34
+ readonly items: {
35
+ readonly type: "string";
36
+ };
37
+ };
38
+ declare const englishJoinWords: (words: string[]) => string;
39
+ type Truthy<T> = T extends '' | 0 | false | null | undefined ? never : T;
40
+ declare function truthy<T>(value: T): value is Truthy<T>;
41
+ declare function displayNodeName(node: GraphQLESTreeNode<ASTNode>): string;
42
+ declare function getNodeName(node: GraphQLESTreeNode<ASTNode>): string;
43
+
44
+ export { ARRAY_DEFAULT_OPTIONS, CWD, CaseStyle, REPORT_ON_FIRST_CHARACTER, TYPES_KINDS, VIRTUAL_DOCUMENT_REGEX, camelCase, convertCase, displayNodeName, englishJoinWords, getLocation, getNodeName, getTypeName, logger, normalizePath, pascalCase, requireGraphQLSchemaFromContext, requireSiblingsOperations, truthy };
package/cjs/utils.js ADDED
@@ -0,0 +1,205 @@
1
+ "use strict";
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 utils_exports = {};
30
+ __export(utils_exports, {
31
+ ARRAY_DEFAULT_OPTIONS: () => ARRAY_DEFAULT_OPTIONS,
32
+ CWD: () => CWD,
33
+ REPORT_ON_FIRST_CHARACTER: () => REPORT_ON_FIRST_CHARACTER,
34
+ TYPES_KINDS: () => TYPES_KINDS,
35
+ VIRTUAL_DOCUMENT_REGEX: () => VIRTUAL_DOCUMENT_REGEX,
36
+ camelCase: () => camelCase,
37
+ convertCase: () => convertCase,
38
+ displayNodeName: () => displayNodeName,
39
+ englishJoinWords: () => englishJoinWords,
40
+ getLocation: () => getLocation,
41
+ getNodeName: () => getNodeName,
42
+ getTypeName: () => getTypeName,
43
+ logger: () => logger,
44
+ normalizePath: () => normalizePath,
45
+ pascalCase: () => pascalCase,
46
+ requireGraphQLSchemaFromContext: () => requireGraphQLSchemaFromContext,
47
+ requireSiblingsOperations: () => requireSiblingsOperations,
48
+ truthy: () => truthy
49
+ });
50
+ module.exports = __toCommonJS(utils_exports);
51
+ var import_chalk = __toESM(require("chalk"));
52
+ var import_graphql = require("graphql");
53
+ var import_lodash = __toESM(require("lodash.lowercase"));
54
+ function requireSiblingsOperations(ruleId, context) {
55
+ const { siblingOperations } = context.parserServices;
56
+ if (!siblingOperations.available) {
57
+ throw new Error(
58
+ `Rule \`${ruleId}\` requires \`parserOptions.operations\` to be set and loaded. See https://bit.ly/graphql-eslint-operations for more info`
59
+ );
60
+ }
61
+ return siblingOperations;
62
+ }
63
+ function requireGraphQLSchemaFromContext(ruleId, context) {
64
+ const { schema } = context.parserServices;
65
+ if (!schema) {
66
+ throw new Error(
67
+ `Rule \`${ruleId}\` requires \`parserOptions.schema\` to be set and loaded. See https://bit.ly/graphql-eslint-schema for more info`
68
+ );
69
+ }
70
+ return schema;
71
+ }
72
+ const logger = {
73
+ error: (...args) => (
74
+ // eslint-disable-next-line no-console
75
+ console.error(import_chalk.default.red("error"), "[graphql-eslint]", (0, import_chalk.default)(...args))
76
+ ),
77
+ warn: (...args) => (
78
+ // eslint-disable-next-line no-console
79
+ console.warn(import_chalk.default.yellow("warning"), "[graphql-eslint]", (0, import_chalk.default)(...args))
80
+ )
81
+ };
82
+ const normalizePath = (path) => (path || "").replace(/\\/g, "/");
83
+ const VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/;
84
+ const CWD = process.cwd();
85
+ const getTypeName = (node) => "type" in node ? getTypeName(node.type) : "name" in node && node.name ? node.name.value : "";
86
+ const TYPES_KINDS = [
87
+ import_graphql.Kind.OBJECT_TYPE_DEFINITION,
88
+ import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
89
+ import_graphql.Kind.ENUM_TYPE_DEFINITION,
90
+ import_graphql.Kind.SCALAR_TYPE_DEFINITION,
91
+ import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
92
+ import_graphql.Kind.UNION_TYPE_DEFINITION
93
+ ];
94
+ const pascalCase = (str) => (0, import_lodash.default)(str).split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
95
+ const camelCase = (str) => {
96
+ const result = pascalCase(str);
97
+ return result.charAt(0).toLowerCase() + result.slice(1);
98
+ };
99
+ const convertCase = (style, str) => {
100
+ switch (style) {
101
+ case "camelCase":
102
+ return camelCase(str);
103
+ case "PascalCase":
104
+ return pascalCase(str);
105
+ case "snake_case":
106
+ return (0, import_lodash.default)(str).replace(/ /g, "_");
107
+ case "UPPER_CASE":
108
+ return (0, import_lodash.default)(str).replace(/ /g, "_").toUpperCase();
109
+ case "kebab-case":
110
+ return (0, import_lodash.default)(str).replace(/ /g, "-");
111
+ }
112
+ };
113
+ function getLocation(start, fieldName = "") {
114
+ const { line, column } = start;
115
+ return {
116
+ start: {
117
+ line,
118
+ column
119
+ },
120
+ end: {
121
+ line,
122
+ column: column + fieldName.length
123
+ }
124
+ };
125
+ }
126
+ const REPORT_ON_FIRST_CHARACTER = { column: 0, line: 1 };
127
+ const ARRAY_DEFAULT_OPTIONS = {
128
+ type: "array",
129
+ uniqueItems: true,
130
+ minItems: 1,
131
+ items: {
132
+ type: "string"
133
+ }
134
+ };
135
+ const englishJoinWords = (words) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(words);
136
+ function truthy(value) {
137
+ return !!value;
138
+ }
139
+ const DisplayNodeNameMap = {
140
+ [import_graphql.Kind.OBJECT_TYPE_DEFINITION]: "type",
141
+ [import_graphql.Kind.OBJECT_TYPE_EXTENSION]: "type",
142
+ [import_graphql.Kind.INTERFACE_TYPE_DEFINITION]: "interface",
143
+ [import_graphql.Kind.INTERFACE_TYPE_EXTENSION]: "interface",
144
+ [import_graphql.Kind.ENUM_TYPE_DEFINITION]: "enum",
145
+ [import_graphql.Kind.ENUM_TYPE_EXTENSION]: "enum",
146
+ [import_graphql.Kind.SCALAR_TYPE_DEFINITION]: "scalar",
147
+ [import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION]: "input",
148
+ [import_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION]: "input",
149
+ [import_graphql.Kind.UNION_TYPE_DEFINITION]: "union",
150
+ [import_graphql.Kind.UNION_TYPE_EXTENSION]: "union",
151
+ [import_graphql.Kind.DIRECTIVE_DEFINITION]: "directive",
152
+ [import_graphql.Kind.FIELD_DEFINITION]: "field",
153
+ [import_graphql.Kind.ENUM_VALUE_DEFINITION]: "enum value",
154
+ [import_graphql.Kind.INPUT_VALUE_DEFINITION]: "input value",
155
+ [import_graphql.Kind.ARGUMENT]: "argument",
156
+ [import_graphql.Kind.VARIABLE]: "variable",
157
+ [import_graphql.Kind.FRAGMENT_DEFINITION]: "fragment",
158
+ [import_graphql.Kind.OPERATION_DEFINITION]: "operation",
159
+ [import_graphql.Kind.FIELD]: "field"
160
+ };
161
+ function displayNodeName(node) {
162
+ var _a, _b;
163
+ return `${node.kind === import_graphql.Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${"alias" in node && ((_a = node.alias) == null ? void 0 : _a.value) || "name" in node && ((_b = node.name) == null ? void 0 : _b.value)}"`;
164
+ }
165
+ function getNodeName(node) {
166
+ switch (node.kind) {
167
+ case import_graphql.Kind.OBJECT_TYPE_DEFINITION:
168
+ case import_graphql.Kind.OBJECT_TYPE_EXTENSION:
169
+ case import_graphql.Kind.INTERFACE_TYPE_DEFINITION:
170
+ case import_graphql.Kind.ENUM_TYPE_DEFINITION:
171
+ case import_graphql.Kind.SCALAR_TYPE_DEFINITION:
172
+ case import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION:
173
+ case import_graphql.Kind.UNION_TYPE_DEFINITION:
174
+ case import_graphql.Kind.DIRECTIVE_DEFINITION:
175
+ return displayNodeName(node);
176
+ case import_graphql.Kind.FIELD_DEFINITION:
177
+ case import_graphql.Kind.INPUT_VALUE_DEFINITION:
178
+ case import_graphql.Kind.ENUM_VALUE_DEFINITION:
179
+ return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
180
+ case import_graphql.Kind.OPERATION_DEFINITION:
181
+ return node.name ? displayNodeName(node) : node.operation;
182
+ }
183
+ return "";
184
+ }
185
+ // Annotate the CommonJS export names for ESM import in node:
186
+ 0 && (module.exports = {
187
+ ARRAY_DEFAULT_OPTIONS,
188
+ CWD,
189
+ REPORT_ON_FIRST_CHARACTER,
190
+ TYPES_KINDS,
191
+ VIRTUAL_DOCUMENT_REGEX,
192
+ camelCase,
193
+ convertCase,
194
+ displayNodeName,
195
+ englishJoinWords,
196
+ getLocation,
197
+ getNodeName,
198
+ getTypeName,
199
+ logger,
200
+ normalizePath,
201
+ pascalCase,
202
+ requireGraphQLSchemaFromContext,
203
+ requireSiblingsOperations,
204
+ truthy
205
+ });
@@ -0,0 +1,12 @@
1
+ declare class ModuleCache<T, K = any> {
2
+ map: Map<K, {
3
+ lastSeen: [number, number];
4
+ result: T;
5
+ }>;
6
+ set(cacheKey: K, result: T): void;
7
+ get(cacheKey: K, settings?: {
8
+ lifetime: number;
9
+ }): T | void;
10
+ }
11
+
12
+ export { ModuleCache };
package/esm/cache.js ADDED
@@ -0,0 +1,29 @@
1
+ import "./chunk-BMTV3EA2.js";
2
+ import debugFactory from "debug";
3
+ const log = debugFactory("graphql-eslint:ModuleCache");
4
+ class ModuleCache {
5
+ constructor() {
6
+ this.map = /* @__PURE__ */ new Map();
7
+ }
8
+ set(cacheKey, result) {
9
+ this.map.set(cacheKey, { lastSeen: process.hrtime(), result });
10
+ log("setting entry for", cacheKey);
11
+ }
12
+ get(cacheKey, settings = {
13
+ lifetime: 10
14
+ /* seconds */
15
+ }) {
16
+ const value = this.map.get(cacheKey);
17
+ if (!value) {
18
+ log("cache miss for", cacheKey);
19
+ return;
20
+ }
21
+ const { lastSeen, result } = value;
22
+ if (process.env.NODE || process.hrtime(lastSeen)[0] < settings.lifetime) {
23
+ return result;
24
+ }
25
+ }
26
+ }
27
+ export {
28
+ ModuleCache
29
+ };
@@ -0,0 +1,8 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+
6
+ export {
7
+ __commonJS
8
+ };