graphql 14.1.1 → 14.3.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 +1 -1
- package/error/GraphQLError.js +12 -10
- package/error/GraphQLError.js.flow +11 -6
- package/error/GraphQLError.mjs +20 -3
- package/error/formatError.js +2 -2
- package/error/formatError.js.flow +3 -3
- package/error/formatError.mjs +2 -2
- package/error/index.js +1 -1
- package/error/index.js.flow +5 -2
- package/error/index.mjs +2 -2
- package/error/locatedError.js +2 -2
- package/error/locatedError.js.flow +2 -2
- package/error/locatedError.mjs +2 -2
- package/error/printError.js +2 -2
- package/error/printError.js.flow +4 -5
- package/error/printError.mjs +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.flow +2 -2
- package/error/syntaxError.mjs +2 -2
- package/execution/execute.js +52 -37
- package/execution/execute.js.flow +66 -51
- package/execution/execute.mjs +50 -38
- package/execution/index.js +7 -1
- package/execution/index.js.flow +9 -4
- package/execution/index.mjs +3 -3
- package/execution/values.js +11 -11
- package/execution/values.js.flow +23 -19
- package/execution/values.mjs +11 -11
- package/graphql.js +13 -9
- package/graphql.js.flow +28 -10
- package/graphql.mjs +10 -9
- package/index.js +83 -53
- package/index.js.flow +60 -47
- package/index.mjs +26 -23
- package/jsutils/ObjMap.js +1 -1
- package/jsutils/ObjMap.js.flow +1 -1
- package/jsutils/ObjMap.mjs +1 -0
- package/jsutils/PromiseOrValue.js +1 -0
- package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
- package/jsutils/PromiseOrValue.mjs +1 -0
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +2 -2
- package/jsutils/defineToJSON.js.flow +1 -1
- package/jsutils/defineToJSON.mjs +2 -2
- package/jsutils/defineToStringTag.js +2 -2
- package/jsutils/defineToStringTag.js.flow +1 -1
- package/jsutils/defineToStringTag.mjs +2 -2
- package/jsutils/inspect.js +94 -19
- package/jsutils/inspect.js.flow +98 -20
- package/jsutils/inspect.mjs +94 -20
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.flow +1 -1
- package/jsutils/instanceOf.mjs +2 -2
- package/jsutils/invariant.js +5 -3
- package/jsutils/invariant.js.flow +3 -2
- package/jsutils/invariant.mjs +5 -3
- package/jsutils/isInvalid.js +2 -2
- package/jsutils/isInvalid.js.flow +1 -1
- package/jsutils/isInvalid.mjs +2 -2
- package/jsutils/isNullish.js +2 -2
- package/jsutils/isNullish.js.flow +1 -1
- package/jsutils/isNullish.mjs +2 -2
- package/jsutils/isPromise.js +2 -2
- package/jsutils/isPromise.js.flow +1 -1
- package/jsutils/isPromise.mjs +2 -2
- package/jsutils/keyMap.js +4 -3
- package/jsutils/keyMap.js.flow +6 -6
- package/jsutils/keyMap.mjs +4 -3
- package/jsutils/keyValMap.js +4 -3
- package/jsutils/keyValMap.js.flow +6 -6
- package/jsutils/keyValMap.mjs +4 -3
- package/jsutils/mapValue.js +2 -2
- package/jsutils/mapValue.js.flow +2 -2
- package/jsutils/mapValue.mjs +2 -2
- package/jsutils/memoize3.js +3 -3
- package/jsutils/memoize3.js.flow +2 -2
- package/jsutils/memoize3.mjs +3 -3
- package/jsutils/nodejsCustomInspectSymbol.js +2 -2
- package/jsutils/nodejsCustomInspectSymbol.js.flow +1 -1
- package/jsutils/nodejsCustomInspectSymbol.mjs +2 -2
- package/jsutils/orList.js +2 -2
- package/jsutils/orList.js.flow +1 -1
- package/jsutils/orList.mjs +2 -2
- package/jsutils/promiseForObject.js +2 -2
- package/jsutils/promiseForObject.js.flow +2 -2
- package/jsutils/promiseForObject.mjs +2 -2
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.flow +5 -5
- package/jsutils/promiseReduce.mjs +2 -2
- package/jsutils/quotedOrList.js +2 -2
- package/jsutils/quotedOrList.js.flow +1 -1
- package/jsutils/quotedOrList.mjs +2 -2
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.flow +1 -1
- package/jsutils/suggestionList.mjs +2 -2
- package/language/ast.js +1 -1
- package/language/ast.js.flow +3 -3
- package/language/ast.mjs +1 -0
- package/language/blockString.js +114 -0
- package/language/blockString.js.flow +102 -0
- package/language/blockString.mjs +104 -0
- package/language/directiveLocation.js +2 -2
- package/language/directiveLocation.js.flow +1 -1
- package/language/directiveLocation.mjs +2 -2
- package/language/index.js +9 -9
- package/language/index.js.flow +10 -5
- package/language/index.mjs +3 -3
- package/language/kinds.js +2 -2
- package/language/kinds.js.flow +1 -1
- package/language/kinds.mjs +2 -2
- package/language/lexer.js +52 -44
- package/language/lexer.js.flow +65 -54
- package/language/lexer.mjs +49 -43
- package/language/location.js +2 -2
- package/language/location.js.flow +2 -2
- package/language/location.mjs +2 -2
- package/language/parser.js +75 -67
- package/language/parser.js.flow +138 -127
- package/language/parser.mjs +76 -68
- package/language/predicates.js +2 -2
- package/language/predicates.js.flow +2 -2
- package/language/predicates.mjs +2 -2
- package/language/printer.js +6 -14
- package/language/printer.js.flow +8 -17
- package/language/printer.mjs +5 -14
- package/language/source.js +2 -2
- package/language/source.js.flow +1 -1
- package/language/source.mjs +2 -2
- package/language/visitor.js +4 -6
- package/language/visitor.js.flow +3 -3
- package/language/visitor.mjs +4 -6
- package/package.json +1 -1
- package/polyfills/find.js +2 -2
- package/polyfills/find.js.flow +1 -1
- package/polyfills/find.mjs +2 -2
- package/polyfills/flatMap.js +38 -0
- package/polyfills/flatMap.js.flow +34 -0
- package/polyfills/flatMap.mjs +30 -0
- package/polyfills/isFinite.js +2 -2
- package/polyfills/isFinite.js.flow +1 -1
- package/polyfills/isFinite.mjs +2 -2
- package/polyfills/isInteger.js +2 -2
- package/polyfills/isInteger.js.flow +1 -1
- package/polyfills/isInteger.mjs +2 -2
- package/polyfills/objectEntries.js +2 -2
- package/polyfills/objectEntries.js.flow +2 -2
- package/polyfills/objectEntries.mjs +2 -2
- package/polyfills/objectValues.js +2 -2
- package/polyfills/objectValues.js.flow +2 -2
- package/polyfills/objectValues.mjs +2 -2
- package/subscription/asyncIteratorReject.js +1 -1
- package/subscription/asyncIteratorReject.js.flow +1 -1
- package/subscription/asyncIteratorReject.mjs +2 -2
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +1 -1
- package/subscription/index.mjs +2 -2
- package/subscription/mapAsyncIterator.js +1 -1
- package/subscription/mapAsyncIterator.js.flow +5 -5
- package/subscription/mapAsyncIterator.mjs +2 -2
- package/subscription/subscribe.js +2 -2
- package/subscription/subscribe.js.flow +6 -6
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +138 -22
- package/type/definition.js.flow +184 -36
- package/type/definition.mjs +136 -23
- package/type/directives.js +14 -3
- package/type/directives.js.flow +24 -11
- package/type/directives.mjs +16 -5
- package/type/index.js +7 -7
- package/type/index.js.flow +8 -4
- package/type/index.mjs +10 -6
- package/type/introspection.js +14 -9
- package/type/introspection.js.flow +12 -18
- package/type/introspection.mjs +14 -9
- package/type/scalars.js +5 -4
- package/type/scalars.js.flow +4 -10
- package/type/scalars.mjs +7 -6
- package/type/schema.js +55 -3
- package/type/schema.js.flow +73 -17
- package/type/schema.mjs +56 -4
- package/type/validate.js +19 -47
- package/type/validate.js.flow +17 -29
- package/type/validate.mjs +18 -47
- package/utilities/TypeInfo.js +93 -73
- package/utilities/TypeInfo.js.flow +30 -23
- package/utilities/TypeInfo.mjs +93 -73
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +2 -2
- package/utilities/assertValidName.mjs +2 -2
- package/utilities/astFromValue.js +5 -4
- package/utilities/astFromValue.js.flow +8 -7
- package/utilities/astFromValue.mjs +7 -6
- package/utilities/buildASTSchema.js +63 -62
- package/utilities/buildASTSchema.js.flow +92 -108
- package/utilities/buildASTSchema.mjs +61 -62
- package/utilities/buildClientSchema.js +38 -45
- package/utilities/buildClientSchema.js.flow +66 -79
- package/utilities/buildClientSchema.mjs +37 -44
- package/utilities/coerceValue.js +6 -7
- package/utilities/coerceValue.js.flow +5 -4
- package/utilities/coerceValue.mjs +7 -8
- package/utilities/concatAST.js +9 -13
- package/utilities/concatAST.js.flow +4 -10
- package/utilities/concatAST.mjs +6 -13
- package/utilities/extendSchema.js +219 -511
- package/utilities/extendSchema.js.flow +195 -304
- package/utilities/extendSchema.mjs +218 -512
- package/utilities/findBreakingChanges.js +54 -95
- package/utilities/findBreakingChanges.js.flow +49 -47
- package/utilities/findBreakingChanges.mjs +80 -95
- package/utilities/findDeprecatedUsages.js +4 -4
- package/utilities/findDeprecatedUsages.js.flow +5 -5
- package/utilities/findDeprecatedUsages.mjs +4 -4
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.flow +5 -2
- package/utilities/getOperationAST.mjs +2 -2
- package/utilities/getOperationRootType.js +24 -24
- package/utilities/getOperationRootType.js.flow +40 -35
- package/utilities/getOperationRootType.mjs +24 -24
- package/utilities/index.js +9 -1
- package/utilities/index.js.flow +13 -6
- package/utilities/index.mjs +13 -8
- package/utilities/introspectionFromSchema.js +6 -4
- package/utilities/introspectionFromSchema.js.flow +8 -7
- package/utilities/introspectionFromSchema.mjs +6 -5
- package/utilities/introspectionQuery.js +2 -2
- package/utilities/introspectionQuery.js.flow +2 -2
- package/utilities/introspectionQuery.mjs +2 -2
- package/utilities/isValidJSValue.js +4 -2
- package/utilities/isValidJSValue.js.flow +3 -2
- package/utilities/isValidJSValue.mjs +4 -2
- package/utilities/isValidLiteralValue.js +2 -2
- package/utilities/isValidLiteralValue.js.flow +4 -4
- package/utilities/isValidLiteralValue.mjs +2 -2
- package/utilities/lexicographicSortSchema.js +84 -123
- package/utilities/lexicographicSortSchema.js.flow +68 -96
- package/utilities/lexicographicSortSchema.mjs +84 -123
- package/utilities/schemaPrinter.js +47 -73
- package/utilities/schemaPrinter.js.flow +69 -120
- package/utilities/schemaPrinter.mjs +45 -72
- package/utilities/separateOperations.js +8 -12
- package/utilities/separateOperations.js.flow +6 -3
- package/utilities/separateOperations.mjs +8 -12
- package/utilities/stripIgnoredCharacters.js +140 -0
- package/utilities/stripIgnoredCharacters.js.flow +129 -0
- package/utilities/stripIgnoredCharacters.mjs +127 -0
- package/utilities/typeComparators.js +2 -2
- package/utilities/typeComparators.js.flow +4 -3
- package/utilities/typeComparators.mjs +2 -2
- package/utilities/typeFromAST.js +9 -4
- package/utilities/typeFromAST.js.flow +15 -9
- package/utilities/typeFromAST.mjs +6 -4
- package/utilities/valueFromAST.js +7 -4
- package/utilities/valueFromAST.js.flow +7 -5
- package/utilities/valueFromAST.mjs +6 -4
- package/utilities/valueFromASTUntyped.js +11 -6
- package/utilities/valueFromASTUntyped.js.flow +9 -5
- package/utilities/valueFromASTUntyped.mjs +10 -6
- package/validation/ValidationContext.js +1 -1
- package/validation/ValidationContext.js.flow +19 -20
- package/validation/ValidationContext.mjs +2 -2
- package/validation/index.js +1 -1
- package/validation/index.js.flow +2 -1
- package/validation/index.mjs +3 -2
- package/validation/rules/ExecutableDefinitions.js +3 -3
- package/validation/rules/ExecutableDefinitions.js.flow +4 -4
- package/validation/rules/ExecutableDefinitions.mjs +3 -3
- package/validation/rules/FieldsOnCorrectType.js +3 -3
- package/validation/rules/FieldsOnCorrectType.js.flow +7 -7
- package/validation/rules/FieldsOnCorrectType.mjs +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypes.js.flow +5 -5
- package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
- package/validation/rules/KnownArgumentNames.js +1 -1
- package/validation/rules/KnownArgumentNames.js.flow +5 -5
- package/validation/rules/KnownArgumentNames.mjs +2 -2
- package/validation/rules/KnownDirectives.js +8 -6
- package/validation/rules/KnownDirectives.js.flow +11 -9
- package/validation/rules/KnownDirectives.mjs +8 -6
- package/validation/rules/KnownFragmentNames.js +3 -3
- package/validation/rules/KnownFragmentNames.js.flow +4 -4
- package/validation/rules/KnownFragmentNames.mjs +3 -3
- package/validation/rules/KnownTypeNames.js +2 -2
- package/validation/rules/KnownTypeNames.js.flow +6 -6
- package/validation/rules/KnownTypeNames.mjs +2 -2
- package/validation/rules/LoneAnonymousOperation.js +3 -3
- package/validation/rules/LoneAnonymousOperation.js.flow +4 -4
- package/validation/rules/LoneAnonymousOperation.mjs +3 -3
- package/validation/rules/LoneSchemaDefinition.js +2 -2
- package/validation/rules/LoneSchemaDefinition.js.flow +3 -3
- package/validation/rules/LoneSchemaDefinition.mjs +2 -2
- package/validation/rules/NoFragmentCycles.js +2 -2
- package/validation/rules/NoFragmentCycles.js.flow +4 -4
- package/validation/rules/NoFragmentCycles.mjs +2 -2
- package/validation/rules/NoUndefinedVariables.js +2 -2
- package/validation/rules/NoUndefinedVariables.js.flow +3 -3
- package/validation/rules/NoUndefinedVariables.mjs +2 -2
- package/validation/rules/NoUnusedFragments.js +7 -7
- package/validation/rules/NoUnusedFragments.js.flow +4 -4
- package/validation/rules/NoUnusedFragments.mjs +7 -7
- package/validation/rules/NoUnusedVariables.js +5 -5
- package/validation/rules/NoUnusedVariables.js.flow +6 -5
- package/validation/rules/NoUnusedVariables.mjs +5 -5
- package/validation/rules/OverlappingFieldsCanBeMerged.js +26 -23
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +17 -17
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +26 -23
- package/validation/rules/PossibleFragmentSpreads.js +4 -4
- package/validation/rules/PossibleFragmentSpreads.js.flow +5 -5
- package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
- package/validation/rules/PossibleTypeExtensions.js +3 -3
- package/validation/rules/PossibleTypeExtensions.js.flow +5 -5
- package/validation/rules/PossibleTypeExtensions.mjs +4 -4
- package/validation/rules/ProvidedRequiredArguments.js +6 -8
- package/validation/rules/ProvidedRequiredArguments.js.flow +8 -8
- package/validation/rules/ProvidedRequiredArguments.mjs +7 -9
- package/validation/rules/ScalarLeafs.js +4 -4
- package/validation/rules/ScalarLeafs.js.flow +6 -6
- package/validation/rules/ScalarLeafs.mjs +4 -4
- package/validation/rules/SingleFieldSubscriptions.js +2 -2
- package/validation/rules/SingleFieldSubscriptions.js.flow +4 -4
- package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
- package/validation/rules/UniqueArgumentNames.js +2 -2
- package/validation/rules/UniqueArgumentNames.js.flow +3 -3
- package/validation/rules/UniqueArgumentNames.mjs +2 -2
- package/validation/rules/UniqueDirectiveNames.js +2 -2
- package/validation/rules/UniqueDirectiveNames.js.flow +3 -3
- package/validation/rules/UniqueDirectiveNames.mjs +2 -2
- package/validation/rules/UniqueDirectivesPerLocation.js +3 -2
- package/validation/rules/UniqueDirectivesPerLocation.js.flow +4 -4
- package/validation/rules/UniqueDirectivesPerLocation.mjs +3 -2
- package/validation/rules/UniqueEnumValueNames.js +4 -8
- package/validation/rules/UniqueEnumValueNames.js.flow +6 -8
- package/validation/rules/UniqueEnumValueNames.mjs +4 -8
- package/validation/rules/UniqueFieldDefinitionNames.js +4 -8
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +6 -8
- package/validation/rules/UniqueFieldDefinitionNames.mjs +4 -8
- package/validation/rules/UniqueFragmentNames.js +2 -2
- package/validation/rules/UniqueFragmentNames.js.flow +3 -3
- package/validation/rules/UniqueFragmentNames.mjs +2 -2
- package/validation/rules/UniqueInputFieldNames.js +2 -4
- package/validation/rules/UniqueInputFieldNames.js.flow +3 -4
- package/validation/rules/UniqueInputFieldNames.mjs +2 -4
- package/validation/rules/UniqueOperationNames.js +2 -2
- package/validation/rules/UniqueOperationNames.js.flow +3 -3
- package/validation/rules/UniqueOperationNames.mjs +2 -2
- package/validation/rules/UniqueOperationTypes.js +2 -2
- package/validation/rules/UniqueOperationTypes.js.flow +3 -3
- package/validation/rules/UniqueOperationTypes.mjs +2 -2
- package/validation/rules/UniqueTypeNames.js +2 -2
- package/validation/rules/UniqueTypeNames.js.flow +4 -4
- package/validation/rules/UniqueTypeNames.mjs +2 -2
- package/validation/rules/UniqueVariableNames.js +2 -2
- package/validation/rules/UniqueVariableNames.js.flow +4 -4
- package/validation/rules/UniqueVariableNames.mjs +2 -2
- package/validation/rules/ValuesOfCorrectType.js +2 -2
- package/validation/rules/ValuesOfCorrectType.js.flow +5 -5
- package/validation/rules/ValuesOfCorrectType.mjs +2 -2
- package/validation/rules/VariablesAreInputTypes.js +3 -3
- package/validation/rules/VariablesAreInputTypes.js.flow +5 -5
- package/validation/rules/VariablesAreInputTypes.mjs +3 -3
- package/validation/rules/VariablesInAllowedPosition.js +3 -3
- package/validation/rules/VariablesInAllowedPosition.js.flow +7 -8
- package/validation/rules/VariablesInAllowedPosition.mjs +3 -3
- package/validation/specifiedRules.js +2 -2
- package/validation/specifiedRules.js.flow +13 -6
- package/validation/specifiedRules.mjs +7 -7
- package/validation/validate.js +2 -2
- package/validation/validate.js.flow +10 -6
- package/validation/validate.mjs +2 -2
- package/jsutils/MaybePromise.js +0 -1
- package/jsutils/MaybePromise.mjs +0 -0
- package/language/blockStringValue.js +0 -73
- package/language/blockStringValue.js.flow +0 -64
- package/language/blockStringValue.mjs +0 -66
package/language/lexer.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import defineToJSON from '../jsutils/defineToJSON';
|
|
10
10
|
import { syntaxError } from '../error';
|
|
11
|
-
import
|
|
11
|
+
import { dedentBlockStringValue } from './blockString';
|
|
12
12
|
/**
|
|
13
13
|
* Given a Source object, this returns a Lexer for that source.
|
|
14
14
|
* A Lexer is a stateful stream generator in that every time
|
|
@@ -88,15 +88,19 @@ export var TokenKind = Object.freeze({
|
|
|
88
88
|
* The enum type representing the token kinds values.
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
|
+
// @internal
|
|
92
|
+
export function isPunctuatorToken(token) {
|
|
93
|
+
var kind = token.kind;
|
|
94
|
+
return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;
|
|
95
|
+
}
|
|
91
96
|
/**
|
|
92
97
|
* A helper function to describe a token as a string for debugging
|
|
93
98
|
*/
|
|
99
|
+
|
|
94
100
|
export function getTokenDesc(token) {
|
|
95
101
|
var value = token.value;
|
|
96
102
|
return value ? "".concat(token.kind, " \"").concat(value, "\"") : token.kind;
|
|
97
103
|
}
|
|
98
|
-
var charCodeAt = String.prototype.charCodeAt;
|
|
99
|
-
var slice = String.prototype.slice;
|
|
100
104
|
/**
|
|
101
105
|
* Helper function for constructing the Token object.
|
|
102
106
|
*/
|
|
@@ -150,7 +154,7 @@ function readToken(lexer, prev) {
|
|
|
150
154
|
return new Tok(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);
|
|
151
155
|
}
|
|
152
156
|
|
|
153
|
-
var code = charCodeAt
|
|
157
|
+
var code = body.charCodeAt(pos); // SourceCharacter
|
|
154
158
|
|
|
155
159
|
switch (code) {
|
|
156
160
|
// !
|
|
@@ -179,7 +183,7 @@ function readToken(lexer, prev) {
|
|
|
179
183
|
// .
|
|
180
184
|
|
|
181
185
|
case 46:
|
|
182
|
-
if (charCodeAt
|
|
186
|
+
if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {
|
|
183
187
|
return new Tok(TokenKind.SPREAD, pos, pos + 3, line, col, prev);
|
|
184
188
|
}
|
|
185
189
|
|
|
@@ -289,7 +293,7 @@ function readToken(lexer, prev) {
|
|
|
289
293
|
// "
|
|
290
294
|
|
|
291
295
|
case 34:
|
|
292
|
-
if (charCodeAt
|
|
296
|
+
if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {
|
|
293
297
|
return readBlockString(source, pos, line, col, prev, lexer);
|
|
294
298
|
}
|
|
295
299
|
|
|
@@ -326,7 +330,7 @@ function positionAfterWhitespace(body, startPosition, lexer) {
|
|
|
326
330
|
var position = startPosition;
|
|
327
331
|
|
|
328
332
|
while (position < bodyLength) {
|
|
329
|
-
var code = charCodeAt
|
|
333
|
+
var code = body.charCodeAt(position); // tab | space | comma | BOM
|
|
330
334
|
|
|
331
335
|
if (code === 9 || code === 32 || code === 44 || code === 0xfeff) {
|
|
332
336
|
++position;
|
|
@@ -337,7 +341,7 @@ function positionAfterWhitespace(body, startPosition, lexer) {
|
|
|
337
341
|
lexer.lineStart = position;
|
|
338
342
|
} else if (code === 13) {
|
|
339
343
|
// carriage return
|
|
340
|
-
if (charCodeAt
|
|
344
|
+
if (body.charCodeAt(position + 1) === 10) {
|
|
341
345
|
position += 2;
|
|
342
346
|
} else {
|
|
343
347
|
++position;
|
|
@@ -365,11 +369,11 @@ function readComment(source, start, line, col, prev) {
|
|
|
365
369
|
var position = start;
|
|
366
370
|
|
|
367
371
|
do {
|
|
368
|
-
code = charCodeAt
|
|
369
|
-
} while (code
|
|
372
|
+
code = body.charCodeAt(++position);
|
|
373
|
+
} while (!isNaN(code) && ( // SourceCharacter but not LineTerminator
|
|
370
374
|
code > 0x001f || code === 0x0009));
|
|
371
375
|
|
|
372
|
-
return new Tok(TokenKind.COMMENT, start, position, line, col, prev, slice
|
|
376
|
+
return new Tok(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));
|
|
373
377
|
}
|
|
374
378
|
/**
|
|
375
379
|
* Reads a number token from the source file, either a float
|
|
@@ -388,43 +392,43 @@ function readNumber(source, start, firstCode, line, col, prev) {
|
|
|
388
392
|
|
|
389
393
|
if (code === 45) {
|
|
390
394
|
// -
|
|
391
|
-
code = charCodeAt
|
|
395
|
+
code = body.charCodeAt(++position);
|
|
392
396
|
}
|
|
393
397
|
|
|
394
398
|
if (code === 48) {
|
|
395
399
|
// 0
|
|
396
|
-
code = charCodeAt
|
|
400
|
+
code = body.charCodeAt(++position);
|
|
397
401
|
|
|
398
402
|
if (code >= 48 && code <= 57) {
|
|
399
403
|
throw syntaxError(source, position, "Invalid number, unexpected digit after 0: ".concat(printCharCode(code), "."));
|
|
400
404
|
}
|
|
401
405
|
} else {
|
|
402
406
|
position = readDigits(source, position, code);
|
|
403
|
-
code = charCodeAt
|
|
407
|
+
code = body.charCodeAt(position);
|
|
404
408
|
}
|
|
405
409
|
|
|
406
410
|
if (code === 46) {
|
|
407
411
|
// .
|
|
408
412
|
isFloat = true;
|
|
409
|
-
code = charCodeAt
|
|
413
|
+
code = body.charCodeAt(++position);
|
|
410
414
|
position = readDigits(source, position, code);
|
|
411
|
-
code = charCodeAt
|
|
415
|
+
code = body.charCodeAt(position);
|
|
412
416
|
}
|
|
413
417
|
|
|
414
418
|
if (code === 69 || code === 101) {
|
|
415
419
|
// E e
|
|
416
420
|
isFloat = true;
|
|
417
|
-
code = charCodeAt
|
|
421
|
+
code = body.charCodeAt(++position);
|
|
418
422
|
|
|
419
423
|
if (code === 43 || code === 45) {
|
|
420
424
|
// + -
|
|
421
|
-
code = charCodeAt
|
|
425
|
+
code = body.charCodeAt(++position);
|
|
422
426
|
}
|
|
423
427
|
|
|
424
428
|
position = readDigits(source, position, code);
|
|
425
429
|
}
|
|
426
430
|
|
|
427
|
-
return new Tok(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, slice
|
|
431
|
+
return new Tok(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));
|
|
428
432
|
}
|
|
429
433
|
/**
|
|
430
434
|
* Returns the new position in the source after reading digits.
|
|
@@ -439,7 +443,7 @@ function readDigits(source, start, firstCode) {
|
|
|
439
443
|
if (code >= 48 && code <= 57) {
|
|
440
444
|
// 0 - 9
|
|
441
445
|
do {
|
|
442
|
-
code = charCodeAt
|
|
446
|
+
code = body.charCodeAt(++position);
|
|
443
447
|
} while (code >= 48 && code <= 57); // 0 - 9
|
|
444
448
|
|
|
445
449
|
|
|
@@ -462,11 +466,11 @@ function readString(source, start, line, col, prev) {
|
|
|
462
466
|
var code = 0;
|
|
463
467
|
var value = '';
|
|
464
468
|
|
|
465
|
-
while (position < body.length && (code = charCodeAt
|
|
469
|
+
while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator
|
|
466
470
|
code !== 0x000a && code !== 0x000d) {
|
|
467
471
|
// Closing Quote (")
|
|
468
472
|
if (code === 34) {
|
|
469
|
-
value += slice
|
|
473
|
+
value += body.slice(chunkStart, position);
|
|
470
474
|
return new Tok(TokenKind.STRING, start, position + 1, line, col, prev, value);
|
|
471
475
|
} // SourceCharacter
|
|
472
476
|
|
|
@@ -479,8 +483,8 @@ function readString(source, start, line, col, prev) {
|
|
|
479
483
|
|
|
480
484
|
if (code === 92) {
|
|
481
485
|
// \
|
|
482
|
-
value += slice
|
|
483
|
-
code = charCodeAt
|
|
486
|
+
value += body.slice(chunkStart, position - 1);
|
|
487
|
+
code = body.charCodeAt(position);
|
|
484
488
|
|
|
485
489
|
switch (code) {
|
|
486
490
|
case 34:
|
|
@@ -516,16 +520,18 @@ function readString(source, start, line, col, prev) {
|
|
|
516
520
|
break;
|
|
517
521
|
|
|
518
522
|
case 117:
|
|
519
|
-
|
|
520
|
-
|
|
523
|
+
{
|
|
524
|
+
// uXXXX
|
|
525
|
+
var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));
|
|
521
526
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
527
|
+
if (charCode < 0) {
|
|
528
|
+
throw syntaxError(source, position, 'Invalid character escape sequence: ' + "\\u".concat(body.slice(position + 1, position + 5), "."));
|
|
529
|
+
}
|
|
525
530
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
531
|
+
value += String.fromCharCode(charCode);
|
|
532
|
+
position += 4;
|
|
533
|
+
break;
|
|
534
|
+
}
|
|
529
535
|
|
|
530
536
|
default:
|
|
531
537
|
throw syntaxError(source, position, "Invalid character escape sequence: \\".concat(String.fromCharCode(code), "."));
|
|
@@ -552,11 +558,11 @@ function readBlockString(source, start, line, col, prev, lexer) {
|
|
|
552
558
|
var code = 0;
|
|
553
559
|
var rawValue = '';
|
|
554
560
|
|
|
555
|
-
while (position < body.length && (code = charCodeAt
|
|
561
|
+
while (position < body.length && !isNaN(code = body.charCodeAt(position))) {
|
|
556
562
|
// Closing Triple-Quote (""")
|
|
557
|
-
if (code === 34 && charCodeAt
|
|
558
|
-
rawValue += slice
|
|
559
|
-
return new Tok(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev,
|
|
563
|
+
if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {
|
|
564
|
+
rawValue += body.slice(chunkStart, position);
|
|
565
|
+
return new Tok(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));
|
|
560
566
|
} // SourceCharacter
|
|
561
567
|
|
|
562
568
|
|
|
@@ -571,7 +577,7 @@ function readBlockString(source, start, line, col, prev, lexer) {
|
|
|
571
577
|
lexer.lineStart = position;
|
|
572
578
|
} else if (code === 13) {
|
|
573
579
|
// carriage return
|
|
574
|
-
if (charCodeAt
|
|
580
|
+
if (body.charCodeAt(position + 1) === 10) {
|
|
575
581
|
position += 2;
|
|
576
582
|
} else {
|
|
577
583
|
++position;
|
|
@@ -580,8 +586,8 @@ function readBlockString(source, start, line, col, prev, lexer) {
|
|
|
580
586
|
++lexer.line;
|
|
581
587
|
lexer.lineStart = position;
|
|
582
588
|
} else if ( // Escape Triple-Quote (\""")
|
|
583
|
-
code === 92 && charCodeAt
|
|
584
|
-
rawValue += slice
|
|
589
|
+
code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {
|
|
590
|
+
rawValue += body.slice(chunkStart, position) + '"""';
|
|
585
591
|
position += 4;
|
|
586
592
|
chunkStart = position;
|
|
587
593
|
} else {
|
|
@@ -635,7 +641,7 @@ function readName(source, start, line, col, prev) {
|
|
|
635
641
|
var position = start + 1;
|
|
636
642
|
var code = 0;
|
|
637
643
|
|
|
638
|
-
while (position !== bodyLength && (code = charCodeAt
|
|
644
|
+
while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _
|
|
639
645
|
code >= 48 && code <= 57 || // 0-9
|
|
640
646
|
code >= 65 && code <= 90 || // A-Z
|
|
641
647
|
code >= 97 && code <= 122) // a-z
|
|
@@ -643,5 +649,5 @@ function readName(source, start, line, col, prev) {
|
|
|
643
649
|
++position;
|
|
644
650
|
}
|
|
645
651
|
|
|
646
|
-
return new Tok(TokenKind.NAME, start, position, line, col, prev, slice
|
|
647
|
-
}
|
|
652
|
+
return new Tok(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));
|
|
653
|
+
}
|
package/language/location.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getLocation = getLocation;
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright (c)
|
|
9
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
10
10
|
*
|
|
11
11
|
* This source code is licensed under the MIT license found in the
|
|
12
12
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -37,4 +37,4 @@ function getLocation(source, position) {
|
|
|
37
37
|
line: line,
|
|
38
38
|
column: column
|
|
39
39
|
};
|
|
40
|
-
}
|
|
40
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type
|
|
10
|
+
import { type Source } from './source';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Represents a location in a Source.
|
package/language/location.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -30,4 +30,4 @@ export function getLocation(source, position) {
|
|
|
30
30
|
line: line,
|
|
31
31
|
column: column
|
|
32
32
|
};
|
|
33
|
-
}
|
|
33
|
+
}
|