graphql 16.14.0 → 16.14.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 (371) hide show
  1. package/error/GraphQLError.d.ts +151 -15
  2. package/error/GraphQLError.js +143 -12
  3. package/error/GraphQLError.mjs +143 -12
  4. package/error/index.d.ts +6 -0
  5. package/error/index.mjs +6 -0
  6. package/error/locatedError.d.ts +20 -0
  7. package/error/locatedError.js +21 -0
  8. package/error/locatedError.mjs +20 -0
  9. package/error/syntaxError.d.ts +15 -0
  10. package/error/syntaxError.js +16 -0
  11. package/error/syntaxError.mjs +15 -0
  12. package/execution/collectFields.js +6 -0
  13. package/execution/collectFields.mjs +6 -0
  14. package/execution/execute.d.ts +211 -12
  15. package/execution/execute.js +214 -23
  16. package/execution/execute.mjs +213 -23
  17. package/execution/index.d.ts +6 -0
  18. package/execution/index.mjs +6 -0
  19. package/execution/mapAsyncIterator.d.ts +2 -0
  20. package/execution/mapAsyncIterator.js +2 -0
  21. package/execution/mapAsyncIterator.mjs +2 -0
  22. package/execution/subscribe.d.ts +195 -5
  23. package/execution/subscribe.js +154 -11
  24. package/execution/subscribe.mjs +153 -11
  25. package/execution/values.d.ts +167 -10
  26. package/execution/values.js +149 -5
  27. package/execution/values.mjs +148 -5
  28. package/graphql.d.ts +163 -41
  29. package/graphql.js +126 -4
  30. package/graphql.mjs +131 -41
  31. package/index.d.ts +11 -17
  32. package/index.mjs +13 -19
  33. package/jsutils/Maybe.d.ts +5 -1
  34. package/jsutils/ObjMap.d.ts +4 -0
  35. package/jsutils/Path.d.ts +30 -0
  36. package/jsutils/Path.js +29 -0
  37. package/jsutils/Path.mjs +29 -0
  38. package/jsutils/PromiseOrValue.d.ts +1 -0
  39. package/jsutils/devAssert.d.ts +1 -0
  40. package/jsutils/devAssert.js +1 -0
  41. package/jsutils/devAssert.mjs +1 -0
  42. package/jsutils/didYouMean.d.ts +4 -1
  43. package/jsutils/didYouMean.js +4 -1
  44. package/jsutils/didYouMean.mjs +4 -1
  45. package/jsutils/groupBy.d.ts +2 -0
  46. package/jsutils/groupBy.js +2 -0
  47. package/jsutils/groupBy.mjs +2 -0
  48. package/jsutils/identityFunc.d.ts +2 -0
  49. package/jsutils/identityFunc.js +2 -0
  50. package/jsutils/identityFunc.mjs +2 -0
  51. package/jsutils/inspect.d.ts +2 -0
  52. package/jsutils/inspect.js +2 -0
  53. package/jsutils/inspect.mjs +2 -0
  54. package/jsutils/instanceOf.d.ts +2 -0
  55. package/jsutils/instanceOf.js +2 -0
  56. package/jsutils/instanceOf.mjs +2 -0
  57. package/jsutils/invariant.d.ts +1 -0
  58. package/jsutils/invariant.js +1 -0
  59. package/jsutils/invariant.mjs +1 -0
  60. package/jsutils/isAsyncIterable.d.ts +2 -0
  61. package/jsutils/isAsyncIterable.js +2 -0
  62. package/jsutils/isAsyncIterable.mjs +2 -0
  63. package/jsutils/isIterableObject.d.ts +6 -5
  64. package/jsutils/isIterableObject.js +6 -5
  65. package/jsutils/isIterableObject.mjs +6 -5
  66. package/jsutils/isObjectLike.d.ts +2 -0
  67. package/jsutils/isObjectLike.js +2 -0
  68. package/jsutils/isObjectLike.mjs +2 -0
  69. package/jsutils/isPromise.d.ts +2 -0
  70. package/jsutils/isPromise.js +2 -0
  71. package/jsutils/isPromise.mjs +2 -0
  72. package/jsutils/keyMap.d.ts +7 -14
  73. package/jsutils/keyMap.js +7 -14
  74. package/jsutils/keyMap.mjs +7 -14
  75. package/jsutils/keyValMap.d.ts +9 -6
  76. package/jsutils/keyValMap.js +9 -6
  77. package/jsutils/keyValMap.mjs +9 -6
  78. package/jsutils/mapValue.d.ts +2 -0
  79. package/jsutils/mapValue.js +2 -0
  80. package/jsutils/mapValue.mjs +2 -0
  81. package/jsutils/memoize3.d.ts +2 -0
  82. package/jsutils/memoize3.js +2 -0
  83. package/jsutils/memoize3.mjs +2 -0
  84. package/jsutils/naturalCompare.d.ts +2 -0
  85. package/jsutils/naturalCompare.js +2 -0
  86. package/jsutils/naturalCompare.mjs +2 -0
  87. package/jsutils/printPathArray.d.ts +2 -0
  88. package/jsutils/printPathArray.js +2 -0
  89. package/jsutils/printPathArray.mjs +2 -0
  90. package/jsutils/promiseForObject.d.ts +2 -0
  91. package/jsutils/promiseForObject.js +2 -0
  92. package/jsutils/promiseForObject.mjs +2 -0
  93. package/jsutils/promiseReduce.d.ts +2 -0
  94. package/jsutils/promiseReduce.js +2 -0
  95. package/jsutils/promiseReduce.mjs +2 -0
  96. package/jsutils/suggestionList.d.ts +2 -0
  97. package/jsutils/suggestionList.js +4 -0
  98. package/jsutils/suggestionList.mjs +4 -0
  99. package/jsutils/toError.d.ts +2 -0
  100. package/jsutils/toError.js +2 -0
  101. package/jsutils/toError.mjs +2 -0
  102. package/jsutils/toObjMap.d.ts +1 -0
  103. package/jsutils/toObjMap.js +1 -0
  104. package/jsutils/toObjMap.mjs +1 -0
  105. package/language/ast.d.ts +412 -54
  106. package/language/ast.js +95 -38
  107. package/language/ast.mjs +95 -38
  108. package/language/blockString.d.ts +1 -3
  109. package/language/blockString.js +1 -3
  110. package/language/blockString.mjs +1 -3
  111. package/language/directiveLocation.d.ts +28 -8
  112. package/language/directiveLocation.js +9 -6
  113. package/language/directiveLocation.mjs +9 -6
  114. package/language/index.d.ts +6 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +57 -18
  117. package/language/kinds.js +9 -6
  118. package/language/kinds.mjs +9 -6
  119. package/language/lexer.d.ts +47 -14
  120. package/language/lexer.js +71 -13
  121. package/language/lexer.mjs +70 -13
  122. package/language/location.d.ts +16 -3
  123. package/language/location.js +14 -3
  124. package/language/location.mjs +14 -3
  125. package/language/parser.d.ts +236 -13
  126. package/language/parser.js +224 -0
  127. package/language/parser.mjs +224 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +170 -0
  130. package/language/predicates.mjs +180 -0
  131. package/language/printLocation.d.ts +28 -0
  132. package/language/printLocation.js +29 -0
  133. package/language/printLocation.mjs +28 -0
  134. package/language/printString.d.ts +2 -0
  135. package/language/printString.js +5 -1
  136. package/language/printString.mjs +5 -1
  137. package/language/printer.d.ts +12 -0
  138. package/language/printer.js +19 -0
  139. package/language/printer.mjs +18 -0
  140. package/language/schemaCoordinateLexer.d.ts +8 -6
  141. package/language/schemaCoordinateLexer.js +10 -6
  142. package/language/schemaCoordinateLexer.mjs +10 -6
  143. package/language/source.d.ts +28 -0
  144. package/language/source.js +32 -0
  145. package/language/source.mjs +31 -0
  146. package/language/tokenKind.d.ts +30 -3
  147. package/language/tokenKind.js +8 -3
  148. package/language/tokenKind.mjs +8 -3
  149. package/language/visitor.d.ts +200 -72
  150. package/language/visitor.js +122 -50
  151. package/language/visitor.mjs +122 -54
  152. package/package.json +1 -1
  153. package/subscription/index.d.ts +9 -3
  154. package/subscription/index.mjs +9 -3
  155. package/type/assertName.d.ts +18 -1
  156. package/type/assertName.js +19 -1
  157. package/type/assertName.mjs +18 -1
  158. package/type/definition.d.ts +2540 -79
  159. package/type/definition.js +2214 -61
  160. package/type/definition.mjs +2241 -60
  161. package/type/directives.d.ts +193 -18
  162. package/type/directives.js +196 -19
  163. package/type/directives.mjs +196 -19
  164. package/type/index.d.ts +6 -0
  165. package/type/index.mjs +6 -0
  166. package/type/introspection.d.ts +36 -0
  167. package/type/introspection.js +33 -0
  168. package/type/introspection.mjs +41 -0
  169. package/type/scalars.d.ts +29 -2
  170. package/type/scalars.js +37 -2
  171. package/type/scalars.mjs +36 -2
  172. package/type/schema.d.ts +490 -28
  173. package/type/schema.js +484 -26
  174. package/type/schema.mjs +484 -26
  175. package/type/validate.d.ts +31 -0
  176. package/type/validate.js +32 -0
  177. package/type/validate.mjs +31 -0
  178. package/utilities/TypeInfo.d.ts +441 -1
  179. package/utilities/TypeInfo.js +444 -1
  180. package/utilities/TypeInfo.mjs +443 -1
  181. package/utilities/assertValidName.d.ts +27 -2
  182. package/utilities/assertValidName.js +28 -2
  183. package/utilities/assertValidName.mjs +27 -2
  184. package/utilities/astFromValue.d.ts +33 -3
  185. package/utilities/astFromValue.js +36 -3
  186. package/utilities/astFromValue.mjs +35 -3
  187. package/utilities/buildASTSchema.d.ts +65 -6
  188. package/utilities/buildASTSchema.js +65 -6
  189. package/utilities/buildASTSchema.mjs +65 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +16 -0
  192. package/utilities/buildClientSchema.mjs +15 -0
  193. package/utilities/coerceInputValue.d.ts +46 -0
  194. package/utilities/coerceInputValue.js +47 -0
  195. package/utilities/coerceInputValue.mjs +46 -0
  196. package/utilities/concatAST.d.ts +12 -0
  197. package/utilities/concatAST.js +13 -0
  198. package/utilities/concatAST.mjs +12 -0
  199. package/utilities/extendSchema.d.ts +56 -3
  200. package/utilities/extendSchema.js +63 -3
  201. package/utilities/extendSchema.mjs +62 -3
  202. package/utilities/findBreakingChanges.d.ts +95 -0
  203. package/utilities/findBreakingChanges.js +68 -0
  204. package/utilities/findBreakingChanges.mjs +70 -0
  205. package/utilities/getIntrospectionQuery.d.ts +132 -0
  206. package/utilities/getIntrospectionQuery.js +41 -0
  207. package/utilities/getIntrospectionQuery.mjs +41 -0
  208. package/utilities/getOperationAST.d.ts +15 -0
  209. package/utilities/getOperationAST.js +16 -0
  210. package/utilities/getOperationAST.mjs +15 -0
  211. package/utilities/getOperationRootType.d.ts +18 -1
  212. package/utilities/getOperationRootType.js +19 -1
  213. package/utilities/getOperationRootType.mjs +18 -1
  214. package/utilities/index.d.ts +7 -0
  215. package/utilities/index.mjs +7 -0
  216. package/utilities/introspectionFromSchema.d.ts +54 -0
  217. package/utilities/introspectionFromSchema.js +55 -0
  218. package/utilities/introspectionFromSchema.mjs +54 -0
  219. package/utilities/lexicographicSortSchema.d.ts +35 -0
  220. package/utilities/lexicographicSortSchema.js +36 -0
  221. package/utilities/lexicographicSortSchema.mjs +35 -0
  222. package/utilities/printSchema.d.ts +63 -0
  223. package/utilities/printSchema.js +66 -0
  224. package/utilities/printSchema.mjs +67 -0
  225. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  226. package/utilities/resolveSchemaCoordinate.js +64 -0
  227. package/utilities/resolveSchemaCoordinate.mjs +63 -0
  228. package/utilities/separateOperations.d.ts +30 -0
  229. package/utilities/separateOperations.js +31 -0
  230. package/utilities/separateOperations.mjs +30 -0
  231. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  232. package/utilities/stripIgnoredCharacters.js +16 -6
  233. package/utilities/stripIgnoredCharacters.mjs +15 -6
  234. package/utilities/typeComparators.d.ts +84 -0
  235. package/utilities/typeComparators.js +85 -0
  236. package/utilities/typeComparators.mjs +84 -0
  237. package/utilities/typeFromAST.d.ts +86 -0
  238. package/utilities/typeFromAST.js +3 -0
  239. package/utilities/typeFromAST.mjs +3 -0
  240. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  241. package/utilities/valueFromAST.d.ts +38 -0
  242. package/utilities/valueFromAST.js +39 -0
  243. package/utilities/valueFromAST.mjs +38 -0
  244. package/utilities/valueFromASTUntyped.d.ts +15 -2
  245. package/utilities/valueFromASTUntyped.js +16 -2
  246. package/utilities/valueFromASTUntyped.mjs +15 -2
  247. package/validation/ValidationContext.d.ts +399 -0
  248. package/validation/ValidationContext.js +400 -0
  249. package/validation/ValidationContext.mjs +401 -0
  250. package/validation/index.d.ts +6 -0
  251. package/validation/index.mjs +6 -0
  252. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  253. package/validation/rules/ExecutableDefinitionsRule.js +29 -0
  254. package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
  255. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  256. package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
  257. package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
  258. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  259. package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
  260. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
  261. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  262. package/validation/rules/KnownArgumentNamesRule.js +30 -3
  263. package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
  264. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  265. package/validation/rules/KnownDirectivesRule.js +29 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +28 -0
  267. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  268. package/validation/rules/KnownFragmentNamesRule.js +29 -0
  269. package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
  270. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  271. package/validation/rules/KnownTypeNamesRule.js +29 -0
  272. package/validation/rules/KnownTypeNamesRule.mjs +28 -0
  273. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  274. package/validation/rules/LoneAnonymousOperationRule.js +29 -0
  275. package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
  276. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  277. package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
  278. package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
  279. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  280. package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
  281. package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
  282. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  283. package/validation/rules/NoFragmentCyclesRule.js +29 -0
  284. package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
  285. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  286. package/validation/rules/NoUndefinedVariablesRule.js +29 -0
  287. package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
  288. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  289. package/validation/rules/NoUnusedFragmentsRule.js +29 -0
  290. package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
  291. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  292. package/validation/rules/NoUnusedVariablesRule.js +30 -0
  293. package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
  294. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  295. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
  296. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
  297. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  298. package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
  299. package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
  300. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  301. package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
  302. package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
  303. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  304. package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
  305. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
  306. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  307. package/validation/rules/ScalarLeafsRule.js +29 -0
  308. package/validation/rules/ScalarLeafsRule.mjs +28 -0
  309. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
  310. package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
  311. package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
  312. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  313. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
  314. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
  315. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  316. package/validation/rules/UniqueArgumentNamesRule.js +29 -0
  317. package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
  318. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  319. package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
  320. package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
  321. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  322. package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
  324. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  325. package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
  326. package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
  327. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  328. package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
  329. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
  330. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  331. package/validation/rules/UniqueFragmentNamesRule.js +29 -0
  332. package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
  333. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  334. package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
  335. package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
  336. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  337. package/validation/rules/UniqueOperationNamesRule.js +29 -0
  338. package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
  339. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  340. package/validation/rules/UniqueOperationTypesRule.js +22 -0
  341. package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
  342. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  343. package/validation/rules/UniqueTypeNamesRule.js +22 -0
  344. package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
  345. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  346. package/validation/rules/UniqueVariableNamesRule.js +29 -0
  347. package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
  348. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  349. package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
  350. package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
  351. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  352. package/validation/rules/VariablesAreInputTypesRule.js +33 -0
  353. package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
  354. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  355. package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
  356. package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
  357. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  358. package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
  359. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
  360. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  361. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
  362. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
  363. package/validation/specifiedRules.d.ts +2 -3
  364. package/validation/specifiedRules.js +2 -3
  365. package/validation/specifiedRules.mjs +2 -3
  366. package/validation/validate.d.ts +70 -9
  367. package/validation/validate.js +63 -7
  368. package/validation/validate.mjs +63 -7
  369. package/version.d.ts +3 -6
  370. package/version.js +6 -8
  371. package/version.mjs +5 -8
@@ -1,3 +1,4 @@
1
+ /** @category Errors */
1
2
  import type { Maybe } from '../jsutils/Maybe';
2
3
  import type { ASTNode } from '../language/ast';
3
4
  import { GraphQLError } from './GraphQLError';
@@ -5,6 +6,25 @@ import { GraphQLError } from './GraphQLError';
5
6
  * Given an arbitrary value, presumably thrown while attempting to execute a
6
7
  * GraphQL operation, produce a new GraphQLError aware of the location in the
7
8
  * document responsible for the original Error.
9
+ * @param rawOriginalError - The original error value to wrap.
10
+ * @param nodes - The AST nodes associated with the error.
11
+ * @param path - The response path associated with the error.
12
+ * @returns The GraphQL error.
13
+ * @example
14
+ * ```ts
15
+ * import { parse } from 'graphql/language';
16
+ * import { locatedError } from 'graphql/error';
17
+ *
18
+ * const document = parse('{ viewer { name } }');
19
+ * const fieldNode = document.definitions[0].selectionSet.selections[0];
20
+ * const error = locatedError(new Error('Resolver failed'), fieldNode, [
21
+ * 'viewer',
22
+ * ]);
23
+ *
24
+ * error.message; // => 'Resolver failed'
25
+ * error.locations; // => [{ line: 1, column: 3 }]
26
+ * error.path; // => ['viewer']
27
+ * ```
8
28
  */
9
29
  export declare function locatedError(
10
30
  rawOriginalError: unknown,
@@ -9,10 +9,31 @@ var _toError = require('../jsutils/toError.js');
9
9
 
10
10
  var _GraphQLError = require('./GraphQLError.js');
11
11
 
12
+ /** @category Errors */
13
+
12
14
  /**
13
15
  * Given an arbitrary value, presumably thrown while attempting to execute a
14
16
  * GraphQL operation, produce a new GraphQLError aware of the location in the
15
17
  * document responsible for the original Error.
18
+ * @param rawOriginalError - The original error value to wrap.
19
+ * @param nodes - The AST nodes associated with the error.
20
+ * @param path - The response path associated with the error.
21
+ * @returns The GraphQL error.
22
+ * @example
23
+ * ```ts
24
+ * import { parse } from 'graphql/language';
25
+ * import { locatedError } from 'graphql/error';
26
+ *
27
+ * const document = parse('{ viewer { name } }');
28
+ * const fieldNode = document.definitions[0].selectionSet.selections[0];
29
+ * const error = locatedError(new Error('Resolver failed'), fieldNode, [
30
+ * 'viewer',
31
+ * ]);
32
+ *
33
+ * error.message; // => 'Resolver failed'
34
+ * error.locations; // => [{ line: 1, column: 3 }]
35
+ * error.path; // => ['viewer']
36
+ * ```
16
37
  */
17
38
  function locatedError(rawOriginalError, nodes, path) {
18
39
  var _nodes;
@@ -1,9 +1,29 @@
1
+ /** @category Errors */
1
2
  import { toError } from '../jsutils/toError.mjs';
2
3
  import { GraphQLError } from './GraphQLError.mjs';
3
4
  /**
4
5
  * Given an arbitrary value, presumably thrown while attempting to execute a
5
6
  * GraphQL operation, produce a new GraphQLError aware of the location in the
6
7
  * document responsible for the original Error.
8
+ * @param rawOriginalError - The original error value to wrap.
9
+ * @param nodes - The AST nodes associated with the error.
10
+ * @param path - The response path associated with the error.
11
+ * @returns The GraphQL error.
12
+ * @example
13
+ * ```ts
14
+ * import { parse } from 'graphql/language';
15
+ * import { locatedError } from 'graphql/error';
16
+ *
17
+ * const document = parse('{ viewer { name } }');
18
+ * const fieldNode = document.definitions[0].selectionSet.selections[0];
19
+ * const error = locatedError(new Error('Resolver failed'), fieldNode, [
20
+ * 'viewer',
21
+ * ]);
22
+ *
23
+ * error.message; // => 'Resolver failed'
24
+ * error.locations; // => [{ line: 1, column: 3 }]
25
+ * error.path; // => ['viewer']
26
+ * ```
7
27
  */
8
28
 
9
29
  export function locatedError(rawOriginalError, nodes, path) {
@@ -1,8 +1,23 @@
1
+ /** @category Errors */
1
2
  import type { Source } from '../language/source';
2
3
  import { GraphQLError } from './GraphQLError';
3
4
  /**
4
5
  * Produces a GraphQLError representing a syntax error, containing useful
5
6
  * descriptive information about the syntax error's position in the source.
7
+ * @param source - The GraphQL source containing the syntax error.
8
+ * @param position - Character offset where the syntax error was encountered.
9
+ * @param description - Human-readable description of the syntax error.
10
+ * @returns A GraphQLError located at the syntax error position.
11
+ * @example
12
+ * ```ts
13
+ * import { Source } from 'graphql/language';
14
+ * import { syntaxError } from 'graphql/error';
15
+ *
16
+ * const error = syntaxError(new Source('query {'), 7, 'Expected Name');
17
+ *
18
+ * error.message; // => 'Syntax Error: Expected Name'
19
+ * error.locations; // => [{ line: 1, column: 8 }]
20
+ * ```
6
21
  */
7
22
  export declare function syntaxError(
8
23
  source: Source,
@@ -7,9 +7,25 @@ exports.syntaxError = syntaxError;
7
7
 
8
8
  var _GraphQLError = require('./GraphQLError.js');
9
9
 
10
+ /** @category Errors */
11
+
10
12
  /**
11
13
  * Produces a GraphQLError representing a syntax error, containing useful
12
14
  * descriptive information about the syntax error's position in the source.
15
+ * @param source - The GraphQL source containing the syntax error.
16
+ * @param position - Character offset where the syntax error was encountered.
17
+ * @param description - Human-readable description of the syntax error.
18
+ * @returns A GraphQLError located at the syntax error position.
19
+ * @example
20
+ * ```ts
21
+ * import { Source } from 'graphql/language';
22
+ * import { syntaxError } from 'graphql/error';
23
+ *
24
+ * const error = syntaxError(new Source('query {'), 7, 'Expected Name');
25
+ *
26
+ * error.message; // => 'Syntax Error: Expected Name'
27
+ * error.locations; // => [{ line: 1, column: 8 }]
28
+ * ```
13
29
  */
14
30
  function syntaxError(source, position, description) {
15
31
  return new _GraphQLError.GraphQLError(`Syntax Error: ${description}`, {
@@ -1,7 +1,22 @@
1
+ /** @category Errors */
1
2
  import { GraphQLError } from './GraphQLError.mjs';
2
3
  /**
3
4
  * Produces a GraphQLError representing a syntax error, containing useful
4
5
  * descriptive information about the syntax error's position in the source.
6
+ * @param source - The GraphQL source containing the syntax error.
7
+ * @param position - Character offset where the syntax error was encountered.
8
+ * @param description - Human-readable description of the syntax error.
9
+ * @returns A GraphQLError located at the syntax error position.
10
+ * @example
11
+ * ```ts
12
+ * import { Source } from 'graphql/language';
13
+ * import { syntaxError } from 'graphql/error';
14
+ *
15
+ * const error = syntaxError(new Source('query {'), 7, 'Expected Name');
16
+ *
17
+ * error.message; // => 'Syntax Error: Expected Name'
18
+ * error.locations; // => [{ line: 1, column: 8 }]
19
+ * ```
5
20
  */
6
21
 
7
22
  export function syntaxError(source, position, description) {
@@ -167,6 +167,8 @@ function collectFieldsImpl(
167
167
  /**
168
168
  * Determines if a field should be included based on the `@include` and `@skip`
169
169
  * directives, where `@skip` has higher precedence than `@include`.
170
+ *
171
+ * @internal
170
172
  */
171
173
 
172
174
  function shouldIncludeNode(variableValues, node) {
@@ -196,6 +198,8 @@ function shouldIncludeNode(variableValues, node) {
196
198
  }
197
199
  /**
198
200
  * Determines if a fragment is applicable to the given type.
201
+ *
202
+ * @internal
199
203
  */
200
204
 
201
205
  function doesFragmentConditionMatch(schema, fragment, type) {
@@ -222,6 +226,8 @@ function doesFragmentConditionMatch(schema, fragment, type) {
222
226
  }
223
227
  /**
224
228
  * Implements the logic to compute the key of a given field's entry
229
+ *
230
+ * @internal
225
231
  */
226
232
 
227
233
  function getFieldEntryKey(node) {
@@ -158,6 +158,8 @@ function collectFieldsImpl(
158
158
  /**
159
159
  * Determines if a field should be included based on the `@include` and `@skip`
160
160
  * directives, where `@skip` has higher precedence than `@include`.
161
+ *
162
+ * @internal
161
163
  */
162
164
 
163
165
  function shouldIncludeNode(variableValues, node) {
@@ -183,6 +185,8 @@ function shouldIncludeNode(variableValues, node) {
183
185
  }
184
186
  /**
185
187
  * Determines if a fragment is applicable to the given type.
188
+ *
189
+ * @internal
186
190
  */
187
191
 
188
192
  function doesFragmentConditionMatch(schema, fragment, type) {
@@ -206,6 +210,8 @@ function doesFragmentConditionMatch(schema, fragment, type) {
206
210
  }
207
211
  /**
208
212
  * Implements the logic to compute the key of a given field's entry
213
+ *
214
+ * @internal
209
215
  */
210
216
 
211
217
  function getFieldEntryKey(node) {
@@ -1,3 +1,4 @@
1
+ /** @category Execution */
1
2
  import type { Maybe } from '../jsutils/Maybe';
2
3
  import type { ObjMap } from '../jsutils/ObjMap';
3
4
  import type { Path } from '../jsutils/Path';
@@ -42,6 +43,8 @@ import type { GraphQLSchema } from '../type/schema';
42
43
  *
43
44
  * Namely, schema of the type system that is currently executing,
44
45
  * and the fragments defined in the query document
46
+ *
47
+ * @internal
45
48
  */
46
49
  export interface ExecutionContext {
47
50
  schema: GraphQLSchema;
@@ -57,9 +60,6 @@ export interface ExecutionContext {
57
60
  subscribeFieldResolver: GraphQLFieldResolver<any, any>;
58
61
  collectedErrors: CollectedErrors;
59
62
  }
60
- /**
61
- * @internal
62
- */
63
63
  declare class CollectedErrors {
64
64
  private _errorPositions;
65
65
  private _errors;
@@ -69,39 +69,58 @@ declare class CollectedErrors {
69
69
  private _hasNulledPosition;
70
70
  }
71
71
  /**
72
- * The result of GraphQL execution.
73
- *
74
- * - `errors` is included when any errors occurred as a non-empty array.
75
- * - `data` is the result of a successful execution of the query.
76
- * - `extensions` is reserved for adding non-standard properties.
72
+ * Represents the response produced by executing a GraphQL operation.
73
+ * @typeParam TData - Shape of the execution data payload.
74
+ * @typeParam TExtensions - Shape of the extensions payload.
77
75
  */
78
76
  export interface ExecutionResult<
79
77
  TData = ObjMap<unknown>,
80
78
  TExtensions = ObjMap<unknown>,
81
79
  > {
80
+ /** Errors raised while parsing, validating, or executing the operation. */
82
81
  errors?: ReadonlyArray<GraphQLError>;
82
+ /** Data returned by execution, or null when execution could not produce data. */
83
83
  data?: TData | null;
84
+ /** Extension fields to include in the formatted result. */
84
85
  extensions?: TExtensions;
85
86
  }
87
+ /**
88
+ * A JSON-serializable GraphQL execution result.
89
+ * @typeParam TData - Shape of the formatted data payload.
90
+ * @typeParam TExtensions - Shape of the formatted extensions payload.
91
+ */
86
92
  export interface FormattedExecutionResult<
87
93
  TData = ObjMap<unknown>,
88
94
  TExtensions = ObjMap<unknown>,
89
95
  > {
96
+ /** Errors raised while parsing, validating, or executing the operation. */
90
97
  errors?: ReadonlyArray<GraphQLFormattedError>;
98
+ /** Data returned by execution, or null when execution could not produce data. */
91
99
  data?: TData | null;
100
+ /** Extension fields to include in the formatted result. */
92
101
  extensions?: TExtensions;
93
102
  }
103
+ /** Arguments accepted by execute and executeSync. */
94
104
  export interface ExecutionArgs {
105
+ /** The schema used for validation or execution. */
95
106
  schema: GraphQLSchema;
107
+ /** The parsed GraphQL document to execute. */
96
108
  document: DocumentNode;
109
+ /** Initial root value passed to the operation. */
97
110
  rootValue?: unknown;
111
+ /** Application context value passed to every resolver. */
98
112
  contextValue?: unknown;
113
+ /** Runtime variable values keyed by variable name. */
99
114
  variableValues?: Maybe<{
100
115
  readonly [variable: string]: unknown;
101
116
  }>;
117
+ /** Name of the operation to execute when the document contains multiple operations. */
102
118
  operationName?: Maybe<string>;
119
+ /** Resolver used when a field does not define its own resolver. */
103
120
  fieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
121
+ /** Resolver used when an abstract type does not define its own resolver. */
104
122
  typeResolver?: Maybe<GraphQLTypeResolver<any, any>>;
123
+ /** Resolver used for the root subscription field. */
105
124
  subscribeFieldResolver?: Maybe<GraphQLFieldResolver<any, any>>;
106
125
  /** Additional execution options. */
107
126
  options?: {
@@ -118,6 +137,139 @@ export interface ExecutionArgs {
118
137
  *
119
138
  * If the arguments to this function do not result in a legal execution context,
120
139
  * a GraphQLError will be thrown immediately explaining the invalid input.
140
+ *
141
+ * Field errors are collected into the response instead of rejecting the
142
+ * returned promise. Only the field that produced the error and its descendants
143
+ * are omitted; sibling fields continue to execute. Errors from fields of
144
+ * non-null type may propagate to the nearest nullable parent, which can be the
145
+ * entire response data.
146
+ * @param args - The arguments used to perform the operation.
147
+ * @returns A completed execution result, or a promise resolving to one when execution is asynchronous.
148
+ * @example
149
+ * ```ts
150
+ * // Execute an asynchronous operation with variables.
151
+ * import { parse } from 'graphql/language';
152
+ * import { buildSchema } from 'graphql/utilities';
153
+ * import { execute } from 'graphql/execution';
154
+ *
155
+ * const schema = buildSchema(`
156
+ * type Query {
157
+ * greeting(name: String!): String
158
+ * }
159
+ * `);
160
+ *
161
+ * const result = await execute({
162
+ * schema,
163
+ * document: parse('query ($name: String!) { greeting(name: $name) }'),
164
+ * rootValue: {
165
+ * greeting: ({ name }) => `Hello, ${name}!`,
166
+ * },
167
+ * variableValues: { name: 'Ada' },
168
+ * });
169
+ *
170
+ * result; // => { data: { greeting: 'Hello, Ada!' } }
171
+ * ```
172
+ * @example
173
+ * ```ts
174
+ * // This variant supplies context plus custom field and type resolvers.
175
+ * import { parse } from 'graphql/language';
176
+ * import { buildSchema } from 'graphql/utilities';
177
+ * import { execute } from 'graphql/execution';
178
+ *
179
+ * const schema = buildSchema(`
180
+ * interface Named {
181
+ * name: String!
182
+ * }
183
+ *
184
+ * type User implements Named {
185
+ * name: String!
186
+ * }
187
+ *
188
+ * type Query {
189
+ * viewer: Named
190
+ * }
191
+ * `);
192
+ *
193
+ * const result = await execute({
194
+ * schema,
195
+ * document: parse('query Viewer { viewer { __typename name } }'),
196
+ * rootValue: { viewer: { kind: 'user', name: 'Ada' } },
197
+ * contextValue: { locale: 'en' },
198
+ * operationName: 'Viewer',
199
+ * fieldResolver: (source, _args, contextValue, info) => {
200
+ * contextValue.locale; // => 'en'
201
+ * return source[info.fieldName];
202
+ * },
203
+ * typeResolver: (value) => {
204
+ * return value.kind === 'user' ? 'User' : undefined;
205
+ * },
206
+ * });
207
+ *
208
+ * result; // => { data: { viewer: { __typename: 'User', name: 'Ada' } } }
209
+ * ```
210
+ * @example
211
+ * ```ts
212
+ * // This variant shows how resolver errors become field errors in the result.
213
+ * import { parse } from 'graphql/language';
214
+ * import { buildSchema } from 'graphql/utilities';
215
+ * import { execute } from 'graphql/execution';
216
+ *
217
+ * const schema = buildSchema(`
218
+ * type Query {
219
+ * broken: String
220
+ * }
221
+ * `);
222
+ * const document = parse('{ broken }');
223
+ *
224
+ * const result = await execute({
225
+ * schema,
226
+ * document,
227
+ * rootValue: {
228
+ * broken: () => {
229
+ * throw new Error('Resolver failed.');
230
+ * },
231
+ * },
232
+ * });
233
+ *
234
+ * result.data.broken; // => null
235
+ * result.errors[0].message; // => 'Resolver failed.'
236
+ * ```
237
+ * @example
238
+ * ```ts
239
+ * // This variant limits how many variable coercion errors are reported.
240
+ * import { parse } from 'graphql/language';
241
+ * import { buildSchema } from 'graphql/utilities';
242
+ * import { execute } from 'graphql/execution';
243
+ *
244
+ * const schema = buildSchema(`
245
+ * input ReviewInput {
246
+ * stars: Int!
247
+ * }
248
+ *
249
+ * type Query {
250
+ * review(input: ReviewInput!): String
251
+ * }
252
+ * `);
253
+ * const document = parse(`
254
+ * query ($first: ReviewInput!, $second: ReviewInput!) {
255
+ * first: review(input: $first)
256
+ * second: review(input: $second)
257
+ * }
258
+ * `);
259
+ *
260
+ * const result = await execute({
261
+ * schema,
262
+ * document,
263
+ * variableValues: {
264
+ * first: { stars: 'bad' },
265
+ * second: { stars: 'also bad' },
266
+ * },
267
+ * options: { maxCoercionErrors: 1 },
268
+ * });
269
+ *
270
+ * result.errors.length; // => 2
271
+ * result.errors[1].message; // matches /error limit reached/
272
+ * ```
121
273
  */
122
274
  export declare function execute(
123
275
  args: ExecutionArgs,
@@ -126,11 +278,60 @@ export declare function execute(
126
278
  * Also implements the "Executing requests" section of the GraphQL specification.
127
279
  * However, it guarantees to complete synchronously (or throw an error) assuming
128
280
  * that all field resolvers are also synchronous.
281
+ * @param args - The arguments used to perform the operation.
282
+ * @returns Completed execution output for a synchronous operation.
283
+ * @example
284
+ * ```ts
285
+ * // Execute an operation synchronously when all resolvers are synchronous.
286
+ * import { parse } from 'graphql/language';
287
+ * import { buildSchema } from 'graphql/utilities';
288
+ * import { executeSync } from 'graphql/execution';
289
+ *
290
+ * const schema = buildSchema(`
291
+ * type Query {
292
+ * greeting: String
293
+ * }
294
+ * `);
295
+ * const document = parse('{ greeting }');
296
+ *
297
+ * const result = executeSync({
298
+ * schema,
299
+ * document,
300
+ * rootValue: {
301
+ * greeting: 'Hello',
302
+ * },
303
+ * });
304
+ *
305
+ * result; // => { data: { greeting: 'Hello' } }
306
+ * ```
307
+ * @example
308
+ * ```ts
309
+ * // This variant shows executeSync throwing when a resolver returns a promise.
310
+ * import { parse } from 'graphql/language';
311
+ * import { buildSchema } from 'graphql/utilities';
312
+ * import { executeSync } from 'graphql/execution';
313
+ *
314
+ * const schema = buildSchema(`
315
+ * type Query {
316
+ * greeting: String
317
+ * }
318
+ * `);
319
+ *
320
+ * executeSync({
321
+ * schema,
322
+ * document: parse('{ greeting }'),
323
+ * rootValue: {
324
+ * greeting: async () => 'Hello',
325
+ * },
326
+ * }); // throws an error
327
+ * ```
129
328
  */
130
329
  export declare function executeSync(args: ExecutionArgs): ExecutionResult;
131
330
  /**
132
331
  * Essential assertions before executing to provide developer feedback for
133
- * improper use of the GraphQL library.
332
+ * improper use of the GraphQL library. This deprecated internal helper will be
333
+ * removed in v17; call `assertValidSchema()` and rely on TypeScript checks
334
+ * instead.
134
335
  *
135
336
  * @deprecated will be removed in v17 in favor of assertValidSchema() and TS checks
136
337
  * @internal
@@ -153,9 +354,7 @@ export declare function assertValidExecutionArguments(
153
354
  export declare function buildExecutionContext(
154
355
  args: ExecutionArgs,
155
356
  ): ReadonlyArray<GraphQLError> | ExecutionContext;
156
- /**
157
- * @internal
158
- */
357
+ /** @internal */
159
358
  export declare function buildResolveInfo(
160
359
  exeContext: ExecutionContext,
161
360
  fieldDef: GraphQLField<unknown, unknown>,