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
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stripIgnoredCharacters = stripIgnoredCharacters;
7
+
8
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
9
+
10
+ var _source = require("../language/source");
11
+
12
+ var _lexer = require("../language/lexer");
13
+
14
+ var _blockString = require("../language/blockString");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * Copyright (c) Facebook, Inc. and its affiliates.
20
+ *
21
+ * This source code is licensed under the MIT license found in the
22
+ * LICENSE file in the root directory of this source tree.
23
+ *
24
+ *
25
+ */
26
+
27
+ /**
28
+ * Strips characters that are not significant to the validity or execution
29
+ * of a GraphQL document:
30
+ * - UnicodeBOM
31
+ * - WhiteSpace
32
+ * - LineTerminator
33
+ * - Comment
34
+ * - Comma
35
+ * - BlockString indentation
36
+ *
37
+ * Note: It is required to have a delimiter character between neighboring
38
+ * non-punctuator tokens and this function always uses single space as delimiter.
39
+ *
40
+ * It is guaranteed that both input and output documents if parsed would result
41
+ * in the exact same AST except for nodes location.
42
+ *
43
+ * Warning: It is guaranteed that this function will always produce stable results.
44
+ * However, it's not guaranteed that it will stay the same between different
45
+ * releases due to bugfixes or changes in the GraphQL specification.
46
+ *
47
+ * Query example:
48
+ *
49
+ * query SomeQuery($foo: String!, $bar: String) {
50
+ * someField(foo: $foo, bar: $bar) {
51
+ * a
52
+ * b {
53
+ * c
54
+ * d
55
+ * }
56
+ * }
57
+ * }
58
+ *
59
+ * Becomes:
60
+ *
61
+ * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
62
+ *
63
+ * SDL example:
64
+ *
65
+ * """
66
+ * Type description
67
+ * """
68
+ * type Foo {
69
+ * """
70
+ * Field description
71
+ * """
72
+ * bar: String
73
+ * }
74
+ *
75
+ * Becomes:
76
+ *
77
+ * """Type description""" type Foo{"""Field description""" bar:String}
78
+ */
79
+ function stripIgnoredCharacters(source) {
80
+ var sourceObj = typeof source === 'string' ? new _source.Source(source) : source;
81
+
82
+ if (!(sourceObj instanceof _source.Source)) {
83
+ throw new TypeError("Must provide string or Source. Received: ".concat((0, _inspect.default)(sourceObj)));
84
+ }
85
+
86
+ var body = sourceObj.body;
87
+ var lexer = (0, _lexer.createLexer)(sourceObj);
88
+ var strippedBody = '';
89
+ var wasLastAddedTokenNonPunctuator = false;
90
+
91
+ while (lexer.advance().kind !== _lexer.TokenKind.EOF) {
92
+ var currentToken = lexer.token;
93
+ var tokenKind = currentToken.kind;
94
+ /**
95
+ * Every two non-punctuator tokens should have space between them.
96
+ * Also prevent case of non-punctuator token following by spread resulting
97
+ * in invalid token (e.g. `1...` is invalid Float token).
98
+ */
99
+
100
+ var isNonPunctuator = !(0, _lexer.isPunctuatorToken)(currentToken);
101
+
102
+ if (wasLastAddedTokenNonPunctuator) {
103
+ if (isNonPunctuator || currentToken.kind === _lexer.TokenKind.SPREAD) {
104
+ strippedBody += ' ';
105
+ }
106
+ }
107
+
108
+ var tokenBody = body.slice(currentToken.start, currentToken.end);
109
+
110
+ if (tokenKind === _lexer.TokenKind.BLOCK_STRING) {
111
+ strippedBody += dedentBlockString(tokenBody);
112
+ } else {
113
+ strippedBody += tokenBody;
114
+ }
115
+
116
+ wasLastAddedTokenNonPunctuator = isNonPunctuator;
117
+ }
118
+
119
+ return strippedBody;
120
+ }
121
+
122
+ function dedentBlockString(blockStr) {
123
+ // skip leading and trailing triple quotations
124
+ var rawStr = blockStr.slice(3, -3);
125
+ var body = (0, _blockString.dedentBlockStringValue)(rawStr);
126
+ var lines = body.split(/\r\n|[\n\r]/g);
127
+
128
+ if ((0, _blockString.getBlockStringIndentation)(lines) > 0) {
129
+ body = '\n' + body;
130
+ }
131
+
132
+ var lastChar = body[body.length - 1];
133
+ var hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
134
+
135
+ if (hasTrailingQuote || lastChar === '\\') {
136
+ body += '\n';
137
+ }
138
+
139
+ return '"""' + body + '"""';
140
+ }
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ */
9
+
10
+ import inspect from '../jsutils/inspect';
11
+ import { Source } from '../language/source';
12
+ import { createLexer, TokenKind, isPunctuatorToken } from '../language/lexer';
13
+ import {
14
+ dedentBlockStringValue,
15
+ getBlockStringIndentation,
16
+ } from '../language/blockString';
17
+
18
+ /**
19
+ * Strips characters that are not significant to the validity or execution
20
+ * of a GraphQL document:
21
+ * - UnicodeBOM
22
+ * - WhiteSpace
23
+ * - LineTerminator
24
+ * - Comment
25
+ * - Comma
26
+ * - BlockString indentation
27
+ *
28
+ * Note: It is required to have a delimiter character between neighboring
29
+ * non-punctuator tokens and this function always uses single space as delimiter.
30
+ *
31
+ * It is guaranteed that both input and output documents if parsed would result
32
+ * in the exact same AST except for nodes location.
33
+ *
34
+ * Warning: It is guaranteed that this function will always produce stable results.
35
+ * However, it's not guaranteed that it will stay the same between different
36
+ * releases due to bugfixes or changes in the GraphQL specification.
37
+ *
38
+ * Query example:
39
+ *
40
+ * query SomeQuery($foo: String!, $bar: String) {
41
+ * someField(foo: $foo, bar: $bar) {
42
+ * a
43
+ * b {
44
+ * c
45
+ * d
46
+ * }
47
+ * }
48
+ * }
49
+ *
50
+ * Becomes:
51
+ *
52
+ * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
53
+ *
54
+ * SDL example:
55
+ *
56
+ * """
57
+ * Type description
58
+ * """
59
+ * type Foo {
60
+ * """
61
+ * Field description
62
+ * """
63
+ * bar: String
64
+ * }
65
+ *
66
+ * Becomes:
67
+ *
68
+ * """Type description""" type Foo{"""Field description""" bar:String}
69
+ */
70
+ export function stripIgnoredCharacters(source: string | Source): string {
71
+ const sourceObj = typeof source === 'string' ? new Source(source) : source;
72
+ if (!(sourceObj instanceof Source)) {
73
+ throw new TypeError(
74
+ `Must provide string or Source. Received: ${inspect(sourceObj)}`,
75
+ );
76
+ }
77
+
78
+ const body = sourceObj.body;
79
+ const lexer = createLexer(sourceObj);
80
+ let strippedBody = '';
81
+
82
+ let wasLastAddedTokenNonPunctuator = false;
83
+ while (lexer.advance().kind !== TokenKind.EOF) {
84
+ const currentToken = lexer.token;
85
+ const tokenKind = currentToken.kind;
86
+
87
+ /**
88
+ * Every two non-punctuator tokens should have space between them.
89
+ * Also prevent case of non-punctuator token following by spread resulting
90
+ * in invalid token (e.g. `1...` is invalid Float token).
91
+ */
92
+ const isNonPunctuator = !isPunctuatorToken(currentToken);
93
+ if (wasLastAddedTokenNonPunctuator) {
94
+ if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {
95
+ strippedBody += ' ';
96
+ }
97
+ }
98
+
99
+ const tokenBody = body.slice(currentToken.start, currentToken.end);
100
+ if (tokenKind === TokenKind.BLOCK_STRING) {
101
+ strippedBody += dedentBlockString(tokenBody);
102
+ } else {
103
+ strippedBody += tokenBody;
104
+ }
105
+
106
+ wasLastAddedTokenNonPunctuator = isNonPunctuator;
107
+ }
108
+
109
+ return strippedBody;
110
+ }
111
+
112
+ function dedentBlockString(blockStr) {
113
+ // skip leading and trailing triple quotations
114
+ const rawStr = blockStr.slice(3, -3);
115
+ let body = dedentBlockStringValue(rawStr);
116
+
117
+ const lines = body.split(/\r\n|[\n\r]/g);
118
+ if (getBlockStringIndentation(lines) > 0) {
119
+ body = '\n' + body;
120
+ }
121
+
122
+ const lastChar = body[body.length - 1];
123
+ const hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
124
+ if (hasTrailingQuote || lastChar === '\\') {
125
+ body += '\n';
126
+ }
127
+
128
+ return '"""' + body + '"""';
129
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ */
9
+ import inspect from '../jsutils/inspect';
10
+ import { Source } from '../language/source';
11
+ import { createLexer, TokenKind, isPunctuatorToken } from '../language/lexer';
12
+ import { dedentBlockStringValue, getBlockStringIndentation } from '../language/blockString';
13
+ /**
14
+ * Strips characters that are not significant to the validity or execution
15
+ * of a GraphQL document:
16
+ * - UnicodeBOM
17
+ * - WhiteSpace
18
+ * - LineTerminator
19
+ * - Comment
20
+ * - Comma
21
+ * - BlockString indentation
22
+ *
23
+ * Note: It is required to have a delimiter character between neighboring
24
+ * non-punctuator tokens and this function always uses single space as delimiter.
25
+ *
26
+ * It is guaranteed that both input and output documents if parsed would result
27
+ * in the exact same AST except for nodes location.
28
+ *
29
+ * Warning: It is guaranteed that this function will always produce stable results.
30
+ * However, it's not guaranteed that it will stay the same between different
31
+ * releases due to bugfixes or changes in the GraphQL specification.
32
+ *
33
+ * Query example:
34
+ *
35
+ * query SomeQuery($foo: String!, $bar: String) {
36
+ * someField(foo: $foo, bar: $bar) {
37
+ * a
38
+ * b {
39
+ * c
40
+ * d
41
+ * }
42
+ * }
43
+ * }
44
+ *
45
+ * Becomes:
46
+ *
47
+ * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
48
+ *
49
+ * SDL example:
50
+ *
51
+ * """
52
+ * Type description
53
+ * """
54
+ * type Foo {
55
+ * """
56
+ * Field description
57
+ * """
58
+ * bar: String
59
+ * }
60
+ *
61
+ * Becomes:
62
+ *
63
+ * """Type description""" type Foo{"""Field description""" bar:String}
64
+ */
65
+
66
+ export function stripIgnoredCharacters(source) {
67
+ var sourceObj = typeof source === 'string' ? new Source(source) : source;
68
+
69
+ if (!(sourceObj instanceof Source)) {
70
+ throw new TypeError("Must provide string or Source. Received: ".concat(inspect(sourceObj)));
71
+ }
72
+
73
+ var body = sourceObj.body;
74
+ var lexer = createLexer(sourceObj);
75
+ var strippedBody = '';
76
+ var wasLastAddedTokenNonPunctuator = false;
77
+
78
+ while (lexer.advance().kind !== TokenKind.EOF) {
79
+ var currentToken = lexer.token;
80
+ var tokenKind = currentToken.kind;
81
+ /**
82
+ * Every two non-punctuator tokens should have space between them.
83
+ * Also prevent case of non-punctuator token following by spread resulting
84
+ * in invalid token (e.g. `1...` is invalid Float token).
85
+ */
86
+
87
+ var isNonPunctuator = !isPunctuatorToken(currentToken);
88
+
89
+ if (wasLastAddedTokenNonPunctuator) {
90
+ if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {
91
+ strippedBody += ' ';
92
+ }
93
+ }
94
+
95
+ var tokenBody = body.slice(currentToken.start, currentToken.end);
96
+
97
+ if (tokenKind === TokenKind.BLOCK_STRING) {
98
+ strippedBody += dedentBlockString(tokenBody);
99
+ } else {
100
+ strippedBody += tokenBody;
101
+ }
102
+
103
+ wasLastAddedTokenNonPunctuator = isNonPunctuator;
104
+ }
105
+
106
+ return strippedBody;
107
+ }
108
+
109
+ function dedentBlockString(blockStr) {
110
+ // skip leading and trailing triple quotations
111
+ var rawStr = blockStr.slice(3, -3);
112
+ var body = dedentBlockStringValue(rawStr);
113
+ var lines = body.split(/\r\n|[\n\r]/g);
114
+
115
+ if (getBlockStringIndentation(lines) > 0) {
116
+ body = '\n' + body;
117
+ }
118
+
119
+ var lastChar = body[body.length - 1];
120
+ var hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""';
121
+
122
+ if (hasTrailingQuote || lastChar === '\\') {
123
+ body += '\n';
124
+ }
125
+
126
+ return '"""' + body + '"""';
127
+ }
@@ -10,7 +10,7 @@ exports.doTypesOverlap = doTypesOverlap;
10
10
  var _definition = require("../type/definition");
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.
@@ -126,4 +126,4 @@ function doTypesOverlap(schema, typeA, typeB) {
126
126
 
127
127
 
128
128
  return false;
129
- }
129
+ }
@@ -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,13 +8,14 @@
8
8
  */
9
9
 
10
10
  import {
11
+ type GraphQLType,
12
+ type GraphQLCompositeType,
11
13
  isObjectType,
12
14
  isListType,
13
15
  isNonNullType,
14
16
  isAbstractType,
15
17
  } from '../type/definition';
16
- import type { GraphQLType, GraphQLCompositeType } from '../type/definition';
17
- import type { GraphQLSchema } from '../type/schema';
18
+ import { type GraphQLSchema } from '../type/schema';
18
19
 
19
20
  /**
20
21
  * Provided two types, return true if the types are equal (invariant).
@@ -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.
@@ -114,4 +114,4 @@ export function doTypesOverlap(schema, typeA, typeB) {
114
114
 
115
115
 
116
116
  return false;
117
- }
117
+ }
@@ -5,12 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.typeFromAST = typeFromAST;
7
7
 
8
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
9
+
8
10
  var _kinds = require("../language/kinds");
9
11
 
10
12
  var _definition = require("../type/definition");
11
13
 
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
12
16
  /**
13
- * Copyright (c) 2015-present, Facebook, Inc.
17
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
18
  *
15
19
  * This source code is licensed under the MIT license found in the
16
20
  * LICENSE file in the root directory of this source tree.
@@ -33,9 +37,10 @@ function typeFromAST(schema, typeNode) {
33
37
 
34
38
  if (typeNode.kind === _kinds.Kind.NAMED_TYPE) {
35
39
  return schema.getType(typeNode.name.value);
36
- }
40
+ } // Not reachable. All possible type nodes have been considered.
41
+
37
42
  /* istanbul ignore next */
38
43
 
39
44
 
40
- throw new Error("Unexpected type kind: ".concat(typeNode.kind, "."));
41
- }
45
+ throw new Error("Unexpected type node: \"".concat((0, _inspect.default)(typeNode), "\"."));
46
+ }
@@ -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,15 +7,19 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ import inspect from '../jsutils/inspect';
10
11
  import { Kind } from '../language/kinds';
11
- import type {
12
- NamedTypeNode,
13
- ListTypeNode,
14
- NonNullTypeNode,
12
+ import {
13
+ type NamedTypeNode,
14
+ type ListTypeNode,
15
+ type NonNullTypeNode,
15
16
  } from '../language/ast';
16
- import { GraphQLList, GraphQLNonNull } from '../type/definition';
17
- import type { GraphQLNamedType } from '../type/definition';
18
- import type { GraphQLSchema } from '../type/schema';
17
+ import {
18
+ type GraphQLNamedType,
19
+ GraphQLList,
20
+ GraphQLNonNull,
21
+ } from '../type/definition';
22
+ import { type GraphQLSchema } from '../type/schema';
19
23
 
20
24
  /**
21
25
  * Given a Schema and an AST node describing a type, return a GraphQLType
@@ -51,6 +55,8 @@ export function typeFromAST(schema, typeNode) {
51
55
  if (typeNode.kind === Kind.NAMED_TYPE) {
52
56
  return schema.getType(typeNode.name.value);
53
57
  }
58
+
59
+ // Not reachable. All possible type nodes have been considered.
54
60
  /* istanbul ignore next */
55
- throw new Error(`Unexpected type kind: ${(typeNode.kind: empty)}.`);
61
+ throw new Error(`Unexpected type node: "${inspect((typeNode: empty))}".`);
56
62
  }
@@ -1,11 +1,12 @@
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.
6
6
  *
7
7
  *
8
8
  */
9
+ import inspect from '../jsutils/inspect';
9
10
  import { Kind } from '../language/kinds';
10
11
  import { GraphQLList, GraphQLNonNull } from '../type/definition';
11
12
  export function typeFromAST(schema, typeNode) {
@@ -24,9 +25,10 @@ export function typeFromAST(schema, typeNode) {
24
25
 
25
26
  if (typeNode.kind === Kind.NAMED_TYPE) {
26
27
  return schema.getType(typeNode.name.value);
27
- }
28
+ } // Not reachable. All possible type nodes have been considered.
29
+
28
30
  /* istanbul ignore next */
29
31
 
30
32
 
31
- throw new Error("Unexpected type kind: ".concat(typeNode.kind, "."));
32
- }
33
+ throw new Error("Unexpected type node: \"".concat(inspect(typeNode), "\"."));
34
+ }
@@ -7,6 +7,8 @@ exports.valueFromAST = valueFromAST;
7
7
 
8
8
  var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
9
9
 
10
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
11
+
10
12
  var _keyMap = _interopRequireDefault(require("../jsutils/keyMap"));
11
13
 
12
14
  var _isInvalid = _interopRequireDefault(require("../jsutils/isInvalid"));
@@ -18,7 +20,7 @@ var _definition = require("../type/definition");
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  /**
21
- * Copyright (c) 2015-present, Facebook, Inc.
23
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
24
  *
23
25
  * This source code is licensed under the MIT license found in the
24
26
  * LICENSE file in the root directory of this source tree.
@@ -193,15 +195,16 @@ function valueFromAST(valueNode, type, variables) {
193
195
  }
194
196
 
195
197
  return result;
196
- }
198
+ } // Not reachable. All possible input types have been considered.
199
+
197
200
  /* istanbul ignore next */
198
201
 
199
202
 
200
- throw new Error("Unknown type: ".concat(type, "."));
203
+ throw new Error("Unexpected input type: \"".concat((0, _inspect.default)(type), "\"."));
201
204
  } // Returns true if the provided valueNode is a variable which is not defined
202
205
  // in the set of variables.
203
206
 
204
207
 
205
208
  function isMissingVariable(valueNode, variables) {
206
209
  return valueNode.kind === _kinds.Kind.VARIABLE && (!variables || (0, _isInvalid.default)(variables[valueNode.name.value]));
207
- }
210
+ }
@@ -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,19 +8,20 @@
8
8
  */
9
9
 
10
10
  import objectValues from '../polyfills/objectValues';
11
+ import inspect from '../jsutils/inspect';
11
12
  import keyMap from '../jsutils/keyMap';
12
13
  import isInvalid from '../jsutils/isInvalid';
13
- import type { ObjMap } from '../jsutils/ObjMap';
14
+ import { type ObjMap } from '../jsutils/ObjMap';
14
15
  import { Kind } from '../language/kinds';
15
16
  import {
17
+ type GraphQLInputType,
16
18
  isScalarType,
17
19
  isEnumType,
18
20
  isInputObjectType,
19
21
  isListType,
20
22
  isNonNullType,
21
23
  } from '../type/definition';
22
- import type { GraphQLInputType } from '../type/definition';
23
- import type { ValueNode } from '../language/ast';
24
+ import { type ValueNode } from '../language/ast';
24
25
 
25
26
  /**
26
27
  * Produces a JavaScript value given a GraphQL Value AST.
@@ -165,8 +166,9 @@ export function valueFromAST(
165
166
  return result;
166
167
  }
167
168
 
169
+ // Not reachable. All possible input types have been considered.
168
170
  /* istanbul ignore next */
169
- throw new Error(`Unknown type: ${(type: empty)}.`);
171
+ throw new Error(`Unexpected input type: "${inspect((type: empty))}".`);
170
172
  }
171
173
 
172
174
  // Returns true if the provided valueNode is a variable which is not defined
@@ -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,6 +7,7 @@
7
7
  *
8
8
  */
9
9
  import objectValues from '../polyfills/objectValues';
10
+ import inspect from '../jsutils/inspect';
10
11
  import keyMap from '../jsutils/keyMap';
11
12
  import isInvalid from '../jsutils/isInvalid';
12
13
  import { Kind } from '../language/kinds';
@@ -179,14 +180,15 @@ export function valueFromAST(valueNode, type, variables) {
179
180
  }
180
181
 
181
182
  return result;
182
- }
183
+ } // Not reachable. All possible input types have been considered.
184
+
183
185
  /* istanbul ignore next */
184
186
 
185
187
 
186
- throw new Error("Unknown type: ".concat(type, "."));
188
+ throw new Error("Unexpected input type: \"".concat(inspect(type), "\"."));
187
189
  } // Returns true if the provided valueNode is a variable which is not defined
188
190
  // in the set of variables.
189
191
 
190
192
  function isMissingVariable(valueNode, variables) {
191
193
  return valueNode.kind === Kind.VARIABLE && (!variables || isInvalid(variables[valueNode.name.value]));
192
- }
194
+ }