graphql 14.1.1 → 14.3.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 (377) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/error/GraphQLError.js +12 -10
  4. package/error/GraphQLError.js.flow +11 -6
  5. package/error/GraphQLError.mjs +20 -3
  6. package/error/formatError.js +2 -2
  7. package/error/formatError.js.flow +3 -3
  8. package/error/formatError.mjs +2 -2
  9. package/error/index.js +1 -1
  10. package/error/index.js.flow +5 -2
  11. package/error/index.mjs +2 -2
  12. package/error/locatedError.js +2 -2
  13. package/error/locatedError.js.flow +2 -2
  14. package/error/locatedError.mjs +2 -2
  15. package/error/printError.js +2 -2
  16. package/error/printError.js.flow +4 -5
  17. package/error/printError.mjs +2 -2
  18. package/error/syntaxError.js +2 -2
  19. package/error/syntaxError.js.flow +2 -2
  20. package/error/syntaxError.mjs +2 -2
  21. package/execution/execute.js +52 -37
  22. package/execution/execute.js.flow +66 -51
  23. package/execution/execute.mjs +50 -38
  24. package/execution/index.js +7 -1
  25. package/execution/index.js.flow +9 -4
  26. package/execution/index.mjs +3 -3
  27. package/execution/values.js +11 -11
  28. package/execution/values.js.flow +23 -19
  29. package/execution/values.mjs +11 -11
  30. package/graphql.js +13 -9
  31. package/graphql.js.flow +28 -10
  32. package/graphql.mjs +10 -9
  33. package/index.js +83 -53
  34. package/index.js.flow +60 -47
  35. package/index.mjs +26 -23
  36. package/jsutils/ObjMap.js +1 -1
  37. package/jsutils/ObjMap.js.flow +1 -1
  38. package/jsutils/ObjMap.mjs +1 -0
  39. package/jsutils/PromiseOrValue.js +1 -0
  40. package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
  41. package/jsutils/PromiseOrValue.mjs +1 -0
  42. package/jsutils/dedent.js +2 -2
  43. package/jsutils/dedent.js.flow +1 -1
  44. package/jsutils/dedent.mjs +2 -2
  45. package/jsutils/defineToJSON.js +2 -2
  46. package/jsutils/defineToJSON.js.flow +1 -1
  47. package/jsutils/defineToJSON.mjs +2 -2
  48. package/jsutils/defineToStringTag.js +2 -2
  49. package/jsutils/defineToStringTag.js.flow +1 -1
  50. package/jsutils/defineToStringTag.mjs +2 -2
  51. package/jsutils/inspect.js +94 -19
  52. package/jsutils/inspect.js.flow +98 -20
  53. package/jsutils/inspect.mjs +94 -20
  54. package/jsutils/instanceOf.js +2 -2
  55. package/jsutils/instanceOf.js.flow +1 -1
  56. package/jsutils/instanceOf.mjs +2 -2
  57. package/jsutils/invariant.js +5 -3
  58. package/jsutils/invariant.js.flow +3 -2
  59. package/jsutils/invariant.mjs +5 -3
  60. package/jsutils/isInvalid.js +2 -2
  61. package/jsutils/isInvalid.js.flow +1 -1
  62. package/jsutils/isInvalid.mjs +2 -2
  63. package/jsutils/isNullish.js +2 -2
  64. package/jsutils/isNullish.js.flow +1 -1
  65. package/jsutils/isNullish.mjs +2 -2
  66. package/jsutils/isPromise.js +2 -2
  67. package/jsutils/isPromise.js.flow +1 -1
  68. package/jsutils/isPromise.mjs +2 -2
  69. package/jsutils/keyMap.js +4 -3
  70. package/jsutils/keyMap.js.flow +6 -6
  71. package/jsutils/keyMap.mjs +4 -3
  72. package/jsutils/keyValMap.js +4 -3
  73. package/jsutils/keyValMap.js.flow +6 -6
  74. package/jsutils/keyValMap.mjs +4 -3
  75. package/jsutils/mapValue.js +2 -2
  76. package/jsutils/mapValue.js.flow +2 -2
  77. package/jsutils/mapValue.mjs +2 -2
  78. package/jsutils/memoize3.js +3 -3
  79. package/jsutils/memoize3.js.flow +2 -2
  80. package/jsutils/memoize3.mjs +3 -3
  81. package/jsutils/nodejsCustomInspectSymbol.js +2 -2
  82. package/jsutils/nodejsCustomInspectSymbol.js.flow +1 -1
  83. package/jsutils/nodejsCustomInspectSymbol.mjs +2 -2
  84. package/jsutils/orList.js +2 -2
  85. package/jsutils/orList.js.flow +1 -1
  86. package/jsutils/orList.mjs +2 -2
  87. package/jsutils/promiseForObject.js +2 -2
  88. package/jsutils/promiseForObject.js.flow +2 -2
  89. package/jsutils/promiseForObject.mjs +2 -2
  90. package/jsutils/promiseReduce.js +2 -2
  91. package/jsutils/promiseReduce.js.flow +5 -5
  92. package/jsutils/promiseReduce.mjs +2 -2
  93. package/jsutils/quotedOrList.js +2 -2
  94. package/jsutils/quotedOrList.js.flow +1 -1
  95. package/jsutils/quotedOrList.mjs +2 -2
  96. package/jsutils/suggestionList.js +2 -2
  97. package/jsutils/suggestionList.js.flow +1 -1
  98. package/jsutils/suggestionList.mjs +2 -2
  99. package/language/ast.js +1 -1
  100. package/language/ast.js.flow +3 -3
  101. package/language/ast.mjs +1 -0
  102. package/language/blockString.js +114 -0
  103. package/language/blockString.js.flow +102 -0
  104. package/language/blockString.mjs +104 -0
  105. package/language/directiveLocation.js +2 -2
  106. package/language/directiveLocation.js.flow +1 -1
  107. package/language/directiveLocation.mjs +2 -2
  108. package/language/index.js +9 -9
  109. package/language/index.js.flow +10 -5
  110. package/language/index.mjs +3 -3
  111. package/language/kinds.js +2 -2
  112. package/language/kinds.js.flow +1 -1
  113. package/language/kinds.mjs +2 -2
  114. package/language/lexer.js +52 -44
  115. package/language/lexer.js.flow +65 -54
  116. package/language/lexer.mjs +49 -43
  117. package/language/location.js +2 -2
  118. package/language/location.js.flow +2 -2
  119. package/language/location.mjs +2 -2
  120. package/language/parser.js +75 -67
  121. package/language/parser.js.flow +138 -127
  122. package/language/parser.mjs +76 -68
  123. package/language/predicates.js +2 -2
  124. package/language/predicates.js.flow +2 -2
  125. package/language/predicates.mjs +2 -2
  126. package/language/printer.js +6 -14
  127. package/language/printer.js.flow +8 -17
  128. package/language/printer.mjs +5 -14
  129. package/language/source.js +2 -2
  130. package/language/source.js.flow +1 -1
  131. package/language/source.mjs +2 -2
  132. package/language/visitor.js +4 -6
  133. package/language/visitor.js.flow +3 -3
  134. package/language/visitor.mjs +4 -6
  135. package/package.json +1 -1
  136. package/polyfills/find.js +2 -2
  137. package/polyfills/find.js.flow +1 -1
  138. package/polyfills/find.mjs +2 -2
  139. package/polyfills/flatMap.js +38 -0
  140. package/polyfills/flatMap.js.flow +34 -0
  141. package/polyfills/flatMap.mjs +30 -0
  142. package/polyfills/isFinite.js +2 -2
  143. package/polyfills/isFinite.js.flow +1 -1
  144. package/polyfills/isFinite.mjs +2 -2
  145. package/polyfills/isInteger.js +2 -2
  146. package/polyfills/isInteger.js.flow +1 -1
  147. package/polyfills/isInteger.mjs +2 -2
  148. package/polyfills/objectEntries.js +2 -2
  149. package/polyfills/objectEntries.js.flow +2 -2
  150. package/polyfills/objectEntries.mjs +2 -2
  151. package/polyfills/objectValues.js +2 -2
  152. package/polyfills/objectValues.js.flow +2 -2
  153. package/polyfills/objectValues.mjs +2 -2
  154. package/subscription/asyncIteratorReject.js +1 -1
  155. package/subscription/asyncIteratorReject.js.flow +1 -1
  156. package/subscription/asyncIteratorReject.mjs +2 -2
  157. package/subscription/index.js +1 -1
  158. package/subscription/index.js.flow +1 -1
  159. package/subscription/index.mjs +2 -2
  160. package/subscription/mapAsyncIterator.js +1 -1
  161. package/subscription/mapAsyncIterator.js.flow +5 -5
  162. package/subscription/mapAsyncIterator.mjs +2 -2
  163. package/subscription/subscribe.js +2 -2
  164. package/subscription/subscribe.js.flow +6 -6
  165. package/subscription/subscribe.mjs +2 -2
  166. package/type/definition.js +138 -22
  167. package/type/definition.js.flow +184 -36
  168. package/type/definition.mjs +136 -23
  169. package/type/directives.js +14 -3
  170. package/type/directives.js.flow +24 -11
  171. package/type/directives.mjs +16 -5
  172. package/type/index.js +7 -7
  173. package/type/index.js.flow +8 -4
  174. package/type/index.mjs +10 -6
  175. package/type/introspection.js +14 -9
  176. package/type/introspection.js.flow +12 -18
  177. package/type/introspection.mjs +14 -9
  178. package/type/scalars.js +5 -4
  179. package/type/scalars.js.flow +4 -10
  180. package/type/scalars.mjs +7 -6
  181. package/type/schema.js +55 -3
  182. package/type/schema.js.flow +73 -17
  183. package/type/schema.mjs +56 -4
  184. package/type/validate.js +19 -47
  185. package/type/validate.js.flow +17 -29
  186. package/type/validate.mjs +18 -47
  187. package/utilities/TypeInfo.js +93 -73
  188. package/utilities/TypeInfo.js.flow +30 -23
  189. package/utilities/TypeInfo.mjs +93 -73
  190. package/utilities/assertValidName.js +2 -2
  191. package/utilities/assertValidName.js.flow +2 -2
  192. package/utilities/assertValidName.mjs +2 -2
  193. package/utilities/astFromValue.js +5 -4
  194. package/utilities/astFromValue.js.flow +8 -7
  195. package/utilities/astFromValue.mjs +7 -6
  196. package/utilities/buildASTSchema.js +63 -62
  197. package/utilities/buildASTSchema.js.flow +92 -108
  198. package/utilities/buildASTSchema.mjs +61 -62
  199. package/utilities/buildClientSchema.js +38 -45
  200. package/utilities/buildClientSchema.js.flow +66 -79
  201. package/utilities/buildClientSchema.mjs +37 -44
  202. package/utilities/coerceValue.js +6 -7
  203. package/utilities/coerceValue.js.flow +5 -4
  204. package/utilities/coerceValue.mjs +7 -8
  205. package/utilities/concatAST.js +9 -13
  206. package/utilities/concatAST.js.flow +4 -10
  207. package/utilities/concatAST.mjs +6 -13
  208. package/utilities/extendSchema.js +219 -511
  209. package/utilities/extendSchema.js.flow +195 -304
  210. package/utilities/extendSchema.mjs +218 -512
  211. package/utilities/findBreakingChanges.js +54 -95
  212. package/utilities/findBreakingChanges.js.flow +49 -47
  213. package/utilities/findBreakingChanges.mjs +80 -95
  214. package/utilities/findDeprecatedUsages.js +4 -4
  215. package/utilities/findDeprecatedUsages.js.flow +5 -5
  216. package/utilities/findDeprecatedUsages.mjs +4 -4
  217. package/utilities/getOperationAST.js +2 -2
  218. package/utilities/getOperationAST.js.flow +5 -2
  219. package/utilities/getOperationAST.mjs +2 -2
  220. package/utilities/getOperationRootType.js +24 -24
  221. package/utilities/getOperationRootType.js.flow +40 -35
  222. package/utilities/getOperationRootType.mjs +24 -24
  223. package/utilities/index.js +9 -1
  224. package/utilities/index.js.flow +13 -6
  225. package/utilities/index.mjs +13 -8
  226. package/utilities/introspectionFromSchema.js +6 -4
  227. package/utilities/introspectionFromSchema.js.flow +8 -7
  228. package/utilities/introspectionFromSchema.mjs +6 -5
  229. package/utilities/introspectionQuery.js +2 -2
  230. package/utilities/introspectionQuery.js.flow +2 -2
  231. package/utilities/introspectionQuery.mjs +2 -2
  232. package/utilities/isValidJSValue.js +4 -2
  233. package/utilities/isValidJSValue.js.flow +3 -2
  234. package/utilities/isValidJSValue.mjs +4 -2
  235. package/utilities/isValidLiteralValue.js +2 -2
  236. package/utilities/isValidLiteralValue.js.flow +4 -4
  237. package/utilities/isValidLiteralValue.mjs +2 -2
  238. package/utilities/lexicographicSortSchema.js +84 -123
  239. package/utilities/lexicographicSortSchema.js.flow +68 -96
  240. package/utilities/lexicographicSortSchema.mjs +84 -123
  241. package/utilities/schemaPrinter.js +47 -73
  242. package/utilities/schemaPrinter.js.flow +69 -120
  243. package/utilities/schemaPrinter.mjs +45 -72
  244. package/utilities/separateOperations.js +8 -12
  245. package/utilities/separateOperations.js.flow +6 -3
  246. package/utilities/separateOperations.mjs +8 -12
  247. package/utilities/stripIgnoredCharacters.js +140 -0
  248. package/utilities/stripIgnoredCharacters.js.flow +129 -0
  249. package/utilities/stripIgnoredCharacters.mjs +127 -0
  250. package/utilities/typeComparators.js +2 -2
  251. package/utilities/typeComparators.js.flow +4 -3
  252. package/utilities/typeComparators.mjs +2 -2
  253. package/utilities/typeFromAST.js +9 -4
  254. package/utilities/typeFromAST.js.flow +15 -9
  255. package/utilities/typeFromAST.mjs +6 -4
  256. package/utilities/valueFromAST.js +7 -4
  257. package/utilities/valueFromAST.js.flow +7 -5
  258. package/utilities/valueFromAST.mjs +6 -4
  259. package/utilities/valueFromASTUntyped.js +11 -6
  260. package/utilities/valueFromASTUntyped.js.flow +9 -5
  261. package/utilities/valueFromASTUntyped.mjs +10 -6
  262. package/validation/ValidationContext.js +1 -1
  263. package/validation/ValidationContext.js.flow +19 -20
  264. package/validation/ValidationContext.mjs +2 -2
  265. package/validation/index.js +1 -1
  266. package/validation/index.js.flow +2 -1
  267. package/validation/index.mjs +3 -2
  268. package/validation/rules/ExecutableDefinitions.js +3 -3
  269. package/validation/rules/ExecutableDefinitions.js.flow +4 -4
  270. package/validation/rules/ExecutableDefinitions.mjs +3 -3
  271. package/validation/rules/FieldsOnCorrectType.js +3 -3
  272. package/validation/rules/FieldsOnCorrectType.js.flow +7 -7
  273. package/validation/rules/FieldsOnCorrectType.mjs +3 -3
  274. package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
  275. package/validation/rules/FragmentsOnCompositeTypes.js.flow +5 -5
  276. package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
  277. package/validation/rules/KnownArgumentNames.js +1 -1
  278. package/validation/rules/KnownArgumentNames.js.flow +5 -5
  279. package/validation/rules/KnownArgumentNames.mjs +2 -2
  280. package/validation/rules/KnownDirectives.js +8 -6
  281. package/validation/rules/KnownDirectives.js.flow +11 -9
  282. package/validation/rules/KnownDirectives.mjs +8 -6
  283. package/validation/rules/KnownFragmentNames.js +3 -3
  284. package/validation/rules/KnownFragmentNames.js.flow +4 -4
  285. package/validation/rules/KnownFragmentNames.mjs +3 -3
  286. package/validation/rules/KnownTypeNames.js +2 -2
  287. package/validation/rules/KnownTypeNames.js.flow +6 -6
  288. package/validation/rules/KnownTypeNames.mjs +2 -2
  289. package/validation/rules/LoneAnonymousOperation.js +3 -3
  290. package/validation/rules/LoneAnonymousOperation.js.flow +4 -4
  291. package/validation/rules/LoneAnonymousOperation.mjs +3 -3
  292. package/validation/rules/LoneSchemaDefinition.js +2 -2
  293. package/validation/rules/LoneSchemaDefinition.js.flow +3 -3
  294. package/validation/rules/LoneSchemaDefinition.mjs +2 -2
  295. package/validation/rules/NoFragmentCycles.js +2 -2
  296. package/validation/rules/NoFragmentCycles.js.flow +4 -4
  297. package/validation/rules/NoFragmentCycles.mjs +2 -2
  298. package/validation/rules/NoUndefinedVariables.js +2 -2
  299. package/validation/rules/NoUndefinedVariables.js.flow +3 -3
  300. package/validation/rules/NoUndefinedVariables.mjs +2 -2
  301. package/validation/rules/NoUnusedFragments.js +7 -7
  302. package/validation/rules/NoUnusedFragments.js.flow +4 -4
  303. package/validation/rules/NoUnusedFragments.mjs +7 -7
  304. package/validation/rules/NoUnusedVariables.js +5 -5
  305. package/validation/rules/NoUnusedVariables.js.flow +6 -5
  306. package/validation/rules/NoUnusedVariables.mjs +5 -5
  307. package/validation/rules/OverlappingFieldsCanBeMerged.js +26 -23
  308. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +17 -17
  309. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +26 -23
  310. package/validation/rules/PossibleFragmentSpreads.js +4 -4
  311. package/validation/rules/PossibleFragmentSpreads.js.flow +5 -5
  312. package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
  313. package/validation/rules/PossibleTypeExtensions.js +3 -3
  314. package/validation/rules/PossibleTypeExtensions.js.flow +5 -5
  315. package/validation/rules/PossibleTypeExtensions.mjs +4 -4
  316. package/validation/rules/ProvidedRequiredArguments.js +6 -8
  317. package/validation/rules/ProvidedRequiredArguments.js.flow +8 -8
  318. package/validation/rules/ProvidedRequiredArguments.mjs +7 -9
  319. package/validation/rules/ScalarLeafs.js +4 -4
  320. package/validation/rules/ScalarLeafs.js.flow +6 -6
  321. package/validation/rules/ScalarLeafs.mjs +4 -4
  322. package/validation/rules/SingleFieldSubscriptions.js +2 -2
  323. package/validation/rules/SingleFieldSubscriptions.js.flow +4 -4
  324. package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
  325. package/validation/rules/UniqueArgumentNames.js +2 -2
  326. package/validation/rules/UniqueArgumentNames.js.flow +3 -3
  327. package/validation/rules/UniqueArgumentNames.mjs +2 -2
  328. package/validation/rules/UniqueDirectiveNames.js +2 -2
  329. package/validation/rules/UniqueDirectiveNames.js.flow +3 -3
  330. package/validation/rules/UniqueDirectiveNames.mjs +2 -2
  331. package/validation/rules/UniqueDirectivesPerLocation.js +3 -2
  332. package/validation/rules/UniqueDirectivesPerLocation.js.flow +4 -4
  333. package/validation/rules/UniqueDirectivesPerLocation.mjs +3 -2
  334. package/validation/rules/UniqueEnumValueNames.js +4 -8
  335. package/validation/rules/UniqueEnumValueNames.js.flow +6 -8
  336. package/validation/rules/UniqueEnumValueNames.mjs +4 -8
  337. package/validation/rules/UniqueFieldDefinitionNames.js +4 -8
  338. package/validation/rules/UniqueFieldDefinitionNames.js.flow +6 -8
  339. package/validation/rules/UniqueFieldDefinitionNames.mjs +4 -8
  340. package/validation/rules/UniqueFragmentNames.js +2 -2
  341. package/validation/rules/UniqueFragmentNames.js.flow +3 -3
  342. package/validation/rules/UniqueFragmentNames.mjs +2 -2
  343. package/validation/rules/UniqueInputFieldNames.js +2 -4
  344. package/validation/rules/UniqueInputFieldNames.js.flow +3 -4
  345. package/validation/rules/UniqueInputFieldNames.mjs +2 -4
  346. package/validation/rules/UniqueOperationNames.js +2 -2
  347. package/validation/rules/UniqueOperationNames.js.flow +3 -3
  348. package/validation/rules/UniqueOperationNames.mjs +2 -2
  349. package/validation/rules/UniqueOperationTypes.js +2 -2
  350. package/validation/rules/UniqueOperationTypes.js.flow +3 -3
  351. package/validation/rules/UniqueOperationTypes.mjs +2 -2
  352. package/validation/rules/UniqueTypeNames.js +2 -2
  353. package/validation/rules/UniqueTypeNames.js.flow +4 -4
  354. package/validation/rules/UniqueTypeNames.mjs +2 -2
  355. package/validation/rules/UniqueVariableNames.js +2 -2
  356. package/validation/rules/UniqueVariableNames.js.flow +4 -4
  357. package/validation/rules/UniqueVariableNames.mjs +2 -2
  358. package/validation/rules/ValuesOfCorrectType.js +2 -2
  359. package/validation/rules/ValuesOfCorrectType.js.flow +5 -5
  360. package/validation/rules/ValuesOfCorrectType.mjs +2 -2
  361. package/validation/rules/VariablesAreInputTypes.js +3 -3
  362. package/validation/rules/VariablesAreInputTypes.js.flow +5 -5
  363. package/validation/rules/VariablesAreInputTypes.mjs +3 -3
  364. package/validation/rules/VariablesInAllowedPosition.js +3 -3
  365. package/validation/rules/VariablesInAllowedPosition.js.flow +7 -8
  366. package/validation/rules/VariablesInAllowedPosition.mjs +3 -3
  367. package/validation/specifiedRules.js +2 -2
  368. package/validation/specifiedRules.js.flow +13 -6
  369. package/validation/specifiedRules.mjs +7 -7
  370. package/validation/validate.js +2 -2
  371. package/validation/validate.js.flow +10 -6
  372. package/validation/validate.mjs +2 -2
  373. package/jsutils/MaybePromise.js +0 -1
  374. package/jsutils/MaybePromise.mjs +0 -0
  375. package/language/blockStringValue.js +0 -73
  376. package/language/blockStringValue.js.flow +0 -64
  377. package/language/blockStringValue.mjs +0 -66
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2015-present, Facebook, Inc.
3
+ Copyright (c) Facebook, Inc. and its affiliates.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -4,7 +4,7 @@ The JavaScript reference implementation for GraphQL, a query language for APIs c
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/graphql.svg)](https://badge.fury.io/js/graphql)
6
6
  [![Build Status](https://travis-ci.org/graphql/graphql-js.svg?branch=master)](https://travis-ci.org/graphql/graphql-js?branch=master)
7
- [![Coverage Status](https://coveralls.io/repos/graphql/graphql-js/badge.svg?branch=master)](https://coveralls.io/r/graphql/graphql-js?branch=master)
7
+ [![Coverage Status](https://codecov.io/gh/graphql/graphql-js/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql/graphql-js)
8
8
 
9
9
  See more complete documentation at https://graphql.org/ and
10
10
  https://graphql.org/graphql-js/.
@@ -9,14 +9,8 @@ var _printError = require("./printError");
9
9
 
10
10
  var _location = require("../language/location");
11
11
 
12
- /**
13
- * Copyright (c) 2015-present, Facebook, Inc.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- *
18
- *
19
- */
12
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13
+
20
14
  function GraphQLError( // eslint-disable-line no-redeclare
21
15
  message, nodes, source, positions, path, originalError, extensions) {
22
16
  // Compute list of blame nodes.
@@ -62,7 +56,15 @@ message, nodes, source, positions, path, originalError, extensions) {
62
56
  }, []);
63
57
  }
64
58
 
65
- var _extensions = extensions || originalError && originalError.extensions;
59
+ var _extensions = extensions;
60
+
61
+ if (_extensions == null && originalError != null) {
62
+ var originalExtensions = originalError.extensions;
63
+
64
+ if (originalExtensions != null && _typeof(originalExtensions) === 'object') {
65
+ _extensions = originalExtensions;
66
+ }
67
+ }
66
68
 
67
69
  Object.defineProperties(this, {
68
70
  message: {
@@ -143,4 +145,4 @@ GraphQLError.prototype = Object.create(Error.prototype, {
143
145
  return (0, _printError.printError)(this);
144
146
  }
145
147
  }
146
- });
148
+ });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,10 +8,9 @@
8
8
  */
9
9
 
10
10
  import { printError } from './printError';
11
- import { getLocation } from '../language/location';
12
- import type { SourceLocation } from '../language/location';
13
- import type { ASTNode } from '../language/ast';
14
- import type { Source } from '../language/source';
11
+ import { type ASTNode } from '../language/ast';
12
+ import { type Source } from '../language/source';
13
+ import { type SourceLocation, getLocation } from '../language/location';
15
14
 
16
15
  /**
17
16
  * A GraphQLError describes an Error found during the parse, validate, or
@@ -139,7 +138,13 @@ export function GraphQLError( // eslint-disable-line no-redeclare
139
138
  }, []);
140
139
  }
141
140
 
142
- const _extensions = extensions || (originalError && originalError.extensions);
141
+ let _extensions = extensions;
142
+ if (_extensions == null && originalError != null) {
143
+ const originalExtensions = originalError.extensions;
144
+ if (originalExtensions != null && typeof originalExtensions === 'object') {
145
+ _extensions = originalExtensions;
146
+ }
147
+ }
143
148
 
144
149
  Object.defineProperties(this, {
145
150
  message: {
@@ -1,5 +1,7 @@
1
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
+
1
3
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
5
  *
4
6
  * This source code is licensed under the MIT license found in the
5
7
  * LICENSE file in the root directory of this source tree.
@@ -8,6 +10,13 @@
8
10
  */
9
11
  import { printError } from './printError';
10
12
  import { getLocation } from '../language/location';
13
+ /**
14
+ * A GraphQLError describes an Error found during the parse, validate, or
15
+ * execute phases of performing a GraphQL operation. In addition to a message
16
+ * and stack trace, it also includes information about the locations in a
17
+ * GraphQL document and/or execution result that correspond to the Error.
18
+ */
19
+
11
20
  export function GraphQLError( // eslint-disable-line no-redeclare
12
21
  message, nodes, source, positions, path, originalError, extensions) {
13
22
  // Compute list of blame nodes.
@@ -53,7 +62,15 @@ message, nodes, source, positions, path, originalError, extensions) {
53
62
  }, []);
54
63
  }
55
64
 
56
- var _extensions = extensions || originalError && originalError.extensions;
65
+ var _extensions = extensions;
66
+
67
+ if (_extensions == null && originalError != null) {
68
+ var originalExtensions = originalError.extensions;
69
+
70
+ if (originalExtensions != null && _typeof(originalExtensions) === 'object') {
71
+ _extensions = originalExtensions;
72
+ }
73
+ }
57
74
 
58
75
  Object.defineProperties(this, {
59
76
  message: {
@@ -133,4 +150,4 @@ GraphQLError.prototype = Object.create(Error.prototype, {
133
150
  return printError(this);
134
151
  }
135
152
  }
136
- });
153
+ });
@@ -10,7 +10,7 @@ var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
 
12
12
  /**
13
- * Copyright (c) 2015-present, Facebook, Inc.
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
@@ -38,4 +38,4 @@ function formatError(error) {
38
38
  locations: locations,
39
39
  path: path
40
40
  };
41
- }
41
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,8 +8,8 @@
8
8
  */
9
9
 
10
10
  import invariant from '../jsutils/invariant';
11
- import type { GraphQLError } from './GraphQLError';
12
- import type { SourceLocation } from '../language/location';
11
+ import { type GraphQLError } from './GraphQLError';
12
+ import { type SourceLocation } from '../language/location';
13
13
 
14
14
  /**
15
15
  * Given a GraphQLError, format it according to the rules described by the
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -28,4 +28,4 @@ export function formatError(error) {
28
28
  locations: locations,
29
29
  path: path
30
30
  };
31
- }
31
+ }
package/error/index.js CHANGED
@@ -42,4 +42,4 @@ var _locatedError = require("./locatedError");
42
42
 
43
43
  var _printError = require("./printError");
44
44
 
45
- var _formatError = require("./formatError");
45
+ var _formatError = require("./formatError");
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,9 +8,12 @@
8
8
  */
9
9
 
10
10
  export { GraphQLError } from './GraphQLError';
11
+
11
12
  export { syntaxError } from './syntaxError';
13
+
12
14
  export { locatedError } from './locatedError';
15
+
13
16
  export { printError } from './printError';
14
- export { formatError } from './formatError';
15
17
 
18
+ export { formatError } from './formatError';
16
19
  export type { GraphQLFormattedError } from './formatError';
package/error/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -10,4 +10,4 @@ export { GraphQLError } from './GraphQLError';
10
10
  export { syntaxError } from './syntaxError';
11
11
  export { locatedError } from './locatedError';
12
12
  export { printError } from './printError';
13
- export { formatError } from './formatError';
13
+ export { formatError } from './formatError';
@@ -8,7 +8,7 @@ exports.locatedError = locatedError;
8
8
  var _GraphQLError = require("./GraphQLError");
9
9
 
10
10
  /**
11
- * Copyright (c) 2015-present, Facebook, Inc.
11
+ * Copyright (c) Facebook, Inc. and its affiliates.
12
12
  *
13
13
  * This source code is licensed under the MIT license found in the
14
14
  * LICENSE file in the root directory of this source tree.
@@ -29,4 +29,4 @@ function locatedError(originalError, nodes, path) {
29
29
  }
30
30
 
31
31
  return new _GraphQLError.GraphQLError(originalError && originalError.message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);
32
- }
32
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  import { GraphQLError } from './GraphQLError';
11
- import type { ASTNode } from '../language/ast';
11
+ import { type ASTNode } from '../language/ast';
12
12
 
13
13
  /**
14
14
  * Given an arbitrary Error, presumably thrown while attempting to execute a
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -21,4 +21,4 @@ export function locatedError(originalError, nodes, path) {
21
21
  }
22
22
 
23
23
  return new GraphQLError(originalError && originalError.message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError);
24
- }
24
+ }
@@ -8,7 +8,7 @@ exports.printError = printError;
8
8
  var _location = require("../language/location");
9
9
 
10
10
  /**
11
- * Copyright (c) 2015-present, Facebook, Inc.
11
+ * Copyright (c) Facebook, Inc. and its affiliates.
12
12
  *
13
13
  * This source code is licensed under the MIT license found in the
14
14
  * LICENSE file in the root directory of this source tree.
@@ -143,4 +143,4 @@ function whitespace(len) {
143
143
 
144
144
  function lpad(len, str) {
145
145
  return whitespace(len - str.length) + str;
146
- }
146
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -7,10 +7,9 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import { getLocation } from '../language/location';
11
- import type { SourceLocation } from '../language/location';
12
- import type { Source } from '../language/source';
13
- import type { GraphQLError } from './GraphQLError';
10
+ import { type SourceLocation, getLocation } from '../language/location';
11
+ import { type Source } from '../language/source';
12
+ import { type GraphQLError } from './GraphQLError';
14
13
 
15
14
  /**
16
15
  * Prints a GraphQLError to a string, representing useful location information
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -134,4 +134,4 @@ function whitespace(len) {
134
134
 
135
135
  function lpad(len, str) {
136
136
  return whitespace(len - str.length) + str;
137
- }
137
+ }
@@ -8,7 +8,7 @@ exports.syntaxError = syntaxError;
8
8
  var _GraphQLError = require("./GraphQLError");
9
9
 
10
10
  /**
11
- * Copyright (c) 2015-present, Facebook, Inc.
11
+ * Copyright (c) Facebook, Inc. and its affiliates.
12
12
  *
13
13
  * This source code is licensed under the MIT license found in the
14
14
  * LICENSE file in the root directory of this source tree.
@@ -22,4 +22,4 @@ var _GraphQLError = require("./GraphQLError");
22
22
  */
23
23
  function syntaxError(source, position, description) {
24
24
  return new _GraphQLError.GraphQLError("Syntax Error: ".concat(description), undefined, source, [position]);
25
- }
25
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -7,7 +7,7 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
- import type { Source } from '../language/source';
10
+ import { type Source } from '../language/source';
11
11
  import { GraphQLError } from './GraphQLError';
12
12
 
13
13
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2015-present, Facebook, Inc.
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,4 +14,4 @@ import { GraphQLError } from './GraphQLError';
14
14
 
15
15
  export function syntaxError(source, position, description) {
16
16
  return new GraphQLError("Syntax Error: ".concat(description), undefined, source, [position]);
17
- }
17
+ }
@@ -12,7 +12,7 @@ exports.collectFields = collectFields;
12
12
  exports.buildResolveInfo = buildResolveInfo;
13
13
  exports.resolveFieldValueOrError = resolveFieldValueOrError;
14
14
  exports.getFieldDef = getFieldDef;
15
- exports.defaultFieldResolver = void 0;
15
+ exports.defaultFieldResolver = exports.defaultTypeResolver = void 0;
16
16
 
17
17
  var _iterall = require("iterall");
18
18
 
@@ -56,18 +56,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
56
56
 
57
57
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
58
58
 
59
- function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
59
+ function execute(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
60
60
  /* eslint-enable no-redeclare */
61
61
  // Extract arguments from object args if provided.
62
- return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
62
+ return arguments.length === 1 ? executeImpl(argsOrSchema.schema, argsOrSchema.document, argsOrSchema.rootValue, argsOrSchema.contextValue, argsOrSchema.variableValues, argsOrSchema.operationName, argsOrSchema.fieldResolver, argsOrSchema.typeResolver) : executeImpl(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver);
63
63
  }
64
64
 
65
- function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver) {
65
+ function executeImpl(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) {
66
66
  // If arguments are missing or incorrect, throw an error.
67
67
  assertValidExecutionArguments(schema, document, variableValues); // If a valid execution context cannot be created due to incorrect arguments,
68
68
  // a "Response" with only errors is returned.
69
69
 
70
- var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver); // Return early errors if execution context failed.
70
+ var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver); // Return early errors if execution context failed.
71
71
 
72
72
  if (Array.isArray(exeContext)) {
73
73
  return {
@@ -155,7 +155,7 @@ function assertValidExecutionArguments(schema, document, rawVariableValues) {
155
155
  */
156
156
 
157
157
 
158
- function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver) {
158
+ function buildExecutionContext(schema, document, rootValue, contextValue, rawVariableValues, operationName, fieldResolver, typeResolver) {
159
159
  var errors = [];
160
160
  var operation;
161
161
  var hasMultipleAssumedOperations = false;
@@ -216,6 +216,7 @@ function buildExecutionContext(schema, document, rootValue, contextValue, rawVar
216
216
  operation: operation,
217
217
  variableValues: variableValues,
218
218
  fieldResolver: fieldResolver || defaultFieldResolver,
219
+ typeResolver: typeResolver || defaultTypeResolver,
219
220
  errors: errors
220
221
  };
221
222
  }
@@ -327,43 +328,49 @@ function collectFields(exeContext, runtimeType, selectionSet, fields, visitedFra
327
328
 
328
329
  switch (selection.kind) {
329
330
  case _kinds.Kind.FIELD:
330
- if (!shouldIncludeNode(exeContext, selection)) {
331
- continue;
332
- }
331
+ {
332
+ if (!shouldIncludeNode(exeContext, selection)) {
333
+ continue;
334
+ }
333
335
 
334
- var name = getFieldEntryKey(selection);
336
+ var name = getFieldEntryKey(selection);
335
337
 
336
- if (!fields[name]) {
337
- fields[name] = [];
338
- }
338
+ if (!fields[name]) {
339
+ fields[name] = [];
340
+ }
339
341
 
340
- fields[name].push(selection);
341
- break;
342
+ fields[name].push(selection);
343
+ break;
344
+ }
342
345
 
343
346
  case _kinds.Kind.INLINE_FRAGMENT:
344
- if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
345
- continue;
346
- }
347
+ {
348
+ if (!shouldIncludeNode(exeContext, selection) || !doesFragmentConditionMatch(exeContext, selection, runtimeType)) {
349
+ continue;
350
+ }
347
351
 
348
- collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
349
- break;
352
+ collectFields(exeContext, runtimeType, selection.selectionSet, fields, visitedFragmentNames);
353
+ break;
354
+ }
350
355
 
351
356
  case _kinds.Kind.FRAGMENT_SPREAD:
352
- var fragName = selection.name.value;
357
+ {
358
+ var fragName = selection.name.value;
353
359
 
354
- if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
355
- continue;
356
- }
360
+ if (visitedFragmentNames[fragName] || !shouldIncludeNode(exeContext, selection)) {
361
+ continue;
362
+ }
357
363
 
358
- visitedFragmentNames[fragName] = true;
359
- var fragment = exeContext.fragments[fragName];
364
+ visitedFragmentNames[fragName] = true;
365
+ var fragment = exeContext.fragments[fragName];
360
366
 
361
- if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
362
- continue;
363
- }
367
+ if (!fragment || !doesFragmentConditionMatch(exeContext, fragment, runtimeType)) {
368
+ continue;
369
+ }
364
370
 
365
- collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
366
- break;
371
+ collectFields(exeContext, runtimeType, fragment.selectionSet, fields, visitedFragmentNames);
372
+ break;
373
+ }
367
374
  }
368
375
  }
369
376
 
@@ -486,7 +493,11 @@ function resolveFieldValueOrError(exeContext, fieldDef, fieldNodes, resolveFn, s
486
493
 
487
494
 
488
495
  function asErrorInstance(error) {
489
- return error instanceof Error ? error : new Error(error || undefined);
496
+ if (error instanceof Error) {
497
+ return error;
498
+ }
499
+
500
+ return new Error('Unexpected error value: ' + (0, _inspect.default)(error));
490
501
  } // This is a small wrapper around completeValue which detects and logs errors
491
502
  // in the execution context.
492
503
 
@@ -601,7 +612,7 @@ function completeValue(exeContext, returnType, fieldNodes, info, path, result) {
601
612
  /* istanbul ignore next */
602
613
 
603
614
 
604
- throw new Error("Cannot complete value of unexpected type \"".concat((0, _inspect.default)(returnType), "\"."));
615
+ throw new Error("Cannot complete value of unexpected output type: \"".concat((0, _inspect.default)(returnType), "\"."));
605
616
  }
606
617
  /**
607
618
  * Complete a list value by completing each item in the list with the
@@ -653,7 +664,9 @@ function completeLeafValue(returnType, result) {
653
664
 
654
665
 
655
666
  function completeAbstractValue(exeContext, returnType, fieldNodes, info, path, result) {
656
- var runtimeType = returnType.resolveType ? returnType.resolveType(result, exeContext.contextValue, info) : defaultResolveTypeFn(result, exeContext.contextValue, info, returnType);
667
+ var resolveTypeFn = returnType.resolveType || exeContext.typeResolver;
668
+ var contextValue = exeContext.contextValue;
669
+ var runtimeType = resolveTypeFn(result, contextValue, info, returnType);
657
670
 
658
671
  if ((0, _isPromise.default)(runtimeType)) {
659
672
  return runtimeType.then(function (resolvedRuntimeType) {
@@ -751,7 +764,7 @@ function _collectSubfields(exeContext, returnType, fieldNodes) {
751
764
  */
752
765
 
753
766
 
754
- function defaultResolveTypeFn(value, contextValue, info, abstractType) {
767
+ var defaultTypeResolver = function defaultTypeResolver(value, contextValue, info, abstractType) {
755
768
  // First, look for `__typename`.
756
769
  if (value !== null && _typeof(value) === 'object' && typeof value.__typename === 'string') {
757
770
  return value.__typename;
@@ -784,7 +797,7 @@ function defaultResolveTypeFn(value, contextValue, info, abstractType) {
784
797
  }
785
798
  });
786
799
  }
787
- }
800
+ };
788
801
  /**
789
802
  * If a resolve function is not given, then a default resolve behavior is used
790
803
  * which takes the property of the source object of the same name as the field
@@ -793,6 +806,8 @@ function defaultResolveTypeFn(value, contextValue, info, abstractType) {
793
806
  */
794
807
 
795
808
 
809
+ exports.defaultTypeResolver = defaultTypeResolver;
810
+
796
811
  var defaultFieldResolver = function defaultFieldResolver(source, args, contextValue, info) {
797
812
  // ensure source is a value for which property access is acceptable.
798
813
  if (_typeof(source) === 'object' || typeof source === 'function') {
@@ -828,4 +843,4 @@ function getFieldDef(schema, parentType, fieldName) {
828
843
  }
829
844
 
830
845
  return parentType.getFields()[fieldName];
831
- }
846
+ }