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.
- package/LICENSE +1 -1
- package/README.md +10 -0
- package/error/GraphQLError.js +8 -8
- package/error/GraphQLError.js.flow +2 -3
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +1 -1
- package/error/formatError.js.flow +0 -1
- package/error/index.js +4 -4
- package/error/index.js.flow +0 -1
- package/error/locatedError.d.ts +2 -2
- package/error/locatedError.js +10 -5
- package/error/locatedError.js.flow +10 -4
- package/error/locatedError.mjs +6 -4
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.js.flow +0 -1
- package/execution/execute.d.ts +0 -15
- package/execution/execute.js +104 -104
- package/execution/execute.js.flow +119 -133
- package/execution/execute.mjs +86 -82
- package/execution/index.js +3 -3
- package/execution/index.js.flow +0 -1
- package/execution/values.js +11 -11
- package/execution/values.js.flow +0 -1
- package/graphql.js +5 -5
- package/graphql.js.flow +0 -1
- package/index.d.ts +1 -0
- package/index.js +9 -9
- package/index.js.flow +0 -1
- package/jsutils/ObjMap.js.flow +0 -1
- package/jsutils/Path.js.flow +0 -1
- package/jsutils/PromiseOrValue.js.flow +0 -1
- package/jsutils/defineInspect.js +2 -2
- package/jsutils/defineInspect.js.flow +0 -1
- package/jsutils/devAssert.js.flow +0 -1
- package/jsutils/didYouMean.js.flow +0 -1
- package/jsutils/identityFunc.js.flow +0 -1
- package/jsutils/inspect.js +1 -2
- package/jsutils/inspect.js.flow +10 -8
- package/jsutils/inspect.mjs +1 -1
- package/jsutils/instanceOf.js +15 -9
- package/jsutils/instanceOf.js.flow +13 -7
- package/jsutils/instanceOf.mjs +13 -5
- package/jsutils/invariant.js.flow +0 -1
- package/jsutils/isAsyncIterable.js +13 -0
- package/jsutils/isAsyncIterable.js.flow +14 -0
- package/jsutils/isAsyncIterable.mjs +10 -0
- package/jsutils/isObjectLike.js.flow +0 -1
- package/jsutils/isPromise.js.flow +0 -1
- package/jsutils/keyMap.js.flow +0 -1
- package/jsutils/keyValMap.js.flow +0 -1
- package/jsutils/mapValue.js +1 -1
- package/jsutils/mapValue.js.flow +0 -1
- package/jsutils/memoize3.js +2 -5
- package/jsutils/memoize3.js.flow +2 -5
- package/jsutils/memoize3.mjs +2 -5
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.js.flow +59 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
- package/jsutils/printPathArray.js.flow +0 -1
- package/jsutils/promiseForObject.js.flow +0 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.js.flow +0 -1
- package/jsutils/safeArrayFrom.js +73 -0
- package/jsutils/safeArrayFrom.js.flow +59 -0
- package/jsutils/safeArrayFrom.mjs +66 -0
- package/jsutils/suggestionList.js +5 -1
- package/jsutils/suggestionList.js.flow +3 -2
- package/jsutils/suggestionList.mjs +3 -1
- package/jsutils/toObjMap.js +1 -1
- package/jsutils/toObjMap.js.flow +0 -1
- package/language/ast.js +1 -1
- package/language/ast.js.flow +0 -1
- package/language/blockString.d.ts +1 -1
- package/language/blockString.js +53 -32
- package/language/blockString.js.flow +51 -36
- package/language/blockString.mjs +54 -33
- package/language/directiveLocation.js.flow +0 -1
- package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
- package/language/experimentalOnlineParser/grammar.js +987 -0
- package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
- package/language/experimentalOnlineParser/grammar.mjs +980 -0
- package/language/experimentalOnlineParser/index.d.ts +6 -0
- package/language/experimentalOnlineParser/index.js +31 -0
- package/language/experimentalOnlineParser/index.js.flow +7 -0
- package/language/experimentalOnlineParser/index.mjs +1 -0
- package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
- package/language/experimentalOnlineParser/onlineParser.js +604 -0
- package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
- package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
- package/language/index.js +12 -12
- package/language/index.js.flow +0 -1
- package/language/kinds.js.flow +0 -1
- package/language/lexer.js +242 -183
- package/language/lexer.js.flow +188 -184
- package/language/lexer.mjs +238 -179
- package/language/location.js.flow +0 -1
- package/language/parser.js +73 -68
- package/language/parser.js.flow +62 -57
- package/language/parser.mjs +64 -60
- package/language/predicates.js +1 -1
- package/language/predicates.js.flow +0 -1
- package/language/printLocation.js +1 -1
- package/language/printLocation.js.flow +0 -1
- package/language/printer.js +20 -13
- package/language/printer.js.flow +26 -25
- package/language/printer.mjs +18 -11
- package/language/source.d.ts +7 -0
- package/language/source.js +20 -3
- package/language/source.js.flow +21 -3
- package/language/source.mjs +14 -1
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.js +2 -2
- package/language/visitor.js.flow +0 -1
- package/package.json +2 -3
- package/polyfills/arrayFrom.js +2 -2
- package/polyfills/arrayFrom.js.flow +1 -2
- package/polyfills/arrayFrom.mjs +1 -1
- package/polyfills/find.js +1 -1
- package/polyfills/find.js.flow +1 -2
- package/polyfills/find.mjs +1 -1
- package/polyfills/isFinite.js +1 -1
- package/polyfills/isFinite.js.flow +1 -2
- package/polyfills/isFinite.mjs +1 -1
- package/polyfills/isInteger.js +1 -1
- package/polyfills/isInteger.js.flow +1 -2
- package/polyfills/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +1 -1
- package/polyfills/objectEntries.js.flow +1 -2
- package/polyfills/objectEntries.mjs +1 -1
- package/polyfills/objectValues.js +1 -1
- package/polyfills/objectValues.js.flow +1 -2
- package/polyfills/objectValues.mjs +1 -1
- package/polyfills/symbols.js +3 -5
- package/polyfills/symbols.js.flow +9 -6
- package/polyfills/symbols.mjs +3 -5
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +0 -1
- package/subscription/mapAsyncIterator.js +2 -2
- package/subscription/mapAsyncIterator.js.flow +8 -9
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +61 -73
- package/subscription/subscribe.js.flow +71 -85
- package/subscription/subscribe.mjs +53 -65
- package/type/definition.d.ts +16 -6
- package/type/definition.js +37 -32
- package/type/definition.js.flow +93 -63
- package/type/definition.mjs +19 -14
- package/type/directives.js +17 -16
- package/type/directives.js.flow +20 -13
- package/type/directives.mjs +6 -5
- package/type/index.js +6 -6
- package/type/index.js.flow +0 -1
- package/type/introspection.js +86 -65
- package/type/introspection.js.flow +75 -43
- package/type/introspection.mjs +79 -58
- package/type/scalars.js +9 -9
- package/type/scalars.js.flow +1 -2
- package/type/scalars.mjs +1 -1
- package/type/schema.js +13 -13
- package/type/schema.js.flow +2 -3
- package/type/schema.mjs +1 -1
- package/type/validate.js +52 -19
- package/type/validate.js.flow +54 -8
- package/type/validate.mjs +43 -9
- package/utilities/TypeInfo.js +7 -7
- package/utilities/TypeInfo.js.flow +1 -2
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +0 -1
- package/utilities/astFromValue.js +14 -16
- package/utilities/astFromValue.js.flow +6 -7
- package/utilities/astFromValue.mjs +6 -7
- package/utilities/buildASTSchema.js +17 -27
- package/utilities/buildASTSchema.js.flow +5 -21
- package/utilities/buildASTSchema.mjs +11 -21
- package/utilities/buildClientSchema.js +16 -15
- package/utilities/buildClientSchema.js.flow +28 -12
- package/utilities/buildClientSchema.mjs +5 -4
- package/utilities/coerceInputValue.js +17 -18
- package/utilities/coerceInputValue.js.flow +12 -10
- package/utilities/coerceInputValue.mjs +7 -7
- package/utilities/concatAST.js +9 -8
- package/utilities/concatAST.js.flow +8 -8
- package/utilities/concatAST.mjs +9 -6
- package/utilities/extendSchema.js +26 -19
- package/utilities/extendSchema.js.flow +19 -7
- package/utilities/extendSchema.mjs +8 -1
- package/utilities/findBreakingChanges.js +15 -11
- package/utilities/findBreakingChanges.js.flow +6 -3
- package/utilities/findBreakingChanges.mjs +5 -2
- package/utilities/findDeprecatedUsages.js +2 -2
- package/utilities/findDeprecatedUsages.js.flow +0 -1
- package/utilities/getIntrospectionQuery.d.ts +6 -0
- package/utilities/getIntrospectionQuery.js +8 -2
- package/utilities/getIntrospectionQuery.js.flow +17 -5
- package/utilities/getIntrospectionQuery.mjs +8 -2
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.js.flow +0 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.js.flow +0 -1
- package/utilities/index.d.ts +3 -0
- package/utilities/index.js +22 -22
- package/utilities/index.js.flow +0 -1
- package/utilities/introspectionFromSchema.js +7 -5
- package/utilities/introspectionFromSchema.js.flow +2 -1
- package/utilities/introspectionFromSchema.mjs +3 -1
- package/utilities/lexicographicSortSchema.js +13 -9
- package/utilities/lexicographicSortSchema.js.flow +21 -13
- package/utilities/lexicographicSortSchema.mjs +5 -2
- package/utilities/printSchema.js +15 -16
- package/utilities/printSchema.js.flow +23 -16
- package/utilities/printSchema.mjs +5 -6
- package/utilities/separateOperations.js +46 -42
- package/utilities/separateOperations.js.flow +46 -37
- package/utilities/separateOperations.mjs +44 -40
- package/utilities/stripIgnoredCharacters.js +6 -16
- package/utilities/stripIgnoredCharacters.js.flow +4 -13
- package/utilities/stripIgnoredCharacters.mjs +3 -10
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.js.flow +0 -1
- package/utilities/typeFromAST.js +6 -6
- package/utilities/typeFromAST.js.flow +2 -3
- package/utilities/typeFromAST.mjs +2 -2
- package/utilities/typedQueryDocumentNode.d.ts +20 -0
- package/utilities/valueFromAST.js +6 -6
- package/utilities/valueFromAST.js.flow +4 -2
- package/utilities/valueFromASTUntyped.js +4 -4
- package/utilities/valueFromASTUntyped.js.flow +0 -1
- package/validation/ValidationContext.js +3 -3
- package/validation/ValidationContext.js.flow +3 -4
- package/validation/index.js +38 -38
- package/validation/index.js.flow +0 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +0 -1
- package/validation/rules/ExecutableDefinitionsRule.js +3 -3
- package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
- package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
- package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
- package/validation/rules/KnownArgumentNamesRule.js +5 -5
- package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
- package/validation/rules/KnownDirectivesRule.js +6 -6
- package/validation/rules/KnownDirectivesRule.js.flow +4 -3
- package/validation/rules/KnownFragmentNamesRule.js +1 -1
- package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
- package/validation/rules/KnownTypeNamesRule.js +6 -6
- package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
- package/validation/rules/LoneAnonymousOperationRule.js +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
- package/validation/rules/NoFragmentCyclesRule.js +1 -1
- package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
- package/validation/rules/NoUndefinedVariablesRule.js +1 -1
- package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
- package/validation/rules/NoUnusedFragmentsRule.js +1 -1
- package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
- package/validation/rules/NoUnusedVariablesRule.js +1 -1
- package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
- package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
- package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
- package/validation/rules/PossibleTypeExtensions.js +1 -1
- package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
- package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
- package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
- package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
- package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
- package/validation/rules/ScalarLeafsRule.js +3 -3
- package/validation/rules/ScalarLeafsRule.js.flow +0 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
- package/validation/rules/UniqueArgumentNamesRule.js +1 -1
- package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNames.js +1 -1
- package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
- package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNames.js +1 -1
- package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
- package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationNamesRule.js +1 -1
- package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationTypes.js +1 -1
- package/validation/rules/UniqueOperationTypes.js.flow +0 -1
- package/validation/rules/UniqueOperationTypesRule.js +1 -1
- package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
- package/validation/rules/UniqueTypeNames.js +1 -1
- package/validation/rules/UniqueTypeNames.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.js +2 -2
- package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
- package/validation/rules/UniqueVariableNamesRule.js +1 -1
- package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
- package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
- package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
- package/validation/rules/VariablesAreInputTypesRule.js +4 -4
- package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
- package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
- package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
- package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
- package/validation/specifiedRules.js +33 -33
- package/validation/specifiedRules.js.flow +0 -1
- package/validation/validate.js +7 -7
- package/validation/validate.js.flow +4 -5
- package/version.js +3 -3
- package/version.js.flow +3 -4
- package/version.mjs +3 -3
- package/jsutils/isCollection.js +0 -47
- package/jsutils/isCollection.js.flow +0 -39
- package/jsutils/isCollection.mjs +0 -40
- package/polyfills/flatMap.js +0 -30
- package/polyfills/flatMap.js.flow +0 -28
- package/polyfills/flatMap.mjs +0 -23
package/language/lexer.mjs
CHANGED
|
@@ -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 =
|
|
102
|
-
var line = lexer.line;
|
|
103
|
-
var col = 1 + pos - lexer.lineStart;
|
|
101
|
+
var pos = prev.end;
|
|
104
102
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
while (pos < bodyLength) {
|
|
104
|
+
var code = body.charCodeAt(pos);
|
|
105
|
+
var _line = lexer.line;
|
|
108
106
|
|
|
109
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
// $
|
|
110
|
+
switch (code) {
|
|
111
|
+
case 0xfeff: // <BOM>
|
|
120
112
|
|
|
121
|
-
|
|
122
|
-
return new Token(TokenKind.DOLLAR, pos, pos + 1, line, col, prev);
|
|
123
|
-
// &
|
|
113
|
+
case 9: // \t
|
|
124
114
|
|
|
125
|
-
|
|
126
|
-
return new Token(TokenKind.AMP, pos, pos + 1, line, col, prev);
|
|
127
|
-
// (
|
|
115
|
+
case 32: // <space>
|
|
128
116
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
117
|
+
case 44:
|
|
118
|
+
// ,
|
|
119
|
+
++pos;
|
|
120
|
+
continue;
|
|
132
121
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
122
|
+
case 10:
|
|
123
|
+
// \n
|
|
124
|
+
++pos;
|
|
125
|
+
++lexer.line;
|
|
126
|
+
lexer.lineStart = pos;
|
|
127
|
+
continue;
|
|
136
128
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
129
|
+
case 13:
|
|
130
|
+
// \r
|
|
131
|
+
if (body.charCodeAt(pos + 1) === 10) {
|
|
132
|
+
pos += 2;
|
|
133
|
+
} else {
|
|
134
|
+
++pos;
|
|
135
|
+
}
|
|
141
136
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
*
|