@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
@@ -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, f as GraphQLESLintParseResult, i as GraphQLESLintRule, g as GraphQLESLintRuleContext, O as OmitRecursively, P as ParserOptions, e as ParserServices, d as Pointer, R as ReportDescriptor, h as RuleDocsInfo, S as Schema, V as ValueOf } from './types-2e1afd7c.js';
8
+ import './estree-converter/types.mjs';
@@ -0,0 +1,44 @@
1
+ import { AST } from 'eslint';
2
+ import { Position } from 'estree';
3
+ import { GraphQLSchema, ASTNode, Kind } from 'graphql';
4
+ import { g as GraphQLESLintRuleContext, j as SiblingOperations } from './types-2e1afd7c.js';
5
+ import { GraphQLESTreeNode } from './estree-converter/types.mjs';
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/esm/utils.js CHANGED
@@ -1,131 +1,153 @@
1
- import chalk from 'chalk';
2
- import { Kind } from 'graphql';
3
- import lowerCase from 'lodash.lowercase';
4
- export function requireSiblingsOperations(ruleId, context) {
5
- const { siblingOperations } = context.parserServices;
6
- if (!siblingOperations.available) {
7
- throw new Error(`Rule \`${ruleId}\` requires \`parserOptions.operations\` to be set and loaded. See https://bit.ly/graphql-eslint-operations for more info`);
8
- }
9
- return siblingOperations;
1
+ import chalk from "chalk";
2
+ import { Kind } from "graphql";
3
+ import lowerCase from "lodash.lowercase";
4
+ function requireSiblingsOperations(ruleId, context) {
5
+ const { siblingOperations } = context.parserServices;
6
+ if (!siblingOperations.available) {
7
+ throw new Error(
8
+ `Rule \`${ruleId}\` requires \`parserOptions.operations\` to be set and loaded. See https://bit.ly/graphql-eslint-operations for more info`
9
+ );
10
+ }
11
+ return siblingOperations;
10
12
  }
11
- export function requireGraphQLSchemaFromContext(ruleId, context) {
12
- const { schema } = context.parserServices;
13
- if (!schema) {
14
- throw new Error(`Rule \`${ruleId}\` requires \`parserOptions.schema\` to be set and loaded. See https://bit.ly/graphql-eslint-schema for more info`);
15
- }
16
- return schema;
13
+ function requireGraphQLSchemaFromContext(ruleId, context) {
14
+ const { schema } = context.parserServices;
15
+ if (!schema) {
16
+ throw new Error(
17
+ `Rule \`${ruleId}\` requires \`parserOptions.schema\` to be set and loaded. See https://bit.ly/graphql-eslint-schema for more info`
18
+ );
19
+ }
20
+ return schema;
17
21
  }
18
- export const logger = {
19
- error: (...args) =>
22
+ const logger = {
23
+ error: (...args) => (
20
24
  // eslint-disable-next-line no-console
21
- console.error(chalk.red('error'), '[graphql-eslint]', chalk(...args)),
22
- warn: (...args) =>
25
+ console.error(chalk.red("error"), "[graphql-eslint]", chalk(...args))
26
+ ),
27
+ warn: (...args) => (
23
28
  // eslint-disable-next-line no-console
24
- console.warn(chalk.yellow('warning'), '[graphql-eslint]', chalk(...args)),
29
+ console.warn(chalk.yellow("warning"), "[graphql-eslint]", chalk(...args))
30
+ )
25
31
  };
26
- export const normalizePath = (path) => (path || '').replace(/\\/g, '/');
27
- export const VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/;
28
- export const CWD = process.cwd();
29
- export const getTypeName = (node) => 'type' in node ? getTypeName(node.type) : 'name' in node && node.name ? node.name.value : '';
30
- export const TYPES_KINDS = [
31
- Kind.OBJECT_TYPE_DEFINITION,
32
- Kind.INTERFACE_TYPE_DEFINITION,
33
- Kind.ENUM_TYPE_DEFINITION,
34
- Kind.SCALAR_TYPE_DEFINITION,
35
- Kind.INPUT_OBJECT_TYPE_DEFINITION,
36
- Kind.UNION_TYPE_DEFINITION,
32
+ const normalizePath = (path) => (path || "").replace(/\\/g, "/");
33
+ const VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/;
34
+ const CWD = process.cwd();
35
+ const getTypeName = (node) => "type" in node ? getTypeName(node.type) : "name" in node && node.name ? node.name.value : "";
36
+ const TYPES_KINDS = [
37
+ Kind.OBJECT_TYPE_DEFINITION,
38
+ Kind.INTERFACE_TYPE_DEFINITION,
39
+ Kind.ENUM_TYPE_DEFINITION,
40
+ Kind.SCALAR_TYPE_DEFINITION,
41
+ Kind.INPUT_OBJECT_TYPE_DEFINITION,
42
+ Kind.UNION_TYPE_DEFINITION
37
43
  ];
38
- export const pascalCase = (str) => lowerCase(str)
39
- .split(' ')
40
- .map(word => word.charAt(0).toUpperCase() + word.slice(1))
41
- .join('');
42
- export const camelCase = (str) => {
43
- const result = pascalCase(str);
44
- return result.charAt(0).toLowerCase() + result.slice(1);
44
+ const pascalCase = (str) => lowerCase(str).split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
45
+ const camelCase = (str) => {
46
+ const result = pascalCase(str);
47
+ return result.charAt(0).toLowerCase() + result.slice(1);
45
48
  };
46
- export const convertCase = (style, str) => {
47
- switch (style) {
48
- case 'camelCase':
49
- return camelCase(str);
50
- case 'PascalCase':
51
- return pascalCase(str);
52
- case 'snake_case':
53
- return lowerCase(str).replace(/ /g, '_');
54
- case 'UPPER_CASE':
55
- return lowerCase(str).replace(/ /g, '_').toUpperCase();
56
- case 'kebab-case':
57
- return lowerCase(str).replace(/ /g, '-');
58
- }
49
+ const convertCase = (style, str) => {
50
+ switch (style) {
51
+ case "camelCase":
52
+ return camelCase(str);
53
+ case "PascalCase":
54
+ return pascalCase(str);
55
+ case "snake_case":
56
+ return lowerCase(str).replace(/ /g, "_");
57
+ case "UPPER_CASE":
58
+ return lowerCase(str).replace(/ /g, "_").toUpperCase();
59
+ case "kebab-case":
60
+ return lowerCase(str).replace(/ /g, "-");
61
+ }
59
62
  };
60
- export function getLocation(start, fieldName = '') {
61
- const { line, column } = start;
62
- return {
63
- start: {
64
- line,
65
- column,
66
- },
67
- end: {
68
- line,
69
- column: column + fieldName.length,
70
- },
71
- };
72
- }
73
- export const REPORT_ON_FIRST_CHARACTER = { column: 0, line: 1 };
74
- export const ARRAY_DEFAULT_OPTIONS = {
75
- type: 'array',
76
- uniqueItems: true,
77
- minItems: 1,
78
- items: {
79
- type: 'string',
63
+ function getLocation(start, fieldName = "") {
64
+ const { line, column } = start;
65
+ return {
66
+ start: {
67
+ line,
68
+ column
80
69
  },
70
+ end: {
71
+ line,
72
+ column: column + fieldName.length
73
+ }
74
+ };
75
+ }
76
+ const REPORT_ON_FIRST_CHARACTER = { column: 0, line: 1 };
77
+ const ARRAY_DEFAULT_OPTIONS = {
78
+ type: "array",
79
+ uniqueItems: true,
80
+ minItems: 1,
81
+ items: {
82
+ type: "string"
83
+ }
81
84
  };
82
- export const englishJoinWords = (words) => new Intl.ListFormat('en-US', { type: 'disjunction' }).format(words);
83
- export function truthy(value) {
84
- return !!value;
85
+ const englishJoinWords = (words) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(words);
86
+ function truthy(value) {
87
+ return !!value;
85
88
  }
86
89
  const DisplayNodeNameMap = {
87
- [Kind.OBJECT_TYPE_DEFINITION]: 'type',
88
- [Kind.OBJECT_TYPE_EXTENSION]: 'type',
89
- [Kind.INTERFACE_TYPE_DEFINITION]: 'interface',
90
- [Kind.INTERFACE_TYPE_EXTENSION]: 'interface',
91
- [Kind.ENUM_TYPE_DEFINITION]: 'enum',
92
- [Kind.ENUM_TYPE_EXTENSION]: 'enum',
93
- [Kind.SCALAR_TYPE_DEFINITION]: 'scalar',
94
- [Kind.INPUT_OBJECT_TYPE_DEFINITION]: 'input',
95
- [Kind.INPUT_OBJECT_TYPE_EXTENSION]: 'input',
96
- [Kind.UNION_TYPE_DEFINITION]: 'union',
97
- [Kind.UNION_TYPE_EXTENSION]: 'union',
98
- [Kind.DIRECTIVE_DEFINITION]: 'directive',
99
- [Kind.FIELD_DEFINITION]: 'field',
100
- [Kind.ENUM_VALUE_DEFINITION]: 'enum value',
101
- [Kind.INPUT_VALUE_DEFINITION]: 'input value',
102
- [Kind.ARGUMENT]: 'argument',
103
- [Kind.VARIABLE]: 'variable',
104
- [Kind.FRAGMENT_DEFINITION]: 'fragment',
105
- [Kind.OPERATION_DEFINITION]: 'operation',
106
- [Kind.FIELD]: 'field',
90
+ [Kind.OBJECT_TYPE_DEFINITION]: "type",
91
+ [Kind.OBJECT_TYPE_EXTENSION]: "type",
92
+ [Kind.INTERFACE_TYPE_DEFINITION]: "interface",
93
+ [Kind.INTERFACE_TYPE_EXTENSION]: "interface",
94
+ [Kind.ENUM_TYPE_DEFINITION]: "enum",
95
+ [Kind.ENUM_TYPE_EXTENSION]: "enum",
96
+ [Kind.SCALAR_TYPE_DEFINITION]: "scalar",
97
+ [Kind.INPUT_OBJECT_TYPE_DEFINITION]: "input",
98
+ [Kind.INPUT_OBJECT_TYPE_EXTENSION]: "input",
99
+ [Kind.UNION_TYPE_DEFINITION]: "union",
100
+ [Kind.UNION_TYPE_EXTENSION]: "union",
101
+ [Kind.DIRECTIVE_DEFINITION]: "directive",
102
+ [Kind.FIELD_DEFINITION]: "field",
103
+ [Kind.ENUM_VALUE_DEFINITION]: "enum value",
104
+ [Kind.INPUT_VALUE_DEFINITION]: "input value",
105
+ [Kind.ARGUMENT]: "argument",
106
+ [Kind.VARIABLE]: "variable",
107
+ [Kind.FRAGMENT_DEFINITION]: "fragment",
108
+ [Kind.OPERATION_DEFINITION]: "operation",
109
+ [Kind.FIELD]: "field"
107
110
  };
108
- export function displayNodeName(node) {
109
- var _a, _b;
110
- return `${node.kind === Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${('alias' in node && ((_a = node.alias) === null || _a === void 0 ? void 0 : _a.value)) || ('name' in node && ((_b = node.name) === null || _b === void 0 ? void 0 : _b.value))}"`;
111
+ function displayNodeName(node) {
112
+ return `${node.kind === Kind.OPERATION_DEFINITION ? node.operation : DisplayNodeNameMap[node.kind]} "${"alias" in node && node.alias?.value || "name" in node && node.name?.value}"`;
111
113
  }
112
- export function getNodeName(node) {
113
- switch (node.kind) {
114
- case Kind.OBJECT_TYPE_DEFINITION:
115
- case Kind.OBJECT_TYPE_EXTENSION:
116
- case Kind.INTERFACE_TYPE_DEFINITION:
117
- case Kind.ENUM_TYPE_DEFINITION:
118
- case Kind.SCALAR_TYPE_DEFINITION:
119
- case Kind.INPUT_OBJECT_TYPE_DEFINITION:
120
- case Kind.UNION_TYPE_DEFINITION:
121
- case Kind.DIRECTIVE_DEFINITION:
122
- return displayNodeName(node);
123
- case Kind.FIELD_DEFINITION:
124
- case Kind.INPUT_VALUE_DEFINITION:
125
- case Kind.ENUM_VALUE_DEFINITION:
126
- return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
127
- case Kind.OPERATION_DEFINITION:
128
- return node.name ? displayNodeName(node) : node.operation;
129
- }
130
- return '';
114
+ function getNodeName(node) {
115
+ switch (node.kind) {
116
+ case Kind.OBJECT_TYPE_DEFINITION:
117
+ case Kind.OBJECT_TYPE_EXTENSION:
118
+ case Kind.INTERFACE_TYPE_DEFINITION:
119
+ case Kind.ENUM_TYPE_DEFINITION:
120
+ case Kind.SCALAR_TYPE_DEFINITION:
121
+ case Kind.INPUT_OBJECT_TYPE_DEFINITION:
122
+ case Kind.UNION_TYPE_DEFINITION:
123
+ case Kind.DIRECTIVE_DEFINITION:
124
+ return displayNodeName(node);
125
+ case Kind.FIELD_DEFINITION:
126
+ case Kind.INPUT_VALUE_DEFINITION:
127
+ case Kind.ENUM_VALUE_DEFINITION:
128
+ return `${displayNodeName(node)} in ${displayNodeName(node.parent)}`;
129
+ case Kind.OPERATION_DEFINITION:
130
+ return node.name ? displayNodeName(node) : node.operation;
131
+ }
132
+ return "";
131
133
  }
134
+ export {
135
+ ARRAY_DEFAULT_OPTIONS,
136
+ CWD,
137
+ REPORT_ON_FIRST_CHARACTER,
138
+ TYPES_KINDS,
139
+ VIRTUAL_DOCUMENT_REGEX,
140
+ camelCase,
141
+ convertCase,
142
+ displayNodeName,
143
+ englishJoinWords,
144
+ getLocation,
145
+ getNodeName,
146
+ getTypeName,
147
+ logger,
148
+ normalizePath,
149
+ pascalCase,
150
+ requireGraphQLSchemaFromContext,
151
+ requireSiblingsOperations,
152
+ truthy
153
+ };
package/package.json CHANGED
@@ -1,8 +1,39 @@
1
1
  {
2
2
  "name": "@graphql-eslint/eslint-plugin",
3
- "version": "3.19.3",
3
+ "version": "3.20.0-alpha-20230703155329-a20556f",
4
4
  "description": "GraphQL plugin for ESLint",
5
- "sideEffects": false,
5
+ "repository": "https://github.com/B2o5T/graphql-eslint",
6
+ "author": "Dotan Simha <dotansimha@gmail.com>",
7
+ "license": "MIT",
8
+ "engines": {
9
+ "node": ">=12"
10
+ },
11
+ "main": "cjs/index.js",
12
+ "module": "esm/index.js",
13
+ "exports": {
14
+ "./package.json": "./package.json",
15
+ ".": {
16
+ "require": {
17
+ "types": "./typings/index.d.ts",
18
+ "default": "./cjs/index.js"
19
+ },
20
+ "import": {
21
+ "types": "./typings/index.d.mts",
22
+ "default": "./esm/index.js"
23
+ },
24
+ "default": {
25
+ "types": "./typings/index.d.mts",
26
+ "default": "./esm/index.js"
27
+ }
28
+ }
29
+ },
30
+ "typings": "typings/index.d.mts",
31
+ "keywords": [
32
+ "eslint",
33
+ "eslintplugin",
34
+ "eslint-plugin",
35
+ "graphql"
36
+ ],
6
37
  "peerDependencies": {
7
38
  "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
8
39
  },
@@ -19,36 +50,15 @@
19
50
  "lodash.lowercase": "^4.3.0",
20
51
  "tslib": "^2.4.1"
21
52
  },
22
- "repository": "https://github.com/B2o5T/graphql-eslint",
23
- "keywords": [
24
- "eslint",
25
- "eslintplugin",
26
- "eslint-plugin",
27
- "graphql"
28
- ],
29
- "author": "Dotan Simha <dotansimha@gmail.com>",
30
- "license": "MIT",
31
- "main": "cjs/index.js",
32
- "module": "esm/index.js",
33
- "typings": "typings/index.d.ts",
53
+ "publishConfig": {
54
+ "directory": "dist",
55
+ "access": "public"
56
+ },
57
+ "sideEffects": false,
34
58
  "typescript": {
35
59
  "definition": "typings/index.d.ts"
36
60
  },
37
- "exports": {
38
- "./package.json": "./package.json",
39
- ".": {
40
- "require": {
41
- "types": "./typings/index.d.cts",
42
- "default": "./cjs/index.js"
43
- },
44
- "import": {
45
- "types": "./typings/index.d.ts",
46
- "default": "./esm/index.js"
47
- },
48
- "default": {
49
- "types": "./typings/index.d.ts",
50
- "default": "./esm/index.js"
51
- }
52
- }
61
+ "scripts": {
62
+ "build": "tsup"
53
63
  }
54
64
  }
@@ -1,3 +0,0 @@
1
- import { DocumentNode, GraphQLSchema } from 'graphql';
2
- import { GraphQLESTreeNode } from './types.cjs';
3
- export declare function convertToESTree<T extends DocumentNode>(node: T, schema?: GraphQLSchema | null): GraphQLESTreeNode<T>;
@@ -1,3 +0,0 @@
1
- import { DocumentNode, GraphQLSchema } from 'graphql';
2
- import { GraphQLESTreeNode } from './types.js';
3
- export declare function convertToESTree<T extends DocumentNode>(node: T, schema?: GraphQLSchema | null): GraphQLESTreeNode<T>;
@@ -1,3 +0,0 @@
1
- export * from './converter.cjs';
2
- export * from './types.cjs';
3
- export * from './utils.cjs';
@@ -1,3 +0,0 @@
1
- export * from './converter.js';
2
- export * from './types.js';
3
- export * from './utils.js';
@@ -1,13 +0,0 @@
1
- import { AST } from 'eslint';
2
- import { Comment, SourceLocation } from 'estree';
3
- import { GraphQLNamedType, GraphQLOutputType, Location, Token } from 'graphql';
4
- export declare const valueFromNode: (valueNode: import("graphql").ValueNode, variables?: import("graphql/jsutils/Maybe").Maybe<import("graphql/jsutils/ObjMap").ObjMap<unknown>>) => any;
5
- export declare function getBaseType(type: GraphQLOutputType): GraphQLNamedType;
6
- type TokenKindValue = ':' | '!' | '...' | '(' | ')' | '[' | ']' | '{' | '}' | '@' | '&' | '<SOF>' | '=' | '|' | '$' | 'BlockString' | 'Comment' | 'Float' | 'Int' | 'Name' | 'String';
7
- export declare function convertToken<T extends TokenKindValue | 'Block' | 'Line'>(token: Token, type: T): Omit<AST.Token, 'type'> & {
8
- type: T;
9
- };
10
- export declare function extractTokens(filePath: string, code: string): AST.Token[];
11
- export declare function extractComments(loc?: Location): Comment[];
12
- export declare function convertLocation(location: Location): SourceLocation;
13
- export {};
@@ -1,13 +0,0 @@
1
- import { AST } from 'eslint';
2
- import { Comment, SourceLocation } from 'estree';
3
- import { GraphQLNamedType, GraphQLOutputType, Location, Token } from 'graphql';
4
- export declare const valueFromNode: (valueNode: import("graphql").ValueNode, variables?: import("graphql/jsutils/Maybe").Maybe<import("graphql/jsutils/ObjMap").ObjMap<unknown>>) => any;
5
- export declare function getBaseType(type: GraphQLOutputType): GraphQLNamedType;
6
- type TokenKindValue = ':' | '!' | '...' | '(' | ')' | '[' | ']' | '{' | '}' | '@' | '&' | '<SOF>' | '=' | '|' | '$' | 'BlockString' | 'Comment' | 'Float' | 'Int' | 'Name' | 'String';
7
- export declare function convertToken<T extends TokenKindValue | 'Block' | 'Line'>(token: Token, type: T): Omit<AST.Token, 'type'> & {
8
- type: T;
9
- };
10
- export declare function extractTokens(filePath: string, code: string): AST.Token[];
11
- export declare function extractComments(loc?: Location): Comment[];
12
- export declare function convertLocation(location: Location): SourceLocation;
13
- export {};
@@ -1,4 +0,0 @@
1
- import { GraphQLConfig } from 'graphql-config';
2
- import { ParserOptions } from './types.cjs';
3
- export declare function loadOnDiskGraphQLConfig(filePath: string): GraphQLConfig;
4
- export declare function loadGraphQLConfig(options: ParserOptions): GraphQLConfig;
@@ -1,4 +0,0 @@
1
- import { GraphQLConfig } from 'graphql-config';
2
- import { ParserOptions } from './types.js';
3
- export declare function loadOnDiskGraphQLConfig(filePath: string): GraphQLConfig;
4
- export declare function loadGraphQLConfig(options: ParserOptions): GraphQLConfig;
@@ -1,10 +0,0 @@
1
- export { parseForESLint } from './parser.cjs';
2
- export { rules } from './rules/index.cjs';
3
- export * from './testkit.cjs';
4
- export * from './types.cjs';
5
- export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.cjs';
6
- export declare const processors: {
7
- graphql: import("eslint").Linter.Processor<string | import("./processor.js").Block>;
8
- };
9
- export { configs } from './configs/index.cjs';
10
- export { flatConfigs } from './flat-configs.cjs';
@@ -1,10 +0,0 @@
1
- export { parseForESLint } from './parser.js';
2
- export { rules } from './rules/index.js';
3
- export * from './testkit.js';
4
- export * from './types.js';
5
- export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.js';
6
- export declare const processors: {
7
- graphql: import("eslint").Linter.Processor<string | import("./processor.js").Block>;
8
- };
9
- export { configs } from './configs/index.js';
10
- export { flatConfigs } from './flat-configs.js';
@@ -1,2 +0,0 @@
1
- import { GraphQLESLintParseResult, ParserOptions } from './types.cjs';
2
- export declare function parseForESLint(code: string, options: ParserOptions): GraphQLESLintParseResult;
@@ -1,2 +0,0 @@
1
- import { GraphQLESLintParseResult, ParserOptions } from './types.js';
2
- export declare function parseForESLint(code: string, options: ParserOptions): GraphQLESLintParseResult;
@@ -1,6 +0,0 @@
1
- import { Linter } from 'eslint';
2
- export type Block = Linter.ProcessorFile & {
3
- lineOffset: number;
4
- offset: number;
5
- };
6
- export declare const processor: Linter.Processor<Block | string>;
@@ -1,6 +0,0 @@
1
- import { Linter } from 'eslint';
2
- export type Block = Linter.ProcessorFile & {
3
- lineOffset: number;
4
- offset: number;
5
- };
6
- export declare const processor: Linter.Processor<Block | string>;
@@ -1,2 +0,0 @@
1
- import { GraphQLESLintRule } from '../types.cjs';
2
- export declare const GRAPHQL_JS_VALIDATIONS: Record<string, GraphQLESLintRule>;
@@ -1,2 +0,0 @@
1
- import { GraphQLESLintRule } from '../types.js';
2
- export declare const GRAPHQL_JS_VALIDATIONS: Record<string, GraphQLESLintRule>;