graphql 17.0.0-beta.0 → 17.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__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/devMode.js +2 -2
- package/devMode.js.map +1 -1
- package/devMode.mjs.map +1 -1
- package/error/GraphQLError.d.mts +4 -4
- package/error/GraphQLError.d.ts +4 -4
- package/error/GraphQLError.js +10 -11
- package/error/GraphQLError.js.map +1 -1
- package/error/GraphQLError.mjs +2 -3
- package/error/GraphQLError.mjs.map +1 -1
- package/error/ensureGraphQLError.d.mts +1 -1
- package/error/ensureGraphQLError.d.ts +1 -1
- package/error/ensureGraphQLError.js +5 -5
- package/error/ensureGraphQLError.js.map +1 -1
- package/error/ensureGraphQLError.mjs.map +1 -1
- package/error/index.d.mts +4 -4
- package/error/index.d.ts +4 -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 +3 -3
- package/error/locatedError.d.ts +3 -3
- package/error/locatedError.js +4 -4
- package/error/locatedError.js.map +1 -1
- package/error/locatedError.mjs.map +1 -1
- package/error/syntaxError.d.mts +2 -2
- package/error/syntaxError.d.ts +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.map +1 -1
- package/error/syntaxError.mjs.map +1 -1
- package/execution/AbortedGraphQLExecutionError.d.mts +1 -1
- package/execution/AbortedGraphQLExecutionError.d.ts +1 -1
- package/execution/AbortedGraphQLExecutionError.js.map +1 -1
- package/execution/AbortedGraphQLExecutionError.mjs.map +1 -1
- package/execution/AsyncWorkTracker.js +2 -2
- package/execution/AsyncWorkTracker.js.map +1 -1
- package/execution/AsyncWorkTracker.mjs.map +1 -1
- package/execution/Executor.d.mts +16 -17
- package/execution/Executor.d.ts +16 -17
- package/execution/Executor.js +83 -85
- package/execution/Executor.js.map +1 -1
- package/execution/Executor.mjs +3 -5
- 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 -11
- package/execution/ExecutorThrowingOnIncremental.js.map +1 -1
- package/execution/ExecutorThrowingOnIncremental.mjs.map +1 -1
- package/execution/buildResolveInfo.d.mts +14 -0
- package/execution/buildResolveInfo.d.ts +14 -0
- package/execution/buildResolveInfo.js +24 -0
- package/execution/buildResolveInfo.js.map +1 -0
- package/execution/buildResolveInfo.mjs +21 -0
- package/execution/buildResolveInfo.mjs.map +1 -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 +6 -6
- package/execution/collectFields.d.ts +6 -6
- package/execution/collectFields.js +19 -19
- package/execution/collectFields.js.map +1 -1
- package/execution/collectFields.mjs.map +1 -1
- package/execution/collectIteratorPromises.js +2 -2
- package/execution/collectIteratorPromises.js.map +1 -1
- package/execution/collectIteratorPromises.mjs.map +1 -1
- package/execution/createSharedExecutionContext.d.mts +2 -2
- package/execution/createSharedExecutionContext.d.ts +2 -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 +14 -14
- package/execution/execute.d.ts +14 -14
- package/execution/execute.js +78 -98
- package/execution/execute.js.map +1 -1
- package/execution/execute.mjs +17 -37
- package/execution/execute.mjs.map +1 -1
- package/execution/getStreamUsage.d.mts +2 -2
- package/execution/getStreamUsage.d.ts +2 -2
- package/execution/getStreamUsage.js +9 -9
- package/execution/getStreamUsage.js.map +1 -1
- package/execution/getStreamUsage.mjs.map +1 -1
- package/execution/getVariableSignature.d.mts +3 -3
- package/execution/getVariableSignature.d.ts +3 -3
- package/execution/getVariableSignature.js +8 -8
- package/execution/getVariableSignature.js.map +1 -1
- package/execution/getVariableSignature.mjs.map +1 -1
- package/execution/hooks.d.mts +2 -2
- package/execution/hooks.d.ts +2 -2
- package/execution/hooks.js.map +1 -1
- package/execution/hooks.mjs.map +1 -1
- package/execution/incremental/Computation.d.mts +1 -1
- package/execution/incremental/Computation.d.ts +1 -1
- package/execution/incremental/Computation.js +2 -2
- package/execution/incremental/Computation.js.map +1 -1
- package/execution/incremental/Computation.mjs.map +1 -1
- package/execution/incremental/IncrementalExecutor.d.mts +14 -14
- package/execution/incremental/IncrementalExecutor.d.ts +14 -14
- package/execution/incremental/IncrementalExecutor.js +48 -48
- package/execution/incremental/IncrementalExecutor.js.map +1 -1
- package/execution/incremental/IncrementalExecutor.mjs +3 -3
- package/execution/incremental/IncrementalExecutor.mjs.map +1 -1
- package/execution/incremental/IncrementalPublisher.d.mts +3 -3
- package/execution/incremental/IncrementalPublisher.d.ts +3 -3
- package/execution/incremental/IncrementalPublisher.js +13 -14
- package/execution/incremental/IncrementalPublisher.js.map +1 -1
- package/execution/incremental/IncrementalPublisher.mjs +1 -2
- 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 +26 -22
- package/execution/incremental/Queue.js.map +1 -1
- package/execution/incremental/Queue.mjs +10 -6
- package/execution/incremental/Queue.mjs.map +1 -1
- package/execution/incremental/WorkQueue.d.mts +2 -2
- package/execution/incremental/WorkQueue.d.ts +2 -2
- package/execution/incremental/WorkQueue.js +7 -7
- package/execution/incremental/WorkQueue.js.map +1 -1
- package/execution/incremental/WorkQueue.mjs.map +1 -1
- package/execution/incremental/buildExecutionPlan.d.mts +1 -1
- package/execution/incremental/buildExecutionPlan.d.ts +1 -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 +8 -8
- package/execution/index.d.ts +8 -8
- package/execution/index.js +23 -22
- package/execution/index.js.map +1 -1
- package/execution/index.mjs +1 -1
- package/execution/index.mjs.map +1 -1
- package/execution/mapAsyncIterable.d.mts +1 -1
- package/execution/mapAsyncIterable.d.ts +1 -1
- package/execution/mapAsyncIterable.js +4 -4
- package/execution/mapAsyncIterable.js.map +1 -1
- package/execution/mapAsyncIterable.mjs.map +1 -1
- package/execution/returnIteratorCatchingErrors.js +1 -1
- package/execution/returnIteratorCatchingErrors.js.map +1 -1
- package/execution/returnIteratorCatchingErrors.mjs +1 -1
- package/execution/returnIteratorCatchingErrors.mjs.map +1 -1
- package/execution/values.d.mts +9 -9
- package/execution/values.d.ts +9 -9
- package/execution/values.js +34 -34
- package/execution/values.js.map +1 -1
- package/execution/values.mjs +2 -2
- package/execution/values.mjs.map +1 -1
- package/execution/withConcurrentAbruptClose.d.mts +1 -1
- package/execution/withConcurrentAbruptClose.d.ts +1 -1
- package/execution/withConcurrentAbruptClose.js +4 -4
- package/execution/withConcurrentAbruptClose.js.map +1 -1
- package/execution/withConcurrentAbruptClose.mjs +2 -2
- package/execution/withConcurrentAbruptClose.mjs.map +1 -1
- package/graphql.d.mts +7 -7
- package/graphql.d.ts +7 -7
- package/graphql.js +11 -11
- package/graphql.js.map +1 -1
- package/graphql.mjs.map +1 -1
- package/harness.d.mts +4 -4
- package/harness.d.ts +4 -4
- package/harness.js +7 -7
- package/harness.js.map +1 -1
- package/harness.mjs.map +1 -1
- package/index.d.mts +20 -20
- package/index.d.ts +20 -20
- package/index.js +253 -252
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/jsutils/Path.d.mts +1 -1
- package/jsutils/Path.d.ts +1 -1
- package/jsutils/Path.js.map +1 -1
- package/jsutils/Path.mjs.map +1 -1
- package/jsutils/didYouMean.js +2 -2
- package/jsutils/didYouMean.js.map +1 -1
- package/jsutils/didYouMean.mjs.map +1 -1
- package/jsutils/formatList.js +2 -2
- package/jsutils/formatList.js.map +1 -1
- package/jsutils/formatList.mjs.map +1 -1
- package/jsutils/getBySet.js +2 -2
- package/jsutils/getBySet.js.map +1 -1
- package/jsutils/getBySet.mjs.map +1 -1
- package/jsutils/groupBy.js +2 -2
- package/jsutils/groupBy.js.map +1 -1
- package/jsutils/groupBy.mjs.map +1 -1
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.map +1 -1
- package/jsutils/instanceOf.mjs.map +1 -1
- package/jsutils/keyMap.d.mts +1 -1
- package/jsutils/keyMap.d.ts +1 -1
- package/jsutils/keyMap.js.map +1 -1
- package/jsutils/keyMap.mjs.map +1 -1
- package/jsutils/keyValMap.d.mts +1 -1
- package/jsutils/keyValMap.d.ts +1 -1
- package/jsutils/keyValMap.js.map +1 -1
- package/jsutils/keyValMap.mjs.map +1 -1
- package/jsutils/mapValue.d.mts +1 -1
- package/jsutils/mapValue.d.ts +1 -1
- package/jsutils/mapValue.js.map +1 -1
- package/jsutils/mapValue.mjs.map +1 -1
- package/jsutils/promiseForObject.d.mts +2 -2
- package/jsutils/promiseForObject.d.ts +2 -2
- package/jsutils/promiseForObject.js.map +1 -1
- package/jsutils/promiseForObject.mjs.map +1 -1
- package/jsutils/promiseReduce.d.mts +1 -1
- package/jsutils/promiseReduce.d.ts +1 -1
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.map +1 -1
- package/jsutils/promiseReduce.mjs.map +1 -1
- package/jsutils/promiseWithResolvers.d.mts +1 -1
- package/jsutils/promiseWithResolvers.d.ts +1 -1
- package/jsutils/promiseWithResolvers.js.map +1 -1
- package/jsutils/promiseWithResolvers.mjs.map +1 -1
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.map +1 -1
- package/jsutils/suggestionList.mjs.map +1 -1
- package/jsutils/toError.js +2 -2
- package/jsutils/toError.js.map +1 -1
- package/jsutils/toError.mjs.map +1 -1
- package/jsutils/toObjMap.d.mts +2 -2
- package/jsutils/toObjMap.d.ts +2 -2
- package/jsutils/toObjMap.js.map +1 -1
- package/jsutils/toObjMap.mjs.map +1 -1
- package/language/KindTypeMap.d.mts +1 -1
- package/language/KindTypeMap.d.ts +1 -1
- package/language/KindTypeMap.js.map +1 -1
- package/language/KindTypeMap.mjs.map +1 -1
- package/language/ast.d.mts +12 -5
- package/language/ast.d.ts +12 -5
- package/language/ast.js +8 -1
- package/language/ast.js.map +1 -1
- package/language/ast.mjs +8 -1
- package/language/ast.mjs.map +1 -1
- package/language/blockString.js +4 -4
- package/language/blockString.js.map +1 -1
- package/language/blockString.mjs.map +1 -1
- package/language/directiveLocation.d.mts +2 -1
- package/language/directiveLocation.d.ts +2 -1
- package/language/directiveLocation.js +2 -1
- package/language/directiveLocation.js.map +1 -1
- package/language/directiveLocation.mjs +2 -1
- package/language/directiveLocation.mjs.map +1 -1
- package/language/index.d.mts +16 -16
- package/language/index.d.ts +16 -16
- package/language/index.js +45 -45
- package/language/index.js.map +1 -1
- package/language/index.mjs.map +1 -1
- package/language/kinds.d.mts +2 -2
- package/language/kinds.d.ts +2 -2
- package/language/kinds.js.map +1 -1
- package/language/kinds.mjs.map +1 -1
- package/language/kinds_.d.mts +2 -0
- package/language/kinds_.d.ts +2 -0
- package/language/kinds_.js +2 -1
- package/language/kinds_.js.map +1 -1
- package/language/kinds_.mjs +1 -0
- package/language/kinds_.mjs.map +1 -1
- package/language/lexer.d.mts +3 -3
- package/language/lexer.d.ts +3 -3
- package/language/lexer.js +67 -67
- package/language/lexer.js.map +1 -1
- package/language/lexer.mjs.map +1 -1
- package/language/location.d.mts +1 -1
- package/language/location.d.ts +1 -1
- package/language/location.js +2 -2
- package/language/location.js.map +1 -1
- package/language/location.mjs.map +1 -1
- package/language/parser.d.mts +20 -7
- package/language/parser.d.ts +20 -7
- package/language/parser.js +185 -155
- package/language/parser.js.map +1 -1
- package/language/parser.mjs +30 -0
- package/language/parser.mjs.map +1 -1
- package/language/predicates.d.mts +1 -1
- package/language/predicates.d.ts +1 -1
- package/language/predicates.js +45 -43
- package/language/predicates.js.map +1 -1
- package/language/predicates.mjs +3 -1
- package/language/predicates.mjs.map +1 -1
- package/language/printLocation.d.mts +3 -3
- package/language/printLocation.d.ts +3 -3
- package/language/printLocation.js +2 -2
- package/language/printLocation.js.map +1 -1
- package/language/printLocation.mjs.map +1 -1
- package/language/printer.d.mts +1 -1
- package/language/printer.d.ts +1 -1
- package/language/printer.js +10 -6
- package/language/printer.js.map +1 -1
- package/language/printer.mjs +5 -1
- package/language/printer.mjs.map +1 -1
- package/language/schemaCoordinateLexer.d.mts +3 -3
- package/language/schemaCoordinateLexer.d.ts +3 -3
- package/language/schemaCoordinateLexer.js +16 -16
- package/language/schemaCoordinateLexer.js.map +1 -1
- package/language/schemaCoordinateLexer.mjs.map +1 -1
- package/language/source.js +5 -5
- package/language/source.js.map +1 -1
- package/language/source.mjs.map +1 -1
- package/language/visitor.d.mts +2 -2
- package/language/visitor.d.ts +2 -2
- package/language/visitor.js +10 -10
- package/language/visitor.js.map +1 -1
- package/language/visitor.mjs.map +1 -1
- package/package.json +2 -2
- package/type/assertName.js +8 -8
- package/type/assertName.js.map +1 -1
- package/type/assertName.mjs.map +1 -1
- package/type/definition.d.mts +9 -9
- package/type/definition.d.ts +9 -9
- package/type/definition.js +94 -94
- package/type/definition.js.map +1 -1
- package/type/definition.mjs.map +1 -1
- package/type/directives.d.mts +11 -6
- package/type/directives.d.ts +11 -6
- package/type/directives.js +51 -46
- package/type/directives.js.map +1 -1
- package/type/directives.mjs +5 -0
- package/type/directives.mjs.map +1 -1
- package/type/index.d.mts +12 -12
- package/type/index.d.ts +12 -12
- package/type/index.js +106 -106
- package/type/index.js.map +1 -1
- package/type/index.mjs.map +1 -1
- package/type/introspection.d.mts +2 -2
- package/type/introspection.d.ts +2 -2
- package/type/introspection.js +123 -103
- package/type/introspection.js.map +1 -1
- package/type/introspection.mjs +25 -5
- package/type/introspection.mjs.map +1 -1
- package/type/scalars.d.mts +2 -2
- package/type/scalars.d.ts +2 -2
- package/type/scalars.js +61 -61
- package/type/scalars.js.map +1 -1
- package/type/scalars.mjs.map +1 -1
- package/type/schema.d.mts +7 -7
- package/type/schema.d.ts +7 -7
- package/type/schema.js +32 -32
- package/type/schema.js.map +1 -1
- package/type/schema.mjs.map +1 -1
- package/type/validate.d.mts +4 -4
- package/type/validate.d.ts +4 -4
- package/type/validate.js +83 -83
- package/type/validate.js.map +1 -1
- package/type/validate.mjs +1 -1
- package/type/validate.mjs.map +1 -1
- package/utilities/TypeInfo.d.mts +6 -6
- package/utilities/TypeInfo.d.ts +6 -6
- package/utilities/TypeInfo.js +61 -61
- package/utilities/TypeInfo.js.map +1 -1
- package/utilities/TypeInfo.mjs +1 -1
- package/utilities/TypeInfo.mjs.map +1 -1
- package/utilities/astFromValue.d.mts +3 -3
- package/utilities/astFromValue.d.ts +3 -3
- package/utilities/astFromValue.js +31 -33
- package/utilities/astFromValue.js.map +1 -1
- package/utilities/astFromValue.mjs +1 -3
- package/utilities/astFromValue.mjs.map +1 -1
- package/utilities/buildASTSchema.d.mts +5 -5
- package/utilities/buildASTSchema.d.ts +5 -5
- package/utilities/buildASTSchema.js +11 -10
- package/utilities/buildASTSchema.js.map +1 -1
- package/utilities/buildASTSchema.mjs +1 -0
- package/utilities/buildASTSchema.mjs.map +1 -1
- package/utilities/buildClientSchema.d.mts +3 -3
- package/utilities/buildClientSchema.d.ts +3 -3
- package/utilities/buildClientSchema.js +53 -52
- package/utilities/buildClientSchema.js.map +1 -1
- package/utilities/buildClientSchema.mjs +1 -0
- package/utilities/buildClientSchema.mjs.map +1 -1
- package/utilities/coerceInputValue.d.mts +5 -5
- package/utilities/coerceInputValue.d.ts +5 -5
- package/utilities/coerceInputValue.js +31 -31
- package/utilities/coerceInputValue.js.map +1 -1
- package/utilities/coerceInputValue.mjs.map +1 -1
- package/utilities/concatAST.d.mts +1 -1
- package/utilities/concatAST.d.ts +1 -1
- package/utilities/concatAST.js +2 -2
- package/utilities/concatAST.js.map +1 -1
- package/utilities/concatAST.mjs.map +1 -1
- package/utilities/extendSchema.d.mts +3 -3
- package/utilities/extendSchema.d.ts +3 -3
- package/utilities/extendSchema.js +92 -66
- package/utilities/extendSchema.js.map +1 -1
- package/utilities/extendSchema.mjs +27 -1
- package/utilities/extendSchema.mjs.map +1 -1
- package/utilities/findSchemaChanges.d.mts +1 -1
- package/utilities/findSchemaChanges.d.ts +1 -1
- package/utilities/findSchemaChanges.js +42 -44
- package/utilities/findSchemaChanges.js.map +1 -1
- package/utilities/findSchemaChanges.mjs +1 -3
- package/utilities/findSchemaChanges.mjs.map +1 -1
- package/utilities/getDefaultValueAST.d.mts +2 -2
- package/utilities/getDefaultValueAST.d.ts +2 -2
- package/utilities/getDefaultValueAST.js +9 -7
- package/utilities/getDefaultValueAST.js.map +1 -1
- package/utilities/getDefaultValueAST.mjs +2 -0
- package/utilities/getDefaultValueAST.mjs.map +1 -1
- package/utilities/getIntrospectionQuery.d.mts +19 -3
- package/utilities/getIntrospectionQuery.d.ts +19 -3
- package/utilities/getIntrospectionQuery.js +22 -38
- package/utilities/getIntrospectionQuery.js.map +1 -1
- package/utilities/getIntrospectionQuery.mjs +22 -38
- package/utilities/getIntrospectionQuery.mjs.map +1 -1
- package/utilities/getOperationAST.d.mts +2 -2
- package/utilities/getOperationAST.d.ts +2 -2
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.map +1 -1
- package/utilities/getOperationAST.mjs.map +1 -1
- package/utilities/index.d.mts +28 -28
- package/utilities/index.d.ts +28 -28
- package/utilities/index.js +61 -61
- package/utilities/index.js.map +1 -1
- package/utilities/index.mjs.map +1 -1
- package/utilities/introspectionFromSchema.d.mts +2 -2
- package/utilities/introspectionFromSchema.d.ts +2 -2
- package/utilities/introspectionFromSchema.js +8 -7
- package/utilities/introspectionFromSchema.js.map +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -0
- package/utilities/introspectionFromSchema.mjs.map +1 -1
- package/utilities/lexicographicSortSchema.d.mts +1 -1
- package/utilities/lexicographicSortSchema.d.ts +1 -1
- package/utilities/lexicographicSortSchema.js +14 -14
- package/utilities/lexicographicSortSchema.js.map +1 -1
- package/utilities/lexicographicSortSchema.mjs.map +1 -1
- package/utilities/mapSchemaConfig.d.mts +3 -3
- package/utilities/mapSchemaConfig.d.ts +3 -3
- package/utilities/mapSchemaConfig.js +29 -31
- package/utilities/mapSchemaConfig.js.map +1 -1
- package/utilities/mapSchemaConfig.mjs +1 -3
- package/utilities/mapSchemaConfig.mjs.map +1 -1
- package/utilities/printSchema.d.mts +3 -3
- package/utilities/printSchema.d.ts +3 -3
- package/utilities/printSchema.js +31 -32
- package/utilities/printSchema.js.map +1 -1
- package/utilities/printSchema.mjs +2 -3
- package/utilities/printSchema.mjs.map +1 -1
- package/utilities/replaceVariables.d.mts +4 -4
- package/utilities/replaceVariables.d.ts +4 -4
- package/utilities/replaceVariables.js +9 -9
- package/utilities/replaceVariables.js.map +1 -1
- package/utilities/replaceVariables.mjs.map +1 -1
- package/utilities/resolveSchemaCoordinate.d.mts +5 -5
- package/utilities/resolveSchemaCoordinate.d.ts +5 -5
- package/utilities/resolveSchemaCoordinate.js +23 -23
- package/utilities/resolveSchemaCoordinate.js.map +1 -1
- package/utilities/resolveSchemaCoordinate.mjs.map +1 -1
- package/utilities/separateOperations.d.mts +2 -2
- package/utilities/separateOperations.d.ts +2 -2
- package/utilities/separateOperations.js +7 -7
- package/utilities/separateOperations.js.map +1 -1
- 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 -12
- package/utilities/sortValueNode.js.map +1 -1
- package/utilities/sortValueNode.mjs.map +1 -1
- package/utilities/stripIgnoredCharacters.d.mts +1 -1
- package/utilities/stripIgnoredCharacters.d.ts +1 -1
- package/utilities/stripIgnoredCharacters.js +11 -11
- package/utilities/stripIgnoredCharacters.js.map +1 -1
- package/utilities/stripIgnoredCharacters.mjs.map +1 -1
- package/utilities/typeComparators.d.mts +2 -2
- package/utilities/typeComparators.d.ts +2 -2
- package/utilities/typeComparators.js +14 -14
- package/utilities/typeComparators.js.map +1 -1
- package/utilities/typeComparators.mjs.map +1 -1
- package/utilities/typeFromAST.d.mts +4 -4
- package/utilities/typeFromAST.d.ts +4 -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 +1 -1
- package/utilities/typedQueryDocumentNode.d.ts +1 -1
- package/utilities/typedQueryDocumentNode.js.map +1 -1
- package/utilities/typedQueryDocumentNode.mjs.map +1 -1
- package/utilities/validateInputValue.d.mts +6 -6
- package/utilities/validateInputValue.d.ts +6 -6
- package/utilities/validateInputValue.js +60 -60
- package/utilities/validateInputValue.js.map +1 -1
- package/utilities/validateInputValue.mjs.map +1 -1
- package/utilities/valueFromAST.d.mts +4 -4
- package/utilities/valueFromAST.d.ts +4 -4
- package/utilities/valueFromAST.js +20 -22
- package/utilities/valueFromAST.js.map +1 -1
- package/utilities/valueFromAST.mjs +1 -3
- package/utilities/valueFromAST.mjs.map +1 -1
- package/utilities/valueFromASTUntyped.d.mts +3 -3
- package/utilities/valueFromASTUntyped.d.ts +3 -3
- package/utilities/valueFromASTUntyped.js +12 -12
- package/utilities/valueFromASTUntyped.js.map +1 -1
- package/utilities/valueFromASTUntyped.mjs.map +1 -1
- package/utilities/valueToLiteral.d.mts +2 -2
- package/utilities/valueToLiteral.d.ts +2 -2
- package/utilities/valueToLiteral.js +30 -30
- package/utilities/valueToLiteral.js.map +1 -1
- package/utilities/valueToLiteral.mjs.map +1 -1
- package/validation/ValidationContext.d.mts +9 -9
- package/validation/ValidationContext.d.ts +9 -9
- package/validation/ValidationContext.js +8 -8
- package/validation/ValidationContext.js.map +1 -1
- package/validation/ValidationContext.mjs.map +1 -1
- package/validation/index.d.mts +46 -46
- package/validation/index.d.ts +46 -46
- package/validation/index.js +91 -91
- package/validation/index.js.map +1 -1
- package/validation/index.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveLabelRule.js +9 -9
- package/validation/rules/DeferStreamDirectiveLabelRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveLabelRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js +8 -8
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnRootFieldRule.mjs.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.mts +2 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.d.ts +2 -2
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js +14 -14
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.js.map +1 -1
- package/validation/rules/DeferStreamDirectiveOnValidOperationsRule.mjs.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.d.mts +2 -2
- package/validation/rules/ExecutableDefinitionsRule.d.ts +2 -2
- package/validation/rules/ExecutableDefinitionsRule.js +7 -7
- package/validation/rules/ExecutableDefinitionsRule.js.map +1 -1
- package/validation/rules/ExecutableDefinitionsRule.mjs.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.d.mts +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.js +14 -14
- package/validation/rules/FieldsOnCorrectTypeRule.js.map +1 -1
- package/validation/rules/FieldsOnCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.d.mts +2 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +2 -2
- package/validation/rules/FragmentsOnCompositeTypesRule.js +12 -12
- package/validation/rules/FragmentsOnCompositeTypesRule.js.map +1 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.d.mts +2 -2
- package/validation/rules/KnownArgumentNamesRule.d.ts +2 -2
- package/validation/rules/KnownArgumentNamesRule.js +16 -16
- package/validation/rules/KnownArgumentNamesRule.js.map +1 -1
- package/validation/rules/KnownArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownDirectivesRule.d.mts +2 -2
- package/validation/rules/KnownDirectivesRule.d.ts +2 -2
- package/validation/rules/KnownDirectivesRule.js +67 -64
- package/validation/rules/KnownDirectivesRule.js.map +1 -1
- package/validation/rules/KnownDirectivesRule.mjs +4 -1
- package/validation/rules/KnownDirectivesRule.mjs.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.d.mts +2 -2
- package/validation/rules/KnownFragmentNamesRule.d.ts +2 -2
- package/validation/rules/KnownFragmentNamesRule.js +2 -2
- package/validation/rules/KnownFragmentNamesRule.js.map +1 -1
- package/validation/rules/KnownFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/KnownOperationTypesRule.d.mts +2 -2
- package/validation/rules/KnownOperationTypesRule.d.ts +2 -2
- package/validation/rules/KnownOperationTypesRule.js +2 -2
- package/validation/rules/KnownOperationTypesRule.js.map +1 -1
- package/validation/rules/KnownOperationTypesRule.mjs.map +1 -1
- package/validation/rules/KnownTypeNamesRule.d.mts +2 -2
- package/validation/rules/KnownTypeNamesRule.d.ts +2 -2
- package/validation/rules/KnownTypeNamesRule.js +11 -11
- package/validation/rules/KnownTypeNamesRule.js.map +1 -1
- package/validation/rules/KnownTypeNamesRule.mjs.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.d.mts +2 -2
- package/validation/rules/LoneAnonymousOperationRule.d.ts +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js +4 -4
- package/validation/rules/LoneAnonymousOperationRule.js.map +1 -1
- package/validation/rules/LoneAnonymousOperationRule.mjs.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.d.mts +2 -2
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +2 -2
- package/validation/rules/LoneSchemaDefinitionRule.js +3 -3
- package/validation/rules/LoneSchemaDefinitionRule.js.map +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.mjs.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.d.mts +2 -2
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +2 -2
- package/validation/rules/MaxIntrospectionDepthRule.js +5 -5
- package/validation/rules/MaxIntrospectionDepthRule.js.map +1 -1
- package/validation/rules/MaxIntrospectionDepthRule.mjs.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.d.mts +2 -2
- package/validation/rules/NoFragmentCyclesRule.d.ts +2 -2
- package/validation/rules/NoFragmentCyclesRule.js +2 -2
- package/validation/rules/NoFragmentCyclesRule.js.map +1 -1
- package/validation/rules/NoFragmentCyclesRule.mjs.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.d.mts +2 -2
- package/validation/rules/NoUndefinedVariablesRule.d.ts +2 -2
- package/validation/rules/NoUndefinedVariablesRule.js +2 -2
- package/validation/rules/NoUndefinedVariablesRule.js.map +1 -1
- package/validation/rules/NoUndefinedVariablesRule.mjs.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.d.mts +2 -2
- package/validation/rules/NoUnusedFragmentsRule.d.ts +2 -2
- package/validation/rules/NoUnusedFragmentsRule.js +2 -2
- package/validation/rules/NoUnusedFragmentsRule.js.map +1 -1
- package/validation/rules/NoUnusedFragmentsRule.mjs.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.d.mts +2 -2
- package/validation/rules/NoUnusedVariablesRule.d.ts +2 -2
- package/validation/rules/NoUnusedVariablesRule.js +3 -3
- package/validation/rules/NoUnusedVariablesRule.js.map +1 -1
- package/validation/rules/NoUnusedVariablesRule.mjs.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.mts +2 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +2 -2
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +31 -31
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.map +1 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.d.mts +2 -2
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +2 -2
- package/validation/rules/PossibleFragmentSpreadsRule.js +17 -17
- package/validation/rules/PossibleFragmentSpreadsRule.js.map +1 -1
- package/validation/rules/PossibleFragmentSpreadsRule.mjs.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.d.mts +2 -2
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +2 -2
- package/validation/rules/PossibleTypeExtensionsRule.js +40 -42
- package/validation/rules/PossibleTypeExtensionsRule.js.map +1 -1
- package/validation/rules/PossibleTypeExtensionsRule.mjs +2 -4
- package/validation/rules/PossibleTypeExtensionsRule.mjs.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.d.mts +2 -2
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +2 -2
- package/validation/rules/ProvidedRequiredArgumentsRule.js +20 -20
- package/validation/rules/ProvidedRequiredArgumentsRule.js.map +1 -1
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs.map +1 -1
- package/validation/rules/ScalarLeafsRule.d.mts +2 -2
- package/validation/rules/ScalarLeafsRule.d.ts +2 -2
- package/validation/rules/ScalarLeafsRule.js +10 -10
- package/validation/rules/ScalarLeafsRule.js.map +1 -1
- package/validation/rules/ScalarLeafsRule.mjs.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.d.mts +2 -2
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +2 -2
- package/validation/rules/SingleFieldSubscriptionsRule.js +8 -8
- package/validation/rules/SingleFieldSubscriptionsRule.js.map +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.mjs.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.d.mts +2 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.d.ts +2 -2
- package/validation/rules/StreamDirectiveOnListFieldRule.js +7 -7
- package/validation/rules/StreamDirectiveOnListFieldRule.js.map +1 -1
- package/validation/rules/StreamDirectiveOnListFieldRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.mts +2 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +2 -2
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +4 -4
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.d.mts +2 -2
- package/validation/rules/UniqueArgumentNamesRule.d.ts +2 -2
- package/validation/rules/UniqueArgumentNamesRule.js +4 -4
- package/validation/rules/UniqueArgumentNamesRule.js.map +1 -1
- package/validation/rules/UniqueArgumentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.d.mts +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js +3 -3
- package/validation/rules/UniqueDirectiveNamesRule.js.map +1 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.d.mts +2 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +2 -2
- package/validation/rules/UniqueDirectivesPerLocationRule.js +20 -10
- package/validation/rules/UniqueDirectivesPerLocationRule.js.map +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +10 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.d.mts +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js +5 -5
- package/validation/rules/UniqueEnumValueNamesRule.js.map +1 -1
- package/validation/rules/UniqueEnumValueNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.mts +2 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +2 -2
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +5 -5
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.map +1 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.d.mts +2 -2
- package/validation/rules/UniqueFragmentNamesRule.d.ts +2 -2
- package/validation/rules/UniqueFragmentNamesRule.js +2 -2
- package/validation/rules/UniqueFragmentNamesRule.js.map +1 -1
- package/validation/rules/UniqueFragmentNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.d.mts +2 -2
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +2 -2
- package/validation/rules/UniqueInputFieldNamesRule.js +4 -4
- package/validation/rules/UniqueInputFieldNamesRule.js.map +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.d.mts +2 -2
- package/validation/rules/UniqueOperationNamesRule.d.ts +2 -2
- package/validation/rules/UniqueOperationNamesRule.js +2 -2
- package/validation/rules/UniqueOperationNamesRule.js.map +1 -1
- package/validation/rules/UniqueOperationNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.d.mts +2 -2
- package/validation/rules/UniqueOperationTypesRule.d.ts +2 -2
- package/validation/rules/UniqueOperationTypesRule.js +3 -3
- package/validation/rules/UniqueOperationTypesRule.js.map +1 -1
- package/validation/rules/UniqueOperationTypesRule.mjs.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.d.mts +2 -2
- package/validation/rules/UniqueTypeNamesRule.d.ts +2 -2
- package/validation/rules/UniqueTypeNamesRule.js +3 -3
- package/validation/rules/UniqueTypeNamesRule.js.map +1 -1
- package/validation/rules/UniqueTypeNamesRule.mjs.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.d.mts +2 -2
- package/validation/rules/UniqueVariableNamesRule.d.ts +2 -2
- package/validation/rules/UniqueVariableNamesRule.js +4 -4
- package/validation/rules/UniqueVariableNamesRule.js.map +1 -1
- package/validation/rules/UniqueVariableNamesRule.mjs.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.d.mts +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.js +2 -2
- package/validation/rules/ValuesOfCorrectTypeRule.js.map +1 -1
- package/validation/rules/ValuesOfCorrectTypeRule.mjs.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.d.mts +2 -2
- package/validation/rules/VariablesAreInputTypesRule.d.ts +2 -2
- package/validation/rules/VariablesAreInputTypesRule.js +8 -8
- package/validation/rules/VariablesAreInputTypesRule.js.map +1 -1
- package/validation/rules/VariablesAreInputTypesRule.mjs.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.d.mts +2 -2
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +2 -2
- package/validation/rules/VariablesInAllowedPositionRule.js +14 -14
- package/validation/rules/VariablesInAllowedPositionRule.js.map +1 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.mts +2 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +2 -2
- package/validation/rules/custom/NoDeprecatedCustomRule.js +8 -8
- package/validation/rules/custom/NoDeprecatedCustomRule.js.map +1 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.mts +2 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +2 -2
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +6 -6
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.map +1 -1
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs.map +1 -1
- package/validation/specifiedRules.d.mts +1 -1
- package/validation/specifiedRules.d.ts +1 -1
- package/validation/specifiedRules.js +87 -87
- package/validation/specifiedRules.js.map +1 -1
- package/validation/specifiedRules.mjs.map +1 -1
- package/validation/validate.d.mts +5 -5
- package/validation/validate.d.ts +5 -5
- package/validation/validate.js +19 -19
- package/validation/validate.js.map +1 -1
- package/validation/validate.mjs.map +1 -1
- package/version.js +2 -2
- package/version.js.map +1 -1
- package/version.mjs +2 -2
- package/version.mjs.map +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FragmentsOnCompositeTypesRule = FragmentsOnCompositeTypesRule;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
5
|
+
const printer_ts_1 = require("../../language/printer.js");
|
|
6
|
+
const definition_ts_1 = require("../../type/definition.js");
|
|
7
|
+
const typeFromAST_ts_1 = require("../../utilities/typeFromAST.js");
|
|
8
8
|
/**
|
|
9
9
|
* Fragments on composite type
|
|
10
10
|
*
|
|
@@ -19,18 +19,18 @@ function FragmentsOnCompositeTypesRule(context) {
|
|
|
19
19
|
InlineFragment(node) {
|
|
20
20
|
const typeCondition = node.typeCondition;
|
|
21
21
|
if (typeCondition) {
|
|
22
|
-
const type = (0,
|
|
23
|
-
if (type && !(0,
|
|
24
|
-
const typeStr = (0,
|
|
25
|
-
context.reportError(new
|
|
22
|
+
const type = (0, typeFromAST_ts_1.typeFromAST)(context.getSchema(), typeCondition);
|
|
23
|
+
if (type && !(0, definition_ts_1.isCompositeType)(type)) {
|
|
24
|
+
const typeStr = (0, printer_ts_1.print)(typeCondition);
|
|
25
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Fragment cannot condition on non composite type "${typeStr}".`, { nodes: typeCondition }));
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
FragmentDefinition(node) {
|
|
30
|
-
const type = (0,
|
|
31
|
-
if (type && !(0,
|
|
32
|
-
const typeStr = (0,
|
|
33
|
-
context.reportError(new
|
|
30
|
+
const type = (0, typeFromAST_ts_1.typeFromAST)(context.getSchema(), node.typeCondition);
|
|
31
|
+
if (type && !(0, definition_ts_1.isCompositeType)(type)) {
|
|
32
|
+
const typeStr = (0, printer_ts_1.print)(node.typeCondition);
|
|
33
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Fragment "${node.name.value}" cannot condition on non composite type "${typeStr}".`, { nodes: node.typeCondition }));
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentsOnCompositeTypesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/FragmentsOnCompositeTypesRule.ts"],"names":[],"mappings":";;AAoBA,sEAgCC;AApDD,iEAA2D;AAE3D,0DAAkD;AAGlD,4DAA2D;AAE3D,mEAA6D;AAI7D;;;;;;;;GAQG;AACH,SAAgB,6BAA6B,CAC3C,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC7D,IAAI,IAAI,IAAI,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAA,kBAAK,EAAC,aAAa,CAAC,CAAC;oBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,oDAAoD,OAAO,IAAI,EAC/D,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,IAAI,IAAI,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,IAAA,kBAAK,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,6CAA6C,OAAO,IAAI,EACpF,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAC9B,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.
|
|
1
|
+
{"version":3,"file":"FragmentsOnCompositeTypesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/FragmentsOnCompositeTypesRule.ts"],"names":[],"mappings":";;AAoBA,sEAgCC;AApDD,iEAA2D;AAE3D,0DAAkD;AAGlD,4DAA2D;AAE3D,mEAA6D;AAI7D;;;;;;;;GAQG;AACH,SAAgB,6BAA6B,CAC3C,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC7D,IAAI,IAAI,IAAI,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAA,kBAAK,EAAC,aAAa,CAAC,CAAC;oBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,oDAAoD,OAAO,IAAI,EAC/D,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,IAAI,IAAI,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,IAAA,kBAAK,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,6CAA6C,OAAO,IAAI,EACpF,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAC9B,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { print } from '../../language/printer.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { isCompositeType } from '../../type/definition.ts';\n\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type { ValidationContext } from '../ValidationContext.ts';\n\n/**\n * Fragments on composite type\n *\n * Fragments use a type condition to determine if they apply, since fragments\n * can only be spread into a composite type (object, interface, or union), the\n * type condition must also be a composite type.\n *\n * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types\n */\nexport function FragmentsOnCompositeTypesRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n InlineFragment(node) {\n const typeCondition = node.typeCondition;\n if (typeCondition) {\n const type = typeFromAST(context.getSchema(), typeCondition);\n if (type && !isCompositeType(type)) {\n const typeStr = print(typeCondition);\n context.reportError(\n new GraphQLError(\n `Fragment cannot condition on non composite type \"${typeStr}\".`,\n { nodes: typeCondition },\n ),\n );\n }\n }\n },\n FragmentDefinition(node) {\n const type = typeFromAST(context.getSchema(), node.typeCondition);\n if (type && !isCompositeType(type)) {\n const typeStr = print(node.typeCondition);\n context.reportError(\n new GraphQLError(\n `Fragment \"${node.name.value}\" cannot condition on non composite type \"${typeStr}\".`,\n { nodes: node.typeCondition },\n ),\n );\n }\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentsOnCompositeTypesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/FragmentsOnCompositeTypesRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAE3D,OAAO,EAAE,KAAK,EAAE,mCAAkC;AAGlD,OAAO,EAAE,eAAe,EAAE,kCAAiC;AAE3D,OAAO,EAAE,WAAW,EAAE,wCAAuC;AAI7D;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC7D,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;oBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,oDAAoD,OAAO,IAAI,EAC/D,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,6CAA6C,OAAO,IAAI,EACpF,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAC9B,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.
|
|
1
|
+
{"version":3,"file":"FragmentsOnCompositeTypesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/FragmentsOnCompositeTypesRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAE3D,OAAO,EAAE,KAAK,EAAE,mCAAkC;AAGlD,OAAO,EAAE,eAAe,EAAE,kCAAiC;AAE3D,OAAO,EAAE,WAAW,EAAE,wCAAuC;AAI7D;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;gBAC7D,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;oBACrC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,oDAAoD,OAAO,IAAI,EAC/D,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,6CAA6C,OAAO,IAAI,EACpF,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAC9B,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { print } from '../../language/printer.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { isCompositeType } from '../../type/definition.ts';\n\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type { ValidationContext } from '../ValidationContext.ts';\n\n/**\n * Fragments on composite type\n *\n * Fragments use a type condition to determine if they apply, since fragments\n * can only be spread into a composite type (object, interface, or union), the\n * type condition must also be a composite type.\n *\n * See https://spec.graphql.org/draft/#sec-Fragments-On-Composite-Types\n */\nexport function FragmentsOnCompositeTypesRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n InlineFragment(node) {\n const typeCondition = node.typeCondition;\n if (typeCondition) {\n const type = typeFromAST(context.getSchema(), typeCondition);\n if (type && !isCompositeType(type)) {\n const typeStr = print(typeCondition);\n context.reportError(\n new GraphQLError(\n `Fragment cannot condition on non composite type \"${typeStr}\".`,\n { nodes: typeCondition },\n ),\n );\n }\n }\n },\n FragmentDefinition(node) {\n const type = typeFromAST(context.getSchema(), node.typeCondition);\n if (type && !isCompositeType(type)) {\n const typeStr = print(node.typeCondition);\n context.reportError(\n new GraphQLError(\n `Fragment \"${node.name.value}\" cannot condition on non composite type \"${typeStr}\".`,\n { nodes: node.typeCondition },\n ),\n );\n }\n },\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext, ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.mjs";
|
|
2
|
+
import type { SDLValidationContext, ValidationContext } from "../ValidationContext.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Known argument names
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext, ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.js";
|
|
2
|
+
import type { SDLValidationContext, ValidationContext } from "../ValidationContext.js";
|
|
3
3
|
/**
|
|
4
4
|
* Known argument names
|
|
5
5
|
*
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KnownArgumentNamesRule = KnownArgumentNamesRule;
|
|
4
4
|
exports.KnownArgumentNamesOnDirectivesRule = KnownArgumentNamesOnDirectivesRule;
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
5
|
+
const didYouMean_ts_1 = require("../../jsutils/didYouMean.js");
|
|
6
|
+
const suggestionList_ts_1 = require("../../jsutils/suggestionList.js");
|
|
7
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
8
|
+
const kinds_ts_1 = require("../../language/kinds.js");
|
|
9
|
+
const directives_ts_1 = require("../../type/directives.js");
|
|
10
10
|
/**
|
|
11
11
|
* Known argument names
|
|
12
12
|
*
|
|
@@ -28,9 +28,9 @@ function KnownArgumentNamesRule(context) {
|
|
|
28
28
|
const argName = argNode.name.value;
|
|
29
29
|
const suggestions = context.hideSuggestions
|
|
30
30
|
? []
|
|
31
|
-
: (0,
|
|
32
|
-
context.reportError(new
|
|
33
|
-
(0,
|
|
31
|
+
: (0, suggestionList_ts_1.suggestionList)(argName, Array.from(fragmentSignature.variableDefinitions.values()).map((varSignature) => varSignature.variable.name.value));
|
|
32
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Unknown argument "${argName}" on fragment "${fragmentSignature.definition.name.value}".` +
|
|
33
|
+
(0, didYouMean_ts_1.didYouMean)(suggestions), { nodes: argNode }));
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
},
|
|
@@ -41,9 +41,9 @@ function KnownArgumentNamesRule(context) {
|
|
|
41
41
|
const argName = argNode.name.value;
|
|
42
42
|
const suggestions = context.hideSuggestions
|
|
43
43
|
? []
|
|
44
|
-
: (0,
|
|
45
|
-
context.reportError(new
|
|
46
|
-
(0,
|
|
44
|
+
: (0, suggestionList_ts_1.suggestionList)(argName, fieldDef.args.map((arg) => arg.name));
|
|
45
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Unknown argument "${argName}" on field "${fieldDef}".` +
|
|
46
|
+
(0, didYouMean_ts_1.didYouMean)(suggestions), { nodes: argNode }));
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
};
|
|
@@ -56,13 +56,13 @@ function KnownArgumentNamesOnDirectivesRule(context) {
|
|
|
56
56
|
const schema = context.getSchema();
|
|
57
57
|
const definedDirectives = schema
|
|
58
58
|
? schema.getDirectives()
|
|
59
|
-
:
|
|
59
|
+
: directives_ts_1.specifiedDirectives;
|
|
60
60
|
for (const directive of definedDirectives) {
|
|
61
61
|
directiveArgs.set(directive.name, directive.args.map((arg) => arg.name));
|
|
62
62
|
}
|
|
63
63
|
const astDefinitions = context.getDocument().definitions;
|
|
64
64
|
for (const def of astDefinitions) {
|
|
65
|
-
if (def.kind ===
|
|
65
|
+
if (def.kind === kinds_ts_1.Kind.DIRECTIVE_DEFINITION) {
|
|
66
66
|
const argsNodes = def.arguments ?? [];
|
|
67
67
|
directiveArgs.set(def.name.value, argsNodes.map((arg) => arg.name.value));
|
|
68
68
|
}
|
|
@@ -75,9 +75,9 @@ function KnownArgumentNamesOnDirectivesRule(context) {
|
|
|
75
75
|
for (const argNode of directiveNode.arguments) {
|
|
76
76
|
const argName = argNode.name.value;
|
|
77
77
|
if (!knownArgs.includes(argName)) {
|
|
78
|
-
const suggestions = (0,
|
|
79
|
-
context.reportError(new
|
|
80
|
-
(context.hideSuggestions ? '' : (0,
|
|
78
|
+
const suggestions = (0, suggestionList_ts_1.suggestionList)(argName, knownArgs);
|
|
79
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Unknown argument "${argName}" on directive "@${directiveName}".` +
|
|
80
|
+
(context.hideSuggestions ? '' : (0, didYouMean_ts_1.didYouMean)(suggestions)), { nodes: argNode }));
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnownArgumentNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownArgumentNamesRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.
|
|
1
|
+
{"version":3,"file":"KnownArgumentNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownArgumentNamesRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known argument names\n *\n * A GraphQL field is only valid if all supplied arguments are defined by\n * that field.\n *\n * See https://spec.graphql.org/draft/#sec-Argument-Names\n * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations\n */\nexport function KnownArgumentNamesRule(context: ValidationContext): ASTVisitor {\n return {\n // eslint-disable-next-line new-cap\n ...KnownArgumentNamesOnDirectivesRule(context),\n FragmentArgument(argNode) {\n const fragmentSignature = context.getFragmentSignature();\n if (fragmentSignature) {\n const varDef = fragmentSignature.variableDefinitions.get(\n argNode.name.value,\n );\n if (!varDef) {\n const argName = argNode.name.value;\n const suggestions = context.hideSuggestions\n ? []\n : suggestionList(\n argName,\n Array.from(fragmentSignature.variableDefinitions.values()).map(\n (varSignature) => varSignature.variable.name.value,\n ),\n );\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on fragment \"${fragmentSignature.definition.name.value}\".` +\n didYouMean(suggestions),\n { nodes: argNode },\n ),\n );\n }\n }\n },\n Argument(argNode) {\n const argDef = context.getArgument();\n const fieldDef = context.getFieldDef();\n\n if (!argDef && fieldDef) {\n const argName = argNode.name.value;\n const suggestions = context.hideSuggestions\n ? []\n : suggestionList(\n argName,\n fieldDef.args.map((arg) => arg.name),\n );\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on field \"${fieldDef}\".` +\n didYouMean(suggestions),\n { nodes: argNode },\n ),\n );\n }\n },\n };\n}\n\n/**\n * @internal\n */\nexport function KnownArgumentNamesOnDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const directiveArgs = new Map<string, ReadonlyArray<string>>();\n\n const schema = context.getSchema();\n const definedDirectives = schema\n ? schema.getDirectives()\n : specifiedDirectives;\n for (const directive of definedDirectives) {\n directiveArgs.set(\n directive.name,\n directive.args.map((arg) => arg.name),\n );\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n const argsNodes = def.arguments ?? [];\n\n directiveArgs.set(\n def.name.value,\n argsNodes.map((arg) => arg.name.value),\n );\n }\n }\n\n return {\n Directive(directiveNode) {\n const directiveName = directiveNode.name.value;\n const knownArgs = directiveArgs.get(directiveName);\n\n if (directiveNode.arguments != null && knownArgs != null) {\n for (const argNode of directiveNode.arguments) {\n const argName = argNode.name.value;\n if (!knownArgs.includes(argName)) {\n const suggestions = suggestionList(argName, knownArgs);\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on directive \"@${directiveName}\".` +\n (context.hideSuggestions ? '' : didYouMean(suggestions)),\n { nodes: argNode },\n ),\n );\n }\n }\n }\n\n return false;\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnownArgumentNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownArgumentNamesRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.
|
|
1
|
+
{"version":3,"file":"KnownArgumentNamesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownArgumentNamesRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qCAAoC;AACzD,OAAO,EAAE,cAAc,EAAE,yCAAwC;AAEjE,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAE3D,OAAO,EAAE,IAAI,EAAE,iCAAgC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,kCAAiC;AAO/D;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA0B;IAC/D,OAAO;QACL,mCAAmC;QACnC,GAAG,kCAAkC,CAAC,OAAO,CAAC;QAC9C,gBAAgB,CAAC,OAAO;YACtB,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACzD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,CACtD,OAAO,CAAC,IAAI,CAAC,KAAK,CACnB,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe;wBACzC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,cAAc,CACZ,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC5D,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CACnD,CACF,CAAC;oBACN,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,qBAAqB,OAAO,kBAAkB,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;wBACvF,UAAU,CAAC,WAAW,CAAC,EACzB,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,OAAO;YACd,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAEvC,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe;oBACzC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,cAAc,CACZ,OAAO,EACP,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CACrC,CAAC;gBACN,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,qBAAqB,OAAO,eAAe,QAAQ,IAAI;oBACrD,UAAU,CAAC,WAAW,CAAC,EACzB,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAChD,OAAiD;IAEjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE/D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;QACxB,CAAC,CAAC,mBAAmB,CAAC;IACxB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,aAAa,CAAC,GAAG,CACf,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;YAEtC,aAAa,CAAC,GAAG,CACf,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,CAAC,aAAa;YACrB,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEnD,IAAI,aAAa,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACzD,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;oBAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBACjC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACvD,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,qBAAqB,OAAO,oBAAoB,aAAa,IAAI;4BAC/D,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAC1D,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known argument names\n *\n * A GraphQL field is only valid if all supplied arguments are defined by\n * that field.\n *\n * See https://spec.graphql.org/draft/#sec-Argument-Names\n * See https://spec.graphql.org/draft/#sec-Directives-Are-In-Valid-Locations\n */\nexport function KnownArgumentNamesRule(context: ValidationContext): ASTVisitor {\n return {\n // eslint-disable-next-line new-cap\n ...KnownArgumentNamesOnDirectivesRule(context),\n FragmentArgument(argNode) {\n const fragmentSignature = context.getFragmentSignature();\n if (fragmentSignature) {\n const varDef = fragmentSignature.variableDefinitions.get(\n argNode.name.value,\n );\n if (!varDef) {\n const argName = argNode.name.value;\n const suggestions = context.hideSuggestions\n ? []\n : suggestionList(\n argName,\n Array.from(fragmentSignature.variableDefinitions.values()).map(\n (varSignature) => varSignature.variable.name.value,\n ),\n );\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on fragment \"${fragmentSignature.definition.name.value}\".` +\n didYouMean(suggestions),\n { nodes: argNode },\n ),\n );\n }\n }\n },\n Argument(argNode) {\n const argDef = context.getArgument();\n const fieldDef = context.getFieldDef();\n\n if (!argDef && fieldDef) {\n const argName = argNode.name.value;\n const suggestions = context.hideSuggestions\n ? []\n : suggestionList(\n argName,\n fieldDef.args.map((arg) => arg.name),\n );\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on field \"${fieldDef}\".` +\n didYouMean(suggestions),\n { nodes: argNode },\n ),\n );\n }\n },\n };\n}\n\n/**\n * @internal\n */\nexport function KnownArgumentNamesOnDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const directiveArgs = new Map<string, ReadonlyArray<string>>();\n\n const schema = context.getSchema();\n const definedDirectives = schema\n ? schema.getDirectives()\n : specifiedDirectives;\n for (const directive of definedDirectives) {\n directiveArgs.set(\n directive.name,\n directive.args.map((arg) => arg.name),\n );\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n const argsNodes = def.arguments ?? [];\n\n directiveArgs.set(\n def.name.value,\n argsNodes.map((arg) => arg.name.value),\n );\n }\n }\n\n return {\n Directive(directiveNode) {\n const directiveName = directiveNode.name.value;\n const knownArgs = directiveArgs.get(directiveName);\n\n if (directiveNode.arguments != null && knownArgs != null) {\n for (const argNode of directiveNode.arguments) {\n const argName = argNode.name.value;\n if (!knownArgs.includes(argName)) {\n const suggestions = suggestionList(argName, knownArgs);\n context.reportError(\n new GraphQLError(\n `Unknown argument \"${argName}\" on directive \"@${directiveName}\".` +\n (context.hideSuggestions ? '' : didYouMean(suggestions)),\n { nodes: argNode },\n ),\n );\n }\n }\n }\n\n return false;\n },\n };\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext, ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.mjs";
|
|
2
|
+
import type { SDLValidationContext, ValidationContext } from "../ValidationContext.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Known directives
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext, ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.js";
|
|
2
|
+
import type { SDLValidationContext, ValidationContext } from "../ValidationContext.js";
|
|
3
3
|
/**
|
|
4
4
|
* Known directives
|
|
5
5
|
*
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KnownDirectivesRule = KnownDirectivesRule;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
4
|
+
const inspect_ts_1 = require("../../jsutils/inspect.js");
|
|
5
|
+
const invariant_ts_1 = require("../../jsutils/invariant.js");
|
|
6
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
7
|
+
const ast_ts_1 = require("../../language/ast.js");
|
|
8
|
+
const directiveLocation_ts_1 = require("../../language/directiveLocation.js");
|
|
9
|
+
const kinds_ts_1 = require("../../language/kinds.js");
|
|
10
|
+
const directives_ts_1 = require("../../type/directives.js");
|
|
11
11
|
/**
|
|
12
12
|
* Known directives
|
|
13
13
|
*
|
|
@@ -21,13 +21,13 @@ function KnownDirectivesRule(context) {
|
|
|
21
21
|
const schema = context.getSchema();
|
|
22
22
|
const definedDirectives = schema
|
|
23
23
|
? schema.getDirectives()
|
|
24
|
-
:
|
|
24
|
+
: directives_ts_1.specifiedDirectives;
|
|
25
25
|
for (const directive of definedDirectives) {
|
|
26
26
|
locationsMap.set(directive.name, directive.locations);
|
|
27
27
|
}
|
|
28
28
|
const astDefinitions = context.getDocument().definitions;
|
|
29
29
|
for (const def of astDefinitions) {
|
|
30
|
-
if (def.kind ===
|
|
30
|
+
if (def.kind === kinds_ts_1.Kind.DIRECTIVE_DEFINITION) {
|
|
31
31
|
locationsMap.set(def.name.value, def.locations.map((name) => name.value));
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -36,12 +36,12 @@ function KnownDirectivesRule(context) {
|
|
|
36
36
|
const name = node.name.value;
|
|
37
37
|
const locations = locationsMap.get(name);
|
|
38
38
|
if (locations == null) {
|
|
39
|
-
context.reportError(new
|
|
39
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Unknown directive "@${name}".`, { nodes: node }));
|
|
40
40
|
return;
|
|
41
41
|
}
|
|
42
42
|
const candidateLocation = getDirectiveLocationForASTPath(ancestors);
|
|
43
43
|
if (candidateLocation != null && !locations.includes(candidateLocation)) {
|
|
44
|
-
context.reportError(new
|
|
44
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Directive "@${name}" may not be used on ${candidateLocation}.`, { nodes: node }));
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
};
|
|
@@ -49,73 +49,76 @@ function KnownDirectivesRule(context) {
|
|
|
49
49
|
function getDirectiveLocationForASTPath(ancestors) {
|
|
50
50
|
const appliedTo = ancestors.at(-1);
|
|
51
51
|
if (!(appliedTo != null && 'kind' in appliedTo))
|
|
52
|
-
(0,
|
|
52
|
+
(0, invariant_ts_1.invariant)(false);
|
|
53
53
|
switch (appliedTo.kind) {
|
|
54
|
-
case
|
|
54
|
+
case kinds_ts_1.Kind.OPERATION_DEFINITION:
|
|
55
55
|
return getDirectiveLocationForOperation(appliedTo.operation);
|
|
56
|
-
case
|
|
57
|
-
return
|
|
58
|
-
case
|
|
59
|
-
return
|
|
60
|
-
case
|
|
61
|
-
return
|
|
62
|
-
case
|
|
63
|
-
return
|
|
64
|
-
case
|
|
56
|
+
case kinds_ts_1.Kind.FIELD:
|
|
57
|
+
return directiveLocation_ts_1.DirectiveLocation.FIELD;
|
|
58
|
+
case kinds_ts_1.Kind.FRAGMENT_SPREAD:
|
|
59
|
+
return directiveLocation_ts_1.DirectiveLocation.FRAGMENT_SPREAD;
|
|
60
|
+
case kinds_ts_1.Kind.INLINE_FRAGMENT:
|
|
61
|
+
return directiveLocation_ts_1.DirectiveLocation.INLINE_FRAGMENT;
|
|
62
|
+
case kinds_ts_1.Kind.FRAGMENT_DEFINITION:
|
|
63
|
+
return directiveLocation_ts_1.DirectiveLocation.FRAGMENT_DEFINITION;
|
|
64
|
+
case kinds_ts_1.Kind.VARIABLE_DEFINITION: {
|
|
65
65
|
const parentNode = ancestors[ancestors.length - 3];
|
|
66
66
|
if (!('kind' in parentNode))
|
|
67
|
-
(0,
|
|
68
|
-
return parentNode.kind ===
|
|
69
|
-
?
|
|
70
|
-
:
|
|
67
|
+
(0, invariant_ts_1.invariant)(false);
|
|
68
|
+
return parentNode.kind === kinds_ts_1.Kind.OPERATION_DEFINITION
|
|
69
|
+
? directiveLocation_ts_1.DirectiveLocation.VARIABLE_DEFINITION
|
|
70
|
+
: directiveLocation_ts_1.DirectiveLocation.FRAGMENT_VARIABLE_DEFINITION;
|
|
71
71
|
}
|
|
72
|
-
case
|
|
73
|
-
case
|
|
74
|
-
return
|
|
75
|
-
case
|
|
76
|
-
case
|
|
77
|
-
return
|
|
78
|
-
case
|
|
79
|
-
case
|
|
80
|
-
return
|
|
81
|
-
case
|
|
82
|
-
return
|
|
83
|
-
case
|
|
84
|
-
case
|
|
85
|
-
return
|
|
86
|
-
case
|
|
87
|
-
case
|
|
88
|
-
return
|
|
89
|
-
case
|
|
90
|
-
case
|
|
91
|
-
return
|
|
92
|
-
case
|
|
93
|
-
return
|
|
94
|
-
case
|
|
95
|
-
case
|
|
96
|
-
return
|
|
97
|
-
case
|
|
72
|
+
case kinds_ts_1.Kind.SCHEMA_DEFINITION:
|
|
73
|
+
case kinds_ts_1.Kind.SCHEMA_EXTENSION:
|
|
74
|
+
return directiveLocation_ts_1.DirectiveLocation.SCHEMA;
|
|
75
|
+
case kinds_ts_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
76
|
+
case kinds_ts_1.Kind.SCALAR_TYPE_EXTENSION:
|
|
77
|
+
return directiveLocation_ts_1.DirectiveLocation.SCALAR;
|
|
78
|
+
case kinds_ts_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
79
|
+
case kinds_ts_1.Kind.OBJECT_TYPE_EXTENSION:
|
|
80
|
+
return directiveLocation_ts_1.DirectiveLocation.OBJECT;
|
|
81
|
+
case kinds_ts_1.Kind.FIELD_DEFINITION:
|
|
82
|
+
return directiveLocation_ts_1.DirectiveLocation.FIELD_DEFINITION;
|
|
83
|
+
case kinds_ts_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
84
|
+
case kinds_ts_1.Kind.INTERFACE_TYPE_EXTENSION:
|
|
85
|
+
return directiveLocation_ts_1.DirectiveLocation.INTERFACE;
|
|
86
|
+
case kinds_ts_1.Kind.UNION_TYPE_DEFINITION:
|
|
87
|
+
case kinds_ts_1.Kind.UNION_TYPE_EXTENSION:
|
|
88
|
+
return directiveLocation_ts_1.DirectiveLocation.UNION;
|
|
89
|
+
case kinds_ts_1.Kind.ENUM_TYPE_DEFINITION:
|
|
90
|
+
case kinds_ts_1.Kind.ENUM_TYPE_EXTENSION:
|
|
91
|
+
return directiveLocation_ts_1.DirectiveLocation.ENUM;
|
|
92
|
+
case kinds_ts_1.Kind.ENUM_VALUE_DEFINITION:
|
|
93
|
+
return directiveLocation_ts_1.DirectiveLocation.ENUM_VALUE;
|
|
94
|
+
case kinds_ts_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
|
95
|
+
case kinds_ts_1.Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
96
|
+
return directiveLocation_ts_1.DirectiveLocation.INPUT_OBJECT;
|
|
97
|
+
case kinds_ts_1.Kind.INPUT_VALUE_DEFINITION: {
|
|
98
98
|
const parentNode = ancestors.at(-3);
|
|
99
99
|
if (!(parentNode != null && 'kind' in parentNode))
|
|
100
|
-
(0,
|
|
101
|
-
return parentNode.kind ===
|
|
102
|
-
?
|
|
103
|
-
:
|
|
100
|
+
(0, invariant_ts_1.invariant)(false);
|
|
101
|
+
return parentNode.kind === kinds_ts_1.Kind.INPUT_OBJECT_TYPE_DEFINITION
|
|
102
|
+
? directiveLocation_ts_1.DirectiveLocation.INPUT_FIELD_DEFINITION
|
|
103
|
+
: directiveLocation_ts_1.DirectiveLocation.ARGUMENT_DEFINITION;
|
|
104
104
|
}
|
|
105
|
+
case kinds_ts_1.Kind.DIRECTIVE_DEFINITION:
|
|
106
|
+
case kinds_ts_1.Kind.DIRECTIVE_EXTENSION:
|
|
107
|
+
return directiveLocation_ts_1.DirectiveLocation.DIRECTIVE_DEFINITION;
|
|
105
108
|
// Not reachable, all possible types have been considered.
|
|
106
|
-
/*
|
|
109
|
+
/* node:coverage ignore next 2 */
|
|
107
110
|
default:
|
|
108
|
-
(0,
|
|
111
|
+
(0, invariant_ts_1.invariant)(false, 'Unexpected kind: ' + (0, inspect_ts_1.inspect)(appliedTo.kind));
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
114
|
function getDirectiveLocationForOperation(operation) {
|
|
112
115
|
switch (operation) {
|
|
113
|
-
case
|
|
114
|
-
return
|
|
115
|
-
case
|
|
116
|
-
return
|
|
117
|
-
case
|
|
118
|
-
return
|
|
116
|
+
case ast_ts_1.OperationTypeNode.QUERY:
|
|
117
|
+
return directiveLocation_ts_1.DirectiveLocation.QUERY;
|
|
118
|
+
case ast_ts_1.OperationTypeNode.MUTATION:
|
|
119
|
+
return directiveLocation_ts_1.DirectiveLocation.MUTATION;
|
|
120
|
+
case ast_ts_1.OperationTypeNode.SUBSCRIPTION:
|
|
121
|
+
return directiveLocation_ts_1.DirectiveLocation.SUBSCRIPTION;
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
//# sourceMappingURL=KnownDirectivesRule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnownDirectivesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownDirectivesRule.ts"],"names":[],"mappings":";;AA0BA,kDA8CC;AAxED,yDAAmD;AACnD,6DAAuD;AAEvD,iEAA2D;AAG3D,kDAA0D;AAC1D,8EAAwE;AACxE,sDAA+C;AAG/C,4DAA+D;AAO/D;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,OAAiD;IAEjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;QACxB,CAAC,CAAC,mCAAmB,CAAC;IACxB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,YAAY,CAAC,GAAG,CACd,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,uBAAuB,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,iBAAiB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,eAAe,IAAI,wBAAwB,iBAAiB,GAAG,EAC/D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,SAA0D;IAE1D,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;UACzB,SAAS,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS;YAAlD,wBAAS;IAET,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,eAAI,CAAC,oBAAoB;YAC5B,OAAO,gCAAgC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/D,KAAK,eAAI,CAAC,KAAK;YACb,OAAO,wCAAiB,CAAC,KAAK,CAAC;QACjC,KAAK,eAAI,CAAC,eAAe;YACvB,OAAO,wCAAiB,CAAC,eAAe,CAAC;QAC3C,KAAK,eAAI,CAAC,eAAe;YACvB,OAAO,wCAAiB,CAAC,eAAe,CAAC;QAC3C,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,wCAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,eAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;kBACzC,MAAM,IAAI,UAAU;oBAA9B,wBAAS;YACT,OAAO,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB;gBAClD,CAAC,CAAC,wCAAiB,CAAC,mBAAmB;gBACvC,CAAC,CAAC,wCAAiB,CAAC,4BAA4B,CAAC;QACrD,CAAC;QACD,KAAK,eAAI,CAAC,iBAAiB,CAAC;QAC5B,KAAK,eAAI,CAAC,gBAAgB;YACxB,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,sBAAsB,CAAC;QACjC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,sBAAsB,CAAC;QACjC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,gBAAgB;YACxB,OAAO,wCAAiB,CAAC,gBAAgB,CAAC;QAC5C,KAAK,eAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,eAAI,CAAC,wBAAwB;YAChC,OAAO,wCAAiB,CAAC,SAAS,CAAC;QACrC,KAAK,eAAI,CAAC,qBAAqB,CAAC;QAChC,KAAK,eAAI,CAAC,oBAAoB;YAC5B,OAAO,wCAAiB,CAAC,KAAK,CAAC;QACjC,KAAK,eAAI,CAAC,oBAAoB,CAAC;QAC/B,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,wCAAiB,CAAC,IAAI,CAAC;QAChC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,UAAU,CAAC;QACtC,KAAK,eAAI,CAAC,4BAA4B,CAAC;QACvC,KAAK,eAAI,CAAC,2BAA2B;YACnC,OAAO,wCAAiB,CAAC,YAAY,CAAC;QACxC,KAAK,eAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC1B,UAAU,IAAI,IAAI,IAAI,MAAM,IAAI,UAAU;oBAApD,wBAAS;YACT,OAAO,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,4BAA4B;gBAC1D,CAAC,CAAC,wCAAiB,CAAC,sBAAsB;gBAC1C,CAAC,CAAC,wCAAiB,CAAC,mBAAmB,CAAC;QAC5C,CAAC;QACD,0DAA0D;QAC1D,
|
|
1
|
+
{"version":3,"file":"KnownDirectivesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownDirectivesRule.ts"],"names":[],"mappings":";;AA0BA,kDA8CC;AAxED,yDAAmD;AACnD,6DAAuD;AAEvD,iEAA2D;AAG3D,kDAA0D;AAC1D,8EAAwE;AACxE,sDAA+C;AAG/C,4DAA+D;AAO/D;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,OAAiD;IAEjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE9D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE;QACxB,CAAC,CAAC,mCAAmB,CAAC;IACxB,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,YAAY,CAAC,GAAG,CACd,GAAG,CAAC,IAAI,CAAC,KAAK,EACd,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CAAC,uBAAuB,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,iBAAiB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,eAAe,IAAI,wBAAwB,iBAAiB,GAAG,EAC/D,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,SAA0D;IAE1D,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;UACzB,SAAS,IAAI,IAAI,IAAI,MAAM,IAAI,SAAS;YAAlD,wBAAS;IAET,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,eAAI,CAAC,oBAAoB;YAC5B,OAAO,gCAAgC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/D,KAAK,eAAI,CAAC,KAAK;YACb,OAAO,wCAAiB,CAAC,KAAK,CAAC;QACjC,KAAK,eAAI,CAAC,eAAe;YACvB,OAAO,wCAAiB,CAAC,eAAe,CAAC;QAC3C,KAAK,eAAI,CAAC,eAAe;YACvB,OAAO,wCAAiB,CAAC,eAAe,CAAC;QAC3C,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,wCAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,eAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;kBACzC,MAAM,IAAI,UAAU;oBAA9B,wBAAS;YACT,OAAO,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,oBAAoB;gBAClD,CAAC,CAAC,wCAAiB,CAAC,mBAAmB;gBACvC,CAAC,CAAC,wCAAiB,CAAC,4BAA4B,CAAC;QACrD,CAAC;QACD,KAAK,eAAI,CAAC,iBAAiB,CAAC;QAC5B,KAAK,eAAI,CAAC,gBAAgB;YACxB,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,sBAAsB,CAAC;QACjC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,sBAAsB,CAAC;QACjC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,MAAM,CAAC;QAClC,KAAK,eAAI,CAAC,gBAAgB;YACxB,OAAO,wCAAiB,CAAC,gBAAgB,CAAC;QAC5C,KAAK,eAAI,CAAC,yBAAyB,CAAC;QACpC,KAAK,eAAI,CAAC,wBAAwB;YAChC,OAAO,wCAAiB,CAAC,SAAS,CAAC;QACrC,KAAK,eAAI,CAAC,qBAAqB,CAAC;QAChC,KAAK,eAAI,CAAC,oBAAoB;YAC5B,OAAO,wCAAiB,CAAC,KAAK,CAAC;QACjC,KAAK,eAAI,CAAC,oBAAoB,CAAC;QAC/B,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,wCAAiB,CAAC,IAAI,CAAC;QAChC,KAAK,eAAI,CAAC,qBAAqB;YAC7B,OAAO,wCAAiB,CAAC,UAAU,CAAC;QACtC,KAAK,eAAI,CAAC,4BAA4B,CAAC;QACvC,KAAK,eAAI,CAAC,2BAA2B;YACnC,OAAO,wCAAiB,CAAC,YAAY,CAAC;QACxC,KAAK,eAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC1B,UAAU,IAAI,IAAI,IAAI,MAAM,IAAI,UAAU;oBAApD,wBAAS;YACT,OAAO,UAAU,CAAC,IAAI,KAAK,eAAI,CAAC,4BAA4B;gBAC1D,CAAC,CAAC,wCAAiB,CAAC,sBAAsB;gBAC1C,CAAC,CAAC,wCAAiB,CAAC,mBAAmB,CAAC;QAC5C,CAAC;QACD,KAAK,eAAI,CAAC,oBAAoB,CAAC;QAC/B,KAAK,eAAI,CAAC,mBAAmB;YAC3B,OAAO,wCAAiB,CAAC,oBAAoB,CAAC;QAChD,0DAA0D;QAC1D,iCAAiC;QACjC;YACE,IAAA,wBAAS,EAAC,KAAK,EAAE,mBAAmB,GAAG,IAAA,oBAAO,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CACvC,SAA4B;IAE5B,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,0BAAiB,CAAC,KAAK;YAC1B,OAAO,wCAAiB,CAAC,KAAK,CAAC;QACjC,KAAK,0BAAiB,CAAC,QAAQ;YAC7B,OAAO,wCAAiB,CAAC,QAAQ,CAAC;QACpC,KAAK,0BAAiB,CAAC,YAAY;YACjC,OAAO,wCAAiB,CAAC,YAAY,CAAC;IAC1C,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\nimport { invariant } from '../../jsutils/invariant.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { OperationTypeNode } from '../../language/ast.ts';\nimport { DirectiveLocation } from '../../language/directiveLocation.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known directives\n *\n * A GraphQL document is only valid if all `@directives` are known by the\n * schema and legally positioned.\n *\n * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined\n */\nexport function KnownDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const locationsMap = new Map<string, ReadonlyArray<string>>();\n\n const schema = context.getSchema();\n const definedDirectives = schema\n ? schema.getDirectives()\n : specifiedDirectives;\n for (const directive of definedDirectives) {\n locationsMap.set(directive.name, directive.locations);\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n locationsMap.set(\n def.name.value,\n def.locations.map((name) => name.value),\n );\n }\n }\n\n return {\n Directive(node, _key, _parent, _path, ancestors) {\n const name = node.name.value;\n const locations = locationsMap.get(name);\n\n if (locations == null) {\n context.reportError(\n new GraphQLError(`Unknown directive \"@${name}\".`, { nodes: node }),\n );\n return;\n }\n\n const candidateLocation = getDirectiveLocationForASTPath(ancestors);\n if (candidateLocation != null && !locations.includes(candidateLocation)) {\n context.reportError(\n new GraphQLError(\n `Directive \"@${name}\" may not be used on ${candidateLocation}.`,\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nfunction getDirectiveLocationForASTPath(\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>,\n): DirectiveLocation | undefined {\n const appliedTo = ancestors.at(-1);\n invariant(appliedTo != null && 'kind' in appliedTo);\n\n switch (appliedTo.kind) {\n case Kind.OPERATION_DEFINITION:\n return getDirectiveLocationForOperation(appliedTo.operation);\n case Kind.FIELD:\n return DirectiveLocation.FIELD;\n case Kind.FRAGMENT_SPREAD:\n return DirectiveLocation.FRAGMENT_SPREAD;\n case Kind.INLINE_FRAGMENT:\n return DirectiveLocation.INLINE_FRAGMENT;\n case Kind.FRAGMENT_DEFINITION:\n return DirectiveLocation.FRAGMENT_DEFINITION;\n case Kind.VARIABLE_DEFINITION: {\n const parentNode = ancestors[ancestors.length - 3];\n invariant('kind' in parentNode);\n return parentNode.kind === Kind.OPERATION_DEFINITION\n ? DirectiveLocation.VARIABLE_DEFINITION\n : DirectiveLocation.FRAGMENT_VARIABLE_DEFINITION;\n }\n case Kind.SCHEMA_DEFINITION:\n case Kind.SCHEMA_EXTENSION:\n return DirectiveLocation.SCHEMA;\n case Kind.SCALAR_TYPE_DEFINITION:\n case Kind.SCALAR_TYPE_EXTENSION:\n return DirectiveLocation.SCALAR;\n case Kind.OBJECT_TYPE_DEFINITION:\n case Kind.OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.OBJECT;\n case Kind.FIELD_DEFINITION:\n return DirectiveLocation.FIELD_DEFINITION;\n case Kind.INTERFACE_TYPE_DEFINITION:\n case Kind.INTERFACE_TYPE_EXTENSION:\n return DirectiveLocation.INTERFACE;\n case Kind.UNION_TYPE_DEFINITION:\n case Kind.UNION_TYPE_EXTENSION:\n return DirectiveLocation.UNION;\n case Kind.ENUM_TYPE_DEFINITION:\n case Kind.ENUM_TYPE_EXTENSION:\n return DirectiveLocation.ENUM;\n case Kind.ENUM_VALUE_DEFINITION:\n return DirectiveLocation.ENUM_VALUE;\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.INPUT_OBJECT;\n case Kind.INPUT_VALUE_DEFINITION: {\n const parentNode = ancestors.at(-3);\n invariant(parentNode != null && 'kind' in parentNode);\n return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n ? DirectiveLocation.INPUT_FIELD_DEFINITION\n : DirectiveLocation.ARGUMENT_DEFINITION;\n }\n case Kind.DIRECTIVE_DEFINITION:\n case Kind.DIRECTIVE_EXTENSION:\n return DirectiveLocation.DIRECTIVE_DEFINITION;\n // Not reachable, all possible types have been considered.\n /* node:coverage ignore next 2 */\n default:\n invariant(false, 'Unexpected kind: ' + inspect(appliedTo.kind));\n }\n}\n\nfunction getDirectiveLocationForOperation(\n operation: OperationTypeNode,\n): DirectiveLocation {\n switch (operation) {\n case OperationTypeNode.QUERY:\n return DirectiveLocation.QUERY;\n case OperationTypeNode.MUTATION:\n return DirectiveLocation.MUTATION;\n case OperationTypeNode.SUBSCRIPTION:\n return DirectiveLocation.SUBSCRIPTION;\n }\n}\n"]}
|
|
@@ -99,8 +99,11 @@ function getDirectiveLocationForASTPath(ancestors) {
|
|
|
99
99
|
? DirectiveLocation.INPUT_FIELD_DEFINITION
|
|
100
100
|
: DirectiveLocation.ARGUMENT_DEFINITION;
|
|
101
101
|
}
|
|
102
|
+
case Kind.DIRECTIVE_DEFINITION:
|
|
103
|
+
case Kind.DIRECTIVE_EXTENSION:
|
|
104
|
+
return DirectiveLocation.DIRECTIVE_DEFINITION;
|
|
102
105
|
// Not reachable, all possible types have been considered.
|
|
103
|
-
/*
|
|
106
|
+
/* node:coverage ignore next 2 */
|
|
104
107
|
default:
|
|
105
108
|
invariant(false, 'Unexpected kind: ' + inspect(appliedTo.kind));
|
|
106
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnownDirectivesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownDirectivesRule.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"KnownDirectivesRule.js","sourceRoot":"","sources":["../../../src/validation/rules/KnownDirectivesRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\nimport { invariant } from '../../jsutils/invariant.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTNode } from '../../language/ast.ts';\nimport { OperationTypeNode } from '../../language/ast.ts';\nimport { DirectiveLocation } from '../../language/directiveLocation.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Known directives\n *\n * A GraphQL document is only valid if all `@directives` are known by the\n * schema and legally positioned.\n *\n * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined\n */\nexport function KnownDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const locationsMap = new Map<string, ReadonlyArray<string>>();\n\n const schema = context.getSchema();\n const definedDirectives = schema\n ? schema.getDirectives()\n : specifiedDirectives;\n for (const directive of definedDirectives) {\n locationsMap.set(directive.name, directive.locations);\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n locationsMap.set(\n def.name.value,\n def.locations.map((name) => name.value),\n );\n }\n }\n\n return {\n Directive(node, _key, _parent, _path, ancestors) {\n const name = node.name.value;\n const locations = locationsMap.get(name);\n\n if (locations == null) {\n context.reportError(\n new GraphQLError(`Unknown directive \"@${name}\".`, { nodes: node }),\n );\n return;\n }\n\n const candidateLocation = getDirectiveLocationForASTPath(ancestors);\n if (candidateLocation != null && !locations.includes(candidateLocation)) {\n context.reportError(\n new GraphQLError(\n `Directive \"@${name}\" may not be used on ${candidateLocation}.`,\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nfunction getDirectiveLocationForASTPath(\n ancestors: ReadonlyArray<ASTNode | ReadonlyArray<ASTNode>>,\n): DirectiveLocation | undefined {\n const appliedTo = ancestors.at(-1);\n invariant(appliedTo != null && 'kind' in appliedTo);\n\n switch (appliedTo.kind) {\n case Kind.OPERATION_DEFINITION:\n return getDirectiveLocationForOperation(appliedTo.operation);\n case Kind.FIELD:\n return DirectiveLocation.FIELD;\n case Kind.FRAGMENT_SPREAD:\n return DirectiveLocation.FRAGMENT_SPREAD;\n case Kind.INLINE_FRAGMENT:\n return DirectiveLocation.INLINE_FRAGMENT;\n case Kind.FRAGMENT_DEFINITION:\n return DirectiveLocation.FRAGMENT_DEFINITION;\n case Kind.VARIABLE_DEFINITION: {\n const parentNode = ancestors[ancestors.length - 3];\n invariant('kind' in parentNode);\n return parentNode.kind === Kind.OPERATION_DEFINITION\n ? DirectiveLocation.VARIABLE_DEFINITION\n : DirectiveLocation.FRAGMENT_VARIABLE_DEFINITION;\n }\n case Kind.SCHEMA_DEFINITION:\n case Kind.SCHEMA_EXTENSION:\n return DirectiveLocation.SCHEMA;\n case Kind.SCALAR_TYPE_DEFINITION:\n case Kind.SCALAR_TYPE_EXTENSION:\n return DirectiveLocation.SCALAR;\n case Kind.OBJECT_TYPE_DEFINITION:\n case Kind.OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.OBJECT;\n case Kind.FIELD_DEFINITION:\n return DirectiveLocation.FIELD_DEFINITION;\n case Kind.INTERFACE_TYPE_DEFINITION:\n case Kind.INTERFACE_TYPE_EXTENSION:\n return DirectiveLocation.INTERFACE;\n case Kind.UNION_TYPE_DEFINITION:\n case Kind.UNION_TYPE_EXTENSION:\n return DirectiveLocation.UNION;\n case Kind.ENUM_TYPE_DEFINITION:\n case Kind.ENUM_TYPE_EXTENSION:\n return DirectiveLocation.ENUM;\n case Kind.ENUM_VALUE_DEFINITION:\n return DirectiveLocation.ENUM_VALUE;\n case Kind.INPUT_OBJECT_TYPE_DEFINITION:\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return DirectiveLocation.INPUT_OBJECT;\n case Kind.INPUT_VALUE_DEFINITION: {\n const parentNode = ancestors.at(-3);\n invariant(parentNode != null && 'kind' in parentNode);\n return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n ? DirectiveLocation.INPUT_FIELD_DEFINITION\n : DirectiveLocation.ARGUMENT_DEFINITION;\n }\n case Kind.DIRECTIVE_DEFINITION:\n case Kind.DIRECTIVE_EXTENSION:\n return DirectiveLocation.DIRECTIVE_DEFINITION;\n // Not reachable, all possible types have been considered.\n /* node:coverage ignore next 2 */\n default:\n invariant(false, 'Unexpected kind: ' + inspect(appliedTo.kind));\n }\n}\n\nfunction getDirectiveLocationForOperation(\n operation: OperationTypeNode,\n): DirectiveLocation {\n switch (operation) {\n case OperationTypeNode.QUERY:\n return DirectiveLocation.QUERY;\n case OperationTypeNode.MUTATION:\n return DirectiveLocation.MUTATION;\n case OperationTypeNode.SUBSCRIPTION:\n return DirectiveLocation.SUBSCRIPTION;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.mjs";
|
|
2
|
+
import type { ValidationContext } from "../ValidationContext.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Known fragment names
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { ValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.js";
|
|
2
|
+
import type { ValidationContext } from "../ValidationContext.js";
|
|
3
3
|
/**
|
|
4
4
|
* Known fragment names
|
|
5
5
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KnownFragmentNamesRule = KnownFragmentNamesRule;
|
|
4
|
-
const
|
|
4
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
5
5
|
/**
|
|
6
6
|
* Known fragment names
|
|
7
7
|
*
|
|
@@ -16,7 +16,7 @@ function KnownFragmentNamesRule(context) {
|
|
|
16
16
|
const fragmentName = node.name.value;
|
|
17
17
|
const fragment = context.getFragment(fragmentName);
|
|
18
18
|
if (!fragment) {
|
|
19
|
-
context.reportError(new
|
|
19
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Unknown fragment "${fragmentName}".`, {
|
|
20
20
|
nodes: node.name,
|
|
21
21
|
}));
|
|
22
22
|
}
|