@graphql-eslint/eslint-plugin 3.19.3 → 3.20.0-alpha-20230703155329-a20556f

Sign up to get free protection for your applications and to get access to all the features.
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>;