graphql 17.0.0-beta.0 → 17.0.0-beta.2
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/__dev__/devMode.d.ts +1 -1
- package/__dev__/error/GraphQLError.d.ts +1 -1
- package/__dev__/error/ensureGraphQLError.d.ts +1 -1
- package/__dev__/error/index.d.ts +1 -1
- package/__dev__/error/locatedError.d.ts +1 -1
- package/__dev__/error/syntaxError.d.ts +1 -1
- package/__dev__/execution/AbortedGraphQLExecutionError.d.ts +1 -1
- package/__dev__/execution/AsyncWorkTracker.d.ts +1 -1
- package/__dev__/execution/ExecutionArgs.d.mts +1 -0
- package/__dev__/execution/ExecutionArgs.d.ts +1 -0
- package/__dev__/execution/ExecutionArgs.js +3 -0
- package/__dev__/execution/ExecutionArgs.mjs +3 -0
- package/__dev__/execution/Executor.d.ts +1 -1
- package/__dev__/execution/ExecutorThrowingOnIncremental.d.ts +1 -1
- package/__dev__/execution/buildResolveInfo.d.mts +1 -0
- package/__dev__/execution/buildResolveInfo.d.ts +1 -0
- package/__dev__/execution/buildResolveInfo.js +3 -0
- package/__dev__/execution/buildResolveInfo.mjs +3 -0
- package/__dev__/execution/cancellablePromise.d.ts +1 -1
- package/__dev__/execution/collectFields.d.ts +1 -1
- package/__dev__/execution/collectIteratorPromises.d.ts +1 -1
- package/__dev__/execution/createSharedExecutionContext.d.ts +1 -1
- package/__dev__/execution/execute.d.ts +1 -1
- package/__dev__/execution/getStreamUsage.d.ts +1 -1
- package/__dev__/execution/getVariableSignature.d.ts +1 -1
- package/__dev__/execution/hooks.d.ts +1 -1
- package/__dev__/execution/incremental/Computation.d.ts +1 -1
- package/__dev__/execution/incremental/IncrementalExecutor.d.ts +1 -1
- package/__dev__/execution/incremental/IncrementalPublisher.d.ts +1 -1
- package/__dev__/execution/incremental/Queue.d.ts +1 -1
- package/__dev__/execution/incremental/WorkQueue.d.ts +1 -1
- package/__dev__/execution/incremental/buildExecutionPlan.d.ts +1 -1
- package/__dev__/execution/index.d.ts +1 -1
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.js +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.js +3 -0
- package/__dev__/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +3 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +1 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +1 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.js +3 -0
- package/__dev__/execution/legacyIncremental/legacyExecuteIncrementally.mjs +3 -0
- package/__dev__/execution/mapAsyncIterable.d.ts +1 -1
- package/__dev__/execution/returnIteratorCatchingErrors.d.ts +1 -1
- package/__dev__/execution/values.d.ts +1 -1
- package/__dev__/execution/withConcurrentAbruptClose.d.ts +1 -1
- package/__dev__/graphql.d.ts +1 -1
- package/__dev__/harness.d.ts +1 -1
- package/__dev__/index.d.ts +1 -1
- package/__dev__/jsutils/AccumulatorMap.d.ts +1 -1
- package/__dev__/jsutils/Maybe.d.ts +1 -1
- package/__dev__/jsutils/ObjMap.d.ts +1 -1
- package/__dev__/jsutils/Path.d.ts +1 -1
- package/__dev__/jsutils/PromiseOrValue.d.ts +1 -1
- package/__dev__/jsutils/capitalize.d.ts +1 -1
- package/__dev__/jsutils/devAssert.d.ts +1 -1
- package/__dev__/jsutils/didYouMean.d.ts +1 -1
- package/__dev__/jsutils/formatList.d.ts +1 -1
- package/__dev__/jsutils/getBySet.d.ts +1 -1
- package/__dev__/jsutils/groupBy.d.ts +1 -1
- package/__dev__/jsutils/identityFunc.d.ts +1 -1
- package/__dev__/jsutils/inspect.d.ts +1 -1
- package/__dev__/jsutils/instanceOf.d.ts +1 -1
- package/__dev__/jsutils/invariant.d.ts +1 -1
- package/__dev__/jsutils/isAsyncIterable.d.ts +1 -1
- package/__dev__/jsutils/isIterableObject.d.ts +1 -1
- package/__dev__/jsutils/isObjectLike.d.ts +1 -1
- package/__dev__/jsutils/isPromise.d.ts +1 -1
- package/__dev__/jsutils/isSameSet.d.ts +1 -1
- package/__dev__/jsutils/keyMap.d.ts +1 -1
- package/__dev__/jsutils/keyValMap.d.ts +1 -1
- package/__dev__/jsutils/mapValue.d.ts +1 -1
- package/__dev__/jsutils/memoize1.d.ts +1 -1
- package/__dev__/jsutils/memoize2.d.ts +1 -1
- package/__dev__/jsutils/memoize3.d.ts +1 -1
- package/__dev__/jsutils/naturalCompare.d.ts +1 -1
- package/__dev__/jsutils/printPathArray.d.ts +1 -1
- package/__dev__/jsutils/promiseForObject.d.ts +1 -1
- package/__dev__/jsutils/promiseReduce.d.ts +1 -1
- package/__dev__/jsutils/promiseWithResolvers.d.ts +1 -1
- package/__dev__/jsutils/suggestionList.d.ts +1 -1
- package/__dev__/jsutils/toError.d.ts +1 -1
- package/__dev__/jsutils/toObjMap.d.ts +1 -1
- package/__dev__/language/KindTypeMap.d.ts +1 -1
- package/__dev__/language/ast.d.ts +1 -1
- package/__dev__/language/blockString.d.ts +1 -1
- package/__dev__/language/characterClasses.d.ts +1 -1
- package/__dev__/language/directiveLocation.d.ts +1 -1
- package/__dev__/language/index.d.ts +1 -1
- package/__dev__/language/kinds.d.ts +1 -1
- package/__dev__/language/kinds_.d.ts +1 -1
- package/__dev__/language/lexer.d.ts +1 -1
- package/__dev__/language/location.d.ts +1 -1
- package/__dev__/language/parser.d.ts +1 -1
- package/__dev__/language/predicates.d.ts +1 -1
- package/__dev__/language/printLocation.d.ts +1 -1
- package/__dev__/language/printString.d.ts +1 -1
- package/__dev__/language/printer.d.ts +1 -1
- package/__dev__/language/schemaCoordinateLexer.d.ts +1 -1
- package/__dev__/language/source.d.ts +1 -1
- package/__dev__/language/tokenKind.d.ts +1 -1
- package/__dev__/language/visitor.d.ts +1 -1
- package/__dev__/type/assertName.d.ts +1 -1
- package/__dev__/type/definition.d.ts +1 -1
- package/__dev__/type/directives.d.ts +1 -1
- package/__dev__/type/index.d.ts +1 -1
- package/__dev__/type/introspection.d.ts +1 -1
- package/__dev__/type/scalars.d.ts +1 -1
- package/__dev__/type/schema.d.ts +1 -1
- package/__dev__/type/validate.d.ts +1 -1
- package/__dev__/utilities/TypeInfo.d.ts +1 -1
- package/__dev__/utilities/astFromValue.d.ts +1 -1
- package/__dev__/utilities/buildASTSchema.d.ts +1 -1
- package/__dev__/utilities/buildClientSchema.d.ts +1 -1
- package/__dev__/utilities/coerceInputValue.d.ts +1 -1
- package/__dev__/utilities/concatAST.d.ts +1 -1
- package/__dev__/utilities/extendSchema.d.ts +1 -1
- package/__dev__/utilities/findSchemaChanges.d.ts +1 -1
- package/__dev__/utilities/getDefaultValueAST.d.ts +1 -1
- package/__dev__/utilities/getIntrospectionQuery.d.ts +1 -1
- package/__dev__/utilities/getOperationAST.d.ts +1 -1
- package/__dev__/utilities/index.d.ts +1 -1
- package/__dev__/utilities/introspectionFromSchema.d.ts +1 -1
- package/__dev__/utilities/lexicographicSortSchema.d.ts +1 -1
- package/__dev__/utilities/mapSchemaConfig.d.ts +1 -1
- package/__dev__/utilities/printSchema.d.ts +1 -1
- package/__dev__/utilities/replaceVariables.d.ts +1 -1
- package/__dev__/utilities/resolveSchemaCoordinate.d.ts +1 -1
- package/__dev__/utilities/separateOperations.d.ts +1 -1
- package/__dev__/utilities/sortValueNode.d.ts +1 -1
- package/__dev__/utilities/stripIgnoredCharacters.d.ts +1 -1
- package/__dev__/utilities/typeComparators.d.ts +1 -1
- package/__dev__/utilities/typeFromAST.d.ts +1 -1
- package/__dev__/utilities/typedQueryDocumentNode.d.ts +1 -1
- package/__dev__/utilities/validateInputValue.d.ts +1 -1
- package/__dev__/utilities/valueFromAST.d.ts +1 -1
- package/__dev__/utilities/valueFromASTUntyped.d.ts +1 -1
- package/__dev__/utilities/valueToLiteral.d.ts +1 -1
- package/__dev__/validation/ValidationContext.d.ts +1 -1
- package/__dev__/validation/index.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveLabelRule.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +1 -1
- package/__dev__/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +1 -1
- package/__dev__/validation/rules/ExecutableDefinitionsRule.d.ts +1 -1
- package/__dev__/validation/rules/FieldsOnCorrectTypeRule.d.ts +1 -1
- package/__dev__/validation/rules/FragmentsOnCompositeTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownArgumentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownDirectivesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownFragmentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownOperationTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/KnownTypeNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/LoneAnonymousOperationRule.d.ts +1 -1
- package/__dev__/validation/rules/LoneSchemaDefinitionRule.d.ts +1 -1
- package/__dev__/validation/rules/MaxIntrospectionDepthRule.d.ts +1 -1
- package/__dev__/validation/rules/NoFragmentCyclesRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUndefinedVariablesRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUnusedFragmentsRule.d.ts +1 -1
- package/__dev__/validation/rules/NoUnusedVariablesRule.d.ts +1 -1
- package/__dev__/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +1 -1
- package/__dev__/validation/rules/PossibleFragmentSpreadsRule.d.ts +1 -1
- package/__dev__/validation/rules/PossibleTypeExtensionsRule.d.ts +1 -1
- package/__dev__/validation/rules/ProvidedRequiredArgumentsRule.d.ts +1 -1
- package/__dev__/validation/rules/ScalarLeafsRule.d.ts +1 -1
- package/__dev__/validation/rules/SingleFieldSubscriptionsRule.d.ts +1 -1
- package/__dev__/validation/rules/StreamDirectiveOnListFieldRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueArgumentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueDirectiveNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueDirectivesPerLocationRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueEnumValueNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueFragmentNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueInputFieldNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueOperationNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueOperationTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueTypeNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/UniqueVariableNamesRule.d.ts +1 -1
- package/__dev__/validation/rules/ValuesOfCorrectTypeRule.d.ts +1 -1
- package/__dev__/validation/rules/VariablesAreInputTypesRule.d.ts +1 -1
- package/__dev__/validation/rules/VariablesInAllowedPositionRule.d.ts +1 -1
- package/__dev__/validation/rules/custom/NoDeprecatedCustomRule.d.ts +1 -1
- package/__dev__/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +1 -1
- package/__dev__/validation/specifiedRules.d.ts +1 -1
- package/__dev__/validation/validate.d.ts +1 -1
- package/__dev__/version.d.ts +1 -1
- package/devMode.d.mts +29 -0
- package/devMode.d.ts +29 -0
- package/devMode.js +2 -2
- package/devMode.js.map +1 -1
- package/devMode.mjs.map +1 -1
- package/error/GraphQLError.d.mts +98 -14
- package/error/GraphQLError.d.ts +98 -14
- package/error/GraphQLError.js +18 -28
- package/error/GraphQLError.js.map +1 -1
- package/error/GraphQLError.mjs +11 -21
- package/error/GraphQLError.mjs.map +1 -1
- package/error/ensureGraphQLError.d.mts +3 -1
- package/error/ensureGraphQLError.d.ts +3 -1
- package/error/ensureGraphQLError.js +5 -8
- package/error/ensureGraphQLError.js.map +1 -1
- package/error/ensureGraphQLError.mjs +0 -3
- package/error/ensureGraphQLError.mjs.map +1 -1
- package/error/index.d.mts +10 -4
- package/error/index.d.ts +10 -4
- package/error/index.js +6 -6
- package/error/index.js.map +1 -1
- package/error/index.mjs.map +1 -1
- package/error/locatedError.d.mts +23 -3
- package/error/locatedError.d.ts +23 -3
- package/error/locatedError.js +4 -10
- package/error/locatedError.js.map +1 -1
- package/error/locatedError.mjs +0 -6
- package/error/locatedError.mjs.map +1 -1
- package/error/syntaxError.d.mts +17 -2
- package/error/syntaxError.d.ts +17 -2
- package/error/syntaxError.js +2 -6
- package/error/syntaxError.js.map +1 -1
- package/error/syntaxError.mjs +0 -4
- package/error/syntaxError.mjs.map +1 -1
- package/execution/AbortedGraphQLExecutionError.d.mts +28 -1
- package/execution/AbortedGraphQLExecutionError.d.ts +28 -1
- package/execution/AbortedGraphQLExecutionError.js.map +1 -1
- package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
- package/execution/AsyncWorkTracker.d.mts +1 -1
- package/execution/AsyncWorkTracker.d.ts +1 -1
- package/execution/AsyncWorkTracker.js +3 -7
- package/execution/AsyncWorkTracker.js.map +1 -1
- package/execution/AsyncWorkTracker.mjs +1 -5
- package/execution/AsyncWorkTracker.mjs.map +1 -1
- package/execution/ExecutionArgs.d.mts +101 -0
- package/execution/ExecutionArgs.d.ts +101 -0
- package/execution/ExecutionArgs.js +3 -0
- package/execution/ExecutionArgs.js.map +1 -0
- package/execution/ExecutionArgs.mjs +2 -0
- package/execution/ExecutionArgs.mjs.map +1 -0
- package/execution/Executor.d.mts +55 -52
- package/execution/Executor.d.ts +55 -52
- package/execution/Executor.js +84 -206
- package/execution/Executor.js.map +1 -1
- package/execution/Executor.mjs +3 -125
- package/execution/Executor.mjs.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.d.mts +6 -6
- package/execution/ExecutorThrowingOnIncremental.d.ts +6 -6
- package/execution/ExecutorThrowingOnIncremental.js +11 -13
- package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.mjs +0 -2
- package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
- package/execution/buildResolveInfo.d.mts +16 -0
- package/execution/buildResolveInfo.d.ts +16 -0
- package/execution/buildResolveInfo.js +21 -0
- package/execution/buildResolveInfo.js.map +1 -0
- package/execution/buildResolveInfo.mjs +18 -0
- package/execution/buildResolveInfo.mjs.map +1 -0
- package/execution/cancellablePromise.d.mts +3 -0
- package/execution/cancellablePromise.d.ts +3 -0
- package/execution/cancellablePromise.js +2 -2
- package/execution/cancellablePromise.js.map +1 -1
- package/execution/cancellablePromise.mjs.map +1 -1
- package/execution/collectFields.d.mts +15 -9
- package/execution/collectFields.d.ts +15 -9
- package/execution/collectFields.js +19 -60
- package/execution/collectFields.js.map +1 -1
- package/execution/collectFields.mjs +0 -41
- package/execution/collectFields.mjs.map +1 -1
- package/execution/collectIteratorPromises.d.mts +2 -0
- package/execution/collectIteratorPromises.d.ts +2 -0
- package/execution/collectIteratorPromises.js +2 -7
- package/execution/collectIteratorPromises.js.map +1 -1
- package/execution/collectIteratorPromises.mjs +0 -5
- package/execution/collectIteratorPromises.mjs.map +1 -1
- package/execution/createSharedExecutionContext.d.mts +3 -2
- package/execution/createSharedExecutionContext.d.ts +3 -2
- package/execution/createSharedExecutionContext.js +2 -2
- package/execution/createSharedExecutionContext.js.map +1 -1
- package/execution/createSharedExecutionContext.mjs.map +1 -1
- package/execution/execute.d.mts +412 -47
- package/execution/execute.d.ts +412 -47
- package/execution/execute.js +73 -254
- package/execution/execute.js.map +1 -1
- package/execution/execute.mjs +12 -193
- package/execution/execute.mjs.map +1 -1
- package/execution/getStreamUsage.d.mts +5 -2
- package/execution/getStreamUsage.d.ts +5 -2
- package/execution/getStreamUsage.js +9 -16
- package/execution/getStreamUsage.js.map +1 -1
- package/execution/getStreamUsage.mjs +0 -7
- package/execution/getStreamUsage.mjs.map +1 -1
- package/execution/getVariableSignature.d.mts +7 -4
- package/execution/getVariableSignature.d.ts +7 -4
- package/execution/getVariableSignature.js +8 -10
- package/execution/getVariableSignature.js.map +1 -1
- package/execution/getVariableSignature.mjs +0 -2
- package/execution/getVariableSignature.mjs.map +1 -1
- package/execution/hooks.d.mts +4 -8
- package/execution/hooks.d.ts +4 -8
- package/execution/hooks.js +0 -1
- package/execution/hooks.js.map +1 -1
- package/execution/hooks.mjs +0 -1
- package/execution/hooks.mjs.map +1 -1
- package/execution/incremental/Computation.d.mts +2 -2
- package/execution/incremental/Computation.d.ts +2 -2
- package/execution/incremental/Computation.js +2 -3
- package/execution/incremental/Computation.js.map +1 -1
- package/execution/incremental/Computation.mjs +0 -1
- package/execution/incremental/Computation.mjs.map +1 -1
- package/execution/incremental/IncrementalExecutor.d.mts +137 -22
- package/execution/incremental/IncrementalExecutor.d.ts +137 -22
- package/execution/incremental/IncrementalExecutor.js +47 -77
- package/execution/incremental/IncrementalExecutor.js.map +1 -1
- package/execution/incremental/IncrementalExecutor.mjs +2 -32
- package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
- package/execution/incremental/IncrementalPublisher.d.mts +4 -6
- package/execution/incremental/IncrementalPublisher.d.ts +4 -6
- package/execution/incremental/IncrementalPublisher.js +12 -18
- package/execution/incremental/IncrementalPublisher.js.map +1 -1
- package/execution/incremental/IncrementalPublisher.mjs +0 -6
- package/execution/incremental/IncrementalPublisher.mjs.map +1 -1
- package/execution/incremental/Queue.d.mts +1 -1
- package/execution/incremental/Queue.d.ts +1 -1
- package/execution/incremental/Queue.js +22 -79
- package/execution/incremental/Queue.js.map +1 -1
- package/execution/incremental/Queue.mjs +8 -64
- package/execution/incremental/Queue.mjs.map +1 -1
- package/execution/incremental/WorkQueue.d.mts +10 -2
- package/execution/incremental/WorkQueue.d.ts +10 -2
- package/execution/incremental/WorkQueue.js +7 -22
- package/execution/incremental/WorkQueue.js.map +1 -1
- package/execution/incremental/WorkQueue.mjs +0 -15
- package/execution/incremental/WorkQueue.mjs.map +1 -1
- package/execution/incremental/buildExecutionPlan.d.mts +4 -1
- package/execution/incremental/buildExecutionPlan.d.ts +4 -1
- package/execution/incremental/buildExecutionPlan.js +4 -4
- package/execution/incremental/buildExecutionPlan.js.map +1 -1
- package/execution/incremental/buildExecutionPlan.mjs.map +1 -1
- package/execution/index.d.mts +17 -8
- package/execution/index.d.ts +17 -8
- package/execution/index.js +26 -22
- package/execution/index.js.map +1 -1
- package/execution/index.mjs +2 -1
- package/execution/index.mjs.map +1 -1
- package/execution/legacyIncremental/BranchingIncrementalExecutor.d.mts +175 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.d.ts +175 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.js +69 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.js.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs +65 -0
- package/execution/legacyIncremental/BranchingIncrementalExecutor.mjs.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.d.mts +12 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.d.ts +12 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.js +131 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.js.map +1 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs +127 -0
- package/execution/legacyIncremental/BranchingIncrementalPublisher.mjs.map +1 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.d.mts +165 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.d.ts +165 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.js +17 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.js.map +1 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.mjs +13 -0
- package/execution/legacyIncremental/legacyExecuteIncrementally.mjs.map +1 -0
- package/execution/mapAsyncIterable.d.mts +3 -1
- package/execution/mapAsyncIterable.d.ts +3 -1
- package/execution/mapAsyncIterable.js +4 -9
- package/execution/mapAsyncIterable.js.map +1 -1
- package/execution/mapAsyncIterable.mjs +0 -5
- package/execution/mapAsyncIterable.mjs.map +1 -1
- package/execution/returnIteratorCatchingErrors.d.mts +1 -0
- package/execution/returnIteratorCatchingErrors.d.ts +1 -0
- package/execution/returnIteratorCatchingErrors.js +1 -2
- package/execution/returnIteratorCatchingErrors.js.map +1 -1
- package/execution/returnIteratorCatchingErrors.mjs +1 -2
- package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
- package/execution/values.d.mts +196 -14
- package/execution/values.d.ts +196 -14
- package/execution/values.js +45 -86
- package/execution/values.js.map +1 -1
- package/execution/values.mjs +14 -55
- package/execution/values.mjs.map +1 -1
- package/execution/withConcurrentAbruptClose.d.mts +3 -1
- package/execution/withConcurrentAbruptClose.d.ts +3 -1
- package/execution/withConcurrentAbruptClose.js +3 -17
- package/execution/withConcurrentAbruptClose.js.map +1 -1
- package/execution/withConcurrentAbruptClose.mjs +1 -15
- package/execution/withConcurrentAbruptClose.mjs.map +1 -1
- package/graphql.d.mts +198 -50
- package/graphql.d.ts +198 -50
- package/graphql.js +11 -23
- package/graphql.js.map +1 -1
- package/graphql.mjs +0 -12
- package/graphql.mjs.map +1 -1
- package/harness.d.mts +21 -4
- package/harness.d.ts +21 -4
- package/harness.js +7 -7
- package/harness.js.map +1 -1
- package/harness.mjs.map +1 -1
- package/index.d.mts +41 -39
- package/index.d.ts +41 -39
- package/index.js +260 -346
- package/index.js.map +1 -1
- package/index.mjs +5 -149
- package/index.mjs.map +1 -1
- package/jsutils/AccumulatorMap.d.mts +2 -0
- package/jsutils/AccumulatorMap.d.ts +2 -0
- package/jsutils/AccumulatorMap.js +0 -4
- package/jsutils/AccumulatorMap.js.map +1 -1
- package/jsutils/AccumulatorMap.mjs +0 -4
- package/jsutils/AccumulatorMap.mjs.map +1 -1
- package/jsutils/Maybe.d.mts +5 -1
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/Maybe.js.map +1 -1
- package/jsutils/Maybe.mjs.map +1 -1
- package/jsutils/ObjMap.d.mts +6 -0
- package/jsutils/ObjMap.d.ts +6 -0
- package/jsutils/ObjMap.js.map +1 -1
- package/jsutils/ObjMap.mjs.map +1 -1
- package/jsutils/Path.d.mts +31 -1
- package/jsutils/Path.d.ts +31 -1
- package/jsutils/Path.js +0 -6
- package/jsutils/Path.js.map +1 -1
- package/jsutils/Path.mjs +0 -6
- package/jsutils/Path.mjs.map +1 -1
- package/jsutils/PromiseOrValue.d.mts +1 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/PromiseOrValue.js.map +1 -1
- package/jsutils/PromiseOrValue.mjs.map +1 -1
- package/jsutils/capitalize.d.mts +2 -0
- package/jsutils/capitalize.d.ts +2 -0
- package/jsutils/capitalize.js +0 -3
- package/jsutils/capitalize.js.map +1 -1
- package/jsutils/capitalize.mjs +0 -3
- package/jsutils/capitalize.mjs.map +1 -1
- package/jsutils/devAssert.d.mts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js.map +1 -1
- package/jsutils/devAssert.mjs.map +1 -1
- package/jsutils/didYouMean.d.mts +4 -1
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js +2 -2
- package/jsutils/didYouMean.js.map +1 -1
- package/jsutils/didYouMean.mjs.map +1 -1
- package/jsutils/formatList.d.mts +6 -2
- package/jsutils/formatList.d.ts +6 -2
- package/jsutils/formatList.js +2 -8
- package/jsutils/formatList.js.map +1 -1
- package/jsutils/formatList.mjs +0 -6
- package/jsutils/formatList.mjs.map +1 -1
- package/jsutils/getBySet.d.mts +1 -0
- package/jsutils/getBySet.d.ts +1 -0
- package/jsutils/getBySet.js +2 -2
- package/jsutils/getBySet.js.map +1 -1
- package/jsutils/getBySet.mjs.map +1 -1
- package/jsutils/groupBy.d.mts +2 -0
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +2 -5
- package/jsutils/groupBy.js.map +1 -1
- package/jsutils/groupBy.mjs +0 -3
- package/jsutils/groupBy.mjs.map +1 -1
- package/jsutils/identityFunc.d.mts +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +0 -3
- package/jsutils/identityFunc.js.map +1 -1
- package/jsutils/identityFunc.mjs +0 -3
- package/jsutils/identityFunc.mjs.map +1 -1
- package/jsutils/inspect.d.mts +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +0 -4
- package/jsutils/inspect.js.map +1 -1
- package/jsutils/inspect.mjs +0 -4
- package/jsutils/inspect.mjs.map +1 -1
- package/jsutils/instanceOf.d.mts +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +3 -14
- package/jsutils/instanceOf.js.map +1 -1
- package/jsutils/instanceOf.mjs +1 -12
- package/jsutils/instanceOf.mjs.map +1 -1
- package/jsutils/invariant.d.mts +1 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js.map +1 -1
- package/jsutils/invariant.mjs.map +1 -1
- package/jsutils/isAsyncIterable.d.mts +2 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +0 -4
- package/jsutils/isAsyncIterable.js.map +1 -1
- package/jsutils/isAsyncIterable.mjs +0 -4
- package/jsutils/isAsyncIterable.mjs.map +1 -1
- package/jsutils/isIterableObject.d.mts +6 -5
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +0 -17
- package/jsutils/isIterableObject.js.map +1 -1
- package/jsutils/isIterableObject.mjs +0 -17
- package/jsutils/isIterableObject.mjs.map +1 -1
- package/jsutils/isObjectLike.d.mts +2 -0
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +0 -4
- package/jsutils/isObjectLike.js.map +1 -1
- package/jsutils/isObjectLike.mjs +0 -4
- package/jsutils/isObjectLike.mjs.map +1 -1
- package/jsutils/isPromise.d.mts +3 -0
- package/jsutils/isPromise.d.ts +3 -0
- package/jsutils/isPromise.js +0 -4
- package/jsutils/isPromise.js.map +1 -1
- package/jsutils/isPromise.mjs +0 -4
- package/jsutils/isPromise.mjs.map +1 -1
- package/jsutils/isSameSet.d.mts +1 -0
- package/jsutils/isSameSet.d.ts +1 -0
- package/jsutils/isSameSet.js.map +1 -1
- package/jsutils/isSameSet.mjs.map +1 -1
- package/jsutils/keyMap.d.mts +8 -15
- package/jsutils/keyMap.d.ts +8 -15
- package/jsutils/keyMap.js +0 -27
- package/jsutils/keyMap.js.map +1 -1
- package/jsutils/keyMap.mjs +0 -27
- package/jsutils/keyMap.mjs.map +1 -1
- package/jsutils/keyValMap.d.mts +10 -7
- package/jsutils/keyValMap.d.ts +10 -7
- package/jsutils/keyValMap.js +0 -17
- package/jsutils/keyValMap.js.map +1 -1
- package/jsutils/keyValMap.mjs +0 -17
- package/jsutils/keyValMap.mjs.map +1 -1
- package/jsutils/mapValue.d.mts +3 -1
- package/jsutils/mapValue.d.ts +3 -1
- package/jsutils/mapValue.js +0 -4
- package/jsutils/mapValue.js.map +1 -1
- package/jsutils/mapValue.mjs +0 -4
- package/jsutils/mapValue.mjs.map +1 -1
- package/jsutils/memoize1.d.mts +2 -0
- package/jsutils/memoize1.d.ts +2 -0
- package/jsutils/memoize1.js +0 -3
- package/jsutils/memoize1.js.map +1 -1
- package/jsutils/memoize1.mjs +0 -3
- package/jsutils/memoize1.mjs.map +1 -1
- package/jsutils/memoize2.d.mts +2 -0
- package/jsutils/memoize2.d.ts +2 -0
- package/jsutils/memoize2.js +0 -3
- package/jsutils/memoize2.js.map +1 -1
- package/jsutils/memoize2.mjs +0 -3
- package/jsutils/memoize2.mjs.map +1 -1
- package/jsutils/memoize3.d.mts +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +0 -3
- package/jsutils/memoize3.js.map +1 -1
- package/jsutils/memoize3.mjs +0 -3
- package/jsutils/memoize3.mjs.map +1 -1
- package/jsutils/naturalCompare.d.mts +1 -0
- package/jsutils/naturalCompare.d.ts +1 -0
- package/jsutils/naturalCompare.js +0 -7
- package/jsutils/naturalCompare.js.map +1 -1
- package/jsutils/naturalCompare.mjs +0 -7
- package/jsutils/naturalCompare.mjs.map +1 -1
- package/jsutils/printPathArray.d.mts +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +0 -3
- package/jsutils/printPathArray.js.map +1 -1
- package/jsutils/printPathArray.mjs +0 -3
- package/jsutils/printPathArray.mjs.map +1 -1
- package/jsutils/promiseForObject.d.mts +4 -2
- package/jsutils/promiseForObject.d.ts +4 -2
- package/jsutils/promiseForObject.js +0 -7
- package/jsutils/promiseForObject.js.map +1 -1
- package/jsutils/promiseForObject.mjs +0 -7
- package/jsutils/promiseForObject.mjs.map +1 -1
- package/jsutils/promiseReduce.d.mts +3 -1
- package/jsutils/promiseReduce.d.ts +3 -1
- package/jsutils/promiseReduce.js +2 -9
- package/jsutils/promiseReduce.js.map +1 -1
- package/jsutils/promiseReduce.mjs +0 -7
- package/jsutils/promiseReduce.mjs.map +1 -1
- package/jsutils/promiseWithResolvers.d.mts +3 -1
- package/jsutils/promiseWithResolvers.d.ts +3 -1
- package/jsutils/promiseWithResolvers.js +0 -5
- package/jsutils/promiseWithResolvers.js.map +1 -1
- package/jsutils/promiseWithResolvers.mjs +0 -5
- package/jsutils/promiseWithResolvers.mjs.map +1 -1
- package/jsutils/suggestionList.d.mts +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +3 -26
- package/jsutils/suggestionList.js.map +1 -1
- package/jsutils/suggestionList.mjs +1 -24
- package/jsutils/suggestionList.mjs.map +1 -1
- package/jsutils/toError.d.mts +2 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +2 -5
- package/jsutils/toError.js.map +1 -1
- package/jsutils/toError.mjs +0 -3
- package/jsutils/toError.mjs.map +1 -1
- package/jsutils/toObjMap.d.mts +4 -2
- package/jsutils/toObjMap.d.ts +4 -2
- package/jsutils/toObjMap.js.map +1 -1
- package/jsutils/toObjMap.mjs.map +1 -1
- package/language/KindTypeMap.d.mts +2 -1
- package/language/KindTypeMap.d.ts +2 -1
- package/language/KindTypeMap.js.map +1 -1
- package/language/KindTypeMap.mjs.map +1 -1
- package/language/ast.d.mts +425 -58
- package/language/ast.d.ts +425 -58
- package/language/ast.js +8 -21
- package/language/ast.js.map +1 -1
- package/language/ast.mjs +8 -21
- package/language/ast.mjs.map +1 -1
- package/language/blockString.d.mts +1 -3
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +15 -41
- package/language/blockString.js.map +1 -1
- package/language/blockString.mjs +11 -37
- package/language/blockString.mjs.map +1 -1
- package/language/characterClasses.js +2 -45
- package/language/characterClasses.js.map +1 -1
- package/language/characterClasses.mjs +2 -45
- package/language/characterClasses.mjs.map +1 -1
- package/language/directiveLocation.d.mts +26 -6
- package/language/directiveLocation.d.ts +26 -6
- package/language/directiveLocation.js +2 -6
- package/language/directiveLocation.js.map +1 -1
- package/language/directiveLocation.mjs +2 -6
- package/language/directiveLocation.mjs.map +1 -1
- package/language/index.d.mts +22 -16
- package/language/index.d.ts +22 -16
- package/language/index.js +45 -49
- package/language/index.js.map +1 -1
- package/language/index.mjs +0 -4
- package/language/index.mjs.map +1 -1
- package/language/kinds.d.mts +5 -2
- package/language/kinds.d.ts +5 -2
- package/language/kinds.js.map +1 -1
- package/language/kinds.mjs.map +1 -1
- package/language/kinds_.d.mts +102 -12
- package/language/kinds_.d.ts +102 -12
- package/language/kinds_.js +2 -14
- package/language/kinds_.js.map +1 -1
- package/language/kinds_.mjs +1 -13
- package/language/kinds_.mjs.map +1 -1
- package/language/lexer.d.mts +51 -18
- package/language/lexer.d.ts +51 -18
- package/language/lexer.js +102 -343
- package/language/lexer.js.map +1 -1
- package/language/lexer.mjs +37 -278
- package/language/lexer.mjs.map +1 -1
- package/language/location.d.mts +17 -4
- package/language/location.d.ts +17 -4
- package/language/location.js +2 -6
- package/language/location.js.map +1 -1
- package/language/location.mjs +0 -4
- package/language/location.mjs.map +1 -1
- package/language/parser.d.mts +243 -15
- package/language/parser.d.ts +243 -15
- package/language/parser.js +183 -528
- package/language/parser.js.map +1 -1
- package/language/parser.mjs +26 -371
- package/language/parser.mjs.map +1 -1
- package/language/predicates.d.mts +182 -1
- package/language/predicates.d.ts +182 -1
- package/language/predicates.js +45 -49
- package/language/predicates.js.map +1 -1
- package/language/predicates.mjs +3 -7
- package/language/predicates.mjs.map +1 -1
- package/language/printLocation.d.mts +31 -3
- package/language/printLocation.d.ts +31 -3
- package/language/printLocation.js +2 -10
- package/language/printLocation.js.map +1 -1
- package/language/printLocation.mjs +0 -8
- package/language/printLocation.mjs.map +1 -1
- package/language/printString.d.mts +2 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -11
- package/language/printString.js.map +1 -1
- package/language/printString.mjs +5 -11
- package/language/printString.mjs.map +1 -1
- package/language/printer.d.mts +13 -1
- package/language/printer.d.ts +13 -1
- package/language/printer.js +10 -31
- package/language/printer.js.map +1 -1
- package/language/printer.mjs +5 -26
- package/language/printer.mjs.map +1 -1
- package/language/schemaCoordinateLexer.d.mts +17 -3
- package/language/schemaCoordinateLexer.d.ts +17 -3
- package/language/schemaCoordinateLexer.js +21 -51
- package/language/schemaCoordinateLexer.js.map +1 -1
- package/language/schemaCoordinateLexer.mjs +5 -35
- package/language/schemaCoordinateLexer.mjs.map +1 -1
- package/language/source.d.mts +28 -1
- package/language/source.d.ts +28 -1
- package/language/source.js +5 -17
- package/language/source.js.map +1 -1
- package/language/source.mjs +0 -12
- package/language/source.mjs.map +1 -1
- package/language/tokenKind.d.mts +5 -0
- package/language/tokenKind.d.ts +5 -0
- package/language/tokenKind.js +0 -4
- package/language/tokenKind.js.map +1 -1
- package/language/tokenKind.mjs +0 -4
- package/language/tokenKind.mjs.map +1 -1
- package/language/visitor.d.mts +184 -74
- package/language/visitor.d.ts +184 -74
- package/language/visitor.js +10 -25
- package/language/visitor.js.map +1 -1
- package/language/visitor.mjs +0 -15
- package/language/visitor.mjs.map +1 -1
- package/package.json +2 -2
- package/type/assertName.d.mts +18 -1
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +8 -16
- package/type/assertName.js.map +1 -1
- package/type/assertName.mjs +0 -8
- package/type/assertName.mjs.map +1 -1
- package/type/definition.d.mts +3268 -138
- package/type/definition.d.ts +3268 -138
- package/type/definition.js +99 -346
- package/type/definition.js.map +1 -1
- package/type/definition.mjs +5 -252
- package/type/definition.mjs.map +1 -1
- package/type/directives.d.mts +220 -26
- package/type/directives.d.ts +220 -26
- package/type/directives.js +51 -83
- package/type/directives.js.map +1 -1
- package/type/directives.mjs +5 -37
- package/type/directives.mjs.map +1 -1
- package/type/index.d.mts +18 -12
- package/type/index.d.ts +18 -12
- package/type/index.js +106 -129
- package/type/index.js.map +1 -1
- package/type/index.mjs +5 -48
- package/type/index.mjs.map +1 -1
- package/type/introspection.d.mts +38 -2
- package/type/introspection.d.ts +38 -2
- package/type/introspection.js +122 -107
- package/type/introspection.js.map +1 -1
- package/type/introspection.mjs +24 -9
- package/type/introspection.mjs.map +1 -1
- package/type/scalars.d.mts +31 -4
- package/type/scalars.d.ts +31 -4
- package/type/scalars.js +61 -76
- package/type/scalars.js.map +1 -1
- package/type/scalars.mjs +0 -15
- package/type/scalars.mjs.map +1 -1
- package/type/schema.d.mts +514 -38
- package/type/schema.d.ts +514 -38
- package/type/schema.js +32 -129
- package/type/schema.js.map +1 -1
- package/type/schema.mjs +0 -97
- package/type/schema.mjs.map +1 -1
- package/type/validate.d.mts +36 -7
- package/type/validate.d.ts +36 -7
- package/type/validate.js +83 -195
- package/type/validate.js.map +1 -1
- package/type/validate.mjs +1 -113
- package/type/validate.mjs.map +1 -1
- package/utilities/TypeInfo.d.mts +570 -7
- package/utilities/TypeInfo.d.ts +570 -7
- package/utilities/TypeInfo.js +62 -85
- package/utilities/TypeInfo.js.map +1 -1
- package/utilities/TypeInfo.mjs +2 -25
- package/utilities/TypeInfo.mjs.map +1 -1
- package/utilities/astFromValue.d.mts +39 -6
- package/utilities/astFromValue.d.ts +39 -6
- package/utilities/astFromValue.js +30 -74
- package/utilities/astFromValue.js.map +1 -1
- package/utilities/astFromValue.mjs +0 -44
- package/utilities/astFromValue.mjs.map +1 -1
- package/utilities/buildASTSchema.d.mts +71 -11
- package/utilities/buildASTSchema.d.ts +71 -11
- package/utilities/buildASTSchema.js +11 -31
- package/utilities/buildASTSchema.js.map +1 -1
- package/utilities/buildASTSchema.mjs +1 -21
- package/utilities/buildASTSchema.mjs.map +1 -1
- package/utilities/buildClientSchema.d.mts +20 -5
- package/utilities/buildClientSchema.d.ts +20 -5
- package/utilities/buildClientSchema.js +53 -83
- package/utilities/buildClientSchema.js.map +1 -1
- package/utilities/buildClientSchema.mjs +1 -30
- package/utilities/buildClientSchema.mjs.map +1 -1
- package/utilities/coerceInputValue.d.mts +88 -6
- package/utilities/coerceInputValue.d.ts +88 -6
- package/utilities/coerceInputValue.js +52 -81
- package/utilities/coerceInputValue.js.map +1 -1
- package/utilities/coerceInputValue.mjs +21 -50
- package/utilities/coerceInputValue.mjs.map +1 -1
- package/utilities/concatAST.d.mts +13 -1
- package/utilities/concatAST.d.ts +13 -1
- package/utilities/concatAST.js +2 -7
- package/utilities/concatAST.js.map +1 -1
- package/utilities/concatAST.mjs +0 -5
- package/utilities/concatAST.mjs.map +1 -1
- package/utilities/extendSchema.d.mts +61 -6
- package/utilities/extendSchema.d.ts +61 -6
- package/utilities/extendSchema.js +92 -126
- package/utilities/extendSchema.js.map +1 -1
- package/utilities/extendSchema.mjs +27 -61
- package/utilities/extendSchema.mjs.map +1 -1
- package/utilities/findSchemaChanges.d.mts +100 -2
- package/utilities/findSchemaChanges.d.ts +100 -2
- package/utilities/findSchemaChanges.js +41 -75
- package/utilities/findSchemaChanges.js.map +1 -1
- package/utilities/findSchemaChanges.mjs +3 -37
- package/utilities/findSchemaChanges.mjs.map +1 -1
- package/utilities/getDefaultValueAST.d.mts +3 -2
- package/utilities/getDefaultValueAST.d.ts +3 -2
- package/utilities/getDefaultValueAST.js +7 -7
- package/utilities/getDefaultValueAST.js.map +1 -1
- package/utilities/getDefaultValueAST.mjs.map +1 -1
- package/utilities/getIntrospectionQuery.d.mts +151 -3
- package/utilities/getIntrospectionQuery.d.ts +151 -3
- package/utilities/getIntrospectionQuery.js +22 -42
- package/utilities/getIntrospectionQuery.js.map +1 -1
- package/utilities/getIntrospectionQuery.mjs +22 -42
- package/utilities/getIntrospectionQuery.mjs.map +1 -1
- package/utilities/getOperationAST.d.mts +17 -2
- package/utilities/getOperationAST.d.ts +17 -2
- package/utilities/getOperationAST.js +2 -10
- package/utilities/getOperationAST.js.map +1 -1
- package/utilities/getOperationAST.mjs +0 -8
- package/utilities/getOperationAST.mjs.map +1 -1
- package/utilities/index.d.mts +45 -30
- package/utilities/index.d.ts +45 -30
- package/utilities/index.js +61 -88
- package/utilities/index.js.map +1 -1
- package/utilities/index.mjs +4 -37
- package/utilities/index.mjs.map +1 -1
- package/utilities/introspectionFromSchema.d.mts +56 -2
- package/utilities/introspectionFromSchema.d.ts +56 -2
- package/utilities/introspectionFromSchema.js +8 -16
- package/utilities/introspectionFromSchema.js.map +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -9
- package/utilities/introspectionFromSchema.mjs.map +1 -1
- package/utilities/lexicographicSortSchema.d.mts +36 -1
- package/utilities/lexicographicSortSchema.d.ts +36 -1
- package/utilities/lexicographicSortSchema.js +14 -19
- package/utilities/lexicographicSortSchema.js.map +1 -1
- package/utilities/lexicographicSortSchema.mjs +0 -5
- package/utilities/lexicographicSortSchema.mjs.map +1 -1
- package/utilities/mapSchemaConfig.d.mts +9 -6
- package/utilities/mapSchemaConfig.d.ts +9 -6
- package/utilities/mapSchemaConfig.js +28 -40
- package/utilities/mapSchemaConfig.js.map +1 -1
- package/utilities/mapSchemaConfig.mjs +0 -12
- package/utilities/mapSchemaConfig.mjs.map +1 -1
- package/utilities/printSchema.d.mts +87 -3
- package/utilities/printSchema.d.ts +87 -3
- package/utilities/printSchema.js +30 -59
- package/utilities/printSchema.js.map +1 -1
- package/utilities/printSchema.mjs +1 -30
- package/utilities/printSchema.mjs.map +1 -1
- package/utilities/replaceVariables.d.mts +40 -4
- package/utilities/replaceVariables.d.ts +40 -4
- package/utilities/replaceVariables.js +9 -17
- package/utilities/replaceVariables.js.map +1 -1
- package/utilities/replaceVariables.mjs +0 -8
- package/utilities/replaceVariables.mjs.map +1 -1
- package/utilities/resolveSchemaCoordinate.d.mts +67 -5
- package/utilities/resolveSchemaCoordinate.d.ts +67 -5
- package/utilities/resolveSchemaCoordinate.js +23 -79
- package/utilities/resolveSchemaCoordinate.js.map +1 -1
- package/utilities/resolveSchemaCoordinate.mjs +0 -56
- package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
- package/utilities/separateOperations.d.mts +32 -2
- package/utilities/separateOperations.d.ts +32 -2
- package/utilities/separateOperations.js +7 -22
- package/utilities/separateOperations.js.map +1 -1
- package/utilities/separateOperations.mjs +0 -15
- package/utilities/separateOperations.mjs.map +1 -1
- package/utilities/sortValueNode.d.mts +1 -1
- package/utilities/sortValueNode.d.ts +1 -1
- package/utilities/sortValueNode.js +12 -19
- package/utilities/sortValueNode.js.map +1 -1
- package/utilities/sortValueNode.mjs +0 -7
- package/utilities/sortValueNode.mjs.map +1 -1
- package/utilities/stripIgnoredCharacters.d.mts +14 -7
- package/utilities/stripIgnoredCharacters.d.ts +14 -7
- package/utilities/stripIgnoredCharacters.js +11 -76
- package/utilities/stripIgnoredCharacters.js.map +1 -1
- package/utilities/stripIgnoredCharacters.mjs +0 -65
- package/utilities/stripIgnoredCharacters.mjs.map +1 -1
- package/utilities/typeComparators.d.mts +86 -2
- package/utilities/typeComparators.d.ts +86 -2
- package/utilities/typeComparators.js +14 -47
- package/utilities/typeComparators.js.map +1 -1
- package/utilities/typeComparators.mjs +0 -33
- package/utilities/typeComparators.mjs.map +1 -1
- package/utilities/typeFromAST.d.mts +90 -4
- package/utilities/typeFromAST.d.ts +90 -4
- package/utilities/typeFromAST.js +7 -7
- package/utilities/typeFromAST.js.map +1 -1
- package/utilities/typeFromAST.mjs.map +1 -1
- package/utilities/typedQueryDocumentNode.d.mts +5 -1
- package/utilities/typedQueryDocumentNode.d.ts +5 -1
- package/utilities/typedQueryDocumentNode.js.map +1 -1
- package/utilities/typedQueryDocumentNode.mjs.map +1 -1
- package/utilities/validateInputValue.d.mts +129 -6
- package/utilities/validateInputValue.d.ts +129 -6
- package/utilities/validateInputValue.js +60 -80
- package/utilities/validateInputValue.js.map +1 -1
- package/utilities/validateInputValue.mjs +0 -20
- package/utilities/validateInputValue.mjs.map +1 -1
- package/utilities/valueFromAST.d.mts +45 -4
- package/utilities/valueFromAST.d.ts +45 -4
- package/utilities/valueFromAST.js +32 -72
- package/utilities/valueFromAST.js.map +1 -1
- package/utilities/valueFromAST.mjs +13 -53
- package/utilities/valueFromAST.mjs.map +1 -1
- package/utilities/valueFromASTUntyped.d.mts +18 -5
- package/utilities/valueFromASTUntyped.d.ts +18 -5
- package/utilities/valueFromASTUntyped.js +12 -28
- package/utilities/valueFromASTUntyped.js.map +1 -1
- package/utilities/valueFromASTUntyped.mjs +0 -16
- package/utilities/valueFromASTUntyped.mjs.map +1 -1
- package/utilities/valueToLiteral.d.mts +32 -3
- package/utilities/valueToLiteral.d.ts +32 -3
- package/utilities/valueToLiteral.js +37 -70
- package/utilities/valueToLiteral.js.map +1 -1
- package/utilities/valueToLiteral.mjs +7 -40
- package/utilities/valueToLiteral.mjs.map +1 -1
- package/validation/ValidationContext.d.mts +499 -9
- package/validation/ValidationContext.d.ts +499 -9
- package/validation/ValidationContext.js +9 -16
- package/validation/ValidationContext.js.map +1 -1
- package/validation/ValidationContext.mjs +1 -8
- package/validation/ValidationContext.mjs.map +1 -1
- package/validation/index.d.mts +53 -46
- package/validation/index.d.ts +53 -46
- package/validation/index.js +91 -125
- package/validation/index.js.map +1 -1
- package/validation/index.mjs +0 -34
- package/validation/index.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +32 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +32 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -14
- package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +30 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +30 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -13
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +54 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +54 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -19
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs +0 -5
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.d.mts +30 -2
- package/validation/rules/ExecutableDefinitionsRule.d.ts +30 -2
- package/validation/rules/ExecutableDefinitionsRule.js +7 -15
- package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.mjs +0 -8
- package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.d.mts +30 -2
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +30 -2
- package/validation/rules/FieldsOnCorrectTypeRule.js +14 -41
- package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +0 -27
- package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +30 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +30 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -21
- package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +0 -9
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.d.mts +31 -5
- package/validation/rules/KnownArgumentNamesRule.d.ts +31 -5
- package/validation/rules/KnownArgumentNamesRule.js +16 -29
- package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.mjs +0 -13
- package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownDirectivesRule.d.mts +30 -2
- package/validation/rules/KnownDirectivesRule.d.ts +30 -2
- package/validation/rules/KnownDirectivesRule.js +66 -73
- package/validation/rules/KnownDirectivesRule.js.map +1 -1
- package/validation/rules/KnownDirectivesRule.mjs +3 -10
- package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.d.mts +30 -2
- package/validation/rules/KnownFragmentNamesRule.d.ts +30 -2
- package/validation/rules/KnownFragmentNamesRule.js +2 -10
- package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.mjs +0 -8
- package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownOperationTypesRule.d.mts +22 -2
- package/validation/rules/KnownOperationTypesRule.d.ts +22 -2
- package/validation/rules/KnownOperationTypesRule.js +2 -10
- package/validation/rules/KnownOperationTypesRule.js.map +1 -1
- package/validation/rules/KnownOperationTypesRule.mjs +0 -8
- package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
- package/validation/rules/KnownTypeNamesRule.d.mts +30 -2
- package/validation/rules/KnownTypeNamesRule.d.ts +30 -2
- package/validation/rules/KnownTypeNamesRule.js +11 -19
- package/validation/rules/KnownTypeNamesRule.js.map +1 -1
- package/validation/rules/KnownTypeNamesRule.mjs +0 -8
- package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.d.mts +30 -2
- package/validation/rules/LoneAnonymousOperationRule.d.ts +30 -2
- package/validation/rules/LoneAnonymousOperationRule.js +4 -12
- package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.mjs +0 -8
- package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.d.mts +23 -2
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +23 -2
- package/validation/rules/LoneSchemaDefinitionRule.js +3 -8
- package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.mjs +0 -5
- package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.d.mts +33 -2
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +33 -2
- package/validation/rules/MaxIntrospectionDepthRule.js +5 -19
- package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.mjs +0 -14
- package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.d.mts +30 -2
- package/validation/rules/NoFragmentCyclesRule.d.ts +30 -2
- package/validation/rules/NoFragmentCyclesRule.js +2 -17
- package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.mjs +0 -15
- package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.d.mts +30 -2
- package/validation/rules/NoUndefinedVariablesRule.d.ts +30 -2
- package/validation/rules/NoUndefinedVariablesRule.js +2 -10
- package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.mjs +0 -8
- package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.d.mts +30 -2
- package/validation/rules/NoUnusedFragmentsRule.d.ts +30 -2
- package/validation/rules/NoUnusedFragmentsRule.js +2 -10
- package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.mjs +0 -8
- package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.d.mts +31 -2
- package/validation/rules/NoUnusedVariablesRule.d.ts +31 -2
- package/validation/rules/NoUnusedVariablesRule.js +3 -11
- package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.mjs +0 -8
- package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +35 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +35 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +32 -206
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +1 -175
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.d.mts +38 -2
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +38 -2
- package/validation/rules/PossibleFragmentSpreadsRule.js +17 -24
- package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +0 -7
- package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.d.mts +23 -2
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +23 -2
- package/validation/rules/PossibleTypeExtensionsRule.js +38 -49
- package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.mjs +0 -11
- package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +31 -5
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +31 -5
- package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -33
- package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +0 -13
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
- package/validation/rules/ScalarLeafsRule.d.mts +30 -2
- package/validation/rules/ScalarLeafsRule.d.ts +30 -2
- package/validation/rules/ScalarLeafsRule.js +10 -16
- package/validation/rules/ScalarLeafsRule.js.map +1 -1
- package/validation/rules/ScalarLeafsRule.mjs +0 -6
- package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.d.mts +36 -4
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +36 -4
- package/validation/rules/SingleFieldSubscriptionsRule.js +8 -17
- package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +0 -9
- package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +23 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +23 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -12
- package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs +0 -5
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +23 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +23 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -10
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +0 -6
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.d.mts +30 -2
- package/validation/rules/UniqueArgumentNamesRule.d.ts +30 -2
- package/validation/rules/UniqueArgumentNamesRule.js +4 -12
- package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.mjs +0 -8
- package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.d.mts +23 -2
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +23 -2
- package/validation/rules/UniqueDirectiveNamesRule.js +3 -8
- package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +0 -5
- package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +30 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +30 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -21
- package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -11
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.d.mts +23 -2
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +23 -2
- package/validation/rules/UniqueEnumValueNamesRule.js +5 -10
- package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.mjs +0 -5
- package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +23 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +23 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -10
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +0 -5
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.d.mts +30 -2
- package/validation/rules/UniqueFragmentNamesRule.d.ts +30 -2
- package/validation/rules/UniqueFragmentNamesRule.js +2 -9
- package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.mjs +0 -7
- package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.d.mts +34 -2
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +34 -2
- package/validation/rules/UniqueInputFieldNamesRule.js +4 -12
- package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs +0 -8
- package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.d.mts +30 -2
- package/validation/rules/UniqueOperationNamesRule.d.ts +30 -2
- package/validation/rules/UniqueOperationNamesRule.js +2 -9
- package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.mjs +0 -7
- package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.d.mts +23 -2
- package/validation/rules/UniqueOperationTypesRule.d.ts +23 -2
- package/validation/rules/UniqueOperationTypesRule.js +3 -8
- package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.mjs +0 -5
- package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.d.mts +23 -2
- package/validation/rules/UniqueTypeNamesRule.d.ts +23 -2
- package/validation/rules/UniqueTypeNamesRule.js +3 -8
- package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +0 -5
- package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.d.mts +30 -2
- package/validation/rules/UniqueVariableNamesRule.d.ts +30 -2
- package/validation/rules/UniqueVariableNamesRule.js +4 -9
- package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.mjs +0 -5
- package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.d.mts +30 -2
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +30 -2
- package/validation/rules/ValuesOfCorrectTypeRule.js +3 -23
- package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +1 -21
- package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.d.mts +34 -2
- package/validation/rules/VariablesAreInputTypesRule.d.ts +34 -2
- package/validation/rules/VariablesAreInputTypesRule.js +8 -16
- package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.mjs +0 -8
- package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.d.mts +30 -2
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +30 -2
- package/validation/rules/VariablesInAllowedPositionRule.js +14 -34
- package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +0 -20
- package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +43 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +43 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -18
- package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +0 -10
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +30 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +30 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -16
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +0 -10
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
- package/validation/specifiedRules.d.mts +3 -4
- package/validation/specifiedRules.d.ts +3 -4
- package/validation/specifiedRules.js +87 -133
- package/validation/specifiedRules.js.map +1 -1
- package/validation/specifiedRules.mjs +0 -46
- package/validation/specifiedRules.mjs.map +1 -1
- package/validation/validate.d.mts +70 -12
- package/validation/validate.d.ts +70 -12
- package/validation/validate.js +19 -60
- package/validation/validate.js.map +1 -1
- package/validation/validate.mjs +0 -41
- package/validation/validate.mjs.map +1 -1
- package/version.d.mts +3 -6
- package/version.d.ts +3 -6
- package/version.js +2 -10
- package/version.js.map +1 -1
- package/version.mjs +2 -10
- package/version.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationContext.js","sourceRoot":"","sources":["../../src/validation/ValidationContext.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { GraphQLError } from '../error/GraphQLError.js';\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n OperationDefinitionNode,\n SelectionSetNode,\n VariableDefinitionNode,\n VariableNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport type { ASTVisitor } from '../language/visitor.js';\nimport { visit } from '../language/visitor.js';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputType,\n GraphQLOutputType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport type { FragmentSignature } from '../utilities/TypeInfo.js';\nimport { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo.js';\n\ntype NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;\ninterface VariableUsage {\n readonly node: VariableNode;\n readonly type: Maybe<GraphQLInputType>;\n readonly parentType: Maybe<GraphQLInputType>;\n readonly defaultValue: unknown;\n readonly fragmentVariableDefinition: Maybe<VariableDefinitionNode>;\n}\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n */\nexport class ASTValidationContext {\n private _ast: DocumentNode;\n private _onError: (error: GraphQLError) => void;\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(ast: DocumentNode, onError: (error: GraphQLError) => void) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n get [Symbol.toStringTag](): string {\n return 'ASTValidationContext';\n }\n\n reportError(error: GraphQLError): void {\n this._onError(error);\n }\n\n getDocument(): DocumentNode {\n return this._ast;\n }\n\n getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.getDocument().definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n\n getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = new Set<string>();\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (!collectedNames.has(fragName)) {\n collectedNames.add(fragName);\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n}\n\nexport type ASTValidationRule = (context: ASTValidationContext) => ASTVisitor;\n\nexport class SDLValidationContext extends ASTValidationContext {\n private _schema: Maybe<GraphQLSchema>;\n\n constructor(\n ast: DocumentNode,\n schema: Maybe<GraphQLSchema>,\n onError: (error: GraphQLError) => void,\n ) {\n super(ast, onError);\n this._schema = schema;\n }\n\n get hideSuggestions(): boolean {\n return false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'SDLValidationContext';\n }\n\n getSchema(): Maybe<GraphQLSchema> {\n return this._schema;\n }\n}\n\nexport type SDLValidationRule = (context: SDLValidationContext) => ASTVisitor;\n\nexport class ValidationContext extends ASTValidationContext {\n private _schema: GraphQLSchema;\n private _typeInfo: TypeInfo;\n private _variableUsages: Map<\n NodeWithSelectionSet,\n ReadonlyArray<VariableUsage>\n >;\n\n private _recursiveVariableUsages: Map<\n OperationDefinitionNode,\n ReadonlyArray<VariableUsage>\n >;\n private _hideSuggestions: boolean;\n\n constructor(\n schema: GraphQLSchema,\n ast: DocumentNode,\n typeInfo: TypeInfo,\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n ) {\n super(ast, onError);\n this._schema = schema;\n this._typeInfo = typeInfo;\n this._variableUsages = new Map();\n this._recursiveVariableUsages = new Map();\n this._hideSuggestions = hideSuggestions ?? false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'ValidationContext';\n }\n\n get hideSuggestions(): boolean {\n return this._hideSuggestions;\n }\n\n getSchema(): GraphQLSchema {\n return this._schema;\n }\n\n getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage> {\n let usages = this._variableUsages.get(node);\n if (!usages) {\n const newUsages: Array<VariableUsage> = [];\n const typeInfo = new TypeInfo(\n this._schema,\n undefined,\n this._typeInfo.getFragmentSignatureByName(),\n );\n const fragmentDefinition =\n node.kind === Kind.FRAGMENT_DEFINITION ? node : undefined;\n visit(\n node,\n visitWithTypeInfo(typeInfo, {\n VariableDefinition: () => false,\n Variable(variable) {\n let fragmentVariableDefinition;\n if (fragmentDefinition) {\n const fragmentSignature = typeInfo.getFragmentSignatureByName()(\n fragmentDefinition.name.value,\n );\n\n fragmentVariableDefinition =\n fragmentSignature?.variableDefinitions.get(variable.name.value);\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: undefined, // fragment variables have a variable default but no location default, which is what this default value represents\n fragmentVariableDefinition,\n });\n } else {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: typeInfo.getDefaultValue(),\n fragmentVariableDefinition: undefined,\n });\n }\n },\n }),\n );\n usages = newUsages;\n this._variableUsages.set(node, usages);\n }\n return usages;\n }\n\n getRecursiveVariableUsages(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<VariableUsage> {\n let usages = this._recursiveVariableUsages.get(operation);\n if (!usages) {\n usages = this.getVariableUsages(operation);\n for (const frag of this.getRecursivelyReferencedFragments(operation)) {\n usages = usages.concat(this.getVariableUsages(frag));\n }\n this._recursiveVariableUsages.set(operation, usages);\n }\n return usages;\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeInfo.getType();\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._typeInfo.getParentType();\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getInputType();\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getParentInputType();\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._typeInfo.getFieldDef();\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._typeInfo.getDirective();\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._typeInfo.getArgument();\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignature();\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignatureByName();\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._typeInfo.getEnumValue();\n }\n}\n\nexport type ValidationRule = (context: ValidationContext) => ASTVisitor;\n"]}
|
|
1
|
+
{"version":3,"file":"ValidationContext.js","sourceRoot":"","sources":["../../src/validation/ValidationContext.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Validation Context */\n\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n OperationDefinitionNode,\n SelectionSetNode,\n VariableDefinitionNode,\n VariableNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport type { ASTVisitor } from '../language/visitor.ts';\nimport { visit } from '../language/visitor.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputType,\n GraphQLOutputType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport type { FragmentSignature } from '../utilities/TypeInfo.ts';\nimport { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo.ts';\n\ntype NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;\ninterface VariableUsage {\n readonly node: VariableNode;\n readonly type: Maybe<GraphQLInputType>;\n readonly parentType: Maybe<GraphQLInputType>;\n readonly defaultValue: unknown;\n readonly fragmentVariableDefinition: Maybe<VariableDefinitionNode>;\n}\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n *\n * @internal\n */\nexport class ASTValidationContext {\n private _ast: DocumentNode;\n private _onError: (error: GraphQLError) => void;\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(ast: DocumentNode, onError: (error: GraphQLError) => void) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n get [Symbol.toStringTag](): string {\n return 'ASTValidationContext';\n }\n\n reportError(error: GraphQLError): void {\n this._onError(error);\n }\n\n getDocument(): DocumentNode {\n return this._ast;\n }\n\n getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.getDocument().definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n\n getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = new Set<string>();\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (!collectedNames.has(fragName)) {\n collectedNames.add(fragName);\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n}\n\n/** @internal */\nexport type ASTValidationRule = (context: ASTValidationContext) => ASTVisitor;\n\n/** @internal */\nexport class SDLValidationContext extends ASTValidationContext {\n private _schema: Maybe<GraphQLSchema>;\n\n constructor(\n ast: DocumentNode,\n schema: Maybe<GraphQLSchema>,\n onError: (error: GraphQLError) => void,\n ) {\n super(ast, onError);\n this._schema = schema;\n }\n\n get hideSuggestions(): boolean {\n return false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'SDLValidationContext';\n }\n\n getSchema(): Maybe<GraphQLSchema> {\n return this._schema;\n }\n}\n\n/** @internal */\nexport type SDLValidationRule = (context: SDLValidationContext) => ASTVisitor;\n\n/** Validation context passed to query validation rules. */\nexport class ValidationContext extends ASTValidationContext {\n private _schema: GraphQLSchema;\n private _typeInfo: TypeInfo;\n private _variableUsages: Map<\n NodeWithSelectionSet,\n ReadonlyArray<VariableUsage>\n >;\n\n private _recursiveVariableUsages: Map<\n OperationDefinitionNode,\n ReadonlyArray<VariableUsage>\n >;\n private _hideSuggestions: boolean;\n\n /**\n * Creates a ValidationContext instance.\n * @param schema - Schema used to validate the document.\n * @param ast - Document AST being validated.\n * @param typeInfo - TypeInfo instance used to track traversal state.\n * @param onError - Callback invoked for each validation error.\n * @param hideSuggestions - Whether suggestion text should be omitted from errors.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { GraphQLError } from 'graphql/error';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const errors = [];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * (error) => errors.push(error),\n * );\n *\n * context.reportError(new GraphQLError('Example validation error.'));\n *\n * context.getSchema(); // => schema\n * errors[0].message; // => 'Example validation error.'\n * ```\n */\n constructor(\n schema: GraphQLSchema,\n ast: DocumentNode,\n typeInfo: TypeInfo,\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n ) {\n super(ast, onError);\n this._schema = schema;\n this._typeInfo = typeInfo;\n this._variableUsages = new Map();\n this._recursiveVariableUsages = new Map();\n this._hideSuggestions = hideSuggestions ?? false;\n }\n\n /**\n * Returns the value used by `Object.prototype.toString`.\n * @returns The built-in string tag for this object.\n */\n override get [Symbol.toStringTag](): string {\n return 'ValidationContext';\n }\n\n /**\n * Returns whether validation error suggestions are hidden.\n * @returns True when suggestion text should be omitted from errors.\n */\n get hideSuggestions(): boolean {\n return this._hideSuggestions;\n }\n\n /**\n * Returns the schema being used by this validation context.\n * @returns The schema being validated against.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const context = new ValidationContext(\n * schema,\n * parse('{ greeting }'),\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * context.getSchema().getQueryType()?.name; // => 'Query'\n * ```\n */\n getSchema(): GraphQLSchema {\n return this._schema;\n }\n\n /**\n * Returns variable usages found directly within this node.\n * @param node - The AST node to inspect or visit.\n * @returns Variable usages found directly within this node.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting(name: String): String\n * }\n * `);\n * const document = parse('query ($name: String) { greeting(name: $name) }');\n * const operation = document.definitions[0];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * const usages = context.getVariableUsages(operation);\n *\n * usages[0].node.name.value; // => 'name'\n * String(usages[0].type); // => 'String'\n * ```\n */\n getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage> {\n let usages = this._variableUsages.get(node);\n if (!usages) {\n const newUsages: Array<VariableUsage> = [];\n const typeInfo = new TypeInfo(\n this._schema,\n undefined,\n this._typeInfo.getFragmentSignatureByName(),\n );\n const fragmentDefinition =\n node.kind === Kind.FRAGMENT_DEFINITION ? node : undefined;\n visit(\n node,\n visitWithTypeInfo(typeInfo, {\n VariableDefinition: () => false,\n Variable(variable) {\n let fragmentVariableDefinition;\n if (fragmentDefinition) {\n const fragmentSignature = typeInfo.getFragmentSignatureByName()(\n fragmentDefinition.name.value,\n );\n\n fragmentVariableDefinition =\n fragmentSignature?.variableDefinitions.get(variable.name.value);\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: undefined, // fragment variables have a variable default but no location default, which is what this default value represents\n fragmentVariableDefinition,\n });\n } else {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: typeInfo.getDefaultValue(),\n fragmentVariableDefinition: undefined,\n });\n }\n },\n }),\n );\n usages = newUsages;\n this._variableUsages.set(node, usages);\n }\n return usages;\n }\n\n /**\n * Returns variable usages for an operation, including variables used by referenced fragments.\n * @param operation - Operation definition to inspect.\n * @returns Variable usages reachable from the operation.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * viewer: User\n * }\n *\n * type User {\n * name(prefix: String): String\n * }\n * `);\n * const document = parse(`\n * query ($prefix: String) {\n * viewer {\n * ...UserName\n * }\n * }\n *\n * fragment UserName on User {\n * name(prefix: $prefix)\n * }\n * `);\n * const operation = document.definitions[0];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * const usages = context.getRecursiveVariableUsages(operation);\n *\n * usages.map((usage) => usage.node.name.value); // => ['prefix']\n * ```\n */\n getRecursiveVariableUsages(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<VariableUsage> {\n let usages = this._recursiveVariableUsages.get(operation);\n if (!usages) {\n usages = this.getVariableUsages(operation);\n for (const frag of this.getRecursivelyReferencedFragments(operation)) {\n usages = usages.concat(this.getVariableUsages(frag));\n }\n this._recursiveVariableUsages.set(operation, usages);\n }\n return usages;\n }\n\n /**\n * Returns the current output type at this point in traversal.\n * @returns The current output type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let typeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * typeName = String(context.getType());\n * },\n * }),\n * );\n *\n * typeName; // => 'String'\n * ```\n */\n getType(): Maybe<GraphQLOutputType> {\n return this._typeInfo.getType();\n }\n\n /**\n * Returns the current parent composite type.\n * @returns The current parent composite type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let parentTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * parentTypeName = context.getParentType()?.name;\n * },\n * }),\n * );\n *\n * parentTypeName; // => 'Query'\n * ```\n */\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._typeInfo.getParentType();\n }\n\n /**\n * Returns the current input type at this point in traversal.\n * @returns The current input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int): [String]\n * }\n * `);\n * const document = parse('{ reviews(limit: 5) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let inputTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * inputTypeName = String(context.getInputType());\n * },\n * }),\n * );\n *\n * inputTypeName; // => 'Int'\n * ```\n */\n getInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getInputType();\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n /**\n * Returns the parent input type for the current input position.\n * @returns The parent input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * input ReviewFilter {\n * stars: Int\n * }\n *\n * type Query {\n * reviews(filter: ReviewFilter): [String]\n * }\n * `);\n * const document = parse('{ reviews(filter: { stars: 5 }) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let parentInputTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * ObjectField: () => {\n * parentInputTypeName = String(context.getParentInputType());\n * },\n * }),\n * );\n *\n * parentInputTypeName; // => 'ReviewFilter'\n * ```\n */\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getParentInputType();\n }\n\n /**\n * Returns the current field definition.\n * @returns The current field definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fieldName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * fieldName = context.getFieldDef()?.name;\n * },\n * }),\n * );\n *\n * fieldName; // => 'greeting'\n * ```\n */\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._typeInfo.getFieldDef();\n }\n\n /**\n * Returns the current directive definition.\n * @returns The current directive definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting @include(if: true) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let directiveName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Directive: () => {\n * directiveName = context.getDirective()?.name;\n * },\n * }),\n * );\n *\n * directiveName; // => 'include'\n * ```\n */\n getDirective(): Maybe<GraphQLDirective> {\n return this._typeInfo.getDirective();\n }\n\n /**\n * Returns the current argument definition.\n * @returns The current argument definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int): [String]\n * }\n * `);\n * const document = parse('{ reviews(limit: 5) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let argumentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * argumentName = context.getArgument()?.name;\n * },\n * }),\n * );\n *\n * argumentName; // => 'limit'\n * ```\n */\n getArgument(): Maybe<GraphQLArgument> {\n return this._typeInfo.getArgument();\n }\n\n /**\n * Returns the fragment signature at the current traversal position.\n * @returns The current fragment signature, if one is active.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * FragmentSpread: () => {\n * fragmentName = context.getFragmentSignature()?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignature();\n }\n\n /**\n * Returns the function used to look up fragment signatures by name.\n * @returns A function that maps fragment names to fragment signatures.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Document: () => {\n * const getFragmentSignature = context.getFragmentSignatureByName();\n * fragmentName =\n * getFragmentSignature('GreetingFields')?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignatureByName();\n }\n\n /**\n * Returns the current enum value definition.\n * @returns The current enum value definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * enum Sort {\n * NEWEST\n * OLDEST\n * }\n *\n * type Query {\n * reviews(sort: Sort): [String]\n * }\n * `);\n * const document = parse('{ reviews(sort: OLDEST) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let enumValueName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * EnumValue: () => {\n * enumValueName = context.getEnumValue()?.name;\n * },\n * }),\n * );\n *\n * enumValueName; // => 'OLDEST'\n * ```\n */\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._typeInfo.getEnumValue();\n }\n}\n\n/** A function that creates an AST visitor for validating a GraphQL document. */\nexport type ValidationRule = (context: ValidationContext) => ASTVisitor;\n"]}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { Kind } from "../language/kinds.mjs";
|
|
2
2
|
import { visit } from "../language/visitor.mjs";
|
|
3
3
|
import { TypeInfo, visitWithTypeInfo } from "../utilities/TypeInfo.mjs";
|
|
4
|
-
/**
|
|
5
|
-
* An instance of this class is passed as the "this" context to all validators,
|
|
6
|
-
* allowing access to commonly useful contextual information from within a
|
|
7
|
-
* validation rule.
|
|
8
|
-
*/
|
|
9
4
|
export class ASTValidationContext {
|
|
10
5
|
constructor(ast, onError) {
|
|
11
6
|
this._ast = ast;
|
|
@@ -135,7 +130,7 @@ export class ValidationContext extends ASTValidationContext {
|
|
|
135
130
|
node: variable,
|
|
136
131
|
type: typeInfo.getInputType(),
|
|
137
132
|
parentType: typeInfo.getParentInputType(),
|
|
138
|
-
defaultValue: undefined,
|
|
133
|
+
defaultValue: undefined,
|
|
139
134
|
fragmentVariableDefinition,
|
|
140
135
|
});
|
|
141
136
|
}
|
|
@@ -175,8 +170,6 @@ export class ValidationContext extends ASTValidationContext {
|
|
|
175
170
|
getInputType() {
|
|
176
171
|
return this._typeInfo.getInputType();
|
|
177
172
|
}
|
|
178
|
-
// Note: continues to expose the closest enclosing valid input type if
|
|
179
|
-
// traversal descends into syntax with no corresponding GraphQL input type.
|
|
180
173
|
getParentInputType() {
|
|
181
174
|
return this._typeInfo.getParentInputType();
|
|
182
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationContext.js","sourceRoot":"","sources":["../../src/validation/ValidationContext.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { GraphQLError } from '../error/GraphQLError.js';\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n OperationDefinitionNode,\n SelectionSetNode,\n VariableDefinitionNode,\n VariableNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport type { ASTVisitor } from '../language/visitor.js';\nimport { visit } from '../language/visitor.js';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputType,\n GraphQLOutputType,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\n\nimport type { FragmentSignature } from '../utilities/TypeInfo.js';\nimport { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo.js';\n\ntype NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;\ninterface VariableUsage {\n readonly node: VariableNode;\n readonly type: Maybe<GraphQLInputType>;\n readonly parentType: Maybe<GraphQLInputType>;\n readonly defaultValue: unknown;\n readonly fragmentVariableDefinition: Maybe<VariableDefinitionNode>;\n}\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n */\nexport class ASTValidationContext {\n private _ast: DocumentNode;\n private _onError: (error: GraphQLError) => void;\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(ast: DocumentNode, onError: (error: GraphQLError) => void) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n get [Symbol.toStringTag](): string {\n return 'ASTValidationContext';\n }\n\n reportError(error: GraphQLError): void {\n this._onError(error);\n }\n\n getDocument(): DocumentNode {\n return this._ast;\n }\n\n getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.getDocument().definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n\n getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = new Set<string>();\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (!collectedNames.has(fragName)) {\n collectedNames.add(fragName);\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n}\n\nexport type ASTValidationRule = (context: ASTValidationContext) => ASTVisitor;\n\nexport class SDLValidationContext extends ASTValidationContext {\n private _schema: Maybe<GraphQLSchema>;\n\n constructor(\n ast: DocumentNode,\n schema: Maybe<GraphQLSchema>,\n onError: (error: GraphQLError) => void,\n ) {\n super(ast, onError);\n this._schema = schema;\n }\n\n get hideSuggestions(): boolean {\n return false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'SDLValidationContext';\n }\n\n getSchema(): Maybe<GraphQLSchema> {\n return this._schema;\n }\n}\n\nexport type SDLValidationRule = (context: SDLValidationContext) => ASTVisitor;\n\nexport class ValidationContext extends ASTValidationContext {\n private _schema: GraphQLSchema;\n private _typeInfo: TypeInfo;\n private _variableUsages: Map<\n NodeWithSelectionSet,\n ReadonlyArray<VariableUsage>\n >;\n\n private _recursiveVariableUsages: Map<\n OperationDefinitionNode,\n ReadonlyArray<VariableUsage>\n >;\n private _hideSuggestions: boolean;\n\n constructor(\n schema: GraphQLSchema,\n ast: DocumentNode,\n typeInfo: TypeInfo,\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n ) {\n super(ast, onError);\n this._schema = schema;\n this._typeInfo = typeInfo;\n this._variableUsages = new Map();\n this._recursiveVariableUsages = new Map();\n this._hideSuggestions = hideSuggestions ?? false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'ValidationContext';\n }\n\n get hideSuggestions(): boolean {\n return this._hideSuggestions;\n }\n\n getSchema(): GraphQLSchema {\n return this._schema;\n }\n\n getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage> {\n let usages = this._variableUsages.get(node);\n if (!usages) {\n const newUsages: Array<VariableUsage> = [];\n const typeInfo = new TypeInfo(\n this._schema,\n undefined,\n this._typeInfo.getFragmentSignatureByName(),\n );\n const fragmentDefinition =\n node.kind === Kind.FRAGMENT_DEFINITION ? node : undefined;\n visit(\n node,\n visitWithTypeInfo(typeInfo, {\n VariableDefinition: () => false,\n Variable(variable) {\n let fragmentVariableDefinition;\n if (fragmentDefinition) {\n const fragmentSignature = typeInfo.getFragmentSignatureByName()(\n fragmentDefinition.name.value,\n );\n\n fragmentVariableDefinition =\n fragmentSignature?.variableDefinitions.get(variable.name.value);\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: undefined, // fragment variables have a variable default but no location default, which is what this default value represents\n fragmentVariableDefinition,\n });\n } else {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: typeInfo.getDefaultValue(),\n fragmentVariableDefinition: undefined,\n });\n }\n },\n }),\n );\n usages = newUsages;\n this._variableUsages.set(node, usages);\n }\n return usages;\n }\n\n getRecursiveVariableUsages(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<VariableUsage> {\n let usages = this._recursiveVariableUsages.get(operation);\n if (!usages) {\n usages = this.getVariableUsages(operation);\n for (const frag of this.getRecursivelyReferencedFragments(operation)) {\n usages = usages.concat(this.getVariableUsages(frag));\n }\n this._recursiveVariableUsages.set(operation, usages);\n }\n return usages;\n }\n\n getType(): Maybe<GraphQLOutputType> {\n return this._typeInfo.getType();\n }\n\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._typeInfo.getParentType();\n }\n\n getInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getInputType();\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getParentInputType();\n }\n\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._typeInfo.getFieldDef();\n }\n\n getDirective(): Maybe<GraphQLDirective> {\n return this._typeInfo.getDirective();\n }\n\n getArgument(): Maybe<GraphQLArgument> {\n return this._typeInfo.getArgument();\n }\n\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignature();\n }\n\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignatureByName();\n }\n\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._typeInfo.getEnumValue();\n }\n}\n\nexport type ValidationRule = (context: ValidationContext) => ASTVisitor;\n"]}
|
|
1
|
+
{"version":3,"file":"ValidationContext.js","sourceRoot":"","sources":["../../src/validation/ValidationContext.ts"],"names":[],"mappings":"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","sourcesContent":["/** @category Validation Context */\n\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type {\n DocumentNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n OperationDefinitionNode,\n SelectionSetNode,\n VariableDefinitionNode,\n VariableNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport type { ASTVisitor } from '../language/visitor.ts';\nimport { visit } from '../language/visitor.ts';\n\nimport type {\n GraphQLArgument,\n GraphQLCompositeType,\n GraphQLEnumValue,\n GraphQLField,\n GraphQLInputType,\n GraphQLOutputType,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\n\nimport type { FragmentSignature } from '../utilities/TypeInfo.ts';\nimport { TypeInfo, visitWithTypeInfo } from '../utilities/TypeInfo.ts';\n\ntype NodeWithSelectionSet = OperationDefinitionNode | FragmentDefinitionNode;\ninterface VariableUsage {\n readonly node: VariableNode;\n readonly type: Maybe<GraphQLInputType>;\n readonly parentType: Maybe<GraphQLInputType>;\n readonly defaultValue: unknown;\n readonly fragmentVariableDefinition: Maybe<VariableDefinitionNode>;\n}\n\n/**\n * An instance of this class is passed as the \"this\" context to all validators,\n * allowing access to commonly useful contextual information from within a\n * validation rule.\n *\n * @internal\n */\nexport class ASTValidationContext {\n private _ast: DocumentNode;\n private _onError: (error: GraphQLError) => void;\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(ast: DocumentNode, onError: (error: GraphQLError) => void) {\n this._ast = ast;\n this._fragments = undefined;\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n this._onError = onError;\n }\n\n get [Symbol.toStringTag](): string {\n return 'ASTValidationContext';\n }\n\n reportError(error: GraphQLError): void {\n this._onError(error);\n }\n\n getDocument(): DocumentNode {\n return this._ast;\n }\n\n getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.getDocument().definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n\n getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = new Set<string>();\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (!collectedNames.has(fragName)) {\n collectedNames.add(fragName);\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n}\n\n/** @internal */\nexport type ASTValidationRule = (context: ASTValidationContext) => ASTVisitor;\n\n/** @internal */\nexport class SDLValidationContext extends ASTValidationContext {\n private _schema: Maybe<GraphQLSchema>;\n\n constructor(\n ast: DocumentNode,\n schema: Maybe<GraphQLSchema>,\n onError: (error: GraphQLError) => void,\n ) {\n super(ast, onError);\n this._schema = schema;\n }\n\n get hideSuggestions(): boolean {\n return false;\n }\n\n override get [Symbol.toStringTag](): string {\n return 'SDLValidationContext';\n }\n\n getSchema(): Maybe<GraphQLSchema> {\n return this._schema;\n }\n}\n\n/** @internal */\nexport type SDLValidationRule = (context: SDLValidationContext) => ASTVisitor;\n\n/** Validation context passed to query validation rules. */\nexport class ValidationContext extends ASTValidationContext {\n private _schema: GraphQLSchema;\n private _typeInfo: TypeInfo;\n private _variableUsages: Map<\n NodeWithSelectionSet,\n ReadonlyArray<VariableUsage>\n >;\n\n private _recursiveVariableUsages: Map<\n OperationDefinitionNode,\n ReadonlyArray<VariableUsage>\n >;\n private _hideSuggestions: boolean;\n\n /**\n * Creates a ValidationContext instance.\n * @param schema - Schema used to validate the document.\n * @param ast - Document AST being validated.\n * @param typeInfo - TypeInfo instance used to track traversal state.\n * @param onError - Callback invoked for each validation error.\n * @param hideSuggestions - Whether suggestion text should be omitted from errors.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { GraphQLError } from 'graphql/error';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const errors = [];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * (error) => errors.push(error),\n * );\n *\n * context.reportError(new GraphQLError('Example validation error.'));\n *\n * context.getSchema(); // => schema\n * errors[0].message; // => 'Example validation error.'\n * ```\n */\n constructor(\n schema: GraphQLSchema,\n ast: DocumentNode,\n typeInfo: TypeInfo,\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n ) {\n super(ast, onError);\n this._schema = schema;\n this._typeInfo = typeInfo;\n this._variableUsages = new Map();\n this._recursiveVariableUsages = new Map();\n this._hideSuggestions = hideSuggestions ?? false;\n }\n\n /**\n * Returns the value used by `Object.prototype.toString`.\n * @returns The built-in string tag for this object.\n */\n override get [Symbol.toStringTag](): string {\n return 'ValidationContext';\n }\n\n /**\n * Returns whether validation error suggestions are hidden.\n * @returns True when suggestion text should be omitted from errors.\n */\n get hideSuggestions(): boolean {\n return this._hideSuggestions;\n }\n\n /**\n * Returns the schema being used by this validation context.\n * @returns The schema being validated against.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const context = new ValidationContext(\n * schema,\n * parse('{ greeting }'),\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * context.getSchema().getQueryType()?.name; // => 'Query'\n * ```\n */\n getSchema(): GraphQLSchema {\n return this._schema;\n }\n\n /**\n * Returns variable usages found directly within this node.\n * @param node - The AST node to inspect or visit.\n * @returns Variable usages found directly within this node.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting(name: String): String\n * }\n * `);\n * const document = parse('query ($name: String) { greeting(name: $name) }');\n * const operation = document.definitions[0];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * const usages = context.getVariableUsages(operation);\n *\n * usages[0].node.name.value; // => 'name'\n * String(usages[0].type); // => 'String'\n * ```\n */\n getVariableUsages(node: NodeWithSelectionSet): ReadonlyArray<VariableUsage> {\n let usages = this._variableUsages.get(node);\n if (!usages) {\n const newUsages: Array<VariableUsage> = [];\n const typeInfo = new TypeInfo(\n this._schema,\n undefined,\n this._typeInfo.getFragmentSignatureByName(),\n );\n const fragmentDefinition =\n node.kind === Kind.FRAGMENT_DEFINITION ? node : undefined;\n visit(\n node,\n visitWithTypeInfo(typeInfo, {\n VariableDefinition: () => false,\n Variable(variable) {\n let fragmentVariableDefinition;\n if (fragmentDefinition) {\n const fragmentSignature = typeInfo.getFragmentSignatureByName()(\n fragmentDefinition.name.value,\n );\n\n fragmentVariableDefinition =\n fragmentSignature?.variableDefinitions.get(variable.name.value);\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: undefined, // fragment variables have a variable default but no location default, which is what this default value represents\n fragmentVariableDefinition,\n });\n } else {\n newUsages.push({\n node: variable,\n type: typeInfo.getInputType(),\n parentType: typeInfo.getParentInputType(),\n defaultValue: typeInfo.getDefaultValue(),\n fragmentVariableDefinition: undefined,\n });\n }\n },\n }),\n );\n usages = newUsages;\n this._variableUsages.set(node, usages);\n }\n return usages;\n }\n\n /**\n * Returns variable usages for an operation, including variables used by referenced fragments.\n * @param operation - Operation definition to inspect.\n * @returns Variable usages reachable from the operation.\n * @example\n * ```ts\n * import { parse } from 'graphql/language';\n * import { buildSchema, TypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * viewer: User\n * }\n *\n * type User {\n * name(prefix: String): String\n * }\n * `);\n * const document = parse(`\n * query ($prefix: String) {\n * viewer {\n * ...UserName\n * }\n * }\n *\n * fragment UserName on User {\n * name(prefix: $prefix)\n * }\n * `);\n * const operation = document.definitions[0];\n * const context = new ValidationContext(\n * schema,\n * document,\n * new TypeInfo(schema),\n * () => {},\n * );\n *\n * const usages = context.getRecursiveVariableUsages(operation);\n *\n * usages.map((usage) => usage.node.name.value); // => ['prefix']\n * ```\n */\n getRecursiveVariableUsages(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<VariableUsage> {\n let usages = this._recursiveVariableUsages.get(operation);\n if (!usages) {\n usages = this.getVariableUsages(operation);\n for (const frag of this.getRecursivelyReferencedFragments(operation)) {\n usages = usages.concat(this.getVariableUsages(frag));\n }\n this._recursiveVariableUsages.set(operation, usages);\n }\n return usages;\n }\n\n /**\n * Returns the current output type at this point in traversal.\n * @returns The current output type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let typeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * typeName = String(context.getType());\n * },\n * }),\n * );\n *\n * typeName; // => 'String'\n * ```\n */\n getType(): Maybe<GraphQLOutputType> {\n return this._typeInfo.getType();\n }\n\n /**\n * Returns the current parent composite type.\n * @returns The current parent composite type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let parentTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * parentTypeName = context.getParentType()?.name;\n * },\n * }),\n * );\n *\n * parentTypeName; // => 'Query'\n * ```\n */\n getParentType(): Maybe<GraphQLCompositeType> {\n return this._typeInfo.getParentType();\n }\n\n /**\n * Returns the current input type at this point in traversal.\n * @returns The current input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int): [String]\n * }\n * `);\n * const document = parse('{ reviews(limit: 5) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let inputTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * inputTypeName = String(context.getInputType());\n * },\n * }),\n * );\n *\n * inputTypeName; // => 'Int'\n * ```\n */\n getInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getInputType();\n }\n\n // Note: continues to expose the closest enclosing valid input type if\n // traversal descends into syntax with no corresponding GraphQL input type.\n /**\n * Returns the parent input type for the current input position.\n * @returns The parent input type, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * input ReviewFilter {\n * stars: Int\n * }\n *\n * type Query {\n * reviews(filter: ReviewFilter): [String]\n * }\n * `);\n * const document = parse('{ reviews(filter: { stars: 5 }) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let parentInputTypeName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * ObjectField: () => {\n * parentInputTypeName = String(context.getParentInputType());\n * },\n * }),\n * );\n *\n * parentInputTypeName; // => 'ReviewFilter'\n * ```\n */\n getParentInputType(): Maybe<GraphQLInputType> {\n return this._typeInfo.getParentInputType();\n }\n\n /**\n * Returns the current field definition.\n * @returns The current field definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fieldName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Field: () => {\n * fieldName = context.getFieldDef()?.name;\n * },\n * }),\n * );\n *\n * fieldName; // => 'greeting'\n * ```\n */\n getFieldDef(): Maybe<GraphQLField<unknown, unknown>> {\n return this._typeInfo.getFieldDef();\n }\n\n /**\n * Returns the current directive definition.\n * @returns The current directive definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse('{ greeting @include(if: true) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let directiveName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Directive: () => {\n * directiveName = context.getDirective()?.name;\n * },\n * }),\n * );\n *\n * directiveName; // => 'include'\n * ```\n */\n getDirective(): Maybe<GraphQLDirective> {\n return this._typeInfo.getDirective();\n }\n\n /**\n * Returns the current argument definition.\n * @returns The current argument definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * reviews(limit: Int): [String]\n * }\n * `);\n * const document = parse('{ reviews(limit: 5) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let argumentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Argument: () => {\n * argumentName = context.getArgument()?.name;\n * },\n * }),\n * );\n *\n * argumentName; // => 'limit'\n * ```\n */\n getArgument(): Maybe<GraphQLArgument> {\n return this._typeInfo.getArgument();\n }\n\n /**\n * Returns the fragment signature at the current traversal position.\n * @returns The current fragment signature, if one is active.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * FragmentSpread: () => {\n * fragmentName = context.getFragmentSignature()?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignature(): Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignature();\n }\n\n /**\n * Returns the function used to look up fragment signatures by name.\n * @returns A function that maps fragment names to fragment signatures.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * type Query {\n * greeting: String\n * }\n * `);\n * const document = parse(\n * `\n * {\n * ...GreetingFields\n * }\n *\n * fragment GreetingFields on Query {\n * greeting\n * }\n * `,\n * { experimentalFragmentArguments: true },\n * );\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let fragmentName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * Document: () => {\n * const getFragmentSignature = context.getFragmentSignatureByName();\n * fragmentName =\n * getFragmentSignature('GreetingFields')?.definition.name.value;\n * },\n * }),\n * );\n *\n * fragmentName; // => 'GreetingFields'\n * ```\n */\n getFragmentSignatureByName(): (\n fragmentName: string,\n ) => Maybe<FragmentSignature> {\n return this._typeInfo.getFragmentSignatureByName();\n }\n\n /**\n * Returns the current enum value definition.\n * @returns The current enum value definition, if known.\n * @example\n * ```ts\n * import { parse, visit } from 'graphql/language';\n * import { buildSchema, TypeInfo, visitWithTypeInfo } from 'graphql/utilities';\n * import { ValidationContext } from 'graphql/validation';\n *\n * const schema = buildSchema(`\n * enum Sort {\n * NEWEST\n * OLDEST\n * }\n *\n * type Query {\n * reviews(sort: Sort): [String]\n * }\n * `);\n * const document = parse('{ reviews(sort: OLDEST) }');\n * const typeInfo = new TypeInfo(schema);\n * const context = new ValidationContext(schema, document, typeInfo, () => {});\n * let enumValueName;\n *\n * visit(\n * document,\n * visitWithTypeInfo(typeInfo, {\n * EnumValue: () => {\n * enumValueName = context.getEnumValue()?.name;\n * },\n * }),\n * );\n *\n * enumValueName; // => 'OLDEST'\n * ```\n */\n getEnumValue(): Maybe<GraphQLEnumValue> {\n return this._typeInfo.getEnumValue();\n }\n}\n\n/** A function that creates an AST visitor for validating a GraphQL document. */\nexport type ValidationRule = (context: ValidationContext) => ASTVisitor;\n"]}
|
package/validation/index.d.mts
CHANGED
|
@@ -1,46 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
40
|
-
export {
|
|
41
|
-
export {
|
|
42
|
-
export {
|
|
43
|
-
export {
|
|
44
|
-
export {
|
|
45
|
-
export {
|
|
46
|
-
export {
|
|
1
|
+
/**
|
|
2
|
+
* Validate GraphQL documents and schemas with the specified validation rules.
|
|
3
|
+
*
|
|
4
|
+
* These exports are also available from the root `graphql` package.
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
export { validate } from "./validate.mjs";
|
|
8
|
+
export type { ValidationOptions } from "./validate.mjs";
|
|
9
|
+
export { ValidationContext } from "./ValidationContext.mjs";
|
|
10
|
+
export type { ValidationRule } from "./ValidationContext.mjs";
|
|
11
|
+
export { specifiedRules, recommendedRules } from "./specifiedRules.mjs";
|
|
12
|
+
export { DeferStreamDirectiveLabelRule } from "./rules/DeferStreamDirectiveLabelRule.mjs";
|
|
13
|
+
export { DeferStreamDirectiveOnRootFieldRule } from "./rules/DeferStreamDirectiveOnRootFieldRule.mjs";
|
|
14
|
+
export { DeferStreamDirectiveOnValidOperationsRule } from "./rules/DeferStreamDirectiveOnValidOperationsRule.mjs";
|
|
15
|
+
export { ExecutableDefinitionsRule } from "./rules/ExecutableDefinitionsRule.mjs";
|
|
16
|
+
export { FieldsOnCorrectTypeRule } from "./rules/FieldsOnCorrectTypeRule.mjs";
|
|
17
|
+
export { FragmentsOnCompositeTypesRule } from "./rules/FragmentsOnCompositeTypesRule.mjs";
|
|
18
|
+
export { KnownArgumentNamesRule } from "./rules/KnownArgumentNamesRule.mjs";
|
|
19
|
+
export { KnownDirectivesRule } from "./rules/KnownDirectivesRule.mjs";
|
|
20
|
+
export { KnownFragmentNamesRule } from "./rules/KnownFragmentNamesRule.mjs";
|
|
21
|
+
export { KnownOperationTypesRule } from "./rules/KnownOperationTypesRule.mjs";
|
|
22
|
+
export { KnownTypeNamesRule } from "./rules/KnownTypeNamesRule.mjs";
|
|
23
|
+
export { LoneAnonymousOperationRule } from "./rules/LoneAnonymousOperationRule.mjs";
|
|
24
|
+
export { NoFragmentCyclesRule } from "./rules/NoFragmentCyclesRule.mjs";
|
|
25
|
+
export { NoUndefinedVariablesRule } from "./rules/NoUndefinedVariablesRule.mjs";
|
|
26
|
+
export { NoUnusedFragmentsRule } from "./rules/NoUnusedFragmentsRule.mjs";
|
|
27
|
+
export { NoUnusedVariablesRule } from "./rules/NoUnusedVariablesRule.mjs";
|
|
28
|
+
export { OverlappingFieldsCanBeMergedRule } from "./rules/OverlappingFieldsCanBeMergedRule.mjs";
|
|
29
|
+
export { PossibleFragmentSpreadsRule } from "./rules/PossibleFragmentSpreadsRule.mjs";
|
|
30
|
+
export { ProvidedRequiredArgumentsRule } from "./rules/ProvidedRequiredArgumentsRule.mjs";
|
|
31
|
+
export { ScalarLeafsRule } from "./rules/ScalarLeafsRule.mjs";
|
|
32
|
+
export { SingleFieldSubscriptionsRule } from "./rules/SingleFieldSubscriptionsRule.mjs";
|
|
33
|
+
export { StreamDirectiveOnListFieldRule } from "./rules/StreamDirectiveOnListFieldRule.mjs";
|
|
34
|
+
export { UniqueArgumentNamesRule } from "./rules/UniqueArgumentNamesRule.mjs";
|
|
35
|
+
export { UniqueDirectivesPerLocationRule } from "./rules/UniqueDirectivesPerLocationRule.mjs";
|
|
36
|
+
export { UniqueFragmentNamesRule } from "./rules/UniqueFragmentNamesRule.mjs";
|
|
37
|
+
export { UniqueInputFieldNamesRule } from "./rules/UniqueInputFieldNamesRule.mjs";
|
|
38
|
+
export { UniqueOperationNamesRule } from "./rules/UniqueOperationNamesRule.mjs";
|
|
39
|
+
export { UniqueVariableNamesRule } from "./rules/UniqueVariableNamesRule.mjs";
|
|
40
|
+
export { ValuesOfCorrectTypeRule } from "./rules/ValuesOfCorrectTypeRule.mjs";
|
|
41
|
+
export { VariablesAreInputTypesRule } from "./rules/VariablesAreInputTypesRule.mjs";
|
|
42
|
+
export { VariablesInAllowedPositionRule } from "./rules/VariablesInAllowedPositionRule.mjs";
|
|
43
|
+
export { MaxIntrospectionDepthRule } from "./rules/MaxIntrospectionDepthRule.mjs";
|
|
44
|
+
export { LoneSchemaDefinitionRule } from "./rules/LoneSchemaDefinitionRule.mjs";
|
|
45
|
+
export { UniqueOperationTypesRule } from "./rules/UniqueOperationTypesRule.mjs";
|
|
46
|
+
export { UniqueTypeNamesRule } from "./rules/UniqueTypeNamesRule.mjs";
|
|
47
|
+
export { UniqueEnumValueNamesRule } from "./rules/UniqueEnumValueNamesRule.mjs";
|
|
48
|
+
export { UniqueFieldDefinitionNamesRule } from "./rules/UniqueFieldDefinitionNamesRule.mjs";
|
|
49
|
+
export { UniqueArgumentDefinitionNamesRule } from "./rules/UniqueArgumentDefinitionNamesRule.mjs";
|
|
50
|
+
export { UniqueDirectiveNamesRule } from "./rules/UniqueDirectiveNamesRule.mjs";
|
|
51
|
+
export { PossibleTypeExtensionsRule } from "./rules/PossibleTypeExtensionsRule.mjs";
|
|
52
|
+
export { NoDeprecatedCustomRule } from "./rules/custom/NoDeprecatedCustomRule.mjs";
|
|
53
|
+
export { NoSchemaIntrospectionCustomRule } from "./rules/custom/NoSchemaIntrospectionCustomRule.mjs";
|
package/validation/index.d.ts
CHANGED
|
@@ -1,46 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
40
|
-
export {
|
|
41
|
-
export {
|
|
42
|
-
export {
|
|
43
|
-
export {
|
|
44
|
-
export {
|
|
45
|
-
export {
|
|
46
|
-
export {
|
|
1
|
+
/**
|
|
2
|
+
* Validate GraphQL documents and schemas with the specified validation rules.
|
|
3
|
+
*
|
|
4
|
+
* These exports are also available from the root `graphql` package.
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
export { validate } from "./validate.js";
|
|
8
|
+
export type { ValidationOptions } from "./validate.js";
|
|
9
|
+
export { ValidationContext } from "./ValidationContext.js";
|
|
10
|
+
export type { ValidationRule } from "./ValidationContext.js";
|
|
11
|
+
export { specifiedRules, recommendedRules } from "./specifiedRules.js";
|
|
12
|
+
export { DeferStreamDirectiveLabelRule } from "./rules/DeferStreamDirectiveLabelRule.js";
|
|
13
|
+
export { DeferStreamDirectiveOnRootFieldRule } from "./rules/DeferStreamDirectiveOnRootFieldRule.js";
|
|
14
|
+
export { DeferStreamDirectiveOnValidOperationsRule } from "./rules/DeferStreamDirectiveOnValidOperationsRule.js";
|
|
15
|
+
export { ExecutableDefinitionsRule } from "./rules/ExecutableDefinitionsRule.js";
|
|
16
|
+
export { FieldsOnCorrectTypeRule } from "./rules/FieldsOnCorrectTypeRule.js";
|
|
17
|
+
export { FragmentsOnCompositeTypesRule } from "./rules/FragmentsOnCompositeTypesRule.js";
|
|
18
|
+
export { KnownArgumentNamesRule } from "./rules/KnownArgumentNamesRule.js";
|
|
19
|
+
export { KnownDirectivesRule } from "./rules/KnownDirectivesRule.js";
|
|
20
|
+
export { KnownFragmentNamesRule } from "./rules/KnownFragmentNamesRule.js";
|
|
21
|
+
export { KnownOperationTypesRule } from "./rules/KnownOperationTypesRule.js";
|
|
22
|
+
export { KnownTypeNamesRule } from "./rules/KnownTypeNamesRule.js";
|
|
23
|
+
export { LoneAnonymousOperationRule } from "./rules/LoneAnonymousOperationRule.js";
|
|
24
|
+
export { NoFragmentCyclesRule } from "./rules/NoFragmentCyclesRule.js";
|
|
25
|
+
export { NoUndefinedVariablesRule } from "./rules/NoUndefinedVariablesRule.js";
|
|
26
|
+
export { NoUnusedFragmentsRule } from "./rules/NoUnusedFragmentsRule.js";
|
|
27
|
+
export { NoUnusedVariablesRule } from "./rules/NoUnusedVariablesRule.js";
|
|
28
|
+
export { OverlappingFieldsCanBeMergedRule } from "./rules/OverlappingFieldsCanBeMergedRule.js";
|
|
29
|
+
export { PossibleFragmentSpreadsRule } from "./rules/PossibleFragmentSpreadsRule.js";
|
|
30
|
+
export { ProvidedRequiredArgumentsRule } from "./rules/ProvidedRequiredArgumentsRule.js";
|
|
31
|
+
export { ScalarLeafsRule } from "./rules/ScalarLeafsRule.js";
|
|
32
|
+
export { SingleFieldSubscriptionsRule } from "./rules/SingleFieldSubscriptionsRule.js";
|
|
33
|
+
export { StreamDirectiveOnListFieldRule } from "./rules/StreamDirectiveOnListFieldRule.js";
|
|
34
|
+
export { UniqueArgumentNamesRule } from "./rules/UniqueArgumentNamesRule.js";
|
|
35
|
+
export { UniqueDirectivesPerLocationRule } from "./rules/UniqueDirectivesPerLocationRule.js";
|
|
36
|
+
export { UniqueFragmentNamesRule } from "./rules/UniqueFragmentNamesRule.js";
|
|
37
|
+
export { UniqueInputFieldNamesRule } from "./rules/UniqueInputFieldNamesRule.js";
|
|
38
|
+
export { UniqueOperationNamesRule } from "./rules/UniqueOperationNamesRule.js";
|
|
39
|
+
export { UniqueVariableNamesRule } from "./rules/UniqueVariableNamesRule.js";
|
|
40
|
+
export { ValuesOfCorrectTypeRule } from "./rules/ValuesOfCorrectTypeRule.js";
|
|
41
|
+
export { VariablesAreInputTypesRule } from "./rules/VariablesAreInputTypesRule.js";
|
|
42
|
+
export { VariablesInAllowedPositionRule } from "./rules/VariablesInAllowedPositionRule.js";
|
|
43
|
+
export { MaxIntrospectionDepthRule } from "./rules/MaxIntrospectionDepthRule.js";
|
|
44
|
+
export { LoneSchemaDefinitionRule } from "./rules/LoneSchemaDefinitionRule.js";
|
|
45
|
+
export { UniqueOperationTypesRule } from "./rules/UniqueOperationTypesRule.js";
|
|
46
|
+
export { UniqueTypeNamesRule } from "./rules/UniqueTypeNamesRule.js";
|
|
47
|
+
export { UniqueEnumValueNamesRule } from "./rules/UniqueEnumValueNamesRule.js";
|
|
48
|
+
export { UniqueFieldDefinitionNamesRule } from "./rules/UniqueFieldDefinitionNamesRule.js";
|
|
49
|
+
export { UniqueArgumentDefinitionNamesRule } from "./rules/UniqueArgumentDefinitionNamesRule.js";
|
|
50
|
+
export { UniqueDirectiveNamesRule } from "./rules/UniqueDirectiveNamesRule.js";
|
|
51
|
+
export { PossibleTypeExtensionsRule } from "./rules/PossibleTypeExtensionsRule.js";
|
|
52
|
+
export { NoDeprecatedCustomRule } from "./rules/custom/NoDeprecatedCustomRule.js";
|
|
53
|
+
export { NoSchemaIntrospectionCustomRule } from "./rules/custom/NoSchemaIntrospectionCustomRule.js";
|