graphql 0.0.1-test.1

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 (390) hide show
  1. package/LICENSE +21 -0
  2. package/NotSupportedTSVersion.d.ts +1 -0
  3. package/README.md +158 -0
  4. package/error/GraphQLError.d.ts +142 -0
  5. package/error/GraphQLError.js +267 -0
  6. package/error/GraphQLError.mjs +253 -0
  7. package/error/index.d.ts +7 -0
  8. package/error/index.js +41 -0
  9. package/error/index.mjs +3 -0
  10. package/error/locatedError.d.ts +13 -0
  11. package/error/locatedError.js +40 -0
  12. package/error/locatedError.mjs +32 -0
  13. package/error/syntaxError.d.ts +11 -0
  14. package/error/syntaxError.js +21 -0
  15. package/error/syntaxError.mjs +11 -0
  16. package/execution/collectFields.d.ts +45 -0
  17. package/execution/collectFields.js +229 -0
  18. package/execution/collectFields.mjs +213 -0
  19. package/execution/execute.d.ts +185 -0
  20. package/execution/execute.js +1016 -0
  21. package/execution/execute.mjs +988 -0
  22. package/execution/index.d.ts +14 -0
  23. package/execution/index.js +67 -0
  24. package/execution/index.mjs +9 -0
  25. package/execution/mapAsyncIterator.d.ts +9 -0
  26. package/execution/mapAsyncIterator.js +68 -0
  27. package/execution/mapAsyncIterator.mjs +61 -0
  28. package/execution/subscribe.d.ts +68 -0
  29. package/execution/subscribe.js +261 -0
  30. package/execution/subscribe.mjs +239 -0
  31. package/execution/values.d.ts +81 -0
  32. package/execution/values.js +292 -0
  33. package/execution/values.mjs +255 -0
  34. package/graphql.d.ts +67 -0
  35. package/graphql.js +96 -0
  36. package/graphql.mjs +122 -0
  37. package/index.d.ts +411 -0
  38. package/index.js +1263 -0
  39. package/index.mjs +254 -0
  40. package/jsutils/Maybe.d.ts +2 -0
  41. package/jsutils/Maybe.js +5 -0
  42. package/jsutils/Maybe.mjs +1 -0
  43. package/jsutils/ObjMap.d.ts +16 -0
  44. package/jsutils/ObjMap.js +5 -0
  45. package/jsutils/ObjMap.mjs +1 -0
  46. package/jsutils/Path.d.ts +20 -0
  47. package/jsutils/Path.js +33 -0
  48. package/jsutils/Path.mjs +25 -0
  49. package/jsutils/PromiseOrValue.d.ts +1 -0
  50. package/jsutils/PromiseOrValue.js +5 -0
  51. package/jsutils/PromiseOrValue.mjs +1 -0
  52. package/jsutils/devAssert.d.ts +1 -0
  53. package/jsutils/devAssert.js +14 -0
  54. package/jsutils/devAssert.mjs +7 -0
  55. package/jsutils/didYouMean.d.ts +8 -0
  56. package/jsutils/didYouMean.js +38 -0
  57. package/jsutils/didYouMean.mjs +32 -0
  58. package/jsutils/groupBy.d.ts +7 -0
  59. package/jsutils/groupBy.js +26 -0
  60. package/jsutils/groupBy.mjs +19 -0
  61. package/jsutils/identityFunc.d.ts +4 -0
  62. package/jsutils/identityFunc.js +13 -0
  63. package/jsutils/identityFunc.mjs +6 -0
  64. package/jsutils/inspect.d.ts +4 -0
  65. package/jsutils/inspect.js +121 -0
  66. package/jsutils/inspect.mjs +115 -0
  67. package/jsutils/instanceOf.d.ts +16 -0
  68. package/jsutils/instanceOf.js +60 -0
  69. package/jsutils/instanceOf.mjs +52 -0
  70. package/jsutils/invariant.d.ts +4 -0
  71. package/jsutils/invariant.js +16 -0
  72. package/jsutils/invariant.mjs +9 -0
  73. package/jsutils/isAsyncIterable.d.ts +7 -0
  74. package/jsutils/isAsyncIterable.js +18 -0
  75. package/jsutils/isAsyncIterable.mjs +11 -0
  76. package/jsutils/isIterableObject.d.ts +20 -0
  77. package/jsutils/isIterableObject.js +32 -0
  78. package/jsutils/isIterableObject.mjs +25 -0
  79. package/jsutils/isObjectLike.d.ts +7 -0
  80. package/jsutils/isObjectLike.js +14 -0
  81. package/jsutils/isObjectLike.mjs +7 -0
  82. package/jsutils/isPromise.d.ts +5 -0
  83. package/jsutils/isPromise.js +17 -0
  84. package/jsutils/isPromise.mjs +10 -0
  85. package/jsutils/keyMap.d.ts +32 -0
  86. package/jsutils/keyMap.js +43 -0
  87. package/jsutils/keyMap.mjs +36 -0
  88. package/jsutils/keyValMap.d.ts +23 -0
  89. package/jsutils/keyValMap.js +33 -0
  90. package/jsutils/keyValMap.mjs +26 -0
  91. package/jsutils/mapValue.d.ts +9 -0
  92. package/jsutils/mapValue.js +20 -0
  93. package/jsutils/mapValue.mjs +13 -0
  94. package/jsutils/memoize3.d.ts +9 -0
  95. package/jsutils/memoize3.js +41 -0
  96. package/jsutils/memoize3.mjs +34 -0
  97. package/jsutils/naturalCompare.d.ts +8 -0
  98. package/jsutils/naturalCompare.js +69 -0
  99. package/jsutils/naturalCompare.mjs +61 -0
  100. package/jsutils/printPathArray.d.ts +6 -0
  101. package/jsutils/printPathArray.js +17 -0
  102. package/jsutils/printPathArray.mjs +10 -0
  103. package/jsutils/promiseForObject.d.ts +11 -0
  104. package/jsutils/promiseForObject.js +25 -0
  105. package/jsutils/promiseForObject.mjs +18 -0
  106. package/jsutils/promiseReduce.d.ts +13 -0
  107. package/jsutils/promiseReduce.js +27 -0
  108. package/jsutils/promiseReduce.mjs +20 -0
  109. package/jsutils/suggestionList.d.ts +8 -0
  110. package/jsutils/suggestionList.js +139 -0
  111. package/jsutils/suggestionList.mjs +130 -0
  112. package/jsutils/toError.d.ts +4 -0
  113. package/jsutils/toError.js +25 -0
  114. package/jsutils/toError.mjs +18 -0
  115. package/jsutils/toObjMap.d.ts +5 -0
  116. package/jsutils/toObjMap.js +24 -0
  117. package/jsutils/toObjMap.mjs +17 -0
  118. package/language/ast.d.ts +536 -0
  119. package/language/ast.js +224 -0
  120. package/language/ast.mjs +206 -0
  121. package/language/blockString.d.ts +28 -0
  122. package/language/blockString.js +195 -0
  123. package/language/blockString.mjs +178 -0
  124. package/language/characterClasses.d.ts +47 -0
  125. package/language/characterClasses.js +75 -0
  126. package/language/characterClasses.mjs +64 -0
  127. package/language/directiveLocation.d.ts +32 -0
  128. package/language/directiveLocation.js +40 -0
  129. package/language/directiveLocation.mjs +31 -0
  130. package/language/index.d.ts +97 -0
  131. package/language/index.js +215 -0
  132. package/language/index.mjs +29 -0
  133. package/language/kinds.d.ts +65 -0
  134. package/language/kinds.js +64 -0
  135. package/language/kinds.mjs +55 -0
  136. package/language/lexer.d.ts +45 -0
  137. package/language/lexer.js +1006 -0
  138. package/language/lexer.mjs +902 -0
  139. package/language/location.d.ts +16 -0
  140. package/language/location.js +38 -0
  141. package/language/location.mjs +30 -0
  142. package/language/parser.d.ts +554 -0
  143. package/language/parser.js +1567 -0
  144. package/language/parser.mjs +1524 -0
  145. package/language/predicates.d.ts +33 -0
  146. package/language/predicates.js +109 -0
  147. package/language/predicates.mjs +81 -0
  148. package/language/printLocation.d.ts +14 -0
  149. package/language/printLocation.js +74 -0
  150. package/language/printLocation.mjs +66 -0
  151. package/language/printString.d.ts +5 -0
  152. package/language/printString.js +183 -0
  153. package/language/printString.mjs +176 -0
  154. package/language/printer.d.ts +6 -0
  155. package/language/printer.js +351 -0
  156. package/language/printer.mjs +339 -0
  157. package/language/source.d.ts +25 -0
  158. package/language/source.js +65 -0
  159. package/language/source.mjs +50 -0
  160. package/language/tokenKind.d.ts +34 -0
  161. package/language/tokenKind.js +44 -0
  162. package/language/tokenKind.mjs +35 -0
  163. package/language/visitor.d.ts +194 -0
  164. package/language/visitor.js +377 -0
  165. package/language/visitor.mjs +361 -0
  166. package/package.json +40 -0
  167. package/subscription/index.d.ts +19 -0
  168. package/subscription/index.js +19 -0
  169. package/subscription/index.mjs +19 -0
  170. package/type/assertName.d.ts +10 -0
  171. package/type/assertName.js +59 -0
  172. package/type/assertName.mjs +44 -0
  173. package/type/definition.d.ts +917 -0
  174. package/type/definition.js +1329 -0
  175. package/type/definition.mjs +1167 -0
  176. package/type/directives.d.ts +86 -0
  177. package/type/directives.js +224 -0
  178. package/type/directives.mjs +190 -0
  179. package/type/index.d.ts +150 -0
  180. package/type/index.js +547 -0
  181. package/type/index.mjs +103 -0
  182. package/type/introspection.d.ts +29 -0
  183. package/type/introspection.js +617 -0
  184. package/type/introspection.mjs +550 -0
  185. package/type/scalars.d.ts +19 -0
  186. package/type/scalars.js +359 -0
  187. package/type/scalars.mjs +299 -0
  188. package/type/schema.d.ts +170 -0
  189. package/type/schema.js +402 -0
  190. package/type/schema.mjs +381 -0
  191. package/type/validate.d.ts +17 -0
  192. package/type/validate.js +672 -0
  193. package/type/validate.mjs +647 -0
  194. package/utilities/TypeInfo.d.ts +67 -0
  195. package/utilities/TypeInfo.js +418 -0
  196. package/utilities/TypeInfo.mjs +395 -0
  197. package/utilities/assertValidName.d.ts +13 -0
  198. package/utilities/assertValidName.js +51 -0
  199. package/utilities/assertValidName.mjs +40 -0
  200. package/utilities/astFromValue.d.ts +28 -0
  201. package/utilities/astFromValue.js +190 -0
  202. package/utilities/astFromValue.mjs +177 -0
  203. package/utilities/buildASTSchema.d.ts +35 -0
  204. package/utilities/buildASTSchema.js +115 -0
  205. package/utilities/buildASTSchema.mjs +97 -0
  206. package/utilities/buildClientSchema.d.ts +19 -0
  207. package/utilities/buildClientSchema.js +386 -0
  208. package/utilities/buildClientSchema.mjs +363 -0
  209. package/utilities/coerceInputValue.d.ts +16 -0
  210. package/utilities/coerceInputValue.js +191 -0
  211. package/utilities/coerceInputValue.mjs +172 -0
  212. package/utilities/concatAST.d.ts +9 -0
  213. package/utilities/concatAST.js +26 -0
  214. package/utilities/concatAST.mjs +19 -0
  215. package/utilities/extendSchema.d.ts +40 -0
  216. package/utilities/extendSchema.js +798 -0
  217. package/utilities/extendSchema.mjs +789 -0
  218. package/utilities/findBreakingChanges.d.ts +51 -0
  219. package/utilities/findBreakingChanges.js +547 -0
  220. package/utilities/findBreakingChanges.mjs +516 -0
  221. package/utilities/getIntrospectionQuery.d.ts +182 -0
  222. package/utilities/getIntrospectionQuery.js +134 -0
  223. package/utilities/getIntrospectionQuery.mjs +127 -0
  224. package/utilities/getOperationAST.d.ts +11 -0
  225. package/utilities/getOperationAST.js +43 -0
  226. package/utilities/getOperationAST.mjs +36 -0
  227. package/utilities/getOperationRootType.d.ts +15 -0
  228. package/utilities/getOperationRootType.js +59 -0
  229. package/utilities/getOperationRootType.mjs +52 -0
  230. package/utilities/index.d.ts +61 -0
  231. package/utilities/index.js +233 -0
  232. package/utilities/index.mjs +55 -0
  233. package/utilities/introspectionFromSchema.d.ts +18 -0
  234. package/utilities/introspectionFromSchema.js +42 -0
  235. package/utilities/introspectionFromSchema.mjs +30 -0
  236. package/utilities/lexicographicSortSchema.d.ts +9 -0
  237. package/utilities/lexicographicSortSchema.js +177 -0
  238. package/utilities/lexicographicSortSchema.mjs +172 -0
  239. package/utilities/printSchema.d.ts +5 -0
  240. package/utilities/printSchema.js +333 -0
  241. package/utilities/printSchema.mjs +309 -0
  242. package/utilities/separateOperations.d.ts +11 -0
  243. package/utilities/separateOperations.js +88 -0
  244. package/utilities/separateOperations.mjs +80 -0
  245. package/utilities/sortValueNode.d.ts +9 -0
  246. package/utilities/sortValueNode.js +47 -0
  247. package/utilities/sortValueNode.mjs +39 -0
  248. package/utilities/stripIgnoredCharacters.d.ts +62 -0
  249. package/utilities/stripIgnoredCharacters.js +121 -0
  250. package/utilities/stripIgnoredCharacters.mjs +104 -0
  251. package/utilities/typeComparators.d.ts +32 -0
  252. package/utilities/typeComparators.js +116 -0
  253. package/utilities/typeComparators.mjs +106 -0
  254. package/utilities/typeFromAST.d.ts +32 -0
  255. package/utilities/typeFromAST.js +27 -0
  256. package/utilities/typeFromAST.mjs +18 -0
  257. package/utilities/typedQueryDocumentNode.d.ts +22 -0
  258. package/utilities/typedQueryDocumentNode.js +5 -0
  259. package/utilities/typedQueryDocumentNode.mjs +1 -0
  260. package/utilities/valueFromAST.d.ts +29 -0
  261. package/utilities/valueFromAST.js +185 -0
  262. package/utilities/valueFromAST.mjs +172 -0
  263. package/utilities/valueFromASTUntyped.d.ts +23 -0
  264. package/utilities/valueFromASTUntyped.js +61 -0
  265. package/utilities/valueFromASTUntyped.mjs +53 -0
  266. package/validation/ValidationContext.d.ts +95 -0
  267. package/validation/ValidationContext.js +232 -0
  268. package/validation/ValidationContext.mjs +212 -0
  269. package/validation/index.d.ts +40 -0
  270. package/validation/index.js +317 -0
  271. package/validation/index.mjs +68 -0
  272. package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
  273. package/validation/rules/ExecutableDefinitionsRule.js +44 -0
  274. package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
  275. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
  276. package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
  277. package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
  278. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
  279. package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
  280. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
  281. package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
  282. package/validation/rules/KnownArgumentNamesRule.js +116 -0
  283. package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
  284. package/validation/rules/KnownDirectivesRule.d.ts +16 -0
  285. package/validation/rules/KnownDirectivesRule.js +163 -0
  286. package/validation/rules/KnownDirectivesRule.mjs +146 -0
  287. package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
  288. package/validation/rules/KnownFragmentNamesRule.js +34 -0
  289. package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
  290. package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
  291. package/validation/rules/KnownTypeNamesRule.js +87 -0
  292. package/validation/rules/KnownTypeNamesRule.mjs +75 -0
  293. package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
  294. package/validation/rules/LoneAnonymousOperationRule.js +40 -0
  295. package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
  296. package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
  297. package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
  298. package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
  299. package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
  300. package/validation/rules/NoFragmentCyclesRule.js +83 -0
  301. package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
  302. package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
  303. package/validation/rules/NoUndefinedVariablesRule.js +50 -0
  304. package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
  305. package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
  306. package/validation/rules/NoUnusedFragmentsRule.js +59 -0
  307. package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
  308. package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
  309. package/validation/rules/NoUnusedVariablesRule.js +55 -0
  310. package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
  311. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
  312. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
  313. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
  314. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
  315. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
  316. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
  317. package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
  318. package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
  319. package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
  320. package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
  321. package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
  322. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
  323. package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
  324. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
  325. package/validation/rules/ScalarLeafsRule.d.ts +9 -0
  326. package/validation/rules/ScalarLeafsRule.js +51 -0
  327. package/validation/rules/ScalarLeafsRule.mjs +42 -0
  328. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
  329. package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
  330. package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
  331. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
  332. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
  333. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
  334. package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
  335. package/validation/rules/UniqueArgumentNamesRule.js +53 -0
  336. package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
  337. package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
  338. package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
  339. package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
  340. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
  341. package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
  342. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
  343. package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
  344. package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
  345. package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
  346. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
  347. package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
  348. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
  349. package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
  350. package/validation/rules/UniqueFragmentNamesRule.js +39 -0
  351. package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
  352. package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
  353. package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
  354. package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
  355. package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
  356. package/validation/rules/UniqueOperationNamesRule.js +41 -0
  357. package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
  358. package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
  359. package/validation/rules/UniqueOperationTypesRule.js +67 -0
  360. package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
  361. package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
  362. package/validation/rules/UniqueTypeNamesRule.js +53 -0
  363. package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
  364. package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
  365. package/validation/rules/UniqueVariableNamesRule.js +47 -0
  366. package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
  367. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
  368. package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
  369. package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
  370. package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
  371. package/validation/rules/VariablesAreInputTypesRule.js +44 -0
  372. package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
  373. package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
  374. package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
  375. package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
  376. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
  377. package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
  378. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
  379. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
  380. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
  381. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
  382. package/validation/specifiedRules.d.ts +12 -0
  383. package/validation/specifiedRules.js +160 -0
  384. package/validation/specifiedRules.mjs +123 -0
  385. package/validation/validate.d.ts +61 -0
  386. package/validation/validate.js +151 -0
  387. package/validation/validate.mjs +133 -0
  388. package/version.d.ts +13 -0
  389. package/version.js +25 -0
  390. package/version.mjs +17 -0
@@ -0,0 +1,317 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ Object.defineProperty(exports, 'ExecutableDefinitionsRule', {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ExecutableDefinitionsRule.ExecutableDefinitionsRule;
10
+ },
11
+ });
12
+ Object.defineProperty(exports, 'FieldsOnCorrectTypeRule', {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _FieldsOnCorrectTypeRule.FieldsOnCorrectTypeRule;
16
+ },
17
+ });
18
+ Object.defineProperty(exports, 'FragmentsOnCompositeTypesRule', {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _FragmentsOnCompositeTypesRule.FragmentsOnCompositeTypesRule;
22
+ },
23
+ });
24
+ Object.defineProperty(exports, 'KnownArgumentNamesRule', {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _KnownArgumentNamesRule.KnownArgumentNamesRule;
28
+ },
29
+ });
30
+ Object.defineProperty(exports, 'KnownDirectivesRule', {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _KnownDirectivesRule.KnownDirectivesRule;
34
+ },
35
+ });
36
+ Object.defineProperty(exports, 'KnownFragmentNamesRule', {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _KnownFragmentNamesRule.KnownFragmentNamesRule;
40
+ },
41
+ });
42
+ Object.defineProperty(exports, 'KnownTypeNamesRule', {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _KnownTypeNamesRule.KnownTypeNamesRule;
46
+ },
47
+ });
48
+ Object.defineProperty(exports, 'LoneAnonymousOperationRule', {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _LoneAnonymousOperationRule.LoneAnonymousOperationRule;
52
+ },
53
+ });
54
+ Object.defineProperty(exports, 'LoneSchemaDefinitionRule', {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _LoneSchemaDefinitionRule.LoneSchemaDefinitionRule;
58
+ },
59
+ });
60
+ Object.defineProperty(exports, 'NoDeprecatedCustomRule', {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _NoDeprecatedCustomRule.NoDeprecatedCustomRule;
64
+ },
65
+ });
66
+ Object.defineProperty(exports, 'NoFragmentCyclesRule', {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _NoFragmentCyclesRule.NoFragmentCyclesRule;
70
+ },
71
+ });
72
+ Object.defineProperty(exports, 'NoSchemaIntrospectionCustomRule', {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _NoSchemaIntrospectionCustomRule.NoSchemaIntrospectionCustomRule;
76
+ },
77
+ });
78
+ Object.defineProperty(exports, 'NoUndefinedVariablesRule', {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _NoUndefinedVariablesRule.NoUndefinedVariablesRule;
82
+ },
83
+ });
84
+ Object.defineProperty(exports, 'NoUnusedFragmentsRule', {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _NoUnusedFragmentsRule.NoUnusedFragmentsRule;
88
+ },
89
+ });
90
+ Object.defineProperty(exports, 'NoUnusedVariablesRule', {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _NoUnusedVariablesRule.NoUnusedVariablesRule;
94
+ },
95
+ });
96
+ Object.defineProperty(exports, 'OverlappingFieldsCanBeMergedRule', {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _OverlappingFieldsCanBeMergedRule.OverlappingFieldsCanBeMergedRule;
100
+ },
101
+ });
102
+ Object.defineProperty(exports, 'PossibleFragmentSpreadsRule', {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _PossibleFragmentSpreadsRule.PossibleFragmentSpreadsRule;
106
+ },
107
+ });
108
+ Object.defineProperty(exports, 'PossibleTypeExtensionsRule', {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _PossibleTypeExtensionsRule.PossibleTypeExtensionsRule;
112
+ },
113
+ });
114
+ Object.defineProperty(exports, 'ProvidedRequiredArgumentsRule', {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _ProvidedRequiredArgumentsRule.ProvidedRequiredArgumentsRule;
118
+ },
119
+ });
120
+ Object.defineProperty(exports, 'ScalarLeafsRule', {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _ScalarLeafsRule.ScalarLeafsRule;
124
+ },
125
+ });
126
+ Object.defineProperty(exports, 'SingleFieldSubscriptionsRule', {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _SingleFieldSubscriptionsRule.SingleFieldSubscriptionsRule;
130
+ },
131
+ });
132
+ Object.defineProperty(exports, 'UniqueArgumentDefinitionNamesRule', {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _UniqueArgumentDefinitionNamesRule.UniqueArgumentDefinitionNamesRule;
136
+ },
137
+ });
138
+ Object.defineProperty(exports, 'UniqueArgumentNamesRule', {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _UniqueArgumentNamesRule.UniqueArgumentNamesRule;
142
+ },
143
+ });
144
+ Object.defineProperty(exports, 'UniqueDirectiveNamesRule', {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _UniqueDirectiveNamesRule.UniqueDirectiveNamesRule;
148
+ },
149
+ });
150
+ Object.defineProperty(exports, 'UniqueDirectivesPerLocationRule', {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _UniqueDirectivesPerLocationRule.UniqueDirectivesPerLocationRule;
154
+ },
155
+ });
156
+ Object.defineProperty(exports, 'UniqueEnumValueNamesRule', {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _UniqueEnumValueNamesRule.UniqueEnumValueNamesRule;
160
+ },
161
+ });
162
+ Object.defineProperty(exports, 'UniqueFieldDefinitionNamesRule', {
163
+ enumerable: true,
164
+ get: function () {
165
+ return _UniqueFieldDefinitionNamesRule.UniqueFieldDefinitionNamesRule;
166
+ },
167
+ });
168
+ Object.defineProperty(exports, 'UniqueFragmentNamesRule', {
169
+ enumerable: true,
170
+ get: function () {
171
+ return _UniqueFragmentNamesRule.UniqueFragmentNamesRule;
172
+ },
173
+ });
174
+ Object.defineProperty(exports, 'UniqueInputFieldNamesRule', {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _UniqueInputFieldNamesRule.UniqueInputFieldNamesRule;
178
+ },
179
+ });
180
+ Object.defineProperty(exports, 'UniqueOperationNamesRule', {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _UniqueOperationNamesRule.UniqueOperationNamesRule;
184
+ },
185
+ });
186
+ Object.defineProperty(exports, 'UniqueOperationTypesRule', {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _UniqueOperationTypesRule.UniqueOperationTypesRule;
190
+ },
191
+ });
192
+ Object.defineProperty(exports, 'UniqueTypeNamesRule', {
193
+ enumerable: true,
194
+ get: function () {
195
+ return _UniqueTypeNamesRule.UniqueTypeNamesRule;
196
+ },
197
+ });
198
+ Object.defineProperty(exports, 'UniqueVariableNamesRule', {
199
+ enumerable: true,
200
+ get: function () {
201
+ return _UniqueVariableNamesRule.UniqueVariableNamesRule;
202
+ },
203
+ });
204
+ Object.defineProperty(exports, 'ValidationContext', {
205
+ enumerable: true,
206
+ get: function () {
207
+ return _ValidationContext.ValidationContext;
208
+ },
209
+ });
210
+ Object.defineProperty(exports, 'ValuesOfCorrectTypeRule', {
211
+ enumerable: true,
212
+ get: function () {
213
+ return _ValuesOfCorrectTypeRule.ValuesOfCorrectTypeRule;
214
+ },
215
+ });
216
+ Object.defineProperty(exports, 'VariablesAreInputTypesRule', {
217
+ enumerable: true,
218
+ get: function () {
219
+ return _VariablesAreInputTypesRule.VariablesAreInputTypesRule;
220
+ },
221
+ });
222
+ Object.defineProperty(exports, 'VariablesInAllowedPositionRule', {
223
+ enumerable: true,
224
+ get: function () {
225
+ return _VariablesInAllowedPositionRule.VariablesInAllowedPositionRule;
226
+ },
227
+ });
228
+ Object.defineProperty(exports, 'specifiedRules', {
229
+ enumerable: true,
230
+ get: function () {
231
+ return _specifiedRules.specifiedRules;
232
+ },
233
+ });
234
+ Object.defineProperty(exports, 'validate', {
235
+ enumerable: true,
236
+ get: function () {
237
+ return _validate.validate;
238
+ },
239
+ });
240
+
241
+ var _validate = require('./validate.js');
242
+
243
+ var _ValidationContext = require('./ValidationContext.js');
244
+
245
+ var _specifiedRules = require('./specifiedRules.js');
246
+
247
+ var _ExecutableDefinitionsRule = require('./rules/ExecutableDefinitionsRule.js');
248
+
249
+ var _FieldsOnCorrectTypeRule = require('./rules/FieldsOnCorrectTypeRule.js');
250
+
251
+ var _FragmentsOnCompositeTypesRule = require('./rules/FragmentsOnCompositeTypesRule.js');
252
+
253
+ var _KnownArgumentNamesRule = require('./rules/KnownArgumentNamesRule.js');
254
+
255
+ var _KnownDirectivesRule = require('./rules/KnownDirectivesRule.js');
256
+
257
+ var _KnownFragmentNamesRule = require('./rules/KnownFragmentNamesRule.js');
258
+
259
+ var _KnownTypeNamesRule = require('./rules/KnownTypeNamesRule.js');
260
+
261
+ var _LoneAnonymousOperationRule = require('./rules/LoneAnonymousOperationRule.js');
262
+
263
+ var _NoFragmentCyclesRule = require('./rules/NoFragmentCyclesRule.js');
264
+
265
+ var _NoUndefinedVariablesRule = require('./rules/NoUndefinedVariablesRule.js');
266
+
267
+ var _NoUnusedFragmentsRule = require('./rules/NoUnusedFragmentsRule.js');
268
+
269
+ var _NoUnusedVariablesRule = require('./rules/NoUnusedVariablesRule.js');
270
+
271
+ var _OverlappingFieldsCanBeMergedRule = require('./rules/OverlappingFieldsCanBeMergedRule.js');
272
+
273
+ var _PossibleFragmentSpreadsRule = require('./rules/PossibleFragmentSpreadsRule.js');
274
+
275
+ var _ProvidedRequiredArgumentsRule = require('./rules/ProvidedRequiredArgumentsRule.js');
276
+
277
+ var _ScalarLeafsRule = require('./rules/ScalarLeafsRule.js');
278
+
279
+ var _SingleFieldSubscriptionsRule = require('./rules/SingleFieldSubscriptionsRule.js');
280
+
281
+ var _UniqueArgumentNamesRule = require('./rules/UniqueArgumentNamesRule.js');
282
+
283
+ var _UniqueDirectivesPerLocationRule = require('./rules/UniqueDirectivesPerLocationRule.js');
284
+
285
+ var _UniqueFragmentNamesRule = require('./rules/UniqueFragmentNamesRule.js');
286
+
287
+ var _UniqueInputFieldNamesRule = require('./rules/UniqueInputFieldNamesRule.js');
288
+
289
+ var _UniqueOperationNamesRule = require('./rules/UniqueOperationNamesRule.js');
290
+
291
+ var _UniqueVariableNamesRule = require('./rules/UniqueVariableNamesRule.js');
292
+
293
+ var _ValuesOfCorrectTypeRule = require('./rules/ValuesOfCorrectTypeRule.js');
294
+
295
+ var _VariablesAreInputTypesRule = require('./rules/VariablesAreInputTypesRule.js');
296
+
297
+ var _VariablesInAllowedPositionRule = require('./rules/VariablesInAllowedPositionRule.js');
298
+
299
+ var _LoneSchemaDefinitionRule = require('./rules/LoneSchemaDefinitionRule.js');
300
+
301
+ var _UniqueOperationTypesRule = require('./rules/UniqueOperationTypesRule.js');
302
+
303
+ var _UniqueTypeNamesRule = require('./rules/UniqueTypeNamesRule.js');
304
+
305
+ var _UniqueEnumValueNamesRule = require('./rules/UniqueEnumValueNamesRule.js');
306
+
307
+ var _UniqueFieldDefinitionNamesRule = require('./rules/UniqueFieldDefinitionNamesRule.js');
308
+
309
+ var _UniqueArgumentDefinitionNamesRule = require('./rules/UniqueArgumentDefinitionNamesRule.js');
310
+
311
+ var _UniqueDirectiveNamesRule = require('./rules/UniqueDirectiveNamesRule.js');
312
+
313
+ var _PossibleTypeExtensionsRule = require('./rules/PossibleTypeExtensionsRule.js');
314
+
315
+ var _NoDeprecatedCustomRule = require('./rules/custom/NoDeprecatedCustomRule.js');
316
+
317
+ var _NoSchemaIntrospectionCustomRule = require('./rules/custom/NoSchemaIntrospectionCustomRule.js');
@@ -0,0 +1,68 @@
1
+ export { validate } from './validate.mjs';
2
+ export { ValidationContext } from './ValidationContext.mjs';
3
+ // All validation rules in the GraphQL Specification.
4
+ export { specifiedRules } from './specifiedRules.mjs'; // Spec Section: "Executable Definitions"
5
+
6
+ export { ExecutableDefinitionsRule } from './rules/ExecutableDefinitionsRule.mjs'; // Spec Section: "Field Selections on Objects, Interfaces, and Unions Types"
7
+
8
+ export { FieldsOnCorrectTypeRule } from './rules/FieldsOnCorrectTypeRule.mjs'; // Spec Section: "Fragments on Composite Types"
9
+
10
+ export { FragmentsOnCompositeTypesRule } from './rules/FragmentsOnCompositeTypesRule.mjs'; // Spec Section: "Argument Names"
11
+
12
+ export { KnownArgumentNamesRule } from './rules/KnownArgumentNamesRule.mjs'; // Spec Section: "Directives Are Defined"
13
+
14
+ export { KnownDirectivesRule } from './rules/KnownDirectivesRule.mjs'; // Spec Section: "Fragment spread target defined"
15
+
16
+ export { KnownFragmentNamesRule } from './rules/KnownFragmentNamesRule.mjs'; // Spec Section: "Fragment Spread Type Existence"
17
+
18
+ export { KnownTypeNamesRule } from './rules/KnownTypeNamesRule.mjs'; // Spec Section: "Lone Anonymous Operation"
19
+
20
+ export { LoneAnonymousOperationRule } from './rules/LoneAnonymousOperationRule.mjs'; // Spec Section: "Fragments must not form cycles"
21
+
22
+ export { NoFragmentCyclesRule } from './rules/NoFragmentCyclesRule.mjs'; // Spec Section: "All Variable Used Defined"
23
+
24
+ export { NoUndefinedVariablesRule } from './rules/NoUndefinedVariablesRule.mjs'; // Spec Section: "Fragments must be used"
25
+
26
+ export { NoUnusedFragmentsRule } from './rules/NoUnusedFragmentsRule.mjs'; // Spec Section: "All Variables Used"
27
+
28
+ export { NoUnusedVariablesRule } from './rules/NoUnusedVariablesRule.mjs'; // Spec Section: "Field Selection Merging"
29
+
30
+ export { OverlappingFieldsCanBeMergedRule } from './rules/OverlappingFieldsCanBeMergedRule.mjs'; // Spec Section: "Fragment spread is possible"
31
+
32
+ export { PossibleFragmentSpreadsRule } from './rules/PossibleFragmentSpreadsRule.mjs'; // Spec Section: "Argument Optionality"
33
+
34
+ export { ProvidedRequiredArgumentsRule } from './rules/ProvidedRequiredArgumentsRule.mjs'; // Spec Section: "Leaf Field Selections"
35
+
36
+ export { ScalarLeafsRule } from './rules/ScalarLeafsRule.mjs'; // Spec Section: "Subscriptions with Single Root Field"
37
+
38
+ export { SingleFieldSubscriptionsRule } from './rules/SingleFieldSubscriptionsRule.mjs'; // Spec Section: "Argument Uniqueness"
39
+
40
+ export { UniqueArgumentNamesRule } from './rules/UniqueArgumentNamesRule.mjs'; // Spec Section: "Directives Are Unique Per Location"
41
+
42
+ export { UniqueDirectivesPerLocationRule } from './rules/UniqueDirectivesPerLocationRule.mjs'; // Spec Section: "Fragment Name Uniqueness"
43
+
44
+ export { UniqueFragmentNamesRule } from './rules/UniqueFragmentNamesRule.mjs'; // Spec Section: "Input Object Field Uniqueness"
45
+
46
+ export { UniqueInputFieldNamesRule } from './rules/UniqueInputFieldNamesRule.mjs'; // Spec Section: "Operation Name Uniqueness"
47
+
48
+ export { UniqueOperationNamesRule } from './rules/UniqueOperationNamesRule.mjs'; // Spec Section: "Variable Uniqueness"
49
+
50
+ export { UniqueVariableNamesRule } from './rules/UniqueVariableNamesRule.mjs'; // Spec Section: "Values Type Correctness"
51
+
52
+ export { ValuesOfCorrectTypeRule } from './rules/ValuesOfCorrectTypeRule.mjs'; // Spec Section: "Variables are Input Types"
53
+
54
+ export { VariablesAreInputTypesRule } from './rules/VariablesAreInputTypesRule.mjs'; // Spec Section: "All Variable Usages Are Allowed"
55
+
56
+ export { VariablesInAllowedPositionRule } from './rules/VariablesInAllowedPositionRule.mjs'; // SDL-specific validation rules
57
+
58
+ export { LoneSchemaDefinitionRule } from './rules/LoneSchemaDefinitionRule.mjs';
59
+ export { UniqueOperationTypesRule } from './rules/UniqueOperationTypesRule.mjs';
60
+ export { UniqueTypeNamesRule } from './rules/UniqueTypeNamesRule.mjs';
61
+ export { UniqueEnumValueNamesRule } from './rules/UniqueEnumValueNamesRule.mjs';
62
+ export { UniqueFieldDefinitionNamesRule } from './rules/UniqueFieldDefinitionNamesRule.mjs';
63
+ export { UniqueArgumentDefinitionNamesRule } from './rules/UniqueArgumentDefinitionNamesRule.mjs';
64
+ export { UniqueDirectiveNamesRule } from './rules/UniqueDirectiveNamesRule.mjs';
65
+ export { PossibleTypeExtensionsRule } from './rules/PossibleTypeExtensionsRule.mjs'; // Optional rules not defined by the GraphQL Specification
66
+
67
+ export { NoDeprecatedCustomRule } from './rules/custom/NoDeprecatedCustomRule.mjs';
68
+ export { NoSchemaIntrospectionCustomRule } from './rules/custom/NoSchemaIntrospectionCustomRule.mjs';
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ASTValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Executable definitions
5
+ *
6
+ * A GraphQL document is only valid for execution if all definitions are either
7
+ * operation or fragment definitions.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Executable-Definitions
10
+ */
11
+ export declare function ExecutableDefinitionsRule(
12
+ context: ASTValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.ExecutableDefinitionsRule = ExecutableDefinitionsRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _kinds = require('../../language/kinds.js');
11
+
12
+ var _predicates = require('../../language/predicates.js');
13
+
14
+ /**
15
+ * Executable definitions
16
+ *
17
+ * A GraphQL document is only valid for execution if all definitions are either
18
+ * operation or fragment definitions.
19
+ *
20
+ * See https://spec.graphql.org/draft/#sec-Executable-Definitions
21
+ */
22
+ function ExecutableDefinitionsRule(context) {
23
+ return {
24
+ Document(node) {
25
+ for (const definition of node.definitions) {
26
+ if (!(0, _predicates.isExecutableDefinitionNode)(definition)) {
27
+ const defName =
28
+ definition.kind === _kinds.Kind.SCHEMA_DEFINITION ||
29
+ definition.kind === _kinds.Kind.SCHEMA_EXTENSION
30
+ ? 'schema'
31
+ : '"' + definition.name.value + '"';
32
+ context.reportError(
33
+ new _GraphQLError.GraphQLError(
34
+ `The ${defName} definition is not executable.`,
35
+ definition,
36
+ ),
37
+ );
38
+ }
39
+ }
40
+
41
+ return false;
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,35 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { Kind } from '../../language/kinds.mjs';
3
+ import { isExecutableDefinitionNode } from '../../language/predicates.mjs';
4
+
5
+ /**
6
+ * Executable definitions
7
+ *
8
+ * A GraphQL document is only valid for execution if all definitions are either
9
+ * operation or fragment definitions.
10
+ *
11
+ * See https://spec.graphql.org/draft/#sec-Executable-Definitions
12
+ */
13
+ export function ExecutableDefinitionsRule(context) {
14
+ return {
15
+ Document(node) {
16
+ for (const definition of node.definitions) {
17
+ if (!isExecutableDefinitionNode(definition)) {
18
+ const defName =
19
+ definition.kind === Kind.SCHEMA_DEFINITION ||
20
+ definition.kind === Kind.SCHEMA_EXTENSION
21
+ ? 'schema'
22
+ : '"' + definition.name.value + '"';
23
+ context.reportError(
24
+ new GraphQLError(
25
+ `The ${defName} definition is not executable.`,
26
+ definition,
27
+ ),
28
+ );
29
+ }
30
+ }
31
+
32
+ return false;
33
+ },
34
+ };
35
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Fields on correct type
5
+ *
6
+ * A GraphQL document is only valid if all fields selected are defined by the
7
+ * parent type, or are an allowed meta field such as __typename.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Field-Selections
10
+ */
11
+ export declare function FieldsOnCorrectTypeRule(
12
+ context: ValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,143 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.FieldsOnCorrectTypeRule = FieldsOnCorrectTypeRule;
7
+
8
+ var _didYouMean = require('../../jsutils/didYouMean.js');
9
+
10
+ var _naturalCompare = require('../../jsutils/naturalCompare.js');
11
+
12
+ var _suggestionList = require('../../jsutils/suggestionList.js');
13
+
14
+ var _GraphQLError = require('../../error/GraphQLError.js');
15
+
16
+ var _definition = require('../../type/definition.js');
17
+
18
+ /**
19
+ * Fields on correct type
20
+ *
21
+ * A GraphQL document is only valid if all fields selected are defined by the
22
+ * parent type, or are an allowed meta field such as __typename.
23
+ *
24
+ * See https://spec.graphql.org/draft/#sec-Field-Selections
25
+ */
26
+ function FieldsOnCorrectTypeRule(context) {
27
+ return {
28
+ Field(node) {
29
+ const type = context.getParentType();
30
+
31
+ if (type) {
32
+ const fieldDef = context.getFieldDef();
33
+
34
+ if (!fieldDef) {
35
+ // This field doesn't exist, lets look for suggestions.
36
+ const schema = context.getSchema();
37
+ const fieldName = node.name.value; // First determine if there are any suggested types to condition on.
38
+
39
+ let suggestion = (0, _didYouMean.didYouMean)(
40
+ 'to use an inline fragment on',
41
+ getSuggestedTypeNames(schema, type, fieldName),
42
+ ); // If there are no suggested types, then perhaps this was a typo?
43
+
44
+ if (suggestion === '') {
45
+ suggestion = (0, _didYouMean.didYouMean)(
46
+ getSuggestedFieldNames(type, fieldName),
47
+ );
48
+ } // Report an error, including helpful suggestions.
49
+
50
+ context.reportError(
51
+ new _GraphQLError.GraphQLError(
52
+ `Cannot query field "${fieldName}" on type "${type.name}".` +
53
+ suggestion,
54
+ node,
55
+ ),
56
+ );
57
+ }
58
+ }
59
+ },
60
+ };
61
+ }
62
+ /**
63
+ * Go through all of the implementations of type, as well as the interfaces that
64
+ * they implement. If any of those types include the provided field, suggest them,
65
+ * sorted by how often the type is referenced.
66
+ */
67
+
68
+ function getSuggestedTypeNames(schema, type, fieldName) {
69
+ if (!(0, _definition.isAbstractType)(type)) {
70
+ // Must be an Object type, which does not have possible fields.
71
+ return [];
72
+ }
73
+
74
+ const suggestedTypes = new Set();
75
+ const usageCount = Object.create(null);
76
+
77
+ for (const possibleType of schema.getPossibleTypes(type)) {
78
+ if (!possibleType.getFields()[fieldName]) {
79
+ continue;
80
+ } // This object type defines this field.
81
+
82
+ suggestedTypes.add(possibleType);
83
+ usageCount[possibleType.name] = 1;
84
+
85
+ for (const possibleInterface of possibleType.getInterfaces()) {
86
+ var _usageCount$possibleI;
87
+
88
+ if (!possibleInterface.getFields()[fieldName]) {
89
+ continue;
90
+ } // This interface type defines this field.
91
+
92
+ suggestedTypes.add(possibleInterface);
93
+ usageCount[possibleInterface.name] =
94
+ ((_usageCount$possibleI = usageCount[possibleInterface.name]) !==
95
+ null && _usageCount$possibleI !== void 0
96
+ ? _usageCount$possibleI
97
+ : 0) + 1;
98
+ }
99
+ }
100
+
101
+ return [...suggestedTypes]
102
+ .sort((typeA, typeB) => {
103
+ // Suggest both interface and object types based on how common they are.
104
+ const usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];
105
+
106
+ if (usageCountDiff !== 0) {
107
+ return usageCountDiff;
108
+ } // Suggest super types first followed by subtypes
109
+
110
+ if (
111
+ (0, _definition.isInterfaceType)(typeA) &&
112
+ schema.isSubType(typeA, typeB)
113
+ ) {
114
+ return -1;
115
+ }
116
+
117
+ if (
118
+ (0, _definition.isInterfaceType)(typeB) &&
119
+ schema.isSubType(typeB, typeA)
120
+ ) {
121
+ return 1;
122
+ }
123
+
124
+ return (0, _naturalCompare.naturalCompare)(typeA.name, typeB.name);
125
+ })
126
+ .map((x) => x.name);
127
+ }
128
+ /**
129
+ * For the field name provided, determine if there are any similar field names
130
+ * that may be the result of a typo.
131
+ */
132
+
133
+ function getSuggestedFieldNames(type, fieldName) {
134
+ if (
135
+ (0, _definition.isObjectType)(type) ||
136
+ (0, _definition.isInterfaceType)(type)
137
+ ) {
138
+ const possibleFieldNames = Object.keys(type.getFields());
139
+ return (0, _suggestionList.suggestionList)(fieldName, possibleFieldNames);
140
+ } // Otherwise, must be a Union type, which does not define fields.
141
+
142
+ return [];
143
+ }