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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateInputValue.js","sourceRoot":"","sources":["../../src/utilities/validateInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../jsutils/didYouMean.js';\nimport { inspect } from '../jsutils/inspect.js';\nimport { isIterableObject } from '../jsutils/isIterableObject.js';\nimport { isObjectLike } from '../jsutils/isObjectLike.js';\nimport { keyMap } from '../jsutils/keyMap.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { Path } from '../jsutils/Path.js';\nimport { addPath, pathToArray } from '../jsutils/Path.js';\nimport { suggestionList } from '../jsutils/suggestionList.js';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.js';\nimport { GraphQLError } from '../error/GraphQLError.js';\n\nimport type { ASTNode, ValueNode, VariableNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport { print } from '../language/printer.js';\n\nimport type { GraphQLInputType } from '../type/definition.js';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.js';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.js';\nimport type { VariableValues } from '../execution/values.js';\n\nimport { replaceVariables } from './replaceVariables.js';\n\n/**\n * Validate that the provided input value is allowed for this type, collecting\n * all errors via a callback function.\n */\nexport function validateInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n return validateInputValueImpl(\n inputValue,\n type,\n onError,\n hideSuggestions,\n undefined,\n );\n}\n\nfunction validateInputValueImpl(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (isNonNullType(type)) {\n if (inputValue === undefined) {\n reportInvalidValue(\n onError,\n `Expected a value of non-null type \"${type}\" to be provided.`,\n path,\n );\n return;\n }\n if (inputValue === null) {\n reportInvalidValue(\n onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n path,\n );\n return;\n }\n return validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n }\n\n if (inputValue == null) {\n return;\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemValue of inputValue) {\n validateInputValueImpl(\n itemValue,\n type.ofType,\n onError,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to be an object, found: ${inspect(\n inputValue,\n )}.`,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${inspect(inputValue)}.`,\n path,\n );\n }\n } else {\n validateInputValueImpl(\n fieldValue,\n field.type,\n onError,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields: Array<string> = [];\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n );\n continue;\n }\n fields.push(fieldName);\n }\n\n if (type.isOneOf) {\n if (fields.length !== 1) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n path,\n );\n }\n\n const field = fields[0];\n const value = inputValue[field];\n if (value === null) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n addPath(path, field, type.name),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n\n try {\n result = type.coerceInputValue(inputValue, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction reportInvalidValue(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(new GraphQLError(message, { originalError }), pathToArray(path));\n}\n\n/**\n * Validate that the provided input literal is allowed for this type, collecting\n * all errors via a callback function.\n *\n * If variable values are not provided, the literal is validated statically\n * (not assuming that those variables are missing runtime values).\n */\n// eslint-disable-next-line max-params\nexport function validateInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n variables?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const context: ValidationContext = {\n static: !variables && !fragmentVariableValues,\n onError,\n variables,\n fragmentVariableValues,\n };\n return validateInputLiteralImpl(\n context,\n valueNode,\n type,\n hideSuggestions,\n undefined,\n );\n}\n\ninterface ValidationContext {\n static: boolean;\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void;\n variables?: Maybe<VariableValues>;\n fragmentVariableValues?: Maybe<FragmentVariableValues>;\n}\n\nfunction validateInputLiteralImpl(\n context: ValidationContext,\n valueNode: ValueNode,\n type: GraphQLInputType,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (valueNode.kind === Kind.VARIABLE) {\n if (context.static) {\n // If no variable values are provided, this is being validated statically,\n // and cannot yet produce any validation errors for variables.\n return;\n }\n const scopedVariableValues = getScopedVariableValues(context, valueNode);\n const value = scopedVariableValues?.coerced[valueNode.name.value];\n if (isNonNullType(type)) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes this variable usage has already been validated.\n return;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n return;\n }\n return validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return;\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemNode of valueNode.values) {\n validateInputLiteralImpl(\n context,\n itemNode,\n type.ofType,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to be an object, found: ${print(\n valueNode,\n )}.`,\n valueNode,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n const fieldNodes = keyMap(valueNode.fields, (field) => field.name.value);\n\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes[field.name];\n if (fieldNode === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${print(valueNode)}.`,\n valueNode,\n path,\n );\n }\n } else {\n const fieldValueNode = fieldNode.value;\n if (fieldValueNode.kind === Kind.VARIABLE && !context.static) {\n const scopedVariableValues = getScopedVariableValues(\n context,\n fieldValueNode,\n );\n const variableName = fieldValueNode.name.value;\n const value = scopedVariableValues?.coerced[variableName];\n if (type.isOneOf) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n } else if (value === undefined && !isRequiredInputField(field)) {\n continue;\n }\n }\n\n validateInputLiteralImpl(\n context,\n fieldValueNode,\n field.type,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields = valueNode.fields;\n const knownFields: Array<(typeof fields)[number]> = [];\n // Ensure every provided field is defined.\n for (const fieldNode of fields) {\n const fieldName = fieldNode.name.value;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${print(valueNode)}.`,\n fieldNode,\n path,\n );\n } else {\n knownFields.push(fieldNode);\n }\n }\n\n if (type.isOneOf) {\n const isNotExactlyOneField = knownFields.length !== 1;\n if (isNotExactlyOneField) {\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n path,\n );\n return;\n }\n\n const fieldValueNode = knownFields[0].value;\n if (fieldValueNode.kind === Kind.NULL) {\n const fieldName = knownFields[0].name.value;\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n addPath(path, fieldName, undefined),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n try {\n result = type.coerceInputLiteral\n ? type.coerceInputLiteral(\n replaceVariables(\n valueNode,\n context.variables,\n context.fragmentVariableValues,\n ),\n hideSuggestions,\n )\n : type.parseLiteral(valueNode, undefined, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n context.onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${print(valueNode)}.`,\n valueNode,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction getScopedVariableValues(\n context: ValidationContext,\n valueNode: VariableNode,\n): Maybe<VariableValues> {\n const variableName = valueNode.name.value;\n const { fragmentVariableValues, variables } = context;\n return fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variables;\n}\n\nfunction reportInvalidLiteral(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n valueNode: ASTNode,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(\n new GraphQLError(message, {\n nodes: valueNode,\n originalError,\n }),\n pathToArray(path),\n );\n}\n\nfunction getCaughtErrorMessage(caughtError: unknown): string {\n if (isObjectLike(caughtError)) {\n const message = caughtError.message;\n if (typeof message === 'string' && message !== '') {\n return message;\n }\n }\n\n return String(caughtError);\n}\n\nfunction getOneOfInputObjectErrorMessage(type: GraphQLInputType): string {\n return `Within OneOf Input Object type \"${type}\", exactly one field must be specified, and the value for that field must be non-null.`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"validateInputValue.js","sourceRoot":"","sources":["../../src/utilities/validateInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../jsutils/didYouMean.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isIterableObject } from '../jsutils/isIterableObject.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyMap } from '../jsutils/keyMap.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { Path } from '../jsutils/Path.ts';\nimport { addPath, pathToArray } from '../jsutils/Path.ts';\nimport { suggestionList } from '../jsutils/suggestionList.ts';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.ts';\nimport { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type { ASTNode, ValueNode, VariableNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { print } from '../language/printer.ts';\n\nimport type { GraphQLInputType } from '../type/definition.ts';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.ts';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.ts';\nimport type { VariableValues } from '../execution/values.ts';\n\nimport { replaceVariables } from './replaceVariables.ts';\n\n/**\n * Validate that the provided input value is allowed for this type, collecting\n * all errors via a callback function.\n */\nexport function validateInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n return validateInputValueImpl(\n inputValue,\n type,\n onError,\n hideSuggestions,\n undefined,\n );\n}\n\nfunction validateInputValueImpl(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (isNonNullType(type)) {\n if (inputValue === undefined) {\n reportInvalidValue(\n onError,\n `Expected a value of non-null type \"${type}\" to be provided.`,\n path,\n );\n return;\n }\n if (inputValue === null) {\n reportInvalidValue(\n onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n path,\n );\n return;\n }\n return validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n }\n\n if (inputValue == null) {\n return;\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemValue of inputValue) {\n validateInputValueImpl(\n itemValue,\n type.ofType,\n onError,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to be an object, found: ${inspect(\n inputValue,\n )}.`,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${inspect(inputValue)}.`,\n path,\n );\n }\n } else {\n validateInputValueImpl(\n fieldValue,\n field.type,\n onError,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields: Array<string> = [];\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n );\n continue;\n }\n fields.push(fieldName);\n }\n\n if (type.isOneOf) {\n if (fields.length !== 1) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n path,\n );\n }\n\n const field = fields[0];\n const value = inputValue[field];\n if (value === null) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n addPath(path, field, type.name),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n\n try {\n result = type.coerceInputValue(inputValue, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction reportInvalidValue(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(new GraphQLError(message, { originalError }), pathToArray(path));\n}\n\n/**\n * Validate that the provided input literal is allowed for this type, collecting\n * all errors via a callback function.\n *\n * If variable values are not provided, the literal is validated statically\n * (not assuming that those variables are missing runtime values).\n */\n// eslint-disable-next-line max-params\nexport function validateInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n variables?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const context: ValidationContext = {\n static: !variables && !fragmentVariableValues,\n onError,\n variables,\n fragmentVariableValues,\n };\n return validateInputLiteralImpl(\n context,\n valueNode,\n type,\n hideSuggestions,\n undefined,\n );\n}\n\ninterface ValidationContext {\n static: boolean;\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void;\n variables?: Maybe<VariableValues>;\n fragmentVariableValues?: Maybe<FragmentVariableValues>;\n}\n\nfunction validateInputLiteralImpl(\n context: ValidationContext,\n valueNode: ValueNode,\n type: GraphQLInputType,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (valueNode.kind === Kind.VARIABLE) {\n if (context.static) {\n // If no variable values are provided, this is being validated statically,\n // and cannot yet produce any validation errors for variables.\n return;\n }\n const scopedVariableValues = getScopedVariableValues(context, valueNode);\n const value = scopedVariableValues?.coerced[valueNode.name.value];\n if (isNonNullType(type)) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes this variable usage has already been validated.\n return;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n return;\n }\n return validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return;\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemNode of valueNode.values) {\n validateInputLiteralImpl(\n context,\n itemNode,\n type.ofType,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to be an object, found: ${print(\n valueNode,\n )}.`,\n valueNode,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n const fieldNodes = keyMap(valueNode.fields, (field) => field.name.value);\n\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes[field.name];\n if (fieldNode === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${print(valueNode)}.`,\n valueNode,\n path,\n );\n }\n } else {\n const fieldValueNode = fieldNode.value;\n if (fieldValueNode.kind === Kind.VARIABLE && !context.static) {\n const scopedVariableValues = getScopedVariableValues(\n context,\n fieldValueNode,\n );\n const variableName = fieldValueNode.name.value;\n const value = scopedVariableValues?.coerced[variableName];\n if (type.isOneOf) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n } else if (value === undefined && !isRequiredInputField(field)) {\n continue;\n }\n }\n\n validateInputLiteralImpl(\n context,\n fieldValueNode,\n field.type,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields = valueNode.fields;\n const knownFields: Array<(typeof fields)[number]> = [];\n // Ensure every provided field is defined.\n for (const fieldNode of fields) {\n const fieldName = fieldNode.name.value;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${print(valueNode)}.`,\n fieldNode,\n path,\n );\n } else {\n knownFields.push(fieldNode);\n }\n }\n\n if (type.isOneOf) {\n const isNotExactlyOneField = knownFields.length !== 1;\n if (isNotExactlyOneField) {\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n path,\n );\n return;\n }\n\n const fieldValueNode = knownFields[0].value;\n if (fieldValueNode.kind === Kind.NULL) {\n const fieldName = knownFields[0].name.value;\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n addPath(path, fieldName, undefined),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n try {\n result = type.coerceInputLiteral\n ? type.coerceInputLiteral(\n replaceVariables(\n valueNode,\n context.variables,\n context.fragmentVariableValues,\n ),\n hideSuggestions,\n )\n : type.parseLiteral(valueNode, undefined, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n context.onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${print(valueNode)}.`,\n valueNode,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction getScopedVariableValues(\n context: ValidationContext,\n valueNode: VariableNode,\n): Maybe<VariableValues> {\n const variableName = valueNode.name.value;\n const { fragmentVariableValues, variables } = context;\n return fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variables;\n}\n\nfunction reportInvalidLiteral(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n valueNode: ASTNode,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(\n new GraphQLError(message, {\n nodes: valueNode,\n originalError,\n }),\n pathToArray(path),\n );\n}\n\nfunction getCaughtErrorMessage(caughtError: unknown): string {\n if (isObjectLike(caughtError)) {\n const message = caughtError.message;\n if (typeof message === 'string' && message !== '') {\n return message;\n }\n }\n\n return String(caughtError);\n}\n\nfunction getOneOfInputObjectErrorMessage(type: GraphQLInputType): string {\n return `Within OneOf Input Object type \"${type}\", exactly one field must be specified, and the value for that field must be non-null.`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateInputValue.js","sourceRoot":"","sources":["../../src/utilities/validateInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../jsutils/didYouMean.js';\nimport { inspect } from '../jsutils/inspect.js';\nimport { isIterableObject } from '../jsutils/isIterableObject.js';\nimport { isObjectLike } from '../jsutils/isObjectLike.js';\nimport { keyMap } from '../jsutils/keyMap.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { Path } from '../jsutils/Path.js';\nimport { addPath, pathToArray } from '../jsutils/Path.js';\nimport { suggestionList } from '../jsutils/suggestionList.js';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.js';\nimport { GraphQLError } from '../error/GraphQLError.js';\n\nimport type { ASTNode, ValueNode, VariableNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\nimport { print } from '../language/printer.js';\n\nimport type { GraphQLInputType } from '../type/definition.js';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.js';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.js';\nimport type { VariableValues } from '../execution/values.js';\n\nimport { replaceVariables } from './replaceVariables.js';\n\n/**\n * Validate that the provided input value is allowed for this type, collecting\n * all errors via a callback function.\n */\nexport function validateInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n return validateInputValueImpl(\n inputValue,\n type,\n onError,\n hideSuggestions,\n undefined,\n );\n}\n\nfunction validateInputValueImpl(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (isNonNullType(type)) {\n if (inputValue === undefined) {\n reportInvalidValue(\n onError,\n `Expected a value of non-null type \"${type}\" to be provided.`,\n path,\n );\n return;\n }\n if (inputValue === null) {\n reportInvalidValue(\n onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n path,\n );\n return;\n }\n return validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n }\n\n if (inputValue == null) {\n return;\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemValue of inputValue) {\n validateInputValueImpl(\n itemValue,\n type.ofType,\n onError,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to be an object, found: ${inspect(\n inputValue,\n )}.`,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${inspect(inputValue)}.`,\n path,\n );\n }\n } else {\n validateInputValueImpl(\n fieldValue,\n field.type,\n onError,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields: Array<string> = [];\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n );\n continue;\n }\n fields.push(fieldName);\n }\n\n if (type.isOneOf) {\n if (fields.length !== 1) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n path,\n );\n }\n\n const field = fields[0];\n const value = inputValue[field];\n if (value === null) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n addPath(path, field, type.name),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n\n try {\n result = type.coerceInputValue(inputValue, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction reportInvalidValue(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(new GraphQLError(message, { originalError }), pathToArray(path));\n}\n\n/**\n * Validate that the provided input literal is allowed for this type, collecting\n * all errors via a callback function.\n *\n * If variable values are not provided, the literal is validated statically\n * (not assuming that those variables are missing runtime values).\n */\n// eslint-disable-next-line max-params\nexport function validateInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n variables?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const context: ValidationContext = {\n static: !variables && !fragmentVariableValues,\n onError,\n variables,\n fragmentVariableValues,\n };\n return validateInputLiteralImpl(\n context,\n valueNode,\n type,\n hideSuggestions,\n undefined,\n );\n}\n\ninterface ValidationContext {\n static: boolean;\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void;\n variables?: Maybe<VariableValues>;\n fragmentVariableValues?: Maybe<FragmentVariableValues>;\n}\n\nfunction validateInputLiteralImpl(\n context: ValidationContext,\n valueNode: ValueNode,\n type: GraphQLInputType,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (valueNode.kind === Kind.VARIABLE) {\n if (context.static) {\n // If no variable values are provided, this is being validated statically,\n // and cannot yet produce any validation errors for variables.\n return;\n }\n const scopedVariableValues = getScopedVariableValues(context, valueNode);\n const value = scopedVariableValues?.coerced[valueNode.name.value];\n if (isNonNullType(type)) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes this variable usage has already been validated.\n return;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n return;\n }\n return validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return;\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemNode of valueNode.values) {\n validateInputLiteralImpl(\n context,\n itemNode,\n type.ofType,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to be an object, found: ${print(\n valueNode,\n )}.`,\n valueNode,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n const fieldNodes = keyMap(valueNode.fields, (field) => field.name.value);\n\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes[field.name];\n if (fieldNode === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${print(valueNode)}.`,\n valueNode,\n path,\n );\n }\n } else {\n const fieldValueNode = fieldNode.value;\n if (fieldValueNode.kind === Kind.VARIABLE && !context.static) {\n const scopedVariableValues = getScopedVariableValues(\n context,\n fieldValueNode,\n );\n const variableName = fieldValueNode.name.value;\n const value = scopedVariableValues?.coerced[variableName];\n if (type.isOneOf) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n } else if (value === undefined && !isRequiredInputField(field)) {\n continue;\n }\n }\n\n validateInputLiteralImpl(\n context,\n fieldValueNode,\n field.type,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields = valueNode.fields;\n const knownFields: Array<(typeof fields)[number]> = [];\n // Ensure every provided field is defined.\n for (const fieldNode of fields) {\n const fieldName = fieldNode.name.value;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${print(valueNode)}.`,\n fieldNode,\n path,\n );\n } else {\n knownFields.push(fieldNode);\n }\n }\n\n if (type.isOneOf) {\n const isNotExactlyOneField = knownFields.length !== 1;\n if (isNotExactlyOneField) {\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n path,\n );\n return;\n }\n\n const fieldValueNode = knownFields[0].value;\n if (fieldValueNode.kind === Kind.NULL) {\n const fieldName = knownFields[0].name.value;\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n addPath(path, fieldName, undefined),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n try {\n result = type.coerceInputLiteral\n ? type.coerceInputLiteral(\n replaceVariables(\n valueNode,\n context.variables,\n context.fragmentVariableValues,\n ),\n hideSuggestions,\n )\n : type.parseLiteral(valueNode, undefined, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n context.onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${print(valueNode)}.`,\n valueNode,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction getScopedVariableValues(\n context: ValidationContext,\n valueNode: VariableNode,\n): Maybe<VariableValues> {\n const variableName = valueNode.name.value;\n const { fragmentVariableValues, variables } = context;\n return fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variables;\n}\n\nfunction reportInvalidLiteral(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n valueNode: ASTNode,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(\n new GraphQLError(message, {\n nodes: valueNode,\n originalError,\n }),\n pathToArray(path),\n );\n}\n\nfunction getCaughtErrorMessage(caughtError: unknown): string {\n if (isObjectLike(caughtError)) {\n const message = caughtError.message;\n if (typeof message === 'string' && message !== '') {\n return message;\n }\n }\n\n return String(caughtError);\n}\n\nfunction getOneOfInputObjectErrorMessage(type: GraphQLInputType): string {\n return `Within OneOf Input Object type \"${type}\", exactly one field must be specified, and the value for that field must be non-null.`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"validateInputValue.js","sourceRoot":"","sources":["../../src/utilities/validateInputValue.ts"],"names":[],"mappings":"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","sourcesContent":["import { didYouMean } from '../jsutils/didYouMean.ts';\nimport { inspect } from '../jsutils/inspect.ts';\nimport { isIterableObject } from '../jsutils/isIterableObject.ts';\nimport { isObjectLike } from '../jsutils/isObjectLike.ts';\nimport { keyMap } from '../jsutils/keyMap.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { Path } from '../jsutils/Path.ts';\nimport { addPath, pathToArray } from '../jsutils/Path.ts';\nimport { suggestionList } from '../jsutils/suggestionList.ts';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.ts';\nimport { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type { ASTNode, ValueNode, VariableNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\nimport { print } from '../language/printer.ts';\n\nimport type { GraphQLInputType } from '../type/definition.ts';\nimport {\n assertLeafType,\n isInputObjectType,\n isListType,\n isNonNullType,\n isRequiredInputField,\n} from '../type/definition.ts';\n\nimport type { FragmentVariableValues } from '../execution/collectFields.ts';\nimport type { VariableValues } from '../execution/values.ts';\n\nimport { replaceVariables } from './replaceVariables.ts';\n\n/**\n * Validate that the provided input value is allowed for this type, collecting\n * all errors via a callback function.\n */\nexport function validateInputValue(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n return validateInputValueImpl(\n inputValue,\n type,\n onError,\n hideSuggestions,\n undefined,\n );\n}\n\nfunction validateInputValueImpl(\n inputValue: unknown,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (isNonNullType(type)) {\n if (inputValue === undefined) {\n reportInvalidValue(\n onError,\n `Expected a value of non-null type \"${type}\" to be provided.`,\n path,\n );\n return;\n }\n if (inputValue === null) {\n reportInvalidValue(\n onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n path,\n );\n return;\n }\n return validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n }\n\n if (inputValue == null) {\n return;\n }\n\n if (isListType(type)) {\n if (!isIterableObject(inputValue)) {\n // Lists accept a non-list value as a list of one.\n validateInputValueImpl(\n inputValue,\n type.ofType,\n onError,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemValue of inputValue) {\n validateInputValueImpl(\n itemValue,\n type.ofType,\n onError,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (!isObjectLike(inputValue) || Array.isArray(inputValue)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to be an object, found: ${inspect(\n inputValue,\n )}.`,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n\n for (const field of Object.values(fieldDefs)) {\n const fieldValue = inputValue[field.name];\n if (fieldValue === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${inspect(inputValue)}.`,\n path,\n );\n }\n } else {\n validateInputValueImpl(\n fieldValue,\n field.type,\n onError,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields: Array<string> = [];\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (inputValue[fieldName] === undefined) {\n continue;\n }\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n );\n continue;\n }\n fields.push(fieldName);\n }\n\n if (type.isOneOf) {\n if (fields.length !== 1) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n path,\n );\n }\n\n const field = fields[0];\n const value = inputValue[field];\n if (value === null) {\n reportInvalidValue(\n onError,\n getOneOfInputObjectErrorMessage(type),\n addPath(path, field, type.name),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n\n try {\n result = type.coerceInputValue(inputValue, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidValue(\n onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${inspect(inputValue)}.`,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction reportInvalidValue(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(new GraphQLError(message, { originalError }), pathToArray(path));\n}\n\n/**\n * Validate that the provided input literal is allowed for this type, collecting\n * all errors via a callback function.\n *\n * If variable values are not provided, the literal is validated statically\n * (not assuming that those variables are missing runtime values).\n */\n// eslint-disable-next-line max-params\nexport function validateInputLiteral(\n valueNode: ValueNode,\n type: GraphQLInputType,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n variables?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const context: ValidationContext = {\n static: !variables && !fragmentVariableValues,\n onError,\n variables,\n fragmentVariableValues,\n };\n return validateInputLiteralImpl(\n context,\n valueNode,\n type,\n hideSuggestions,\n undefined,\n );\n}\n\ninterface ValidationContext {\n static: boolean;\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void;\n variables?: Maybe<VariableValues>;\n fragmentVariableValues?: Maybe<FragmentVariableValues>;\n}\n\nfunction validateInputLiteralImpl(\n context: ValidationContext,\n valueNode: ValueNode,\n type: GraphQLInputType,\n hideSuggestions: Maybe<boolean>,\n path: Path | undefined,\n): void {\n if (valueNode.kind === Kind.VARIABLE) {\n if (context.static) {\n // If no variable values are provided, this is being validated statically,\n // and cannot yet produce any validation errors for variables.\n return;\n }\n const scopedVariableValues = getScopedVariableValues(context, valueNode);\n const value = scopedVariableValues?.coerced[valueNode.name.value];\n if (isNonNullType(type)) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${valueNode.name.value}\" provided to non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes this variable usage has already been validated.\n return;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of non-null type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n return;\n }\n return validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n }\n\n if (valueNode.kind === Kind.NULL) {\n return;\n }\n\n if (isListType(type)) {\n if (valueNode.kind !== Kind.LIST) {\n // Lists accept a non-list value as a list of one.\n validateInputLiteralImpl(\n context,\n valueNode,\n type.ofType,\n hideSuggestions,\n path,\n );\n } else {\n let index = 0;\n for (const itemNode of valueNode.values) {\n validateInputLiteralImpl(\n context,\n itemNode,\n type.ofType,\n hideSuggestions,\n addPath(path, index++, undefined),\n );\n }\n }\n } else if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to be an object, found: ${print(\n valueNode,\n )}.`,\n valueNode,\n path,\n );\n return;\n }\n\n const fieldDefs = type.getFields();\n const fieldNodes = keyMap(valueNode.fields, (field) => field.name.value);\n\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes[field.name];\n if (fieldNode === undefined) {\n if (isRequiredInputField(field)) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" to include required field \"${\n field.name\n }\", found: ${print(valueNode)}.`,\n valueNode,\n path,\n );\n }\n } else {\n const fieldValueNode = fieldNode.value;\n if (fieldValueNode.kind === Kind.VARIABLE && !context.static) {\n const scopedVariableValues = getScopedVariableValues(\n context,\n fieldValueNode,\n );\n const variableName = fieldValueNode.name.value;\n const value = scopedVariableValues?.coerced[variableName];\n if (type.isOneOf) {\n if (value === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" to provide a runtime value.`,\n valueNode,\n path,\n );\n } else if (value === null) {\n reportInvalidLiteral(\n context.onError,\n `Expected variable \"$${variableName}\" provided to field \"${field.name}\" for OneOf Input Object type \"${type}\" not to be null.`,\n valueNode,\n path,\n );\n }\n } else if (value === undefined && !isRequiredInputField(field)) {\n continue;\n }\n }\n\n validateInputLiteralImpl(\n context,\n fieldValueNode,\n field.type,\n hideSuggestions,\n addPath(path, field.name, type.name),\n );\n }\n }\n\n const fields = valueNode.fields;\n const knownFields: Array<(typeof fields)[number]> = [];\n // Ensure every provided field is defined.\n for (const fieldNode of fields) {\n const fieldName = fieldNode.name.value;\n if (!Object.hasOwn(fieldDefs, fieldName)) {\n const suggestion = hideSuggestions\n ? ''\n : didYouMean(suggestionList(fieldName, Object.keys(fieldDefs)));\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\" not to include unknown field \"${fieldName}\"${\n suggestion ? `.${suggestion} Found` : ', found'\n }: ${print(valueNode)}.`,\n fieldNode,\n path,\n );\n } else {\n knownFields.push(fieldNode);\n }\n }\n\n if (type.isOneOf) {\n const isNotExactlyOneField = knownFields.length !== 1;\n if (isNotExactlyOneField) {\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n path,\n );\n return;\n }\n\n const fieldValueNode = knownFields[0].value;\n if (fieldValueNode.kind === Kind.NULL) {\n const fieldName = knownFields[0].name.value;\n reportInvalidLiteral(\n context.onError,\n getOneOfInputObjectErrorMessage(type),\n valueNode,\n addPath(path, fieldName, undefined),\n );\n }\n }\n } else {\n assertLeafType(type);\n\n let result;\n let caughtError: unknown;\n try {\n result = type.coerceInputLiteral\n ? type.coerceInputLiteral(\n replaceVariables(\n valueNode,\n context.variables,\n context.fragmentVariableValues,\n ),\n hideSuggestions,\n )\n : type.parseLiteral(valueNode, undefined, hideSuggestions);\n } catch (error) {\n if (error instanceof GraphQLError) {\n context.onError(error, pathToArray(path));\n return;\n }\n caughtError = error;\n }\n\n if (result === undefined) {\n reportInvalidLiteral(\n context.onError,\n `Expected value of type \"${type}\"${\n caughtError != null\n ? `, but encountered error \"${getCaughtErrorMessage(caughtError)}\"; found`\n : ', found'\n }: ${print(valueNode)}.`,\n valueNode,\n path,\n ensureGraphQLError(caughtError),\n );\n }\n }\n}\n\nfunction getScopedVariableValues(\n context: ValidationContext,\n valueNode: VariableNode,\n): Maybe<VariableValues> {\n const variableName = valueNode.name.value;\n const { fragmentVariableValues, variables } = context;\n return fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variables;\n}\n\nfunction reportInvalidLiteral(\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n message: string,\n valueNode: ASTNode,\n path: Path | undefined,\n originalError?: GraphQLError,\n): void {\n onError(\n new GraphQLError(message, {\n nodes: valueNode,\n originalError,\n }),\n pathToArray(path),\n );\n}\n\nfunction getCaughtErrorMessage(caughtError: unknown): string {\n if (isObjectLike(caughtError)) {\n const message = caughtError.message;\n if (typeof message === 'string' && message !== '') {\n return message;\n }\n }\n\n return String(caughtError);\n}\n\nfunction getOneOfInputObjectErrorMessage(type: GraphQLInputType): string {\n return `Within OneOf Input Object type \"${type}\", exactly one field must be specified, and the value for that field must be non-null.`;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap } from
|
|
3
|
-
import type { ValueNode } from
|
|
4
|
-
import type { GraphQLInputType } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.mjs";
|
|
2
|
+
import type { ObjMap } from "../jsutils/ObjMap.mjs";
|
|
3
|
+
import type { ValueNode } from "../language/ast.mjs";
|
|
4
|
+
import type { GraphQLInputType } from "../type/definition.mjs";
|
|
5
5
|
/**
|
|
6
6
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap } from
|
|
3
|
-
import type { ValueNode } from
|
|
4
|
-
import type { GraphQLInputType } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.js";
|
|
2
|
+
import type { ObjMap } from "../jsutils/ObjMap.js";
|
|
3
|
+
import type { ValueNode } from "../language/ast.js";
|
|
4
|
+
import type { GraphQLInputType } from "../type/definition.js";
|
|
5
5
|
/**
|
|
6
6
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
7
7
|
*
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.valueFromAST = valueFromAST;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const inspect_ts_1 = require("../jsutils/inspect.js");
|
|
5
|
+
const invariant_ts_1 = require("../jsutils/invariant.js");
|
|
6
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
7
|
+
const definition_ts_1 = require("../type/definition.js");
|
|
8
8
|
/**
|
|
9
9
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
10
10
|
*
|
|
@@ -32,7 +32,7 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
32
32
|
// Importantly, this is different from returning the value null.
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
if (valueNode.kind ===
|
|
35
|
+
if (valueNode.kind === kinds_ts_1.Kind.VARIABLE) {
|
|
36
36
|
const variableName = valueNode.name.value;
|
|
37
37
|
if (variables == null || !Object.hasOwn(variables, variableName)) {
|
|
38
38
|
// No valid return value.
|
|
@@ -43,7 +43,7 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
43
43
|
// No valid return value.
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
if (variableValue === null && (0,
|
|
46
|
+
if (variableValue === null && (0, definition_ts_1.isNonNullType)(type)) {
|
|
47
47
|
return; // Invalid: intentionally return no value.
|
|
48
48
|
}
|
|
49
49
|
// Note: This does no further checking that this variable is correct.
|
|
@@ -51,25 +51,25 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
51
51
|
// usage here is of the correct type.
|
|
52
52
|
return variableValue;
|
|
53
53
|
}
|
|
54
|
-
if ((0,
|
|
55
|
-
if (valueNode.kind ===
|
|
54
|
+
if ((0, definition_ts_1.isNonNullType)(type)) {
|
|
55
|
+
if (valueNode.kind === kinds_ts_1.Kind.NULL) {
|
|
56
56
|
return; // Invalid: intentionally return no value.
|
|
57
57
|
}
|
|
58
58
|
return valueFromAST(valueNode, type.ofType, variables);
|
|
59
59
|
}
|
|
60
|
-
if (valueNode.kind ===
|
|
60
|
+
if (valueNode.kind === kinds_ts_1.Kind.NULL) {
|
|
61
61
|
// This is explicitly returning the value null.
|
|
62
62
|
return null;
|
|
63
63
|
}
|
|
64
|
-
if ((0,
|
|
64
|
+
if ((0, definition_ts_1.isListType)(type)) {
|
|
65
65
|
const itemType = type.ofType;
|
|
66
|
-
if (valueNode.kind ===
|
|
66
|
+
if (valueNode.kind === kinds_ts_1.Kind.LIST) {
|
|
67
67
|
const coercedValues = [];
|
|
68
68
|
for (const itemNode of valueNode.values) {
|
|
69
69
|
if (isMissingVariable(itemNode, variables)) {
|
|
70
70
|
// If an array contains a missing variable, it is either coerced to
|
|
71
71
|
// null or if the item type is non-null, it considered invalid.
|
|
72
|
-
if ((0,
|
|
72
|
+
if ((0, definition_ts_1.isNonNullType)(itemType)) {
|
|
73
73
|
return; // Invalid: intentionally return no value.
|
|
74
74
|
}
|
|
75
75
|
coercedValues.push(null);
|
|
@@ -90,8 +90,8 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
90
90
|
}
|
|
91
91
|
return [coercedValue];
|
|
92
92
|
}
|
|
93
|
-
if ((0,
|
|
94
|
-
if (valueNode.kind !==
|
|
93
|
+
if ((0, definition_ts_1.isInputObjectType)(type)) {
|
|
94
|
+
if (valueNode.kind !== kinds_ts_1.Kind.OBJECT) {
|
|
95
95
|
return; // Invalid: intentionally return no value.
|
|
96
96
|
}
|
|
97
97
|
const coercedObj = Object.create(null);
|
|
@@ -107,7 +107,7 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
107
107
|
if (field.defaultValue !== undefined) {
|
|
108
108
|
coercedObj[field.name] = field.defaultValue;
|
|
109
109
|
}
|
|
110
|
-
else if ((0,
|
|
110
|
+
else if ((0, definition_ts_1.isNonNullType)(field.type)) {
|
|
111
111
|
return; // Invalid: intentionally return no value.
|
|
112
112
|
}
|
|
113
113
|
continue;
|
|
@@ -124,7 +124,7 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
124
124
|
return; // Invalid: not exactly one key, intentionally return no value.
|
|
125
125
|
}
|
|
126
126
|
for (const [fieldName, fieldNode] of fieldNodes) {
|
|
127
|
-
if (fieldNode.value.kind ===
|
|
127
|
+
if (fieldNode.value.kind === kinds_ts_1.Kind.NULL ||
|
|
128
128
|
coercedObj[fieldName] === null) {
|
|
129
129
|
return; // Invalid: value not non-null, intentionally return no value.
|
|
130
130
|
}
|
|
@@ -132,7 +132,7 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
132
132
|
}
|
|
133
133
|
return coercedObj;
|
|
134
134
|
}
|
|
135
|
-
if ((0,
|
|
135
|
+
if ((0, definition_ts_1.isLeafType)(type)) {
|
|
136
136
|
// Scalars and Enums fulfill parsing a literal value via parseLiteral().
|
|
137
137
|
// Invalid values represent a failure to parse correctly, in which case
|
|
138
138
|
// no value is returned.
|
|
@@ -147,17 +147,15 @@ function valueFromAST(valueNode, type, variables) {
|
|
|
147
147
|
return; // Invalid: intentionally return no value.
|
|
148
148
|
}
|
|
149
149
|
return result;
|
|
150
|
-
|
|
151
|
-
// slight swc source mapping error (at least as compared to ts-node without swc)
|
|
152
|
-
/* c8 ignore next 4 */
|
|
150
|
+
/* node:coverage ignore next 4 */
|
|
153
151
|
}
|
|
154
152
|
// Not reachable, all possible input types have been considered.
|
|
155
|
-
(0,
|
|
153
|
+
(0, invariant_ts_1.invariant)(false, 'Unexpected input type: ' + (0, inspect_ts_1.inspect)(type));
|
|
156
154
|
}
|
|
157
155
|
// Returns true if the provided valueNode is a variable which is not defined
|
|
158
156
|
// in the set of variables.
|
|
159
157
|
function isMissingVariable(valueNode, variables) {
|
|
160
|
-
return (valueNode.kind ===
|
|
158
|
+
return (valueNode.kind === kinds_ts_1.Kind.VARIABLE &&
|
|
161
159
|
(variables?.[valueNode.name.value] === undefined ||
|
|
162
160
|
!Object.hasOwn(variables, valueNode.name.value)));
|
|
163
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueFromAST.js","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\nimport { invariant } from '../jsutils/invariant.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { ValueNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type { GraphQLInputType } from '../type/definition.js';\nimport {\n isInputObjectType,\n isLeafType,\n isListType,\n isNonNullType,\n} from '../type/definition.js';\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n * @deprecated use `coerceInputLiteral()` instead - will be removed in v18\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n type: GraphQLInputType,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || !Object.hasOwn(variables, variableName)) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === undefined) {\n // No valid return value.\n return;\n }\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n const itemType = type.ofType;\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(itemNode, itemType, variables);\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(valueNode, itemType, variables);\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUnknownField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUnknownField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[field.name] = fieldValue;\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedObj);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedObj[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedObj;\n }\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n // c8 control statement technically placed a line early secondary to\n // slight swc source mapping error (at least as compared to ts-node without swc)\n /* c8 ignore next 4 */\n }\n // Not reachable, all possible input types have been considered.\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables?.[valueNode.name.value] === undefined ||\n !Object.hasOwn(variables, valueNode.name.value))\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"valueFromAST.js","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { ValueNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type { GraphQLInputType } from '../type/definition.ts';\nimport {\n isInputObjectType,\n isLeafType,\n isListType,\n isNonNullType,\n} from '../type/definition.ts';\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n * @deprecated use `coerceInputLiteral()` instead - will be removed in v18\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n type: GraphQLInputType,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || !Object.hasOwn(variables, variableName)) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === undefined) {\n // No valid return value.\n return;\n }\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n const itemType = type.ofType;\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(itemNode, itemType, variables);\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(valueNode, itemType, variables);\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUnknownField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUnknownField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[field.name] = fieldValue;\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedObj);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedObj[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedObj;\n }\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n /* node:coverage ignore next 4 */\n }\n // Not reachable, all possible input types have been considered.\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables?.[valueNode.name.value] === undefined ||\n !Object.hasOwn(variables, valueNode.name.value))\n );\n}\n"]}
|
|
@@ -144,9 +144,7 @@ export function valueFromAST(valueNode, type, variables) {
|
|
|
144
144
|
return; // Invalid: intentionally return no value.
|
|
145
145
|
}
|
|
146
146
|
return result;
|
|
147
|
-
|
|
148
|
-
// slight swc source mapping error (at least as compared to ts-node without swc)
|
|
149
|
-
/* c8 ignore next 4 */
|
|
147
|
+
/* node:coverage ignore next 4 */
|
|
150
148
|
}
|
|
151
149
|
// Not reachable, all possible input types have been considered.
|
|
152
150
|
invariant(false, 'Unexpected input type: ' + inspect(type));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueFromAST.js","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.js';\nimport { invariant } from '../jsutils/invariant.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap } from '../jsutils/ObjMap.js';\n\nimport type { ValueNode } from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type { GraphQLInputType } from '../type/definition.js';\nimport {\n isInputObjectType,\n isLeafType,\n isListType,\n isNonNullType,\n} from '../type/definition.js';\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n * @deprecated use `coerceInputLiteral()` instead - will be removed in v18\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n type: GraphQLInputType,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || !Object.hasOwn(variables, variableName)) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === undefined) {\n // No valid return value.\n return;\n }\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n const itemType = type.ofType;\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(itemNode, itemType, variables);\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(valueNode, itemType, variables);\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUnknownField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUnknownField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[field.name] = fieldValue;\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedObj);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedObj[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedObj;\n }\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n // c8 control statement technically placed a line early secondary to\n // slight swc source mapping error (at least as compared to ts-node without swc)\n /* c8 ignore next 4 */\n }\n // Not reachable, all possible input types have been considered.\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables?.[valueNode.name.value] === undefined ||\n !Object.hasOwn(variables, valueNode.name.value))\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"valueFromAST.js","sourceRoot":"","sources":["../../src/utilities/valueFromAST.ts"],"names":[],"mappings":"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","sourcesContent":["import { inspect } from '../jsutils/inspect.ts';\nimport { invariant } from '../jsutils/invariant.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap } from '../jsutils/ObjMap.ts';\n\nimport type { ValueNode } from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type { GraphQLInputType } from '../type/definition.ts';\nimport {\n isInputObjectType,\n isLeafType,\n isListType,\n isNonNullType,\n} from '../type/definition.ts';\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n * @deprecated use `coerceInputLiteral()` instead - will be removed in v18\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n type: GraphQLInputType,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || !Object.hasOwn(variables, variableName)) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === undefined) {\n // No valid return value.\n return;\n }\n if (variableValue === null && isNonNullType(type)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(type)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, type.ofType, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(type)) {\n const itemType = type.ofType;\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemType)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(itemNode, itemType, variables);\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(valueNode, itemType, variables);\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n if (isInputObjectType(type)) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldDefs = type.getFields();\n const hasUnknownField = valueNode.fields.some(\n (field) => !Object.hasOwn(fieldDefs, field.name.value),\n );\n if (hasUnknownField) {\n return; // Invalid: intentionally return no value.\n }\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n for (const field of Object.values(fieldDefs)) {\n const fieldNode = fieldNodes.get(field.name);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n if (field.defaultValue !== undefined) {\n coercedObj[field.name] = field.defaultValue;\n } else if (isNonNullType(field.type)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(fieldNode.value, field.type, variables);\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[field.name] = fieldValue;\n }\n\n if (type.isOneOf) {\n const coercedKeys = Object.keys(coercedObj);\n if (fieldNodes.size !== 1 || coercedKeys.length !== 1) {\n return; // Invalid: not exactly one key, intentionally return no value.\n }\n\n for (const [fieldName, fieldNode] of fieldNodes) {\n if (\n fieldNode.value.kind === Kind.NULL ||\n coercedObj[fieldName] === null\n ) {\n return; // Invalid: value not non-null, intentionally return no value.\n }\n }\n }\n\n return coercedObj;\n }\n\n if (isLeafType(type)) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = type.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n /* node:coverage ignore next 4 */\n }\n // Not reachable, all possible input types have been considered.\n invariant(false, 'Unexpected input type: ' + inspect(type));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables?.[valueNode.name.value] === undefined ||\n !Object.hasOwn(variables, valueNode.name.value))\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap } from
|
|
3
|
-
import type { ValueNode } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.mjs";
|
|
2
|
+
import type { ObjMap } from "../jsutils/ObjMap.mjs";
|
|
3
|
+
import type { ValueNode } from "../language/ast.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
6
6
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap } from
|
|
3
|
-
import type { ValueNode } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.js";
|
|
2
|
+
import type { ObjMap } from "../jsutils/ObjMap.js";
|
|
3
|
+
import type { ValueNode } from "../language/ast.js";
|
|
4
4
|
/**
|
|
5
5
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
6
6
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.valueFromASTUntyped = valueFromASTUntyped;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const keyValMap_ts_1 = require("../jsutils/keyValMap.js");
|
|
5
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
6
6
|
/**
|
|
7
7
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
8
8
|
*
|
|
@@ -21,21 +21,21 @@ const kinds_js_1 = require("../language/kinds.js");
|
|
|
21
21
|
*/
|
|
22
22
|
function valueFromASTUntyped(valueNode, variables) {
|
|
23
23
|
switch (valueNode.kind) {
|
|
24
|
-
case
|
|
24
|
+
case kinds_ts_1.Kind.NULL:
|
|
25
25
|
return null;
|
|
26
|
-
case
|
|
26
|
+
case kinds_ts_1.Kind.INT:
|
|
27
27
|
return parseInt(valueNode.value, 10);
|
|
28
|
-
case
|
|
28
|
+
case kinds_ts_1.Kind.FLOAT:
|
|
29
29
|
return parseFloat(valueNode.value);
|
|
30
|
-
case
|
|
31
|
-
case
|
|
32
|
-
case
|
|
30
|
+
case kinds_ts_1.Kind.STRING:
|
|
31
|
+
case kinds_ts_1.Kind.ENUM:
|
|
32
|
+
case kinds_ts_1.Kind.BOOLEAN:
|
|
33
33
|
return valueNode.value;
|
|
34
|
-
case
|
|
34
|
+
case kinds_ts_1.Kind.LIST:
|
|
35
35
|
return valueNode.values.map((node) => valueFromASTUntyped(node, variables));
|
|
36
|
-
case
|
|
37
|
-
return (0,
|
|
38
|
-
case
|
|
36
|
+
case kinds_ts_1.Kind.OBJECT:
|
|
37
|
+
return (0, keyValMap_ts_1.keyValMap)(valueNode.fields, (field) => field.name.value, (field) => valueFromASTUntyped(field.value, variables));
|
|
38
|
+
case kinds_ts_1.Kind.VARIABLE:
|
|
39
39
|
return variables?.[valueNode.name.value];
|
|
40
40
|
}
|
|
41
41
|
}
|