graphql 14.0.2 → 14.1.0
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/README.md +4 -4
- package/error/GraphQLError.js +1 -1
- package/error/GraphQLError.js.flow +3 -3
- package/error/GraphQLError.mjs +1 -1
- package/error/formatError.js +1 -1
- package/error/formatError.mjs +1 -1
- package/error/index.mjs +1 -1
- package/error/locatedError.js +1 -1
- package/error/locatedError.mjs +1 -1
- package/error/printError.js +1 -1
- package/error/printError.mjs +1 -1
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.mjs +1 -1
- package/execution/execute.mjs +1 -1
- package/execution/index.mjs +1 -1
- package/execution/values.js +3 -3
- package/execution/values.js.flow +1 -1
- package/execution/values.mjs +2 -2
- package/graphql.js +1 -1
- package/graphql.mjs +1 -1
- package/index.js +12 -0
- package/index.js.flow +2 -0
- package/index.mjs +2 -2
- package/jsutils/dedent.js +1 -1
- package/jsutils/dedent.mjs +1 -1
- package/jsutils/defineToJSON.js +17 -6
- package/jsutils/defineToJSON.js.flow +14 -5
- package/jsutils/defineToJSON.mjs +14 -6
- package/jsutils/defineToStringTag.js +5 -5
- package/jsutils/defineToStringTag.js.flow +3 -3
- package/jsutils/defineToStringTag.mjs +4 -4
- package/jsutils/inspect.js +22 -11
- package/jsutils/inspect.js.flow +22 -2
- package/jsutils/inspect.mjs +21 -4
- package/jsutils/instanceOf.js +1 -1
- package/jsutils/instanceOf.mjs +1 -1
- package/jsutils/invariant.js +1 -1
- package/jsutils/invariant.mjs +1 -1
- package/jsutils/isInvalid.js +1 -1
- package/jsutils/isInvalid.mjs +1 -1
- package/jsutils/isNullish.js +1 -1
- package/jsutils/isNullish.mjs +1 -1
- package/jsutils/isPromise.js +1 -1
- package/jsutils/isPromise.mjs +1 -1
- package/jsutils/keyMap.js +1 -1
- package/jsutils/keyMap.mjs +1 -1
- package/jsutils/keyValMap.js +1 -1
- package/jsutils/keyValMap.mjs +1 -1
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +1 -1
- package/jsutils/memoize3.mjs +1 -1
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +17 -4
- package/jsutils/orList.js.flow +13 -7
- package/jsutils/orList.mjs +14 -4
- package/jsutils/promiseForObject.js +1 -1
- package/jsutils/promiseForObject.mjs +1 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.mjs +1 -1
- package/jsutils/quotedOrList.js +1 -1
- package/jsutils/quotedOrList.mjs +1 -1
- package/jsutils/suggestionList.js +1 -1
- package/jsutils/suggestionList.mjs +1 -1
- package/language/blockStringValue.js +1 -1
- package/language/blockStringValue.mjs +1 -1
- package/language/directiveLocation.js +1 -1
- package/language/directiveLocation.mjs +1 -1
- package/language/index.mjs +1 -1
- package/language/kinds.js +1 -1
- package/language/kinds.mjs +1 -1
- package/language/lexer.js +28 -12
- package/language/lexer.js.flow +33 -19
- package/language/lexer.mjs +27 -12
- package/language/location.js +1 -1
- package/language/location.mjs +1 -1
- package/language/parser.js +31 -38
- package/language/parser.js.flow +32 -48
- package/language/parser.mjs +30 -38
- package/language/predicates.js +1 -1
- package/language/predicates.mjs +1 -1
- package/language/printer.js +13 -7
- package/language/printer.js.flow +19 -9
- package/language/printer.mjs +13 -7
- package/language/source.js +8 -7
- package/language/source.mjs +1 -9
- package/language/visitor.js +6 -5
- package/language/visitor.js.flow +2 -4
- package/language/visitor.mjs +6 -5
- package/package.json +5 -2
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/{jsutils → polyfills}/isFinite.js +1 -1
- package/{jsutils → polyfills}/isFinite.js.flow +0 -0
- package/{jsutils → polyfills}/isFinite.mjs +1 -1
- package/{jsutils → polyfills}/isInteger.js +1 -1
- package/{jsutils → polyfills}/isInteger.js.flow +0 -0
- package/{jsutils → polyfills}/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +1 -1
- package/{jsutils → polyfills}/objectValues.js.flow +1 -1
- package/{jsutils → polyfills}/objectValues.mjs +1 -1
- package/subscription/asyncIteratorReject.mjs +1 -1
- package/subscription/index.mjs +1 -1
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +1 -1
- package/subscription/subscribe.mjs +1 -1
- package/type/definition.js +31 -130
- package/type/definition.js.flow +35 -47
- package/type/definition.mjs +30 -131
- package/type/directives.js +25 -29
- package/type/directives.js.flow +24 -20
- package/type/directives.mjs +22 -30
- package/type/index.js +12 -0
- package/type/index.js.flow +4 -0
- package/type/index.mjs +5 -3
- package/type/introspection.js +3 -3
- package/type/introspection.js.flow +1 -1
- package/type/introspection.mjs +2 -2
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +40 -26
- package/type/scalars.mjs +44 -26
- package/type/schema.js +82 -87
- package/type/schema.js.flow +17 -9
- package/type/schema.mjs +79 -86
- package/type/validate.js +168 -175
- package/type/validate.js.flow +8 -49
- package/type/validate.mjs +159 -175
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +1 -1
- package/utilities/TypeInfo.mjs +2 -24
- package/utilities/assertValidName.js +1 -1
- package/utilities/assertValidName.mjs +1 -1
- package/utilities/astFromValue.js +2 -2
- package/utilities/astFromValue.js.flow +1 -1
- package/utilities/astFromValue.mjs +2 -2
- package/utilities/buildASTSchema.js +53 -53
- package/utilities/buildASTSchema.js.flow +14 -30
- package/utilities/buildASTSchema.mjs +45 -55
- package/utilities/buildClientSchema.js +3 -3
- package/utilities/buildClientSchema.js.flow +6 -2
- package/utilities/buildClientSchema.mjs +3 -3
- package/utilities/coerceValue.js +38 -19
- package/utilities/coerceValue.js.flow +41 -47
- package/utilities/coerceValue.mjs +38 -20
- package/utilities/concatAST.js +1 -1
- package/utilities/concatAST.mjs +1 -1
- package/utilities/extendSchema.js +228 -312
- package/utilities/extendSchema.js.flow +27 -152
- package/utilities/extendSchema.mjs +229 -312
- package/utilities/findBreakingChanges.js +7 -5
- package/utilities/findBreakingChanges.js.flow +3 -2
- package/utilities/findBreakingChanges.mjs +6 -5
- package/utilities/findDeprecatedUsages.js +1 -1
- package/utilities/findDeprecatedUsages.mjs +1 -1
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.mjs +1 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.mjs +1 -1
- package/utilities/index.mjs +1 -1
- package/utilities/introspectionFromSchema.js +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -1
- package/utilities/introspectionQuery.js +1 -1
- package/utilities/introspectionQuery.mjs +1 -1
- package/utilities/isValidJSValue.js +1 -1
- package/utilities/isValidJSValue.mjs +1 -1
- package/utilities/isValidLiteralValue.js +1 -1
- package/utilities/isValidLiteralValue.mjs +1 -1
- package/utilities/lexicographicSortSchema.js +2 -2
- package/utilities/lexicographicSortSchema.js.flow +1 -1
- package/utilities/lexicographicSortSchema.mjs +2 -2
- package/utilities/schemaPrinter.js +3 -3
- package/utilities/schemaPrinter.js.flow +1 -1
- package/utilities/schemaPrinter.mjs +2 -2
- package/utilities/separateOperations.js +1 -1
- package/utilities/separateOperations.mjs +1 -1
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.mjs +1 -1
- package/utilities/typeFromAST.js +1 -1
- package/utilities/typeFromAST.mjs +1 -1
- package/utilities/valueFromAST.js +3 -3
- package/utilities/valueFromAST.js.flow +1 -1
- package/utilities/valueFromAST.mjs +2 -2
- package/utilities/valueFromASTUntyped.js +1 -1
- package/utilities/valueFromASTUntyped.mjs +1 -1
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +52 -49
- package/validation/ValidationContext.mjs +52 -77
- package/validation/index.mjs +1 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +1 -1
- package/validation/rules/ExecutableDefinitions.mjs +1 -1
- package/validation/rules/FieldsOnCorrectType.js +1 -1
- package/validation/rules/FieldsOnCorrectType.mjs +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
- package/validation/rules/KnownArgumentNames.mjs +1 -1
- package/validation/rules/KnownDirectives.js +1 -1
- package/validation/rules/KnownDirectives.mjs +1 -1
- package/validation/rules/KnownFragmentNames.js +1 -1
- package/validation/rules/KnownFragmentNames.mjs +1 -1
- package/validation/rules/KnownTypeNames.js +59 -21
- package/validation/rules/KnownTypeNames.js.flow +54 -20
- package/validation/rules/KnownTypeNames.mjs +56 -21
- package/validation/rules/LoneAnonymousOperation.js +1 -1
- package/validation/rules/LoneAnonymousOperation.mjs +1 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +1 -1
- package/validation/rules/NoFragmentCycles.js +1 -1
- package/validation/rules/NoFragmentCycles.js.flow +2 -2
- package/validation/rules/NoFragmentCycles.mjs +1 -1
- package/validation/rules/NoUndefinedVariables.js +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +1 -1
- package/validation/rules/NoUnusedFragments.js +1 -1
- package/validation/rules/NoUnusedFragments.js.flow +2 -2
- package/validation/rules/NoUnusedFragments.mjs +1 -1
- package/validation/rules/NoUnusedVariables.js +1 -1
- package/validation/rules/NoUnusedVariables.mjs +1 -1
- package/validation/rules/OverlappingFieldsCanBeMerged.js +56 -32
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +3 -3
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +47 -32
- package/validation/rules/PossibleFragmentSpreads.js +1 -1
- package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
- package/validation/rules/PossibleTypeExtensions.js +158 -0
- package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
- package/validation/rules/PossibleTypeExtensions.mjs +146 -0
- package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
- package/validation/rules/ScalarLeafs.js +1 -1
- package/validation/rules/ScalarLeafs.mjs +1 -1
- package/validation/rules/SingleFieldSubscriptions.js +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
- package/validation/rules/UniqueArgumentNames.js +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +1 -1
- package/validation/rules/UniqueDirectiveNames.js +55 -0
- package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
- package/validation/rules/UniqueDirectiveNames.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
- package/validation/rules/UniqueEnumValueNames.js +94 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
- package/validation/rules/UniqueEnumValueNames.mjs +81 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
- package/validation/rules/UniqueFragmentNames.js +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +1 -1
- package/validation/rules/UniqueInputFieldNames.js +1 -1
- package/validation/rules/UniqueInputFieldNames.mjs +1 -1
- package/validation/rules/UniqueOperationNames.js +1 -1
- package/validation/rules/UniqueOperationNames.mjs +1 -1
- package/validation/rules/UniqueOperationTypes.js +85 -0
- package/validation/rules/UniqueOperationTypes.js.flow +76 -0
- package/validation/rules/UniqueOperationTypes.mjs +73 -0
- package/validation/rules/UniqueTypeNames.js +62 -0
- package/validation/rules/UniqueTypeNames.js.flow +67 -0
- package/validation/rules/UniqueTypeNames.mjs +50 -0
- package/validation/rules/UniqueVariableNames.js +1 -1
- package/validation/rules/UniqueVariableNames.mjs +1 -1
- package/validation/rules/ValuesOfCorrectType.js +29 -13
- package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
- package/validation/rules/ValuesOfCorrectType.mjs +28 -13
- package/validation/rules/VariablesAreInputTypes.js +1 -1
- package/validation/rules/VariablesAreInputTypes.mjs +1 -1
- package/validation/rules/VariablesInAllowedPosition.js +4 -4
- package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
- package/validation/specifiedRules.js +14 -2
- package/validation/specifiedRules.js.flow +13 -0
- package/validation/specifiedRules.mjs +8 -2
- package/validation/validate.js +1 -1
- package/validation/validate.mjs +1 -1
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
package/language/parser.mjs
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
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.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import inspect from '../jsutils/inspect';
|
|
10
|
+
import defineToJSON from '../jsutils/defineToJSON';
|
|
10
11
|
import { Source } from './source';
|
|
11
12
|
import { syntaxError } from '../error';
|
|
12
13
|
import { createLexer, TokenKind, getTokenDesc } from './lexer';
|
|
@@ -232,23 +233,12 @@ function parseVariableDefinitions(lexer) {
|
|
|
232
233
|
|
|
233
234
|
function parseVariableDefinition(lexer) {
|
|
234
235
|
var start = lexer.token;
|
|
235
|
-
|
|
236
|
-
if (lexer.options.experimentalVariableDefinitionDirectives) {
|
|
237
|
-
return {
|
|
238
|
-
kind: Kind.VARIABLE_DEFINITION,
|
|
239
|
-
variable: parseVariable(lexer),
|
|
240
|
-
type: (expect(lexer, TokenKind.COLON), parseTypeReference(lexer)),
|
|
241
|
-
defaultValue: skip(lexer, TokenKind.EQUALS) ? parseValueLiteral(lexer, true) : undefined,
|
|
242
|
-
directives: parseDirectives(lexer, true),
|
|
243
|
-
loc: loc(lexer, start)
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
|
|
247
236
|
return {
|
|
248
237
|
kind: Kind.VARIABLE_DEFINITION,
|
|
249
238
|
variable: parseVariable(lexer),
|
|
250
239
|
type: (expect(lexer, TokenKind.COLON), parseTypeReference(lexer)),
|
|
251
240
|
defaultValue: skip(lexer, TokenKind.EQUALS) ? parseValueLiteral(lexer, true) : undefined,
|
|
241
|
+
directives: parseDirectives(lexer, true),
|
|
252
242
|
loc: loc(lexer, start)
|
|
253
243
|
};
|
|
254
244
|
}
|
|
@@ -366,8 +356,9 @@ function parseConstArgument(lexer) {
|
|
|
366
356
|
function parseFragment(lexer) {
|
|
367
357
|
var start = lexer.token;
|
|
368
358
|
expect(lexer, TokenKind.SPREAD);
|
|
359
|
+
var hasTypeCondition = skipKeyword(lexer, 'on');
|
|
369
360
|
|
|
370
|
-
if (peek(lexer, TokenKind.NAME)
|
|
361
|
+
if (!hasTypeCondition && peek(lexer, TokenKind.NAME)) {
|
|
371
362
|
return {
|
|
372
363
|
kind: Kind.FRAGMENT_SPREAD,
|
|
373
364
|
name: parseFragmentName(lexer),
|
|
@@ -376,16 +367,9 @@ function parseFragment(lexer) {
|
|
|
376
367
|
};
|
|
377
368
|
}
|
|
378
369
|
|
|
379
|
-
var typeCondition;
|
|
380
|
-
|
|
381
|
-
if (lexer.token.value === 'on') {
|
|
382
|
-
lexer.advance();
|
|
383
|
-
typeCondition = parseNamedType(lexer);
|
|
384
|
-
}
|
|
385
|
-
|
|
386
370
|
return {
|
|
387
371
|
kind: Kind.INLINE_FRAGMENT,
|
|
388
|
-
typeCondition:
|
|
372
|
+
typeCondition: hasTypeCondition ? parseNamedType(lexer) : undefined,
|
|
389
373
|
directives: parseDirectives(lexer, false),
|
|
390
374
|
selectionSet: parseSelectionSet(lexer),
|
|
391
375
|
loc: loc(lexer, start)
|
|
@@ -822,9 +806,8 @@ function parseObjectTypeDefinition(lexer) {
|
|
|
822
806
|
function parseImplementsInterfaces(lexer) {
|
|
823
807
|
var types = [];
|
|
824
808
|
|
|
825
|
-
if (lexer
|
|
826
|
-
|
|
827
|
-
|
|
809
|
+
if (skipKeyword(lexer, 'implements')) {
|
|
810
|
+
// Optional leading ampersand
|
|
828
811
|
skip(lexer, TokenKind.AMP);
|
|
829
812
|
|
|
830
813
|
do {
|
|
@@ -1395,17 +1378,16 @@ function Loc(startToken, endToken, source) {
|
|
|
1395
1378
|
} // Print a simplified form when appearing in JSON/util.inspect.
|
|
1396
1379
|
|
|
1397
1380
|
|
|
1398
|
-
Loc
|
|
1381
|
+
defineToJSON(Loc, function () {
|
|
1399
1382
|
return {
|
|
1400
1383
|
start: this.start,
|
|
1401
1384
|
end: this.end
|
|
1402
1385
|
};
|
|
1403
|
-
};
|
|
1386
|
+
});
|
|
1404
1387
|
/**
|
|
1405
1388
|
* Determines if the next token is of a given kind
|
|
1406
1389
|
*/
|
|
1407
1390
|
|
|
1408
|
-
|
|
1409
1391
|
function peek(lexer, kind) {
|
|
1410
1392
|
return lexer.token.kind === kind;
|
|
1411
1393
|
}
|
|
@@ -1416,13 +1398,12 @@ function peek(lexer, kind) {
|
|
|
1416
1398
|
|
|
1417
1399
|
|
|
1418
1400
|
function skip(lexer, kind) {
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
if (match) {
|
|
1401
|
+
if (lexer.token.kind === kind) {
|
|
1422
1402
|
lexer.advance();
|
|
1403
|
+
return true;
|
|
1423
1404
|
}
|
|
1424
1405
|
|
|
1425
|
-
return
|
|
1406
|
+
return false;
|
|
1426
1407
|
}
|
|
1427
1408
|
/**
|
|
1428
1409
|
* If the next token is of the given kind, return that token after advancing
|
|
@@ -1441,21 +1422,32 @@ function expect(lexer, kind) {
|
|
|
1441
1422
|
throw syntaxError(lexer.source, token.start, "Expected ".concat(kind, ", found ").concat(getTokenDesc(token)));
|
|
1442
1423
|
}
|
|
1443
1424
|
/**
|
|
1444
|
-
* If the next token is a keyword with the given value, return
|
|
1445
|
-
*
|
|
1446
|
-
* false.
|
|
1425
|
+
* If the next token is a keyword with the given value, return true after advancing
|
|
1426
|
+
* the lexer. Otherwise, do not change the parser state and return false.
|
|
1447
1427
|
*/
|
|
1448
1428
|
|
|
1449
1429
|
|
|
1450
|
-
function
|
|
1430
|
+
function skipKeyword(lexer, value) {
|
|
1451
1431
|
var token = lexer.token;
|
|
1452
1432
|
|
|
1453
1433
|
if (token.kind === TokenKind.NAME && token.value === value) {
|
|
1454
1434
|
lexer.advance();
|
|
1455
|
-
return
|
|
1435
|
+
return true;
|
|
1456
1436
|
}
|
|
1457
1437
|
|
|
1458
|
-
|
|
1438
|
+
return false;
|
|
1439
|
+
}
|
|
1440
|
+
/**
|
|
1441
|
+
* If the next token is a keyword with the given value, return that token after
|
|
1442
|
+
* advancing the lexer. Otherwise, do not change the parser state and throw
|
|
1443
|
+
* an error.
|
|
1444
|
+
*/
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
function expectKeyword(lexer, value) {
|
|
1448
|
+
if (!skipKeyword(lexer, value)) {
|
|
1449
|
+
throw syntaxError(lexer.source, lexer.token.start, "Expected \"".concat(value, "\", found ").concat(getTokenDesc(lexer.token)));
|
|
1450
|
+
}
|
|
1459
1451
|
}
|
|
1460
1452
|
/**
|
|
1461
1453
|
* Helper function for creating an error when an unexpected lexed token
|
package/language/predicates.js
CHANGED
|
@@ -21,7 +21,7 @@ var _kinds = require("./kinds");
|
|
|
21
21
|
* This source code is licensed under the MIT license found in the
|
|
22
22
|
* LICENSE file in the root directory of this source tree.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
*
|
|
25
25
|
*/
|
|
26
26
|
function isDefinitionNode(node) {
|
|
27
27
|
return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);
|
package/language/predicates.mjs
CHANGED
package/language/printer.js
CHANGED
|
@@ -12,6 +12,8 @@ var _visitor = require("./visitor");
|
|
|
12
12
|
*
|
|
13
13
|
* This source code is licensed under the MIT license found in the
|
|
14
14
|
* LICENSE file in the root directory of this source tree.
|
|
15
|
+
*
|
|
16
|
+
*
|
|
15
17
|
*/
|
|
16
18
|
|
|
17
19
|
/**
|
|
@@ -177,9 +179,7 @@ var printDocASTReducer = {
|
|
|
177
179
|
args = _ref24.arguments,
|
|
178
180
|
type = _ref24.type,
|
|
179
181
|
directives = _ref24.directives;
|
|
180
|
-
return name + (args
|
|
181
|
-
return arg.indexOf('\n') === -1;
|
|
182
|
-
}) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ': ' + type + wrap(' ', join(directives, ' '));
|
|
182
|
+
return name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));
|
|
183
183
|
}),
|
|
184
184
|
InputValueDefinition: addDescription(function (_ref25) {
|
|
185
185
|
var name = _ref25.name,
|
|
@@ -221,9 +221,7 @@ var printDocASTReducer = {
|
|
|
221
221
|
var name = _ref31.name,
|
|
222
222
|
args = _ref31.arguments,
|
|
223
223
|
locations = _ref31.locations;
|
|
224
|
-
return 'directive @' + name + (args
|
|
225
|
-
return arg.indexOf('\n') === -1;
|
|
226
|
-
}) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ' on ' + join(locations, ' | ');
|
|
224
|
+
return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ' on ' + join(locations, ' | ');
|
|
227
225
|
}),
|
|
228
226
|
SchemaExtension: function SchemaExtension(_ref32) {
|
|
229
227
|
var directives = _ref32.directives,
|
|
@@ -306,6 +304,14 @@ function wrap(start, maybeString, end) {
|
|
|
306
304
|
function indent(maybeString) {
|
|
307
305
|
return maybeString && ' ' + maybeString.replace(/\n/g, '\n ');
|
|
308
306
|
}
|
|
307
|
+
|
|
308
|
+
function isMultiline(string) {
|
|
309
|
+
return string.indexOf('\n') !== -1;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function hasMultilineItems(maybeArray) {
|
|
313
|
+
return maybeArray && maybeArray.some(isMultiline);
|
|
314
|
+
}
|
|
309
315
|
/**
|
|
310
316
|
* Print a block string in the indented block form by adding a leading and
|
|
311
317
|
* trailing blank line. However, if a block string starts with whitespace and is
|
|
@@ -315,5 +321,5 @@ function indent(maybeString) {
|
|
|
315
321
|
|
|
316
322
|
function printBlockString(value, isDescription) {
|
|
317
323
|
var escaped = value.replace(/"""/g, '\\"""');
|
|
318
|
-
return (value[0]
|
|
324
|
+
return isMultiline(value) || value[0] !== ' ' && value[0] !== '\t' ? "\"\"\"\n".concat(isDescription ? escaped : indent(escaped), "\n\"\"\"") : "\"\"\"".concat(escaped.replace(/"$/, '"\n'), "\"\"\"");
|
|
319
325
|
}
|
package/language/printer.js.flow
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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.
|
|
6
|
+
*
|
|
7
|
+
* @noflow
|
|
6
8
|
*/
|
|
7
9
|
|
|
8
10
|
import { visit } from './visitor';
|
|
@@ -134,9 +136,9 @@ const printDocASTReducer = {
|
|
|
134
136
|
FieldDefinition: addDescription(
|
|
135
137
|
({ name, arguments: args, type, directives }) =>
|
|
136
138
|
name +
|
|
137
|
-
(args
|
|
138
|
-
? wrap('(', join(args, '
|
|
139
|
-
: wrap('(
|
|
139
|
+
(hasMultilineItems(args)
|
|
140
|
+
? wrap('(\n', indent(join(args, '\n')), '\n)')
|
|
141
|
+
: wrap('(', join(args, ', '), ')')) +
|
|
140
142
|
': ' +
|
|
141
143
|
type +
|
|
142
144
|
wrap(' ', join(directives, ' ')),
|
|
@@ -182,9 +184,9 @@ const printDocASTReducer = {
|
|
|
182
184
|
({ name, arguments: args, locations }) =>
|
|
183
185
|
'directive @' +
|
|
184
186
|
name +
|
|
185
|
-
(args
|
|
186
|
-
? wrap('(', join(args, '
|
|
187
|
-
: wrap('(
|
|
187
|
+
(hasMultilineItems(args)
|
|
188
|
+
? wrap('(\n', indent(join(args, '\n')), '\n)')
|
|
189
|
+
: wrap('(', join(args, ', '), ')')) +
|
|
188
190
|
' on ' +
|
|
189
191
|
join(locations, ' | '),
|
|
190
192
|
),
|
|
@@ -262,6 +264,14 @@ function indent(maybeString) {
|
|
|
262
264
|
return maybeString && ' ' + maybeString.replace(/\n/g, '\n ');
|
|
263
265
|
}
|
|
264
266
|
|
|
267
|
+
function isMultiline(string) {
|
|
268
|
+
return string.indexOf('\n') !== -1;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function hasMultilineItems(maybeArray) {
|
|
272
|
+
return maybeArray && maybeArray.some(isMultiline);
|
|
273
|
+
}
|
|
274
|
+
|
|
265
275
|
/**
|
|
266
276
|
* Print a block string in the indented block form by adding a leading and
|
|
267
277
|
* trailing blank line. However, if a block string starts with whitespace and is
|
|
@@ -269,7 +279,7 @@ function indent(maybeString) {
|
|
|
269
279
|
*/
|
|
270
280
|
function printBlockString(value, isDescription) {
|
|
271
281
|
const escaped = value.replace(/"""/g, '\\"""');
|
|
272
|
-
return (value[0]
|
|
273
|
-
? `"""${escaped
|
|
274
|
-
: `"""
|
|
282
|
+
return isMultiline(value) || (value[0] !== ' ' && value[0] !== '\t')
|
|
283
|
+
? `"""\n${isDescription ? escaped : indent(escaped)}\n"""`
|
|
284
|
+
: `"""${escaped.replace(/"$/, '"\n')}"""`;
|
|
275
285
|
}
|
package/language/printer.mjs
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
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.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
6
8
|
*/
|
|
7
9
|
import { visit } from './visitor';
|
|
8
10
|
/**
|
|
@@ -168,9 +170,7 @@ var printDocASTReducer = {
|
|
|
168
170
|
args = _ref24.arguments,
|
|
169
171
|
type = _ref24.type,
|
|
170
172
|
directives = _ref24.directives;
|
|
171
|
-
return name + (args
|
|
172
|
-
return arg.indexOf('\n') === -1;
|
|
173
|
-
}) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ': ' + type + wrap(' ', join(directives, ' '));
|
|
173
|
+
return name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));
|
|
174
174
|
}),
|
|
175
175
|
InputValueDefinition: addDescription(function (_ref25) {
|
|
176
176
|
var name = _ref25.name,
|
|
@@ -212,9 +212,7 @@ var printDocASTReducer = {
|
|
|
212
212
|
var name = _ref31.name,
|
|
213
213
|
args = _ref31.arguments,
|
|
214
214
|
locations = _ref31.locations;
|
|
215
|
-
return 'directive @' + name + (args
|
|
216
|
-
return arg.indexOf('\n') === -1;
|
|
217
|
-
}) ? wrap('(', join(args, ', '), ')') : wrap('(\n', indent(join(args, '\n')), '\n)')) + ' on ' + join(locations, ' | ');
|
|
215
|
+
return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\n', indent(join(args, '\n')), '\n)') : wrap('(', join(args, ', '), ')')) + ' on ' + join(locations, ' | ');
|
|
218
216
|
}),
|
|
219
217
|
SchemaExtension: function SchemaExtension(_ref32) {
|
|
220
218
|
var directives = _ref32.directives,
|
|
@@ -297,6 +295,14 @@ function wrap(start, maybeString, end) {
|
|
|
297
295
|
function indent(maybeString) {
|
|
298
296
|
return maybeString && ' ' + maybeString.replace(/\n/g, '\n ');
|
|
299
297
|
}
|
|
298
|
+
|
|
299
|
+
function isMultiline(string) {
|
|
300
|
+
return string.indexOf('\n') !== -1;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function hasMultilineItems(maybeArray) {
|
|
304
|
+
return maybeArray && maybeArray.some(isMultiline);
|
|
305
|
+
}
|
|
300
306
|
/**
|
|
301
307
|
* Print a block string in the indented block form by adding a leading and
|
|
302
308
|
* trailing blank line. However, if a block string starts with whitespace and is
|
|
@@ -306,5 +312,5 @@ function indent(maybeString) {
|
|
|
306
312
|
|
|
307
313
|
function printBlockString(value, isDescription) {
|
|
308
314
|
var escaped = value.replace(/"""/g, '\\"""');
|
|
309
|
-
return (value[0]
|
|
315
|
+
return isMultiline(value) || value[0] !== ' ' && value[0] !== '\t' ? "\"\"\"\n".concat(isDescription ? escaped : indent(escaped), "\n\"\"\"") : "\"\"\"".concat(escaped.replace(/"$/, '"\n'), "\"\"\"");
|
|
310
316
|
}
|
package/language/source.js
CHANGED
|
@@ -11,7 +11,14 @@ var _defineToStringTag = _interopRequireDefault(require("../jsutils/defineToStri
|
|
|
11
11
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
16
|
+
*
|
|
17
|
+
* This source code is licensed under the MIT license found in the
|
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
15
22
|
|
|
16
23
|
/**
|
|
17
24
|
* A representation of source input to GraphQL.
|
|
@@ -22,12 +29,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
22
29
|
* line and column in locationOffset are 1-indexed
|
|
23
30
|
*/
|
|
24
31
|
var Source = function Source(body, name, locationOffset) {
|
|
25
|
-
_defineProperty(this, "body", void 0);
|
|
26
|
-
|
|
27
|
-
_defineProperty(this, "name", void 0);
|
|
28
|
-
|
|
29
|
-
_defineProperty(this, "locationOffset", void 0);
|
|
30
|
-
|
|
31
32
|
this.body = body;
|
|
32
33
|
this.name = name || 'GraphQL request';
|
|
33
34
|
this.locationOffset = locationOffset || {
|
package/language/source.mjs
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
5
3
|
*
|
|
6
4
|
* This source code is licensed under the MIT license found in the
|
|
7
5
|
* LICENSE file in the root directory of this source tree.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
7
|
+
*
|
|
10
8
|
*/
|
|
11
9
|
import invariant from '../jsutils/invariant';
|
|
12
10
|
import defineToStringTag from '../jsutils/defineToStringTag';
|
|
@@ -20,12 +18,6 @@ import defineToStringTag from '../jsutils/defineToStringTag';
|
|
|
20
18
|
* line and column in locationOffset are 1-indexed
|
|
21
19
|
*/
|
|
22
20
|
export var Source = function Source(body, name, locationOffset) {
|
|
23
|
-
_defineProperty(this, "body", void 0);
|
|
24
|
-
|
|
25
|
-
_defineProperty(this, "name", void 0);
|
|
26
|
-
|
|
27
|
-
_defineProperty(this, "locationOffset", void 0);
|
|
28
|
-
|
|
29
21
|
this.body = body;
|
|
30
22
|
this.name = name || 'GraphQL request';
|
|
31
23
|
this.locationOffset = locationOffset || {
|
package/language/visitor.js
CHANGED
|
@@ -19,7 +19,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
19
|
* This source code is licensed under the MIT license found in the
|
|
20
20
|
* LICENSE file in the root directory of this source tree.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
*
|
|
23
23
|
*/
|
|
24
24
|
var QueryDocumentKeys = {
|
|
25
25
|
Name: [],
|
|
@@ -192,10 +192,11 @@ function visit(root, visitor) {
|
|
|
192
192
|
} else {
|
|
193
193
|
var clone = {};
|
|
194
194
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
195
|
+
var _arr = Object.keys(node);
|
|
196
|
+
|
|
197
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
198
|
+
var k = _arr[_i];
|
|
199
|
+
clone[k] = node[k];
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
node = clone;
|
package/language/visitor.js.flow
CHANGED
|
@@ -256,10 +256,8 @@ export function visit(
|
|
|
256
256
|
node = node.slice();
|
|
257
257
|
} else {
|
|
258
258
|
const clone = {};
|
|
259
|
-
for (const k
|
|
260
|
-
|
|
261
|
-
clone[k] = node[k];
|
|
262
|
-
}
|
|
259
|
+
for (const k of Object.keys(node)) {
|
|
260
|
+
clone[k] = node[k];
|
|
263
261
|
}
|
|
264
262
|
node = clone;
|
|
265
263
|
}
|
package/language/visitor.mjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
9
|
import inspect from '../jsutils/inspect';
|
|
10
10
|
export var QueryDocumentKeys = {
|
|
@@ -175,10 +175,11 @@ export function visit(root, visitor) {
|
|
|
175
175
|
} else {
|
|
176
176
|
var clone = {};
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
178
|
+
var _arr = Object.keys(node);
|
|
179
|
+
|
|
180
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
181
|
+
var k = _arr[_i];
|
|
182
|
+
clone[k] = node[k];
|
|
182
183
|
}
|
|
183
184
|
|
|
184
185
|
node = clone;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphql",
|
|
3
|
-
"version": "14.0
|
|
3
|
+
"version": "14.1.0",
|
|
4
4
|
"description": "A Query Language and Runtime which can target any service.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "
|
|
15
|
+
"url": "https://github.com/graphql/graphql-js.git"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"graphql",
|
|
@@ -23,5 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"iterall": "^1.2.2"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"tag": "latest"
|
|
26
29
|
}
|
|
27
30
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
10
|
+
*
|
|
11
|
+
* This source code is licensed under the MIT license found in the
|
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint-disable no-redeclare */
|
|
18
|
+
// $FlowFixMe
|
|
19
|
+
var find = Array.prototype.find ? function (list, predicate) {
|
|
20
|
+
return Array.prototype.find.call(list, predicate);
|
|
21
|
+
} : function (list, predicate) {
|
|
22
|
+
for (var i = 0; i < list.length; i++) {
|
|
23
|
+
var value = list[i];
|
|
24
|
+
|
|
25
|
+
if (predicate(value)) {
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var _default = find;
|
|
31
|
+
exports.default = _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
declare function find<T>(
|
|
11
|
+
list: $ReadOnlyArray<T>,
|
|
12
|
+
predicate: (item: T) => boolean,
|
|
13
|
+
): T | void;
|
|
14
|
+
|
|
15
|
+
/* eslint-disable no-redeclare */
|
|
16
|
+
// $FlowFixMe
|
|
17
|
+
const find = Array.prototype.find
|
|
18
|
+
? function(list, predicate) {
|
|
19
|
+
return Array.prototype.find.call(list, predicate);
|
|
20
|
+
}
|
|
21
|
+
: function(list, predicate) {
|
|
22
|
+
for (let i = 0; i < list.length; i++) {
|
|
23
|
+
const value = list[i];
|
|
24
|
+
if (predicate(value)) {
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export default find;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* eslint-disable no-redeclare */
|
|
11
|
+
// $FlowFixMe
|
|
12
|
+
var find = Array.prototype.find ? function (list, predicate) {
|
|
13
|
+
return Array.prototype.find.call(list, predicate);
|
|
14
|
+
} : function (list, predicate) {
|
|
15
|
+
for (var i = 0; i < list.length; i++) {
|
|
16
|
+
var value = list[i];
|
|
17
|
+
|
|
18
|
+
if (predicate(value)) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export default find;
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) 2019-present, Facebook, Inc.
|
|
10
|
+
*
|
|
11
|
+
* This source code is licensed under the MIT license found in the
|
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
|
13
|
+
*
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint-disable no-redeclare */
|
|
18
|
+
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838
|
|
19
|
+
var objectEntries = Object.entries || function (obj) {
|
|
20
|
+
return Object.keys(obj).map(function (key) {
|
|
21
|
+
return [key, obj[key]];
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var _default = objectEntries;
|
|
26
|
+
exports.default = _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-present, Facebook, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ObjMap } from '../jsutils/ObjMap';
|
|
11
|
+
|
|
12
|
+
declare function objectEntries<T>(obj: ObjMap<T>): Array<[string, T]>;
|
|
13
|
+
|
|
14
|
+
/* eslint-disable no-redeclare */
|
|
15
|
+
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/5838
|
|
16
|
+
const objectEntries =
|
|
17
|
+
Object.entries || (obj => Object.keys(obj).map(key => [key, obj[key]]));
|
|
18
|
+
|
|
19
|
+
export default objectEntries;
|