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,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PossibleFragmentSpreadsRule = PossibleFragmentSpreadsRule;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
4
|
+
const inspect_ts_1 = require("../../jsutils/inspect.js");
|
|
5
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
6
|
+
const definition_ts_1 = require("../../type/definition.js");
|
|
7
|
+
const typeComparators_ts_1 = require("../../utilities/typeComparators.js");
|
|
8
|
+
const typeFromAST_ts_1 = require("../../utilities/typeFromAST.js");
|
|
9
9
|
/**
|
|
10
10
|
* Possible fragment spread
|
|
11
11
|
*
|
|
@@ -18,12 +18,12 @@ function PossibleFragmentSpreadsRule(context) {
|
|
|
18
18
|
InlineFragment(node) {
|
|
19
19
|
const fragType = context.getType();
|
|
20
20
|
const parentType = context.getParentType();
|
|
21
|
-
if ((0,
|
|
22
|
-
(0,
|
|
23
|
-
!(0,
|
|
24
|
-
const parentTypeStr = (0,
|
|
25
|
-
const fragTypeStr = (0,
|
|
26
|
-
context.reportError(new
|
|
21
|
+
if ((0, definition_ts_1.isCompositeType)(fragType) &&
|
|
22
|
+
(0, definition_ts_1.isCompositeType)(parentType) &&
|
|
23
|
+
!(0, typeComparators_ts_1.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
|
|
24
|
+
const parentTypeStr = (0, inspect_ts_1.inspect)(parentType);
|
|
25
|
+
const fragTypeStr = (0, inspect_ts_1.inspect)(fragType);
|
|
26
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Fragment cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, { nodes: node }));
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
FragmentSpread(node) {
|
|
@@ -32,10 +32,10 @@ function PossibleFragmentSpreadsRule(context) {
|
|
|
32
32
|
const parentType = context.getParentType();
|
|
33
33
|
if (fragType &&
|
|
34
34
|
parentType &&
|
|
35
|
-
!(0,
|
|
36
|
-
const parentTypeStr = (0,
|
|
37
|
-
const fragTypeStr = (0,
|
|
38
|
-
context.reportError(new
|
|
35
|
+
!(0, typeComparators_ts_1.doTypesOverlap)(context.getSchema(), fragType, parentType)) {
|
|
36
|
+
const parentTypeStr = (0, inspect_ts_1.inspect)(parentType);
|
|
37
|
+
const fragTypeStr = (0, inspect_ts_1.inspect)(fragType);
|
|
38
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Fragment "${fragName}" cannot be spread here as objects of type "${parentTypeStr}" can never be of type "${fragTypeStr}".`, { nodes: node }));
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
};
|
|
@@ -43,8 +43,8 @@ function PossibleFragmentSpreadsRule(context) {
|
|
|
43
43
|
function getFragmentType(context, name) {
|
|
44
44
|
const frag = context.getFragment(name);
|
|
45
45
|
if (frag) {
|
|
46
|
-
const type = (0,
|
|
47
|
-
if ((0,
|
|
46
|
+
const type = (0, typeFromAST_ts_1.typeFromAST)(context.getSchema(), frag.typeCondition);
|
|
47
|
+
if ((0, definition_ts_1.isCompositeType)(type)) {
|
|
48
48
|
return type;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PossibleFragmentSpreadsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleFragmentSpreadsRule.ts"],"names":[],"mappings":";;AAsBA,kEA0CC;AAhED,yDAAmD;AAGnD,iEAA2D;AAK3D,4DAA2D;AAE3D,2EAAoE;AACpE,mEAA6D;AAI7D;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,IAAA,+BAAe,EAAC,QAAQ,CAAC;gBACzB,IAAA,+BAAe,EAAC,UAAU,CAAC;gBAC3B,CAAC,IAAA,mCAAc,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAA,oBAAO,EAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAA,oBAAO,EAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,sDAAsD,aAAa,2BAA2B,WAAW,IAAI,EAC7G,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,QAAQ;gBACR,UAAU;gBACV,CAAC,IAAA,mCAAc,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAA,oBAAO,EAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAA,oBAAO,EAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,aAAa,QAAQ,+CAA+C,aAAa,2BAA2B,WAAW,IAAI,EAC3H,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAA0B,EAC1B,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../../jsutils/inspect.
|
|
1
|
+
{"version":3,"file":"PossibleFragmentSpreadsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleFragmentSpreadsRule.ts"],"names":[],"mappings":";;AAsBA,kEA0CC;AAhED,yDAAmD;AAGnD,iEAA2D;AAK3D,4DAA2D;AAE3D,2EAAoE;AACpE,mEAA6D;AAI7D;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,IAAA,+BAAe,EAAC,QAAQ,CAAC;gBACzB,IAAA,+BAAe,EAAC,UAAU,CAAC;gBAC3B,CAAC,IAAA,mCAAc,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAA,oBAAO,EAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAA,oBAAO,EAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,sDAAsD,aAAa,2BAA2B,WAAW,IAAI,EAC7G,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,QAAQ;gBACR,UAAU;gBACV,CAAC,IAAA,mCAAc,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAA,oBAAO,EAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,IAAA,oBAAO,EAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,8BAAY,CACd,aAAa,QAAQ,+CAA+C,aAAa,2BAA2B,WAAW,IAAI,EAC3H,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAA0B,EAC1B,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\nimport type { Maybe } from '../../jsutils/Maybe.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLCompositeType } from '../../type/definition.ts';\nimport { isCompositeType } from '../../type/definition.ts';\n\nimport { doTypesOverlap } from '../../utilities/typeComparators.ts';\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type { ValidationContext } from '../ValidationContext.ts';\n\n/**\n * Possible fragment spread\n *\n * A fragment spread is only valid if the type condition could ever possibly\n * be true: if there is a non-empty intersection of the possible parent types,\n * and possible types which pass the type condition.\n */\nexport function PossibleFragmentSpreadsRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n InlineFragment(node) {\n const fragType = context.getType();\n const parentType = context.getParentType();\n if (\n isCompositeType(fragType) &&\n isCompositeType(parentType) &&\n !doTypesOverlap(context.getSchema(), fragType, parentType)\n ) {\n const parentTypeStr = inspect(parentType);\n const fragTypeStr = inspect(fragType);\n context.reportError(\n new GraphQLError(\n `Fragment cannot be spread here as objects of type \"${parentTypeStr}\" can never be of type \"${fragTypeStr}\".`,\n { nodes: node },\n ),\n );\n }\n },\n FragmentSpread(node) {\n const fragName = node.name.value;\n const fragType = getFragmentType(context, fragName);\n const parentType = context.getParentType();\n if (\n fragType &&\n parentType &&\n !doTypesOverlap(context.getSchema(), fragType, parentType)\n ) {\n const parentTypeStr = inspect(parentType);\n const fragTypeStr = inspect(fragType);\n context.reportError(\n new GraphQLError(\n `Fragment \"${fragName}\" cannot be spread here as objects of type \"${parentTypeStr}\" can never be of type \"${fragTypeStr}\".`,\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nfunction getFragmentType(\n context: ValidationContext,\n name: string,\n): Maybe<GraphQLCompositeType> {\n const frag = context.getFragment(name);\n if (frag) {\n const type = typeFromAST(context.getSchema(), frag.typeCondition);\n if (isCompositeType(type)) {\n return type;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PossibleFragmentSpreadsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleFragmentSpreadsRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kCAAiC;AAGnD,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAK3D,OAAO,EAAE,eAAe,EAAE,kCAAiC;AAE3D,OAAO,EAAE,cAAc,EAAE,4CAA2C;AACpE,OAAO,EAAE,WAAW,EAAE,wCAAuC;AAI7D;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,eAAe,CAAC,QAAQ,CAAC;gBACzB,eAAe,CAAC,UAAU,CAAC;gBAC3B,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,sDAAsD,aAAa,2BAA2B,WAAW,IAAI,EAC7G,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,QAAQ;gBACR,UAAU;gBACV,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,aAAa,QAAQ,+CAA+C,aAAa,2BAA2B,WAAW,IAAI,EAC3H,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAA0B,EAC1B,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../../jsutils/inspect.
|
|
1
|
+
{"version":3,"file":"PossibleFragmentSpreadsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleFragmentSpreadsRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kCAAiC;AAGnD,OAAO,EAAE,YAAY,EAAE,qCAAoC;AAK3D,OAAO,EAAE,eAAe,EAAE,kCAAiC;AAE3D,OAAO,EAAE,cAAc,EAAE,4CAA2C;AACpE,OAAO,EAAE,WAAW,EAAE,wCAAuC;AAI7D;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA0B;IAE1B,OAAO;QACL,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,eAAe,CAAC,QAAQ,CAAC;gBACzB,eAAe,CAAC,UAAU,CAAC;gBAC3B,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,sDAAsD,aAAa,2BAA2B,WAAW,IAAI,EAC7G,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,IACE,QAAQ;gBACR,UAAU;gBACV,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1D,CAAC;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,CAAC,WAAW,CACjB,IAAI,YAAY,CACd,aAAa,QAAQ,+CAA+C,aAAa,2BAA2B,WAAW,IAAI,EAC3H,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAA0B,EAC1B,IAAY;IAEZ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\nimport type { Maybe } from '../../jsutils/Maybe.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLCompositeType } from '../../type/definition.ts';\nimport { isCompositeType } from '../../type/definition.ts';\n\nimport { doTypesOverlap } from '../../utilities/typeComparators.ts';\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type { ValidationContext } from '../ValidationContext.ts';\n\n/**\n * Possible fragment spread\n *\n * A fragment spread is only valid if the type condition could ever possibly\n * be true: if there is a non-empty intersection of the possible parent types,\n * and possible types which pass the type condition.\n */\nexport function PossibleFragmentSpreadsRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n InlineFragment(node) {\n const fragType = context.getType();\n const parentType = context.getParentType();\n if (\n isCompositeType(fragType) &&\n isCompositeType(parentType) &&\n !doTypesOverlap(context.getSchema(), fragType, parentType)\n ) {\n const parentTypeStr = inspect(parentType);\n const fragTypeStr = inspect(fragType);\n context.reportError(\n new GraphQLError(\n `Fragment cannot be spread here as objects of type \"${parentTypeStr}\" can never be of type \"${fragTypeStr}\".`,\n { nodes: node },\n ),\n );\n }\n },\n FragmentSpread(node) {\n const fragName = node.name.value;\n const fragType = getFragmentType(context, fragName);\n const parentType = context.getParentType();\n if (\n fragType &&\n parentType &&\n !doTypesOverlap(context.getSchema(), fragType, parentType)\n ) {\n const parentTypeStr = inspect(parentType);\n const fragTypeStr = inspect(fragType);\n context.reportError(\n new GraphQLError(\n `Fragment \"${fragName}\" cannot be spread here as objects of type \"${parentTypeStr}\" can never be of type \"${fragTypeStr}\".`,\n { nodes: node },\n ),\n );\n }\n },\n };\n}\n\nfunction getFragmentType(\n context: ValidationContext,\n name: string,\n): Maybe<GraphQLCompositeType> {\n const frag = context.getFragment(name);\n if (frag) {\n const type = typeFromAST(context.getSchema(), frag.typeCondition);\n if (isCompositeType(type)) {\n return type;\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.mjs";
|
|
2
|
+
import type { SDLValidationContext } from "../ValidationContext.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Possible type extension
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ASTVisitor } from
|
|
2
|
-
import type { SDLValidationContext } from
|
|
1
|
+
import type { ASTVisitor } from "../../language/visitor.js";
|
|
2
|
+
import type { SDLValidationContext } from "../ValidationContext.js";
|
|
3
3
|
/**
|
|
4
4
|
* Possible type extension
|
|
5
5
|
*
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PossibleTypeExtensionsRule = PossibleTypeExtensionsRule;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
4
|
+
const didYouMean_ts_1 = require("../../jsutils/didYouMean.js");
|
|
5
|
+
const inspect_ts_1 = require("../../jsutils/inspect.js");
|
|
6
|
+
const invariant_ts_1 = require("../../jsutils/invariant.js");
|
|
7
|
+
const suggestionList_ts_1 = require("../../jsutils/suggestionList.js");
|
|
8
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
9
|
+
const kinds_ts_1 = require("../../language/kinds.js");
|
|
10
|
+
const predicates_ts_1 = require("../../language/predicates.js");
|
|
11
|
+
const definition_ts_1 = require("../../type/definition.js");
|
|
12
12
|
/**
|
|
13
13
|
* Possible type extension
|
|
14
14
|
*
|
|
@@ -18,7 +18,7 @@ function PossibleTypeExtensionsRule(context) {
|
|
|
18
18
|
const schema = context.getSchema();
|
|
19
19
|
const definedTypes = new Map();
|
|
20
20
|
for (const def of context.getDocument().definitions) {
|
|
21
|
-
if ((0,
|
|
21
|
+
if ((0, predicates_ts_1.isTypeDefinitionNode)(def)) {
|
|
22
22
|
definedTypes.set(def.name.value, def);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -44,7 +44,7 @@ function PossibleTypeExtensionsRule(context) {
|
|
|
44
44
|
if (expectedKind != null) {
|
|
45
45
|
if (expectedKind !== node.kind) {
|
|
46
46
|
const kindStr = extensionKindToTypeName(node.kind);
|
|
47
|
-
context.reportError(new
|
|
47
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Cannot extend non-${kindStr} type "${typeName}".`, {
|
|
48
48
|
nodes: defNode ? [defNode, node] : node,
|
|
49
49
|
}));
|
|
50
50
|
}
|
|
@@ -54,62 +54,60 @@ function PossibleTypeExtensionsRule(context) {
|
|
|
54
54
|
...definedTypes.keys(),
|
|
55
55
|
...Object.keys(schema?.getTypeMap() ?? {}),
|
|
56
56
|
];
|
|
57
|
-
context.reportError(new
|
|
58
|
-
(0,
|
|
57
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Cannot extend type "${typeName}" because it is not defined.` +
|
|
58
|
+
(0, didYouMean_ts_1.didYouMean)((0, suggestionList_ts_1.suggestionList)(typeName, allTypeNames)), { nodes: node.name }));
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
const defKindToExtKind = {
|
|
63
|
-
[
|
|
64
|
-
[
|
|
65
|
-
[
|
|
66
|
-
[
|
|
67
|
-
[
|
|
68
|
-
[
|
|
63
|
+
[kinds_ts_1.Kind.SCALAR_TYPE_DEFINITION]: kinds_ts_1.Kind.SCALAR_TYPE_EXTENSION,
|
|
64
|
+
[kinds_ts_1.Kind.OBJECT_TYPE_DEFINITION]: kinds_ts_1.Kind.OBJECT_TYPE_EXTENSION,
|
|
65
|
+
[kinds_ts_1.Kind.INTERFACE_TYPE_DEFINITION]: kinds_ts_1.Kind.INTERFACE_TYPE_EXTENSION,
|
|
66
|
+
[kinds_ts_1.Kind.UNION_TYPE_DEFINITION]: kinds_ts_1.Kind.UNION_TYPE_EXTENSION,
|
|
67
|
+
[kinds_ts_1.Kind.ENUM_TYPE_DEFINITION]: kinds_ts_1.Kind.ENUM_TYPE_EXTENSION,
|
|
68
|
+
[kinds_ts_1.Kind.INPUT_OBJECT_TYPE_DEFINITION]: kinds_ts_1.Kind.INPUT_OBJECT_TYPE_EXTENSION,
|
|
69
69
|
};
|
|
70
70
|
function typeToExtKind(type) {
|
|
71
|
-
if ((0,
|
|
72
|
-
return
|
|
71
|
+
if ((0, definition_ts_1.isScalarType)(type)) {
|
|
72
|
+
return kinds_ts_1.Kind.SCALAR_TYPE_EXTENSION;
|
|
73
73
|
}
|
|
74
|
-
if ((0,
|
|
75
|
-
return
|
|
74
|
+
if ((0, definition_ts_1.isObjectType)(type)) {
|
|
75
|
+
return kinds_ts_1.Kind.OBJECT_TYPE_EXTENSION;
|
|
76
76
|
}
|
|
77
|
-
if ((0,
|
|
78
|
-
return
|
|
77
|
+
if ((0, definition_ts_1.isInterfaceType)(type)) {
|
|
78
|
+
return kinds_ts_1.Kind.INTERFACE_TYPE_EXTENSION;
|
|
79
79
|
}
|
|
80
|
-
if ((0,
|
|
81
|
-
return
|
|
80
|
+
if ((0, definition_ts_1.isUnionType)(type)) {
|
|
81
|
+
return kinds_ts_1.Kind.UNION_TYPE_EXTENSION;
|
|
82
82
|
}
|
|
83
|
-
if ((0,
|
|
84
|
-
return
|
|
83
|
+
if ((0, definition_ts_1.isEnumType)(type)) {
|
|
84
|
+
return kinds_ts_1.Kind.ENUM_TYPE_EXTENSION;
|
|
85
85
|
}
|
|
86
|
-
if ((0,
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
// slight swc source mapping error (at least as compared to ts-node without swc)
|
|
90
|
-
/* c8 ignore next 4 */
|
|
86
|
+
if ((0, definition_ts_1.isInputObjectType)(type)) {
|
|
87
|
+
return kinds_ts_1.Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
88
|
+
/* node:coverage ignore next 4 */
|
|
91
89
|
}
|
|
92
90
|
// Not reachable. All possible types have been considered
|
|
93
|
-
(0,
|
|
91
|
+
(0, invariant_ts_1.invariant)(false, 'Unexpected type: ' + (0, inspect_ts_1.inspect)(type));
|
|
94
92
|
}
|
|
95
93
|
function extensionKindToTypeName(kind) {
|
|
96
94
|
switch (kind) {
|
|
97
|
-
case
|
|
95
|
+
case kinds_ts_1.Kind.SCALAR_TYPE_EXTENSION:
|
|
98
96
|
return 'scalar';
|
|
99
|
-
case
|
|
97
|
+
case kinds_ts_1.Kind.OBJECT_TYPE_EXTENSION:
|
|
100
98
|
return 'object';
|
|
101
|
-
case
|
|
99
|
+
case kinds_ts_1.Kind.INTERFACE_TYPE_EXTENSION:
|
|
102
100
|
return 'interface';
|
|
103
|
-
case
|
|
101
|
+
case kinds_ts_1.Kind.UNION_TYPE_EXTENSION:
|
|
104
102
|
return 'union';
|
|
105
|
-
case
|
|
103
|
+
case kinds_ts_1.Kind.ENUM_TYPE_EXTENSION:
|
|
106
104
|
return 'enum';
|
|
107
|
-
case
|
|
105
|
+
case kinds_ts_1.Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
108
106
|
return 'input object';
|
|
109
107
|
// Not reachable. All possible types have been considered
|
|
110
|
-
/*
|
|
108
|
+
/* node:coverage ignore next 2 */
|
|
111
109
|
default:
|
|
112
|
-
(0,
|
|
110
|
+
(0, invariant_ts_1.invariant)(false, 'Unexpected kind: ' + (0, inspect_ts_1.inspect)(kind));
|
|
113
111
|
}
|
|
114
112
|
}
|
|
115
113
|
//# sourceMappingURL=PossibleTypeExtensionsRule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PossibleTypeExtensionsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleTypeExtensionsRule.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PossibleTypeExtensionsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleTypeExtensionsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { inspect } from '../../jsutils/inspect.ts';\nimport { invariant } from '../../jsutils/invariant.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type {\n TypeDefinitionNode,\n TypeExtensionNode,\n} from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport { isTypeDefinitionNode } from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLNamedType } from '../../type/definition.ts';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n isScalarType,\n isUnionType,\n} from '../../type/definition.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Possible type extension\n *\n * A type extension is only valid if the type is defined and has the same kind.\n */\nexport function PossibleTypeExtensionsRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const schema = context.getSchema();\n const definedTypes = new Map<string, TypeDefinitionNode>();\n\n for (const def of context.getDocument().definitions) {\n if (isTypeDefinitionNode(def)) {\n definedTypes.set(def.name.value, def);\n }\n }\n\n return {\n ScalarTypeExtension: checkExtension,\n ObjectTypeExtension: checkExtension,\n InterfaceTypeExtension: checkExtension,\n UnionTypeExtension: checkExtension,\n EnumTypeExtension: checkExtension,\n InputObjectTypeExtension: checkExtension,\n };\n\n function checkExtension(node: TypeExtensionNode): void {\n const typeName = node.name.value;\n const defNode = definedTypes.get(typeName);\n const existingType = schema?.getType(typeName);\n\n let expectedKind: Kind | undefined;\n if (defNode != null) {\n expectedKind = defKindToExtKind[defNode.kind];\n } else if (existingType) {\n expectedKind = typeToExtKind(existingType);\n }\n\n if (expectedKind != null) {\n if (expectedKind !== node.kind) {\n const kindStr = extensionKindToTypeName(node.kind);\n context.reportError(\n new GraphQLError(`Cannot extend non-${kindStr} type \"${typeName}\".`, {\n nodes: defNode ? [defNode, node] : node,\n }),\n );\n }\n } else {\n const allTypeNames = [\n ...definedTypes.keys(),\n ...Object.keys(schema?.getTypeMap() ?? {}),\n ];\n\n context.reportError(\n new GraphQLError(\n `Cannot extend type \"${typeName}\" because it is not defined.` +\n didYouMean(suggestionList(typeName, allTypeNames)),\n { nodes: node.name },\n ),\n );\n }\n }\n}\n\nconst defKindToExtKind = {\n [Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION,\n [Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION,\n [Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION,\n [Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION,\n [Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION,\n [Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n} as const;\n\nfunction typeToExtKind(type: GraphQLNamedType): Kind {\n if (isScalarType(type)) {\n return Kind.SCALAR_TYPE_EXTENSION;\n }\n if (isObjectType(type)) {\n return Kind.OBJECT_TYPE_EXTENSION;\n }\n if (isInterfaceType(type)) {\n return Kind.INTERFACE_TYPE_EXTENSION;\n }\n if (isUnionType(type)) {\n return Kind.UNION_TYPE_EXTENSION;\n }\n if (isEnumType(type)) {\n return Kind.ENUM_TYPE_EXTENSION;\n }\n if (isInputObjectType(type)) {\n return Kind.INPUT_OBJECT_TYPE_EXTENSION;\n /* node:coverage ignore next 4 */\n }\n // Not reachable. All possible types have been considered\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\nfunction extensionKindToTypeName(kind: Kind): string {\n switch (kind) {\n case Kind.SCALAR_TYPE_EXTENSION:\n return 'scalar';\n case Kind.OBJECT_TYPE_EXTENSION:\n return 'object';\n case Kind.INTERFACE_TYPE_EXTENSION:\n return 'interface';\n case Kind.UNION_TYPE_EXTENSION:\n return 'union';\n case Kind.ENUM_TYPE_EXTENSION:\n return 'enum';\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return 'input object';\n // Not reachable. All possible types have been considered\n /* node:coverage ignore next 2 */\n default:\n invariant(false, 'Unexpected kind: ' + inspect(kind));\n }\n}\n"]}
|
|
@@ -82,9 +82,7 @@ function typeToExtKind(type) {
|
|
|
82
82
|
}
|
|
83
83
|
if (isInputObjectType(type)) {
|
|
84
84
|
return Kind.INPUT_OBJECT_TYPE_EXTENSION;
|
|
85
|
-
|
|
86
|
-
// slight swc source mapping error (at least as compared to ts-node without swc)
|
|
87
|
-
/* c8 ignore next 4 */
|
|
85
|
+
/* node:coverage ignore next 4 */
|
|
88
86
|
}
|
|
89
87
|
// Not reachable. All possible types have been considered
|
|
90
88
|
invariant(false, 'Unexpected type: ' + inspect(type));
|
|
@@ -104,7 +102,7 @@ function extensionKindToTypeName(kind) {
|
|
|
104
102
|
case Kind.INPUT_OBJECT_TYPE_EXTENSION:
|
|
105
103
|
return 'input object';
|
|
106
104
|
// Not reachable. All possible types have been considered
|
|
107
|
-
/*
|
|
105
|
+
/* node:coverage ignore next 2 */
|
|
108
106
|
default:
|
|
109
107
|
invariant(false, 'Unexpected kind: ' + inspect(kind));
|
|
110
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PossibleTypeExtensionsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleTypeExtensionsRule.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PossibleTypeExtensionsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/PossibleTypeExtensionsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../../jsutils/didYouMean.ts';\nimport { inspect } from '../../jsutils/inspect.ts';\nimport { invariant } from '../../jsutils/invariant.ts';\nimport { suggestionList } from '../../jsutils/suggestionList.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type {\n TypeDefinitionNode,\n TypeExtensionNode,\n} from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport { isTypeDefinitionNode } from '../../language/predicates.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLNamedType } from '../../type/definition.ts';\nimport {\n isEnumType,\n isInputObjectType,\n isInterfaceType,\n isObjectType,\n isScalarType,\n isUnionType,\n} from '../../type/definition.ts';\n\nimport type { SDLValidationContext } from '../ValidationContext.ts';\n\n/**\n * Possible type extension\n *\n * A type extension is only valid if the type is defined and has the same kind.\n */\nexport function PossibleTypeExtensionsRule(\n context: SDLValidationContext,\n): ASTVisitor {\n const schema = context.getSchema();\n const definedTypes = new Map<string, TypeDefinitionNode>();\n\n for (const def of context.getDocument().definitions) {\n if (isTypeDefinitionNode(def)) {\n definedTypes.set(def.name.value, def);\n }\n }\n\n return {\n ScalarTypeExtension: checkExtension,\n ObjectTypeExtension: checkExtension,\n InterfaceTypeExtension: checkExtension,\n UnionTypeExtension: checkExtension,\n EnumTypeExtension: checkExtension,\n InputObjectTypeExtension: checkExtension,\n };\n\n function checkExtension(node: TypeExtensionNode): void {\n const typeName = node.name.value;\n const defNode = definedTypes.get(typeName);\n const existingType = schema?.getType(typeName);\n\n let expectedKind: Kind | undefined;\n if (defNode != null) {\n expectedKind = defKindToExtKind[defNode.kind];\n } else if (existingType) {\n expectedKind = typeToExtKind(existingType);\n }\n\n if (expectedKind != null) {\n if (expectedKind !== node.kind) {\n const kindStr = extensionKindToTypeName(node.kind);\n context.reportError(\n new GraphQLError(`Cannot extend non-${kindStr} type \"${typeName}\".`, {\n nodes: defNode ? [defNode, node] : node,\n }),\n );\n }\n } else {\n const allTypeNames = [\n ...definedTypes.keys(),\n ...Object.keys(schema?.getTypeMap() ?? {}),\n ];\n\n context.reportError(\n new GraphQLError(\n `Cannot extend type \"${typeName}\" because it is not defined.` +\n didYouMean(suggestionList(typeName, allTypeNames)),\n { nodes: node.name },\n ),\n );\n }\n }\n}\n\nconst defKindToExtKind = {\n [Kind.SCALAR_TYPE_DEFINITION]: Kind.SCALAR_TYPE_EXTENSION,\n [Kind.OBJECT_TYPE_DEFINITION]: Kind.OBJECT_TYPE_EXTENSION,\n [Kind.INTERFACE_TYPE_DEFINITION]: Kind.INTERFACE_TYPE_EXTENSION,\n [Kind.UNION_TYPE_DEFINITION]: Kind.UNION_TYPE_EXTENSION,\n [Kind.ENUM_TYPE_DEFINITION]: Kind.ENUM_TYPE_EXTENSION,\n [Kind.INPUT_OBJECT_TYPE_DEFINITION]: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n} as const;\n\nfunction typeToExtKind(type: GraphQLNamedType): Kind {\n if (isScalarType(type)) {\n return Kind.SCALAR_TYPE_EXTENSION;\n }\n if (isObjectType(type)) {\n return Kind.OBJECT_TYPE_EXTENSION;\n }\n if (isInterfaceType(type)) {\n return Kind.INTERFACE_TYPE_EXTENSION;\n }\n if (isUnionType(type)) {\n return Kind.UNION_TYPE_EXTENSION;\n }\n if (isEnumType(type)) {\n return Kind.ENUM_TYPE_EXTENSION;\n }\n if (isInputObjectType(type)) {\n return Kind.INPUT_OBJECT_TYPE_EXTENSION;\n /* node:coverage ignore next 4 */\n }\n // Not reachable. All possible types have been considered\n invariant(false, 'Unexpected type: ' + inspect(type));\n}\n\nfunction extensionKindToTypeName(kind: Kind): string {\n switch (kind) {\n case Kind.SCALAR_TYPE_EXTENSION:\n return 'scalar';\n case Kind.OBJECT_TYPE_EXTENSION:\n return 'object';\n case Kind.INTERFACE_TYPE_EXTENSION:\n return 'interface';\n case Kind.UNION_TYPE_EXTENSION:\n return 'union';\n case Kind.ENUM_TYPE_EXTENSION:\n return 'enum';\n case Kind.INPUT_OBJECT_TYPE_EXTENSION:\n return 'input object';\n // Not reachable. All possible types have been considered\n /* node:coverage ignore next 2 */\n default:\n invariant(false, 'Unexpected kind: ' + inspect(kind));\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
|
* Provided required arguments
|
|
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
|
* Provided required arguments
|
|
5
5
|
*
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProvidedRequiredArgumentsRule = ProvidedRequiredArgumentsRule;
|
|
4
4
|
exports.ProvidedRequiredArgumentsOnDirectivesRule = ProvidedRequiredArgumentsOnDirectivesRule;
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
5
|
+
const inspect_ts_1 = require("../../jsutils/inspect.js");
|
|
6
|
+
const GraphQLError_ts_1 = require("../../error/GraphQLError.js");
|
|
7
|
+
const kinds_ts_1 = require("../../language/kinds.js");
|
|
8
|
+
const printer_ts_1 = require("../../language/printer.js");
|
|
9
|
+
const definition_ts_1 = require("../../type/definition.js");
|
|
10
|
+
const directives_ts_1 = require("../../type/directives.js");
|
|
11
|
+
const typeFromAST_ts_1 = require("../../utilities/typeFromAST.js");
|
|
12
12
|
/**
|
|
13
13
|
* Provided required arguments
|
|
14
14
|
*
|
|
@@ -28,8 +28,8 @@ function ProvidedRequiredArgumentsRule(context) {
|
|
|
28
28
|
}
|
|
29
29
|
const providedArgs = new Set(fieldNode.arguments?.map((arg) => arg.name.value));
|
|
30
30
|
for (const argDef of fieldDef.args) {
|
|
31
|
-
if (!providedArgs.has(argDef.name) && (0,
|
|
32
|
-
context.reportError(new
|
|
31
|
+
if (!providedArgs.has(argDef.name) && (0, definition_ts_1.isRequiredArgument)(argDef)) {
|
|
32
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Argument "${argDef}" of type "${argDef.type}" is required, but it was not provided.`, { nodes: fieldNode }));
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
},
|
|
@@ -45,9 +45,9 @@ function ProvidedRequiredArgumentsRule(context) {
|
|
|
45
45
|
for (const [varName, variableDefinition,] of fragmentSignature.variableDefinitions) {
|
|
46
46
|
if (!providedArgs.has(varName) &&
|
|
47
47
|
isRequiredArgumentNode(variableDefinition)) {
|
|
48
|
-
const type = (0,
|
|
49
|
-
const argTypeStr = (0,
|
|
50
|
-
context.reportError(new
|
|
48
|
+
const type = (0, typeFromAST_ts_1.typeFromAST)(context.getSchema(), variableDefinition.type);
|
|
49
|
+
const argTypeStr = (0, inspect_ts_1.inspect)(type);
|
|
50
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Fragment "${spreadNode.name.value}" argument "${varName}" of type "${argTypeStr}" is required, but it was not provided.`, { nodes: spreadNode }));
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
},
|
|
@@ -60,13 +60,13 @@ function ProvidedRequiredArgumentsRule(context) {
|
|
|
60
60
|
function ProvidedRequiredArgumentsOnDirectivesRule(context) {
|
|
61
61
|
const requiredArgsMap = new Map();
|
|
62
62
|
const schema = context.getSchema();
|
|
63
|
-
const definedDirectives = schema?.getDirectives() ??
|
|
63
|
+
const definedDirectives = schema?.getDirectives() ?? directives_ts_1.specifiedDirectives;
|
|
64
64
|
for (const directive of definedDirectives) {
|
|
65
|
-
requiredArgsMap.set(directive.name, new Map(directive.args.filter(
|
|
65
|
+
requiredArgsMap.set(directive.name, new Map(directive.args.filter(definition_ts_1.isRequiredArgument).map((arg) => [arg.name, arg])));
|
|
66
66
|
}
|
|
67
67
|
const astDefinitions = context.getDocument().definitions;
|
|
68
68
|
for (const def of astDefinitions) {
|
|
69
|
-
if (def.kind ===
|
|
69
|
+
if (def.kind === kinds_ts_1.Kind.DIRECTIVE_DEFINITION) {
|
|
70
70
|
const argNodes = def.arguments ?? [];
|
|
71
71
|
requiredArgsMap.set(def.name.value, new Map(argNodes
|
|
72
72
|
.filter(isRequiredArgumentNode)
|
|
@@ -84,10 +84,10 @@ function ProvidedRequiredArgumentsOnDirectivesRule(context) {
|
|
|
84
84
|
const argNodeMap = new Set(argNodes.map((arg) => arg.name.value));
|
|
85
85
|
for (const [argName, argDef] of requiredArgs.entries()) {
|
|
86
86
|
if (!argNodeMap.has(argName)) {
|
|
87
|
-
const argType = (0,
|
|
88
|
-
? (0,
|
|
89
|
-
: (0,
|
|
90
|
-
context.reportError(new
|
|
87
|
+
const argType = (0, definition_ts_1.isType)(argDef.type)
|
|
88
|
+
? (0, inspect_ts_1.inspect)(argDef.type)
|
|
89
|
+
: (0, printer_ts_1.print)(argDef.type);
|
|
90
|
+
context.reportError(new GraphQLError_ts_1.GraphQLError(`Argument "@${directiveName}(${argName}:)" of type "${argType}" is required, but it was not provided.`, { nodes: directiveNode }));
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -96,6 +96,6 @@ function ProvidedRequiredArgumentsOnDirectivesRule(context) {
|
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
function isRequiredArgumentNode(arg) {
|
|
99
|
-
return arg.type.kind ===
|
|
99
|
+
return arg.type.kind === kinds_ts_1.Kind.NON_NULL_TYPE && arg.defaultValue == null;
|
|
100
100
|
}
|
|
101
101
|
//# sourceMappingURL=ProvidedRequiredArgumentsRule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvidedRequiredArgumentsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/ProvidedRequiredArgumentsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../../jsutils/inspect.
|
|
1
|
+
{"version":3,"file":"ProvidedRequiredArgumentsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/ProvidedRequiredArgumentsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type {\n InputValueDefinitionNode,\n VariableDefinitionNode,\n} from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport { print } from '../../language/printer.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLArgument } from '../../type/definition.ts';\nimport { isRequiredArgument, isType } from '../../type/definition.ts';\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Provided required arguments\n *\n * A field or directive is only valid if all required (non-null without a\n * default value) field arguments have been provided.\n */\nexport function ProvidedRequiredArgumentsRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n // eslint-disable-next-line new-cap\n ...ProvidedRequiredArgumentsOnDirectivesRule(context),\n Field: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(fieldNode) {\n const fieldDef = context.getFieldDef();\n if (!fieldDef) {\n return false;\n }\n\n const providedArgs = new Set(\n fieldNode.arguments?.map((arg) => arg.name.value),\n );\n for (const argDef of fieldDef.args) {\n if (!providedArgs.has(argDef.name) && isRequiredArgument(argDef)) {\n context.reportError(\n new GraphQLError(\n `Argument \"${argDef}\" of type \"${argDef.type}\" is required, but it was not provided.`,\n { nodes: fieldNode },\n ),\n );\n }\n }\n },\n },\n FragmentSpread: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(spreadNode) {\n const fragmentSignature = context.getFragmentSignature();\n if (!fragmentSignature) {\n return false;\n }\n\n const providedArgs = new Set(\n spreadNode.arguments?.map((arg) => arg.name.value),\n );\n for (const [\n varName,\n variableDefinition,\n ] of fragmentSignature.variableDefinitions) {\n if (\n !providedArgs.has(varName) &&\n isRequiredArgumentNode(variableDefinition)\n ) {\n const type = typeFromAST(\n context.getSchema(),\n variableDefinition.type,\n );\n const argTypeStr = inspect(type);\n context.reportError(\n new GraphQLError(\n `Fragment \"${spreadNode.name.value}\" argument \"${varName}\" of type \"${argTypeStr}\" is required, but it was not provided.`,\n { nodes: spreadNode },\n ),\n );\n }\n }\n },\n },\n };\n}\n\n/**\n * @internal\n */\nexport function ProvidedRequiredArgumentsOnDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const requiredArgsMap = new Map<\n string,\n Map<string, GraphQLArgument | InputValueDefinitionNode>\n >();\n\n const schema = context.getSchema();\n const definedDirectives = schema?.getDirectives() ?? specifiedDirectives;\n for (const directive of definedDirectives) {\n requiredArgsMap.set(\n directive.name,\n new Map(\n directive.args.filter(isRequiredArgument).map((arg) => [arg.name, arg]),\n ),\n );\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n const argNodes = def.arguments ?? [];\n\n requiredArgsMap.set(\n def.name.value,\n new Map(\n argNodes\n .filter(isRequiredArgumentNode)\n .map((arg) => [arg.name.value, arg]),\n ),\n );\n }\n }\n\n return {\n Directive: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(directiveNode) {\n const directiveName = directiveNode.name.value;\n const requiredArgs = requiredArgsMap.get(directiveName);\n if (requiredArgs != null) {\n const argNodes = directiveNode.arguments ?? [];\n const argNodeMap = new Set(argNodes.map((arg) => arg.name.value));\n for (const [argName, argDef] of requiredArgs.entries()) {\n if (!argNodeMap.has(argName)) {\n const argType = isType(argDef.type)\n ? inspect(argDef.type)\n : print(argDef.type);\n context.reportError(\n new GraphQLError(\n `Argument \"@${directiveName}(${argName}:)\" of type \"${argType}\" is required, but it was not provided.`,\n { nodes: directiveNode },\n ),\n );\n }\n }\n }\n },\n },\n };\n}\n\nfunction isRequiredArgumentNode(\n arg: InputValueDefinitionNode | VariableDefinitionNode,\n): boolean {\n return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvidedRequiredArgumentsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/ProvidedRequiredArgumentsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../../jsutils/inspect.
|
|
1
|
+
{"version":3,"file":"ProvidedRequiredArgumentsRule.js","sourceRoot":"","sources":["../../../src/validation/rules/ProvidedRequiredArgumentsRule.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../../jsutils/inspect.ts';\n\nimport { GraphQLError } from '../../error/GraphQLError.ts';\n\nimport type {\n InputValueDefinitionNode,\n VariableDefinitionNode,\n} from '../../language/ast.ts';\nimport { Kind } from '../../language/kinds.ts';\nimport { print } from '../../language/printer.ts';\nimport type { ASTVisitor } from '../../language/visitor.ts';\n\nimport type { GraphQLArgument } from '../../type/definition.ts';\nimport { isRequiredArgument, isType } from '../../type/definition.ts';\nimport { specifiedDirectives } from '../../type/directives.ts';\n\nimport { typeFromAST } from '../../utilities/typeFromAST.ts';\n\nimport type {\n SDLValidationContext,\n ValidationContext,\n} from '../ValidationContext.ts';\n\n/**\n * Provided required arguments\n *\n * A field or directive is only valid if all required (non-null without a\n * default value) field arguments have been provided.\n */\nexport function ProvidedRequiredArgumentsRule(\n context: ValidationContext,\n): ASTVisitor {\n return {\n // eslint-disable-next-line new-cap\n ...ProvidedRequiredArgumentsOnDirectivesRule(context),\n Field: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(fieldNode) {\n const fieldDef = context.getFieldDef();\n if (!fieldDef) {\n return false;\n }\n\n const providedArgs = new Set(\n fieldNode.arguments?.map((arg) => arg.name.value),\n );\n for (const argDef of fieldDef.args) {\n if (!providedArgs.has(argDef.name) && isRequiredArgument(argDef)) {\n context.reportError(\n new GraphQLError(\n `Argument \"${argDef}\" of type \"${argDef.type}\" is required, but it was not provided.`,\n { nodes: fieldNode },\n ),\n );\n }\n }\n },\n },\n FragmentSpread: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(spreadNode) {\n const fragmentSignature = context.getFragmentSignature();\n if (!fragmentSignature) {\n return false;\n }\n\n const providedArgs = new Set(\n spreadNode.arguments?.map((arg) => arg.name.value),\n );\n for (const [\n varName,\n variableDefinition,\n ] of fragmentSignature.variableDefinitions) {\n if (\n !providedArgs.has(varName) &&\n isRequiredArgumentNode(variableDefinition)\n ) {\n const type = typeFromAST(\n context.getSchema(),\n variableDefinition.type,\n );\n const argTypeStr = inspect(type);\n context.reportError(\n new GraphQLError(\n `Fragment \"${spreadNode.name.value}\" argument \"${varName}\" of type \"${argTypeStr}\" is required, but it was not provided.`,\n { nodes: spreadNode },\n ),\n );\n }\n }\n },\n },\n };\n}\n\n/**\n * @internal\n */\nexport function ProvidedRequiredArgumentsOnDirectivesRule(\n context: ValidationContext | SDLValidationContext,\n): ASTVisitor {\n const requiredArgsMap = new Map<\n string,\n Map<string, GraphQLArgument | InputValueDefinitionNode>\n >();\n\n const schema = context.getSchema();\n const definedDirectives = schema?.getDirectives() ?? specifiedDirectives;\n for (const directive of definedDirectives) {\n requiredArgsMap.set(\n directive.name,\n new Map(\n directive.args.filter(isRequiredArgument).map((arg) => [arg.name, arg]),\n ),\n );\n }\n\n const astDefinitions = context.getDocument().definitions;\n for (const def of astDefinitions) {\n if (def.kind === Kind.DIRECTIVE_DEFINITION) {\n const argNodes = def.arguments ?? [];\n\n requiredArgsMap.set(\n def.name.value,\n new Map(\n argNodes\n .filter(isRequiredArgumentNode)\n .map((arg) => [arg.name.value, arg]),\n ),\n );\n }\n }\n\n return {\n Directive: {\n // Validate on leave to allow for deeper errors to appear first.\n leave(directiveNode) {\n const directiveName = directiveNode.name.value;\n const requiredArgs = requiredArgsMap.get(directiveName);\n if (requiredArgs != null) {\n const argNodes = directiveNode.arguments ?? [];\n const argNodeMap = new Set(argNodes.map((arg) => arg.name.value));\n for (const [argName, argDef] of requiredArgs.entries()) {\n if (!argNodeMap.has(argName)) {\n const argType = isType(argDef.type)\n ? inspect(argDef.type)\n : print(argDef.type);\n context.reportError(\n new GraphQLError(\n `Argument \"@${directiveName}(${argName}:)\" of type \"${argType}\" is required, but it was not provided.`,\n { nodes: directiveNode },\n ),\n );\n }\n }\n }\n },\n },\n };\n}\n\nfunction isRequiredArgumentNode(\n arg: InputValueDefinitionNode | VariableDefinitionNode,\n): boolean {\n return arg.type.kind === Kind.NON_NULL_TYPE && arg.defaultValue == null;\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
|
* Scalar leafs
|
|
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
|
* Scalar leafs
|
|
5
5
|
*
|