graphql 14.0.0 → 14.1.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 (285) 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.js +4 -4
  15. package/execution/execute.js.flow +4 -6
  16. package/execution/execute.mjs +5 -5
  17. package/execution/index.mjs +1 -1
  18. package/execution/values.js +4 -4
  19. package/execution/values.js.flow +3 -3
  20. package/execution/values.mjs +3 -3
  21. package/graphql.js +1 -1
  22. package/graphql.mjs +1 -1
  23. package/index.js +12 -0
  24. package/index.js.flow +4 -0
  25. package/index.mjs +4 -4
  26. package/jsutils/dedent.js +2 -2
  27. package/jsutils/dedent.js.flow +1 -1
  28. package/jsutils/dedent.mjs +2 -2
  29. package/jsutils/defineToJSON.js +17 -6
  30. package/jsutils/defineToJSON.js.flow +14 -5
  31. package/jsutils/defineToJSON.mjs +14 -6
  32. package/jsutils/defineToStringTag.js +5 -5
  33. package/jsutils/defineToStringTag.js.flow +3 -3
  34. package/jsutils/defineToStringTag.mjs +4 -4
  35. package/jsutils/inspect.js +46 -12
  36. package/jsutils/inspect.js.flow +42 -15
  37. package/jsutils/inspect.mjs +45 -5
  38. package/jsutils/instanceOf.js +1 -1
  39. package/jsutils/instanceOf.mjs +1 -1
  40. package/jsutils/invariant.js +1 -1
  41. package/jsutils/invariant.mjs +1 -1
  42. package/jsutils/isInvalid.js +1 -1
  43. package/jsutils/isInvalid.mjs +1 -1
  44. package/jsutils/isNullish.js +1 -1
  45. package/jsutils/isNullish.mjs +1 -1
  46. package/jsutils/isPromise.js +1 -1
  47. package/jsutils/isPromise.mjs +1 -1
  48. package/jsutils/keyMap.js +1 -1
  49. package/jsutils/keyMap.mjs +1 -1
  50. package/jsutils/keyValMap.js +1 -1
  51. package/jsutils/keyValMap.mjs +1 -1
  52. package/jsutils/mapValue.js +54 -0
  53. package/jsutils/mapValue.js.flow +27 -0
  54. package/jsutils/mapValue.mjs +44 -0
  55. package/jsutils/memoize3.js +1 -1
  56. package/jsutils/memoize3.mjs +1 -1
  57. package/jsutils/nodejsCustomInspectSymbol.js +18 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
  59. package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
  60. package/jsutils/orList.js +17 -4
  61. package/jsutils/orList.js.flow +13 -7
  62. package/jsutils/orList.mjs +14 -4
  63. package/jsutils/promiseForObject.js +1 -1
  64. package/jsutils/promiseForObject.mjs +1 -1
  65. package/jsutils/promiseReduce.js +1 -1
  66. package/jsutils/promiseReduce.mjs +1 -1
  67. package/jsutils/quotedOrList.js +1 -1
  68. package/jsutils/quotedOrList.mjs +1 -1
  69. package/jsutils/suggestionList.js +1 -1
  70. package/jsutils/suggestionList.mjs +1 -1
  71. package/language/blockStringValue.js +2 -2
  72. package/language/blockStringValue.js.flow +1 -1
  73. package/language/blockStringValue.mjs +2 -2
  74. package/language/directiveLocation.js +1 -1
  75. package/language/directiveLocation.mjs +1 -1
  76. package/language/index.mjs +1 -1
  77. package/language/kinds.js +1 -1
  78. package/language/kinds.mjs +1 -1
  79. package/language/lexer.js +29 -13
  80. package/language/lexer.js.flow +34 -20
  81. package/language/lexer.mjs +28 -13
  82. package/language/location.js +1 -1
  83. package/language/location.mjs +1 -1
  84. package/language/parser.js +31 -38
  85. package/language/parser.js.flow +32 -48
  86. package/language/parser.mjs +30 -38
  87. package/language/predicates.js +1 -1
  88. package/language/predicates.mjs +1 -1
  89. package/language/printer.js +13 -7
  90. package/language/printer.js.flow +19 -9
  91. package/language/printer.mjs +13 -7
  92. package/language/source.js +8 -7
  93. package/language/source.mjs +1 -9
  94. package/language/visitor.js +11 -20
  95. package/language/visitor.js.flow +4 -5
  96. package/language/visitor.mjs +8 -20
  97. package/package.json +10 -3
  98. package/polyfills/find.js +31 -0
  99. package/polyfills/find.js.flow +29 -0
  100. package/polyfills/find.mjs +23 -0
  101. package/{jsutils → polyfills}/isFinite.js +1 -1
  102. package/{jsutils → polyfills}/isFinite.js.flow +0 -0
  103. package/{jsutils → polyfills}/isFinite.mjs +1 -1
  104. package/{jsutils → polyfills}/isInteger.js +1 -1
  105. package/{jsutils → polyfills}/isInteger.js.flow +0 -0
  106. package/{jsutils → polyfills}/isInteger.mjs +1 -1
  107. package/polyfills/objectEntries.js +26 -0
  108. package/polyfills/objectEntries.js.flow +19 -0
  109. package/polyfills/objectEntries.mjs +18 -0
  110. package/{jsutils → polyfills}/objectValues.js +1 -1
  111. package/{jsutils → polyfills}/objectValues.js.flow +1 -1
  112. package/{jsutils → polyfills}/objectValues.mjs +1 -1
  113. package/subscription/asyncIteratorReject.mjs +1 -1
  114. package/subscription/index.mjs +1 -1
  115. package/subscription/mapAsyncIterator.mjs +1 -1
  116. package/subscription/subscribe.js +1 -1
  117. package/subscription/subscribe.js.flow +1 -1
  118. package/subscription/subscribe.mjs +2 -2
  119. package/type/definition.js +31 -130
  120. package/type/definition.js.flow +35 -47
  121. package/type/definition.mjs +30 -131
  122. package/type/directives.js +25 -29
  123. package/type/directives.js.flow +24 -20
  124. package/type/directives.mjs +22 -30
  125. package/type/index.js +12 -0
  126. package/type/index.js.flow +4 -0
  127. package/type/index.mjs +5 -3
  128. package/type/introspection.js +3 -3
  129. package/type/introspection.js.flow +1 -1
  130. package/type/introspection.mjs +2 -2
  131. package/type/scalars.js +45 -34
  132. package/type/scalars.js.flow +40 -26
  133. package/type/scalars.mjs +44 -26
  134. package/type/schema.js +82 -87
  135. package/type/schema.js.flow +17 -9
  136. package/type/schema.mjs +79 -86
  137. package/type/validate.js +168 -175
  138. package/type/validate.js.flow +8 -49
  139. package/type/validate.mjs +159 -175
  140. package/utilities/TypeInfo.js +10 -23
  141. package/utilities/TypeInfo.js.flow +1 -1
  142. package/utilities/TypeInfo.mjs +2 -24
  143. package/utilities/assertValidName.js +1 -1
  144. package/utilities/assertValidName.mjs +1 -1
  145. package/utilities/astFromValue.js +2 -2
  146. package/utilities/astFromValue.js.flow +1 -1
  147. package/utilities/astFromValue.mjs +2 -2
  148. package/utilities/buildASTSchema.js +169 -152
  149. package/utilities/buildASTSchema.js.flow +117 -113
  150. package/utilities/buildASTSchema.mjs +160 -152
  151. package/utilities/buildClientSchema.js +24 -14
  152. package/utilities/buildClientSchema.js.flow +24 -14
  153. package/utilities/buildClientSchema.mjs +23 -14
  154. package/utilities/coerceValue.js +38 -19
  155. package/utilities/coerceValue.js.flow +41 -47
  156. package/utilities/coerceValue.mjs +38 -20
  157. package/utilities/concatAST.js +1 -1
  158. package/utilities/concatAST.mjs +1 -1
  159. package/utilities/extendSchema.js +228 -312
  160. package/utilities/extendSchema.js.flow +27 -152
  161. package/utilities/extendSchema.mjs +229 -312
  162. package/utilities/findBreakingChanges.js +7 -5
  163. package/utilities/findBreakingChanges.js.flow +3 -2
  164. package/utilities/findBreakingChanges.mjs +6 -5
  165. package/utilities/findDeprecatedUsages.js +1 -1
  166. package/utilities/findDeprecatedUsages.mjs +1 -1
  167. package/utilities/getOperationAST.js +1 -1
  168. package/utilities/getOperationAST.mjs +1 -1
  169. package/utilities/getOperationRootType.js +1 -1
  170. package/utilities/getOperationRootType.mjs +1 -1
  171. package/utilities/index.mjs +1 -1
  172. package/utilities/introspectionFromSchema.js +1 -1
  173. package/utilities/introspectionFromSchema.mjs +1 -1
  174. package/utilities/introspectionQuery.js +1 -1
  175. package/utilities/introspectionQuery.mjs +1 -1
  176. package/utilities/isValidJSValue.js +1 -1
  177. package/utilities/isValidJSValue.mjs +1 -1
  178. package/utilities/isValidLiteralValue.js +1 -1
  179. package/utilities/isValidLiteralValue.mjs +1 -1
  180. package/utilities/lexicographicSortSchema.js +2 -2
  181. package/utilities/lexicographicSortSchema.js.flow +1 -1
  182. package/utilities/lexicographicSortSchema.mjs +2 -2
  183. package/utilities/schemaPrinter.js +3 -3
  184. package/utilities/schemaPrinter.js.flow +1 -1
  185. package/utilities/schemaPrinter.mjs +2 -2
  186. package/utilities/separateOperations.js +1 -1
  187. package/utilities/separateOperations.mjs +1 -1
  188. package/utilities/typeComparators.js +1 -1
  189. package/utilities/typeComparators.mjs +1 -1
  190. package/utilities/typeFromAST.js +1 -1
  191. package/utilities/typeFromAST.mjs +1 -1
  192. package/utilities/valueFromAST.js +3 -3
  193. package/utilities/valueFromAST.js.flow +1 -1
  194. package/utilities/valueFromAST.mjs +2 -2
  195. package/utilities/valueFromASTUntyped.js +1 -1
  196. package/utilities/valueFromASTUntyped.mjs +1 -1
  197. package/validation/ValidationContext.js +57 -82
  198. package/validation/ValidationContext.js.flow +52 -49
  199. package/validation/ValidationContext.mjs +52 -77
  200. package/validation/index.js.flow +1 -0
  201. package/validation/index.mjs +1 -1
  202. package/validation/rules/ExecutableDefinitions.js +1 -1
  203. package/validation/rules/ExecutableDefinitions.js.flow +1 -1
  204. package/validation/rules/ExecutableDefinitions.mjs +1 -1
  205. package/validation/rules/FieldsOnCorrectType.js +1 -1
  206. package/validation/rules/FieldsOnCorrectType.mjs +1 -1
  207. package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
  208. package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
  209. package/validation/rules/KnownArgumentNames.mjs +1 -1
  210. package/validation/rules/KnownDirectives.js +1 -1
  211. package/validation/rules/KnownDirectives.mjs +1 -1
  212. package/validation/rules/KnownFragmentNames.js +1 -1
  213. package/validation/rules/KnownFragmentNames.mjs +1 -1
  214. package/validation/rules/KnownTypeNames.js +59 -21
  215. package/validation/rules/KnownTypeNames.js.flow +54 -20
  216. package/validation/rules/KnownTypeNames.mjs +56 -21
  217. package/validation/rules/LoneAnonymousOperation.js +1 -1
  218. package/validation/rules/LoneAnonymousOperation.mjs +1 -1
  219. package/validation/rules/LoneSchemaDefinition.js +1 -1
  220. package/validation/rules/LoneSchemaDefinition.mjs +1 -1
  221. package/validation/rules/NoFragmentCycles.js +1 -1
  222. package/validation/rules/NoFragmentCycles.js.flow +2 -2
  223. package/validation/rules/NoFragmentCycles.mjs +1 -1
  224. package/validation/rules/NoUndefinedVariables.js +1 -1
  225. package/validation/rules/NoUndefinedVariables.mjs +1 -1
  226. package/validation/rules/NoUnusedFragments.js +1 -1
  227. package/validation/rules/NoUnusedFragments.js.flow +2 -2
  228. package/validation/rules/NoUnusedFragments.mjs +1 -1
  229. package/validation/rules/NoUnusedVariables.js +1 -1
  230. package/validation/rules/NoUnusedVariables.mjs +1 -1
  231. package/validation/rules/OverlappingFieldsCanBeMerged.js +57 -33
  232. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +5 -6
  233. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +48 -33
  234. package/validation/rules/PossibleFragmentSpreads.js +1 -1
  235. package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
  236. package/validation/rules/PossibleTypeExtensions.js +158 -0
  237. package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
  238. package/validation/rules/PossibleTypeExtensions.mjs +146 -0
  239. package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
  240. package/validation/rules/ScalarLeafs.js +1 -1
  241. package/validation/rules/ScalarLeafs.mjs +1 -1
  242. package/validation/rules/SingleFieldSubscriptions.js +1 -1
  243. package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
  244. package/validation/rules/UniqueArgumentNames.js +1 -1
  245. package/validation/rules/UniqueArgumentNames.mjs +1 -1
  246. package/validation/rules/UniqueDirectiveNames.js +55 -0
  247. package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
  248. package/validation/rules/UniqueDirectiveNames.mjs +43 -0
  249. package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
  250. package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
  251. package/validation/rules/UniqueEnumValueNames.js +94 -0
  252. package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
  253. package/validation/rules/UniqueEnumValueNames.mjs +81 -0
  254. package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
  255. package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
  256. package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
  257. package/validation/rules/UniqueFragmentNames.js +1 -1
  258. package/validation/rules/UniqueFragmentNames.mjs +1 -1
  259. package/validation/rules/UniqueInputFieldNames.js +1 -1
  260. package/validation/rules/UniqueInputFieldNames.mjs +1 -1
  261. package/validation/rules/UniqueOperationNames.js +1 -1
  262. package/validation/rules/UniqueOperationNames.mjs +1 -1
  263. package/validation/rules/UniqueOperationTypes.js +85 -0
  264. package/validation/rules/UniqueOperationTypes.js.flow +76 -0
  265. package/validation/rules/UniqueOperationTypes.mjs +73 -0
  266. package/validation/rules/UniqueTypeNames.js +62 -0
  267. package/validation/rules/UniqueTypeNames.js.flow +67 -0
  268. package/validation/rules/UniqueTypeNames.mjs +50 -0
  269. package/validation/rules/UniqueVariableNames.js +1 -1
  270. package/validation/rules/UniqueVariableNames.mjs +1 -1
  271. package/validation/rules/ValuesOfCorrectType.js +29 -13
  272. package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
  273. package/validation/rules/ValuesOfCorrectType.mjs +28 -13
  274. package/validation/rules/VariablesAreInputTypes.js +1 -1
  275. package/validation/rules/VariablesAreInputTypes.mjs +1 -1
  276. package/validation/rules/VariablesInAllowedPosition.js +4 -4
  277. package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
  278. package/validation/specifiedRules.js +14 -2
  279. package/validation/specifiedRules.js.flow +13 -0
  280. package/validation/specifiedRules.mjs +8 -2
  281. package/validation/validate.js +1 -1
  282. package/validation/validate.mjs +1 -1
  283. package/jsutils/find.js +0 -22
  284. package/jsutils/find.js.flow +0 -19
  285. package/jsutils/find.mjs +0 -15
@@ -4,16 +4,26 @@
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 invariant from './invariant';
9
10
  var MAX_LENGTH = 5;
10
11
  /**
11
12
  * Given [ A, B, C ] return 'A, B, or C'.
12
13
  */
13
14
 
14
15
  export default function orList(items) {
16
+ !(items.length !== 0) ? invariant(0) : void 0;
17
+
18
+ if (items.length === 1) {
19
+ return items[0];
20
+ }
21
+
22
+ if (items.length === 2) {
23
+ return items[0] + ' or ' + items[1];
24
+ }
25
+
15
26
  var selected = items.slice(0, MAX_LENGTH);
16
- return selected.reduce(function (list, quoted, index) {
17
- return list + (selected.length > 2 ? ', ' : ' ') + (index === selected.length - 1 ? 'or ' : '') + quoted;
18
- });
27
+ var lastItem = selected.pop();
28
+ return selected.join(', ') + ', or ' + lastItem;
19
29
  }
@@ -11,7 +11,7 @@ exports.default = promiseForObject;
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
  /**
@@ -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
  /**
@@ -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 isPromise from './isPromise';
10
10
 
@@ -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 orList from './orList';
10
10
  /**
@@ -11,7 +11,7 @@ exports.default = suggestionList;
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
  /**
@@ -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
  /**
@@ -11,12 +11,12 @@ exports.default = blockStringValue;
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
18
  * Produces the value of a block string from its parsed raw value, similar to
19
- * Coffeescript's block string, Python's docstring trim or Ruby's strip_heredoc.
19
+ * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
20
20
  *
21
21
  * This implements the GraphQL spec's BlockStringValue() static algorithm.
22
22
  */
@@ -9,7 +9,7 @@
9
9
 
10
10
  /**
11
11
  * Produces the value of a block string from its parsed raw value, similar to
12
- * Coffeescript's block string, Python's docstring trim or Ruby's strip_heredoc.
12
+ * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
13
13
  *
14
14
  * This implements the GraphQL spec's BlockStringValue() static algorithm.
15
15
  */
@@ -4,12 +4,12 @@
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
11
  * Produces the value of a block string from its parsed raw value, similar to
12
- * Coffeescript's block string, Python's docstring trim or Ruby's strip_heredoc.
12
+ * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.
13
13
  *
14
14
  * This implements the GraphQL spec's BlockStringValue() static algorithm.
15
15
  */
@@ -11,7 +11,7 @@ exports.DirectiveLocation = 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
  /**
@@ -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
  /**
@@ -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 { getLocation } from './location';
10
10
  export { Kind } from './kinds';
package/language/kinds.js CHANGED
@@ -11,7 +11,7 @@ exports.Kind = 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
  /**
@@ -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
  /**
package/language/lexer.js CHANGED
@@ -7,6 +7,8 @@ exports.createLexer = createLexer;
7
7
  exports.getTokenDesc = getTokenDesc;
8
8
  exports.TokenKind = void 0;
9
9
 
10
+ var _defineToJSON = _interopRequireDefault(require("../jsutils/defineToJSON"));
11
+
10
12
  var _error = require("../error");
11
13
 
12
14
  var _blockStringValue = _interopRequireDefault(require("./blockStringValue"));
@@ -19,7 +21,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
21
  * This source code is licensed under the MIT license found in the
20
22
  * LICENSE file in the root directory of this source tree.
21
23
  *
22
- * strict
24
+ *
23
25
  */
24
26
 
25
27
  /**
@@ -128,14 +130,14 @@ function Tok(kind, start, end, line, column, prev, value) {
128
130
  } // Print a simplified form when appearing in JSON/util.inspect.
129
131
 
130
132
 
131
- Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() {
133
+ (0, _defineToJSON.default)(Tok, function () {
132
134
  return {
133
135
  kind: this.kind,
134
136
  value: this.value,
135
137
  line: this.line,
136
138
  column: this.column
137
139
  };
138
- };
140
+ });
139
141
 
140
142
  function printCharCode(code) {
141
143
  return (// NaN/undefined represents access beyond the end of the file.
@@ -147,9 +149,9 @@ function printCharCode(code) {
147
149
  /**
148
150
  * Gets the next token from the source starting at the given position.
149
151
  *
150
- * This skips over whitespace and comments until it finds the next lexable
151
- * token, then lexes punctuators immediately or calls the appropriate helper
152
- * function for more complicated tokens.
152
+ * This skips over whitespace until it finds the next lexable token, then lexes
153
+ * punctuators immediately or calls the appropriate helper function for more
154
+ * complicated tokens.
153
155
  */
154
156
 
155
157
 
@@ -305,7 +307,7 @@ function readToken(lexer, prev) {
305
307
 
306
308
  case 34:
307
309
  if (charCodeAt.call(body, pos + 1) === 34 && charCodeAt.call(body, pos + 2) === 34) {
308
- return readBlockString(source, pos, line, col, prev);
310
+ return readBlockString(source, pos, line, col, prev, lexer);
309
311
  }
310
312
 
311
313
  return readString(source, pos, line, col, prev);
@@ -332,8 +334,7 @@ function unexpectedCharacterMessage(code) {
332
334
  }
333
335
  /**
334
336
  * Reads from body starting at startPosition until it finds a non-whitespace
335
- * or commented character, then returns the position of that character for
336
- * lexing.
337
+ * character, then returns the position of that character for lexing.
337
338
  */
338
339
 
339
340
 
@@ -561,7 +562,7 @@ function readString(source, start, line, col, prev) {
561
562
  */
562
563
 
563
564
 
564
- function readBlockString(source, start, line, col, prev) {
565
+ function readBlockString(source, start, line, col, prev, lexer) {
565
566
  var body = source.body;
566
567
  var position = start + 3;
567
568
  var chunkStart = position;
@@ -578,10 +579,25 @@ function readBlockString(source, start, line, col, prev) {
578
579
 
579
580
  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
580
581
  throw (0, _error.syntaxError)(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
581
- } // Escape Triple-Quote (\""")
582
+ }
582
583
 
584
+ if (code === 10) {
585
+ // new line
586
+ ++position;
587
+ ++lexer.line;
588
+ lexer.lineStart = position;
589
+ } else if (code === 13) {
590
+ // carriage return
591
+ if (charCodeAt.call(body, position + 1) === 10) {
592
+ position += 2;
593
+ } else {
594
+ ++position;
595
+ }
583
596
 
584
- if (code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) {
597
+ ++lexer.line;
598
+ lexer.lineStart = position;
599
+ } else if ( // Escape Triple-Quote (\""")
600
+ code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) {
585
601
  rawValue += slice.call(body, chunkStart, position) + '"""';
586
602
  position += 4;
587
603
  chunkStart = position;
@@ -593,7 +609,7 @@ function readBlockString(source, start, line, col, prev) {
593
609
  throw (0, _error.syntaxError)(source, position, 'Unterminated string.');
594
610
  }
595
611
  /**
596
- * Converts four hexidecimal chars to the integer that the
612
+ * Converts four hexadecimal chars to the integer that the
597
613
  * string represents. For example, uniCharCode('0','0','0','f')
598
614
  * will return 15, and uniCharCode('0','0','f','f') returns 255.
599
615
  *
@@ -7,6 +7,7 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ import defineToJSON from '../jsutils/defineToJSON';
10
11
  import type { Token } from './ast';
11
12
  import type { Source } from './source';
12
13
  import { syntaxError } from '../error';
@@ -162,14 +163,14 @@ function Tok(
162
163
  }
163
164
 
164
165
  // Print a simplified form when appearing in JSON/util.inspect.
165
- Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() {
166
+ defineToJSON(Tok, function() {
166
167
  return {
167
168
  kind: this.kind,
168
169
  value: this.value,
169
170
  line: this.line,
170
171
  column: this.column,
171
172
  };
172
- };
173
+ });
173
174
 
174
175
  function printCharCode(code) {
175
176
  return (
@@ -177,19 +178,19 @@ function printCharCode(code) {
177
178
  isNaN(code)
178
179
  ? TokenKind.EOF
179
180
  : // Trust JSON for ASCII.
180
- code < 0x007f
181
- ? JSON.stringify(String.fromCharCode(code))
182
- : // Otherwise print the escaped form.
183
- `"\\u${('00' + code.toString(16).toUpperCase()).slice(-4)}"`
181
+ code < 0x007f
182
+ ? JSON.stringify(String.fromCharCode(code))
183
+ : // Otherwise print the escaped form.
184
+ `"\\u${('00' + code.toString(16).toUpperCase()).slice(-4)}"`
184
185
  );
185
186
  }
186
187
 
187
188
  /**
188
189
  * Gets the next token from the source starting at the given position.
189
190
  *
190
- * This skips over whitespace and comments until it finds the next lexable
191
- * token, then lexes punctuators immediately or calls the appropriate helper
192
- * function for more complicated tokens.
191
+ * This skips over whitespace until it finds the next lexable token, then lexes
192
+ * punctuators immediately or calls the appropriate helper function for more
193
+ * complicated tokens.
193
194
  */
194
195
  function readToken(lexer: Lexer<*>, prev: Token): Token {
195
196
  const source = lexer.source;
@@ -333,7 +334,7 @@ function readToken(lexer: Lexer<*>, prev: Token): Token {
333
334
  charCodeAt.call(body, pos + 1) === 34 &&
334
335
  charCodeAt.call(body, pos + 2) === 34
335
336
  ) {
336
- return readBlockString(source, pos, line, col, prev);
337
+ return readBlockString(source, pos, line, col, prev, lexer);
337
338
  }
338
339
  return readString(source, pos, line, col, prev);
339
340
  }
@@ -362,8 +363,7 @@ function unexpectedCharacterMessage(code) {
362
363
 
363
364
  /**
364
365
  * Reads from body starting at startPosition until it finds a non-whitespace
365
- * or commented character, then returns the position of that character for
366
- * lexing.
366
+ * character, then returns the position of that character for lexing.
367
367
  */
368
368
  function positionAfterWhitespace(
369
369
  body: string,
@@ -625,7 +625,7 @@ function readString(source, start, line, col, prev): Token {
625
625
  *
626
626
  * """("?"?(\\"""|\\(?!=""")|[^"\\]))*"""
627
627
  */
628
- function readBlockString(source, start, line, col, prev): Token {
628
+ function readBlockString(source, start, line, col, prev, lexer): Token {
629
629
  const body = source.body;
630
630
  let position = start + 3;
631
631
  let chunkStart = position;
@@ -668,8 +668,22 @@ function readBlockString(source, start, line, col, prev): Token {
668
668
  );
669
669
  }
670
670
 
671
- // Escape Triple-Quote (\""")
672
- if (
671
+ if (code === 10) {
672
+ // new line
673
+ ++position;
674
+ ++lexer.line;
675
+ lexer.lineStart = position;
676
+ } else if (code === 13) {
677
+ // carriage return
678
+ if (charCodeAt.call(body, position + 1) === 10) {
679
+ position += 2;
680
+ } else {
681
+ ++position;
682
+ }
683
+ ++lexer.line;
684
+ lexer.lineStart = position;
685
+ } else if (
686
+ // Escape Triple-Quote (\""")
673
687
  code === 92 &&
674
688
  charCodeAt.call(body, position + 1) === 34 &&
675
689
  charCodeAt.call(body, position + 2) === 34 &&
@@ -687,7 +701,7 @@ function readBlockString(source, start, line, col, prev): Token {
687
701
  }
688
702
 
689
703
  /**
690
- * Converts four hexidecimal chars to the integer that the
704
+ * Converts four hexadecimal chars to the integer that the
691
705
  * string represents. For example, uniCharCode('0','0','0','f')
692
706
  * will return 15, and uniCharCode('0','0','f','f') returns 255.
693
707
  *
@@ -714,10 +728,10 @@ function char2hex(a) {
714
728
  return a >= 48 && a <= 57
715
729
  ? a - 48 // 0-9
716
730
  : a >= 65 && a <= 70
717
- ? a - 55 // A-F
718
- : a >= 97 && a <= 102
719
- ? a - 87 // a-f
720
- : -1;
731
+ ? a - 55 // A-F
732
+ : a >= 97 && a <= 102
733
+ ? a - 87 // a-f
734
+ : -1;
721
735
  }
722
736
 
723
737
  /**
@@ -4,8 +4,9 @@
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 defineToJSON from '../jsutils/defineToJSON';
9
10
  import { syntaxError } from '../error';
10
11
  import blockStringValue from './blockStringValue';
11
12
  /**
@@ -112,14 +113,14 @@ function Tok(kind, start, end, line, column, prev, value) {
112
113
  } // Print a simplified form when appearing in JSON/util.inspect.
113
114
 
114
115
 
115
- Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() {
116
+ defineToJSON(Tok, function () {
116
117
  return {
117
118
  kind: this.kind,
118
119
  value: this.value,
119
120
  line: this.line,
120
121
  column: this.column
121
122
  };
122
- };
123
+ });
123
124
 
124
125
  function printCharCode(code) {
125
126
  return (// NaN/undefined represents access beyond the end of the file.
@@ -131,9 +132,9 @@ function printCharCode(code) {
131
132
  /**
132
133
  * Gets the next token from the source starting at the given position.
133
134
  *
134
- * This skips over whitespace and comments until it finds the next lexable
135
- * token, then lexes punctuators immediately or calls the appropriate helper
136
- * function for more complicated tokens.
135
+ * This skips over whitespace until it finds the next lexable token, then lexes
136
+ * punctuators immediately or calls the appropriate helper function for more
137
+ * complicated tokens.
137
138
  */
138
139
 
139
140
 
@@ -289,7 +290,7 @@ function readToken(lexer, prev) {
289
290
 
290
291
  case 34:
291
292
  if (charCodeAt.call(body, pos + 1) === 34 && charCodeAt.call(body, pos + 2) === 34) {
292
- return readBlockString(source, pos, line, col, prev);
293
+ return readBlockString(source, pos, line, col, prev, lexer);
293
294
  }
294
295
 
295
296
  return readString(source, pos, line, col, prev);
@@ -316,8 +317,7 @@ function unexpectedCharacterMessage(code) {
316
317
  }
317
318
  /**
318
319
  * Reads from body starting at startPosition until it finds a non-whitespace
319
- * or commented character, then returns the position of that character for
320
- * lexing.
320
+ * character, then returns the position of that character for lexing.
321
321
  */
322
322
 
323
323
 
@@ -545,7 +545,7 @@ function readString(source, start, line, col, prev) {
545
545
  */
546
546
 
547
547
 
548
- function readBlockString(source, start, line, col, prev) {
548
+ function readBlockString(source, start, line, col, prev, lexer) {
549
549
  var body = source.body;
550
550
  var position = start + 3;
551
551
  var chunkStart = position;
@@ -562,10 +562,25 @@ function readBlockString(source, start, line, col, prev) {
562
562
 
563
563
  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {
564
564
  throw syntaxError(source, position, "Invalid character within String: ".concat(printCharCode(code), "."));
565
- } // Escape Triple-Quote (\""")
565
+ }
566
566
 
567
+ if (code === 10) {
568
+ // new line
569
+ ++position;
570
+ ++lexer.line;
571
+ lexer.lineStart = position;
572
+ } else if (code === 13) {
573
+ // carriage return
574
+ if (charCodeAt.call(body, position + 1) === 10) {
575
+ position += 2;
576
+ } else {
577
+ ++position;
578
+ }
567
579
 
568
- if (code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) {
580
+ ++lexer.line;
581
+ lexer.lineStart = position;
582
+ } else if ( // Escape Triple-Quote (\""")
583
+ code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) {
569
584
  rawValue += slice.call(body, chunkStart, position) + '"""';
570
585
  position += 4;
571
586
  chunkStart = position;
@@ -577,7 +592,7 @@ function readBlockString(source, start, line, col, prev) {
577
592
  throw syntaxError(source, position, 'Unterminated string.');
578
593
  }
579
594
  /**
580
- * Converts four hexidecimal chars to the integer that the
595
+ * Converts four hexadecimal chars to the integer that the
581
596
  * string represents. For example, uniCharCode('0','0','0','f')
582
597
  * will return 15, and uniCharCode('0','0','f','f') returns 255.
583
598
  *
@@ -11,7 +11,7 @@ exports.getLocation = getLocation;
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
  /**
@@ -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
  /**