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,183 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.ValuesOfCorrectTypeRule = ValuesOfCorrectTypeRule;
7
+
8
+ var _didYouMean = require('../../jsutils/didYouMean.js');
9
+
10
+ var _inspect = require('../../jsutils/inspect.js');
11
+
12
+ var _keyMap = require('../../jsutils/keyMap.js');
13
+
14
+ var _suggestionList = require('../../jsutils/suggestionList.js');
15
+
16
+ var _GraphQLError = require('../../error/GraphQLError.js');
17
+
18
+ var _printer = require('../../language/printer.js');
19
+
20
+ var _definition = require('../../type/definition.js');
21
+
22
+ /**
23
+ * Value literals of correct type
24
+ *
25
+ * A GraphQL document is only valid if all value literals are of the type
26
+ * expected at their position.
27
+ *
28
+ * See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type
29
+ */
30
+ function ValuesOfCorrectTypeRule(context) {
31
+ return {
32
+ ListValue(node) {
33
+ // Note: TypeInfo will traverse into a list's item type, so look to the
34
+ // parent input type to check if it is a list.
35
+ const type = (0, _definition.getNullableType)(
36
+ context.getParentInputType(),
37
+ );
38
+
39
+ if (!(0, _definition.isListType)(type)) {
40
+ isValidValueNode(context, node);
41
+ return false; // Don't traverse further.
42
+ }
43
+ },
44
+
45
+ ObjectValue(node) {
46
+ const type = (0, _definition.getNamedType)(context.getInputType());
47
+
48
+ if (!(0, _definition.isInputObjectType)(type)) {
49
+ isValidValueNode(context, node);
50
+ return false; // Don't traverse further.
51
+ } // Ensure every required field exists.
52
+
53
+ const fieldNodeMap = (0, _keyMap.keyMap)(
54
+ node.fields,
55
+ (field) => field.name.value,
56
+ );
57
+
58
+ for (const fieldDef of Object.values(type.getFields())) {
59
+ const fieldNode = fieldNodeMap[fieldDef.name];
60
+
61
+ if (!fieldNode && (0, _definition.isRequiredInputField)(fieldDef)) {
62
+ const typeStr = (0, _inspect.inspect)(fieldDef.type);
63
+ context.reportError(
64
+ new _GraphQLError.GraphQLError(
65
+ `Field "${type.name}.${fieldDef.name}" of required type "${typeStr}" was not provided.`,
66
+ node,
67
+ ),
68
+ );
69
+ }
70
+ }
71
+ },
72
+
73
+ ObjectField(node) {
74
+ const parentType = (0, _definition.getNamedType)(
75
+ context.getParentInputType(),
76
+ );
77
+ const fieldType = context.getInputType();
78
+
79
+ if (!fieldType && (0, _definition.isInputObjectType)(parentType)) {
80
+ const suggestions = (0, _suggestionList.suggestionList)(
81
+ node.name.value,
82
+ Object.keys(parentType.getFields()),
83
+ );
84
+ context.reportError(
85
+ new _GraphQLError.GraphQLError(
86
+ `Field "${node.name.value}" is not defined by type "${parentType.name}".` +
87
+ (0, _didYouMean.didYouMean)(suggestions),
88
+ node,
89
+ ),
90
+ );
91
+ }
92
+ },
93
+
94
+ NullValue(node) {
95
+ const type = context.getInputType();
96
+
97
+ if ((0, _definition.isNonNullType)(type)) {
98
+ context.reportError(
99
+ new _GraphQLError.GraphQLError(
100
+ `Expected value of type "${(0, _inspect.inspect)(
101
+ type,
102
+ )}", found ${(0, _printer.print)(node)}.`,
103
+ node,
104
+ ),
105
+ );
106
+ }
107
+ },
108
+
109
+ EnumValue: (node) => isValidValueNode(context, node),
110
+ IntValue: (node) => isValidValueNode(context, node),
111
+ FloatValue: (node) => isValidValueNode(context, node),
112
+ StringValue: (node) => isValidValueNode(context, node),
113
+ BooleanValue: (node) => isValidValueNode(context, node),
114
+ };
115
+ }
116
+ /**
117
+ * Any value literal may be a valid representation of a Scalar, depending on
118
+ * that scalar type.
119
+ */
120
+
121
+ function isValidValueNode(context, node) {
122
+ // Report any error at the full type expected by the location.
123
+ const locationType = context.getInputType();
124
+
125
+ if (!locationType) {
126
+ return;
127
+ }
128
+
129
+ const type = (0, _definition.getNamedType)(locationType);
130
+
131
+ if (!(0, _definition.isLeafType)(type)) {
132
+ const typeStr = (0, _inspect.inspect)(locationType);
133
+ context.reportError(
134
+ new _GraphQLError.GraphQLError(
135
+ `Expected value of type "${typeStr}", found ${(0, _printer.print)(
136
+ node,
137
+ )}.`,
138
+ node,
139
+ ),
140
+ );
141
+ return;
142
+ } // Scalars and Enums determine if a literal value is valid via parseLiteral(),
143
+ // which may throw or return an invalid value to indicate failure.
144
+
145
+ try {
146
+ const parseResult = type.parseLiteral(
147
+ node,
148
+ undefined,
149
+ /* variables */
150
+ );
151
+
152
+ if (parseResult === undefined) {
153
+ const typeStr = (0, _inspect.inspect)(locationType);
154
+ context.reportError(
155
+ new _GraphQLError.GraphQLError(
156
+ `Expected value of type "${typeStr}", found ${(0, _printer.print)(
157
+ node,
158
+ )}.`,
159
+ node,
160
+ ),
161
+ );
162
+ }
163
+ } catch (error) {
164
+ const typeStr = (0, _inspect.inspect)(locationType);
165
+
166
+ if (error instanceof _GraphQLError.GraphQLError) {
167
+ context.reportError(error);
168
+ } else {
169
+ context.reportError(
170
+ new _GraphQLError.GraphQLError(
171
+ `Expected value of type "${typeStr}", found ${(0, _printer.print)(
172
+ node,
173
+ )}; ` + error.message,
174
+ node,
175
+ undefined,
176
+ undefined,
177
+ undefined,
178
+ error,
179
+ ),
180
+ );
181
+ }
182
+ }
183
+ }
@@ -0,0 +1,164 @@
1
+ import { didYouMean } from '../../jsutils/didYouMean.mjs';
2
+ import { inspect } from '../../jsutils/inspect.mjs';
3
+ import { keyMap } from '../../jsutils/keyMap.mjs';
4
+ import { suggestionList } from '../../jsutils/suggestionList.mjs';
5
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
6
+ import { print } from '../../language/printer.mjs';
7
+ import {
8
+ getNamedType,
9
+ getNullableType,
10
+ isInputObjectType,
11
+ isLeafType,
12
+ isListType,
13
+ isNonNullType,
14
+ isRequiredInputField,
15
+ } from '../../type/definition.mjs';
16
+
17
+ /**
18
+ * Value literals of correct type
19
+ *
20
+ * A GraphQL document is only valid if all value literals are of the type
21
+ * expected at their position.
22
+ *
23
+ * See https://spec.graphql.org/draft/#sec-Values-of-Correct-Type
24
+ */
25
+ export function ValuesOfCorrectTypeRule(context) {
26
+ return {
27
+ ListValue(node) {
28
+ // Note: TypeInfo will traverse into a list's item type, so look to the
29
+ // parent input type to check if it is a list.
30
+ const type = getNullableType(context.getParentInputType());
31
+
32
+ if (!isListType(type)) {
33
+ isValidValueNode(context, node);
34
+ return false; // Don't traverse further.
35
+ }
36
+ },
37
+
38
+ ObjectValue(node) {
39
+ const type = getNamedType(context.getInputType());
40
+
41
+ if (!isInputObjectType(type)) {
42
+ isValidValueNode(context, node);
43
+ return false; // Don't traverse further.
44
+ } // Ensure every required field exists.
45
+
46
+ const fieldNodeMap = keyMap(node.fields, (field) => field.name.value);
47
+
48
+ for (const fieldDef of Object.values(type.getFields())) {
49
+ const fieldNode = fieldNodeMap[fieldDef.name];
50
+
51
+ if (!fieldNode && isRequiredInputField(fieldDef)) {
52
+ const typeStr = inspect(fieldDef.type);
53
+ context.reportError(
54
+ new GraphQLError(
55
+ `Field "${type.name}.${fieldDef.name}" of required type "${typeStr}" was not provided.`,
56
+ node,
57
+ ),
58
+ );
59
+ }
60
+ }
61
+ },
62
+
63
+ ObjectField(node) {
64
+ const parentType = getNamedType(context.getParentInputType());
65
+ const fieldType = context.getInputType();
66
+
67
+ if (!fieldType && isInputObjectType(parentType)) {
68
+ const suggestions = suggestionList(
69
+ node.name.value,
70
+ Object.keys(parentType.getFields()),
71
+ );
72
+ context.reportError(
73
+ new GraphQLError(
74
+ `Field "${node.name.value}" is not defined by type "${parentType.name}".` +
75
+ didYouMean(suggestions),
76
+ node,
77
+ ),
78
+ );
79
+ }
80
+ },
81
+
82
+ NullValue(node) {
83
+ const type = context.getInputType();
84
+
85
+ if (isNonNullType(type)) {
86
+ context.reportError(
87
+ new GraphQLError(
88
+ `Expected value of type "${inspect(type)}", found ${print(node)}.`,
89
+ node,
90
+ ),
91
+ );
92
+ }
93
+ },
94
+
95
+ EnumValue: (node) => isValidValueNode(context, node),
96
+ IntValue: (node) => isValidValueNode(context, node),
97
+ FloatValue: (node) => isValidValueNode(context, node),
98
+ StringValue: (node) => isValidValueNode(context, node),
99
+ BooleanValue: (node) => isValidValueNode(context, node),
100
+ };
101
+ }
102
+ /**
103
+ * Any value literal may be a valid representation of a Scalar, depending on
104
+ * that scalar type.
105
+ */
106
+
107
+ function isValidValueNode(context, node) {
108
+ // Report any error at the full type expected by the location.
109
+ const locationType = context.getInputType();
110
+
111
+ if (!locationType) {
112
+ return;
113
+ }
114
+
115
+ const type = getNamedType(locationType);
116
+
117
+ if (!isLeafType(type)) {
118
+ const typeStr = inspect(locationType);
119
+ context.reportError(
120
+ new GraphQLError(
121
+ `Expected value of type "${typeStr}", found ${print(node)}.`,
122
+ node,
123
+ ),
124
+ );
125
+ return;
126
+ } // Scalars and Enums determine if a literal value is valid via parseLiteral(),
127
+ // which may throw or return an invalid value to indicate failure.
128
+
129
+ try {
130
+ const parseResult = type.parseLiteral(
131
+ node,
132
+ undefined,
133
+ /* variables */
134
+ );
135
+
136
+ if (parseResult === undefined) {
137
+ const typeStr = inspect(locationType);
138
+ context.reportError(
139
+ new GraphQLError(
140
+ `Expected value of type "${typeStr}", found ${print(node)}.`,
141
+ node,
142
+ ),
143
+ );
144
+ }
145
+ } catch (error) {
146
+ const typeStr = inspect(locationType);
147
+
148
+ if (error instanceof GraphQLError) {
149
+ context.reportError(error);
150
+ } else {
151
+ context.reportError(
152
+ new GraphQLError(
153
+ `Expected value of type "${typeStr}", found ${print(node)}; ` +
154
+ error.message,
155
+ node,
156
+ undefined,
157
+ undefined,
158
+ undefined,
159
+ error,
160
+ ),
161
+ );
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Variables are input types
5
+ *
6
+ * A GraphQL operation is only valid if all the variables it defines are of
7
+ * input types (scalar, enum, or input object).
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types
10
+ */
11
+ export declare function VariablesAreInputTypesRule(
12
+ context: ValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.VariablesAreInputTypesRule = VariablesAreInputTypesRule;
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
+ * Variables are input types
18
+ *
19
+ * A GraphQL operation is only valid if all the variables it defines are of
20
+ * input types (scalar, enum, or input object).
21
+ *
22
+ * See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types
23
+ */
24
+ function VariablesAreInputTypesRule(context) {
25
+ return {
26
+ VariableDefinition(node) {
27
+ const type = (0, _typeFromAST.typeFromAST)(
28
+ context.getSchema(),
29
+ node.type,
30
+ );
31
+
32
+ if (type !== undefined && !(0, _definition.isInputType)(type)) {
33
+ const variableName = node.variable.name.value;
34
+ const typeName = (0, _printer.print)(node.type);
35
+ context.reportError(
36
+ new _GraphQLError.GraphQLError(
37
+ `Variable "$${variableName}" cannot be non-input type "${typeName}".`,
38
+ node.type,
39
+ ),
40
+ );
41
+ }
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,31 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { print } from '../../language/printer.mjs';
3
+ import { isInputType } from '../../type/definition.mjs';
4
+ import { typeFromAST } from '../../utilities/typeFromAST.mjs';
5
+
6
+ /**
7
+ * Variables are input types
8
+ *
9
+ * A GraphQL operation is only valid if all the variables it defines are of
10
+ * input types (scalar, enum, or input object).
11
+ *
12
+ * See https://spec.graphql.org/draft/#sec-Variables-Are-Input-Types
13
+ */
14
+ export function VariablesAreInputTypesRule(context) {
15
+ return {
16
+ VariableDefinition(node) {
17
+ const type = typeFromAST(context.getSchema(), node.type);
18
+
19
+ if (type !== undefined && !isInputType(type)) {
20
+ const variableName = node.variable.name.value;
21
+ const typeName = print(node.type);
22
+ context.reportError(
23
+ new GraphQLError(
24
+ `Variable "$${variableName}" cannot be non-input type "${typeName}".`,
25
+ node.type,
26
+ ),
27
+ );
28
+ }
29
+ },
30
+ };
31
+ }
@@ -0,0 +1,12 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Variables in allowed position
5
+ *
6
+ * Variable usages must be compatible with the arguments they are passed to.
7
+ *
8
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Usages-are-Allowed
9
+ */
10
+ export declare function VariablesInAllowedPositionRule(
11
+ context: ValidationContext,
12
+ ): ASTVisitor;
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.VariablesInAllowedPositionRule = VariablesInAllowedPositionRule;
7
+
8
+ var _inspect = require('../../jsutils/inspect.js');
9
+
10
+ var _GraphQLError = require('../../error/GraphQLError.js');
11
+
12
+ var _kinds = require('../../language/kinds.js');
13
+
14
+ var _definition = require('../../type/definition.js');
15
+
16
+ var _typeComparators = require('../../utilities/typeComparators.js');
17
+
18
+ var _typeFromAST = require('../../utilities/typeFromAST.js');
19
+
20
+ /**
21
+ * Variables in allowed position
22
+ *
23
+ * Variable usages must be compatible with the arguments they are passed to.
24
+ *
25
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Usages-are-Allowed
26
+ */
27
+ function VariablesInAllowedPositionRule(context) {
28
+ let varDefMap = Object.create(null);
29
+ return {
30
+ OperationDefinition: {
31
+ enter() {
32
+ varDefMap = Object.create(null);
33
+ },
34
+
35
+ leave(operation) {
36
+ const usages = context.getRecursiveVariableUsages(operation);
37
+
38
+ for (const { node, type, defaultValue } of usages) {
39
+ const varName = node.name.value;
40
+ const varDef = varDefMap[varName];
41
+
42
+ if (varDef && type) {
43
+ // A var type is allowed if it is the same or more strict (e.g. is
44
+ // a subtype of) than the expected type. It can be more strict if
45
+ // the variable type is non-null when the expected type is nullable.
46
+ // If both are list types, the variable item type can be more strict
47
+ // than the expected item type (contravariant).
48
+ const schema = context.getSchema();
49
+ const varType = (0, _typeFromAST.typeFromAST)(schema, varDef.type);
50
+
51
+ if (
52
+ varType &&
53
+ !allowedVariableUsage(
54
+ schema,
55
+ varType,
56
+ varDef.defaultValue,
57
+ type,
58
+ defaultValue,
59
+ )
60
+ ) {
61
+ const varTypeStr = (0, _inspect.inspect)(varType);
62
+ const typeStr = (0, _inspect.inspect)(type);
63
+ context.reportError(
64
+ new _GraphQLError.GraphQLError(
65
+ `Variable "$${varName}" of type "${varTypeStr}" used in position expecting type "${typeStr}".`,
66
+ [varDef, node],
67
+ ),
68
+ );
69
+ }
70
+ }
71
+ }
72
+ },
73
+ },
74
+
75
+ VariableDefinition(node) {
76
+ varDefMap[node.variable.name.value] = node;
77
+ },
78
+ };
79
+ }
80
+ /**
81
+ * Returns true if the variable is allowed in the location it was found,
82
+ * which includes considering if default values exist for either the variable
83
+ * or the location at which it is located.
84
+ */
85
+
86
+ function allowedVariableUsage(
87
+ schema,
88
+ varType,
89
+ varDefaultValue,
90
+ locationType,
91
+ locationDefaultValue,
92
+ ) {
93
+ if (
94
+ (0, _definition.isNonNullType)(locationType) &&
95
+ !(0, _definition.isNonNullType)(varType)
96
+ ) {
97
+ const hasNonNullVariableDefaultValue =
98
+ varDefaultValue != null && varDefaultValue.kind !== _kinds.Kind.NULL;
99
+ const hasLocationDefaultValue = locationDefaultValue !== undefined;
100
+
101
+ if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {
102
+ return false;
103
+ }
104
+
105
+ const nullableLocationType = locationType.ofType;
106
+ return (0, _typeComparators.isTypeSubTypeOf)(
107
+ schema,
108
+ varType,
109
+ nullableLocationType,
110
+ );
111
+ }
112
+
113
+ return (0, _typeComparators.isTypeSubTypeOf)(schema, varType, locationType);
114
+ }
@@ -0,0 +1,95 @@
1
+ import { inspect } from '../../jsutils/inspect.mjs';
2
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
3
+ import { Kind } from '../../language/kinds.mjs';
4
+ import { isNonNullType } from '../../type/definition.mjs';
5
+ import { isTypeSubTypeOf } from '../../utilities/typeComparators.mjs';
6
+ import { typeFromAST } from '../../utilities/typeFromAST.mjs';
7
+
8
+ /**
9
+ * Variables in allowed position
10
+ *
11
+ * Variable usages must be compatible with the arguments they are passed to.
12
+ *
13
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Usages-are-Allowed
14
+ */
15
+ export function VariablesInAllowedPositionRule(context) {
16
+ let varDefMap = Object.create(null);
17
+ return {
18
+ OperationDefinition: {
19
+ enter() {
20
+ varDefMap = Object.create(null);
21
+ },
22
+
23
+ leave(operation) {
24
+ const usages = context.getRecursiveVariableUsages(operation);
25
+
26
+ for (const { node, type, defaultValue } of usages) {
27
+ const varName = node.name.value;
28
+ const varDef = varDefMap[varName];
29
+
30
+ if (varDef && type) {
31
+ // A var type is allowed if it is the same or more strict (e.g. is
32
+ // a subtype of) than the expected type. It can be more strict if
33
+ // the variable type is non-null when the expected type is nullable.
34
+ // If both are list types, the variable item type can be more strict
35
+ // than the expected item type (contravariant).
36
+ const schema = context.getSchema();
37
+ const varType = typeFromAST(schema, varDef.type);
38
+
39
+ if (
40
+ varType &&
41
+ !allowedVariableUsage(
42
+ schema,
43
+ varType,
44
+ varDef.defaultValue,
45
+ type,
46
+ defaultValue,
47
+ )
48
+ ) {
49
+ const varTypeStr = inspect(varType);
50
+ const typeStr = inspect(type);
51
+ context.reportError(
52
+ new GraphQLError(
53
+ `Variable "$${varName}" of type "${varTypeStr}" used in position expecting type "${typeStr}".`,
54
+ [varDef, node],
55
+ ),
56
+ );
57
+ }
58
+ }
59
+ }
60
+ },
61
+ },
62
+
63
+ VariableDefinition(node) {
64
+ varDefMap[node.variable.name.value] = node;
65
+ },
66
+ };
67
+ }
68
+ /**
69
+ * Returns true if the variable is allowed in the location it was found,
70
+ * which includes considering if default values exist for either the variable
71
+ * or the location at which it is located.
72
+ */
73
+
74
+ function allowedVariableUsage(
75
+ schema,
76
+ varType,
77
+ varDefaultValue,
78
+ locationType,
79
+ locationDefaultValue,
80
+ ) {
81
+ if (isNonNullType(locationType) && !isNonNullType(varType)) {
82
+ const hasNonNullVariableDefaultValue =
83
+ varDefaultValue != null && varDefaultValue.kind !== Kind.NULL;
84
+ const hasLocationDefaultValue = locationDefaultValue !== undefined;
85
+
86
+ if (!hasNonNullVariableDefaultValue && !hasLocationDefaultValue) {
87
+ return false;
88
+ }
89
+
90
+ const nullableLocationType = locationType.ofType;
91
+ return isTypeSubTypeOf(schema, varType, nullableLocationType);
92
+ }
93
+
94
+ return isTypeSubTypeOf(schema, varType, locationType);
95
+ }
@@ -0,0 +1,15 @@
1
+ import type { ASTVisitor } from '../../../language/visitor';
2
+ import type { ValidationContext } from '../../ValidationContext';
3
+ /**
4
+ * No deprecated
5
+ *
6
+ * A GraphQL document is only valid if all selected fields and all used enum values have not been
7
+ * deprecated.
8
+ *
9
+ * Note: This rule is optional and is not part of the Validation section of the GraphQL
10
+ * Specification. The main purpose of this rule is detection of deprecated usages and not
11
+ * necessarily to forbid their use when querying a service.
12
+ */
13
+ export declare function NoDeprecatedCustomRule(
14
+ context: ValidationContext,
15
+ ): ASTVisitor;