graphql 16.14.0 → 16.14.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/error/GraphQLError.d.ts +151 -15
- package/error/GraphQLError.js +143 -12
- package/error/GraphQLError.mjs +143 -12
- package/error/index.d.ts +6 -0
- package/error/index.mjs +6 -0
- package/error/locatedError.d.ts +20 -0
- package/error/locatedError.js +21 -0
- package/error/locatedError.mjs +20 -0
- package/error/syntaxError.d.ts +15 -0
- package/error/syntaxError.js +16 -0
- package/error/syntaxError.mjs +15 -0
- package/execution/collectFields.js +6 -0
- package/execution/collectFields.mjs +6 -0
- package/execution/execute.d.ts +211 -12
- package/execution/execute.js +214 -23
- package/execution/execute.mjs +213 -23
- package/execution/index.d.ts +6 -0
- package/execution/index.mjs +6 -0
- package/execution/mapAsyncIterator.d.ts +2 -0
- package/execution/mapAsyncIterator.js +2 -0
- package/execution/mapAsyncIterator.mjs +2 -0
- package/execution/subscribe.d.ts +195 -5
- package/execution/subscribe.js +154 -11
- package/execution/subscribe.mjs +153 -11
- package/execution/values.d.ts +167 -10
- package/execution/values.js +149 -5
- package/execution/values.mjs +148 -5
- package/graphql.d.ts +163 -41
- package/graphql.js +126 -4
- package/graphql.mjs +131 -41
- package/index.d.ts +11 -17
- package/index.mjs +13 -19
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/ObjMap.d.ts +4 -0
- package/jsutils/Path.d.ts +30 -0
- package/jsutils/Path.js +29 -0
- package/jsutils/Path.mjs +29 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +1 -0
- package/jsutils/devAssert.mjs +1 -0
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js +4 -1
- package/jsutils/didYouMean.mjs +4 -1
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +2 -0
- package/jsutils/groupBy.mjs +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +2 -0
- package/jsutils/identityFunc.mjs +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +2 -0
- package/jsutils/inspect.mjs +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +2 -0
- package/jsutils/instanceOf.mjs +2 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js +1 -0
- package/jsutils/invariant.mjs +1 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +2 -0
- package/jsutils/isAsyncIterable.mjs +2 -0
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +6 -5
- package/jsutils/isIterableObject.mjs +6 -5
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +2 -0
- package/jsutils/isObjectLike.mjs +2 -0
- package/jsutils/isPromise.d.ts +2 -0
- package/jsutils/isPromise.js +2 -0
- package/jsutils/isPromise.mjs +2 -0
- package/jsutils/keyMap.d.ts +7 -14
- package/jsutils/keyMap.js +7 -14
- package/jsutils/keyMap.mjs +7 -14
- package/jsutils/keyValMap.d.ts +9 -6
- package/jsutils/keyValMap.js +9 -6
- package/jsutils/keyValMap.mjs +9 -6
- package/jsutils/mapValue.d.ts +2 -0
- package/jsutils/mapValue.js +2 -0
- package/jsutils/mapValue.mjs +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +2 -0
- package/jsutils/memoize3.mjs +2 -0
- package/jsutils/naturalCompare.d.ts +2 -0
- package/jsutils/naturalCompare.js +2 -0
- package/jsutils/naturalCompare.mjs +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +2 -0
- package/jsutils/printPathArray.mjs +2 -0
- package/jsutils/promiseForObject.d.ts +2 -0
- package/jsutils/promiseForObject.js +2 -0
- package/jsutils/promiseForObject.mjs +2 -0
- package/jsutils/promiseReduce.d.ts +2 -0
- package/jsutils/promiseReduce.js +2 -0
- package/jsutils/promiseReduce.mjs +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +4 -0
- package/jsutils/suggestionList.mjs +4 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +2 -0
- package/jsutils/toError.mjs +2 -0
- package/jsutils/toObjMap.d.ts +1 -0
- package/jsutils/toObjMap.js +1 -0
- package/jsutils/toObjMap.mjs +1 -0
- package/language/ast.d.ts +412 -54
- package/language/ast.js +95 -38
- package/language/ast.mjs +95 -38
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +1 -3
- package/language/blockString.mjs +1 -3
- package/language/directiveLocation.d.ts +28 -8
- package/language/directiveLocation.js +9 -6
- package/language/directiveLocation.mjs +9 -6
- package/language/index.d.ts +6 -0
- package/language/index.mjs +6 -0
- package/language/kinds.d.ts +57 -18
- package/language/kinds.js +9 -6
- package/language/kinds.mjs +9 -6
- package/language/lexer.d.ts +47 -14
- package/language/lexer.js +71 -13
- package/language/lexer.mjs +70 -13
- package/language/location.d.ts +16 -3
- package/language/location.js +14 -3
- package/language/location.mjs +14 -3
- package/language/parser.d.ts +236 -13
- package/language/parser.js +224 -0
- package/language/parser.mjs +224 -3
- package/language/predicates.d.ts +169 -0
- package/language/predicates.js +170 -0
- package/language/predicates.mjs +180 -0
- package/language/printLocation.d.ts +28 -0
- package/language/printLocation.js +29 -0
- package/language/printLocation.mjs +28 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -1
- package/language/printString.mjs +5 -1
- package/language/printer.d.ts +12 -0
- package/language/printer.js +19 -0
- package/language/printer.mjs +18 -0
- package/language/schemaCoordinateLexer.d.ts +8 -6
- package/language/schemaCoordinateLexer.js +10 -6
- package/language/schemaCoordinateLexer.mjs +10 -6
- package/language/source.d.ts +28 -0
- package/language/source.js +32 -0
- package/language/source.mjs +31 -0
- package/language/tokenKind.d.ts +30 -3
- package/language/tokenKind.js +8 -3
- package/language/tokenKind.mjs +8 -3
- package/language/visitor.d.ts +200 -72
- package/language/visitor.js +122 -50
- package/language/visitor.mjs +122 -54
- package/package.json +1 -1
- package/subscription/index.d.ts +9 -3
- package/subscription/index.mjs +9 -3
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +19 -1
- package/type/assertName.mjs +18 -1
- package/type/definition.d.ts +2540 -79
- package/type/definition.js +2214 -61
- package/type/definition.mjs +2241 -60
- package/type/directives.d.ts +193 -18
- package/type/directives.js +196 -19
- package/type/directives.mjs +196 -19
- package/type/index.d.ts +6 -0
- package/type/index.mjs +6 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +33 -0
- package/type/introspection.mjs +41 -0
- package/type/scalars.d.ts +29 -2
- package/type/scalars.js +37 -2
- package/type/scalars.mjs +36 -2
- package/type/schema.d.ts +490 -28
- package/type/schema.js +484 -26
- package/type/schema.mjs +484 -26
- package/type/validate.d.ts +31 -0
- package/type/validate.js +32 -0
- package/type/validate.mjs +31 -0
- package/utilities/TypeInfo.d.ts +441 -1
- package/utilities/TypeInfo.js +444 -1
- package/utilities/TypeInfo.mjs +443 -1
- package/utilities/assertValidName.d.ts +27 -2
- package/utilities/assertValidName.js +28 -2
- package/utilities/assertValidName.mjs +27 -2
- package/utilities/astFromValue.d.ts +33 -3
- package/utilities/astFromValue.js +36 -3
- package/utilities/astFromValue.mjs +35 -3
- package/utilities/buildASTSchema.d.ts +65 -6
- package/utilities/buildASTSchema.js +65 -6
- package/utilities/buildASTSchema.mjs +65 -6
- package/utilities/buildClientSchema.d.ts +15 -0
- package/utilities/buildClientSchema.js +16 -0
- package/utilities/buildClientSchema.mjs +15 -0
- package/utilities/coerceInputValue.d.ts +46 -0
- package/utilities/coerceInputValue.js +47 -0
- package/utilities/coerceInputValue.mjs +46 -0
- package/utilities/concatAST.d.ts +12 -0
- package/utilities/concatAST.js +13 -0
- package/utilities/concatAST.mjs +12 -0
- package/utilities/extendSchema.d.ts +56 -3
- package/utilities/extendSchema.js +63 -3
- package/utilities/extendSchema.mjs +62 -3
- package/utilities/findBreakingChanges.d.ts +95 -0
- package/utilities/findBreakingChanges.js +68 -0
- package/utilities/findBreakingChanges.mjs +70 -0
- package/utilities/getIntrospectionQuery.d.ts +132 -0
- package/utilities/getIntrospectionQuery.js +41 -0
- package/utilities/getIntrospectionQuery.mjs +41 -0
- package/utilities/getOperationAST.d.ts +15 -0
- package/utilities/getOperationAST.js +16 -0
- package/utilities/getOperationAST.mjs +15 -0
- package/utilities/getOperationRootType.d.ts +18 -1
- package/utilities/getOperationRootType.js +19 -1
- package/utilities/getOperationRootType.mjs +18 -1
- package/utilities/index.d.ts +7 -0
- package/utilities/index.mjs +7 -0
- package/utilities/introspectionFromSchema.d.ts +54 -0
- package/utilities/introspectionFromSchema.js +55 -0
- package/utilities/introspectionFromSchema.mjs +54 -0
- package/utilities/lexicographicSortSchema.d.ts +35 -0
- package/utilities/lexicographicSortSchema.js +36 -0
- package/utilities/lexicographicSortSchema.mjs +35 -0
- package/utilities/printSchema.d.ts +63 -0
- package/utilities/printSchema.js +66 -0
- package/utilities/printSchema.mjs +67 -0
- package/utilities/resolveSchemaCoordinate.d.ts +62 -0
- package/utilities/resolveSchemaCoordinate.js +64 -0
- package/utilities/resolveSchemaCoordinate.mjs +63 -0
- package/utilities/separateOperations.d.ts +30 -0
- package/utilities/separateOperations.js +31 -0
- package/utilities/separateOperations.mjs +30 -0
- package/utilities/stripIgnoredCharacters.d.ts +13 -6
- package/utilities/stripIgnoredCharacters.js +16 -6
- package/utilities/stripIgnoredCharacters.mjs +15 -6
- package/utilities/typeComparators.d.ts +84 -0
- package/utilities/typeComparators.js +85 -0
- package/utilities/typeComparators.mjs +84 -0
- package/utilities/typeFromAST.d.ts +86 -0
- package/utilities/typeFromAST.js +3 -0
- package/utilities/typeFromAST.mjs +3 -0
- package/utilities/typedQueryDocumentNode.d.ts +4 -0
- package/utilities/valueFromAST.d.ts +38 -0
- package/utilities/valueFromAST.js +39 -0
- package/utilities/valueFromAST.mjs +38 -0
- package/utilities/valueFromASTUntyped.d.ts +15 -2
- package/utilities/valueFromASTUntyped.js +16 -2
- package/utilities/valueFromASTUntyped.mjs +15 -2
- package/validation/ValidationContext.d.ts +399 -0
- package/validation/ValidationContext.js +400 -0
- package/validation/ValidationContext.mjs +401 -0
- package/validation/index.d.ts +6 -0
- package/validation/index.mjs +6 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.js +29 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
- package/validation/rules/KnownArgumentNamesRule.js +30 -3
- package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
- package/validation/rules/KnownDirectivesRule.d.ts +28 -0
- package/validation/rules/KnownDirectivesRule.js +29 -0
- package/validation/rules/KnownDirectivesRule.mjs +28 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
- package/validation/rules/KnownFragmentNamesRule.js +29 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
- package/validation/rules/KnownTypeNamesRule.js +29 -0
- package/validation/rules/KnownTypeNamesRule.mjs +28 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.js +29 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
- package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
- package/validation/rules/NoFragmentCyclesRule.js +29 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.js +29 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.js +29 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
- package/validation/rules/NoUnusedVariablesRule.js +30 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
- package/validation/rules/ScalarLeafsRule.d.ts +28 -0
- package/validation/rules/ScalarLeafsRule.js +29 -0
- package/validation/rules/ScalarLeafsRule.mjs +28 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.js +29 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.js +29 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
- package/validation/rules/UniqueOperationNamesRule.js +29 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
- package/validation/rules/UniqueOperationTypesRule.js +22 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
- package/validation/rules/UniqueTypeNamesRule.js +22 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
- package/validation/rules/UniqueVariableNamesRule.js +29 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.js +33 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
- package/validation/specifiedRules.d.ts +2 -3
- package/validation/specifiedRules.js +2 -3
- package/validation/specifiedRules.mjs +2 -3
- package/validation/validate.d.ts +70 -9
- package/validation/validate.js +63 -7
- package/validation/validate.mjs +63 -7
- package/version.d.ts +3 -6
- package/version.js +6 -8
- package/version.mjs +5 -8
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import { keyValMap } from '../jsutils/keyValMap.mjs';
|
|
2
3
|
import { Kind } from '../language/kinds.mjs';
|
|
3
4
|
/**
|
|
4
5
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
7
|
+
* Because no GraphQL type is provided, the returned JavaScript value reflects
|
|
8
|
+
* the provided GraphQL value AST.
|
|
8
9
|
*
|
|
9
10
|
* | GraphQL Value | JavaScript Value |
|
|
10
11
|
* | -------------------- | ---------------- |
|
|
@@ -14,7 +15,19 @@ import { Kind } from '../language/kinds.mjs';
|
|
|
14
15
|
* | String / Enum | String |
|
|
15
16
|
* | Int / Float | Number |
|
|
16
17
|
* | Null | null |
|
|
18
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
19
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
20
|
+
* @returns JavaScript value represented by the GraphQL value AST.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { parseValue } from 'graphql/language';
|
|
24
|
+
* import { valueFromASTUntyped } from 'graphql/utilities';
|
|
17
25
|
*
|
|
26
|
+
* const value = valueFromASTUntyped(parseValue('[1, 2, 3]'));
|
|
27
|
+
*
|
|
28
|
+
* value; // => [1, 2, 3]
|
|
29
|
+
* valueFromASTUntyped(parseValue('$name'), { name: 'Ada' }); // => 'Ada'
|
|
30
|
+
* ```
|
|
18
31
|
*/
|
|
19
32
|
|
|
20
33
|
export function valueFromASTUntyped(valueNode, variables) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation Context */
|
|
1
2
|
import type { Maybe } from '../jsutils/Maybe';
|
|
2
3
|
import type { GraphQLError } from '../error/GraphQLError';
|
|
3
4
|
import type {
|
|
@@ -33,6 +34,8 @@ interface VariableUsage {
|
|
|
33
34
|
* An instance of this class is passed as the "this" context to all validators,
|
|
34
35
|
* allowing access to commonly useful contextual information from within a
|
|
35
36
|
* validation rule.
|
|
37
|
+
*
|
|
38
|
+
* @internal
|
|
36
39
|
*/
|
|
37
40
|
export declare class ASTValidationContext {
|
|
38
41
|
private _ast;
|
|
@@ -50,9 +53,11 @@ export declare class ASTValidationContext {
|
|
|
50
53
|
operation: OperationDefinitionNode,
|
|
51
54
|
): ReadonlyArray<FragmentDefinitionNode>;
|
|
52
55
|
}
|
|
56
|
+
/** @internal */
|
|
53
57
|
export declare type ASTValidationRule = (
|
|
54
58
|
context: ASTValidationContext,
|
|
55
59
|
) => ASTVisitor;
|
|
60
|
+
/** @internal */
|
|
56
61
|
export declare class SDLValidationContext extends ASTValidationContext {
|
|
57
62
|
private _schema;
|
|
58
63
|
constructor(
|
|
@@ -63,34 +68,428 @@ export declare class SDLValidationContext extends ASTValidationContext {
|
|
|
63
68
|
get [Symbol.toStringTag](): string;
|
|
64
69
|
getSchema(): Maybe<GraphQLSchema>;
|
|
65
70
|
}
|
|
71
|
+
/** @internal */
|
|
66
72
|
export declare type SDLValidationRule = (
|
|
67
73
|
context: SDLValidationContext,
|
|
68
74
|
) => ASTVisitor;
|
|
75
|
+
/** Validation context passed to query validation rules. */
|
|
69
76
|
export declare class ValidationContext extends ASTValidationContext {
|
|
70
77
|
private _schema;
|
|
71
78
|
private _typeInfo;
|
|
72
79
|
private _variableUsages;
|
|
73
80
|
private _recursiveVariableUsages;
|
|
81
|
+
/**
|
|
82
|
+
* Creates a ValidationContext instance.
|
|
83
|
+
* @param schema - Schema used to validate the document.
|
|
84
|
+
* @param ast - Document AST being validated.
|
|
85
|
+
* @param typeInfo - TypeInfo instance used to track traversal state.
|
|
86
|
+
* @param onError - Callback invoked for each validation error.
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* import { parse } from 'graphql/language';
|
|
90
|
+
* import { GraphQLError } from 'graphql/error';
|
|
91
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
92
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
93
|
+
*
|
|
94
|
+
* const schema = buildSchema(`
|
|
95
|
+
* type Query {
|
|
96
|
+
* greeting: String
|
|
97
|
+
* }
|
|
98
|
+
* `);
|
|
99
|
+
* const document = parse('{ greeting }');
|
|
100
|
+
* const errors = [];
|
|
101
|
+
* const context = new ValidationContext(
|
|
102
|
+
* schema,
|
|
103
|
+
* document,
|
|
104
|
+
* new TypeInfo(schema),
|
|
105
|
+
* (error) => errors.push(error),
|
|
106
|
+
* );
|
|
107
|
+
*
|
|
108
|
+
* context.reportError(new GraphQLError('Example validation error.'));
|
|
109
|
+
*
|
|
110
|
+
* context.getSchema(); // => schema
|
|
111
|
+
* errors[0].message; // => 'Example validation error.'
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
74
114
|
constructor(
|
|
75
115
|
schema: GraphQLSchema,
|
|
76
116
|
ast: DocumentNode,
|
|
77
117
|
typeInfo: TypeInfo,
|
|
78
118
|
onError: (error: GraphQLError) => void,
|
|
79
119
|
);
|
|
120
|
+
/**
|
|
121
|
+
* Returns the value used by `Object.prototype.toString`.
|
|
122
|
+
* @returns The built-in string tag for this object.
|
|
123
|
+
*/
|
|
80
124
|
get [Symbol.toStringTag](): string;
|
|
125
|
+
/**
|
|
126
|
+
* Returns the schema being used by this validation context.
|
|
127
|
+
* @returns The schema being validated against.
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* import { parse } from 'graphql/language';
|
|
131
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
132
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
133
|
+
*
|
|
134
|
+
* const schema = buildSchema(`
|
|
135
|
+
* type Query {
|
|
136
|
+
* greeting: String
|
|
137
|
+
* }
|
|
138
|
+
* `);
|
|
139
|
+
* const context = new ValidationContext(
|
|
140
|
+
* schema,
|
|
141
|
+
* parse('{ greeting }'),
|
|
142
|
+
* new TypeInfo(schema),
|
|
143
|
+
* () => {},
|
|
144
|
+
* );
|
|
145
|
+
*
|
|
146
|
+
* context.getSchema().getQueryType()?.name; // => 'Query'
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
81
149
|
getSchema(): GraphQLSchema;
|
|
150
|
+
/**
|
|
151
|
+
* Returns variable usages found directly within this node.
|
|
152
|
+
* @param node - The AST node to inspect or visit.
|
|
153
|
+
* @returns Variable usages found directly within this node.
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* import { parse } from 'graphql/language';
|
|
157
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
158
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
159
|
+
*
|
|
160
|
+
* const schema = buildSchema(`
|
|
161
|
+
* type Query {
|
|
162
|
+
* greeting(name: String): String
|
|
163
|
+
* }
|
|
164
|
+
* `);
|
|
165
|
+
* const document = parse('query ($name: String) { greeting(name: $name) }');
|
|
166
|
+
* const operation = document.definitions[0];
|
|
167
|
+
* const context = new ValidationContext(
|
|
168
|
+
* schema,
|
|
169
|
+
* document,
|
|
170
|
+
* new TypeInfo(schema),
|
|
171
|
+
* () => {},
|
|
172
|
+
* );
|
|
173
|
+
*
|
|
174
|
+
* const usages = context.getVariableUsages(operation);
|
|
175
|
+
*
|
|
176
|
+
* usages[0].node.name.value; // => 'name'
|
|
177
|
+
* String(usages[0].type); // => 'String'
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
82
180
|
getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage>;
|
|
181
|
+
/**
|
|
182
|
+
* Returns variable usages for an operation, including variables used by referenced fragments.
|
|
183
|
+
* @param operation - Operation definition to inspect.
|
|
184
|
+
* @returns Variable usages reachable from the operation.
|
|
185
|
+
* @example
|
|
186
|
+
* ```ts
|
|
187
|
+
* import { parse } from 'graphql/language';
|
|
188
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
189
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
190
|
+
*
|
|
191
|
+
* const schema = buildSchema(`
|
|
192
|
+
* type Query {
|
|
193
|
+
* viewer: User
|
|
194
|
+
* }
|
|
195
|
+
*
|
|
196
|
+
* type User {
|
|
197
|
+
* name(prefix: String): String
|
|
198
|
+
* }
|
|
199
|
+
* `);
|
|
200
|
+
* const document = parse(`
|
|
201
|
+
* query ($prefix: String) {
|
|
202
|
+
* viewer {
|
|
203
|
+
* ...UserName
|
|
204
|
+
* }
|
|
205
|
+
* }
|
|
206
|
+
*
|
|
207
|
+
* fragment UserName on User {
|
|
208
|
+
* name(prefix: $prefix)
|
|
209
|
+
* }
|
|
210
|
+
* `);
|
|
211
|
+
* const operation = document.definitions[0];
|
|
212
|
+
* const context = new ValidationContext(
|
|
213
|
+
* schema,
|
|
214
|
+
* document,
|
|
215
|
+
* new TypeInfo(schema),
|
|
216
|
+
* () => {},
|
|
217
|
+
* );
|
|
218
|
+
*
|
|
219
|
+
* const usages = context.getRecursiveVariableUsages(operation);
|
|
220
|
+
*
|
|
221
|
+
* usages.map((usage) => usage.node.name.value); // => ['prefix']
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
83
224
|
getRecursiveVariableUsages(
|
|
84
225
|
operation: OperationDefinitionNode,
|
|
85
226
|
): ReadonlyArray<VariableUsage>;
|
|
227
|
+
/**
|
|
228
|
+
* Returns the current output type at this point in traversal.
|
|
229
|
+
* @returns The current output type, if known.
|
|
230
|
+
* @example
|
|
231
|
+
* ```ts
|
|
232
|
+
* import { parse, visit } from 'graphql/language';
|
|
233
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
234
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
235
|
+
*
|
|
236
|
+
* const schema = buildSchema(`
|
|
237
|
+
* type Query {
|
|
238
|
+
* greeting: String
|
|
239
|
+
* }
|
|
240
|
+
* `);
|
|
241
|
+
* const document = parse('{ greeting }');
|
|
242
|
+
* const typeInfo = new TypeInfo(schema);
|
|
243
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
244
|
+
* let typeName;
|
|
245
|
+
*
|
|
246
|
+
* visit(
|
|
247
|
+
* document,
|
|
248
|
+
* visitWithTypeInfo(typeInfo, {
|
|
249
|
+
* Field: () => {
|
|
250
|
+
* typeName = String(context.getType());
|
|
251
|
+
* },
|
|
252
|
+
* }),
|
|
253
|
+
* );
|
|
254
|
+
*
|
|
255
|
+
* typeName; // => 'String'
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
86
258
|
getType(): Maybe<GraphQLOutputType>;
|
|
259
|
+
/**
|
|
260
|
+
* Returns the current parent composite type.
|
|
261
|
+
* @returns The current parent composite type, if known.
|
|
262
|
+
* @example
|
|
263
|
+
* ```ts
|
|
264
|
+
* import { parse, visit } from 'graphql/language';
|
|
265
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
266
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
267
|
+
*
|
|
268
|
+
* const schema = buildSchema(`
|
|
269
|
+
* type Query {
|
|
270
|
+
* greeting: String
|
|
271
|
+
* }
|
|
272
|
+
* `);
|
|
273
|
+
* const document = parse('{ greeting }');
|
|
274
|
+
* const typeInfo = new TypeInfo(schema);
|
|
275
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
276
|
+
* let parentTypeName;
|
|
277
|
+
*
|
|
278
|
+
* visit(
|
|
279
|
+
* document,
|
|
280
|
+
* visitWithTypeInfo(typeInfo, {
|
|
281
|
+
* Field: () => {
|
|
282
|
+
* parentTypeName = context.getParentType()?.name;
|
|
283
|
+
* },
|
|
284
|
+
* }),
|
|
285
|
+
* );
|
|
286
|
+
*
|
|
287
|
+
* parentTypeName; // => 'Query'
|
|
288
|
+
* ```
|
|
289
|
+
*/
|
|
87
290
|
getParentType(): Maybe<GraphQLCompositeType>;
|
|
291
|
+
/**
|
|
292
|
+
* Returns the current input type at this point in traversal.
|
|
293
|
+
* @returns The current input type, if known.
|
|
294
|
+
* @example
|
|
295
|
+
* ```ts
|
|
296
|
+
* import { parse, visit } from 'graphql/language';
|
|
297
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
298
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
299
|
+
*
|
|
300
|
+
* const schema = buildSchema(`
|
|
301
|
+
* type Query {
|
|
302
|
+
* reviews(limit: Int): [String]
|
|
303
|
+
* }
|
|
304
|
+
* `);
|
|
305
|
+
* const document = parse('{ reviews(limit: 5) }');
|
|
306
|
+
* const typeInfo = new TypeInfo(schema);
|
|
307
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
308
|
+
* let inputTypeName;
|
|
309
|
+
*
|
|
310
|
+
* visit(
|
|
311
|
+
* document,
|
|
312
|
+
* visitWithTypeInfo(typeInfo, {
|
|
313
|
+
* Argument: () => {
|
|
314
|
+
* inputTypeName = String(context.getInputType());
|
|
315
|
+
* },
|
|
316
|
+
* }),
|
|
317
|
+
* );
|
|
318
|
+
*
|
|
319
|
+
* inputTypeName; // => 'Int'
|
|
320
|
+
* ```
|
|
321
|
+
*/
|
|
88
322
|
getInputType(): Maybe<GraphQLInputType>;
|
|
323
|
+
/**
|
|
324
|
+
* Returns the parent input type for the current input position.
|
|
325
|
+
* @returns The parent input type, if known.
|
|
326
|
+
* @example
|
|
327
|
+
* ```ts
|
|
328
|
+
* import { parse, visit } from 'graphql/language';
|
|
329
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
330
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
331
|
+
*
|
|
332
|
+
* const schema = buildSchema(`
|
|
333
|
+
* input ReviewFilter {
|
|
334
|
+
* stars: Int
|
|
335
|
+
* }
|
|
336
|
+
*
|
|
337
|
+
* type Query {
|
|
338
|
+
* reviews(filter: ReviewFilter): [String]
|
|
339
|
+
* }
|
|
340
|
+
* `);
|
|
341
|
+
* const document = parse('{ reviews(filter: { stars: 5 }) }');
|
|
342
|
+
* const typeInfo = new TypeInfo(schema);
|
|
343
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
344
|
+
* let parentInputTypeName;
|
|
345
|
+
*
|
|
346
|
+
* visit(
|
|
347
|
+
* document,
|
|
348
|
+
* visitWithTypeInfo(typeInfo, {
|
|
349
|
+
* ObjectField: () => {
|
|
350
|
+
* parentInputTypeName = String(context.getParentInputType());
|
|
351
|
+
* },
|
|
352
|
+
* }),
|
|
353
|
+
* );
|
|
354
|
+
*
|
|
355
|
+
* parentInputTypeName; // => 'ReviewFilter'
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
89
358
|
getParentInputType(): Maybe<GraphQLInputType>;
|
|
359
|
+
/**
|
|
360
|
+
* Returns the current field definition.
|
|
361
|
+
* @returns The current field definition, if known.
|
|
362
|
+
* @example
|
|
363
|
+
* ```ts
|
|
364
|
+
* import { parse, visit } from 'graphql/language';
|
|
365
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
366
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
367
|
+
*
|
|
368
|
+
* const schema = buildSchema(`
|
|
369
|
+
* type Query {
|
|
370
|
+
* greeting: String
|
|
371
|
+
* }
|
|
372
|
+
* `);
|
|
373
|
+
* const document = parse('{ greeting }');
|
|
374
|
+
* const typeInfo = new TypeInfo(schema);
|
|
375
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
376
|
+
* let fieldName;
|
|
377
|
+
*
|
|
378
|
+
* visit(
|
|
379
|
+
* document,
|
|
380
|
+
* visitWithTypeInfo(typeInfo, {
|
|
381
|
+
* Field: () => {
|
|
382
|
+
* fieldName = context.getFieldDef()?.name;
|
|
383
|
+
* },
|
|
384
|
+
* }),
|
|
385
|
+
* );
|
|
386
|
+
*
|
|
387
|
+
* fieldName; // => 'greeting'
|
|
388
|
+
* ```
|
|
389
|
+
*/
|
|
90
390
|
getFieldDef(): Maybe<GraphQLField<unknown, unknown>>;
|
|
391
|
+
/**
|
|
392
|
+
* Returns the current directive definition.
|
|
393
|
+
* @returns The current directive definition, if known.
|
|
394
|
+
* @example
|
|
395
|
+
* ```ts
|
|
396
|
+
* import { parse, visit } from 'graphql/language';
|
|
397
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
398
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
399
|
+
*
|
|
400
|
+
* const schema = buildSchema(`
|
|
401
|
+
* type Query {
|
|
402
|
+
* greeting: String
|
|
403
|
+
* }
|
|
404
|
+
* `);
|
|
405
|
+
* const document = parse('{ greeting @include(if: true) }');
|
|
406
|
+
* const typeInfo = new TypeInfo(schema);
|
|
407
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
408
|
+
* let directiveName;
|
|
409
|
+
*
|
|
410
|
+
* visit(
|
|
411
|
+
* document,
|
|
412
|
+
* visitWithTypeInfo(typeInfo, {
|
|
413
|
+
* Directive: () => {
|
|
414
|
+
* directiveName = context.getDirective()?.name;
|
|
415
|
+
* },
|
|
416
|
+
* }),
|
|
417
|
+
* );
|
|
418
|
+
*
|
|
419
|
+
* directiveName; // => 'include'
|
|
420
|
+
* ```
|
|
421
|
+
*/
|
|
91
422
|
getDirective(): Maybe<GraphQLDirective>;
|
|
423
|
+
/**
|
|
424
|
+
* Returns the current argument definition.
|
|
425
|
+
* @returns The current argument definition, if known.
|
|
426
|
+
* @example
|
|
427
|
+
* ```ts
|
|
428
|
+
* import { parse, visit } from 'graphql/language';
|
|
429
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
430
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
431
|
+
*
|
|
432
|
+
* const schema = buildSchema(`
|
|
433
|
+
* type Query {
|
|
434
|
+
* reviews(limit: Int): [String]
|
|
435
|
+
* }
|
|
436
|
+
* `);
|
|
437
|
+
* const document = parse('{ reviews(limit: 5) }');
|
|
438
|
+
* const typeInfo = new TypeInfo(schema);
|
|
439
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
440
|
+
* let argumentName;
|
|
441
|
+
*
|
|
442
|
+
* visit(
|
|
443
|
+
* document,
|
|
444
|
+
* visitWithTypeInfo(typeInfo, {
|
|
445
|
+
* Argument: () => {
|
|
446
|
+
* argumentName = context.getArgument()?.name;
|
|
447
|
+
* },
|
|
448
|
+
* }),
|
|
449
|
+
* );
|
|
450
|
+
*
|
|
451
|
+
* argumentName; // => 'limit'
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
92
454
|
getArgument(): Maybe<GraphQLArgument>;
|
|
455
|
+
/**
|
|
456
|
+
* Returns the current enum value definition.
|
|
457
|
+
* @returns The current enum value definition, if known.
|
|
458
|
+
* @example
|
|
459
|
+
* ```ts
|
|
460
|
+
* import { parse, visit } from 'graphql/language';
|
|
461
|
+
* import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';
|
|
462
|
+
* import { ValidationContext } from 'graphql/validation';
|
|
463
|
+
*
|
|
464
|
+
* const schema = buildSchema(`
|
|
465
|
+
* enum Sort {
|
|
466
|
+
* NEWEST
|
|
467
|
+
* OLDEST
|
|
468
|
+
* }
|
|
469
|
+
*
|
|
470
|
+
* type Query {
|
|
471
|
+
* reviews(sort: Sort): [String]
|
|
472
|
+
* }
|
|
473
|
+
* `);
|
|
474
|
+
* const document = parse('{ reviews(sort: OLDEST) }');
|
|
475
|
+
* const typeInfo = new TypeInfo(schema);
|
|
476
|
+
* const context = new ValidationContext(schema, document, typeInfo, () => {});
|
|
477
|
+
* let enumValueName;
|
|
478
|
+
*
|
|
479
|
+
* visit(
|
|
480
|
+
* document,
|
|
481
|
+
* visitWithTypeInfo(typeInfo, {
|
|
482
|
+
* EnumValue: () => {
|
|
483
|
+
* enumValueName = context.getEnumValue()?.name;
|
|
484
|
+
* },
|
|
485
|
+
* }),
|
|
486
|
+
* );
|
|
487
|
+
*
|
|
488
|
+
* enumValueName; // => 'OLDEST'
|
|
489
|
+
* ```
|
|
490
|
+
*/
|
|
93
491
|
getEnumValue(): Maybe<GraphQLEnumValue>;
|
|
94
492
|
}
|
|
493
|
+
/** A function that creates an AST visitor for validating a GraphQL document. */
|
|
95
494
|
export declare type ValidationRule = (context: ValidationContext) => ASTVisitor;
|
|
96
495
|
export {};
|