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,125 @@
1
+ import { didYouMean } from '../../jsutils/didYouMean.mjs';
2
+ import { naturalCompare } from '../../jsutils/naturalCompare.mjs';
3
+ import { suggestionList } from '../../jsutils/suggestionList.mjs';
4
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
5
+ import {
6
+ isAbstractType,
7
+ isInterfaceType,
8
+ isObjectType,
9
+ } from '../../type/definition.mjs';
10
+
11
+ /**
12
+ * Fields on correct type
13
+ *
14
+ * A GraphQL document is only valid if all fields selected are defined by the
15
+ * parent type, or are an allowed meta field such as __typename.
16
+ *
17
+ * See https://spec.graphql.org/draft/#sec-Field-Selections
18
+ */
19
+ export function FieldsOnCorrectTypeRule(context) {
20
+ return {
21
+ Field(node) {
22
+ const type = context.getParentType();
23
+
24
+ if (type) {
25
+ const fieldDef = context.getFieldDef();
26
+
27
+ if (!fieldDef) {
28
+ // This field doesn't exist, lets look for suggestions.
29
+ const schema = context.getSchema();
30
+ const fieldName = node.name.value; // First determine if there are any suggested types to condition on.
31
+
32
+ let suggestion = didYouMean(
33
+ 'to use an inline fragment on',
34
+ getSuggestedTypeNames(schema, type, fieldName),
35
+ ); // If there are no suggested types, then perhaps this was a typo?
36
+
37
+ if (suggestion === '') {
38
+ suggestion = didYouMean(getSuggestedFieldNames(type, fieldName));
39
+ } // Report an error, including helpful suggestions.
40
+
41
+ context.reportError(
42
+ new GraphQLError(
43
+ `Cannot query field "${fieldName}" on type "${type.name}".` +
44
+ suggestion,
45
+ node,
46
+ ),
47
+ );
48
+ }
49
+ }
50
+ },
51
+ };
52
+ }
53
+ /**
54
+ * Go through all of the implementations of type, as well as the interfaces that
55
+ * they implement. If any of those types include the provided field, suggest them,
56
+ * sorted by how often the type is referenced.
57
+ */
58
+
59
+ function getSuggestedTypeNames(schema, type, fieldName) {
60
+ if (!isAbstractType(type)) {
61
+ // Must be an Object type, which does not have possible fields.
62
+ return [];
63
+ }
64
+
65
+ const suggestedTypes = new Set();
66
+ const usageCount = Object.create(null);
67
+
68
+ for (const possibleType of schema.getPossibleTypes(type)) {
69
+ if (!possibleType.getFields()[fieldName]) {
70
+ continue;
71
+ } // This object type defines this field.
72
+
73
+ suggestedTypes.add(possibleType);
74
+ usageCount[possibleType.name] = 1;
75
+
76
+ for (const possibleInterface of possibleType.getInterfaces()) {
77
+ var _usageCount$possibleI;
78
+
79
+ if (!possibleInterface.getFields()[fieldName]) {
80
+ continue;
81
+ } // This interface type defines this field.
82
+
83
+ suggestedTypes.add(possibleInterface);
84
+ usageCount[possibleInterface.name] =
85
+ ((_usageCount$possibleI = usageCount[possibleInterface.name]) !==
86
+ null && _usageCount$possibleI !== void 0
87
+ ? _usageCount$possibleI
88
+ : 0) + 1;
89
+ }
90
+ }
91
+
92
+ return [...suggestedTypes]
93
+ .sort((typeA, typeB) => {
94
+ // Suggest both interface and object types based on how common they are.
95
+ const usageCountDiff = usageCount[typeB.name] - usageCount[typeA.name];
96
+
97
+ if (usageCountDiff !== 0) {
98
+ return usageCountDiff;
99
+ } // Suggest super types first followed by subtypes
100
+
101
+ if (isInterfaceType(typeA) && schema.isSubType(typeA, typeB)) {
102
+ return -1;
103
+ }
104
+
105
+ if (isInterfaceType(typeB) && schema.isSubType(typeB, typeA)) {
106
+ return 1;
107
+ }
108
+
109
+ return naturalCompare(typeA.name, typeB.name);
110
+ })
111
+ .map((x) => x.name);
112
+ }
113
+ /**
114
+ * For the field name provided, determine if there are any similar field names
115
+ * that may be the result of a typo.
116
+ */
117
+
118
+ function getSuggestedFieldNames(type, fieldName) {
119
+ if (isObjectType(type) || isInterfaceType(type)) {
120
+ const possibleFieldNames = Object.keys(type.getFields());
121
+ return suggestionList(fieldName, possibleFieldNames);
122
+ } // Otherwise, must be a Union type, which does not define fields.
123
+
124
+ return [];
125
+ }
@@ -0,0 +1,14 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Fragments on composite type
5
+ *
6
+ * Fragments use a type condition to determine if they apply, since fragments
7
+ * can only be spread into a composite type (object, interface, or union), the
8
+ * type condition must also be a composite type.
9
+ *
10
+ * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
11
+ */
12
+ export declare function FragmentsOnCompositeTypesRule(
13
+ context: ValidationContext,
14
+ ): ASTVisitor;
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.FragmentsOnCompositeTypesRule = FragmentsOnCompositeTypesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _printer = require('../../language/printer.js');
11
+
12
+ var _definition = require('../../type/definition.js');
13
+
14
+ var _typeFromAST = require('../../utilities/typeFromAST.js');
15
+
16
+ /**
17
+ * Fragments on composite type
18
+ *
19
+ * Fragments use a type condition to determine if they apply, since fragments
20
+ * can only be spread into a composite type (object, interface, or union), the
21
+ * type condition must also be a composite type.
22
+ *
23
+ * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
24
+ */
25
+ function FragmentsOnCompositeTypesRule(context) {
26
+ return {
27
+ InlineFragment(node) {
28
+ const typeCondition = node.typeCondition;
29
+
30
+ if (typeCondition) {
31
+ const type = (0, _typeFromAST.typeFromAST)(
32
+ context.getSchema(),
33
+ typeCondition,
34
+ );
35
+
36
+ if (type && !(0, _definition.isCompositeType)(type)) {
37
+ const typeStr = (0, _printer.print)(typeCondition);
38
+ context.reportError(
39
+ new _GraphQLError.GraphQLError(
40
+ `Fragment cannot condition on non composite type "${typeStr}".`,
41
+ typeCondition,
42
+ ),
43
+ );
44
+ }
45
+ }
46
+ },
47
+
48
+ FragmentDefinition(node) {
49
+ const type = (0, _typeFromAST.typeFromAST)(
50
+ context.getSchema(),
51
+ node.typeCondition,
52
+ );
53
+
54
+ if (type && !(0, _definition.isCompositeType)(type)) {
55
+ const typeStr = (0, _printer.print)(node.typeCondition);
56
+ context.reportError(
57
+ new _GraphQLError.GraphQLError(
58
+ `Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`,
59
+ node.typeCondition,
60
+ ),
61
+ );
62
+ }
63
+ },
64
+ };
65
+ }
@@ -0,0 +1,49 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { print } from '../../language/printer.mjs';
3
+ import { isCompositeType } from '../../type/definition.mjs';
4
+ import { typeFromAST } from '../../utilities/typeFromAST.mjs';
5
+
6
+ /**
7
+ * Fragments on composite type
8
+ *
9
+ * Fragments use a type condition to determine if they apply, since fragments
10
+ * can only be spread into a composite type (object, interface, or union), the
11
+ * type condition must also be a composite type.
12
+ *
13
+ * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types
14
+ */
15
+ export function FragmentsOnCompositeTypesRule(context) {
16
+ return {
17
+ InlineFragment(node) {
18
+ const typeCondition = node.typeCondition;
19
+
20
+ if (typeCondition) {
21
+ const type = typeFromAST(context.getSchema(), typeCondition);
22
+
23
+ if (type && !isCompositeType(type)) {
24
+ const typeStr = print(typeCondition);
25
+ context.reportError(
26
+ new GraphQLError(
27
+ `Fragment cannot condition on non composite type "${typeStr}".`,
28
+ typeCondition,
29
+ ),
30
+ );
31
+ }
32
+ }
33
+ },
34
+
35
+ FragmentDefinition(node) {
36
+ const type = typeFromAST(context.getSchema(), node.typeCondition);
37
+
38
+ if (type && !isCompositeType(type)) {
39
+ const typeStr = print(node.typeCondition);
40
+ context.reportError(
41
+ new GraphQLError(
42
+ `Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`,
43
+ node.typeCondition,
44
+ ),
45
+ );
46
+ }
47
+ },
48
+ };
49
+ }
@@ -0,0 +1,23 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type {
3
+ SDLValidationContext,
4
+ ValidationContext,
5
+ } from '../ValidationContext';
6
+ /**
7
+ * Known argument names
8
+ *
9
+ * A GraphQL field is only valid if all supplied arguments are defined by
10
+ * that field.
11
+ *
12
+ * See https://spec.graphql.org/draft/#sec-Argument-Names
13
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
14
+ */
15
+ export declare function KnownArgumentNamesRule(
16
+ context: ValidationContext,
17
+ ): ASTVisitor;
18
+ /**
19
+ * @internal
20
+ */
21
+ export declare function KnownArgumentNamesOnDirectivesRule(
22
+ context: ValidationContext | SDLValidationContext,
23
+ ): ASTVisitor;
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.KnownArgumentNamesOnDirectivesRule = KnownArgumentNamesOnDirectivesRule;
7
+ exports.KnownArgumentNamesRule = KnownArgumentNamesRule;
8
+
9
+ var _didYouMean = require('../../jsutils/didYouMean.js');
10
+
11
+ var _suggestionList = require('../../jsutils/suggestionList.js');
12
+
13
+ var _GraphQLError = require('../../error/GraphQLError.js');
14
+
15
+ var _kinds = require('../../language/kinds.js');
16
+
17
+ var _directives = require('../../type/directives.js');
18
+
19
+ /**
20
+ * Known argument names
21
+ *
22
+ * A GraphQL field is only valid if all supplied arguments are defined by
23
+ * that field.
24
+ *
25
+ * See https://spec.graphql.org/draft/#sec-Argument-Names
26
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
27
+ */
28
+ function KnownArgumentNamesRule(context) {
29
+ return {
30
+ // eslint-disable-next-line new-cap
31
+ ...KnownArgumentNamesOnDirectivesRule(context),
32
+
33
+ Argument(argNode) {
34
+ const argDef = context.getArgument();
35
+ const fieldDef = context.getFieldDef();
36
+ const parentType = context.getParentType();
37
+
38
+ if (!argDef && fieldDef && parentType) {
39
+ const argName = argNode.name.value;
40
+ const knownArgsNames = fieldDef.args.map((arg) => arg.name);
41
+ const suggestions = (0, _suggestionList.suggestionList)(
42
+ argName,
43
+ knownArgsNames,
44
+ );
45
+ context.reportError(
46
+ new _GraphQLError.GraphQLError(
47
+ `Unknown argument "${argName}" on field "${parentType.name}.${fieldDef.name}".` +
48
+ (0, _didYouMean.didYouMean)(suggestions),
49
+ argNode,
50
+ ),
51
+ );
52
+ }
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * @internal
58
+ */
59
+
60
+ function KnownArgumentNamesOnDirectivesRule(context) {
61
+ const directiveArgs = Object.create(null);
62
+ const schema = context.getSchema();
63
+ const definedDirectives = schema
64
+ ? schema.getDirectives()
65
+ : _directives.specifiedDirectives;
66
+
67
+ for (const directive of definedDirectives) {
68
+ directiveArgs[directive.name] = directive.args.map((arg) => arg.name);
69
+ }
70
+
71
+ const astDefinitions = context.getDocument().definitions;
72
+
73
+ for (const def of astDefinitions) {
74
+ if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
75
+ var _def$arguments;
76
+
77
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
78
+
79
+ /* c8 ignore next */
80
+ const argsNodes =
81
+ (_def$arguments = def.arguments) !== null && _def$arguments !== void 0
82
+ ? _def$arguments
83
+ : [];
84
+ directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value);
85
+ }
86
+ }
87
+
88
+ return {
89
+ Directive(directiveNode) {
90
+ const directiveName = directiveNode.name.value;
91
+ const knownArgs = directiveArgs[directiveName];
92
+
93
+ if (directiveNode.arguments && knownArgs) {
94
+ for (const argNode of directiveNode.arguments) {
95
+ const argName = argNode.name.value;
96
+
97
+ if (!knownArgs.includes(argName)) {
98
+ const suggestions = (0, _suggestionList.suggestionList)(
99
+ argName,
100
+ knownArgs,
101
+ );
102
+ context.reportError(
103
+ new _GraphQLError.GraphQLError(
104
+ `Unknown argument "${argName}" on directive "@${directiveName}".` +
105
+ (0, _didYouMean.didYouMean)(suggestions),
106
+ argNode,
107
+ ),
108
+ );
109
+ }
110
+ }
111
+ }
112
+
113
+ return false;
114
+ },
115
+ };
116
+ }
@@ -0,0 +1,98 @@
1
+ import { didYouMean } from '../../jsutils/didYouMean.mjs';
2
+ import { suggestionList } from '../../jsutils/suggestionList.mjs';
3
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
4
+ import { Kind } from '../../language/kinds.mjs';
5
+ import { specifiedDirectives } from '../../type/directives.mjs';
6
+
7
+ /**
8
+ * Known argument names
9
+ *
10
+ * A GraphQL field is only valid if all supplied arguments are defined by
11
+ * that field.
12
+ *
13
+ * See https://spec.graphql.org/draft/#sec-Argument-Names
14
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations
15
+ */
16
+ export function KnownArgumentNamesRule(context) {
17
+ return {
18
+ // eslint-disable-next-line new-cap
19
+ ...KnownArgumentNamesOnDirectivesRule(context),
20
+
21
+ Argument(argNode) {
22
+ const argDef = context.getArgument();
23
+ const fieldDef = context.getFieldDef();
24
+ const parentType = context.getParentType();
25
+
26
+ if (!argDef && fieldDef && parentType) {
27
+ const argName = argNode.name.value;
28
+ const knownArgsNames = fieldDef.args.map((arg) => arg.name);
29
+ const suggestions = suggestionList(argName, knownArgsNames);
30
+ context.reportError(
31
+ new GraphQLError(
32
+ `Unknown argument "${argName}" on field "${parentType.name}.${fieldDef.name}".` +
33
+ didYouMean(suggestions),
34
+ argNode,
35
+ ),
36
+ );
37
+ }
38
+ },
39
+ };
40
+ }
41
+ /**
42
+ * @internal
43
+ */
44
+
45
+ export function KnownArgumentNamesOnDirectivesRule(context) {
46
+ const directiveArgs = Object.create(null);
47
+ const schema = context.getSchema();
48
+ const definedDirectives = schema
49
+ ? schema.getDirectives()
50
+ : specifiedDirectives;
51
+
52
+ for (const directive of definedDirectives) {
53
+ directiveArgs[directive.name] = directive.args.map((arg) => arg.name);
54
+ }
55
+
56
+ const astDefinitions = context.getDocument().definitions;
57
+
58
+ for (const def of astDefinitions) {
59
+ if (def.kind === Kind.DIRECTIVE_DEFINITION) {
60
+ var _def$arguments;
61
+
62
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
63
+
64
+ /* c8 ignore next */
65
+ const argsNodes =
66
+ (_def$arguments = def.arguments) !== null && _def$arguments !== void 0
67
+ ? _def$arguments
68
+ : [];
69
+ directiveArgs[def.name.value] = argsNodes.map((arg) => arg.name.value);
70
+ }
71
+ }
72
+
73
+ return {
74
+ Directive(directiveNode) {
75
+ const directiveName = directiveNode.name.value;
76
+ const knownArgs = directiveArgs[directiveName];
77
+
78
+ if (directiveNode.arguments && knownArgs) {
79
+ for (const argNode of directiveNode.arguments) {
80
+ const argName = argNode.name.value;
81
+
82
+ if (!knownArgs.includes(argName)) {
83
+ const suggestions = suggestionList(argName, knownArgs);
84
+ context.reportError(
85
+ new GraphQLError(
86
+ `Unknown argument "${argName}" on directive "@${directiveName}".` +
87
+ didYouMean(suggestions),
88
+ argNode,
89
+ ),
90
+ );
91
+ }
92
+ }
93
+ }
94
+
95
+ return false;
96
+ },
97
+ };
98
+ }
@@ -0,0 +1,16 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type {
3
+ SDLValidationContext,
4
+ ValidationContext,
5
+ } from '../ValidationContext';
6
+ /**
7
+ * Known directives
8
+ *
9
+ * A GraphQL document is only valid if all `@directives` are known by the
10
+ * schema and legally positioned.
11
+ *
12
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
13
+ */
14
+ export declare function KnownDirectivesRule(
15
+ context: ValidationContext | SDLValidationContext,
16
+ ): ASTVisitor;
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.KnownDirectivesRule = KnownDirectivesRule;
7
+
8
+ var _inspect = require('../../jsutils/inspect.js');
9
+
10
+ var _invariant = require('../../jsutils/invariant.js');
11
+
12
+ var _GraphQLError = require('../../error/GraphQLError.js');
13
+
14
+ var _ast = require('../../language/ast.js');
15
+
16
+ var _directiveLocation = require('../../language/directiveLocation.js');
17
+
18
+ var _kinds = require('../../language/kinds.js');
19
+
20
+ var _directives = require('../../type/directives.js');
21
+
22
+ /**
23
+ * Known directives
24
+ *
25
+ * A GraphQL document is only valid if all `@directives` are known by the
26
+ * schema and legally positioned.
27
+ *
28
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
29
+ */
30
+ function KnownDirectivesRule(context) {
31
+ const locationsMap = Object.create(null);
32
+ const schema = context.getSchema();
33
+ const definedDirectives = schema
34
+ ? schema.getDirectives()
35
+ : _directives.specifiedDirectives;
36
+
37
+ for (const directive of definedDirectives) {
38
+ locationsMap[directive.name] = directive.locations;
39
+ }
40
+
41
+ const astDefinitions = context.getDocument().definitions;
42
+
43
+ for (const def of astDefinitions) {
44
+ if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
45
+ locationsMap[def.name.value] = def.locations.map((name) => name.value);
46
+ }
47
+ }
48
+
49
+ return {
50
+ Directive(node, _key, _parent, _path, ancestors) {
51
+ const name = node.name.value;
52
+ const locations = locationsMap[name];
53
+
54
+ if (!locations) {
55
+ context.reportError(
56
+ new _GraphQLError.GraphQLError(`Unknown directive "@${name}".`, node),
57
+ );
58
+ return;
59
+ }
60
+
61
+ const candidateLocation = getDirectiveLocationForASTPath(ancestors);
62
+
63
+ if (candidateLocation && !locations.includes(candidateLocation)) {
64
+ context.reportError(
65
+ new _GraphQLError.GraphQLError(
66
+ `Directive "@${name}" may not be used on ${candidateLocation}.`,
67
+ node,
68
+ ),
69
+ );
70
+ }
71
+ },
72
+ };
73
+ }
74
+
75
+ function getDirectiveLocationForASTPath(ancestors) {
76
+ const appliedTo = ancestors[ancestors.length - 1];
77
+ 'kind' in appliedTo || (0, _invariant.invariant)(false);
78
+
79
+ switch (appliedTo.kind) {
80
+ case _kinds.Kind.OPERATION_DEFINITION:
81
+ return getDirectiveLocationForOperation(appliedTo.operation);
82
+
83
+ case _kinds.Kind.FIELD:
84
+ return _directiveLocation.DirectiveLocation.FIELD;
85
+
86
+ case _kinds.Kind.FRAGMENT_SPREAD:
87
+ return _directiveLocation.DirectiveLocation.FRAGMENT_SPREAD;
88
+
89
+ case _kinds.Kind.INLINE_FRAGMENT:
90
+ return _directiveLocation.DirectiveLocation.INLINE_FRAGMENT;
91
+
92
+ case _kinds.Kind.FRAGMENT_DEFINITION:
93
+ return _directiveLocation.DirectiveLocation.FRAGMENT_DEFINITION;
94
+
95
+ case _kinds.Kind.VARIABLE_DEFINITION:
96
+ return _directiveLocation.DirectiveLocation.VARIABLE_DEFINITION;
97
+
98
+ case _kinds.Kind.SCHEMA_DEFINITION:
99
+ case _kinds.Kind.SCHEMA_EXTENSION:
100
+ return _directiveLocation.DirectiveLocation.SCHEMA;
101
+
102
+ case _kinds.Kind.SCALAR_TYPE_DEFINITION:
103
+ case _kinds.Kind.SCALAR_TYPE_EXTENSION:
104
+ return _directiveLocation.DirectiveLocation.SCALAR;
105
+
106
+ case _kinds.Kind.OBJECT_TYPE_DEFINITION:
107
+ case _kinds.Kind.OBJECT_TYPE_EXTENSION:
108
+ return _directiveLocation.DirectiveLocation.OBJECT;
109
+
110
+ case _kinds.Kind.FIELD_DEFINITION:
111
+ return _directiveLocation.DirectiveLocation.FIELD_DEFINITION;
112
+
113
+ case _kinds.Kind.INTERFACE_TYPE_DEFINITION:
114
+ case _kinds.Kind.INTERFACE_TYPE_EXTENSION:
115
+ return _directiveLocation.DirectiveLocation.INTERFACE;
116
+
117
+ case _kinds.Kind.UNION_TYPE_DEFINITION:
118
+ case _kinds.Kind.UNION_TYPE_EXTENSION:
119
+ return _directiveLocation.DirectiveLocation.UNION;
120
+
121
+ case _kinds.Kind.ENUM_TYPE_DEFINITION:
122
+ case _kinds.Kind.ENUM_TYPE_EXTENSION:
123
+ return _directiveLocation.DirectiveLocation.ENUM;
124
+
125
+ case _kinds.Kind.ENUM_VALUE_DEFINITION:
126
+ return _directiveLocation.DirectiveLocation.ENUM_VALUE;
127
+
128
+ case _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION:
129
+ case _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION:
130
+ return _directiveLocation.DirectiveLocation.INPUT_OBJECT;
131
+
132
+ case _kinds.Kind.INPUT_VALUE_DEFINITION: {
133
+ const parentNode = ancestors[ancestors.length - 3];
134
+ 'kind' in parentNode || (0, _invariant.invariant)(false);
135
+ return parentNode.kind === _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION
136
+ ? _directiveLocation.DirectiveLocation.INPUT_FIELD_DEFINITION
137
+ : _directiveLocation.DirectiveLocation.ARGUMENT_DEFINITION;
138
+ }
139
+ // Not reachable, all possible types have been considered.
140
+
141
+ /* c8 ignore next */
142
+
143
+ default:
144
+ false ||
145
+ (0, _invariant.invariant)(
146
+ false,
147
+ 'Unexpected kind: ' + (0, _inspect.inspect)(appliedTo.kind),
148
+ );
149
+ }
150
+ }
151
+
152
+ function getDirectiveLocationForOperation(operation) {
153
+ switch (operation) {
154
+ case _ast.OperationTypeNode.QUERY:
155
+ return _directiveLocation.DirectiveLocation.QUERY;
156
+
157
+ case _ast.OperationTypeNode.MUTATION:
158
+ return _directiveLocation.DirectiveLocation.MUTATION;
159
+
160
+ case _ast.OperationTypeNode.SUBSCRIPTION:
161
+ return _directiveLocation.DirectiveLocation.SUBSCRIPTION;
162
+ }
163
+ }