graphql 15.1.0 → 15.4.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/LICENSE +1 -1
- package/README.md +10 -12
- package/error/GraphQLError.js +5 -5
- package/error/GraphQLError.js.flow +5 -5
- package/error/GraphQLError.mjs +1 -1
- package/error/formatError.js +1 -1
- package/error/formatError.js.flow +2 -3
- 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 +11 -5
- package/error/locatedError.mjs +6 -4
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.js.flow +1 -2
- package/execution/execute.d.ts +24 -16
- package/execution/execute.js +123 -105
- package/execution/execute.js.flow +169 -153
- package/execution/execute.mjs +101 -82
- package/execution/index.d.ts +2 -0
- package/execution/index.js +9 -3
- package/execution/index.js.flow +12 -3
- package/execution/index.mjs +1 -1
- package/execution/values.js +11 -11
- package/execution/values.js.flow +10 -14
- package/graphql.js +5 -5
- package/graphql.js.flow +9 -9
- package/index.d.ts +19 -1
- package/index.js +27 -9
- package/index.js.flow +10 -3
- package/index.mjs +4 -3
- package/jsutils/ObjMap.js.flow +0 -1
- package/jsutils/Path.d.ts +6 -1
- package/jsutils/Path.js +3 -2
- package/jsutils/Path.js.flow +3 -2
- package/jsutils/Path.mjs +3 -2
- 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.flow +2 -3
- package/jsutils/invariant.js.flow +0 -1
- package/jsutils/isAsyncIterable.js +19 -0
- package/jsutils/isAsyncIterable.js.flow +18 -0
- package/jsutils/isAsyncIterable.mjs +16 -0
- package/jsutils/isCollection.js +1 -1
- package/jsutils/isCollection.js.flow +0 -1
- package/jsutils/isObjectLike.js.flow +0 -1
- package/jsutils/isPromise.js.flow +0 -1
- package/jsutils/keyMap.js.flow +1 -2
- package/jsutils/keyValMap.js.flow +1 -2
- package/jsutils/mapValue.js +1 -1
- package/jsutils/mapValue.js.flow +1 -2
- package/jsutils/memoize3.js +2 -5
- package/jsutils/memoize3.js.flow +2 -5
- package/jsutils/memoize3.mjs +2 -5
- package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
- package/jsutils/printPathArray.js.flow +0 -1
- package/jsutils/promiseForObject.js.flow +1 -2
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.js.flow +1 -1
- package/jsutils/promiseReduce.mjs +1 -1
- package/jsutils/suggestionList.js.flow +1 -2
- package/jsutils/toObjMap.js +1 -1
- package/jsutils/toObjMap.js.flow +5 -6
- package/language/ast.js +1 -1
- package/language/ast.js.flow +2 -3
- package/language/blockString.d.ts +1 -1
- package/language/blockString.js +53 -32
- package/language/blockString.js.flow +49 -34
- 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 +191 -186
- package/language/lexer.mjs +239 -180
- package/language/location.js.flow +1 -2
- package/language/parser.js +73 -68
- package/language/parser.js.flow +112 -106
- package/language/parser.mjs +66 -62
- package/language/predicates.js +1 -1
- package/language/predicates.js.flow +1 -2
- package/language/printLocation.js +1 -1
- package/language/printLocation.js.flow +4 -4
- package/language/printer.js +20 -13
- package/language/printer.js.flow +27 -25
- package/language/printer.mjs +18 -11
- package/language/source.d.ts +12 -6
- package/language/source.js +25 -9
- package/language/source.js.flow +25 -8
- package/language/source.mjs +19 -7
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.d.ts +3 -3
- package/language/visitor.js +5 -5
- package/language/visitor.js.flow +5 -5
- package/language/visitor.mjs +3 -3
- package/package.json +1 -1
- 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 +2 -3
- package/polyfills/objectEntries.mjs +1 -1
- package/polyfills/objectValues.js +1 -1
- package/polyfills/objectValues.js.flow +2 -3
- 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 +9 -10
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +61 -73
- package/subscription/subscribe.js.flow +74 -88
- package/subscription/subscribe.mjs +53 -65
- package/type/definition.d.ts +181 -31
- package/type/definition.js +37 -32
- package/type/definition.js.flow +66 -51
- package/type/definition.mjs +20 -18
- package/type/directives.d.ts +17 -3
- package/type/directives.js +17 -16
- package/type/directives.js.flow +20 -21
- package/type/directives.mjs +6 -5
- package/type/index.d.ts +12 -0
- package/type/index.js +6 -6
- package/type/index.js.flow +0 -1
- package/type/introspection.js +86 -68
- package/type/introspection.js.flow +85 -54
- package/type/introspection.mjs +79 -61
- package/type/scalars.js +9 -9
- package/type/scalars.js.flow +3 -3
- package/type/scalars.mjs +1 -1
- package/type/schema.d.ts +17 -4
- package/type/schema.js +13 -13
- package/type/schema.js.flow +18 -16
- package/type/schema.mjs +1 -1
- package/type/validate.js +52 -19
- package/type/validate.js.flow +67 -18
- package/type/validate.mjs +44 -10
- package/utilities/TypeInfo.js +7 -7
- package/utilities/TypeInfo.js.flow +16 -18
- package/utilities/TypeInfo.mjs +1 -1
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +0 -1
- package/utilities/astFromValue.js +10 -10
- package/utilities/astFromValue.js.flow +2 -3
- package/utilities/buildASTSchema.js +17 -27
- package/utilities/buildASTSchema.js.flow +11 -28
- package/utilities/buildASTSchema.mjs +11 -21
- package/utilities/buildClientSchema.js +14 -14
- package/utilities/buildClientSchema.js.flow +41 -29
- package/utilities/buildClientSchema.mjs +5 -5
- package/utilities/coerceInputValue.js +14 -14
- package/utilities/coerceInputValue.js.flow +7 -6
- package/utilities/coerceInputValue.mjs +2 -2
- package/utilities/concatAST.js +9 -8
- package/utilities/concatAST.js.flow +9 -9
- package/utilities/concatAST.mjs +9 -6
- package/utilities/extendSchema.js +26 -19
- package/utilities/extendSchema.js.flow +58 -45
- package/utilities/extendSchema.mjs +9 -2
- package/utilities/findBreakingChanges.js +9 -9
- package/utilities/findBreakingChanges.js.flow +12 -11
- package/utilities/findDeprecatedUsages.d.ts +9 -1
- package/utilities/findDeprecatedUsages.js +11 -27
- package/utilities/findDeprecatedUsages.js.flow +15 -44
- package/utilities/findDeprecatedUsages.mjs +11 -25
- package/utilities/getIntrospectionQuery.js.flow +2 -3
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.js.flow +1 -5
- package/utilities/getOperationAST.mjs +1 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.js.flow +5 -6
- package/utilities/index.d.ts +4 -1
- package/utilities/index.js +22 -22
- package/utilities/index.js.flow +1 -2
- package/utilities/index.mjs +1 -1
- package/utilities/introspectionFromSchema.js +6 -8
- package/utilities/introspectionFromSchema.js.flow +10 -10
- package/utilities/introspectionFromSchema.mjs +3 -4
- package/utilities/lexicographicSortSchema.js +10 -8
- package/utilities/lexicographicSortSchema.js.flow +19 -12
- package/utilities/lexicographicSortSchema.mjs +3 -1
- package/utilities/printSchema.js +15 -16
- package/utilities/printSchema.js.flow +34 -25
- package/utilities/printSchema.mjs +6 -7
- package/utilities/separateOperations.js +2 -2
- package/utilities/separateOperations.js.flow +2 -6
- package/utilities/separateOperations.mjs +1 -1
- 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 +2 -4
- package/utilities/typeFromAST.js +6 -6
- package/utilities/typeFromAST.js.flow +11 -14
- package/utilities/typeFromAST.mjs +2 -2
- package/utilities/typedQueryDocumentNode.d.ts +20 -0
- package/utilities/valueFromAST.js +6 -6
- package/utilities/valueFromAST.js.flow +7 -5
- package/utilities/valueFromASTUntyped.js +4 -4
- package/utilities/valueFromASTUntyped.js.flow +2 -3
- package/validation/ValidationContext.d.ts +3 -0
- package/validation/ValidationContext.js +7 -3
- package/validation/ValidationContext.js.flow +28 -22
- package/validation/ValidationContext.mjs +4 -0
- package/validation/index.d.ts +4 -0
- package/validation/index.js +52 -36
- package/validation/index.js.flow +4 -1
- package/validation/index.mjs +4 -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 +2 -3
- package/validation/rules/FieldsOnCorrectTypeRule.js +5 -5
- package/validation/rules/FieldsOnCorrectTypeRule.js.flow +9 -8
- package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +2 -3
- package/validation/rules/KnownArgumentNamesRule.js +5 -5
- package/validation/rules/KnownArgumentNamesRule.js.flow +5 -5
- package/validation/rules/KnownDirectivesRule.js +6 -6
- package/validation/rules/KnownDirectivesRule.js.flow +10 -11
- package/validation/rules/KnownFragmentNamesRule.js +1 -1
- package/validation/rules/KnownFragmentNamesRule.js.flow +3 -3
- package/validation/rules/KnownTypeNamesRule.js +12 -10
- package/validation/rules/KnownTypeNamesRule.js.flow +14 -11
- package/validation/rules/KnownTypeNamesRule.mjs +6 -5
- package/validation/rules/LoneAnonymousOperationRule.js +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js.flow +2 -3
- 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 +2 -3
- package/validation/rules/NoFragmentCyclesRule.js +1 -1
- package/validation/rules/NoFragmentCyclesRule.js.flow +4 -5
- package/validation/rules/NoUndefinedVariablesRule.js +1 -1
- package/validation/rules/NoUndefinedVariablesRule.js.flow +3 -3
- package/validation/rules/NoUnusedFragmentsRule.js +1 -1
- package/validation/rules/NoUnusedFragmentsRule.js.flow +3 -3
- package/validation/rules/NoUnusedVariablesRule.js +1 -1
- package/validation/rules/NoUnusedVariablesRule.js.flow +3 -3
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +29 -27
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
- package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
- package/validation/rules/PossibleFragmentSpreadsRule.js.flow +7 -4
- 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 +8 -6
- package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
- package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +7 -6
- package/validation/rules/ScalarLeafsRule.js +3 -3
- package/validation/rules/ScalarLeafsRule.js.flow +3 -4
- package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js.flow +3 -4
- package/validation/rules/UniqueArgumentNamesRule.js +1 -1
- package/validation/rules/UniqueArgumentNamesRule.js.flow +2 -3
- package/validation/rules/UniqueDirectiveNames.js +1 -1
- package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.js +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.js.flow +2 -3
- package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
- package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +4 -5
- 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 +11 -4
- 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 +17 -6
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js.flow +3 -3
- package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.flow +3 -3
- package/validation/rules/UniqueOperationNamesRule.js +1 -1
- package/validation/rules/UniqueOperationNamesRule.js.flow +3 -3
- 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 +10 -4
- package/validation/rules/UniqueTypeNames.js +1 -1
- package/validation/rules/UniqueTypeNames.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.js +1 -1
- package/validation/rules/UniqueTypeNamesRule.js.flow +3 -4
- package/validation/rules/UniqueVariableNamesRule.js +1 -1
- package/validation/rules/UniqueVariableNamesRule.js.flow +3 -4
- package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
- package/validation/rules/ValuesOfCorrectTypeRule.js.flow +3 -4
- package/validation/rules/VariablesAreInputTypesRule.js +4 -4
- package/validation/rules/VariablesAreInputTypesRule.js.flow +3 -4
- package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
- package/validation/rules/VariablesInAllowedPositionRule.js.flow +6 -6
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +14 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +79 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +94 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +68 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +16 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +34 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +38 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +25 -0
- 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 -9
- package/version.js +2 -2
- package/version.js.flow +2 -3
- package/version.mjs +2 -2
- package/polyfills/flatMap.js +0 -30
- package/polyfills/flatMap.js.flow +0 -28
- package/polyfills/flatMap.mjs +0 -23
package/type/scalars.js.flow
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import isFinite from '../polyfills/isFinite';
|
|
4
3
|
import isInteger from '../polyfills/isInteger';
|
|
5
4
|
|
|
@@ -11,7 +10,8 @@ import { print } from '../language/printer';
|
|
|
11
10
|
|
|
12
11
|
import { GraphQLError } from '../error/GraphQLError';
|
|
13
12
|
|
|
14
|
-
import {
|
|
13
|
+
import type { GraphQLNamedType } from './definition';
|
|
14
|
+
import { GraphQLScalarType } from './definition';
|
|
15
15
|
|
|
16
16
|
// As per the GraphQL Spec, Integers are only treated as valid when a valid
|
|
17
17
|
// 32-bit signed integer, providing the broadest support across platforms.
|
|
@@ -143,7 +143,7 @@ function serializeObject(outputValue: mixed): mixed {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
if (typeof outputValue.toJSON === 'function') {
|
|
146
|
-
// $FlowFixMe
|
|
146
|
+
// $FlowFixMe[incompatible-use]
|
|
147
147
|
return outputValue.toJSON();
|
|
148
148
|
}
|
|
149
149
|
}
|
package/type/scalars.mjs
CHANGED
package/type/schema.d.ts
CHANGED
|
@@ -19,6 +19,19 @@ import {
|
|
|
19
19
|
export function isSchema(schema: any): schema is GraphQLSchema;
|
|
20
20
|
export function assertSchema(schema: any): GraphQLSchema;
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Custom extensions
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* Use a unique identifier name for your extension, for example the name of
|
|
27
|
+
* your library or project. Do not use a shortened identifier as this increases
|
|
28
|
+
* the risk of conflicts. We recommend you add at most one extension field,
|
|
29
|
+
* an object which can contain all the values you need.
|
|
30
|
+
*/
|
|
31
|
+
export interface GraphQLSchemaExtensions {
|
|
32
|
+
[attributeName: string]: any;
|
|
33
|
+
}
|
|
34
|
+
|
|
22
35
|
/**
|
|
23
36
|
* Schema Definition
|
|
24
37
|
*
|
|
@@ -47,7 +60,7 @@ export function assertSchema(schema: any): GraphQLSchema;
|
|
|
47
60
|
*/
|
|
48
61
|
export class GraphQLSchema {
|
|
49
62
|
description: Maybe<string>;
|
|
50
|
-
extensions: Maybe<Readonly<
|
|
63
|
+
extensions: Maybe<Readonly<GraphQLSchemaExtensions>>;
|
|
51
64
|
astNode: Maybe<SchemaDefinitionNode>;
|
|
52
65
|
extensionASTNodes: Maybe<ReadonlyArray<SchemaExtensionNode>>;
|
|
53
66
|
|
|
@@ -83,7 +96,7 @@ export class GraphQLSchema {
|
|
|
83
96
|
toConfig(): GraphQLSchemaConfig & {
|
|
84
97
|
types: Array<GraphQLNamedType>;
|
|
85
98
|
directives: Array<GraphQLDirective>;
|
|
86
|
-
extensions: Maybe<Readonly<
|
|
99
|
+
extensions: Maybe<Readonly<GraphQLSchemaExtensions>>;
|
|
87
100
|
extensionASTNodes: ReadonlyArray<SchemaExtensionNode>;
|
|
88
101
|
assumeValid: boolean;
|
|
89
102
|
};
|
|
@@ -116,7 +129,7 @@ export interface GraphQLSchemaConfig extends GraphQLSchemaValidationOptions {
|
|
|
116
129
|
subscription?: Maybe<GraphQLObjectType>;
|
|
117
130
|
types?: Maybe<Array<GraphQLNamedType>>;
|
|
118
131
|
directives?: Maybe<Array<GraphQLDirective>>;
|
|
119
|
-
extensions?: Maybe<Readonly<
|
|
132
|
+
extensions?: Maybe<Readonly<GraphQLSchemaExtensions>>;
|
|
120
133
|
astNode?: Maybe<SchemaDefinitionNode>;
|
|
121
134
|
extensionASTNodes?: Maybe<ReadonlyArray<SchemaExtensionNode>>;
|
|
122
135
|
}
|
|
@@ -128,7 +141,7 @@ export interface GraphQLSchemaNormalizedConfig extends GraphQLSchemaConfig {
|
|
|
128
141
|
description: Maybe<string>;
|
|
129
142
|
types: Array<GraphQLNamedType>;
|
|
130
143
|
directives: Array<GraphQLDirective>;
|
|
131
|
-
extensions: Maybe<Readonly<
|
|
144
|
+
extensions: Maybe<Readonly<GraphQLSchemaExtensions>>;
|
|
132
145
|
extensionASTNodes: Maybe<ReadonlyArray<SchemaExtensionNode>>;
|
|
133
146
|
assumeValid: boolean;
|
|
134
147
|
}
|
package/type/schema.js
CHANGED
|
@@ -7,29 +7,29 @@ exports.isSchema = isSchema;
|
|
|
7
7
|
exports.assertSchema = assertSchema;
|
|
8
8
|
exports.GraphQLSchema = void 0;
|
|
9
9
|
|
|
10
|
-
var _find = _interopRequireDefault(require("../polyfills/find"));
|
|
10
|
+
var _find = _interopRequireDefault(require("../polyfills/find.js"));
|
|
11
11
|
|
|
12
|
-
var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom"));
|
|
12
|
+
var _arrayFrom3 = _interopRequireDefault(require("../polyfills/arrayFrom.js"));
|
|
13
13
|
|
|
14
|
-
var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues"));
|
|
14
|
+
var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues.js"));
|
|
15
15
|
|
|
16
|
-
var _symbols = require("../polyfills/symbols");
|
|
16
|
+
var _symbols = require("../polyfills/symbols.js");
|
|
17
17
|
|
|
18
|
-
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
18
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
19
19
|
|
|
20
|
-
var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap"));
|
|
20
|
+
var _toObjMap = _interopRequireDefault(require("../jsutils/toObjMap.js"));
|
|
21
21
|
|
|
22
|
-
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
|
|
22
|
+
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
|
|
23
23
|
|
|
24
|
-
var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf"));
|
|
24
|
+
var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf.js"));
|
|
25
25
|
|
|
26
|
-
var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
|
|
26
|
+
var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
|
|
27
27
|
|
|
28
|
-
var _introspection = require("./introspection");
|
|
28
|
+
var _introspection = require("./introspection.js");
|
|
29
29
|
|
|
30
|
-
var _directives = require("./directives");
|
|
30
|
+
var _directives = require("./directives.js");
|
|
31
31
|
|
|
32
|
-
var _definition = require("./definition");
|
|
32
|
+
var _definition = require("./definition.js");
|
|
33
33
|
|
|
34
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
35
|
|
|
@@ -331,7 +331,7 @@ var GraphQLSchema = /*#__PURE__*/function () {
|
|
|
331
331
|
extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
|
|
332
332
|
assumeValid: this.__validationErrors !== undefined
|
|
333
333
|
};
|
|
334
|
-
} // $FlowFixMe Flow doesn't support computed properties yet
|
|
334
|
+
} // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
335
335
|
;
|
|
336
336
|
|
|
337
337
|
_createClass(GraphQLSchema, [{
|
package/type/schema.js.flow
CHANGED
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import find from '../polyfills/find';
|
|
4
3
|
import arrayFrom from '../polyfills/arrayFrom';
|
|
5
4
|
import objectValues from '../polyfills/objectValues';
|
|
6
5
|
import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
|
|
7
6
|
|
|
7
|
+
import type {
|
|
8
|
+
ObjMap,
|
|
9
|
+
ReadOnlyObjMap,
|
|
10
|
+
ReadOnlyObjMapLike,
|
|
11
|
+
} from '../jsutils/ObjMap';
|
|
8
12
|
import inspect from '../jsutils/inspect';
|
|
9
13
|
import toObjMap from '../jsutils/toObjMap';
|
|
10
14
|
import devAssert from '../jsutils/devAssert';
|
|
11
15
|
import instanceOf from '../jsutils/instanceOf';
|
|
12
16
|
import isObjectLike from '../jsutils/isObjectLike';
|
|
13
|
-
import {
|
|
14
|
-
type ObjMap,
|
|
15
|
-
type ReadOnlyObjMap,
|
|
16
|
-
type ReadOnlyObjMapLike,
|
|
17
|
-
} from '../jsutils/ObjMap';
|
|
18
17
|
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
import type { GraphQLError } from '../error/GraphQLError';
|
|
19
|
+
|
|
20
|
+
import type {
|
|
21
|
+
SchemaDefinitionNode,
|
|
22
|
+
SchemaExtensionNode,
|
|
23
23
|
} from '../language/ast';
|
|
24
24
|
|
|
25
|
+
import type {
|
|
26
|
+
GraphQLType,
|
|
27
|
+
GraphQLNamedType,
|
|
28
|
+
GraphQLAbstractType,
|
|
29
|
+
GraphQLObjectType,
|
|
30
|
+
GraphQLInterfaceType,
|
|
31
|
+
} from './definition';
|
|
25
32
|
import { __Schema } from './introspection';
|
|
26
33
|
import {
|
|
27
34
|
GraphQLDirective,
|
|
@@ -29,11 +36,6 @@ import {
|
|
|
29
36
|
specifiedDirectives,
|
|
30
37
|
} from './directives';
|
|
31
38
|
import {
|
|
32
|
-
type GraphQLType,
|
|
33
|
-
type GraphQLNamedType,
|
|
34
|
-
type GraphQLAbstractType,
|
|
35
|
-
type GraphQLObjectType,
|
|
36
|
-
type GraphQLInterfaceType,
|
|
37
39
|
isObjectType,
|
|
38
40
|
isInterfaceType,
|
|
39
41
|
isUnionType,
|
|
@@ -354,7 +356,7 @@ export class GraphQLSchema {
|
|
|
354
356
|
};
|
|
355
357
|
}
|
|
356
358
|
|
|
357
|
-
// $FlowFixMe Flow doesn't support computed properties yet
|
|
359
|
+
// $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
358
360
|
get [SYMBOL_TO_STRING_TAG]() {
|
|
359
361
|
return 'GraphQLSchema';
|
|
360
362
|
}
|
package/type/schema.mjs
CHANGED
|
@@ -310,7 +310,7 @@ export var GraphQLSchema = /*#__PURE__*/function () {
|
|
|
310
310
|
extensionASTNodes: (_this$extensionASTNod = this.extensionASTNodes) !== null && _this$extensionASTNod !== void 0 ? _this$extensionASTNod : [],
|
|
311
311
|
assumeValid: this.__validationErrors !== undefined
|
|
312
312
|
};
|
|
313
|
-
} // $FlowFixMe Flow doesn't support computed properties yet
|
|
313
|
+
} // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
314
314
|
;
|
|
315
315
|
|
|
316
316
|
_createClass(GraphQLSchema, [{
|
package/type/validate.js
CHANGED
|
@@ -6,29 +6,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.validateSchema = validateSchema;
|
|
7
7
|
exports.assertValidSchema = assertValidSchema;
|
|
8
8
|
|
|
9
|
-
var _find = _interopRequireDefault(require("../polyfills/find"));
|
|
9
|
+
var _find = _interopRequireDefault(require("../polyfills/find.js"));
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _objectValues5 = _interopRequireDefault(require("../polyfills/objectValues.js"));
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _GraphQLError = require("../error/GraphQLError.js");
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _locatedError = require("../error/locatedError.js");
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _assertValidName = require("../utilities/assertValidName.js");
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _typeComparators = require("../utilities/typeComparators.js");
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var _schema = require("./schema.js");
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var _introspection = require("./introspection.js");
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _directives = require("./directives.js");
|
|
28
28
|
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
var _definition = require("./definition");
|
|
29
|
+
var _definition = require("./definition.js");
|
|
32
30
|
|
|
33
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
34
32
|
|
|
@@ -166,6 +164,13 @@ function validateDirectives(context) {
|
|
|
166
164
|
if (!(0, _definition.isInputType)(arg.type)) {
|
|
167
165
|
context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat((0, _inspect.default)(arg.type), "."), arg.astNode);
|
|
168
166
|
}
|
|
167
|
+
|
|
168
|
+
if ((0, _definition.isRequiredArgument)(arg) && arg.deprecationReason != null) {
|
|
169
|
+
var _arg$astNode;
|
|
170
|
+
|
|
171
|
+
context.reportError("Required argument @".concat(directive.name, "(").concat(arg.name, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
172
|
+
(_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);
|
|
173
|
+
}
|
|
169
174
|
}
|
|
170
175
|
}
|
|
171
176
|
}
|
|
@@ -248,9 +253,16 @@ function validateFields(context, type) {
|
|
|
248
253
|
validateName(context, arg); // Ensure the type is an input type
|
|
249
254
|
|
|
250
255
|
if (!(0, _definition.isInputType)(arg.type)) {
|
|
251
|
-
var _arg$
|
|
256
|
+
var _arg$astNode2;
|
|
252
257
|
|
|
253
|
-
context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat((0, _inspect.default)(arg.type), "."), (_arg$
|
|
258
|
+
context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat((0, _inspect.default)(arg.type), "."), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if ((0, _definition.isRequiredArgument)(arg) && arg.deprecationReason != null) {
|
|
262
|
+
var _arg$astNode3;
|
|
263
|
+
|
|
264
|
+
context.reportError("Required argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
265
|
+
(_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);
|
|
254
266
|
}
|
|
255
267
|
}
|
|
256
268
|
}
|
|
@@ -431,6 +443,13 @@ function validateInputFields(context, inputObj) {
|
|
|
431
443
|
|
|
432
444
|
context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat((0, _inspect.default)(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
|
|
433
445
|
}
|
|
446
|
+
|
|
447
|
+
if ((0, _definition.isRequiredInputField)(field) && field.deprecationReason != null) {
|
|
448
|
+
var _field$astNode3;
|
|
449
|
+
|
|
450
|
+
context.reportError("Required input field ".concat(inputObj.name, ".").concat(field.name, " cannot be deprecated."), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
451
|
+
(_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);
|
|
452
|
+
}
|
|
434
453
|
}
|
|
435
454
|
}
|
|
436
455
|
|
|
@@ -491,12 +510,17 @@ function getAllNodes(object) {
|
|
|
491
510
|
}
|
|
492
511
|
|
|
493
512
|
function getAllSubNodes(object, getter) {
|
|
494
|
-
|
|
495
|
-
|
|
513
|
+
var subNodes = [];
|
|
514
|
+
|
|
515
|
+
for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {
|
|
496
516
|
var _getter;
|
|
497
517
|
|
|
498
|
-
|
|
499
|
-
|
|
518
|
+
var node = _getAllNodes2[_i32];
|
|
519
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
520
|
+
subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
return subNodes;
|
|
500
524
|
}
|
|
501
525
|
|
|
502
526
|
function getAllImplementsInterfaceNodes(type, iface) {
|
|
@@ -514,3 +538,12 @@ function getUnionMemberTypeNodes(union, typeName) {
|
|
|
514
538
|
return typeNode.name.value === typeName;
|
|
515
539
|
});
|
|
516
540
|
}
|
|
541
|
+
|
|
542
|
+
function getDeprecatedDirectiveNode(definitionNode) {
|
|
543
|
+
var _definitionNode$direc;
|
|
544
|
+
|
|
545
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
546
|
+
return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {
|
|
547
|
+
return node.name.value === _directives.GraphQLDeprecatedDirective.name;
|
|
548
|
+
});
|
|
549
|
+
}
|
package/type/validate.js.flow
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import find from '../polyfills/find';
|
|
4
|
-
import flatMap from '../polyfills/flatMap';
|
|
5
3
|
import objectValues from '../polyfills/objectValues';
|
|
6
4
|
|
|
7
5
|
import inspect from '../jsutils/inspect';
|
|
@@ -9,24 +7,28 @@ import inspect from '../jsutils/inspect';
|
|
|
9
7
|
import { GraphQLError } from '../error/GraphQLError';
|
|
10
8
|
import { locatedError } from '../error/locatedError';
|
|
11
9
|
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
import type {
|
|
11
|
+
ASTNode,
|
|
12
|
+
NamedTypeNode,
|
|
13
|
+
DirectiveNode,
|
|
14
|
+
OperationTypeNode,
|
|
16
15
|
} from '../language/ast';
|
|
17
16
|
|
|
18
17
|
import { isValidNameError } from '../utilities/assertValidName';
|
|
19
18
|
import { isEqualType, isTypeSubTypeOf } from '../utilities/typeComparators';
|
|
20
19
|
|
|
21
|
-
import {
|
|
20
|
+
import type { GraphQLSchema } from './schema';
|
|
21
|
+
import type {
|
|
22
|
+
GraphQLObjectType,
|
|
23
|
+
GraphQLInterfaceType,
|
|
24
|
+
GraphQLUnionType,
|
|
25
|
+
GraphQLEnumType,
|
|
26
|
+
GraphQLInputObjectType,
|
|
27
|
+
} from './definition';
|
|
28
|
+
import { assertSchema } from './schema';
|
|
22
29
|
import { isIntrospectionType } from './introspection';
|
|
23
|
-
import {
|
|
30
|
+
import { isDirective, GraphQLDeprecatedDirective } from './directives';
|
|
24
31
|
import {
|
|
25
|
-
type GraphQLObjectType,
|
|
26
|
-
type GraphQLInterfaceType,
|
|
27
|
-
type GraphQLUnionType,
|
|
28
|
-
type GraphQLEnumType,
|
|
29
|
-
type GraphQLInputObjectType,
|
|
30
32
|
isObjectType,
|
|
31
33
|
isInterfaceType,
|
|
32
34
|
isUnionType,
|
|
@@ -37,6 +39,7 @@ import {
|
|
|
37
39
|
isInputType,
|
|
38
40
|
isOutputType,
|
|
39
41
|
isRequiredArgument,
|
|
42
|
+
isRequiredInputField,
|
|
40
43
|
} from './definition';
|
|
41
44
|
|
|
42
45
|
/**
|
|
@@ -107,7 +110,7 @@ class SchemaValidationContext {
|
|
|
107
110
|
}
|
|
108
111
|
}
|
|
109
112
|
|
|
110
|
-
function validateRootTypes(context) {
|
|
113
|
+
function validateRootTypes(context: SchemaValidationContext): void {
|
|
111
114
|
const schema = context.schema;
|
|
112
115
|
const queryType = schema.getQueryType();
|
|
113
116
|
if (!queryType) {
|
|
@@ -182,6 +185,17 @@ function validateDirectives(context: SchemaValidationContext): void {
|
|
|
182
185
|
arg.astNode,
|
|
183
186
|
);
|
|
184
187
|
}
|
|
188
|
+
|
|
189
|
+
if (isRequiredArgument(arg) && arg.deprecationReason != null) {
|
|
190
|
+
context.reportError(
|
|
191
|
+
`Required argument @${directive.name}(${arg.name}:) cannot be deprecated.`,
|
|
192
|
+
[
|
|
193
|
+
getDeprecatedDirectiveNode(arg.astNode),
|
|
194
|
+
// istanbul ignore next (TODO need to write coverage tests)
|
|
195
|
+
arg.astNode?.type,
|
|
196
|
+
],
|
|
197
|
+
);
|
|
198
|
+
}
|
|
185
199
|
}
|
|
186
200
|
}
|
|
187
201
|
}
|
|
@@ -287,6 +301,17 @@ function validateFields(
|
|
|
287
301
|
arg.astNode?.type,
|
|
288
302
|
);
|
|
289
303
|
}
|
|
304
|
+
|
|
305
|
+
if (isRequiredArgument(arg) && arg.deprecationReason != null) {
|
|
306
|
+
context.reportError(
|
|
307
|
+
`Required argument ${type.name}.${field.name}(${argName}:) cannot be deprecated.`,
|
|
308
|
+
[
|
|
309
|
+
getDeprecatedDirectiveNode(arg.astNode),
|
|
310
|
+
// istanbul ignore next (TODO need to write coverage tests)
|
|
311
|
+
arg.astNode?.type,
|
|
312
|
+
],
|
|
313
|
+
);
|
|
314
|
+
}
|
|
290
315
|
}
|
|
291
316
|
}
|
|
292
317
|
}
|
|
@@ -522,12 +547,23 @@ function validateInputFields(
|
|
|
522
547
|
field.astNode?.type,
|
|
523
548
|
);
|
|
524
549
|
}
|
|
550
|
+
|
|
551
|
+
if (isRequiredInputField(field) && field.deprecationReason != null) {
|
|
552
|
+
context.reportError(
|
|
553
|
+
`Required input field ${inputObj.name}.${field.name} cannot be deprecated.`,
|
|
554
|
+
[
|
|
555
|
+
getDeprecatedDirectiveNode(field.astNode),
|
|
556
|
+
// istanbul ignore next (TODO need to write coverage tests)
|
|
557
|
+
field.astNode?.type,
|
|
558
|
+
],
|
|
559
|
+
);
|
|
560
|
+
}
|
|
525
561
|
}
|
|
526
562
|
}
|
|
527
563
|
|
|
528
564
|
function createInputObjectCircularRefsValidator(
|
|
529
565
|
context: SchemaValidationContext,
|
|
530
|
-
) {
|
|
566
|
+
): (GraphQLInputObjectType) => void {
|
|
531
567
|
// Modified copy of algorithm from 'src/validation/rules/NoFragmentCycles.js'.
|
|
532
568
|
// Tracks already visited types to maintain O(N) and to ensure that cycles
|
|
533
569
|
// are not redundantly reported.
|
|
@@ -544,7 +580,7 @@ function createInputObjectCircularRefsValidator(
|
|
|
544
580
|
// This does a straight-forward DFS to find cycles.
|
|
545
581
|
// It does not terminate when a cycle was found but continues to explore
|
|
546
582
|
// the graph to find all possible cycles.
|
|
547
|
-
function detectCycleRecursive(inputObj: GraphQLInputObjectType) {
|
|
583
|
+
function detectCycleRecursive(inputObj: GraphQLInputObjectType): void {
|
|
548
584
|
if (visitedTypes[inputObj.name]) {
|
|
549
585
|
return;
|
|
550
586
|
}
|
|
@@ -598,8 +634,12 @@ function getAllSubNodes<T: ASTNode, K: ASTNode, L: ASTNode>(
|
|
|
598
634
|
object: SDLDefinedObject<T, K>,
|
|
599
635
|
getter: (T | K) => ?(L | $ReadOnlyArray<L>),
|
|
600
636
|
): $ReadOnlyArray<L> {
|
|
601
|
-
|
|
602
|
-
|
|
637
|
+
let subNodes = [];
|
|
638
|
+
for (const node of getAllNodes(object)) {
|
|
639
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
640
|
+
subNodes = subNodes.concat(getter(node) ?? []);
|
|
641
|
+
}
|
|
642
|
+
return subNodes;
|
|
603
643
|
}
|
|
604
644
|
|
|
605
645
|
function getAllImplementsInterfaceNodes(
|
|
@@ -619,3 +659,12 @@ function getUnionMemberTypeNodes(
|
|
|
619
659
|
(typeNode) => typeNode.name.value === typeName,
|
|
620
660
|
);
|
|
621
661
|
}
|
|
662
|
+
|
|
663
|
+
function getDeprecatedDirectiveNode(
|
|
664
|
+
definitionNode: ?{ +directives?: $ReadOnlyArray<DirectiveNode>, ... },
|
|
665
|
+
): ?DirectiveNode {
|
|
666
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
667
|
+
return definitionNode?.directives?.find(
|
|
668
|
+
(node) => node.name.value === GraphQLDeprecatedDirective.name,
|
|
669
|
+
);
|
|
670
|
+
}
|
package/type/validate.mjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import find from "../polyfills/find.mjs";
|
|
2
|
-
import flatMap from "../polyfills/flatMap.mjs";
|
|
3
2
|
import objectValues from "../polyfills/objectValues.mjs";
|
|
4
3
|
import inspect from "../jsutils/inspect.mjs";
|
|
5
4
|
import { GraphQLError } from "../error/GraphQLError.mjs";
|
|
6
5
|
import { locatedError } from "../error/locatedError.mjs";
|
|
7
6
|
import { isValidNameError } from "../utilities/assertValidName.mjs";
|
|
8
7
|
import { isEqualType, isTypeSubTypeOf } from "../utilities/typeComparators.mjs";
|
|
9
|
-
import { isDirective } from "./directives.mjs";
|
|
10
|
-
import { isIntrospectionType } from "./introspection.mjs";
|
|
11
8
|
import { assertSchema } from "./schema.mjs";
|
|
12
|
-
import {
|
|
9
|
+
import { isIntrospectionType } from "./introspection.mjs";
|
|
10
|
+
import { isDirective, GraphQLDeprecatedDirective } from "./directives.mjs";
|
|
11
|
+
import { isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType, isNamedType, isNonNullType, isInputType, isOutputType, isRequiredArgument, isRequiredInputField } from "./definition.mjs";
|
|
13
12
|
/**
|
|
14
13
|
* Implements the "Type Validation" sub-sections of the specification's
|
|
15
14
|
* "Type System" section.
|
|
@@ -144,6 +143,13 @@ function validateDirectives(context) {
|
|
|
144
143
|
if (!isInputType(arg.type)) {
|
|
145
144
|
context.reportError("The type of @".concat(directive.name, "(").concat(arg.name, ":) must be Input Type ") + "but got: ".concat(inspect(arg.type), "."), arg.astNode);
|
|
146
145
|
}
|
|
146
|
+
|
|
147
|
+
if (isRequiredArgument(arg) && arg.deprecationReason != null) {
|
|
148
|
+
var _arg$astNode;
|
|
149
|
+
|
|
150
|
+
context.reportError("Required argument @".concat(directive.name, "(").concat(arg.name, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
151
|
+
(_arg$astNode = arg.astNode) === null || _arg$astNode === void 0 ? void 0 : _arg$astNode.type]);
|
|
152
|
+
}
|
|
147
153
|
}
|
|
148
154
|
}
|
|
149
155
|
}
|
|
@@ -226,9 +232,16 @@ function validateFields(context, type) {
|
|
|
226
232
|
validateName(context, arg); // Ensure the type is an input type
|
|
227
233
|
|
|
228
234
|
if (!isInputType(arg.type)) {
|
|
229
|
-
var _arg$
|
|
235
|
+
var _arg$astNode2;
|
|
236
|
+
|
|
237
|
+
context.reportError("The type of ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) must be Input ") + "Type but got: ".concat(inspect(arg.type), "."), (_arg$astNode2 = arg.astNode) === null || _arg$astNode2 === void 0 ? void 0 : _arg$astNode2.type);
|
|
238
|
+
}
|
|
230
239
|
|
|
231
|
-
|
|
240
|
+
if (isRequiredArgument(arg) && arg.deprecationReason != null) {
|
|
241
|
+
var _arg$astNode3;
|
|
242
|
+
|
|
243
|
+
context.reportError("Required argument ".concat(type.name, ".").concat(field.name, "(").concat(argName, ":) cannot be deprecated."), [getDeprecatedDirectiveNode(arg.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
244
|
+
(_arg$astNode3 = arg.astNode) === null || _arg$astNode3 === void 0 ? void 0 : _arg$astNode3.type]);
|
|
232
245
|
}
|
|
233
246
|
}
|
|
234
247
|
}
|
|
@@ -409,6 +422,13 @@ function validateInputFields(context, inputObj) {
|
|
|
409
422
|
|
|
410
423
|
context.reportError("The type of ".concat(inputObj.name, ".").concat(field.name, " must be Input Type ") + "but got: ".concat(inspect(field.type), "."), (_field$astNode2 = field.astNode) === null || _field$astNode2 === void 0 ? void 0 : _field$astNode2.type);
|
|
411
424
|
}
|
|
425
|
+
|
|
426
|
+
if (isRequiredInputField(field) && field.deprecationReason != null) {
|
|
427
|
+
var _field$astNode3;
|
|
428
|
+
|
|
429
|
+
context.reportError("Required input field ".concat(inputObj.name, ".").concat(field.name, " cannot be deprecated."), [getDeprecatedDirectiveNode(field.astNode), // istanbul ignore next (TODO need to write coverage tests)
|
|
430
|
+
(_field$astNode3 = field.astNode) === null || _field$astNode3 === void 0 ? void 0 : _field$astNode3.type]);
|
|
431
|
+
}
|
|
412
432
|
}
|
|
413
433
|
}
|
|
414
434
|
|
|
@@ -469,12 +489,17 @@ function getAllNodes(object) {
|
|
|
469
489
|
}
|
|
470
490
|
|
|
471
491
|
function getAllSubNodes(object, getter) {
|
|
472
|
-
|
|
473
|
-
|
|
492
|
+
var subNodes = [];
|
|
493
|
+
|
|
494
|
+
for (var _i32 = 0, _getAllNodes2 = getAllNodes(object); _i32 < _getAllNodes2.length; _i32++) {
|
|
474
495
|
var _getter;
|
|
475
496
|
|
|
476
|
-
|
|
477
|
-
|
|
497
|
+
var node = _getAllNodes2[_i32];
|
|
498
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
499
|
+
subNodes = subNodes.concat((_getter = getter(node)) !== null && _getter !== void 0 ? _getter : []);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
return subNodes;
|
|
478
503
|
}
|
|
479
504
|
|
|
480
505
|
function getAllImplementsInterfaceNodes(type, iface) {
|
|
@@ -492,3 +517,12 @@ function getUnionMemberTypeNodes(union, typeName) {
|
|
|
492
517
|
return typeNode.name.value === typeName;
|
|
493
518
|
});
|
|
494
519
|
}
|
|
520
|
+
|
|
521
|
+
function getDeprecatedDirectiveNode(definitionNode) {
|
|
522
|
+
var _definitionNode$direc;
|
|
523
|
+
|
|
524
|
+
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
|
|
525
|
+
return definitionNode === null || definitionNode === void 0 ? void 0 : (_definitionNode$direc = definitionNode.directives) === null || _definitionNode$direc === void 0 ? void 0 : _definitionNode$direc.find(function (node) {
|
|
526
|
+
return node.name.value === GraphQLDeprecatedDirective.name;
|
|
527
|
+
});
|
|
528
|
+
}
|
package/utilities/TypeInfo.js
CHANGED
|
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.visitWithTypeInfo = visitWithTypeInfo;
|
|
7
7
|
exports.TypeInfo = void 0;
|
|
8
8
|
|
|
9
|
-
var _find = _interopRequireDefault(require("../polyfills/find"));
|
|
9
|
+
var _find = _interopRequireDefault(require("../polyfills/find.js"));
|
|
10
10
|
|
|
11
|
-
var _kinds = require("../language/kinds");
|
|
11
|
+
var _kinds = require("../language/kinds.js");
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _ast = require("../language/ast.js");
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _visitor = require("../language/visitor.js");
|
|
16
16
|
|
|
17
|
-
var _definition = require("../type/definition");
|
|
17
|
+
var _definition = require("../type/definition.js");
|
|
18
18
|
|
|
19
|
-
var _introspection = require("../type/introspection");
|
|
19
|
+
var _introspection = require("../type/introspection.js");
|
|
20
20
|
|
|
21
|
-
var _typeFromAST = require("./typeFromAST");
|
|
21
|
+
var _typeFromAST = require("./typeFromAST.js");
|
|
22
22
|
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
24
|
|