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