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
package/validation/validate.js
CHANGED
|
@@ -26,12 +26,18 @@ var _specifiedRules = require('./specifiedRules.js');
|
|
|
26
26
|
|
|
27
27
|
var _ValidationContext = require('./ValidationContext.js');
|
|
28
28
|
|
|
29
|
+
/** @category Validation */
|
|
29
30
|
// Per the specification, descriptions must not affect validation.
|
|
30
31
|
// See https://spec.graphql.org/draft/#sec-Descriptions
|
|
31
32
|
const QueryDocumentKeysToValidate = (0, _mapValue.mapValue)(
|
|
32
33
|
_ast.QueryDocumentKeys,
|
|
33
34
|
(keys) => keys.filter((key) => key !== 'description'),
|
|
34
35
|
);
|
|
36
|
+
/**
|
|
37
|
+
* Options used when validating a GraphQL document.
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
|
|
35
41
|
/**
|
|
36
42
|
* Implements the "Validation" section of the spec.
|
|
37
43
|
*
|
|
@@ -41,24 +47,76 @@ const QueryDocumentKeysToValidate = (0, _mapValue.mapValue)(
|
|
|
41
47
|
* A list of specific validation rules may be provided. If not provided, the
|
|
42
48
|
* default list of rules defined by the GraphQL specification will be used.
|
|
43
49
|
*
|
|
44
|
-
* Each validation
|
|
50
|
+
* Each validation rule is a function that returns a visitor
|
|
45
51
|
* (see the language/visitor API). Visitor methods are expected to return
|
|
46
52
|
* GraphQLErrors, or Arrays of GraphQLErrors when invalid.
|
|
47
53
|
*
|
|
48
54
|
* Validate will stop validation after a `maxErrors` limit has been reached.
|
|
49
55
|
* Attackers can send pathologically invalid queries to induce a DoS attack,
|
|
50
|
-
* so
|
|
56
|
+
* so `maxErrors` defaults to 100 errors.
|
|
51
57
|
*
|
|
52
58
|
* Optionally a custom TypeInfo instance may be provided. If not provided, one
|
|
53
59
|
* will be created from the provided schema.
|
|
60
|
+
* @param schema - Schema to validate against.
|
|
61
|
+
* @param documentAST - Document AST to validate.
|
|
62
|
+
* @param rules - Validation rules to apply.
|
|
63
|
+
* @param options - Validation options, including error limits.
|
|
64
|
+
* @param typeInfo - TypeInfo instance to update during traversal.
|
|
65
|
+
* @returns Validation errors, or an empty array when the document is valid.
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* // Validate with the default specified rules.
|
|
69
|
+
* import { parse } from 'graphql/language';
|
|
70
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
71
|
+
* import { validate } from 'graphql/validation';
|
|
72
|
+
*
|
|
73
|
+
* const schema = buildSchema(`
|
|
74
|
+
* type Query {
|
|
75
|
+
* greeting: String
|
|
76
|
+
* }
|
|
77
|
+
* `);
|
|
78
|
+
*
|
|
79
|
+
* validate(schema, parse('{ greeting }')); // => []
|
|
80
|
+
*
|
|
81
|
+
* const errors = validate(schema, parse('{ missing }'));
|
|
82
|
+
* errors[0].message; // => 'Cannot query field "missing" on type "Query".'
|
|
83
|
+
* ```
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* // This variant uses a custom rule list, TypeInfo, and validation options.
|
|
87
|
+
* import { parse } from 'graphql/language';
|
|
88
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
89
|
+
* import { FieldsOnCorrectTypeRule, validate } from 'graphql/validation';
|
|
90
|
+
*
|
|
91
|
+
* const schema = buildSchema(`
|
|
92
|
+
* type Query {
|
|
93
|
+
* greeting: String
|
|
94
|
+
* }
|
|
95
|
+
* `);
|
|
96
|
+
* const document = parse('{ missingOne missingTwo }');
|
|
97
|
+
*
|
|
98
|
+
* const errors = validate(
|
|
99
|
+
* schema,
|
|
100
|
+
* document,
|
|
101
|
+
* [FieldsOnCorrectTypeRule],
|
|
102
|
+
* { maxErrors: 1 },
|
|
103
|
+
* new TypeInfo(schema),
|
|
104
|
+
* );
|
|
105
|
+
*
|
|
106
|
+
* errors.length; // => 2
|
|
107
|
+
* errors[1].message; // => 'Too many validation errors, error limit reached. Validation aborted.'
|
|
108
|
+
* ```
|
|
54
109
|
*/
|
|
55
|
-
|
|
56
110
|
function validate(
|
|
57
111
|
schema,
|
|
58
112
|
documentAST,
|
|
59
113
|
rules = _specifiedRules.specifiedRules,
|
|
60
114
|
options,
|
|
61
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Deprecated TypeInfo instance used to track traversal state during
|
|
117
|
+
* validation. Omit this argument so validate creates the TypeInfo instance.
|
|
118
|
+
* @deprecated will be removed in 17.0.0
|
|
119
|
+
*/
|
|
62
120
|
typeInfo = new _TypeInfo.TypeInfo(schema),
|
|
63
121
|
) {
|
|
64
122
|
var _options$maxErrors;
|
|
@@ -112,9 +170,7 @@ function validate(
|
|
|
112
170
|
|
|
113
171
|
return errors;
|
|
114
172
|
}
|
|
115
|
-
/**
|
|
116
|
-
* @internal
|
|
117
|
-
*/
|
|
173
|
+
/** @internal */
|
|
118
174
|
|
|
119
175
|
function validateSDL(
|
|
120
176
|
documentAST,
|
package/validation/validate.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Validation */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { mapValue } from '../jsutils/mapValue.mjs';
|
|
3
4
|
import { GraphQLError } from '../error/GraphQLError.mjs';
|
|
@@ -15,6 +16,11 @@ import {
|
|
|
15
16
|
const QueryDocumentKeysToValidate = mapValue(QueryDocumentKeys, (keys) =>
|
|
16
17
|
keys.filter((key) => key !== 'description'),
|
|
17
18
|
);
|
|
19
|
+
/**
|
|
20
|
+
* Options used when validating a GraphQL document.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
|
|
18
24
|
/**
|
|
19
25
|
* Implements the "Validation" section of the spec.
|
|
20
26
|
*
|
|
@@ -24,24 +30,76 @@ const QueryDocumentKeysToValidate = mapValue(QueryDocumentKeys, (keys) =>
|
|
|
24
30
|
* A list of specific validation rules may be provided. If not provided, the
|
|
25
31
|
* default list of rules defined by the GraphQL specification will be used.
|
|
26
32
|
*
|
|
27
|
-
* Each validation
|
|
33
|
+
* Each validation rule is a function that returns a visitor
|
|
28
34
|
* (see the language/visitor API). Visitor methods are expected to return
|
|
29
35
|
* GraphQLErrors, or Arrays of GraphQLErrors when invalid.
|
|
30
36
|
*
|
|
31
37
|
* Validate will stop validation after a `maxErrors` limit has been reached.
|
|
32
38
|
* Attackers can send pathologically invalid queries to induce a DoS attack,
|
|
33
|
-
* so
|
|
39
|
+
* so `maxErrors` defaults to 100 errors.
|
|
34
40
|
*
|
|
35
41
|
* Optionally a custom TypeInfo instance may be provided. If not provided, one
|
|
36
42
|
* will be created from the provided schema.
|
|
43
|
+
* @param schema - Schema to validate against.
|
|
44
|
+
* @param documentAST - Document AST to validate.
|
|
45
|
+
* @param rules - Validation rules to apply.
|
|
46
|
+
* @param options - Validation options, including error limits.
|
|
47
|
+
* @param typeInfo - TypeInfo instance to update during traversal.
|
|
48
|
+
* @returns Validation errors, or an empty array when the document is valid.
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* // Validate with the default specified rules.
|
|
52
|
+
* import { parse } from 'graphql/language';
|
|
53
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
54
|
+
* import { validate } from 'graphql/validation';
|
|
55
|
+
*
|
|
56
|
+
* const schema = buildSchema(`
|
|
57
|
+
* type Query {
|
|
58
|
+
* greeting: String
|
|
59
|
+
* }
|
|
60
|
+
* `);
|
|
61
|
+
*
|
|
62
|
+
* validate(schema, parse('{ greeting }')); // => []
|
|
63
|
+
*
|
|
64
|
+
* const errors = validate(schema, parse('{ missing }'));
|
|
65
|
+
* errors[0].message; // => 'Cannot query field "missing" on type "Query".'
|
|
66
|
+
* ```
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* // This variant uses a custom rule list, TypeInfo, and validation options.
|
|
70
|
+
* import { parse } from 'graphql/language';
|
|
71
|
+
* import { buildSchema, TypeInfo } from 'graphql/utilities';
|
|
72
|
+
* import { FieldsOnCorrectTypeRule, validate } from 'graphql/validation';
|
|
73
|
+
*
|
|
74
|
+
* const schema = buildSchema(`
|
|
75
|
+
* type Query {
|
|
76
|
+
* greeting: String
|
|
77
|
+
* }
|
|
78
|
+
* `);
|
|
79
|
+
* const document = parse('{ missingOne missingTwo }');
|
|
80
|
+
*
|
|
81
|
+
* const errors = validate(
|
|
82
|
+
* schema,
|
|
83
|
+
* document,
|
|
84
|
+
* [FieldsOnCorrectTypeRule],
|
|
85
|
+
* { maxErrors: 1 },
|
|
86
|
+
* new TypeInfo(schema),
|
|
87
|
+
* );
|
|
88
|
+
*
|
|
89
|
+
* errors.length; // => 2
|
|
90
|
+
* errors[1].message; // => 'Too many validation errors, error limit reached. Validation aborted.'
|
|
91
|
+
* ```
|
|
37
92
|
*/
|
|
38
|
-
|
|
39
93
|
export function validate(
|
|
40
94
|
schema,
|
|
41
95
|
documentAST,
|
|
42
96
|
rules = specifiedRules,
|
|
43
97
|
options,
|
|
44
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Deprecated TypeInfo instance used to track traversal state during
|
|
100
|
+
* validation. Omit this argument so validate creates the TypeInfo instance.
|
|
101
|
+
* @deprecated will be removed in 17.0.0
|
|
102
|
+
*/
|
|
45
103
|
typeInfo = new TypeInfo(schema),
|
|
46
104
|
) {
|
|
47
105
|
var _options$maxErrors;
|
|
@@ -93,9 +151,7 @@ export function validate(
|
|
|
93
151
|
|
|
94
152
|
return errors;
|
|
95
153
|
}
|
|
96
|
-
/**
|
|
97
|
-
* @internal
|
|
98
|
-
*/
|
|
154
|
+
/** @internal */
|
|
99
155
|
|
|
100
156
|
export function validateSDL(
|
|
101
157
|
documentAST,
|
package/version.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*/
|
|
1
|
+
/** @category Version */
|
|
2
|
+
/** A string containing the version of the GraphQL.js library */
|
|
4
3
|
export declare const version: string;
|
|
5
|
-
/**
|
|
6
|
-
* An object containing the components of the GraphQL.js version string
|
|
7
|
-
*/
|
|
4
|
+
/** An object containing the components of the GraphQL.js version string */
|
|
8
5
|
export declare const versionInfo: Readonly<{
|
|
9
6
|
major: number;
|
|
10
7
|
minor: number;
|
package/version.js
CHANGED
|
@@ -4,22 +4,20 @@ Object.defineProperty(exports, '__esModule', {
|
|
|
4
4
|
value: true,
|
|
5
5
|
});
|
|
6
6
|
exports.versionInfo = exports.version = void 0;
|
|
7
|
+
|
|
8
|
+
/** @category Version */
|
|
7
9
|
// Note: This file is autogenerated using "resources/gen-version.js" script and
|
|
8
10
|
// automatically updated by "npm version" command.
|
|
9
11
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
const version = '16.14.0';
|
|
14
|
-
/**
|
|
15
|
-
* An object containing the components of the GraphQL.js version string
|
|
16
|
-
*/
|
|
12
|
+
/** A string containing the version of the GraphQL.js library */
|
|
13
|
+
const version = '16.14.1';
|
|
14
|
+
/** An object containing the components of the GraphQL.js version string */
|
|
17
15
|
|
|
18
16
|
exports.version = version;
|
|
19
17
|
const versionInfo = Object.freeze({
|
|
20
18
|
major: 16,
|
|
21
19
|
minor: 14,
|
|
22
|
-
patch:
|
|
20
|
+
patch: 1,
|
|
23
21
|
preReleaseTag: null,
|
|
24
22
|
});
|
|
25
23
|
exports.versionInfo = versionInfo;
|
package/version.mjs
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
+
/** @category Version */
|
|
1
2
|
// Note: This file is autogenerated using "resources/gen-version.js" script and
|
|
2
3
|
// automatically updated by "npm version" command.
|
|
3
4
|
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export const version = '16.14.0';
|
|
8
|
-
/**
|
|
9
|
-
* An object containing the components of the GraphQL.js version string
|
|
10
|
-
*/
|
|
5
|
+
/** A string containing the version of the GraphQL.js library */
|
|
6
|
+
export const version = '16.14.1';
|
|
7
|
+
/** An object containing the components of the GraphQL.js version string */
|
|
11
8
|
|
|
12
9
|
export const versionInfo = Object.freeze({
|
|
13
10
|
major: 16,
|
|
14
11
|
minor: 14,
|
|
15
|
-
patch:
|
|
12
|
+
patch: 1,
|
|
16
13
|
preReleaseTag: null,
|
|
17
14
|
});
|