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
@@ -98,161 +98,257 @@ function readToken(lexer, prev) {
98
98
  var source = lexer.source;
99
99
  var body = source.body;
100
100
  var bodyLength = body.length;
101
- var pos = positionAfterWhitespace(body, prev.end, lexer);
102
- var line = lexer.line;
103
- var col = 1 + pos - lexer.lineStart;
101
+ var pos = prev.end;
104
102
 
105
- if (pos >= bodyLength) {
106
- return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
107
- }
103
+ while (pos < bodyLength) {
104
+ var code = body.charCodeAt(pos);
105
+ var _line = lexer.line;
108
106
 
109
- var code = body.charCodeAt(pos); // SourceCharacter
107
+ var _col = 1 + pos - lexer.lineStart; // SourceCharacter
110
108
 
111
- switch (code) {
112
- // !
113
- case 33:
114
- return new Token(TokenKind.BANG, pos, pos + 1, line, col, prev);
115
- // #
116
109
 
117
- case 35:
118
- return readComment(source, pos, line, col, prev);
119
- // $
110
+ switch (code) {
111
+ case 0xfeff: // <BOM>
120
112
 
121
- case 36:
122
- return new Token(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);
123
- // &
113
+ case 9: // \t
124
114
 
125
- case 38:
126
- return new Token(TokenKind.AMP, pos, pos + 1, line, col, prev);
127
- // (
115
+ case 32: // <space>
128
116
 
129
- case 40:
130
- return new Token(TokenKind.PAREN_L, pos, pos + 1, line, col, prev);
131
- // )
117
+ case 44:
118
+ // ,
119
+ ++pos;
120
+ continue;
132
121
 
133
- case 41:
134
- return new Token(TokenKind.PAREN_R, pos, pos + 1, line, col, prev);
135
- // .
122
+ case 10:
123
+ // \n
124
+ ++pos;
125
+ ++lexer.line;
126
+ lexer.lineStart = pos;
127
+ continue;
136
128
 
137
- case 46:
138
- if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
139
- return new Token(TokenKind.SPREAD, pos, pos + 3, line, col, prev);
140
- }
129
+ case 13:
130
+ // \r
131
+ if (body.charCodeAt(pos + 1) === 10) {
132
+ pos += 2;
133
+ } else {
134
+ ++pos;
135
+ }
141
136
 
142
- break;
143
- // :
144
-
145
- case 58:
146
- return new Token(TokenKind.COLON, pos, pos + 1, line, col, prev);
147
- // =
148
-
149
- case 61:
150
- return new Token(TokenKind.EQUALS, pos, pos + 1, line, col, prev);
151
- // @
152
-
153
- case 64:
154
- return new Token(TokenKind.AT, pos, pos + 1, line, col, prev);
155
- // [
156
-
157
- case 91:
158
- return new Token(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev);
159
- // ]
160
-
161
- case 93:
162
- return new Token(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev);
163
- // {
164
-
165
- case 123:
166
- return new Token(TokenKind.BRACE_L, pos, pos + 1, line, col, prev);
167
- // |
168
-
169
- case 124:
170
- return new Token(TokenKind.PIPE, pos, pos + 1, line, col, prev);
171
- // }
172
-
173
- case 125:
174
- return new Token(TokenKind.BRACE_R, pos, pos + 1, line, col, prev);
175
- // A-Z _ a-z
176
-
177
- case 65:
178
- case 66:
179
- case 67:
180
- case 68:
181
- case 69:
182
- case 70:
183
- case 71:
184
- case 72:
185
- case 73:
186
- case 74:
187
- case 75:
188
- case 76:
189
- case 77:
190
- case 78:
191
- case 79:
192
- case 80:
193
- case 81:
194
- case 82:
195
- case 83:
196
- case 84:
197
- case 85:
198
- case 86:
199
- case 87:
200
- case 88:
201
- case 89:
202
- case 90:
203
- case 95:
204
- case 97:
205
- case 98:
206
- case 99:
207
- case 100:
208
- case 101:
209
- case 102:
210
- case 103:
211
- case 104:
212
- case 105:
213
- case 106:
214
- case 107:
215
- case 108:
216
- case 109:
217
- case 110:
218
- case 111:
219
- case 112:
220
- case 113:
221
- case 114:
222
- case 115:
223
- case 116:
224
- case 117:
225
- case 118:
226
- case 119:
227
- case 120:
228
- case 121:
229
- case 122:
230
- return readName(source, pos, line, col, prev);
231
- // - 0-9
232
-
233
- case 45:
234
- case 48:
235
- case 49:
236
- case 50:
237
- case 51:
238
- case 52:
239
- case 53:
240
- case 54:
241
- case 55:
242
- case 56:
243
- case 57:
244
- return readNumber(source, pos, code, line, col, prev);
245
- // "
246
-
247
- case 34:
248
- if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
249
- return readBlockString(source, pos, line, col, prev, lexer);
250
- }
137
+ ++lexer.line;
138
+ lexer.lineStart = pos;
139
+ continue;
140
+
141
+ case 33:
142
+ // !
143
+ return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);
144
+
145
+ case 35:
146
+ // #
147
+ return readComment(source, pos, _line, _col, prev);
148
+
149
+ case 36:
150
+ // $
151
+ return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);
152
+
153
+ case 38:
154
+ // &
155
+ return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);
156
+
157
+ case 40:
158
+ // (
159
+ return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);
160
+
161
+ case 41:
162
+ // )
163
+ return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);
164
+
165
+ case 46:
166
+ // .
167
+ if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
168
+ return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);
169
+ }
170
+
171
+ break;
172
+
173
+ case 58:
174
+ // :
175
+ return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);
176
+
177
+ case 61:
178
+ // =
179
+ return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);
180
+
181
+ case 64:
182
+ // @
183
+ return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);
184
+
185
+ case 91:
186
+ // [
187
+ return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);
188
+
189
+ case 93:
190
+ // ]
191
+ return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);
192
+
193
+ case 123:
194
+ // {
195
+ return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);
196
+
197
+ case 124:
198
+ // |
199
+ return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);
200
+
201
+ case 125:
202
+ // }
203
+ return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);
204
+
205
+ case 34:
206
+ // "
207
+ if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
208
+ return readBlockString(source, pos, _line, _col, prev, lexer);
209
+ }
210
+
211
+ return readString(source, pos, _line, _col, prev);
212
+
213
+ case 45: // -
214
+
215
+ case 48: // 0
216
+
217
+ case 49: // 1
218
+
219
+ case 50: // 2
220
+
221
+ case 51: // 3
222
+
223
+ case 52: // 4
224
+
225
+ case 53: // 5
226
+
227
+ case 54: // 6
228
+
229
+ case 55: // 7
230
+
231
+ case 56: // 8
232
+
233
+ case 57:
234
+ // 9
235
+ return readNumber(source, pos, code, _line, _col, prev);
236
+
237
+ case 65: // A
238
+
239
+ case 66: // B
240
+
241
+ case 67: // C
242
+
243
+ case 68: // D
244
+
245
+ case 69: // E
246
+
247
+ case 70: // F
248
+
249
+ case 71: // G
250
+
251
+ case 72: // H
252
+
253
+ case 73: // I
254
+
255
+ case 74: // J
256
+
257
+ case 75: // K
258
+
259
+ case 76: // L
260
+
261
+ case 77: // M
262
+
263
+ case 78: // N
264
+
265
+ case 79: // O
266
+
267
+ case 80: // P
268
+
269
+ case 81: // Q
270
+
271
+ case 82: // R
272
+
273
+ case 83: // S
274
+
275
+ case 84: // T
276
+
277
+ case 85: // U
278
+
279
+ case 86: // V
280
+
281
+ case 87: // W
282
+
283
+ case 88: // X
251
284
 
252
- return readString(source, pos, line, col, prev);
285
+ case 89: // Y
286
+
287
+ case 90: // Z
288
+
289
+ case 95: // _
290
+
291
+ case 97: // a
292
+
293
+ case 98: // b
294
+
295
+ case 99: // c
296
+
297
+ case 100: // d
298
+
299
+ case 101: // e
300
+
301
+ case 102: // f
302
+
303
+ case 103: // g
304
+
305
+ case 104: // h
306
+
307
+ case 105: // i
308
+
309
+ case 106: // j
310
+
311
+ case 107: // k
312
+
313
+ case 108: // l
314
+
315
+ case 109: // m
316
+
317
+ case 110: // n
318
+
319
+ case 111: // o
320
+
321
+ case 112: // p
322
+
323
+ case 113: // q
324
+
325
+ case 114: // r
326
+
327
+ case 115: // s
328
+
329
+ case 116: // t
330
+
331
+ case 117: // u
332
+
333
+ case 118: // v
334
+
335
+ case 119: // w
336
+
337
+ case 120: // x
338
+
339
+ case 121: // y
340
+
341
+ case 122:
342
+ // z
343
+ return readName(source, pos, _line, _col, prev);
344
+ }
345
+
346
+ throw syntaxError(source, pos, unexpectedCharacterMessage(code));
253
347
  }
254
348
 
255
- throw syntaxError(source, pos, unexpectedCharacterMessage(code));
349
+ var line = lexer.line;
350
+ var col = 1 + pos - lexer.lineStart;
351
+ return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
256
352
  }
257
353
  /**
258
354
  * Report a message that an unexpected character was encountered.
@@ -271,43 +367,6 @@ function unexpectedCharacterMessage(code) {
271
367
 
272
368
  return "Cannot parse the unexpected character ".concat(printCharCode(code), ".");
273
369
  }
274
- /**
275
- * Reads from body starting at startPosition until it finds a non-whitespace
276
- * character, then returns the position of that character for lexing.
277
- */
278
-
279
-
280
- function positionAfterWhitespace(body, startPosition, lexer) {
281
- var bodyLength = body.length;
282
- var position = startPosition;
283
-
284
- while (position < bodyLength) {
285
- var code = body.charCodeAt(position); // tab | space | comma | BOM
286
-
287
- if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {
288
- ++position;
289
- } else if (code === 10) {
290
- // new line
291
- ++position;
292
- ++lexer.line;
293
- lexer.lineStart = position;
294
- } else if (code === 13) {
295
- // carriage return
296
- if (body.charCodeAt(position + 1) === 10) {
297
- position += 2;
298
- } else {
299
- ++position;
300
- }
301
-
302
- ++lexer.line;
303
- lexer.lineStart = position;
304
- } else {
305
- break;
306
- }
307
- }
308
-
309
- return position;
310
- }
311
370
  /**
312
371
  * Reads a comment token from the source file.
313
372
  *
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import type { Source } from './source';
4
3
 
5
4
  /**