graphql 15.3.0 → 15.5.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 (337) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +10 -0
  3. package/error/GraphQLError.js +8 -8
  4. package/error/GraphQLError.js.flow +2 -3
  5. package/error/GraphQLError.mjs +2 -2
  6. package/error/formatError.js +1 -1
  7. package/error/formatError.js.flow +0 -1
  8. package/error/index.js +4 -4
  9. package/error/index.js.flow +0 -1
  10. package/error/locatedError.d.ts +2 -2
  11. package/error/locatedError.js +10 -5
  12. package/error/locatedError.js.flow +10 -4
  13. package/error/locatedError.mjs +6 -4
  14. package/error/syntaxError.js +1 -1
  15. package/error/syntaxError.js.flow +0 -1
  16. package/execution/execute.d.ts +0 -15
  17. package/execution/execute.js +104 -104
  18. package/execution/execute.js.flow +119 -133
  19. package/execution/execute.mjs +86 -82
  20. package/execution/index.js +3 -3
  21. package/execution/index.js.flow +0 -1
  22. package/execution/values.js +11 -11
  23. package/execution/values.js.flow +0 -1
  24. package/graphql.js +5 -5
  25. package/graphql.js.flow +0 -1
  26. package/index.d.ts +1 -0
  27. package/index.js +9 -9
  28. package/index.js.flow +0 -1
  29. package/jsutils/ObjMap.js.flow +0 -1
  30. package/jsutils/Path.js.flow +0 -1
  31. package/jsutils/PromiseOrValue.js.flow +0 -1
  32. package/jsutils/defineInspect.js +2 -2
  33. package/jsutils/defineInspect.js.flow +0 -1
  34. package/jsutils/devAssert.js.flow +0 -1
  35. package/jsutils/didYouMean.js.flow +0 -1
  36. package/jsutils/identityFunc.js.flow +0 -1
  37. package/jsutils/inspect.js +1 -2
  38. package/jsutils/inspect.js.flow +10 -8
  39. package/jsutils/inspect.mjs +1 -1
  40. package/jsutils/instanceOf.js +15 -9
  41. package/jsutils/instanceOf.js.flow +13 -7
  42. package/jsutils/instanceOf.mjs +13 -5
  43. package/jsutils/invariant.js.flow +0 -1
  44. package/jsutils/isAsyncIterable.js +13 -0
  45. package/jsutils/isAsyncIterable.js.flow +14 -0
  46. package/jsutils/isAsyncIterable.mjs +10 -0
  47. package/jsutils/isObjectLike.js.flow +0 -1
  48. package/jsutils/isPromise.js.flow +0 -1
  49. package/jsutils/keyMap.js.flow +0 -1
  50. package/jsutils/keyValMap.js.flow +0 -1
  51. package/jsutils/mapValue.js +1 -1
  52. package/jsutils/mapValue.js.flow +0 -1
  53. package/jsutils/memoize3.js +2 -5
  54. package/jsutils/memoize3.js.flow +2 -5
  55. package/jsutils/memoize3.mjs +2 -5
  56. package/jsutils/naturalCompare.js +69 -0
  57. package/jsutils/naturalCompare.js.flow +59 -0
  58. package/jsutils/naturalCompare.mjs +61 -0
  59. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  60. package/jsutils/printPathArray.js.flow +0 -1
  61. package/jsutils/promiseForObject.js.flow +0 -1
  62. package/jsutils/promiseReduce.js +1 -1
  63. package/jsutils/promiseReduce.js.flow +0 -1
  64. package/jsutils/safeArrayFrom.js +73 -0
  65. package/jsutils/safeArrayFrom.js.flow +59 -0
  66. package/jsutils/safeArrayFrom.mjs +66 -0
  67. package/jsutils/suggestionList.js +5 -1
  68. package/jsutils/suggestionList.js.flow +3 -2
  69. package/jsutils/suggestionList.mjs +3 -1
  70. package/jsutils/toObjMap.js +1 -1
  71. package/jsutils/toObjMap.js.flow +0 -1
  72. package/language/ast.js +1 -1
  73. package/language/ast.js.flow +0 -1
  74. package/language/blockString.d.ts +1 -1
  75. package/language/blockString.js +53 -32
  76. package/language/blockString.js.flow +51 -36
  77. package/language/blockString.mjs +54 -33
  78. package/language/directiveLocation.js.flow +0 -1
  79. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  80. package/language/experimentalOnlineParser/grammar.js +987 -0
  81. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  82. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  83. package/language/experimentalOnlineParser/index.d.ts +6 -0
  84. package/language/experimentalOnlineParser/index.js +31 -0
  85. package/language/experimentalOnlineParser/index.js.flow +7 -0
  86. package/language/experimentalOnlineParser/index.mjs +1 -0
  87. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  88. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  89. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  90. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  91. package/language/index.js +12 -12
  92. package/language/index.js.flow +0 -1
  93. package/language/kinds.js.flow +0 -1
  94. package/language/lexer.js +242 -183
  95. package/language/lexer.js.flow +188 -184
  96. package/language/lexer.mjs +238 -179
  97. package/language/location.js.flow +0 -1
  98. package/language/parser.js +73 -68
  99. package/language/parser.js.flow +62 -57
  100. package/language/parser.mjs +64 -60
  101. package/language/predicates.js +1 -1
  102. package/language/predicates.js.flow +0 -1
  103. package/language/printLocation.js +1 -1
  104. package/language/printLocation.js.flow +0 -1
  105. package/language/printer.js +20 -13
  106. package/language/printer.js.flow +26 -25
  107. package/language/printer.mjs +18 -11
  108. package/language/source.d.ts +7 -0
  109. package/language/source.js +20 -3
  110. package/language/source.js.flow +21 -3
  111. package/language/source.mjs +14 -1
  112. package/language/tokenKind.js.flow +0 -1
  113. package/language/visitor.js +2 -2
  114. package/language/visitor.js.flow +0 -1
  115. package/package.json +2 -3
  116. package/polyfills/arrayFrom.js +2 -2
  117. package/polyfills/arrayFrom.js.flow +1 -2
  118. package/polyfills/arrayFrom.mjs +1 -1
  119. package/polyfills/find.js +1 -1
  120. package/polyfills/find.js.flow +1 -2
  121. package/polyfills/find.mjs +1 -1
  122. package/polyfills/isFinite.js +1 -1
  123. package/polyfills/isFinite.js.flow +1 -2
  124. package/polyfills/isFinite.mjs +1 -1
  125. package/polyfills/isInteger.js +1 -1
  126. package/polyfills/isInteger.js.flow +1 -2
  127. package/polyfills/isInteger.mjs +1 -1
  128. package/polyfills/objectEntries.js +1 -1
  129. package/polyfills/objectEntries.js.flow +1 -2
  130. package/polyfills/objectEntries.mjs +1 -1
  131. package/polyfills/objectValues.js +1 -1
  132. package/polyfills/objectValues.js.flow +1 -2
  133. package/polyfills/objectValues.mjs +1 -1
  134. package/polyfills/symbols.js +3 -5
  135. package/polyfills/symbols.js.flow +9 -6
  136. package/polyfills/symbols.mjs +3 -5
  137. package/subscription/index.js +1 -1
  138. package/subscription/index.js.flow +0 -1
  139. package/subscription/mapAsyncIterator.js +2 -2
  140. package/subscription/mapAsyncIterator.js.flow +8 -9
  141. package/subscription/mapAsyncIterator.mjs +1 -1
  142. package/subscription/subscribe.js +61 -73
  143. package/subscription/subscribe.js.flow +71 -85
  144. package/subscription/subscribe.mjs +53 -65
  145. package/type/definition.d.ts +16 -6
  146. package/type/definition.js +37 -32
  147. package/type/definition.js.flow +93 -63
  148. package/type/definition.mjs +19 -14
  149. package/type/directives.js +17 -16
  150. package/type/directives.js.flow +20 -13
  151. package/type/directives.mjs +6 -5
  152. package/type/index.js +6 -6
  153. package/type/index.js.flow +0 -1
  154. package/type/introspection.js +86 -65
  155. package/type/introspection.js.flow +75 -43
  156. package/type/introspection.mjs +79 -58
  157. package/type/scalars.js +9 -9
  158. package/type/scalars.js.flow +1 -2
  159. package/type/scalars.mjs +1 -1
  160. package/type/schema.js +13 -13
  161. package/type/schema.js.flow +2 -3
  162. package/type/schema.mjs +1 -1
  163. package/type/validate.js +52 -19
  164. package/type/validate.js.flow +54 -8
  165. package/type/validate.mjs +43 -9
  166. package/utilities/TypeInfo.js +7 -7
  167. package/utilities/TypeInfo.js.flow +1 -2
  168. package/utilities/assertValidName.js +2 -2
  169. package/utilities/assertValidName.js.flow +0 -1
  170. package/utilities/astFromValue.js +14 -16
  171. package/utilities/astFromValue.js.flow +6 -7
  172. package/utilities/astFromValue.mjs +6 -7
  173. package/utilities/buildASTSchema.js +17 -27
  174. package/utilities/buildASTSchema.js.flow +5 -21
  175. package/utilities/buildASTSchema.mjs +11 -21
  176. package/utilities/buildClientSchema.js +16 -15
  177. package/utilities/buildClientSchema.js.flow +28 -12
  178. package/utilities/buildClientSchema.mjs +5 -4
  179. package/utilities/coerceInputValue.js +17 -18
  180. package/utilities/coerceInputValue.js.flow +12 -10
  181. package/utilities/coerceInputValue.mjs +7 -7
  182. package/utilities/concatAST.js +9 -8
  183. package/utilities/concatAST.js.flow +8 -8
  184. package/utilities/concatAST.mjs +9 -6
  185. package/utilities/extendSchema.js +26 -19
  186. package/utilities/extendSchema.js.flow +19 -7
  187. package/utilities/extendSchema.mjs +8 -1
  188. package/utilities/findBreakingChanges.js +15 -11
  189. package/utilities/findBreakingChanges.js.flow +6 -3
  190. package/utilities/findBreakingChanges.mjs +5 -2
  191. package/utilities/findDeprecatedUsages.js +2 -2
  192. package/utilities/findDeprecatedUsages.js.flow +0 -1
  193. package/utilities/getIntrospectionQuery.d.ts +6 -0
  194. package/utilities/getIntrospectionQuery.js +8 -2
  195. package/utilities/getIntrospectionQuery.js.flow +17 -5
  196. package/utilities/getIntrospectionQuery.mjs +8 -2
  197. package/utilities/getOperationAST.js +1 -1
  198. package/utilities/getOperationAST.js.flow +0 -1
  199. package/utilities/getOperationRootType.js +1 -1
  200. package/utilities/getOperationRootType.js.flow +0 -1
  201. package/utilities/index.d.ts +3 -0
  202. package/utilities/index.js +22 -22
  203. package/utilities/index.js.flow +0 -1
  204. package/utilities/introspectionFromSchema.js +7 -5
  205. package/utilities/introspectionFromSchema.js.flow +2 -1
  206. package/utilities/introspectionFromSchema.mjs +3 -1
  207. package/utilities/lexicographicSortSchema.js +13 -9
  208. package/utilities/lexicographicSortSchema.js.flow +21 -13
  209. package/utilities/lexicographicSortSchema.mjs +5 -2
  210. package/utilities/printSchema.js +15 -16
  211. package/utilities/printSchema.js.flow +23 -16
  212. package/utilities/printSchema.mjs +5 -6
  213. package/utilities/separateOperations.js +46 -42
  214. package/utilities/separateOperations.js.flow +46 -37
  215. package/utilities/separateOperations.mjs +44 -40
  216. package/utilities/stripIgnoredCharacters.js +6 -16
  217. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  218. package/utilities/stripIgnoredCharacters.mjs +3 -10
  219. package/utilities/typeComparators.js +1 -1
  220. package/utilities/typeComparators.js.flow +0 -1
  221. package/utilities/typeFromAST.js +6 -6
  222. package/utilities/typeFromAST.js.flow +2 -3
  223. package/utilities/typeFromAST.mjs +2 -2
  224. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  225. package/utilities/valueFromAST.js +6 -6
  226. package/utilities/valueFromAST.js.flow +4 -2
  227. package/utilities/valueFromASTUntyped.js +4 -4
  228. package/utilities/valueFromASTUntyped.js.flow +0 -1
  229. package/validation/ValidationContext.js +3 -3
  230. package/validation/ValidationContext.js.flow +3 -4
  231. package/validation/index.js +38 -38
  232. package/validation/index.js.flow +0 -1
  233. package/validation/rules/ExecutableDefinitions.js +1 -1
  234. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  235. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  236. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  237. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  238. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  239. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  240. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  242. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  243. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  244. package/validation/rules/KnownDirectivesRule.js +6 -6
  245. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  246. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  247. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  248. package/validation/rules/KnownTypeNamesRule.js +6 -6
  249. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  250. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  252. package/validation/rules/LoneSchemaDefinition.js +1 -1
  253. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  254. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  256. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  257. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  258. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  259. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  260. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  262. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  263. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  264. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  267. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  268. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  269. package/validation/rules/PossibleTypeExtensions.js +1 -1
  270. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  271. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  272. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  273. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  275. package/validation/rules/ScalarLeafsRule.js +3 -3
  276. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  277. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  279. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  281. package/validation/rules/UniqueDirectiveNames.js +1 -1
  282. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  283. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  284. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  285. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  286. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  288. package/validation/rules/UniqueEnumValueNames.js +1 -1
  289. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  290. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  291. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  292. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  293. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  294. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  297. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  299. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  301. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  302. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  303. package/validation/rules/UniqueOperationTypes.js +1 -1
  304. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  305. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  306. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  307. package/validation/rules/UniqueTypeNames.js +1 -1
  308. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  309. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  310. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  311. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  312. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  314. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  315. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  316. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  317. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  318. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  319. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  320. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  322. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  323. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  325. package/validation/specifiedRules.js +33 -33
  326. package/validation/specifiedRules.js.flow +0 -1
  327. package/validation/validate.js +7 -7
  328. package/validation/validate.js.flow +4 -5
  329. package/version.js +3 -3
  330. package/version.js.flow +3 -4
  331. package/version.mjs +3 -3
  332. package/jsutils/isCollection.js +0 -47
  333. package/jsutils/isCollection.js.flow +0 -39
  334. package/jsutils/isCollection.mjs +0 -40
  335. package/polyfills/flatMap.js +0 -30
  336. package/polyfills/flatMap.js.flow +0 -28
  337. package/polyfills/flatMap.mjs +0 -23
@@ -0,0 +1,987 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var grammar = {
8
+ Name: {
9
+ token: 'Name'
10
+ },
11
+ String: {
12
+ token: 'String'
13
+ },
14
+ BlockString: {
15
+ token: 'BlockString'
16
+ },
17
+ Document: {
18
+ listOfType: 'Definition'
19
+ },
20
+ Definition: {
21
+ peek: [{
22
+ ifCondition: {
23
+ token: 'Name',
24
+ oneOf: ['query', 'mutation', 'subscription']
25
+ },
26
+ expect: 'OperationDefinition'
27
+ }, {
28
+ ifCondition: {
29
+ token: 'Name',
30
+ ofValue: 'fragment'
31
+ },
32
+ expect: 'FragmentDefinition'
33
+ }, {
34
+ ifCondition: {
35
+ token: 'Name',
36
+ oneOf: ['schema', 'scalar', 'type', 'interface', 'union', 'enum', 'input', 'directive']
37
+ },
38
+ expect: 'TypeSystemDefinition'
39
+ }, {
40
+ ifCondition: {
41
+ token: 'Name',
42
+ ofValue: 'extend'
43
+ },
44
+ expect: 'TypeSystemExtension'
45
+ }, {
46
+ ifCondition: {
47
+ token: '{'
48
+ },
49
+ expect: 'OperationDefinition'
50
+ }, {
51
+ ifCondition: 'String',
52
+ expect: 'TypeSystemDefinition'
53
+ }, {
54
+ ifCondition: 'BlockString',
55
+ expect: 'TypeSystemDefinition'
56
+ }]
57
+ },
58
+ OperationDefinition: {
59
+ peek: [{
60
+ ifCondition: {
61
+ token: '{'
62
+ },
63
+ expect: 'SelectionSet'
64
+ }, {
65
+ ifCondition: {
66
+ token: 'Name',
67
+ oneOf: ['query', 'mutation', 'subscription']
68
+ },
69
+ expect: ['OperationType', {
70
+ token: 'Name',
71
+ optional: true,
72
+ tokenName: 'OperationName',
73
+ definitionName: true
74
+ }, {
75
+ ofType: 'VariableDefinitions',
76
+ optional: true
77
+ }, {
78
+ ofType: 'Directives',
79
+ optional: true
80
+ }, 'SelectionSet']
81
+ }]
82
+ },
83
+ OperationType: {
84
+ ofType: 'OperationTypeName'
85
+ },
86
+ OperationTypeName: {
87
+ token: 'Name',
88
+ oneOf: ['query', 'mutation', 'subscription'],
89
+ definitionName: true
90
+ },
91
+ SelectionSet: [{
92
+ token: '{'
93
+ }, {
94
+ listOfType: 'Selection'
95
+ }, {
96
+ token: '}'
97
+ }],
98
+ Selection: {
99
+ peek: [{
100
+ ifCondition: {
101
+ token: '...'
102
+ },
103
+ expect: 'Fragment'
104
+ }, {
105
+ ifCondition: {
106
+ token: 'Name'
107
+ },
108
+ expect: 'Field'
109
+ }]
110
+ },
111
+ Field: [{
112
+ ofType: 'Alias',
113
+ optional: true,
114
+ eatNextOnFail: true,
115
+ definitionName: true
116
+ }, {
117
+ token: 'Name',
118
+ tokenName: 'FieldName',
119
+ definitionName: true
120
+ }, {
121
+ ofType: 'Arguments',
122
+ optional: true
123
+ }, {
124
+ ofType: 'Directives',
125
+ optional: true
126
+ }, {
127
+ ofType: 'SelectionSet',
128
+ optional: true
129
+ }],
130
+ Arguments: [{
131
+ token: '('
132
+ }, {
133
+ listOfType: 'Argument'
134
+ }, {
135
+ token: ')'
136
+ }],
137
+ Argument: [{
138
+ token: 'Name',
139
+ tokenName: 'ArgumentName',
140
+ definitionName: true
141
+ }, {
142
+ token: ':'
143
+ }, 'Value'],
144
+ Alias: [{
145
+ token: 'Name',
146
+ tokenName: 'AliasName',
147
+ definitionName: true
148
+ }, {
149
+ token: ':'
150
+ }],
151
+ Fragment: [{
152
+ token: '...'
153
+ }, {
154
+ peek: [{
155
+ ifCondition: 'FragmentName',
156
+ expect: 'FragmentSpread'
157
+ }, {
158
+ ifCondition: {
159
+ token: 'Name',
160
+ ofValue: 'on'
161
+ },
162
+ expect: 'InlineFragment'
163
+ }, {
164
+ ifCondition: {
165
+ token: '@'
166
+ },
167
+ expect: 'InlineFragment'
168
+ }, {
169
+ ifCondition: {
170
+ token: '{'
171
+ },
172
+ expect: 'InlineFragment'
173
+ }]
174
+ }],
175
+ FragmentSpread: ['FragmentName', {
176
+ ofType: 'Directives',
177
+ optional: true
178
+ }],
179
+ FragmentDefinition: [{
180
+ token: 'Name',
181
+ ofValue: 'fragment',
182
+ tokenName: 'FragmentDefinitionKeyword'
183
+ }, 'FragmentName', 'TypeCondition', {
184
+ ofType: 'Directives',
185
+ optional: true
186
+ }, 'SelectionSet'],
187
+ FragmentName: {
188
+ token: 'Name',
189
+ butNot: {
190
+ token: 'Name',
191
+ ofValue: 'on'
192
+ },
193
+ definitionName: true
194
+ },
195
+ TypeCondition: [{
196
+ token: 'Name',
197
+ ofValue: 'on',
198
+ tokenName: 'OnKeyword'
199
+ }, 'TypeName'],
200
+ InlineFragment: [{
201
+ ofType: 'TypeCondition',
202
+ optional: true
203
+ }, {
204
+ ofType: 'Directives',
205
+ optional: true
206
+ }, 'SelectionSet'],
207
+ Value: {
208
+ peek: [{
209
+ ifCondition: {
210
+ token: '$'
211
+ },
212
+ expect: 'Variable'
213
+ }, {
214
+ ifCondition: 'IntValue',
215
+ expect: {
216
+ ofType: 'IntValue',
217
+ tokenName: 'NumberValue'
218
+ }
219
+ }, {
220
+ ifCondition: 'FloatValue',
221
+ expect: {
222
+ ofType: 'FloatValue',
223
+ tokenName: 'NumberValue'
224
+ }
225
+ }, {
226
+ ifCondition: 'BooleanValue',
227
+ expect: {
228
+ ofType: 'BooleanValue',
229
+ tokenName: 'BooleanValue'
230
+ }
231
+ }, {
232
+ ifCondition: 'EnumValue',
233
+ expect: {
234
+ ofType: 'EnumValue',
235
+ tokenName: 'EnumValue'
236
+ }
237
+ }, {
238
+ ifCondition: 'String',
239
+ expect: {
240
+ ofType: 'String',
241
+ tokenName: 'StringValue'
242
+ }
243
+ }, {
244
+ ifCondition: 'BlockString',
245
+ expect: {
246
+ ofType: 'BlockString',
247
+ tokenName: 'StringValue'
248
+ }
249
+ }, {
250
+ ifCondition: 'NullValue',
251
+ expect: {
252
+ ofType: 'NullValue',
253
+ tokenName: 'NullValue'
254
+ }
255
+ }, {
256
+ ifCondition: {
257
+ token: '['
258
+ },
259
+ expect: 'ListValue'
260
+ }, {
261
+ ifCondition: {
262
+ token: '{'
263
+ },
264
+ expect: 'ObjectValue'
265
+ }]
266
+ },
267
+ ConstValue: {
268
+ peek: [{
269
+ ifCondition: 'IntValue',
270
+ expect: {
271
+ ofType: 'IntValue'
272
+ }
273
+ }, {
274
+ ifCondition: 'FloatValue',
275
+ expect: {
276
+ ofType: 'FloatValue'
277
+ }
278
+ }, {
279
+ ifCondition: 'BooleanValue',
280
+ expect: 'BooleanValue'
281
+ }, {
282
+ ifCondition: 'EnumValue',
283
+ expect: 'EnumValue'
284
+ }, {
285
+ ifCondition: 'String',
286
+ expect: {
287
+ ofType: 'String',
288
+ tokenName: 'StringValue'
289
+ }
290
+ }, {
291
+ ifCondition: 'BlockString',
292
+ expect: {
293
+ token: 'BlockString',
294
+ tokenName: 'StringValue'
295
+ }
296
+ }, {
297
+ ifCondition: 'NullValue',
298
+ expect: 'NullValue'
299
+ }, {
300
+ ifCondition: {
301
+ token: '['
302
+ },
303
+ expect: 'ConstListValue'
304
+ }, {
305
+ ifCondition: {
306
+ token: '{'
307
+ },
308
+ expect: 'ObjectValue'
309
+ }]
310
+ },
311
+ IntValue: {
312
+ token: 'Int'
313
+ },
314
+ FloatValue: {
315
+ token: 'Float'
316
+ },
317
+ StringValue: {
318
+ peek: [{
319
+ ifCondition: {
320
+ token: 'String'
321
+ },
322
+ expect: {
323
+ token: 'String',
324
+ tokenName: 'StringValue'
325
+ }
326
+ }, {
327
+ ifCondition: {
328
+ token: 'BlockString'
329
+ },
330
+ expect: {
331
+ token: 'BlockString',
332
+ tokenName: 'StringValue'
333
+ }
334
+ }]
335
+ },
336
+ BooleanValue: {
337
+ token: 'Name',
338
+ oneOf: ['true', 'false'],
339
+ tokenName: 'BooleanValue'
340
+ },
341
+ NullValue: {
342
+ token: 'Name',
343
+ ofValue: 'null',
344
+ tokenName: 'NullValue'
345
+ },
346
+ EnumValue: {
347
+ token: 'Name',
348
+ butNot: {
349
+ token: 'Name',
350
+ oneOf: ['null', 'true', 'false']
351
+ },
352
+ tokenName: 'EnumValue'
353
+ },
354
+ ListValue: [{
355
+ token: '['
356
+ }, {
357
+ listOfType: 'Value',
358
+ optional: true
359
+ }, {
360
+ token: ']'
361
+ }],
362
+ ConstListValue: [{
363
+ token: '['
364
+ }, {
365
+ listOfType: 'ConstValue',
366
+ optional: true
367
+ }, {
368
+ token: ']'
369
+ }],
370
+ ObjectValue: [{
371
+ token: '{'
372
+ }, {
373
+ listOfType: 'ObjectField',
374
+ optional: true
375
+ }, {
376
+ token: '}'
377
+ }],
378
+ ObjectField: [{
379
+ token: 'Name',
380
+ tokenName: 'ObjectFieldName'
381
+ }, {
382
+ token: ':'
383
+ }, {
384
+ ofType: 'ConstValue'
385
+ }],
386
+ Variable: [{
387
+ token: '$',
388
+ tokenName: 'VariableName'
389
+ }, {
390
+ token: 'Name',
391
+ tokenName: 'VariableName'
392
+ }],
393
+ VariableDefinitions: [{
394
+ token: '('
395
+ }, {
396
+ listOfType: 'VariableDefinition'
397
+ }, {
398
+ token: ')'
399
+ }],
400
+ VariableDefinition: ['Variable', {
401
+ token: ':'
402
+ }, 'Type', {
403
+ ofType: 'DefaultValue',
404
+ optional: true
405
+ }],
406
+ DefaultValue: [{
407
+ token: '='
408
+ }, 'ConstValue'],
409
+ TypeName: {
410
+ token: 'Name',
411
+ tokenName: 'TypeName',
412
+ typeName: true
413
+ },
414
+ Type: {
415
+ peek: [{
416
+ ifCondition: {
417
+ token: 'Name'
418
+ },
419
+ expect: ['TypeName', {
420
+ token: '!',
421
+ optional: true
422
+ }]
423
+ }, {
424
+ ifCondition: {
425
+ token: '['
426
+ },
427
+ expect: 'ListType'
428
+ }]
429
+ },
430
+ ListType: [{
431
+ token: '['
432
+ }, {
433
+ listOfType: 'Type'
434
+ }, {
435
+ token: ']'
436
+ }, {
437
+ token: '!',
438
+ optional: true
439
+ }],
440
+ Directives: {
441
+ listOfType: 'Directive'
442
+ },
443
+ Directive: [{
444
+ token: '@',
445
+ tokenName: 'DirectiveName'
446
+ }, {
447
+ token: 'Name',
448
+ tokenName: 'DirectiveName'
449
+ }, {
450
+ ofType: 'Arguments',
451
+ optional: true
452
+ }],
453
+ TypeSystemDefinition: [{
454
+ ofType: 'Description',
455
+ optional: true
456
+ }, {
457
+ peek: [{
458
+ ifCondition: {
459
+ target: 'Name',
460
+ ofValue: 'schema'
461
+ },
462
+ expect: 'SchemaDefinition'
463
+ }, {
464
+ ifCondition: {
465
+ target: 'Name',
466
+ ofValue: 'scalar'
467
+ },
468
+ expect: 'ScalarTypeDefinition'
469
+ }, {
470
+ ifCondition: {
471
+ target: 'Name',
472
+ ofValue: 'type'
473
+ },
474
+ expect: 'ObjectTypeDefinition'
475
+ }, {
476
+ ifCondition: {
477
+ target: 'Name',
478
+ ofValue: 'interface'
479
+ },
480
+ expect: 'InterfaceTypeDefinition'
481
+ }, {
482
+ ifCondition: {
483
+ target: 'Name',
484
+ ofValue: 'union'
485
+ },
486
+ expect: 'UnionTypeDefinition'
487
+ }, {
488
+ ifCondition: {
489
+ target: 'Name',
490
+ ofValue: 'enum'
491
+ },
492
+ expect: 'EnumTypeDefinition'
493
+ }, {
494
+ ifCondition: {
495
+ target: 'Name',
496
+ ofValue: 'input'
497
+ },
498
+ expect: 'InputObjectTypeDefinition'
499
+ }, {
500
+ ifCondition: {
501
+ target: 'Name',
502
+ ofValue: 'directive'
503
+ },
504
+ expect: 'DirectiveDefinition'
505
+ }]
506
+ }],
507
+ TypeSystemExtension: {
508
+ peek: [{
509
+ ifCondition: {
510
+ target: 'Name',
511
+ ofValue: 'schema'
512
+ },
513
+ expect: 'SchemaExtension'
514
+ }, {
515
+ ifCondition: {
516
+ target: 'Name',
517
+ ofValue: 'scalar'
518
+ },
519
+ expect: 'ScalarTypeExtension'
520
+ }, {
521
+ ifCondition: {
522
+ target: 'Name',
523
+ ofValue: 'type'
524
+ },
525
+ expect: 'ObjectTypeExtension'
526
+ }, {
527
+ ifCondition: {
528
+ target: 'Name',
529
+ ofValue: 'interface'
530
+ },
531
+ expect: 'InterfaceTypeExtension'
532
+ }, {
533
+ ifCondition: {
534
+ target: 'Name',
535
+ ofValue: 'union'
536
+ },
537
+ expect: 'UnionTypeExtension'
538
+ }, {
539
+ ifCondition: {
540
+ target: 'Name',
541
+ ofValue: 'enum'
542
+ },
543
+ expect: 'EnumTypeExtension'
544
+ }, {
545
+ ifCondition: {
546
+ target: 'Name',
547
+ ofValue: 'input'
548
+ },
549
+ expect: 'InputObjectTypeExtension'
550
+ }]
551
+ },
552
+ SchemaDefinition: [{
553
+ token: 'Name',
554
+ ofValue: 'schema',
555
+ tokenName: 'SchemaDefinitionKeyword'
556
+ }, {
557
+ ofType: 'Directives',
558
+ optional: true
559
+ }, {
560
+ token: '{'
561
+ }, {
562
+ listOfType: 'RootOperationTypeDefinition'
563
+ }, {
564
+ token: '}'
565
+ }],
566
+ RootOperationTypeDefinition: ['OperationType', {
567
+ token: ':'
568
+ }, {
569
+ token: 'Name',
570
+ tokenName: 'OperationTypeDefinitionName'
571
+ }],
572
+ SchemaExtension: [{
573
+ token: 'Name',
574
+ ofValue: 'extend'
575
+ }, {
576
+ token: 'Name',
577
+ ofValue: 'schema'
578
+ }, 'Name', {
579
+ peek: [{
580
+ ifCondition: {
581
+ token: '@'
582
+ },
583
+ expect: ['Directives', {
584
+ ofType: [{
585
+ token: '{'
586
+ }, {
587
+ listOfType: 'RootOperationTypeDefinition'
588
+ }, {
589
+ token: '}'
590
+ }],
591
+ optional: true
592
+ }]
593
+ }, {
594
+ ifCondition: {
595
+ token: '{'
596
+ },
597
+ expect: [{
598
+ token: '{'
599
+ }, {
600
+ listOfType: 'RootOperationTypeDefinition'
601
+ }, {
602
+ token: '}'
603
+ }]
604
+ }]
605
+ }],
606
+ Description: 'StringValue',
607
+ ScalarTypeDefinition: [{
608
+ ofType: 'Description',
609
+ optional: true
610
+ }, {
611
+ token: 'Name',
612
+ ofValue: 'scalar',
613
+ tokenName: 'ScalarDefinitionKeyword'
614
+ }, 'TypeName', {
615
+ ofType: 'Directives',
616
+ optional: true
617
+ }],
618
+ ScalarTypeExtension: [{
619
+ token: 'Name',
620
+ ofValue: 'extend',
621
+ tokenName: 'ExtendDefinitionKeyword'
622
+ }, {
623
+ token: 'Name',
624
+ ofValue: 'scalar',
625
+ tokenName: 'ScalarDefinitionKeyword'
626
+ }, 'TypeName', 'Directives'],
627
+ ObjectTypeDefinition: [{
628
+ ofType: 'Description',
629
+ optional: true
630
+ }, {
631
+ token: 'Name',
632
+ ofValue: 'type',
633
+ tokenName: 'TypeDefinitionKeyword'
634
+ }, 'TypeName', {
635
+ ofType: 'ImplementsInterfaces',
636
+ optional: true
637
+ }, {
638
+ ofType: 'Directives',
639
+ optional: true
640
+ }, {
641
+ ofType: 'FieldsDefinition',
642
+ optional: true
643
+ }],
644
+ ImplementsInterfaces: [{
645
+ token: 'Name',
646
+ ofValue: 'implements',
647
+ tokenName: 'ImplementsKeyword'
648
+ }, {
649
+ token: '&',
650
+ optional: true
651
+ }, 'TypeName', {
652
+ listOfType: 'ImplementsAdditionalInterfaceName',
653
+ optional: true
654
+ }],
655
+ ImplementsAdditionalInterfaceName: [{
656
+ token: '&'
657
+ }, 'TypeName'],
658
+ FieldsDefinition: [{
659
+ token: '{'
660
+ }, {
661
+ listOfType: 'FieldDefinition'
662
+ }, {
663
+ token: '}'
664
+ }],
665
+ FieldDefinition: [{
666
+ ofType: 'Description',
667
+ optional: true
668
+ }, {
669
+ token: 'Name',
670
+ tokenName: 'AliasName',
671
+ definitionName: true
672
+ }, {
673
+ ofType: 'ArgumentsDefinition',
674
+ optional: true
675
+ }, {
676
+ token: ':'
677
+ }, 'Type', {
678
+ ofType: 'Directives',
679
+ optional: true
680
+ }],
681
+ ArgumentsDefinition: [{
682
+ token: '('
683
+ }, {
684
+ listOfType: 'InputValueDefinition'
685
+ }, {
686
+ token: ')'
687
+ }],
688
+ InputValueDefinition: [{
689
+ ofType: 'Description',
690
+ optional: true
691
+ }, {
692
+ token: 'Name',
693
+ tokenName: 'ArgumentName'
694
+ }, {
695
+ token: ':'
696
+ }, 'Type', {
697
+ ofType: 'DefaultValue',
698
+ optional: true
699
+ }, {
700
+ ofType: 'Directives',
701
+ optional: true
702
+ }],
703
+ ObjectTypeExtension: [{
704
+ token: 'Name',
705
+ ofValue: 'extend',
706
+ tokenName: 'ExtendDefinitionKeyword'
707
+ }, {
708
+ token: 'Name',
709
+ ofValue: 'type',
710
+ tokenName: 'TypeDefinitionKeyword'
711
+ }, 'TypeName', {
712
+ peek: [{
713
+ ifCondition: {
714
+ token: 'Name',
715
+ ofValue: 'interface'
716
+ },
717
+ expect: ['ImplementsInterfaces', {
718
+ peek: [{
719
+ ifCondition: {
720
+ token: '@'
721
+ },
722
+ expect: ['Directives', {
723
+ ofType: 'FieldsDefinition',
724
+ optional: true
725
+ }]
726
+ }, {
727
+ ifCondition: {
728
+ token: '{'
729
+ },
730
+ expect: 'FieldsDefinition'
731
+ }],
732
+ optional: true
733
+ }]
734
+ }, {
735
+ ifCondition: {
736
+ token: '@'
737
+ },
738
+ expect: ['Directives', {
739
+ ofType: 'FieldsDefinition',
740
+ optional: true
741
+ }]
742
+ }, {
743
+ ifCondition: {
744
+ token: '{'
745
+ },
746
+ expect: 'FieldsDefinition'
747
+ }]
748
+ }],
749
+ InterfaceTypeDefinition: [{
750
+ ofType: 'Description',
751
+ optional: true
752
+ }, {
753
+ token: 'Name',
754
+ ofValue: 'interface',
755
+ tokenName: 'InterfaceDefinitionKeyword'
756
+ }, 'TypeName', {
757
+ ofType: 'Directives',
758
+ optional: true
759
+ }, {
760
+ ofType: 'FieldsDefinition',
761
+ optional: true
762
+ }],
763
+ InterfaceTypeExtension: [{
764
+ token: 'Name',
765
+ ofValue: 'extend',
766
+ tokenName: 'ExtendDefinitionKeyword'
767
+ }, {
768
+ token: 'Name',
769
+ ofValue: 'interface',
770
+ tokenName: 'InterfaceDefinitionKeyword'
771
+ }, 'TypeName', {
772
+ peek: [{
773
+ ifCondition: {
774
+ token: '@'
775
+ },
776
+ expect: ['Directives', {
777
+ ofType: 'FieldsDefinition',
778
+ optional: true
779
+ }]
780
+ }, {
781
+ ifCondition: {
782
+ token: '{'
783
+ },
784
+ expect: 'FieldsDefinition'
785
+ }]
786
+ }],
787
+ UnionTypeDefinition: [{
788
+ ofType: 'Description',
789
+ optional: true
790
+ }, {
791
+ token: 'Name',
792
+ ofValue: 'union',
793
+ tokenName: 'UnionDefinitionKeyword'
794
+ }, 'TypeName', {
795
+ ofType: 'Directives',
796
+ optional: true
797
+ }, {
798
+ ofType: 'UnionMemberTypes',
799
+ optional: true
800
+ }],
801
+ UnionMemberTypes: [{
802
+ token: '='
803
+ }, {
804
+ token: '|',
805
+ optional: true
806
+ }, 'Name', {
807
+ listOfType: 'UnionMemberAdditionalTypeName',
808
+ optional: true
809
+ }],
810
+ UnionMemberAdditionalTypeName: [{
811
+ token: '|'
812
+ }, 'TypeName'],
813
+ UnionTypeExtension: [{
814
+ token: 'Name',
815
+ ofValue: 'extend',
816
+ tokenName: 'ExtendDefinitionKeyword'
817
+ }, {
818
+ token: 'Name',
819
+ ofValue: 'union',
820
+ tokenName: 'UnionDefinitionKeyword'
821
+ }, 'TypeName', {
822
+ peek: [{
823
+ ifCondition: {
824
+ token: '@'
825
+ },
826
+ expect: ['Directives', {
827
+ ofType: 'UnionMemberTypes',
828
+ optional: true
829
+ }]
830
+ }, {
831
+ ifCondition: {
832
+ token: '='
833
+ },
834
+ expect: 'UnionMemberTypes'
835
+ }]
836
+ }],
837
+ EnumTypeDefinition: [{
838
+ ofType: 'Description',
839
+ optional: true
840
+ }, {
841
+ token: 'Name',
842
+ ofValue: 'enum',
843
+ tokenName: 'EnumDefinitionKeyword'
844
+ }, 'TypeName', {
845
+ ofType: 'Directives',
846
+ optional: true
847
+ }, {
848
+ ofType: 'EnumValuesDefinition',
849
+ optional: true
850
+ }],
851
+ EnumValuesDefinition: [{
852
+ token: '{'
853
+ }, {
854
+ listOfType: 'EnumValueDefinition'
855
+ }, {
856
+ token: '}'
857
+ }],
858
+ EnumValueDefinition: [{
859
+ ofType: 'Description',
860
+ optional: true
861
+ }, 'EnumValue', {
862
+ ofType: 'Directives',
863
+ optional: true
864
+ }],
865
+ EnumTypeExtension: [{
866
+ token: 'Name',
867
+ ofValue: 'extend',
868
+ tokenName: 'ExtendDefinitionKeyword'
869
+ }, {
870
+ token: 'Name',
871
+ ofValue: 'enum',
872
+ tokenName: 'EnumDefinitionKeyword'
873
+ }, 'TypeName', {
874
+ peek: [{
875
+ ifCondition: {
876
+ token: '@'
877
+ },
878
+ expect: ['Directives', {
879
+ ofType: 'EnumValuesDefinition',
880
+ optional: true
881
+ }]
882
+ }, {
883
+ ifCondition: {
884
+ token: '{'
885
+ },
886
+ expect: 'EnumValuesDefinition'
887
+ }]
888
+ }],
889
+ InputObjectTypeDefinition: [{
890
+ ofType: 'Description',
891
+ optional: true
892
+ }, {
893
+ token: 'Name',
894
+ ofValue: 'input',
895
+ tokenName: 'InputDefinitionKeyword'
896
+ }, 'TypeName', {
897
+ ofType: 'Directives',
898
+ optional: true
899
+ }, {
900
+ ofType: 'InputFieldsDefinition',
901
+ optional: true
902
+ }],
903
+ InputFieldsDefinition: [{
904
+ token: '{'
905
+ }, {
906
+ listOfType: 'InputValueDefinition'
907
+ }, {
908
+ token: '}'
909
+ }],
910
+ InputObjectTypeExtension: [{
911
+ token: 'Name',
912
+ ofValue: 'extend',
913
+ tokenName: 'ExtendDefinitionKeyword'
914
+ }, {
915
+ token: 'Name',
916
+ ofValue: 'input',
917
+ tokenName: 'InputDefinitionKeyword'
918
+ }, 'TypeName', {
919
+ peek: [{
920
+ ifCondition: {
921
+ token: '@'
922
+ },
923
+ expect: ['Directives', {
924
+ ofType: 'InputFieldsDefinition',
925
+ optional: true
926
+ }]
927
+ }, {
928
+ ifCondition: {
929
+ token: '{'
930
+ },
931
+ expect: 'InputFieldsDefinition'
932
+ }]
933
+ }],
934
+ DirectiveDefinition: [{
935
+ ofType: 'Description',
936
+ optional: true
937
+ }, {
938
+ token: 'Name',
939
+ ofValue: 'directive',
940
+ tokenName: 'DirectiveDefinitionKeyword'
941
+ }, {
942
+ token: '@',
943
+ tokenName: 'DirectiveName'
944
+ }, {
945
+ token: 'Name',
946
+ tokenName: 'DirectiveName'
947
+ }, {
948
+ ofType: 'ArgumentsDefinition',
949
+ optional: true
950
+ }, {
951
+ token: 'Name',
952
+ ofValue: 'on',
953
+ tokenName: 'OnKeyword'
954
+ }, 'DirectiveLocations'],
955
+ DirectiveLocations: [{
956
+ token: '|',
957
+ optional: true
958
+ }, 'DirectiveLocation', {
959
+ listOfType: 'DirectiveLocationAdditionalName',
960
+ optional: true
961
+ }],
962
+ DirectiveLocationAdditionalName: [{
963
+ token: '|'
964
+ }, 'DirectiveLocation'],
965
+ DirectiveLocation: {
966
+ peek: [{
967
+ ifCondition: 'ExecutableDirectiveLocation',
968
+ expect: 'ExecutableDirectiveLocation'
969
+ }, {
970
+ ifCondition: 'TypeSystemDirectiveLocation',
971
+ expect: 'TypeSystemDirectiveLocation'
972
+ }]
973
+ },
974
+ ExecutableDirectiveLocation: {
975
+ token: 'Name',
976
+ oneOf: ['QUERY', 'MUTATION', 'SUBSCRIPTION', 'FIELD', 'FRAGMENT_DEFINITION', 'FRAGMENT_SPREAD', 'INLINE_FRAGMENT'],
977
+ tokenName: 'EnumValue'
978
+ },
979
+ TypeSystemDirectiveLocation: {
980
+ token: 'Name',
981
+ oneOf: ['SCHEMA', 'SCALAR', 'OBJECT', 'FIELD_DEFINITION', 'ARGUMENT_DEFINITION', 'INTERFACE', 'UNION', 'ENUM', 'ENUM_VALUE', 'INPUT_OBJECT', 'INPUT_FIELD_DEFINITION'],
982
+ tokenName: 'EnumValue'
983
+ } // FIXME: enforce proper typing
984
+
985
+ };
986
+ var _default = grammar;
987
+ exports.default = _default;