graphql 14.0.2 → 14.1.0

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 (279) hide show
  1. package/README.md +4 -4
  2. package/error/GraphQLError.js +1 -1
  3. package/error/GraphQLError.js.flow +3 -3
  4. package/error/GraphQLError.mjs +1 -1
  5. package/error/formatError.js +1 -1
  6. package/error/formatError.mjs +1 -1
  7. package/error/index.mjs +1 -1
  8. package/error/locatedError.js +1 -1
  9. package/error/locatedError.mjs +1 -1
  10. package/error/printError.js +1 -1
  11. package/error/printError.mjs +1 -1
  12. package/error/syntaxError.js +1 -1
  13. package/error/syntaxError.mjs +1 -1
  14. package/execution/execute.mjs +1 -1
  15. package/execution/index.mjs +1 -1
  16. package/execution/values.js +3 -3
  17. package/execution/values.js.flow +1 -1
  18. package/execution/values.mjs +2 -2
  19. package/graphql.js +1 -1
  20. package/graphql.mjs +1 -1
  21. package/index.js +12 -0
  22. package/index.js.flow +2 -0
  23. package/index.mjs +2 -2
  24. package/jsutils/dedent.js +1 -1
  25. package/jsutils/dedent.mjs +1 -1
  26. package/jsutils/defineToJSON.js +17 -6
  27. package/jsutils/defineToJSON.js.flow +14 -5
  28. package/jsutils/defineToJSON.mjs +14 -6
  29. package/jsutils/defineToStringTag.js +5 -5
  30. package/jsutils/defineToStringTag.js.flow +3 -3
  31. package/jsutils/defineToStringTag.mjs +4 -4
  32. package/jsutils/inspect.js +22 -11
  33. package/jsutils/inspect.js.flow +22 -2
  34. package/jsutils/inspect.mjs +21 -4
  35. package/jsutils/instanceOf.js +1 -1
  36. package/jsutils/instanceOf.mjs +1 -1
  37. package/jsutils/invariant.js +1 -1
  38. package/jsutils/invariant.mjs +1 -1
  39. package/jsutils/isInvalid.js +1 -1
  40. package/jsutils/isInvalid.mjs +1 -1
  41. package/jsutils/isNullish.js +1 -1
  42. package/jsutils/isNullish.mjs +1 -1
  43. package/jsutils/isPromise.js +1 -1
  44. package/jsutils/isPromise.mjs +1 -1
  45. package/jsutils/keyMap.js +1 -1
  46. package/jsutils/keyMap.mjs +1 -1
  47. package/jsutils/keyValMap.js +1 -1
  48. package/jsutils/keyValMap.mjs +1 -1
  49. package/jsutils/mapValue.js +54 -0
  50. package/jsutils/mapValue.js.flow +27 -0
  51. package/jsutils/mapValue.mjs +44 -0
  52. package/jsutils/memoize3.js +1 -1
  53. package/jsutils/memoize3.mjs +1 -1
  54. package/jsutils/nodejsCustomInspectSymbol.js +18 -0
  55. package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
  56. package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
  57. package/jsutils/orList.js +17 -4
  58. package/jsutils/orList.js.flow +13 -7
  59. package/jsutils/orList.mjs +14 -4
  60. package/jsutils/promiseForObject.js +1 -1
  61. package/jsutils/promiseForObject.mjs +1 -1
  62. package/jsutils/promiseReduce.js +1 -1
  63. package/jsutils/promiseReduce.mjs +1 -1
  64. package/jsutils/quotedOrList.js +1 -1
  65. package/jsutils/quotedOrList.mjs +1 -1
  66. package/jsutils/suggestionList.js +1 -1
  67. package/jsutils/suggestionList.mjs +1 -1
  68. package/language/blockStringValue.js +1 -1
  69. package/language/blockStringValue.mjs +1 -1
  70. package/language/directiveLocation.js +1 -1
  71. package/language/directiveLocation.mjs +1 -1
  72. package/language/index.mjs +1 -1
  73. package/language/kinds.js +1 -1
  74. package/language/kinds.mjs +1 -1
  75. package/language/lexer.js +28 -12
  76. package/language/lexer.js.flow +33 -19
  77. package/language/lexer.mjs +27 -12
  78. package/language/location.js +1 -1
  79. package/language/location.mjs +1 -1
  80. package/language/parser.js +31 -38
  81. package/language/parser.js.flow +32 -48
  82. package/language/parser.mjs +30 -38
  83. package/language/predicates.js +1 -1
  84. package/language/predicates.mjs +1 -1
  85. package/language/printer.js +13 -7
  86. package/language/printer.js.flow +19 -9
  87. package/language/printer.mjs +13 -7
  88. package/language/source.js +8 -7
  89. package/language/source.mjs +1 -9
  90. package/language/visitor.js +6 -5
  91. package/language/visitor.js.flow +2 -4
  92. package/language/visitor.mjs +6 -5
  93. package/package.json +5 -2
  94. package/polyfills/find.js +31 -0
  95. package/polyfills/find.js.flow +29 -0
  96. package/polyfills/find.mjs +23 -0
  97. package/{jsutils → polyfills}/isFinite.js +1 -1
  98. package/{jsutils → polyfills}/isFinite.js.flow +0 -0
  99. package/{jsutils → polyfills}/isFinite.mjs +1 -1
  100. package/{jsutils → polyfills}/isInteger.js +1 -1
  101. package/{jsutils → polyfills}/isInteger.js.flow +0 -0
  102. package/{jsutils → polyfills}/isInteger.mjs +1 -1
  103. package/polyfills/objectEntries.js +26 -0
  104. package/polyfills/objectEntries.js.flow +19 -0
  105. package/polyfills/objectEntries.mjs +18 -0
  106. package/{jsutils → polyfills}/objectValues.js +1 -1
  107. package/{jsutils → polyfills}/objectValues.js.flow +1 -1
  108. package/{jsutils → polyfills}/objectValues.mjs +1 -1
  109. package/subscription/asyncIteratorReject.mjs +1 -1
  110. package/subscription/index.mjs +1 -1
  111. package/subscription/mapAsyncIterator.mjs +1 -1
  112. package/subscription/subscribe.js +1 -1
  113. package/subscription/subscribe.mjs +1 -1
  114. package/type/definition.js +31 -130
  115. package/type/definition.js.flow +35 -47
  116. package/type/definition.mjs +30 -131
  117. package/type/directives.js +25 -29
  118. package/type/directives.js.flow +24 -20
  119. package/type/directives.mjs +22 -30
  120. package/type/index.js +12 -0
  121. package/type/index.js.flow +4 -0
  122. package/type/index.mjs +5 -3
  123. package/type/introspection.js +3 -3
  124. package/type/introspection.js.flow +1 -1
  125. package/type/introspection.mjs +2 -2
  126. package/type/scalars.js +45 -34
  127. package/type/scalars.js.flow +40 -26
  128. package/type/scalars.mjs +44 -26
  129. package/type/schema.js +82 -87
  130. package/type/schema.js.flow +17 -9
  131. package/type/schema.mjs +79 -86
  132. package/type/validate.js +168 -175
  133. package/type/validate.js.flow +8 -49
  134. package/type/validate.mjs +159 -175
  135. package/utilities/TypeInfo.js +10 -23
  136. package/utilities/TypeInfo.js.flow +1 -1
  137. package/utilities/TypeInfo.mjs +2 -24
  138. package/utilities/assertValidName.js +1 -1
  139. package/utilities/assertValidName.mjs +1 -1
  140. package/utilities/astFromValue.js +2 -2
  141. package/utilities/astFromValue.js.flow +1 -1
  142. package/utilities/astFromValue.mjs +2 -2
  143. package/utilities/buildASTSchema.js +53 -53
  144. package/utilities/buildASTSchema.js.flow +14 -30
  145. package/utilities/buildASTSchema.mjs +45 -55
  146. package/utilities/buildClientSchema.js +3 -3
  147. package/utilities/buildClientSchema.js.flow +6 -2
  148. package/utilities/buildClientSchema.mjs +3 -3
  149. package/utilities/coerceValue.js +38 -19
  150. package/utilities/coerceValue.js.flow +41 -47
  151. package/utilities/coerceValue.mjs +38 -20
  152. package/utilities/concatAST.js +1 -1
  153. package/utilities/concatAST.mjs +1 -1
  154. package/utilities/extendSchema.js +228 -312
  155. package/utilities/extendSchema.js.flow +27 -152
  156. package/utilities/extendSchema.mjs +229 -312
  157. package/utilities/findBreakingChanges.js +7 -5
  158. package/utilities/findBreakingChanges.js.flow +3 -2
  159. package/utilities/findBreakingChanges.mjs +6 -5
  160. package/utilities/findDeprecatedUsages.js +1 -1
  161. package/utilities/findDeprecatedUsages.mjs +1 -1
  162. package/utilities/getOperationAST.js +1 -1
  163. package/utilities/getOperationAST.mjs +1 -1
  164. package/utilities/getOperationRootType.js +1 -1
  165. package/utilities/getOperationRootType.mjs +1 -1
  166. package/utilities/index.mjs +1 -1
  167. package/utilities/introspectionFromSchema.js +1 -1
  168. package/utilities/introspectionFromSchema.mjs +1 -1
  169. package/utilities/introspectionQuery.js +1 -1
  170. package/utilities/introspectionQuery.mjs +1 -1
  171. package/utilities/isValidJSValue.js +1 -1
  172. package/utilities/isValidJSValue.mjs +1 -1
  173. package/utilities/isValidLiteralValue.js +1 -1
  174. package/utilities/isValidLiteralValue.mjs +1 -1
  175. package/utilities/lexicographicSortSchema.js +2 -2
  176. package/utilities/lexicographicSortSchema.js.flow +1 -1
  177. package/utilities/lexicographicSortSchema.mjs +2 -2
  178. package/utilities/schemaPrinter.js +3 -3
  179. package/utilities/schemaPrinter.js.flow +1 -1
  180. package/utilities/schemaPrinter.mjs +2 -2
  181. package/utilities/separateOperations.js +1 -1
  182. package/utilities/separateOperations.mjs +1 -1
  183. package/utilities/typeComparators.js +1 -1
  184. package/utilities/typeComparators.mjs +1 -1
  185. package/utilities/typeFromAST.js +1 -1
  186. package/utilities/typeFromAST.mjs +1 -1
  187. package/utilities/valueFromAST.js +3 -3
  188. package/utilities/valueFromAST.js.flow +1 -1
  189. package/utilities/valueFromAST.mjs +2 -2
  190. package/utilities/valueFromASTUntyped.js +1 -1
  191. package/utilities/valueFromASTUntyped.mjs +1 -1
  192. package/validation/ValidationContext.js +57 -82
  193. package/validation/ValidationContext.js.flow +52 -49
  194. package/validation/ValidationContext.mjs +52 -77
  195. package/validation/index.mjs +1 -1
  196. package/validation/rules/ExecutableDefinitions.js +1 -1
  197. package/validation/rules/ExecutableDefinitions.js.flow +1 -1
  198. package/validation/rules/ExecutableDefinitions.mjs +1 -1
  199. package/validation/rules/FieldsOnCorrectType.js +1 -1
  200. package/validation/rules/FieldsOnCorrectType.mjs +1 -1
  201. package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
  202. package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
  203. package/validation/rules/KnownArgumentNames.mjs +1 -1
  204. package/validation/rules/KnownDirectives.js +1 -1
  205. package/validation/rules/KnownDirectives.mjs +1 -1
  206. package/validation/rules/KnownFragmentNames.js +1 -1
  207. package/validation/rules/KnownFragmentNames.mjs +1 -1
  208. package/validation/rules/KnownTypeNames.js +59 -21
  209. package/validation/rules/KnownTypeNames.js.flow +54 -20
  210. package/validation/rules/KnownTypeNames.mjs +56 -21
  211. package/validation/rules/LoneAnonymousOperation.js +1 -1
  212. package/validation/rules/LoneAnonymousOperation.mjs +1 -1
  213. package/validation/rules/LoneSchemaDefinition.js +1 -1
  214. package/validation/rules/LoneSchemaDefinition.mjs +1 -1
  215. package/validation/rules/NoFragmentCycles.js +1 -1
  216. package/validation/rules/NoFragmentCycles.js.flow +2 -2
  217. package/validation/rules/NoFragmentCycles.mjs +1 -1
  218. package/validation/rules/NoUndefinedVariables.js +1 -1
  219. package/validation/rules/NoUndefinedVariables.mjs +1 -1
  220. package/validation/rules/NoUnusedFragments.js +1 -1
  221. package/validation/rules/NoUnusedFragments.js.flow +2 -2
  222. package/validation/rules/NoUnusedFragments.mjs +1 -1
  223. package/validation/rules/NoUnusedVariables.js +1 -1
  224. package/validation/rules/NoUnusedVariables.mjs +1 -1
  225. package/validation/rules/OverlappingFieldsCanBeMerged.js +56 -32
  226. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +3 -3
  227. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +47 -32
  228. package/validation/rules/PossibleFragmentSpreads.js +1 -1
  229. package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
  230. package/validation/rules/PossibleTypeExtensions.js +158 -0
  231. package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
  232. package/validation/rules/PossibleTypeExtensions.mjs +146 -0
  233. package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
  234. package/validation/rules/ScalarLeafs.js +1 -1
  235. package/validation/rules/ScalarLeafs.mjs +1 -1
  236. package/validation/rules/SingleFieldSubscriptions.js +1 -1
  237. package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
  238. package/validation/rules/UniqueArgumentNames.js +1 -1
  239. package/validation/rules/UniqueArgumentNames.mjs +1 -1
  240. package/validation/rules/UniqueDirectiveNames.js +55 -0
  241. package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
  242. package/validation/rules/UniqueDirectiveNames.mjs +43 -0
  243. package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
  244. package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
  245. package/validation/rules/UniqueEnumValueNames.js +94 -0
  246. package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
  247. package/validation/rules/UniqueEnumValueNames.mjs +81 -0
  248. package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
  249. package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
  250. package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
  251. package/validation/rules/UniqueFragmentNames.js +1 -1
  252. package/validation/rules/UniqueFragmentNames.mjs +1 -1
  253. package/validation/rules/UniqueInputFieldNames.js +1 -1
  254. package/validation/rules/UniqueInputFieldNames.mjs +1 -1
  255. package/validation/rules/UniqueOperationNames.js +1 -1
  256. package/validation/rules/UniqueOperationNames.mjs +1 -1
  257. package/validation/rules/UniqueOperationTypes.js +85 -0
  258. package/validation/rules/UniqueOperationTypes.js.flow +76 -0
  259. package/validation/rules/UniqueOperationTypes.mjs +73 -0
  260. package/validation/rules/UniqueTypeNames.js +62 -0
  261. package/validation/rules/UniqueTypeNames.js.flow +67 -0
  262. package/validation/rules/UniqueTypeNames.mjs +50 -0
  263. package/validation/rules/UniqueVariableNames.js +1 -1
  264. package/validation/rules/UniqueVariableNames.mjs +1 -1
  265. package/validation/rules/ValuesOfCorrectType.js +29 -13
  266. package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
  267. package/validation/rules/ValuesOfCorrectType.mjs +28 -13
  268. package/validation/rules/VariablesAreInputTypes.js +1 -1
  269. package/validation/rules/VariablesAreInputTypes.mjs +1 -1
  270. package/validation/rules/VariablesInAllowedPosition.js +4 -4
  271. package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
  272. package/validation/specifiedRules.js +14 -2
  273. package/validation/specifiedRules.js.flow +13 -0
  274. package/validation/specifiedRules.mjs +8 -2
  275. package/validation/validate.js +1 -1
  276. package/validation/validate.mjs +1 -1
  277. package/jsutils/find.js +0 -22
  278. package/jsutils/find.js.flow +0 -19
  279. package/jsutils/find.mjs +0 -15
package/README.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  The JavaScript reference implementation for GraphQL, a query language for APIs created by Facebook.
4
4
 
5
- [![npm version](https://badge.fury.io/js/graphql.svg)](http://badge.fury.io/js/graphql)
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
7
  [![Coverage Status](https://coveralls.io/repos/graphql/graphql-js/badge.svg?branch=master)](https://coveralls.io/r/graphql/graphql-js?branch=master)
8
8
 
9
- See more complete documentation at http://graphql.org/ and
10
- http://graphql.org/graphql-js/.
9
+ See more complete documentation at https://graphql.org/ and
10
+ https://graphql.org/graphql-js/.
11
11
 
12
- Looking for help? Find resources [from the community](http://graphql.org/community/).
12
+ Looking for help? Find resources [from the community](https://graphql.org/community/).
13
13
 
14
14
 
15
15
  ## Getting Started
@@ -15,7 +15,7 @@ var _location = require("../language/location");
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.
17
17
  *
18
- * strict
18
+ *
19
19
  */
20
20
  function GraphQLError( // eslint-disable-line no-redeclare
21
21
  message, nodes, source, positions, path, originalError, extensions) {
@@ -22,7 +22,7 @@ import type { Source } from '../language/source';
22
22
  declare class GraphQLError extends Error {
23
23
  constructor(
24
24
  message: string,
25
- nodes?: $ReadOnlyArray<ASTNode> | ASTNode | void,
25
+ nodes?: $ReadOnlyArray<ASTNode> | ASTNode | void | null,
26
26
  source?: ?Source,
27
27
  positions?: ?$ReadOnlyArray<number>,
28
28
  path?: ?$ReadOnlyArray<string | number>,
@@ -104,8 +104,8 @@ export function GraphQLError( // eslint-disable-line no-redeclare
104
104
  ? nodes
105
105
  : undefined
106
106
  : nodes
107
- ? [nodes]
108
- : undefined;
107
+ ? [nodes]
108
+ : undefined;
109
109
 
110
110
  // Compute locations in the source for the given nodes/positions.
111
111
  let _source = source;
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { printError } from './printError';
10
10
  import { getLocation } from '../language/location';
@@ -15,7 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
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.
17
17
  *
18
- * strict
18
+ *
19
19
  */
20
20
 
21
21
  /**
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import invariant from '../jsutils/invariant';
10
10
 
package/error/index.mjs CHANGED
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  export { GraphQLError } from './GraphQLError';
10
10
  export { syntaxError } from './syntaxError';
@@ -13,7 +13,7 @@ var _GraphQLError = require("./GraphQLError");
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.
15
15
  *
16
- * strict
16
+ *
17
17
  */
18
18
 
19
19
  /**
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from './GraphQLError';
10
10
 
@@ -13,7 +13,7 @@ var _location = require("../language/location");
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.
15
15
  *
16
- * strict
16
+ *
17
17
  */
18
18
 
19
19
  /**
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { getLocation } from '../language/location';
10
10
 
@@ -13,7 +13,7 @@ var _GraphQLError = require("./GraphQLError");
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.
15
15
  *
16
- * strict
16
+ *
17
17
  */
18
18
 
19
19
  /**
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from './GraphQLError';
10
10
  /**
@@ -6,7 +6,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  *
9
- * strict
9
+ *
10
10
  */
11
11
  import { forEach, isCollection } from 'iterall';
12
12
  import { GraphQLError } from '../error/GraphQLError';
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  export { execute, defaultFieldResolver, responsePathAsArray } from './execute';
10
10
  export { getDirectiveValues } from './values';
@@ -7,9 +7,9 @@ exports.getVariableValues = getVariableValues;
7
7
  exports.getArgumentValues = getArgumentValues;
8
8
  exports.getDirectiveValues = getDirectiveValues;
9
9
 
10
- var _GraphQLError = require("../error/GraphQLError");
10
+ var _find = _interopRequireDefault(require("../polyfills/find"));
11
11
 
12
- var _find = _interopRequireDefault(require("../jsutils/find"));
12
+ var _GraphQLError = require("../error/GraphQLError");
13
13
 
14
14
  var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
15
15
 
@@ -37,7 +37,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
37
37
  * This source code is licensed under the MIT license found in the
38
38
  * LICENSE file in the root directory of this source tree.
39
39
  *
40
- * strict
40
+ *
41
41
  */
42
42
 
43
43
  /**
@@ -7,8 +7,8 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ import find from '../polyfills/find';
10
11
  import { GraphQLError } from '../error/GraphQLError';
11
- import find from '../jsutils/find';
12
12
  import inspect from '../jsutils/inspect';
13
13
  import invariant from '../jsutils/invariant';
14
14
  import keyMap from '../jsutils/keyMap';
@@ -4,10 +4,10 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
+ import find from '../polyfills/find';
9
10
  import { GraphQLError } from '../error/GraphQLError';
10
- import find from '../jsutils/find';
11
11
  import inspect from '../jsutils/inspect';
12
12
  import invariant from '../jsutils/invariant';
13
13
  import keyMap from '../jsutils/keyMap';
package/graphql.js CHANGED
@@ -20,7 +20,7 @@ var _execute = require("./execution/execute");
20
20
  * This source code is licensed under the MIT license found in the
21
21
  * LICENSE file in the root directory of this source tree.
22
22
  *
23
- * strict
23
+ *
24
24
  */
25
25
  function graphql(argsOrSchema, source, rootValue, contextValue, variableValues, operationName, fieldResolver) {
26
26
  var _arguments = arguments;
package/graphql.mjs CHANGED
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { validateSchema } from './type/validate';
10
10
  import { parse } from './language/parser';
package/index.js CHANGED
@@ -363,6 +363,18 @@ Object.defineProperty(exports, "isSpecifiedDirective", {
363
363
  return _type.isSpecifiedDirective;
364
364
  }
365
365
  });
366
+ Object.defineProperty(exports, "assertSchema", {
367
+ enumerable: true,
368
+ get: function get() {
369
+ return _type.assertSchema;
370
+ }
371
+ });
372
+ Object.defineProperty(exports, "assertDirective", {
373
+ enumerable: true,
374
+ get: function get() {
375
+ return _type.assertDirective;
376
+ }
377
+ });
366
378
  Object.defineProperty(exports, "assertType", {
367
379
  enumerable: true,
368
380
  get: function get() {
package/index.js.flow CHANGED
@@ -104,6 +104,8 @@ export {
104
104
  isIntrospectionType,
105
105
  isSpecifiedDirective,
106
106
  // Assertions
107
+ assertSchema,
108
+ assertDirective,
107
109
  assertType,
108
110
  assertScalarType,
109
111
  assertObjectType,
package/index.mjs CHANGED
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
 
10
10
  /**
@@ -42,7 +42,7 @@ DEFAULT_DEPRECATION_REASON, // Meta-field definitions.
42
42
  SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, // GraphQL Types for introspection.
43
43
  introspectionTypes, __Schema, __Directive, __DirectiveLocation, __Type, __Field, __InputValue, __EnumValue, __TypeKind, // Predicates
44
44
  isSchema, isDirective, isType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isListType, isNonNullType, isInputType, isOutputType, isLeafType, isCompositeType, isAbstractType, isWrappingType, isNullableType, isNamedType, isRequiredArgument, isRequiredInputField, isSpecifiedScalarType, isIntrospectionType, isSpecifiedDirective, // Assertions
45
- assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, // Un-modifiers
45
+ assertSchema, assertDirective, assertType, assertScalarType, assertObjectType, assertInterfaceType, assertUnionType, assertEnumType, assertInputObjectType, assertListType, assertNonNullType, assertInputType, assertOutputType, assertLeafType, assertCompositeType, assertAbstractType, assertWrappingType, assertNullableType, assertNamedType, // Un-modifiers
46
46
  getNullableType, getNamedType, // Validate GraphQL schema.
47
47
  validateSchema, assertValidSchema } from './type';
48
48
  // Parse and operate on GraphQL language source files.
package/jsutils/dedent.js CHANGED
@@ -15,7 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
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.
17
17
  *
18
- * strict
18
+ *
19
19
  */
20
20
 
21
21
  /**
@@ -4,7 +4,7 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import invariant from './invariant';
10
10
  /**
@@ -3,7 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = applyToJSON;
6
+ exports.default = defineToJSON;
7
+
8
+ var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7
11
 
8
12
  /**
9
13
  * Copyright (c) 2015-present, Facebook, Inc.
@@ -11,13 +15,20 @@ exports.default = applyToJSON;
11
15
  * This source code is licensed under the MIT license found in the
12
16
  * LICENSE file in the root directory of this source tree.
13
17
  *
14
- * strict
18
+ *
15
19
  */
16
20
 
17
21
  /**
18
- * The `applyToJSON()` function defines toJSON() and inspect() prototype
19
- * methods which are aliases for toString().
22
+ * The `defineToJSON()` function defines toJSON() and inspect() prototype
23
+ * methods, if no function provided they become aliases for toString().
20
24
  */
21
- function applyToJSON(classObject) {
22
- classObject.prototype.toJSON = classObject.prototype.inspect = classObject.prototype.toString;
25
+ function defineToJSON( // eslint-disable-next-line flowtype/no-weak-types
26
+ classObject) {
27
+ var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
28
+ classObject.prototype.toJSON = fn;
29
+ classObject.prototype.inspect = fn;
30
+
31
+ if (_nodejsCustomInspectSymbol.default) {
32
+ classObject.prototype[_nodejsCustomInspectSymbol.default] = fn;
33
+ }
23
34
  }
@@ -7,11 +7,20 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
11
+
10
12
  /**
11
- * The `applyToJSON()` function defines toJSON() and inspect() prototype
12
- * methods which are aliases for toString().
13
+ * The `defineToJSON()` function defines toJSON() and inspect() prototype
14
+ * methods, if no function provided they become aliases for toString().
13
15
  */
14
- export default function applyToJSON(classObject: Class<any>): void {
15
- classObject.prototype.toJSON = classObject.prototype.inspect =
16
- classObject.prototype.toString;
16
+ export default function defineToJSON(
17
+ // eslint-disable-next-line flowtype/no-weak-types
18
+ classObject: Class<any> | Function,
19
+ fn?: () => any = classObject.prototype.toString,
20
+ ): void {
21
+ classObject.prototype.toJSON = fn;
22
+ classObject.prototype.inspect = fn;
23
+ if (nodejsCustomInspectSymbol) {
24
+ classObject.prototype[nodejsCustomInspectSymbol] = fn;
25
+ }
17
26
  }
@@ -4,13 +4,21 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
-
9
+ import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
10
10
  /**
11
- * The `applyToJSON()` function defines toJSON() and inspect() prototype
12
- * methods which are aliases for toString().
11
+ * The `defineToJSON()` function defines toJSON() and inspect() prototype
12
+ * methods, if no function provided they become aliases for toString().
13
13
  */
14
- export default function applyToJSON(classObject) {
15
- classObject.prototype.toJSON = classObject.prototype.inspect = classObject.prototype.toString;
14
+
15
+ export default function defineToJSON( // eslint-disable-next-line flowtype/no-weak-types
16
+ classObject) {
17
+ var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : classObject.prototype.toString;
18
+ classObject.prototype.toJSON = fn;
19
+ classObject.prototype.inspect = fn;
20
+
21
+ if (nodejsCustomInspectSymbol) {
22
+ classObject.prototype[nodejsCustomInspectSymbol] = fn;
23
+ }
16
24
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = applyToStringTag;
6
+ exports.default = defineToStringTag;
7
7
 
8
8
  /**
9
9
  * Copyright (c) 2015-present, Facebook, Inc.
@@ -11,23 +11,23 @@ exports.default = applyToStringTag;
11
11
  * This source code is licensed under the MIT license found in the
12
12
  * LICENSE file in the root directory of this source tree.
13
13
  *
14
- * strict
14
+ *
15
15
  */
16
16
 
17
17
  /**
18
- * The `applyToStringTag()` function checks first to see if the runtime
18
+ * The `defineToStringTag()` function checks first to see if the runtime
19
19
  * supports the `Symbol` class and then if the `Symbol.toStringTag` constant
20
20
  * is defined as a `Symbol` instance. If both conditions are met, the
21
21
  * Symbol.toStringTag property is defined as a getter that returns the
22
22
  * supplied class constructor's name.
23
23
  *
24
- * @method applyToStringTag
24
+ * @method defineToStringTag
25
25
  *
26
26
  * @param {Class<any>} classObject a class such as Object, String, Number but
27
27
  * typically one of your own creation through the class keyword; `class A {}`,
28
28
  * for example.
29
29
  */
30
- function applyToStringTag(classObject) {
30
+ function defineToStringTag(classObject) {
31
31
  if (typeof Symbol === 'function' && Symbol.toStringTag) {
32
32
  Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
33
33
  get: function get() {
@@ -8,19 +8,19 @@
8
8
  */
9
9
 
10
10
  /**
11
- * The `applyToStringTag()` function checks first to see if the runtime
11
+ * The `defineToStringTag()` function checks first to see if the runtime
12
12
  * supports the `Symbol` class and then if the `Symbol.toStringTag` constant
13
13
  * is defined as a `Symbol` instance. If both conditions are met, the
14
14
  * Symbol.toStringTag property is defined as a getter that returns the
15
15
  * supplied class constructor's name.
16
16
  *
17
- * @method applyToStringTag
17
+ * @method defineToStringTag
18
18
  *
19
19
  * @param {Class<any>} classObject a class such as Object, String, Number but
20
20
  * typically one of your own creation through the class keyword; `class A {}`,
21
21
  * for example.
22
22
  */
23
- export default function applyToStringTag(classObject: Class<any>): void {
23
+ export default function defineToStringTag(classObject: Class<any>): void {
24
24
  if (typeof Symbol === 'function' && Symbol.toStringTag) {
25
25
  Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
26
26
  get() {
@@ -4,23 +4,23 @@
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.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
 
10
10
  /**
11
- * The `applyToStringTag()` function checks first to see if the runtime
11
+ * The `defineToStringTag()` function checks first to see if the runtime
12
12
  * supports the `Symbol` class and then if the `Symbol.toStringTag` constant
13
13
  * is defined as a `Symbol` instance. If both conditions are met, the
14
14
  * Symbol.toStringTag property is defined as a getter that returns the
15
15
  * supplied class constructor's name.
16
16
  *
17
- * @method applyToStringTag
17
+ * @method defineToStringTag
18
18
  *
19
19
  * @param {Class<any>} classObject a class such as Object, String, Number but
20
20
  * typically one of your own creation through the class keyword; `class A {}`,
21
21
  * for example.
22
22
  */
23
- export default function applyToStringTag(classObject) {
23
+ export default function defineToStringTag(classObject) {
24
24
  if (typeof Symbol === 'function' && Symbol.toStringTag) {
25
25
  Object.defineProperty(classObject.prototype, Symbol.toStringTag, {
26
26
  get: function get() {
@@ -5,16 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = inspect;
7
7
 
8
- 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); }
8
+ var _nodejsCustomInspectSymbol = _interopRequireDefault(require("./nodejsCustomInspectSymbol"));
9
9
 
10
- /**
11
- * Copyright (c) 2015-present, Facebook, Inc.
12
- *
13
- * This source code is licensed under the MIT license found in the
14
- * LICENSE file in the root directory of this source tree.
15
- *
16
- * strict
17
- */
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
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); }
18
13
 
19
14
  /**
20
15
  * Used to print values in error messages.
@@ -29,8 +24,12 @@ function inspect(value) {
29
24
 
30
25
  case 'object':
31
26
  if (value) {
32
- if (typeof value.inspect === 'function') {
33
- return value.inspect();
27
+ var customInspectFn = getCustomFn(value);
28
+
29
+ if (customInspectFn) {
30
+ // $FlowFixMe(>=0.90.0)
31
+ var customValue = customInspectFn.call(value);
32
+ return typeof customValue === 'string' ? customValue : inspect(customValue);
34
33
  } else if (Array.isArray(value)) {
35
34
  return '[' + value.map(inspect).join(', ') + ']';
36
35
  }
@@ -46,4 +45,16 @@ function inspect(value) {
46
45
  default:
47
46
  return String(value);
48
47
  }
48
+ }
49
+
50
+ function getCustomFn(object) {
51
+ var customInspectFn = object[String(_nodejsCustomInspectSymbol.default)];
52
+
53
+ if (typeof customInspectFn === 'function') {
54
+ return customInspectFn;
55
+ }
56
+
57
+ if (typeof object.inspect === 'function') {
58
+ return object.inspect;
59
+ }
49
60
  }
@@ -7,6 +7,8 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
11
+
10
12
  /**
11
13
  * Used to print values in error messages.
12
14
  */
@@ -18,8 +20,14 @@ export default function inspect(value: mixed): string {
18
20
  return value.name ? `[function ${value.name}]` : '[function]';
19
21
  case 'object':
20
22
  if (value) {
21
- if (typeof value.inspect === 'function') {
22
- return value.inspect();
23
+ const customInspectFn = getCustomFn(value);
24
+
25
+ if (customInspectFn) {
26
+ // $FlowFixMe(>=0.90.0)
27
+ const customValue = customInspectFn.call(value);
28
+ return typeof customValue === 'string'
29
+ ? customValue
30
+ : inspect(customValue);
23
31
  } else if (Array.isArray(value)) {
24
32
  return '[' + value.map(inspect).join(', ') + ']';
25
33
  }
@@ -34,3 +42,15 @@ export default function inspect(value: mixed): string {
34
42
  return String(value);
35
43
  }
36
44
  }
45
+
46
+ function getCustomFn(object) {
47
+ const customInspectFn = object[String(nodejsCustomInspectSymbol)];
48
+
49
+ if (typeof customInspectFn === 'function') {
50
+ return customInspectFn;
51
+ }
52
+
53
+ if (typeof object.inspect === 'function') {
54
+ return object.inspect;
55
+ }
56
+ }
@@ -6,12 +6,13 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  *
9
- * strict
9
+ *
10
10
  */
11
-
11
+ import nodejsCustomInspectSymbol from './nodejsCustomInspectSymbol';
12
12
  /**
13
13
  * Used to print values in error messages.
14
14
  */
15
+
15
16
  export default function inspect(value) {
16
17
  switch (_typeof(value)) {
17
18
  case 'string':
@@ -22,8 +23,12 @@ export default function inspect(value) {
22
23
 
23
24
  case 'object':
24
25
  if (value) {
25
- if (typeof value.inspect === 'function') {
26
- return value.inspect();
26
+ var customInspectFn = getCustomFn(value);
27
+
28
+ if (customInspectFn) {
29
+ // $FlowFixMe(>=0.90.0)
30
+ var customValue = customInspectFn.call(value);
31
+ return typeof customValue === 'string' ? customValue : inspect(customValue);
27
32
  } else if (Array.isArray(value)) {
28
33
  return '[' + value.map(inspect).join(', ') + ']';
29
34
  }
@@ -39,4 +44,16 @@ export default function inspect(value) {
39
44
  default:
40
45
  return String(value);
41
46
  }
47
+ }
48
+
49
+ function getCustomFn(object) {
50
+ var customInspectFn = object[String(nodejsCustomInspectSymbol)];
51
+
52
+ if (typeof customInspectFn === 'function') {
53
+ return customInspectFn;
54
+ }
55
+
56
+ if (typeof object.inspect === 'function') {
57
+ return object.inspect;
58
+ }
42
59
  }
@@ -11,7 +11,7 @@ exports.default = void 0;
11
11
  * This source code is licensed under the MIT license found in the
12
12
  * LICENSE file in the root directory of this source tree.
13
13
  *
14
- * strict
14
+ *
15
15
  */
16
16
 
17
17
  /**